Index: btkb/output/eeprom.dat
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/eeprom.dat	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/eeprom.dat	(working copy)
@@ -2129,8 +2129,8 @@
 00
 00
 58
+0a
 00
-b0
 00
 20
 40
@@ -3700,8 +3700,8 @@
 20
 3a
 7a
-95
-93
+2b
+e9
 aa
 55
 40
Index: btkb/output/program.lis
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/program.lis	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/program.lis	(working copy)
@@ -687,7 +687,7 @@
 0212 207a0000 rtn blank 
 
 p_g24_short_sleep_1:
-0213 5800b000 setarg 0x00b000 
+0213 580a0000 setarg 0x0a0000 
 
 p_g24_short_sleep_2:
 0214 20407e8a call clk2lpo 
Index: btkb/output/ramcode.rom
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/ramcode.rom	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/output/ramcode.rom	(working copy)
@@ -529,7 +529,7 @@
 207a0000
 6800c131
 207a0000
-5800b000
+580a0000
 20407e8a
 600a41fc
 20203cda
Index: btkb/program/patch.prog
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/program/patch.prog	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/btkb/program/patch.prog	(working copy)
@@ -786,8 +786,7 @@
 	rtn blank
 p_g24_short_sleep_1:	
 	//setarg 0x120000
-//	setarg 0x0a0000
-	setarg 0x00b000
+	setarg 0x0a0000
 p_g24_short_sleep_2:	
 	call clk2lpo
  	storet 4,mem_sleep_counter
Index: c51/Makefile
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/Makefile	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/Makefile	(working copy)
@@ -8,7 +8,7 @@
 
 
 OUTDIR = output
-ROOT_PATH =h:\Keil
+ROOT_PATH =D:\Keil
 
 UTIL_PATH = ..\rom\util
 
Index: c51/keyscan.c
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/keyscan.c	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/keyscan.c	(working copy)
@@ -265,9 +265,7 @@
 		tgpionum = 1 << (col[i] & 7);
 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
 	}
-
 	Delay1ms(5);
-	
 	for (i=0; col[i]!=0; i++) {
 		tgroup = col[i]  >> 3;
 		tgpionum = 1 << (col[i] & 7);
Index: c51/output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/output/FW.COD
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.COD	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.COD	(working copy)
@@ -1,4 +1,4 @@
-LX51 LINKER/LOCATER V4.66.97.0                                                          05/26/2022  18:11:57  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               07/19/2022  17:23:57  PAGE 1
 
 
 
@@ -13,315 +13,298 @@
     5: {
     6: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
     7: 	{
-0006C2 904CC5            MOV      DPTR,#g_variable+06H
-0006C5 E0                MOVX     A,@DPTR
-0006C6 6403              XRL      A,#03H
-0006C8 7003              JNZ      ?C0001?BLUETOOTH
+0006C2 904CC5            MOV     DPTR,#g_variable+06H
+0006C5 E0                MOVX    A,@DPTR
+0006C6 B40303            CJNE    A,#03H,?C0001?BLUETOOTH
     8: 		return 1;
     9: 	}
-0006CA 7F01              MOV      R7,#01H
-0006CC 22                RET      
+0006C9 7F01              MOV     R7,#01H
+0006CB 22                RET     
    10: 	return 0;
-0006CD         ?C0001?BLUETOOTH:
+0006CC         ?C0001?BLUETOOTH:
    11: }
-0006CD 7F00              MOV      R7,#00H
+0006CC 7F00              MOV     R7,#00H
    12: 
-0006CF 22                RET      
+0006CE 22                RET     
 ----- FUNCTION YC_check_is_connected (END) -------
 
 
------ FUNCTION LED_timer500ms (BEGIN) -----
- FILE: 'sys.c'
-  171: void LED_timer500ms()
-  172: {
-  173: 	if (power_on_flag != 2)
-  174: 		return;
-0006D0 904DE4            MOV      DPTR,#power_on_flag
-0006D3 E0                MOVX     A,@DPTR
-0006D4 6402              XRL      A,#02H
-0006D6 707B              JNZ      ?C0026?SYS
-  175:  	if (g_variable.pairing_g24_timeout != 0)
-0006D8 904CEE            MOV      DPTR,#g_variable+02FH
-0006DB E0                MOVX     A,@DPTR
-0006DC 6008              JZ       ?C0028?SYS
-  176: 	{
-  177: 		GPIO_FlipOutBit(BT2_LED_GPIO);
-0006DE 7FFF              MOV      R7,#0FFH
-0006E0 F166              ACALL    _GPIO_FlipOutBit
-  178: 		GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
-0006E2 7F1D              MOV      R7,#01DH
-0006E4 F166              ACALL    _GPIO_FlipOutBit
-  179: 	}
-  180: 	else
-  181: 	{
-  182: 		
-  183: 	}
-0006E6         ?C0028?SYS:
-  184: 
-  185: 	
-  186: 	if (YC_check_is_connected())
-0006E6 D1C2              ACALL    YC_check_is_connected
-0006E8 EF                MOV      A,R7
-0006E9 6068              JZ       ?C0026?SYS
-  187: 	{
-  188: 		if(g_variable.sys_numlockled_on_timer)
-0006EB 904CE6            MOV      DPTR,#g_variable+027H
-0006EE E0                MOVX     A,@DPTR
-0006EF 6015              JZ       ?C0030?SYS
-  189: 		{
-  190: 			g_variable.sys_numlockled_on_timer--;
-0006F1 14                DEC      A
-0006F2 F0                MOVX     @DPTR,A
-  191: 			if(!g_variable.sys_numlockled_on_timer)
-0006F3 E0                MOVX     A,@DPTR
-0006F4 7008              JNZ      ?C0031?SYS
-  192: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-0006F6 D201              SETB     ?_GPIO_Setout?BIT
-0006F8 7F10              MOV      R7,#010H
-0006FA F154              ACALL    _GPIO_Setout
-0006FC 800E              SJMP     ?C0033?SYS
-0006FE         ?C0031?SYS:
-  193: 			else 
-  194: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
-0006FE C201              CLR      ?_GPIO_Setout?BIT
-000700 7F10              MOV      R7,#010H
-000702 F154              ACALL    _GPIO_Setout
-  195: 		}
-000704 8006              SJMP     ?C0033?SYS
-000706         ?C0030?SYS:
-  196: 		else 
-  197: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-000706 D201              SETB     ?_GPIO_Setout?BIT
-000708 7F10              MOV      R7,#010H
-00070A F154              ACALL    _GPIO_Setout
-00070C         ?C0033?SYS:
-  198: 			
-  199: 
-  200: 		if(g_variable.sys_capslockled_on_timer)
-00070C 904CE7            MOV      DPTR,#g_variable+028H
-00070F E0                MOVX     A,@DPTR
-000710 6015              JZ       ?C0034?SYS
-  201: 		{
-  202: 			g_variable.sys_capslockled_on_timer--;
-000712 14                DEC      A
-000713 F0                MOVX     @DPTR,A
-  203: 			
-  204: 			if(!g_variable.sys_capslockled_on_timer)
-000714 E0                MOVX     A,@DPTR
-000715 7008              JNZ      ?C0035?SYS
-  205: 				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-000717 D201              SETB     ?_GPIO_Setout?BIT
-000719 7F0F              MOV      R7,#0FH
-00071B F154              ACALL    _GPIO_Setout
-00071D 800E              SJMP     ?C0037?SYS
-00071F         ?C0035?SYS:
-  206: 			else
-  207: 				GPIO_Setout(CAPS_LED_GPIO, LED_ON);
-00071F C201              CLR      ?_GPIO_Setout?BIT
-000721 7F0F              MOV      R7,#0FH
-000723 F154              ACALL    _GPIO_Setout
-  208: 		}
-000725 8006              SJMP     ?C0037?SYS
-000727         ?C0034?SYS:
-  209: 		else
-  210: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-000727 D201              SETB     ?_GPIO_Setout?BIT
-000729 7F0F              MOV      R7,#0FH
-00072B F154              ACALL    _GPIO_Setout
-00072D         ?C0037?SYS:
-  211: 
-  212: 
-  213: 		if(g_variable.sys_scrolllockled_on_timer)
-00072D 904CE8            MOV      DPTR,#g_variable+029H
-000730 E0                MOVX     A,@DPTR
-000731 6020              JZ       ?C0026?SYS
-  214: 		{
-  215: 			g_variable.sys_scrolllockled_on_timer--;
-000733 14                DEC      A
-000734 F0                MOVX     @DPTR,A
-  216: 			if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
-000735 904CE5            MOV      DPTR,#g_variable+026H
-000738 E0                MOVX     A,@DPTR
-000739 7018              JNZ      ?C0026?SYS
-00073B 904CE2            MOV      DPTR,#g_variable+023H
-00073E E0                MOVX     A,@DPTR
-00073F 7012              JNZ      ?C0026?SYS
-  217: 			{
-  218: 				if(!g_variable.sys_scrolllockled_on_timer)
-000741 904CE8            MOV      DPTR,#g_variable+029H
-000744 E0                MOVX     A,@DPTR
-000745 7006              JNZ      ?C0040?SYS
-  219: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-000747 D201              SETB     ?_GPIO_Setout?BIT
-000749 7F1D              MOV      R7,#01DH
-00074B 8007              SJMP     _GPIO_Setout
-00074D         ?C0040?SYS:
-  220: 				else
-  221: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
-00074D C201              CLR      ?_GPIO_Setout?BIT
-00074F 7F1D              MOV      R7,#01DH
-000751 F154              ACALL    _GPIO_Setout
-  222: 			}
-  223: 		}		
-  224: 		
-  225: 	}	
-  226: }
-000753         ?C0026?SYS:
-000753 22                RET      
------ FUNCTION LED_timer500ms (END) -------
+----- FUNCTION LED_handle (BEGIN) -----
+ FILE: 'led.c'
+   52: void LED_handle()
+   53: {
+   54: 	if (power_on_flag != 2)
+   55: 		return;
+0006CF 904DE4            MOV     DPTR,#power_on_flag
+0006D2 E0                MOVX    A,@DPTR
+0006D3 6402              XRL     A,#02H
+0006D5 6002              JZ      $ + 4H
+0006D7 E1C7              AJMP    ?C0017?LED
+0006D9         ?C0016?LED:
+   56: 
+   57: 	if(!g_variable.pairing_timeout && !g_variable.pairing_g24_timeout)
+0006D9 904CE9            MOV     DPTR,#g_variable+02AH
+0006DC E0                MOVX    A,@DPTR
+0006DD 6002              JZ      $ + 4H
+0006DF E1C1              AJMP    ?C0018?LED
+0006E1 904CEE            MOV     DPTR,#g_variable+02FH
+0006E4 E0                MOVX    A,@DPTR
+0006E5 6002              JZ      $ + 4H
+0006E7 E1C1              AJMP    ?C0018?LED
+   58: 	{
+   59: 		//low battery LED process
+   60: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+0006E9 904CD5            MOV     DPTR,#g_variable+016H
+0006EC E0                MOVX    A,@DPTR
+0006ED B40204            CJNE    A,#02H,?C0019?LED
+   61: 		{
+   62: 			System_long_sleep();
+0006F0 F1DA              ACALL   System_long_sleep
+   63: 		}
+0006F2 802E              SJMP    ?C0020?LED
+0006F4         ?C0019?LED:
+   64: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
+0006F4 904CD5            MOV     DPTR,#g_variable+016H
+0006F7 E0                MOVX    A,@DPTR
+0006F8 B40114            CJNE    A,#01H,?C0021?LED
+   65: 		{
+   66: 			if (g_variable.battery_low_led_flash_flag == 0)
+0006FB 904CF7            MOV     DPTR,#g_variable+038H
+0006FE E0                MOVX    A,@DPTR
+0006FF 7021              JNZ     ?C0020?LED
+   67: 			{
+   68: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+000701 904CE2            MOV     DPTR,#g_variable+023H
+000704 7418              MOV     A,#018H
+000706 F0                MOVX    @DPTR,A
+   69: 				g_variable.battery_low_led_flash_flag = 1;
+000707 904CF7            MOV     DPTR,#g_variable+038H
+00070A 7401              MOV     A,#01H
+00070C F0                MOVX    @DPTR,A
+   70: 			}
+   71: 		}
+00070D 8013              SJMP    ?C0020?LED
+00070F         ?C0021?LED:
+   72: 		else
+   73: 		{
+   74: 			if (g_variable.battery_low_led_flash_flag == 1)
+00070F 904CF7            MOV     DPTR,#g_variable+038H
+000712 E0                MOVX    A,@DPTR
+000713 B4010C            CJNE    A,#01H,?C0020?LED
+   75: 			{
+   76: 				g_variable.battery_low_led_flash_flag = 0;
+000716 E4                CLR     A
+000717 F0                MOVX    @DPTR,A
+   77: 				g_variable.battery_low_led_flash_interval = 0;
+000718 904CE2            MOV     DPTR,#g_variable+023H
+00071B F0                MOVX    @DPTR,A
+   78: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+00071C D201              SETB    ?_GPIO_Setout?BIT
+00071E 7F1D              MOV     R7,#01DH
+000720 F1C8              ACALL   _GPIO_Setout
+   79: 			}
+   80: 		}
+000722         ?C0020?LED:
+   81: 
+   82: 		//capslock  numlock  scrolllock LED process
+   83: 		if (YC_check_is_connected())
+000722 D1C2              ACALL   YC_check_is_connected
+000724 EF                MOV     A,R7
+000725 7002              JNZ     $ + 4H
+000727 E1B5              AJMP    ?C0025?LED
+   84: 		{
+   85: 			if(m_caps_num_lock != m_caps_num_lock_last)
+000729 904DD9            MOV     DPTR,#m_caps_num_lock_last
+00072C E0                MOVX    A,@DPTR
+00072D FF                MOV     R7,A
+00072E 904CB7            MOV     DPTR,#m_caps_num_lock
+000731 E0                MOVX    A,@DPTR
+000732 6F                XRL     A,R7
+000733 7002              JNZ     $ + 4H
+000735 E1C7              AJMP    ?C0017?LED
+   86: 			{
+   87: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
+000737 E0                MOVX    A,@DPTR
+000738 30E00E            JNB     ACC.0,?C0027?LED
+   88: 				{
+   89: 					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+00073B 904CE6            MOV     DPTR,#g_variable+027H
+00073E 743C              MOV     A,#03CH
+000740 F0                MOVX    @DPTR,A
+   90: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
+000741 C201              CLR     ?_GPIO_Setout?BIT
+000743 7F10              MOV     R7,#010H
+000745 F1C8              ACALL   _GPIO_Setout
+   91: 				}
+000747 800B              SJMP    ?C0028?LED
+000749         ?C0027?LED:
+   92: 				else
+   93: 				{
+   94: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+000749 D201              SETB    ?_GPIO_Setout?BIT
+00074B 7F10              MOV     R7,#010H
+00074D F1C8              ACALL   _GPIO_Setout
+   95: 					g_variable.sys_numlockled_on_timer = 0;
+00074F E4                CLR     A
+000750 904CE6            MOV     DPTR,#g_variable+027H
+000753 F0                MOVX    @DPTR,A
+   96: 				}
+000754         ?C0028?LED:
+   97: 				
+   98: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+000754 904CB7            MOV     DPTR,#m_caps_num_lock
+000757 E0                MOVX    A,@DPTR
+000758 30E10E            JNB     ACC.1,?C0029?LED
+   99: 				{
+  100: 					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+00075B 904CE7            MOV     DPTR,#g_variable+028H
+00075E 743C              MOV     A,#03CH
+000760 F0                MOVX    @DPTR,A
+  101: 					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+000761 C201              CLR     ?_GPIO_Setout?BIT
+000763 7F0F              MOV     R7,#0FH
+000765 F1C8              ACALL   _GPIO_Setout
+  102: 				}
+000767 800B              SJMP    ?C0030?LED
+000769         ?C0029?LED:
+  103: 				else 
+  104: 				{
+  105: 					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+000769 D201              SETB    ?_GPIO_Setout?BIT
+00076B 7F0F              MOV     R7,#0FH
+00076D F1C8              ACALL   _GPIO_Setout
+  106: 					g_variable.sys_capslockled_on_timer = 0;
+00076F E4                CLR     A
+000770 904CE7            MOV     DPTR,#g_variable+028H
+000773 F0                MOVX    @DPTR,A
+  107: 				}	
+000774         ?C0030?LED:
+  108: 
+  109: 				
+  110: 				if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+000774 904CB7            MOV     DPTR,#m_caps_num_lock
+000777 E0                MOVX    A,@DPTR
+000778 30E21A            JNB     ACC.2,?C0031?LED
+  111: 				{
+  112: 					g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+00077B 904CE8            MOV     DPTR,#g_variable+029H
+00077E 743C              MOV     A,#03CH
+000780 F0                MOVX    @DPTR,A
+  113: 					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
+000781 904CE5            MOV     DPTR,#g_variable+026H
+000784 E0                MOVX    A,@DPTR
+000785 7025              JNZ     ?C0033?LED
+000787 904CE2            MOV     DPTR,#g_variable+023H
+00078A E0                MOVX    A,@DPTR
+00078B 701F              JNZ     ?C0033?LED
+  114: 						GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+00078D C201              CLR     ?_GPIO_Setout?BIT
+00078F 7F1D              MOV     R7,#01DH
+000791 F1C8              ACALL   _GPIO_Setout
+  115: 				}
+000793 8017              SJMP    ?C0033?LED
+000795         ?C0031?LED:
+  116: 				else 
+  117: 				{
+  118: 					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
+000795 904CE5            MOV     DPTR,#g_variable+026H
+000798 E0                MOVX    A,@DPTR
+000799 700C              JNZ     ?C0034?LED
+00079B 904CE2            MOV     DPTR,#g_variable+023H
+00079E E0                MOVX    A,@DPTR
+00079F 7006              JNZ     ?C0034?LED
+  119: 						GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+0007A1 D201              SETB    ?_GPIO_Setout?BIT
+0007A3 7F1D              MOV     R7,#01DH
+0007A5 F1C8              ACALL   _GPIO_Setout
+0007A7         ?C0034?LED:
+  120: 					g_variable.sys_scrolllockled_on_timer = 0;
+0007A7 E4                CLR     A
+0007A8 904CE8            MOV     DPTR,#g_variable+029H
+0007AB F0                MOVX    @DPTR,A
+  121: 				}
+0007AC         ?C0033?LED:
+  122: 					
+  123: 				m_caps_num_lock_last = m_caps_num_lock;
+0007AC 904CB7            MOV     DPTR,#m_caps_num_lock
+0007AF E0                MOVX    A,@DPTR
+0007B0 904DD9            MOV     DPTR,#m_caps_num_lock_last
+0007B3 F0                MOVX    @DPTR,A
+  124: 			}
+  125: 		}
+0007B4 22                RET     
+0007B5         ?C0025?LED:
+  126: 		else
+  127: 		{
+  128: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+0007B5 D201              SETB    ?_GPIO_Setout?BIT
+0007B7 7F10              MOV     R7,#010H
+0007B9 F1C8              ACALL   _GPIO_Setout
+  129: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+0007BB D201              SETB    ?_GPIO_Setout?BIT
+0007BD 7F0F              MOV     R7,#0FH
+0007BF 8007              SJMP    _GPIO_Setout
+  130: 		}
+  131: 	}
+0007C1         ?C0018?LED:
+  132: 	else
+  133: 	{
+  134: 		GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+0007C1 D201              SETB    ?_GPIO_Setout?BIT
+0007C3 7F10              MOV     R7,#010H
+0007C5 F1C8              ACALL   _GPIO_Setout
+  135: 
+  136: 	}
+  137: 
+  138: }
+0007C7         ?C0017?LED:
+0007C7 22                RET     
+----- FUNCTION LED_handle (END) -------
 
 
 ----- FUNCTION _GPIO_Setout (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-000754 EF                MOV      A,R7
-000755 F4                CPL      A
-000756 600D              JZ       ?C0007?GPIO
-000758         ?C0006?GPIO:
-000758 7B01              MOV      R3,#01H
-00075A 7A80              MOV      R2,#080H
-00075C 7974              MOV      R1,#074H
-00075E A201              MOV      C,bit_val
-000760 9200              MOV      ?_gpioSetBit?BIT,C
-000762 121F09            LCALL    _gpioSetBit
-000765         ?C0007?GPIO:
-000765 22                RET      
+0007C8 EF                MOV     A,R7
+0007C9 F4                CPL     A
+0007CA 600D              JZ      ?C0007?GPIO
+0007CC         ?C0006?GPIO:
+0007CC 7B01              MOV     R3,#01H
+0007CE 7A80              MOV     R2,#080H
+0007D0 7974              MOV     R1,#074H
+0007D2 A201              MOV     C,bit_val
+0007D4 9200              MOV     ?_gpioSetBit?BIT,C
+0007D6 1214F4            LCALL   _gpioSetBit
+0007D9         ?C0007?GPIO:
+0007D9 22                RET     
 ----- FUNCTION _GPIO_Setout (END) -------
 
 
------ FUNCTION _GPIO_FlipOutBit (BEGIN) -----
-000766 904EA5            MOV      DPTR,#gpio_num
-000769 EF                MOV      A,R7
-00076A F0                MOVX     @DPTR,A
-00076B 7B01              MOV      R3,#01H
-00076D 7A80              MOV      R2,#080H
-00076F 7974              MOV      R1,#074H
-000771 121561            LCALL    _gpioGetBit
-000774 9209              MOV      st,C
-000776 904EA5            MOV      DPTR,#gpio_num
-000779 E0                MOVX     A,@DPTR
-00077A FF                MOV      R7,A
-00077B A209              MOV      C,st
-00077D B3                CPL      C
-00077E 9201              MOV      ?_GPIO_Setout?BIT,C
-000780 80D2              SJMP     _GPIO_Setout
------ FUNCTION _GPIO_FlipOutBit (END) -------
-
-
------ FUNCTION _GPIO_SetOutput (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R4' ----
-000782 AC07              MOV      R4,AR7
-000784 EC                MOV      A,R4
-000785 F4                CPL      A
-000786 6016              JZ       ?C0017?GPIO
-000788         ?C0016?GPIO:
-000788 AF04              MOV      R7,AR4
-00078A D204              SETB     ?_GPIO_Setoe?BIT
-00078C 121EF8            LCALL    _GPIO_Setoe
-00078F AF04              MOV      R7,AR4
-000791 A206              MOV      C,st
-000793 9201              MOV      ?_GPIO_Setout?BIT,C
-000795 F154              ACALL    _GPIO_Setout
-000797 AF04              MOV      R7,AR4
-000799 C202              CLR      ?_GPIO_SetPu?BIT
-00079B 121ED6            LCALL    _GPIO_SetPu
-00079E         ?C0017?GPIO:
-00079E 22                RET      
------ FUNCTION _GPIO_SetOutput (END) -------
-
-
------ FUNCTION LED_device_poweron (BEGIN) -----
- FILE: 'led.c'
-   15: void LED_device_poweron()
-   16: {
-   17: 	if(g_variable.current_device_num == 1)
-   18: 		GPIO_Setout(BT_LED_GPIO,LED_ON);
-00079F 904CC3            MOV      DPTR,#g_variable+04H
-0007A2 E0                MOVX     A,@DPTR
-0007A3 6401              XRL      A,#01H
-0007A5 7006              JNZ      ?C0002?LED
-   19: 	else if(g_variable.current_device_num == 2)
-0007A7 C201              CLR      ?_GPIO_Setout?BIT
-0007A9 7FFF              MOV      R7,#0FFH
-0007AB 80A7              SJMP     _GPIO_Setout
-0007AD         ?C0002?LED:
-   20: 		GPIO_Setout(BT2_LED_GPIO,LED_ON);
-0007AD 904CC3            MOV      DPTR,#g_variable+04H
-0007B0 E0                MOVX     A,@DPTR
-0007B1 6402              XRL      A,#02H
-0007B3 7006              JNZ      ?C0004?LED
-   21: 	else if(g_variable.current_device_num == 3)
-0007B5 C201              CLR      ?_GPIO_Setout?BIT
-0007B7 7FFF              MOV      R7,#0FFH
-0007B9 8099              SJMP     _GPIO_Setout
-0007BB         ?C0004?LED:
-   22: 	{	
-0007BB 904CC3            MOV      DPTR,#g_variable+04H
-0007BE E0                MOVX     A,@DPTR
-0007BF 6403              XRL      A,#03H
-0007C1 700C              JNZ      ?C0006?LED
-   23: 		GPIO_SetOutput(BT_LED_GPIO,LED_ON);
-   24: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_ON);
-0007C3 C206              CLR      ?_GPIO_SetOutput?BIT
-0007C5 7FFF              MOV      R7,#0FFH
-0007C7 F182              ACALL    _GPIO_SetOutput
-   25: 	}
-0007C9 C206              CLR      ?_GPIO_SetOutput?BIT
-0007CB 7F1D              MOV      R7,#01DH
-0007CD 80B3              SJMP     _GPIO_SetOutput
-   26: 	else
-0007CF         ?C0006?LED:
-   27: 	{
-   28: 		GPIO_Setout(BT2_LED_GPIO,LED_ON);
-0007CF C201              CLR      ?_GPIO_Setout?BIT
-0007D1 7FFF              MOV      R7,#0FFH
-0007D3 F154              ACALL    _GPIO_Setout
-   29: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_ON);
-0007D5 C206              CLR      ?_GPIO_SetOutput?BIT
-0007D7 7F1D              MOV      R7,#01DH
-0007D9 80A7              SJMP     _GPIO_SetOutput
-   30: 	}
------ FUNCTION LED_device_poweron (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);
-0007DB D206              SETB     ?_GPIO_SetOutput?BIT
-0007DD 7F10              MOV      R7,#010H
-0007DF F182              ACALL    _GPIO_SetOutput
-    8: 	GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
-0007E1 D206              SETB     ?_GPIO_SetOutput?BIT
-0007E3 7F0F              MOV      R7,#0FH
-0007E5 F182              ACALL    _GPIO_SetOutput
-    9: 	GPIO_SetOutput(BT2_LED_GPIO,LED_OFF);	
-0007E7 D206              SETB     ?_GPIO_SetOutput?BIT
-0007E9 7FFF              MOV      R7,#0FFH
-0007EB F182              ACALL    _GPIO_SetOutput
-   10: 	GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
-0007ED D206              SETB     ?_GPIO_SetOutput?BIT
-0007EF 7FFF              MOV      R7,#0FFH
-0007F1 F182              ACALL    _GPIO_SetOutput
-   11: //	GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
-0007F3 D206              SETB     ?_GPIO_SetOutput?BIT
-0007F5 7F1D              MOV      R7,#01DH
-0007F7 8089              SJMP     _GPIO_SetOutput
-   12: }
------ FUNCTION LED_all_shutdown (END) -------
-
-
------ FUNCTION System_Hardware_init (BEGIN) -----
+----- FUNCTION System_long_sleep (BEGIN) -----
  FILE: 'sys.c'
-   40: static void System_Hardware_init()
-   41: {
-   42: 	KS_Initialize();
-   43: 	LED_all_shutdown();
-0007F9 120FA9            LCALL    KS_Initialize
-   44: }
-0007FC 80DD              SJMP     LED_all_shutdown
------ FUNCTION System_Hardware_init (END) -------
+   63: void System_long_sleep()
+   64: { 
+   65: 	LED_all_shutdown();
+   66: 	m_24g_pairing_sm = 0xff;
+0007DA 1213E1            LCALL   LED_all_shutdown
+   67: 	m_24g_enter_hibernate[0]	= 0xff;
+0007DD 904BEF            MOV     DPTR,#m_24g_pairing_sm
+0007E0 74FF              MOV     A,#0FFH
+0007E2 F0                MOVX    @DPTR,A
+   68: 	m_24g_enter_hibernate[1]	= 0xff;
+0007E3 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+0007E6 F0                MOVX    @DPTR,A
+   69: 	m_24g_enter_hibernate[2]	= 0xff;
+0007E7 A3                INC     DPTR
+0007E8 F0                MOVX    @DPTR,A
+   70: 	m_24g_enter_hibernate[3]	= 0xff;
+0007E9 A3                INC     DPTR
+0007EA F0                MOVX    @DPTR,A
+   71: }
+0007EB A3                INC     DPTR
+0007EC F0                MOVX    @DPTR,A
+   72: 
+0007ED 22                RET     
+----- FUNCTION System_long_sleep (END) -------
 
 
 ----- FUNCTION YC_check_need_reconnected (BEGIN) -----
@@ -331,63 +314,62 @@
    15: 	byte return_val = 0;
    16: 
 ;---- Variable 'return_val' assigned to Register 'R7' ----
-0007FE E4                CLR      A
-0007FF FF                MOV      R7,A
+0007EE E4                CLR     A
+0007EF FF                MOV     R7,A
    17: 	if(g_variable.pairing_g24_timeout)
-000800 904CEE            MOV      DPTR,#g_variable+02FH
-000803 E0                MOVX     A,@DPTR
-000804 6001              JZ       ?C0003?BLUETOOTH
+0007F0 904CEE            MOV     DPTR,#g_variable+02FH
+0007F3 E0                MOVX    A,@DPTR
+0007F4 6001              JZ      ?C0003?BLUETOOTH
    18: 		return return_val;
-000806 22                RET      
-000807         ?C0003?BLUETOOTH:
+0007F6 22                RET     
+0007F7         ?C0003?BLUETOOTH:
    19: 
    20: 	if (g_variable.g24_currentState != CHANGE_TO_24G_CONNECTED)
-000807 904CC5            MOV      DPTR,#g_variable+06H
-00080A E0                MOVX     A,@DPTR
-00080B 6403              XRL      A,#03H
-00080D 601D              JZ       ?C0005?BLUETOOTH
+0007F7 904CC5            MOV     DPTR,#g_variable+06H
+0007FA E0                MOVX    A,@DPTR
+0007FB 6403              XRL     A,#03H
+0007FD 601C              JZ      ?C0005?BLUETOOTH
    21: 	{
    22: 		if(g_variable.recon_delay == 0)
-00080F 904CEF            MOV      DPTR,#g_variable+030H
-000812 E0                MOVX     A,@DPTR
-000813 701E              JNZ      ?C0008?BLUETOOTH
+0007FF 904CEF            MOV     DPTR,#g_variable+030H
+000802 E0                MOVX    A,@DPTR
+000803 701D              JNZ     ?C0008?BLUETOOTH
    23: 		{
    24: 			g_variable.recon_delay = 10;
-000815 740A              MOV      A,#0AH
-000817 F0                MOVX     @DPTR,A
+000805 740A              MOV     A,#0AH
+000807 F0                MOVX    @DPTR,A
    25: 			if ((g_variable.recon_count == 0)
-000818 A3                INC      DPTR
-000819 E0                MOVX     A,@DPTR
-00081A 7017              JNZ      ?C0008?BLUETOOTH
-00081C 904DE4            MOV      DPTR,#power_on_flag
-00081F E0                MOVX     A,@DPTR
-000820 6402              XRL      A,#02H
-000822 700F              JNZ      ?C0008?BLUETOOTH
+000808 A3                INC     DPTR
+000809 E0                MOVX    A,@DPTR
+00080A 7016              JNZ     ?C0008?BLUETOOTH
+00080C 904DE4            MOV     DPTR,#power_on_flag
+00080F E0                MOVX    A,@DPTR
+000810 B4020F            CJNE    A,#02H,?C0008?BLUETOOTH
    26: 			&& (power_on_flag == 2))
    27: 			{				
    28: 				YC_key_action_handle(KEY_OPEN_24G);
-000824 7F09              MOV      R7,#09H
-000826 1134              ACALL    _YC_key_action_handle
+000813 7F09              MOV     R7,#09H
+000815 1123              ACALL   _YC_key_action_handle
    29: 				return_val = 1;
-000828 7F01              MOV      R7,#01H
+000817 7F01              MOV     R7,#01H
    30: 			}
    31: 		}
    32: 	}
-00082A 8007              SJMP     ?C0008?BLUETOOTH
-00082C         ?C0005?BLUETOOTH:
+000819 8007              SJMP    ?C0008?BLUETOOTH
+00081B         ?C0005?BLUETOOTH:
    33: 	else
    34: 	{
    35: 		g_variable.release_data = 0;
-00082C E4                CLR      A
-00082D 904CEB            MOV      DPTR,#g_variable+02CH
-000830 F0                MOVX     @DPTR,A
+00081B E4                CLR     A
+00081C 904CEB            MOV     DPTR,#g_variable+02CH
+00081F F0                MOVX    @DPTR,A
    36: 		return_val = 1;
-000831 7F01              MOV      R7,#01H
+000820 7F01              MOV     R7,#01H
    37: 	}
-000833         ?C0008?BLUETOOTH:
+000822         ?C0008?BLUETOOTH:
    38: 	return return_val;
    39: }
-000833 22                RET      
+000822 22                RET     
 ----- FUNCTION YC_check_need_reconnected (END) -------
 
 
@@ -395,299 +377,296 @@
  FILE: 'kb_process.c'
     3: void YC_key_action_handle(byte key_num)
     4: {
-000834 904E9C            MOV      DPTR,#key_num
-000837 EF                MOV      A,R7
-000838 F0                MOVX     @DPTR,A
+000823 904E9C            MOV     DPTR,#key_num
+000826 EF                MOV     A,R7
+000827 F0                MOVX    @DPTR,A
     5: 	switch (key_num)
     6: 	{
-000839 24F7              ADD      A,#0F7H
-00083B 6009              JZ       ?C0003?KB_PROCESS
-00083D 14                DEC      A
-00083E 605D              JZ       ?C0005?KB_PROCESS
-000840 2402              ADD      A,#02H
-000842 6002              JZ       $ + 4H
-000844 01DF              AJMP     ?C0009?KB_PROCESS
+000828 24F7              ADD     A,#0F7H
+00082A 6009              JZ      ?C0003?KB_PROCESS
+00082C 14                DEC     A
+00082D 605D              JZ      ?C0005?KB_PROCESS
+00082F 2402              ADD     A,#02H
+000831 6002              JZ      $ + 4H
+000833 01CF              AJMP    ?C0009?KB_PROCESS
     7: 	case KEY_START_24G:
     8: 	case KEY_OPEN_24G:
     9: 		g_variable.recon_count = 0;
-000846         ?C0003?KB_PROCESS:
+000835         ?C0003?KB_PROCESS:
    10: 
-000846 E4                CLR      A
-000847 904CF0            MOV      DPTR,#g_variable+031H
-00084A F0                MOVX     @DPTR,A
+000835 E4                CLR     A
+000836 904CF0            MOV     DPTR,#g_variable+031H
+000839 F0                MOVX    @DPTR,A
    11: 		IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
-00084B 7B01              MOV      R3,#01H
-00084D 7A4C              MOV      R2,#HIGH m_24g_addr
-00084F 7900              MOV      R1,#LOW m_24g_addr
-000851 7D04              MOV      R5,#04H
-000853 FC                MOV      R4,A
-000854 7FF2              MOV      R7,#0F2H
-000856 7E3F              MOV      R6,#03FH
-000858 51DC              ACALL    _IIC_Read
+00083A 7B01              MOV     R3,#01H
+00083C 7A4C              MOV     R2,#HIGH m_24g_addr
+00083E 7900              MOV     R1,#LOW m_24g_addr
+000840 7D04              MOV     R5,#04H
+000842 FC                MOV     R4,A
+000843 7FF2              MOV     R7,#0F2H
+000845 7E3F              MOV     R6,#03FH
+000847 51CE              ACALL   _IIC_Read
    12: 		Delay1ms(10);
-00085A 7F0A              MOV      R7,#0AH
-00085C 5180              ACALL    _Delay1ms
+000849 7F0A              MOV     R7,#0AH
+00084B 5172              ACALL   _Delay1ms
    13: 		fast_connect_flag = 0;
-00085E E4                CLR      A
-00085F 904DF1            MOV      DPTR,#fast_connect_flag
-000862 F0                MOVX     @DPTR,A
+00084D E4                CLR     A
+00084E 904DF1            MOV     DPTR,#fast_connect_flag
+000851 F0                MOVX    @DPTR,A
    14: 		if (m_24g_addr[0] == 0xff && m_24g_addr[1] == 0xff && m_24g_addr[2] == 0xff && m_24g_addr[3] == 0xff)
-000863 904C00            MOV      DPTR,#m_24g_addr
-000866 E0                MOVX     A,@DPTR
-000867 F4                CPL      A
-000868 7021              JNZ      ?C0004?KB_PROCESS
-00086A A3                INC      DPTR
-00086B E0                MOVX     A,@DPTR
-00086C F4                CPL      A
-00086D 701C              JNZ      ?C0004?KB_PROCESS
-00086F A3                INC      DPTR
-000870 E0                MOVX     A,@DPTR
-000871 F4                CPL      A
-000872 7017              JNZ      ?C0004?KB_PROCESS
-000874 A3                INC      DPTR
-000875 E0                MOVX     A,@DPTR
-000876 F4                CPL      A
-000877 7012              JNZ      ?C0004?KB_PROCESS
+000852 904C00            MOV     DPTR,#m_24g_addr
+000855 E0                MOVX    A,@DPTR
+000856 F4                CPL     A
+000857 7021              JNZ     ?C0004?KB_PROCESS
+000859 A3                INC     DPTR
+00085A E0                MOVX    A,@DPTR
+00085B B4FF1C            CJNE    A,#0FFH,?C0004?KB_PROCESS
+00085E A3                INC     DPTR
+00085F E0                MOVX    A,@DPTR
+000860 B4FF17            CJNE    A,#0FFH,?C0004?KB_PROCESS
+000863 A3                INC     DPTR
+000864 E0                MOVX    A,@DPTR
+000865 B4FF12            CJNE    A,#0FFH,?C0004?KB_PROCESS
    15: 		{
    16: 			m_24g_addr[0] = 0x0f;
-000879 904C00            MOV      DPTR,#m_24g_addr
-00087C 740F              MOV      A,#0FH
-00087E F0                MOVX     @DPTR,A
+000868 904C00            MOV     DPTR,#m_24g_addr
+00086B 740F              MOV     A,#0FH
+00086D F0                MOVX    @DPTR,A
    17: 			m_24g_addr[1] = 0x0f;
-00087F A3                INC      DPTR
-000880 F0                MOVX     @DPTR,A
+00086E A3                INC     DPTR
+00086F F0                MOVX    @DPTR,A
    18: 			m_24g_addr[2] = 0x0f;
-000881 A3                INC      DPTR
-000882 F0                MOVX     @DPTR,A
+000870 A3                INC     DPTR
+000871 F0                MOVX    @DPTR,A
    19: 			m_24g_addr[3] = 0x0f;
-000883 A3                INC      DPTR
-000884 F0                MOVX     @DPTR,A
+000872 A3                INC     DPTR
+000873 F0                MOVX    @DPTR,A
    20: 			fast_connect_flag = 1;
-000885 904DF1            MOV      DPTR,#fast_connect_flag
-000888 7401              MOV      A,#01H
-00088A F0                MOVX     @DPTR,A
+000874 904DF1            MOV     DPTR,#fast_connect_flag
+000877 7401              MOV     A,#01H
+000879 F0                MOVX    @DPTR,A
    21: 		}
-00088B         ?C0004?KB_PROCESS:
+00087A         ?C0004?KB_PROCESS:
    22: 		IPC_TxControlCmd(IPC_CMD_START_24G);
-00088B 7F21              MOV      R7,#021H
-00088D 11E5              ACALL    _IPC_TxControlCmd
+00087A 7F21              MOV     R7,#021H
+00087C 11D5              ACALL   _IPC_TxControlCmd
    23: 		
    24: 		g_variable.g24_currentState = CHANGE_TO_24G_CONNECTING;
-00088F 904CC5            MOV      DPTR,#g_variable+06H
-000892 7402              MOV      A,#02H
-000894 F0                MOVX     @DPTR,A
+00087E 904CC5            MOV     DPTR,#g_variable+06H
+000881 7402              MOV     A,#02H
+000883 F0                MOVX    @DPTR,A
    25: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
-000895 E4                CLR      A
-000896 A3                INC      DPTR
-000897 F0                MOVX     @DPTR,A
+000884 E4                CLR     A
+000885 A3                INC     DPTR
+000886 F0                MOVX    @DPTR,A
    26: 		g_variable.key_action = KEY_NONE;
-000898 904CED            MOV      DPTR,#g_variable+02EH
-00089B F0                MOVX     @DPTR,A
+000887 904CED            MOV     DPTR,#g_variable+02EH
+00088A F0                MOVX    @DPTR,A
    27: 		
    28: 		break;
-00089C 22                RET      
+00088B 22                RET     
    29: 	case KEY_PAIRING_24G:
-00089D         ?C0005?KB_PROCESS:
+00088C         ?C0005?KB_PROCESS:
    30: 		g_variable.recon_count = 0;
-00089D E4                CLR      A
-00089E 904CF0            MOV      DPTR,#g_variable+031H
-0008A1 F0                MOVX     @DPTR,A
+00088C E4                CLR     A
+00088D 904CF0            MOV     DPTR,#g_variable+031H
+000890 F0                MOVX    @DPTR,A
    31: 		if (YC_disconnect_all_link())
-0008A2 F1D4              ACALL    YC_disconnect_all_link
-0008A4 EF                MOV      A,R7
-0008A5 6009              JZ       ?C0006?KB_PROCESS
+000891 121085            LCALL   YC_disconnect_all_link
+000894 EF                MOV     A,R7
+000895 6009              JZ      ?C0006?KB_PROCESS
    32: 		{
    33: 			g_variable.key_action = key_num;
-0008A7 904E9C            MOV      DPTR,#key_num
-0008AA E0                MOVX     A,@DPTR
-0008AB 904CED            MOV      DPTR,#g_variable+02EH
-0008AE F0                MOVX     @DPTR,A
+000897 904E9C            MOV     DPTR,#key_num
+00089A E0                MOVX    A,@DPTR
+00089B 904CED            MOV     DPTR,#g_variable+02EH
+00089E F0                MOVX    @DPTR,A
    34: 		}
-0008AF 22                RET      
-0008B0         ?C0006?KB_PROCESS:
+00089F 22                RET     
+0008A0         ?C0006?KB_PROCESS:
    35: 		else
    36: 		{
    37: 			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
-0008B0 904CC5            MOV      DPTR,#g_variable+06H
-0008B3 E0                MOVX     A,@DPTR
-0008B4 6401              XRL      A,#01H
-0008B6 6021              JZ       ?C0008?KB_PROCESS
+0008A0 904CC5            MOV     DPTR,#g_variable+06H
+0008A3 E0                MOVX    A,@DPTR
+0008A4 6401              XRL     A,#01H
+0008A6 6021              JZ      ?C0008?KB_PROCESS
    38: 			{
    39: 				fast_connect_flag = 0;
-0008B8 E4                CLR      A
-0008B9 904DF1            MOV      DPTR,#fast_connect_flag
-0008BC F0                MOVX     @DPTR,A
+0008A8 E4                CLR     A
+0008A9 904DF1            MOV     DPTR,#fast_connect_flag
+0008AC F0                MOVX    @DPTR,A
    40: 				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
-0008BD 7F23              MOV      R7,#023H
-0008BF 11E5              ACALL    _IPC_TxControlCmd
+0008AD 7F23              MOV     R7,#023H
+0008AF 11D5              ACALL   _IPC_TxControlCmd
    41: 				g_variable.g24_currentState = CHANGE_TO_24G_PAIRING;
-0008C1 904CC5            MOV      DPTR,#g_variable+06H
-0008C4 7401              MOV      A,#01H
-0008C6 F0                MOVX     @DPTR,A
+0008B1 904CC5            MOV     DPTR,#g_variable+06H
+0008B4 7401              MOV     A,#01H
+0008B6 F0                MOVX    @DPTR,A
    42: 				g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
-0008C7 E4                CLR      A
-0008C8 A3                INC      DPTR
-0008C9 F0                MOVX     @DPTR,A
+0008B7 E4                CLR     A
+0008B8 A3                INC     DPTR
+0008B9 F0                MOVX    @DPTR,A
    43: 				g_variable.pairing_g24_timeout = BT_PAIRING_TIME_OUT_1MIN;
-0008CA 904CEE            MOV      DPTR,#g_variable+02FH
-0008CD 7478              MOV      A,#078H
-0008CF F0                MOVX     @DPTR,A
+0008BA 904CEE            MOV     DPTR,#g_variable+02FH
+0008BD 7478              MOV     A,#078H
+0008BF F0                MOVX    @DPTR,A
    44: 				g_variable.pairing_timeout = 0;
-0008D0 E4                CLR      A
-0008D1 904CE9            MOV      DPTR,#g_variable+02AH
-0008D4 F0                MOVX     @DPTR,A
+0008C0 E4                CLR     A
+0008C1 904CE9            MOV     DPTR,#g_variable+02AH
+0008C4 F0                MOVX    @DPTR,A
    45: 				g_variable.powerOn_timer = 0;
-0008D5 904CE5            MOV      DPTR,#g_variable+026H
-0008D8 F0                MOVX     @DPTR,A
+0008C5 904CE5            MOV     DPTR,#g_variable+026H
+0008C8 F0                MOVX    @DPTR,A
    46: 			}
-0008D9         ?C0008?KB_PROCESS:
+0008C9         ?C0008?KB_PROCESS:
    47: 			g_variable.key_action = KEY_NONE;
-0008D9 E4                CLR      A
-0008DA 904CED            MOV      DPTR,#g_variable+02EH
-0008DD F0                MOVX     @DPTR,A
+0008C9 E4                CLR     A
+0008CA 904CED            MOV     DPTR,#g_variable+02EH
+0008CD F0                MOVX    @DPTR,A
    48: 		}
    49: 		break;
-0008DE 22                RET      
+0008CE 22                RET     
    50: 	default:
-0008DF         ?C0009?KB_PROCESS:
+0008CF         ?C0009?KB_PROCESS:
    51: 		g_variable.key_action = KEY_NONE;
-0008DF E4                CLR      A
-0008E0 904CED            MOV      DPTR,#g_variable+02EH
-0008E3 F0                MOVX     @DPTR,A
+0008CF E4                CLR     A
+0008D0 904CED            MOV     DPTR,#g_variable+02EH
+0008D3 F0                MOVX    @DPTR,A
    52: 		break;
    53: 	}
    54: }
-0008E4 22                RET      
+0008D4 22                RET     
 ----- FUNCTION _YC_key_action_handle (END) -------
 
 
 ----- FUNCTION _IPC_TxControlCmd (BEGIN) -----
-0008E5 904E80            MOV      DPTR,#cmd
-0008E8 EF                MOV      A,R7
-0008E9 F0                MOVX     @DPTR,A
-0008EA 7881              MOV      R0,#LOW cmdBuff
-0008EC 7C4E              MOV      R4,#HIGH cmdBuff
-0008EE 7D01              MOV      R5,#01H
-0008F0 7BFF              MOV      R3,#0FFH
-0008F2 7A06              MOV      R2,#HIGH _?ix1000
-0008F4 79BF              MOV      R1,#LOW _?ix1000
-0008F6 7E00              MOV      R6,#00H
-0008F8 7F03              MOV      R7,#03H
-0008FA 120390            LCALL    ?C?COPY
-0008FD 904E80            MOV      DPTR,#cmd
-000900 E0                MOVX     A,@DPTR
-000901 904E83            MOV      DPTR,#cmdBuff+02H
-000904 F0                MOVX     @DPTR,A
-000905 7B01              MOV      R3,#01H
-000907 7A4E              MOV      R2,#HIGH cmdBuff
-000909 7981              MOV      R1,#LOW cmdBuff
-00090B 7D03              MOV      R5,#03H
-;----                  JMP      _ipcTx
+0008D5 904E80            MOV     DPTR,#cmd
+0008D8 EF                MOV     A,R7
+0008D9 F0                MOVX    @DPTR,A
+0008DA 7881              MOV     R0,#LOW cmdBuff
+0008DC 7C4E              MOV     R4,#HIGH cmdBuff
+0008DE 7D01              MOV     R5,#01H
+0008E0 7BFF              MOV     R3,#0FFH
+0008E2 7A06              MOV     R2,#HIGH _?ix1000
+0008E4 79BF              MOV     R1,#LOW _?ix1000
+0008E6 7E00              MOV     R6,#00H
+0008E8 7F03              MOV     R7,#03H
+0008EA 120390            LCALL   ?C?COPY
+0008ED 904E80            MOV     DPTR,#cmd
+0008F0 E0                MOVX    A,@DPTR
+0008F1 904E83            MOV     DPTR,#cmdBuff+02H
+0008F4 F0                MOVX    @DPTR,A
+0008F5 7B01              MOV     R3,#01H
+0008F7 7A4E              MOV     R2,#HIGH cmdBuff
+0008F9 7981              MOV     R1,#LOW cmdBuff
+0008FB 7D03              MOV     R5,#03H
+;----                  JMP     _ipcTx
 ----- FUNCTION _IPC_TxControlCmd (END) -------
 
 
 ----- FUNCTION _ipcTx (BEGIN) -----
-00090D 904E5D            MOV      DPTR,#src
-000910 EB                MOV      A,R3
-000911 F0                MOVX     @DPTR,A
-000912 A3                INC      DPTR
-000913 EA                MOV      A,R2
-000914 F0                MOVX     @DPTR,A
-000915 A3                INC      DPTR
-000916 E9                MOV      A,R1
-000917 F0                MOVX     @DPTR,A
-000918 A3                INC      DPTR
-000919 ED                MOV      A,R5
-00091A F0                MOVX     @DPTR,A
-00091B 904B9C            MOV      DPTR,#ipcTxWritePtr
-00091E E0                MOVX     A,@DPTR
-00091F FF                MOV      R7,A
-000920 A3                INC      DPTR
-000921 E0                MOVX     A,@DPTR
-000922 904E61            MOV      DPTR,#dest
-000925 CF                XCH      A,R7
-000926 F0                MOVX     @DPTR,A
-000927 A3                INC      DPTR
-000928 EF                MOV      A,R7
-000929 F0                MOVX     @DPTR,A
-00092A         ?C0008?IPC:
-00092A 904B9A            MOV      DPTR,#ipcTxReadPtr
-00092D E0                MOVX     A,@DPTR
-00092E FE                MOV      R6,A
-00092F A3                INC      DPTR
-000930 E0                MOVX     A,@DPTR
-000931 FF                MOV      R7,A
-000932 904B9C            MOV      DPTR,#ipcTxWritePtr
-000935 E0                MOVX     A,@DPTR
-000936 FC                MOV      R4,A
-000937 A3                INC      DPTR
-000938 E0                MOVX     A,@DPTR
-000939 FD                MOV      R5,A
-00093A 7B64              MOV      R3,#064H
-00093C 12237A            LCALL    _bufsize
-00093F 904E60            MOV      DPTR,#len
-000942 E0                MOVX     A,@DPTR
-000943 FE                MOV      R6,A
-000944 EF                MOV      A,R7
-000945 C3                CLR      C
-000946 9E                SUBB     A,R6
-000947 40E1              JC       ?C0008?IPC
-000949         ?C0009?IPC:
-000949         ?C0010?IPC:
-000949 904E60            MOV      DPTR,#len
-00094C E0                MOVX     A,@DPTR
-00094D FF                MOV      R7,A
-00094E 14                DEC      A
-00094F F0                MOVX     @DPTR,A
-000950 EF                MOV      A,R7
-000951 603F              JZ       ?C0011?IPC
-000953 904E5D            MOV      DPTR,#src
-000956 E0                MOVX     A,@DPTR
-000957 FB                MOV      R3,A
-000958 A3                INC      DPTR
-000959 E4                CLR      A
-00095A 75F001            MOV      B,#01H
-00095D 120424            LCALL    ?C?ILDIX
-000960 A9F0              MOV      R1,B
-000962 FA                MOV      R2,A
-000963 1203B6            LCALL    ?C?CLDPTR
-000966 FF                MOV      R7,A
-000967 904E61            MOV      DPTR,#dest
-00096A E4                CLR      A
-00096B 75F001            MOV      B,#01H
-00096E 120424            LCALL    ?C?ILDIX
-000971 85F082            MOV      DPL,B
-000974 F583              MOV      DPH,A
-000976 EF                MOV      A,R7
-000977 F0                MOVX     @DPTR,A
-000978 904E61            MOV      DPTR,#dest
-00097B E0                MOVX     A,@DPTR
-00097C FE                MOV      R6,A
-00097D A3                INC      DPTR
-00097E E0                MOVX     A,@DPTR
-00097F FF                MOV      R7,A
-000980 BE4BC6            CJNE     R6,#04BH,?C0010?IPC
-000983 BF36C3            CJNE     R7,#036H,?C0010?IPC
-000986 904E61            MOV      DPTR,#dest
-000989 744A              MOV      A,#04AH
-00098B F0                MOVX     @DPTR,A
-00098C A3                INC      DPTR
-00098D 74A0              MOV      A,#0A0H
-00098F F0                MOVX     @DPTR,A
-000990 80B7              SJMP     ?C0010?IPC
-000992         ?C0011?IPC:
-000992 904E61            MOV      DPTR,#dest
-000995 E0                MOVX     A,@DPTR
-000996 FF                MOV      R7,A
-000997 A3                INC      DPTR
-000998 E0                MOVX     A,@DPTR
-000999 904B9C            MOV      DPTR,#ipcTxWritePtr
-00099C CF                XCH      A,R7
-00099D F0                MOVX     @DPTR,A
-00099E A3                INC      DPTR
-00099F EF                MOV      A,R7
-0009A0 F0                MOVX     @DPTR,A
-0009A1 22                RET      
+0008FD 904E5D            MOV     DPTR,#src
+000900 EB                MOV     A,R3
+000901 F0                MOVX    @DPTR,A
+000902 A3                INC     DPTR
+000903 EA                MOV     A,R2
+000904 F0                MOVX    @DPTR,A
+000905 A3                INC     DPTR
+000906 E9                MOV     A,R1
+000907 F0                MOVX    @DPTR,A
+000908 A3                INC     DPTR
+000909 ED                MOV     A,R5
+00090A F0                MOVX    @DPTR,A
+00090B 904B9C            MOV     DPTR,#ipcTxWritePtr
+00090E E0                MOVX    A,@DPTR
+00090F FF                MOV     R7,A
+000910 A3                INC     DPTR
+000911 E0                MOVX    A,@DPTR
+000912 904E61            MOV     DPTR,#dest
+000915 CF                XCH     A,R7
+000916 F0                MOVX    @DPTR,A
+000917 A3                INC     DPTR
+000918 EF                MOV     A,R7
+000919 F0                MOVX    @DPTR,A
+00091A         ?C0008?IPC:
+00091A 904B9A            MOV     DPTR,#ipcTxReadPtr
+00091D E0                MOVX    A,@DPTR
+00091E FE                MOV     R6,A
+00091F A3                INC     DPTR
+000920 E0                MOVX    A,@DPTR
+000921 FF                MOV     R7,A
+000922 904B9C            MOV     DPTR,#ipcTxWritePtr
+000925 E0                MOVX    A,@DPTR
+000926 FC                MOV     R4,A
+000927 A3                INC     DPTR
+000928 E0                MOVX    A,@DPTR
+000929 FD                MOV     R5,A
+00092A 7B64              MOV     R3,#064H
+00092C 122345            LCALL   _bufsize
+00092F 904E60            MOV     DPTR,#len
+000932 E0                MOVX    A,@DPTR
+000933 FE                MOV     R6,A
+000934 EF                MOV     A,R7
+000935 C3                CLR     C
+000936 9E                SUBB    A,R6
+000937 40E1              JC      ?C0008?IPC
+000939         ?C0009?IPC:
+000939         ?C0010?IPC:
+000939 904E60            MOV     DPTR,#len
+00093C E0                MOVX    A,@DPTR
+00093D FF                MOV     R7,A
+00093E 14                DEC     A
+00093F F0                MOVX    @DPTR,A
+000940 EF                MOV     A,R7
+000941 603F              JZ      ?C0011?IPC
+000943 904E5D            MOV     DPTR,#src
+000946 E0                MOVX    A,@DPTR
+000947 FB                MOV     R3,A
+000948 A3                INC     DPTR
+000949 E4                CLR     A
+00094A 75F001            MOV     B,#01H
+00094D 120424            LCALL   ?C?ILDIX
+000950 A9F0              MOV     R1,B
+000952 FA                MOV     R2,A
+000953 1203B6            LCALL   ?C?CLDPTR
+000956 FF                MOV     R7,A
+000957 904E61            MOV     DPTR,#dest
+00095A E4                CLR     A
+00095B 75F001            MOV     B,#01H
+00095E 120424            LCALL   ?C?ILDIX
+000961 85F082            MOV     DPL,B
+000964 F583              MOV     DPH,A
+000966 EF                MOV     A,R7
+000967 F0                MOVX    @DPTR,A
+000968 904E61            MOV     DPTR,#dest
+00096B E0                MOVX    A,@DPTR
+00096C FE                MOV     R6,A
+00096D A3                INC     DPTR
+00096E E0                MOVX    A,@DPTR
+00096F FF                MOV     R7,A
+000970 BE4BC6            CJNE    R6,#04BH,?C0010?IPC
+000973 BF36C3            CJNE    R7,#036H,?C0010?IPC
+000976 904E61            MOV     DPTR,#dest
+000979 744A              MOV     A,#04AH
+00097B F0                MOVX    @DPTR,A
+00097C A3                INC     DPTR
+00097D 74A0              MOV     A,#0A0H
+00097F F0                MOVX    @DPTR,A
+000980 80B7              SJMP    ?C0010?IPC
+000982         ?C0011?IPC:
+000982 904E61            MOV     DPTR,#dest
+000985 E0                MOVX    A,@DPTR
+000986 FF                MOV     R7,A
+000987 A3                INC     DPTR
+000988 E0                MOVX    A,@DPTR
+000989 904B9C            MOV     DPTR,#ipcTxWritePtr
+00098C CF                XCH     A,R7
+00098D F0                MOVX    @DPTR,A
+00098E A3                INC     DPTR
+00098F EF                MOV     A,R7
+000990 F0                MOVX    @DPTR,A
+000991 22                RET     
 ----- FUNCTION _ipcTx (END) -------
 
 
@@ -695,234 +674,234 @@
  FILE: 'sys.c'
    92: static void kb_cb_event(byte evt)
    93: {
-0009A2 904EA1            MOV      DPTR,#evt
-0009A5 EF                MOV      A,R7
-0009A6 F0                MOVX     @DPTR,A
+000992 904EA1            MOV     DPTR,#evt
+000995 EF                MOV     A,R7
+000996 F0                MOVX    @DPTR,A
    94: 	switch (evt) 
    95: 	{
-0009A7 24D0              ADD      A,#0D0H
-0009A9 604B              JZ       ?C0014?SYS
-0009AB 14                DEC      A
-0009AC 604A              JZ       ?C0016?SYS
-0009AE 14                DEC      A
-0009AF 7002              JNZ      $ + 4H
-0009B1 4146              AJMP     ?C0020?SYS
-0009B3 14                DEC      A
-0009B4 600A              JZ       ?C0013?SYS
-0009B6 24F7              ADD      A,#0F7H
-0009B8 603E              JZ       ?C0016?SYS
-0009BA 240D              ADD      A,#0DH
-0009BC 6002              JZ       $ + 4H
-0009BE 417F              AJMP     ?C0024?SYS
+000997 24D0              ADD     A,#0D0H
+000999 604C              JZ      ?C0014?SYS
+00099B 14                DEC     A
+00099C 604C              JZ      ?C0016?SYS
+00099E 14                DEC     A
+00099F 7002              JNZ     $ + 4H
+0009A1 4138              AJMP    ?C0020?SYS
+0009A3 14                DEC     A
+0009A4 600A              JZ      ?C0013?SYS
+0009A6 24F7              ADD     A,#0F7H
+0009A8 6040              JZ      ?C0016?SYS
+0009AA 240D              ADD     A,#0DH
+0009AC 6002              JZ      $ + 4H
+0009AE 4171              AJMP    ?C0024?SYS
    96: 	case IPC_EVT_HIBERNATE_WAKE:
    97: 	case IPC_EVT_RESET:
    98: 		System_Hardware_init();
-0009C0         ?C0013?SYS:
+0009B0         ?C0013?SYS:
    99: 		System_Software_init();
-0009C0 1207F9            LCALL    System_Hardware_init
+0009B0 121463            LCALL   System_Hardware_init
   100: 		IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
-0009C3 121FAC            LCALL    System_Software_init
+0009B3 1220EF            LCALL   System_Software_init
   101: 		LED_device_poweron();
-0009C6 7B01              MOV      R3,#01H
-0009C8 7A4C              MOV      R2,#HIGH m_24g_addr
-0009CA 7900              MOV      R1,#LOW m_24g_addr
-0009CC 7D04              MOV      R5,#04H
-0009CE 7C00              MOV      R4,#00H
-0009D0 7FF2              MOV      R7,#0F2H
-0009D2 7E3F              MOV      R6,#03FH
-0009D4 51DC              ACALL    _IIC_Read
+0009B6 7B01              MOV     R3,#01H
+0009B8 7A4C              MOV     R2,#HIGH m_24g_addr
+0009BA 7900              MOV     R1,#LOW m_24g_addr
+0009BC 7D04              MOV     R5,#04H
+0009BE 7C00              MOV     R4,#00H
+0009C0 7FF2              MOV     R7,#0F2H
+0009C2 7E3F              MOV     R6,#03FH
+0009C4 51CE              ACALL   _IIC_Read
   102: 		Delay1ms(10);
-0009D6 12079F            LCALL    LED_device_poweron
+0009C6 121427            LCALL   LED_device_poweron
   103: 		IIC_Read(EEPROM_RECON_INFO_SYTEM_MODE,1 , (byte *)g_variable.system_mode);
-0009D9 7F0A              MOV      R7,#0AH
-0009DB 5180              ACALL    _Delay1ms
+0009C9 7F0A              MOV     R7,#0AH
+0009CB 5172              ACALL   _Delay1ms
   104: 		Delay1ms(10);
-0009DD 904CC1            MOV      DPTR,#g_variable+02H
-0009E0 E0                MOVX     A,@DPTR
-0009E1 F9                MOV      R1,A
-0009E2 7A00              MOV      R2,#00H
-0009E4 7B00              MOV      R3,#00H
-0009E6 7D01              MOV      R5,#01H
-0009E8 7C00              MOV      R4,#00H
-0009EA 7FF8              MOV      R7,#0F8H
-0009EC 7E3F              MOV      R6,#03FH
-0009EE 51DC              ACALL    _IIC_Read
+0009CD 904CC1            MOV     DPTR,#g_variable+02H
+0009D0 E0                MOVX    A,@DPTR
+0009D1 F9                MOV     R1,A
+0009D2 7A00              MOV     R2,#00H
+0009D4 7B00              MOV     R3,#00H
+0009D6 7D01              MOV     R5,#01H
+0009D8 7C00              MOV     R4,#00H
+0009DA 7FF8              MOV     R7,#0F8H
+0009DC 7E3F              MOV     R6,#03FH
+0009DE 51CE              ACALL   _IIC_Read
   105: 		YC_start_reconnect();
-0009F0 7F0A              MOV      R7,#0AH
-0009F2 5180              ACALL    _Delay1ms
+0009E0 7F0A              MOV     R7,#0AH
+0009E2 5172              ACALL   _Delay1ms
   106: 		break;
-0009F4 E192              AJMP     YC_start_reconnect
+0009E4 0217BC            LJMP    YC_start_reconnect
   107: 	case IPC_EVT_WAKEUP:
   108: 		KS_Initialize();
-0009F6         ?C0014?SYS:
+0009E7         ?C0014?SYS:
   109: 		break;
-0009F6 E1A9              AJMP     KS_Initialize
+0009E7 02147A            LJMP    KS_Initialize
   110: 
   111: 		
   112: // 2.4G event	
   113: 	case IPC_EVT_24G_PAIRING_COMPLETE:
   114: 	case IPC_EVT_24G_ATTEMPT_SUCCESS:
-0009F8         ?C0016?SYS:
+0009EA         ?C0016?SYS:
   115: 		g_variable.g24_currentState =  CHANGE_TO_24G_CONNECTED;
-0009F8 904CC5            MOV      DPTR,#g_variable+06H
-0009FB 7403              MOV      A,#03H
-0009FD F0                MOVX     @DPTR,A
+0009EA 904CC5            MOV     DPTR,#g_variable+06H
+0009ED 7403              MOV     A,#03H
+0009EF F0                MOVX    @DPTR,A
   116: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
-0009FE E4                CLR      A
-0009FF A3                INC      DPTR
-000A00 F0                MOVX     @DPTR,A
+0009F0 E4                CLR     A
+0009F1 A3                INC     DPTR
+0009F2 F0                MOVX    @DPTR,A
   117: 		YC_clear_reconnect_flag();
-000A01 F18C              ACALL    YC_clear_reconnect_flag
+0009F3 F166              ACALL   YC_clear_reconnect_flag
   118: 		g_variable.pairing_g24_timeout = 0;
-000A03 E4                CLR      A
-000A04 904CEE            MOV      DPTR,#g_variable+02FH
-000A07 F0                MOVX     @DPTR,A
+0009F5 E4                CLR     A
+0009F6 904CEE            MOV     DPTR,#g_variable+02FH
+0009F9 F0                MOVX    @DPTR,A
   119: 		g_variable.release_data = 0;
-000A08 904CEB            MOV      DPTR,#g_variable+02CH
-000A0B F0                MOVX     @DPTR,A
+0009FA 904CEB            MOV     DPTR,#g_variable+02CH
+0009FD F0                MOVX    @DPTR,A
   120: 		g_variable.last_device_num = 0xfe;
-000A0C 904CC0            MOV      DPTR,#g_variable+01H
-000A0F 74FE              MOV      A,#0FEH
-000A11 F0                MOVX     @DPTR,A
+0009FE 904CC0            MOV     DPTR,#g_variable+01H
+000A01 74FE              MOV     A,#0FEH
+000A03 F0                MOVX    @DPTR,A
   121: 		g_variable.current_device_num = 0xfe;
-000A12 904CC3            MOV      DPTR,#g_variable+04H
-000A15 F0                MOVX     @DPTR,A
+000A04 904CC3            MOV     DPTR,#g_variable+04H
+000A07 F0                MOVX    @DPTR,A
   122: 		m_24g_led_flag = KB_24G_LED_ACK_TYPE;
-000A16 904D47            MOV      DPTR,#m_24g_led_flag
-000A19 7403              MOV      A,#03H
-000A1B F0                MOVX     @DPTR,A
+000A08 904D47            MOV     DPTR,#m_24g_led_flag
+000A0B 7403              MOV     A,#03H
+000A0D F0                MOVX    @DPTR,A
   123: 		delayChgInvTimer = 10;
-000A1C 904DDF            MOV      DPTR,#delayChgInvTimer
-000A1F 740A              MOV      A,#0AH
-000A21 F0                MOVX     @DPTR,A
+000A0E 904DDF            MOV     DPTR,#delayChgInvTimer
+000A11 740A              MOV     A,#0AH
+000A13 F0                MOVX    @DPTR,A
   124: 
   125: 		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
-000A22 904EA1            MOV      DPTR,#evt
-000A25 E0                MOVX     A,@DPTR
-000A26 6431              XRL      A,#031H
-000A28 7015              JNZ      ?C0017?SYS
+000A14 904EA1            MOV     DPTR,#evt
+000A17 E0                MOVX    A,@DPTR
+000A18 B43116            CJNE    A,#031H,?C0017?SYS
   126: 		{
   127: 			fast_connect_flag = 0;
-000A2A 904DF1            MOV      DPTR,#fast_connect_flag
-000A2D F0                MOVX     @DPTR,A
+000A1B E4                CLR     A
+000A1C 904DF1            MOV     DPTR,#fast_connect_flag
+000A1F F0                MOVX    @DPTR,A
   128: 			g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
-000A2E 904CE5            MOV      DPTR,#g_variable+026H
-000A31 741E              MOV      A,#01EH
-000A33 F0                MOVX     @DPTR,A
+000A20 904CE5            MOV     DPTR,#g_variable+026H
+000A23 741E              MOV     A,#01EH
+000A25 F0                MOVX    @DPTR,A
   129: 
   130: 					g_variable.update_eeprom_flag = 1;
-000A34 904CBF            MOV      DPTR,#g_variable
-000A37 7401              MOV      A,#01H
-000A39 F0                MOVX     @DPTR,A
+000A26 904CBF            MOV     DPTR,#g_variable
+000A29 7401              MOV     A,#01H
+000A2B F0                MOVX    @DPTR,A
   131: 					YC_update_eeprom_data();
-000A3A 5198              ACALL    YC_update_eeprom_data
+000A2C 518A              ACALL   YC_update_eeprom_data
   132: 					System_Hardware_reset();
-000A3C 021FCA            LJMP     System_Hardware_reset
+000A2E 0221D0            LJMP    System_Hardware_reset
   133: 
   134: 		}
-000A3F         ?C0017?SYS:
+000A31         ?C0017?SYS:
   135: 		else
   136: 		{
   137: 			if(!g_variable.powerOn_timer)
-000A3F 904CE5            MOV      DPTR,#g_variable+026H
-000A42 E0                MOVX     A,@DPTR
-000A43 703A              JNZ      ?C0024?SYS
+000A31 904CE5            MOV     DPTR,#g_variable+026H
+000A34 E0                MOVX    A,@DPTR
+000A35 703A              JNZ     ?C0024?SYS
   138: 			;//GPIO_Setout(G24_LED_GPIO,LED_OFF);
   139: 		}
   140: 		break;
-000A45 22                RET      
+000A37 22                RET     
   141: 	
   142: 	case IPC_EVT_24G_ATTEMPT_FAIL:	
-000A46         ?C0020?SYS:
+000A38         ?C0020?SYS:
   143: 		if(fast_connect_flag)
-000A46 904DF1            MOV      DPTR,#fast_connect_flag
-000A49 E0                MOVX     A,@DPTR
-000A4A 6006              JZ       ?C0021?SYS
+000A38 904DF1            MOV     DPTR,#fast_connect_flag
+000A3B E0                MOVX    A,@DPTR
+000A3C 6006              JZ      ?C0021?SYS
   144: 		{
   145: 			fast_connect_flag = 0;
-000A4C E4                CLR      A
-000A4D F0                MOVX     @DPTR,A
+000A3E E4                CLR     A
+000A3F F0                MOVX    @DPTR,A
   146: 			YC_key_action_handle(KEY_PAIRING_24G);
-000A4E 7F0A              MOV      R7,#0AH
-000A50 1134              ACALL    _YC_key_action_handle
+000A40 7F0A              MOV     R7,#0AH
+000A42 1123              ACALL   _YC_key_action_handle
   147: 		}
-000A52         ?C0021?SYS:
+000A44         ?C0021?SYS:
   148: 		g_variable.g24_currentState =  CHANGE_TO_24G_DISCONNECTED;
-000A52 E4                CLR      A
-000A53 904CC5            MOV      DPTR,#g_variable+06H
-000A56 F0                MOVX     @DPTR,A
+000A44 E4                CLR     A
+000A45 904CC5            MOV     DPTR,#g_variable+06H
+000A48 F0                MOVX    @DPTR,A
   149: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
-000A57 A3                INC      DPTR
-000A58 F0                MOVX     @DPTR,A
+000A49 A3                INC     DPTR
+000A4A F0                MOVX    @DPTR,A
   150: 		g_variable.sleepTimer = 0;
-000A59 904CE3            MOV      DPTR,#g_variable+024H
-000A5C F0                MOVX     @DPTR,A
-000A5D A3                INC      DPTR
-000A5E F0                MOVX     @DPTR,A
+000A4B 904CE3            MOV     DPTR,#g_variable+024H
+000A4E F0                MOVX    @DPTR,A
+000A4F A3                INC     DPTR
+000A50 F0                MOVX    @DPTR,A
   151: 		g_variable.release_data = 1;
-000A5F 904CEB            MOV      DPTR,#g_variable+02CH
-000A62 04                INC      A
-000A63 F0                MOVX     @DPTR,A
+000A51 904CEB            MOV     DPTR,#g_variable+02CH
+000A54 04                INC     A
+000A55 F0                MOVX    @DPTR,A
   152: 
   153: 		if (g_variable.key_action != KEY_NONE)
-000A64 904CED            MOV      DPTR,#g_variable+02EH
-000A67 E0                MOVX     A,@DPTR
-000A68 6009              JZ       ?C0022?SYS
+000A56 904CED            MOV     DPTR,#g_variable+02EH
+000A59 E0                MOVX    A,@DPTR
+000A5A 6009              JZ      ?C0022?SYS
   154: 		{
   155: 			YC_clear_reconnect_flag();
-000A6A F18C              ACALL    YC_clear_reconnect_flag
+000A5C F166              ACALL   YC_clear_reconnect_flag
   156: 			YC_key_action_handle(g_variable.key_action);
-000A6C 904CED            MOV      DPTR,#g_variable+02EH
-000A6F E0                MOVX     A,@DPTR
-000A70 FF                MOV      R7,A
-000A71 0134              AJMP     _YC_key_action_handle
+000A5E 904CED            MOV     DPTR,#g_variable+02EH
+000A61 E0                MOVX    A,@DPTR
+000A62 FF                MOV     R7,A
+000A63 0123              AJMP    _YC_key_action_handle
   157: 			break;
   158: 		}
-000A73         ?C0022?SYS:
+000A65         ?C0022?SYS:
   159: 
   160: 		if (g_variable.lockLpm == 1)
-000A73 904CEC            MOV      DPTR,#g_variable+02DH
-000A76 E0                MOVX     A,@DPTR
-000A77 6401              XRL      A,#01H
-000A79 7004              JNZ      ?C0024?SYS
+000A65 904CEC            MOV     DPTR,#g_variable+02DH
+000A68 E0                MOVX    A,@DPTR
+000A69 B40105            CJNE    A,#01H,?C0024?SYS
   161: 		{
   162: 			g_variable.lockLpm =0;
-000A7B F0                MOVX     @DPTR,A
+000A6C E4                CLR     A
+000A6D F0                MOVX    @DPTR,A
   163: 			System_long_sleep();
-000A7C 12176D            LCALL    System_long_sleep
+000A6E 1207DA            LCALL   System_long_sleep
   164: 			break;
   165: 		}
   166: 		break;
   167: 	}
   168: }
-000A7F         ?C0024?SYS:
-000A7F 22                RET      
+000A71         ?C0024?SYS:
+000A71 22                RET     
 ----- FUNCTION _kb_cb_event (END) -------
 
 
 ----- FUNCTION _Delay1ms (BEGIN) -----
 ;---- Variable 'Time' assigned to Register 'R7' ----
-000A80         ?C0014?UTILITIES:
-000A80 EF                MOV      A,R7
-000A81 D3                SETB     C
-000A82 9400              SUBB     A,#00H
-000A84 4011              JC       ?C0020?UTILITIES
+000A72         ?C0014?UTILITIES:
+000A72 EF                MOV     A,R7
+000A73 D3                SETB    C
+000A74 9400              SUBB    A,#00H
+000A76 4011              JC      ?C0020?UTILITIES
 ;---- Variable 'j' assigned to Register 'R4/R5' ----
-000A86 E4                CLR      A
-000A87 FD                MOV      R5,A
-000A88 FC                MOV      R4,A
-000A89         ?C0017?UTILITIES:
-000A89 0D                INC      R5
-000A8A BD0001            CJNE     R5,#00H,?C0028?UTILITIES
-000A8D 0C                INC      R4
-000A8E         ?C0028?UTILITIES:
-000A8E BC04F8            CJNE     R4,#04H,?C0017?UTILITIES
-000A91 BDA6F5            CJNE     R5,#0A6H,?C0017?UTILITIES
-000A94         ?C0016?UTILITIES:
-000A94 1F                DEC      R7
-000A95 80E9              SJMP     ?C0014?UTILITIES
-000A97         ?C0020?UTILITIES:
-000A97 22                RET      
+000A78 E4                CLR     A
+000A79 FD                MOV     R5,A
+000A7A FC                MOV     R4,A
+000A7B         ?C0017?UTILITIES:
+000A7B 0D                INC     R5
+000A7C BD0001            CJNE    R5,#00H,?C0028?UTILITIES
+000A7F 0C                INC     R4
+000A80         ?C0028?UTILITIES:
+000A80 BC04F8            CJNE    R4,#04H,?C0017?UTILITIES
+000A83 BDA6F5            CJNE    R5,#0A6H,?C0017?UTILITIES
+000A86         ?C0016?UTILITIES:
+000A86 1F                DEC     R7
+000A87 80E9              SJMP    ?C0014?UTILITIES
+000A89         ?C0020?UTILITIES:
+000A89 22                RET     
 ----- FUNCTION _Delay1ms (END) -------
 
 
@@ -932,225 +911,225 @@
    68: {
    69: 	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
    70: 	{
-000A98 904CBF            MOV      DPTR,#g_variable
-000A9B E0                MOVX     A,@DPTR
-000A9C 603D              JZ       ?C0015?BLUETOOTH
+000A8A 904CBF            MOV     DPTR,#g_variable
+000A8D E0                MOVX    A,@DPTR
+000A8E 603D              JZ      ?C0015?BLUETOOTH
    71: 		Delay1ms(200);
    72: 		GPIO_Setout(EEPROM_WP_GPIO,0);
-000A9E 7FC8              MOV      R7,#0C8H
-000AA0 5180              ACALL    _Delay1ms
+000A90 7FC8              MOV     R7,#0C8H
+000A92 5172              ACALL   _Delay1ms
    73: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
-000AA2 C201              CLR      ?_GPIO_Setout?BIT
-000AA4 7FFF              MOV      R7,#0FFH
-000AA6 120754            LCALL    _GPIO_Setout
+000A94 C201              CLR     ?_GPIO_Setout?BIT
+000A96 7FFF              MOV     R7,#0FFH
+000A98 1207C8            LCALL   _GPIO_Setout
    74: 		IIC_WriteBlock(EEPROM_RECON_INFO_SYTEM_MODE ,1 ,(byte *)&g_variable.system_mode);
-000AA9 7B01              MOV      R3,#01H
-000AAB 7A4C              MOV      R2,#HIGH m_24g_addr
-000AAD 7900              MOV      R1,#LOW m_24g_addr
-000AAF 7D04              MOV      R5,#04H
-000AB1 7C00              MOV      R4,#00H
-000AB3 7FF2              MOV      R7,#0F2H
-000AB5 7E3F              MOV      R6,#03FH
-000AB7 122510            LCALL    _IIC_WriteBlock
+000A9B 7B01              MOV     R3,#01H
+000A9D 7A4C              MOV     R2,#HIGH m_24g_addr
+000A9F 7900              MOV     R1,#LOW m_24g_addr
+000AA1 7D04              MOV     R5,#04H
+000AA3 7C00              MOV     R4,#00H
+000AA5 7FF2              MOV     R7,#0F2H
+000AA7 7E3F              MOV     R6,#03FH
+000AA9 1225A6            LCALL   _IIC_WriteBlock
    75: 		GPIO_Setout(EEPROM_WP_GPIO,1);
-000ABA 7B01              MOV      R3,#01H
-000ABC 7A4C              MOV      R2,#HIGH g_variable+02H
-000ABE 79C1              MOV      R1,#LOW g_variable+02H
-000AC0 7D01              MOV      R5,#01H
-000AC2 7C00              MOV      R4,#00H
-000AC4 7FF8              MOV      R7,#0F8H
-000AC6 7E3F              MOV      R6,#03FH
-000AC8 122510            LCALL    _IIC_WriteBlock
+000AAC 7B01              MOV     R3,#01H
+000AAE 7A4C              MOV     R2,#HIGH g_variable+02H
+000AB0 79C1              MOV     R1,#LOW g_variable+02H
+000AB2 7D01              MOV     R5,#01H
+000AB4 7C00              MOV     R4,#00H
+000AB6 7FF8              MOV     R7,#0F8H
+000AB8 7E3F              MOV     R6,#03FH
+000ABA 1225A6            LCALL   _IIC_WriteBlock
    76: 		Delay1ms(10);
-000ACB D201              SETB     ?_GPIO_Setout?BIT
-000ACD 7FFF              MOV      R7,#0FFH
-000ACF 120754            LCALL    _GPIO_Setout
+000ABD D201              SETB    ?_GPIO_Setout?BIT
+000ABF 7FFF              MOV     R7,#0FFH
+000AC1 1207C8            LCALL   _GPIO_Setout
    77: 		g_variable.update_eeprom_flag = 0;
-000AD2 7F0A              MOV      R7,#0AH
-000AD4 5180              ACALL    _Delay1ms
+000AC4 7F0A              MOV     R7,#0AH
+000AC6 5172              ACALL   _Delay1ms
    78: 	}
-000AD6 E4                CLR      A
-000AD7 904CBF            MOV      DPTR,#g_variable
-000ADA F0                MOVX     @DPTR,A
+000AC8 E4                CLR     A
+000AC9 904CBF            MOV     DPTR,#g_variable
+000ACC F0                MOVX    @DPTR,A
    79: }
    80: 
-000ADB         ?C0015?BLUETOOTH:
-000ADB 22                RET      
+000ACD         ?C0015?BLUETOOTH:
+000ACD 22                RET     
 ----- FUNCTION YC_update_eeprom_data (END) -------
 
 
 ----- FUNCTION _IIC_Read (BEGIN) -----
-000ADC 904E73            MOV      DPTR,#len
-000ADF EC                MOV      A,R4
-000AE0 F0                MOVX     @DPTR,A
-000AE1 A3                INC      DPTR
-000AE2 ED                MOV      A,R5
-000AE3 F0                MOVX     @DPTR,A
-000AE4 A3                INC      DPTR
-000AE5 EB                MOV      A,R3
-000AE6 F0                MOVX     @DPTR,A
-000AE7 A3                INC      DPTR
-000AE8 EA                MOV      A,R2
-000AE9 F0                MOVX     @DPTR,A
-000AEA A3                INC      DPTR
-000AEB E9                MOV      A,R1
-000AEC F0                MOVX     @DPTR,A
+000ACE 904E73            MOV     DPTR,#len
+000AD1 EC                MOV     A,R4
+000AD2 F0                MOVX    @DPTR,A
+000AD3 A3                INC     DPTR
+000AD4 ED                MOV     A,R5
+000AD5 F0                MOVX    @DPTR,A
+000AD6 A3                INC     DPTR
+000AD7 EB                MOV     A,R3
+000AD8 F0                MOVX    @DPTR,A
+000AD9 A3                INC     DPTR
+000ADA EA                MOV     A,R2
+000ADB F0                MOVX    @DPTR,A
+000ADC A3                INC     DPTR
+000ADD E9                MOV     A,R1
+000ADE F0                MOVX    @DPTR,A
 ;---- Variable 'addr' assigned to Register 'R6/R7' ----
 ;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
-000AED 908098            MOV      DPTR,#08098H
-000AF0 7404              MOV      A,#04H
-000AF2 F0                MOVX     @DPTR,A
-000AF3 A3                INC      DPTR
-000AF4 E4                CLR      A
-000AF5 F0                MOVX     @DPTR,A
-000AF6 900CAF            MOV      DPTR,#YC_IICDTbuf
-000AF9 74A0              MOV      A,#0A0H
-000AFB F0                MOVX     @DPTR,A
-000AFC A3                INC      DPTR
-000AFD EE                MOV      A,R6
-000AFE F0                MOVX     @DPTR,A
-000AFF A3                INC      DPTR
-000B00 EF                MOV      A,R7
-000B01 F0                MOVX     @DPTR,A
-000B02 900CB2            MOV      DPTR,#YC_IICDTbuf+03H
-000B05 74A1              MOV      A,#0A1H
-000B07 F0                MOVX     @DPTR,A
-000B08 7A0C              MOV      R2,#HIGH YC_IICDTbuf
-000B0A 79AF              MOV      R1,#LOW YC_IICDTbuf
-000B0C 7E0C              MOV      R6,#HIGH YC_IICDTbuf
-000B0E 7FAF              MOV      R7,#LOW YC_IICDTbuf
-000B10 74AF              MOV      A,#LOW YC_IICDTbuf
-000B12 FC                MOV      R4,A
-000B13 740C              MOV      A,#HIGH YC_IICDTbuf
-000B15 FF                MOV      R7,A
-000B16 EC                MOV      A,R4
-000B17 FE                MOV      R6,A
-000B18 EF                MOV      A,R7
-000B19 90809A            MOV      DPTR,#0809AH
-000B1C EE                MOV      A,R6
-000B1D F0                MOVX     @DPTR,A
-000B1E A3                INC      DPTR
-000B1F EF                MOV      A,R7
-000B20 F0                MOVX     @DPTR,A
-000B21 904E73            MOV      DPTR,#len
-000B24 E0                MOVX     A,@DPTR
-000B25 FC                MOV      R4,A
-000B26 A3                INC      DPTR
-000B27 E0                MOVX     A,@DPTR
-000B28 FA                MOV      R2,A
-000B29 EC                MOV      A,R4
-000B2A FF                MOV      R7,A
-000B2B EA                MOV      A,R2
-000B2C FE                MOV      R6,A
-000B2D EF                MOV      A,R7
-000B2E 90809E            MOV      DPTR,#0809EH
-000B31 EE                MOV      A,R6
-000B32 F0                MOVX     @DPTR,A
-000B33 A3                INC      DPTR
-000B34 EF                MOV      A,R7
-000B35 F0                MOVX     @DPTR,A
-000B36 7A0B              MOV      R2,#HIGH IIC_TempBuff
-000B38 7983              MOV      R1,#LOW IIC_TempBuff
-000B3A 7E0B              MOV      R6,#HIGH IIC_TempBuff
-000B3C 7F83              MOV      R7,#LOW IIC_TempBuff
-000B3E 7483              MOV      A,#LOW IIC_TempBuff
-000B40 FC                MOV      R4,A
-000B41 740B              MOV      A,#HIGH IIC_TempBuff
-000B43 FF                MOV      R7,A
-000B44 EC                MOV      A,R4
-000B45 FE                MOV      R6,A
-000B46 EF                MOV      A,R7
-000B47 90809C            MOV      DPTR,#0809CH
-000B4A EE                MOV      A,R6
-000B4B F0                MOVX     @DPTR,A
-000B4C A3                INC      DPTR
-000B4D EF                MOV      A,R7
-000B4E F0                MOVX     @DPTR,A
-000B4F 908090            MOV      DPTR,#08090H
-000B52 7402              MOV      A,#02H
-000B54 F0                MOVX     @DPTR,A
-000B55 90809C            MOV      DPTR,#0809CH
-000B58 A3                INC      DPTR
-000B59 E0                MOVX     A,@DPTR
-000B5A 20E707            JB       ACC.7,?C0004?IIC
-000B5D 908090            MOV      DPTR,#08090H
-000B60 E0                MOVX     A,@DPTR
-000B61 4401              ORL      A,#01H
-000B63 F0                MOVX     @DPTR,A
-000B64         ?C0004?IIC:
-000B64 908006            MOV      DPTR,#08006H
-000B67 E0                MOVX     A,@DPTR
-000B68 4404              ORL      A,#04H
-000B6A F0                MOVX     @DPTR,A
-000B6B F1EC              ACALL    IIcWaitDone
-000B6D 904E75            MOV      DPTR,#pbuff
-000B70 E0                MOVX     A,@DPTR
-000B71 A3                INC      DPTR
-000B72 E0                MOVX     A,@DPTR
-000B73 FA                MOV      R2,A
-000B74 A3                INC      DPTR
-000B75 E0                MOVX     A,@DPTR
-000B76 AE02              MOV      R6,AR2
-000B78 FF                MOV      R7,A
-000B79 7B01              MOV      R3,#01H
-000B7B 7A0B              MOV      R2,#HIGH IIC_TempBuff
-000B7D 7983              MOV      R1,#LOW IIC_TempBuff
-000B7F 904E73            MOV      DPTR,#len
-000B82 E0                MOVX     A,@DPTR
-000B83 A3                INC      DPTR
-000B84 E0                MOVX     A,@DPTR
-000B85 904E68            MOV      DPTR,#?_xmemcpy?BYTE+05H
-000B88 F0                MOVX     @DPTR,A
-;----                  JMP      _xmemcpy
+000ADF 908098            MOV     DPTR,#08098H
+000AE2 7404              MOV     A,#04H
+000AE4 F0                MOVX    @DPTR,A
+000AE5 A3                INC     DPTR
+000AE6 E4                CLR     A
+000AE7 F0                MOVX    @DPTR,A
+000AE8 900CAF            MOV     DPTR,#YC_IICDTbuf
+000AEB 74A0              MOV     A,#0A0H
+000AED F0                MOVX    @DPTR,A
+000AEE A3                INC     DPTR
+000AEF EE                MOV     A,R6
+000AF0 F0                MOVX    @DPTR,A
+000AF1 A3                INC     DPTR
+000AF2 EF                MOV     A,R7
+000AF3 F0                MOVX    @DPTR,A
+000AF4 900CB2            MOV     DPTR,#YC_IICDTbuf+03H
+000AF7 74A1              MOV     A,#0A1H
+000AF9 F0                MOVX    @DPTR,A
+000AFA 7A0C              MOV     R2,#HIGH YC_IICDTbuf
+000AFC 79AF              MOV     R1,#LOW YC_IICDTbuf
+000AFE 7E0C              MOV     R6,#HIGH YC_IICDTbuf
+000B00 7FAF              MOV     R7,#LOW YC_IICDTbuf
+000B02 74AF              MOV     A,#LOW YC_IICDTbuf
+000B04 FC                MOV     R4,A
+000B05 740C              MOV     A,#HIGH YC_IICDTbuf
+000B07 FF                MOV     R7,A
+000B08 EC                MOV     A,R4
+000B09 FE                MOV     R6,A
+000B0A EF                MOV     A,R7
+000B0B 90809A            MOV     DPTR,#0809AH
+000B0E EE                MOV     A,R6
+000B0F F0                MOVX    @DPTR,A
+000B10 A3                INC     DPTR
+000B11 EF                MOV     A,R7
+000B12 F0                MOVX    @DPTR,A
+000B13 904E73            MOV     DPTR,#len
+000B16 E0                MOVX    A,@DPTR
+000B17 FC                MOV     R4,A
+000B18 A3                INC     DPTR
+000B19 E0                MOVX    A,@DPTR
+000B1A FA                MOV     R2,A
+000B1B EC                MOV     A,R4
+000B1C FF                MOV     R7,A
+000B1D EA                MOV     A,R2
+000B1E FE                MOV     R6,A
+000B1F EF                MOV     A,R7
+000B20 90809E            MOV     DPTR,#0809EH
+000B23 EE                MOV     A,R6
+000B24 F0                MOVX    @DPTR,A
+000B25 A3                INC     DPTR
+000B26 EF                MOV     A,R7
+000B27 F0                MOVX    @DPTR,A
+000B28 7A0B              MOV     R2,#HIGH IIC_TempBuff
+000B2A 7983              MOV     R1,#LOW IIC_TempBuff
+000B2C 7E0B              MOV     R6,#HIGH IIC_TempBuff
+000B2E 7F83              MOV     R7,#LOW IIC_TempBuff
+000B30 7483              MOV     A,#LOW IIC_TempBuff
+000B32 FC                MOV     R4,A
+000B33 740B              MOV     A,#HIGH IIC_TempBuff
+000B35 FF                MOV     R7,A
+000B36 EC                MOV     A,R4
+000B37 FE                MOV     R6,A
+000B38 EF                MOV     A,R7
+000B39 90809C            MOV     DPTR,#0809CH
+000B3C EE                MOV     A,R6
+000B3D F0                MOVX    @DPTR,A
+000B3E A3                INC     DPTR
+000B3F EF                MOV     A,R7
+000B40 F0                MOVX    @DPTR,A
+000B41 908090            MOV     DPTR,#08090H
+000B44 7402              MOV     A,#02H
+000B46 F0                MOVX    @DPTR,A
+000B47 90809C            MOV     DPTR,#0809CH
+000B4A A3                INC     DPTR
+000B4B E0                MOVX    A,@DPTR
+000B4C 20E707            JB      ACC.7,?C0004?IIC
+000B4F 908090            MOV     DPTR,#08090H
+000B52 E0                MOVX    A,@DPTR
+000B53 4401              ORL     A,#01H
+000B55 F0                MOVX    @DPTR,A
+000B56         ?C0004?IIC:
+000B56 908006            MOV     DPTR,#08006H
+000B59 E0                MOVX    A,@DPTR
+000B5A 4404              ORL     A,#04H
+000B5C F0                MOVX    @DPTR,A
+000B5D 12259E            LCALL   IIcWaitDone
+000B60 904E75            MOV     DPTR,#pbuff
+000B63 E0                MOVX    A,@DPTR
+000B64 A3                INC     DPTR
+000B65 E0                MOVX    A,@DPTR
+000B66 FA                MOV     R2,A
+000B67 A3                INC     DPTR
+000B68 E0                MOVX    A,@DPTR
+000B69 AE02              MOV     R6,AR2
+000B6B FF                MOV     R7,A
+000B6C 7B01              MOV     R3,#01H
+000B6E 7A0B              MOV     R2,#HIGH IIC_TempBuff
+000B70 7983              MOV     R1,#LOW IIC_TempBuff
+000B72 904E73            MOV     DPTR,#len
+000B75 E0                MOVX    A,@DPTR
+000B76 A3                INC     DPTR
+000B77 E0                MOVX    A,@DPTR
+000B78 904E68            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000B7B F0                MOVX    @DPTR,A
+;----                  JMP     _xmemcpy
 ----- FUNCTION _IIC_Read (END) -------
 
 
 ----- FUNCTION _xmemcpy (BEGIN) -----
-000B89 904E63            MOV      DPTR,#dest
-000B8C EE                MOV      A,R6
-000B8D F0                MOVX     @DPTR,A
-000B8E A3                INC      DPTR
-000B8F EF                MOV      A,R7
-000B90 F0                MOVX     @DPTR,A
-000B91 A3                INC      DPTR
-000B92 EB                MOV      A,R3
-000B93 F0                MOVX     @DPTR,A
-000B94 A3                INC      DPTR
-000B95 EA                MOV      A,R2
-000B96 F0                MOVX     @DPTR,A
-000B97 A3                INC      DPTR
-000B98 E9                MOV      A,R1
-000B99 F0                MOVX     @DPTR,A
-000B9A         ?C0002?UTILITIES:
-000B9A 904E68            MOV      DPTR,#len
-000B9D E0                MOVX     A,@DPTR
-000B9E FF                MOV      R7,A
-000B9F 14                DEC      A
-000BA0 F0                MOVX     @DPTR,A
-000BA1 EF                MOV      A,R7
-000BA2 6027              JZ       ?C0004?UTILITIES
-000BA4 904E65            MOV      DPTR,#src
-000BA7 E0                MOVX     A,@DPTR
-000BA8 FB                MOV      R3,A
-000BA9 A3                INC      DPTR
-000BAA E4                CLR      A
-000BAB 75F001            MOV      B,#01H
-000BAE 120424            LCALL    ?C?ILDIX
-000BB1 A9F0              MOV      R1,B
-000BB3 FA                MOV      R2,A
-000BB4 1203B6            LCALL    ?C?CLDPTR
-000BB7 FF                MOV      R7,A
-000BB8 904E63            MOV      DPTR,#dest
-000BBB E4                CLR      A
-000BBC 75F001            MOV      B,#01H
-000BBF 120424            LCALL    ?C?ILDIX
-000BC2 85F082            MOV      DPL,B
-000BC5 F583              MOV      DPH,A
-000BC7 EF                MOV      A,R7
-000BC8 F0                MOVX     @DPTR,A
-000BC9 80CF              SJMP     ?C0002?UTILITIES
-000BCB         ?C0004?UTILITIES:
-000BCB 22                RET      
+000B7C 904E63            MOV     DPTR,#dest
+000B7F EE                MOV     A,R6
+000B80 F0                MOVX    @DPTR,A
+000B81 A3                INC     DPTR
+000B82 EF                MOV     A,R7
+000B83 F0                MOVX    @DPTR,A
+000B84 A3                INC     DPTR
+000B85 EB                MOV     A,R3
+000B86 F0                MOVX    @DPTR,A
+000B87 A3                INC     DPTR
+000B88 EA                MOV     A,R2
+000B89 F0                MOVX    @DPTR,A
+000B8A A3                INC     DPTR
+000B8B E9                MOV     A,R1
+000B8C F0                MOVX    @DPTR,A
+000B8D         ?C0002?UTILITIES:
+000B8D 904E68            MOV     DPTR,#len
+000B90 E0                MOVX    A,@DPTR
+000B91 FF                MOV     R7,A
+000B92 14                DEC     A
+000B93 F0                MOVX    @DPTR,A
+000B94 EF                MOV     A,R7
+000B95 6027              JZ      ?C0004?UTILITIES
+000B97 904E65            MOV     DPTR,#src
+000B9A E0                MOVX    A,@DPTR
+000B9B FB                MOV     R3,A
+000B9C A3                INC     DPTR
+000B9D E4                CLR     A
+000B9E 75F001            MOV     B,#01H
+000BA1 120424            LCALL   ?C?ILDIX
+000BA4 A9F0              MOV     R1,B
+000BA6 FA                MOV     R2,A
+000BA7 1203B6            LCALL   ?C?CLDPTR
+000BAA FF                MOV     R7,A
+000BAB 904E63            MOV     DPTR,#dest
+000BAE E4                CLR     A
+000BAF 75F001            MOV     B,#01H
+000BB2 120424            LCALL   ?C?ILDIX
+000BB5 85F082            MOV     DPL,B
+000BB8 F583              MOV     DPH,A
+000BBA EF                MOV     A,R7
+000BBB F0                MOVX    @DPTR,A
+000BBC 80CF              SJMP    ?C0002?UTILITIES
+000BBE         ?C0004?UTILITIES:
+000BBE 22                RET     
 ----- FUNCTION _xmemcpy (END) -------
 
 
@@ -1158,677 +1137,660 @@
  FILE: 'kb_process.c'
   234: void kb_motion_keyscan(tKSEVENT *pEvt)
   235: {
-000BCC 904E69            MOV      DPTR,#pEvt
-000BCF EB                MOV      A,R3
-000BD0 F0                MOVX     @DPTR,A
-000BD1 A3                INC      DPTR
-000BD2 EA                MOV      A,R2
-000BD3 F0                MOVX     @DPTR,A
-000BD4 A3                INC      DPTR
-000BD5 E9                MOV      A,R1
-000BD6 F0                MOVX     @DPTR,A
+000BBF 904E69            MOV     DPTR,#pEvt
+000BC2 EB                MOV     A,R3
+000BC3 F0                MOVX    @DPTR,A
+000BC4 A3                INC     DPTR
+000BC5 EA                MOV     A,R2
+000BC6 F0                MOVX    @DPTR,A
+000BC7 A3                INC     DPTR
+000BC8 E9                MOV     A,R1
+000BC9 F0                MOVX    @DPTR,A
   236: 	byte temp = 0;
   237: 	byte i=0;
-000BD7 E4                CLR      A
-000BD8 A3                INC      DPTR
-000BD9 F0                MOVX     @DPTR,A
+000BCA E4                CLR     A
+000BCB A3                INC     DPTR
+000BCC F0                MOVX    @DPTR,A
   238: 	
-000BDA A3                INC      DPTR
-000BDB F0                MOVX     @DPTR,A
+000BCD A3                INC     DPTR
+000BCE F0                MOVX    @DPTR,A
   239: 	fn_flag = 0;
-000BDC 904DDB            MOV      DPTR,#fn_flag
-000BDF F0                MOVX     @DPTR,A
+000BCF 904DDB            MOV     DPTR,#fn_flag
+000BD2 F0                MOVX    @DPTR,A
   240: 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
-000BE0 904E6D            MOV      DPTR,#i
-000BE3 F0                MOVX     @DPTR,A
-000BE4         ?C0051?KB_PROCESS:
-000BE4 904E6D            MOV      DPTR,#i
-000BE7 E0                MOVX     A,@DPTR
-000BE8 FF                MOV      R7,A
-000BE9 C3                CLR      C
-000BEA 9405              SUBB     A,#05H
-000BEC 7480              MOV      A,#080H
-000BEE 9480              SUBB     A,#080H
-000BF0 502C              JNC      ?C0052?KB_PROCESS
+000BD3 904E6D            MOV     DPTR,#i
+000BD6 F0                MOVX    @DPTR,A
+000BD7         ?C0051?KB_PROCESS:
+000BD7 904E6D            MOV     DPTR,#i
+000BDA E0                MOVX    A,@DPTR
+000BDB FF                MOV     R7,A
+000BDC C3                CLR     C
+000BDD 9405              SUBB    A,#05H
+000BDF 502C              JNC     ?C0052?KB_PROCESS
   241: 	{
   242: 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
-000BF2 904E69            MOV      DPTR,#pEvt
-000BF5 E0                MOVX     A,@DPTR
-000BF6 FB                MOV      R3,A
-000BF7 A3                INC      DPTR
-000BF8 E0                MOVX     A,@DPTR
-000BF9 FA                MOV      R2,A
-000BFA A3                INC      DPTR
-000BFB E0                MOVX     A,@DPTR
-000BFC 2401              ADD      A,#01H
-000BFE F9                MOV      R1,A
-000BFF E4                CLR      A
-000C00 3A                ADDC     A,R2
-000C01 FA                MOV      R2,A
-000C02 7E00              MOV      R6,#00H
-000C04 E9                MOV      A,R1
-000C05 2F                ADD      A,R7
-000C06 F9                MOV      R1,A
-000C07 EE                MOV      A,R6
-000C08 3A                ADDC     A,R2
-000C09 FA                MOV      R2,A
-000C0A 1203B6            LCALL    ?C?CLDPTR
-000C0D 647F              XRL      A,#07FH
-000C0F 7005              JNZ      ?C0053?KB_PROCESS
+000BE1 904E69            MOV     DPTR,#pEvt
+000BE4 E0                MOVX    A,@DPTR
+000BE5 FB                MOV     R3,A
+000BE6 A3                INC     DPTR
+000BE7 E0                MOVX    A,@DPTR
+000BE8 FA                MOV     R2,A
+000BE9 A3                INC     DPTR
+000BEA E0                MOVX    A,@DPTR
+000BEB 2401              ADD     A,#01H
+000BED F9                MOV     R1,A
+000BEE E4                CLR     A
+000BEF 3A                ADDC    A,R2
+000BF0 FA                MOV     R2,A
+000BF1 7E00              MOV     R6,#00H
+000BF3 E9                MOV     A,R1
+000BF4 2F                ADD     A,R7
+000BF5 F9                MOV     R1,A
+000BF6 EE                MOV     A,R6
+000BF7 3A                ADDC    A,R2
+000BF8 FA                MOV     R2,A
+000BF9 1203B6            LCALL   ?C?CLDPTR
+000BFC B47F06            CJNE    A,#07FH,?C0053?KB_PROCESS
   243: 		{
   244: 			fn_flag = 1;
-000C11 904DDB            MOV      DPTR,#fn_flag
-000C14 04                INC      A
-000C15 F0                MOVX     @DPTR,A
+000BFF 904DDB            MOV     DPTR,#fn_flag
+000C02 7401              MOV     A,#01H
+000C04 F0                MOVX    @DPTR,A
   245: 		}
   246: 	}
-000C16         ?C0053?KB_PROCESS:
-000C16 904E6D            MOV      DPTR,#i
-000C19 E0                MOVX     A,@DPTR
-000C1A 04                INC      A
-000C1B F0                MOVX     @DPTR,A
-000C1C 80C6              SJMP     ?C0051?KB_PROCESS
-000C1E         ?C0052?KB_PROCESS:
+000C05         ?C0053?KB_PROCESS:
+000C05 904E6D            MOV     DPTR,#i
+000C08 E0                MOVX    A,@DPTR
+000C09 04                INC     A
+000C0A F0                MOVX    @DPTR,A
+000C0B 80CA              SJMP    ?C0051?KB_PROCESS
+000C0D         ?C0052?KB_PROCESS:
   247: 
   248: 	
   249: 	if (pEvt == NULL)
-000C1E 904E69            MOV      DPTR,#pEvt
-000C21 E0                MOVX     A,@DPTR
-000C22 A3                INC      DPTR
-000C23 E0                MOVX     A,@DPTR
-000C24 FA                MOV      R2,A
-000C25 A3                INC      DPTR
-000C26 E0                MOVX     A,@DPTR
-000C27 4A                ORL      A,R2
-000C28 7002              JNZ      $ + 4H
-000C2A C1D5              AJMP     ?C0056?KB_PROCESS
+000C0D 904E69            MOV     DPTR,#pEvt
+000C10 E0                MOVX    A,@DPTR
+000C11 A3                INC     DPTR
+000C12 E0                MOVX    A,@DPTR
+000C13 FA                MOV     R2,A
+000C14 A3                INC     DPTR
+000C15 E0                MOVX    A,@DPTR
+000C16 4A                ORL     A,R2
+000C17 7002              JNZ     $ + 4H
+000C19 C1AF              AJMP    ?C0056?KB_PROCESS
+000C1B         ?C0055?KB_PROCESS:
   250: 		return;
   251: 
   252: 	delayChgInvTimer = 10;
-000C2C 904DDF            MOV      DPTR,#delayChgInvTimer
-000C2F 740A              MOV      A,#0AH
-000C31 F0                MOVX     @DPTR,A
+000C1B 904DDF            MOV     DPTR,#delayChgInvTimer
+000C1E 740A              MOV     A,#0AH
+000C20 F0                MOVX    @DPTR,A
   253: 	g_variable.sleepTimer = 0;
-000C32 E4                CLR      A
-000C33 904CE3            MOV      DPTR,#g_variable+024H
-000C36 F0                MOVX     @DPTR,A
-000C37 A3                INC      DPTR
-000C38 F0                MOVX     @DPTR,A
+000C21 E4                CLR     A
+000C22 904CE3            MOV     DPTR,#g_variable+024H
+000C25 F0                MOVX    @DPTR,A
+000C26 A3                INC     DPTR
+000C27 F0                MOVX    @DPTR,A
   254: 	if(g_variable.battery_status == BAT_STATUS_LOW)
-000C39 904CD5            MOV      DPTR,#g_variable+016H
-000C3C E0                MOVX     A,@DPTR
-000C3D 6401              XRL      A,#01H
-000C3F 7011              JNZ      ?C0057?KB_PROCESS
+000C28 904CD5            MOV     DPTR,#g_variable+016H
+000C2B E0                MOVX    A,@DPTR
+000C2C B40112            CJNE    A,#01H,?C0057?KB_PROCESS
   255: 	{
   256: 		m_24g_enter_hibernate[0]	= 0x00;
-000C41 904D3D            MOV      DPTR,#m_24g_enter_hibernate
-000C44 F0                MOVX     @DPTR,A
+000C2F E4                CLR     A
+000C30 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+000C33 F0                MOVX    @DPTR,A
   257: 		m_24g_enter_hibernate[1]	= 0x48;
-000C45 A3                INC      DPTR
-000C46 7448              MOV      A,#048H
-000C48 F0                MOVX     @DPTR,A
+000C34 A3                INC     DPTR
+000C35 7448              MOV     A,#048H
+000C37 F0                MOVX    @DPTR,A
   258: 		m_24g_enter_hibernate[2]	= 0x12;		// 100ms
-000C49 A3                INC      DPTR
-000C4A 7412              MOV      A,#012H
-000C4C F0                MOVX     @DPTR,A
+000C38 A3                INC     DPTR
+000C39 7412              MOV     A,#012H
+000C3B F0                MOVX    @DPTR,A
   259: 		m_24g_enter_hibernate[3]	= 0x00;
-000C4D E4                CLR      A
-000C4E A3                INC      DPTR
-000C4F F0                MOVX     @DPTR,A
+000C3C E4                CLR     A
+000C3D A3                INC     DPTR
+000C3E F0                MOVX    @DPTR,A
   260: 	}
-000C50 8010              SJMP     ?C0058?KB_PROCESS
-000C52         ?C0057?KB_PROCESS:
+000C3F 8010              SJMP    ?C0058?KB_PROCESS
+000C41         ?C0057?KB_PROCESS:
   261: 	else
   262: 	{
   263: 		m_24g_enter_hibernate[0]	= 0x00;
-000C52 E4                CLR      A
-000C53 904D3D            MOV      DPTR,#m_24g_enter_hibernate
-000C56 F0                MOVX     @DPTR,A
+000C41 E4                CLR     A
+000C42 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+000C45 F0                MOVX    @DPTR,A
   264: 		m_24g_enter_hibernate[1]	= 0x48;
-000C57 A3                INC      DPTR
-000C58 7448              MOV      A,#048H
-000C5A F0                MOVX     @DPTR,A
+000C46 A3                INC     DPTR
+000C47 7448              MOV     A,#048H
+000C49 F0                MOVX    @DPTR,A
   265: 		m_24g_enter_hibernate[2]   = 0x5d;		// 510ms
-000C5B A3                INC      DPTR
-000C5C 745D              MOV      A,#05DH
-000C5E F0                MOVX     @DPTR,A
+000C4A A3                INC     DPTR
+000C4B 745D              MOV     A,#05DH
+000C4D F0                MOVX    @DPTR,A
   266: 		m_24g_enter_hibernate[3]	= 0x00;
-000C5F E4                CLR      A
-000C60 A3                INC      DPTR
-000C61 F0                MOVX     @DPTR,A
+000C4E E4                CLR     A
+000C4F A3                INC     DPTR
+000C50 F0                MOVX    @DPTR,A
   267: 	}
-000C62         ?C0058?KB_PROCESS:
+000C51         ?C0058?KB_PROCESS:
   268: 	xmemclear(hidBuff,9);
-000C62 7B01              MOV      R3,#01H
-000C64 7A48              MOV      R2,#HIGH hidBuff
-000C66 7900              MOV      R1,#LOW hidBuff
-000C68 7D09              MOV      R5,#09H
-000C6A 7C00              MOV      R4,#00H
-000C6C D1D6              ACALL    _xmemclear
+000C51 7B01              MOV     R3,#01H
+000C53 7A48              MOV     R2,#HIGH hidBuff
+000C55 7900              MOV     R1,#LOW hidBuff
+000C57 7D09              MOV     R5,#09H
+000C59 7C00              MOV     R4,#00H
+000C5B D1B0              ACALL   _xmemclear
   269: 	xmemclear(multikey,9);
-000C6E 7B01              MOV      R3,#01H
-000C70 7A4D              MOV      R2,#HIGH multikey
-000C72 79E8              MOV      R1,#LOW multikey
-000C74 7D09              MOV      R5,#09H
-000C76 7C00              MOV      R4,#00H
-000C78 D1D6              ACALL    _xmemclear
+000C5D 7B01              MOV     R3,#01H
+000C5F 7A4D              MOV     R2,#HIGH multikey
+000C61 79E8              MOV     R1,#LOW multikey
+000C63 7D09              MOV     R5,#09H
+000C65 7C00              MOV     R4,#00H
+000C67 D1B0              ACALL   _xmemclear
   270: 
   271: 	////////////////////////////2.4g pairing////////////////////////////////////
   272: 	if ((pEvt->ksPool[0]  == HID_KEY_EQUAL&& pEvt->ksPool[1]  == HID_KEY_ESC) 
-000C7A 904E69            MOV      DPTR,#pEvt
-000C7D E0                MOVX     A,@DPTR
-000C7E FB                MOV      R3,A
-000C7F A3                INC      DPTR
-000C80 E0                MOVX     A,@DPTR
-000C81 FA                MOV      R2,A
-000C82 A3                INC      DPTR
-000C83 E0                MOVX     A,@DPTR
-000C84 F9                MOV      R1,A
-000C85 900001            MOV      DPTR,#01H
-000C88 1203CF            LCALL    ?C?CLDOPTR
-000C8B FF                MOV      R7,A
-000C8C 7E00              MOV      R6,#00H
-000C8E 642E              XRL      A,#02EH
-000C90 700A              JNZ      ?C0061?KB_PROCESS
-000C92 900002            MOV      DPTR,#02H
-000C95 1203CF            LCALL    ?C?CLDOPTR
-000C98 6429              XRL      A,#029H
-000C9A 6038              JZ       ?C0060?KB_PROCESS
-000C9C         ?C0061?KB_PROCESS:
-000C9C EF                MOV      A,R7
-000C9D 6429              XRL      A,#029H
-000C9F 4E                ORL      A,R6
-000CA0 700A              JNZ      ?C0062?KB_PROCESS
-000CA2 900002            MOV      DPTR,#02H
-000CA5 1203CF            LCALL    ?C?CLDOPTR
-000CA8 642E              XRL      A,#02EH
-000CAA 6028              JZ       ?C0060?KB_PROCESS
-000CAC         ?C0062?KB_PROCESS:
-000CAC 900001            MOV      DPTR,#01H
-000CAF 1203CF            LCALL    ?C?CLDOPTR
-000CB2 647F              XRL      A,#07FH
-000CB4 700A              JNZ      ?C0063?KB_PROCESS
-000CB6 900002            MOV      DPTR,#02H
-000CB9 1203CF            LCALL    ?C?CLDOPTR
-000CBC 6427              XRL      A,#027H
-000CBE 6014              JZ       ?C0060?KB_PROCESS
-000CC0         ?C0063?KB_PROCESS:
-000CC0 900001            MOV      DPTR,#01H
-000CC3 1203CF            LCALL    ?C?CLDOPTR
-000CC6 6427              XRL      A,#027H
-000CC8 7024              JNZ      ?C0059?KB_PROCESS
-000CCA 900002            MOV      DPTR,#02H
-000CCD 1203CF            LCALL    ?C?CLDOPTR
-000CD0 647F              XRL      A,#07FH
-000CD2 701A              JNZ      ?C0059?KB_PROCESS
-000CD4         ?C0060?KB_PROCESS:
+000C69 904E69            MOV     DPTR,#pEvt
+000C6C E0                MOVX    A,@DPTR
+000C6D FB                MOV     R3,A
+000C6E A3                INC     DPTR
+000C6F E0                MOVX    A,@DPTR
+000C70 FA                MOV     R2,A
+000C71 A3                INC     DPTR
+000C72 E0                MOVX    A,@DPTR
+000C73 F9                MOV     R1,A
+000C74 900001            MOV     DPTR,#01H
+000C77 1203CF            LCALL   ?C?CLDOPTR
+000C7A FF                MOV     R7,A
+000C7B B42E0A            CJNE    A,#02EH,?C0061?KB_PROCESS
+000C7E 900002            MOV     DPTR,#02H
+000C81 1203CF            LCALL   ?C?CLDOPTR
+000C84 6429              XRL     A,#029H
+000C86 6034              JZ      ?C0060?KB_PROCESS
+000C88         ?C0061?KB_PROCESS:
+000C88 EF                MOV     A,R7
+000C89 B4290A            CJNE    A,#029H,?C0062?KB_PROCESS
+000C8C 900002            MOV     DPTR,#02H
+000C8F 1203CF            LCALL   ?C?CLDOPTR
+000C92 642E              XRL     A,#02EH
+000C94 6026              JZ      ?C0060?KB_PROCESS
+000C96         ?C0062?KB_PROCESS:
+000C96 900001            MOV     DPTR,#01H
+000C99 1203CF            LCALL   ?C?CLDOPTR
+000C9C B47F0A            CJNE    A,#07FH,?C0063?KB_PROCESS
+000C9F 900002            MOV     DPTR,#02H
+000CA2 1203CF            LCALL   ?C?CLDOPTR
+000CA5 6427              XRL     A,#027H
+000CA7 6013              JZ      ?C0060?KB_PROCESS
+000CA9         ?C0063?KB_PROCESS:
+000CA9 900001            MOV     DPTR,#01H
+000CAC 1203CF            LCALL   ?C?CLDOPTR
+000CAF 6427              XRL     A,#027H
+000CB1 7023              JNZ     ?C0059?KB_PROCESS
+000CB3 900002            MOV     DPTR,#02H
+000CB6 1203CF            LCALL   ?C?CLDOPTR
+000CB9 B47F1A            CJNE    A,#07FH,?C0059?KB_PROCESS
+000CBC         ?C0060?KB_PROCESS:
   273: 		||(pEvt->ksPool[0]  == HID_KEY_ESC && pEvt->ksPool[1]  == HID_KEY_EQUAL) 
   274: 		||(pEvt->ksPool[0]  == HID_KEY_FN && pEvt->ksPool[1]  == HID_KEY_0) 
   275: 		||(pEvt->ksPool[0]  == HID_KEY_0 && pEvt->ksPool[1]  == HID_KEY_FN) 
   276: 		)
   277: 	{
   278: 		if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
-000CD4 904CC5            MOV      DPTR,#g_variable+06H
-000CD7 E0                MOVX     A,@DPTR
-000CD8 6401              XRL      A,#01H
-000CDA 6009              JZ       ?C0064?KB_PROCESS
+000CBC 904CC5            MOV     DPTR,#g_variable+06H
+000CBF E0                MOVX    A,@DPTR
+000CC0 6401              XRL     A,#01H
+000CC2 6009              JZ      ?C0064?KB_PROCESS
   279: 		{
   280: 			g_variable.button_flag |= KEY_FLAG_FN_24G_DEVICE_BUTTON;
-000CDC 904CCE            MOV      DPTR,#g_variable+0FH
-000CDF E0                MOVX     A,@DPTR
-000CE0 4410              ORL      A,#010H
-000CE2 F0                MOVX     @DPTR,A
+000CC4 904CCE            MOV     DPTR,#g_variable+0FH
+000CC7 E0                MOVX    A,@DPTR
+000CC8 4410              ORL     A,#010H
+000CCA F0                MOVX    @DPTR,A
   281: 		}
-000CE3 8010              SJMP     ?C0066?KB_PROCESS
-000CE5         ?C0064?KB_PROCESS:
+000CCB 8010              SJMP    ?C0066?KB_PROCESS
+000CCD         ?C0064?KB_PROCESS:
   282: 		else
   283: 		{
   284: 			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
-000CE5 904CCE            MOV      DPTR,#g_variable+0FH
-000CE8 E0                MOVX     A,@DPTR
-000CE9 54EF              ANL      A,#0EFH
-000CEB F0                MOVX     @DPTR,A
+000CCD 904CCE            MOV     DPTR,#g_variable+0FH
+000CD0 E0                MOVX    A,@DPTR
+000CD1 54EF              ANL     A,#0EFH
+000CD3 F0                MOVX    @DPTR,A
   285: 		}
   286: 	}
-000CEC 8007              SJMP     ?C0066?KB_PROCESS
-000CEE         ?C0059?KB_PROCESS:
+000CD4 8007              SJMP    ?C0066?KB_PROCESS
+000CD6         ?C0059?KB_PROCESS:
   287: 	else
   288: 	{
   289: 		g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
-000CEE 904CCE            MOV      DPTR,#g_variable+0FH
-000CF1 E0                MOVX     A,@DPTR
-000CF2 54EF              ANL      A,#0EFH
-000CF4 F0                MOVX     @DPTR,A
+000CD6 904CCE            MOV     DPTR,#g_variable+0FH
+000CD9 E0                MOVX    A,@DPTR
+000CDA 54EF              ANL     A,#0EFH
+000CDC F0                MOVX    @DPTR,A
   290: 	}
-000CF5         ?C0066?KB_PROCESS:
+000CDD         ?C0066?KB_PROCESS:
   291: 
   292: 	m_power_on_flag = 1;
-000CF5 904CB6            MOV      DPTR,#m_power_on_flag
-000CF8 7401              MOV      A,#01H
-000CFA F0                MOVX     @DPTR,A
+000CDD 904CB6            MOV     DPTR,#m_power_on_flag
+000CE0 7401              MOV     A,#01H
+000CE2 F0                MOVX    @DPTR,A
   293: 	if( (g_variable.key_combination_step == CAMBINATION_KEY_PRESS) ||
-000CFB 904CF4            MOV      DPTR,#g_variable+035H
-000CFE E0                MOVX     A,@DPTR
-000CFF FF                MOV      R7,A
-000D00 6401              XRL      A,#01H
-000D02 7002              JNZ      $ + 4H
-000D04 C1D5              AJMP     ?C0056?KB_PROCESS
-000D06 EF                MOV      A,R7
-000D07 6404              XRL      A,#04H
-000D09 7002              JNZ      $ + 4H
-000D0B C1D5              AJMP     ?C0056?KB_PROCESS
-000D0D EF                MOV      A,R7
-000D0E 6402              XRL      A,#02H
-000D10 7002              JNZ      $ + 4H
-000D12 C1D5              AJMP     ?C0056?KB_PROCESS
+000CE3 904CF4            MOV     DPTR,#g_variable+035H
+000CE6 E0                MOVX    A,@DPTR
+000CE7 FF                MOV     R7,A
+000CE8 6401              XRL     A,#01H
+000CEA 7002              JNZ     $ + 4H
+000CEC C1AF              AJMP    ?C0056?KB_PROCESS
+000CEE EF                MOV     A,R7
+000CEF 6404              XRL     A,#04H
+000CF1 7002              JNZ     $ + 4H
+000CF3 C1AF              AJMP    ?C0056?KB_PROCESS
+000CF5 EF                MOV     A,R7
+000CF6 6402              XRL     A,#02H
+000CF8 7002              JNZ     $ + 4H
+000CFA C1AF              AJMP    ?C0056?KB_PROCESS
   294: 	    (g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE) ||
   295: 	    (g_variable.key_combination_step == CAMBINATION_KEY_HOLD))
   296: 	{
   297: 		return;
   298: 	}
+000CFC         ?C0067?KB_PROCESS:
   299: 
   300: 	// get 24g led status
   301: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
-000D14 904CC5            MOV      DPTR,#g_variable+06H
-000D17 E0                MOVX     A,@DPTR
-000D18 6403              XRL      A,#03H
-000D1A 704A              JNZ      ?C0069?KB_PROCESS
+000CFC 904CC5            MOV     DPTR,#g_variable+06H
+000CFF E0                MOVX    A,@DPTR
+000D00 6403              XRL     A,#03H
+000D02 7045              JNZ     ?C0069?KB_PROCESS
   302: 	{
   303: 		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
-000D1C 904E6D            MOV      DPTR,#i
-000D1F F0                MOVX     @DPTR,A
-000D20         ?C0070?KB_PROCESS:
-000D20 904E6D            MOV      DPTR,#i
-000D23 E0                MOVX     A,@DPTR
-000D24 FF                MOV      R7,A
-000D25 C3                CLR      C
-000D26 9405              SUBB     A,#05H
-000D28 7480              MOV      A,#080H
-000D2A 9480              SUBB     A,#080H
-000D2C 5038              JNC      ?C0069?KB_PROCESS
+000D04 904E6D            MOV     DPTR,#i
+000D07 F0                MOVX    @DPTR,A
+000D08         ?C0070?KB_PROCESS:
+000D08 904E6D            MOV     DPTR,#i
+000D0B E0                MOVX    A,@DPTR
+000D0C FF                MOV     R7,A
+000D0D C3                CLR     C
+000D0E 9405              SUBB    A,#05H
+000D10 5037              JNC     ?C0069?KB_PROCESS
   304: 		{
   305: 			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
-000D2E 904E69            MOV      DPTR,#pEvt
-000D31 E0                MOVX     A,@DPTR
-000D32 FB                MOV      R3,A
-000D33 A3                INC      DPTR
-000D34 E0                MOVX     A,@DPTR
-000D35 FA                MOV      R2,A
-000D36 A3                INC      DPTR
-000D37 E0                MOVX     A,@DPTR
-000D38 2401              ADD      A,#01H
-000D3A F9                MOV      R1,A
-000D3B E4                CLR      A
-000D3C 3A                ADDC     A,R2
-000D3D FA                MOV      R2,A
-000D3E 7E00              MOV      R6,#00H
-000D40 E9                MOV      A,R1
-000D41 2F                ADD      A,R7
-000D42 F9                MOV      R1,A
-000D43 EE                MOV      A,R6
-000D44 3A                ADDC     A,R2
-000D45 FA                MOV      R2,A
-000D46 1203B6            LCALL    ?C?CLDPTR
-000D49 FF                MOV      R7,A
-000D4A 6439              XRL      A,#039H
-000D4C 600A              JZ       ?C0074?KB_PROCESS
-000D4E EF                MOV      A,R7
-000D4F 6453              XRL      A,#053H
-000D51 6005              JZ       ?C0074?KB_PROCESS
-000D53 EF                MOV      A,R7
-000D54 6447              XRL      A,#047H
-000D56 7006              JNZ      ?C0072?KB_PROCESS
-000D58         ?C0074?KB_PROCESS:
+000D12 904E69            MOV     DPTR,#pEvt
+000D15 E0                MOVX    A,@DPTR
+000D16 FB                MOV     R3,A
+000D17 A3                INC     DPTR
+000D18 E0                MOVX    A,@DPTR
+000D19 FA                MOV     R2,A
+000D1A A3                INC     DPTR
+000D1B E0                MOVX    A,@DPTR
+000D1C 2401              ADD     A,#01H
+000D1E F9                MOV     R1,A
+000D1F E4                CLR     A
+000D20 3A                ADDC    A,R2
+000D21 FA                MOV     R2,A
+000D22 7E00              MOV     R6,#00H
+000D24 E9                MOV     A,R1
+000D25 2F                ADD     A,R7
+000D26 F9                MOV     R1,A
+000D27 EE                MOV     A,R6
+000D28 3A                ADDC    A,R2
+000D29 FA                MOV     R2,A
+000D2A 1203B6            LCALL   ?C?CLDPTR
+000D2D FF                MOV     R7,A
+000D2E 6439              XRL     A,#039H
+000D30 6009              JZ      ?C0074?KB_PROCESS
+000D32 EF                MOV     A,R7
+000D33 6453              XRL     A,#053H
+000D35 6004              JZ      ?C0074?KB_PROCESS
+000D37 EF                MOV     A,R7
+000D38 B44706            CJNE    A,#047H,?C0072?KB_PROCESS
+000D3B         ?C0074?KB_PROCESS:
   306: 			|| (pEvt->ksPool[i] == HID_KEY_SCROLL_LOCK))
   307: 			{
   308: 				m_24g_led_flag = KB_24G_LED_ACK_TYPE;
-000D58 904D47            MOV      DPTR,#m_24g_led_flag
-000D5B 7403              MOV      A,#03H
-000D5D F0                MOVX     @DPTR,A
+000D3B 904D47            MOV     DPTR,#m_24g_led_flag
+000D3E 7403              MOV     A,#03H
+000D40 F0                MOVX    @DPTR,A
   309: 
   310: 			}
   311: 		}
-000D5E         ?C0072?KB_PROCESS:
-000D5E 904E6D            MOV      DPTR,#i
-000D61 E0                MOVX     A,@DPTR
-000D62 04                INC      A
-000D63 F0                MOVX     @DPTR,A
-000D64 80BA              SJMP     ?C0070?KB_PROCESS
+000D41         ?C0072?KB_PROCESS:
+000D41 904E6D            MOV     DPTR,#i
+000D44 E0                MOVX    A,@DPTR
+000D45 04                INC     A
+000D46 F0                MOVX    @DPTR,A
+000D47 80BF              SJMP    ?C0070?KB_PROCESS
   312: 	}
-000D66         ?C0069?KB_PROCESS:
+000D49         ?C0069?KB_PROCESS:
   313: 
   314: 	kb_multikey_setup(pEvt);
-000D66 904E69            MOV      DPTR,#pEvt
-000D69 E0                MOVX     A,@DPTR
-000D6A FB                MOV      R3,A
-000D6B A3                INC      DPTR
-000D6C E0                MOVX     A,@DPTR
-000D6D FA                MOV      R2,A
-000D6E A3                INC      DPTR
-000D6F E0                MOVX     A,@DPTR
-000D70 F9                MOV      R1,A
-000D71 1210F2            LCALL    _kb_multikey_setup
+000D49 904E69            MOV     DPTR,#pEvt
+000D4C E0                MOVX    A,@DPTR
+000D4D FB                MOV     R3,A
+000D4E A3                INC     DPTR
+000D4F E0                MOVX    A,@DPTR
+000D50 FA                MOV     R2,A
+000D51 A3                INC     DPTR
+000D52 E0                MOVX    A,@DPTR
+000D53 F9                MOV     R1,A
+000D54 121E2E            LCALL   _kb_multikey_setup
   315: 	
   316: 	if (mult_key_status == KEY_MULIT_PRESS) 
-000D74 904DE7            MOV      DPTR,#mult_key_status
-000D77 E0                MOVX     A,@DPTR
-000D78 6401              XRL      A,#01H
-000D7A 7011              JNZ      ?C0075?KB_PROCESS
+000D57 904DE7            MOV     DPTR,#mult_key_status
+000D5A E0                MOVX    A,@DPTR
+000D5B B40111            CJNE    A,#01H,?C0075?KB_PROCESS
   317: 	{
   318: 		mult_key_status = KEY_WAIT_RELEASE;
-000D7C 7402              MOV      A,#02H
-000D7E F0                MOVX     @DPTR,A
+000D5E 7402              MOV     A,#02H
+000D60 F0                MOVX    @DPTR,A
   319: 		multikey[0] = HID_REPORTID_2;
-000D7F 904DE8            MOV      DPTR,#multikey
-000D82 F0                MOVX     @DPTR,A
+000D61 904DE8            MOV     DPTR,#multikey
+000D64 F0                MOVX    @DPTR,A
   320: 		IPC_TxHidData(multikey, 3);
-000D83 7B01              MOV      R3,#01H
-000D85 7A4D              MOV      R2,#HIGH multikey
-000D87 79E8              MOV      R1,#LOW multikey
-000D89 7D03              MOV      R5,#03H
-000D8B E1F4              AJMP     _IPC_TxHidData
+000D65 7B01              MOV     R3,#01H
+000D67 7A4D              MOV     R2,#HIGH multikey
+000D69 79E8              MOV     R1,#LOW multikey
+000D6B 7D03              MOV     R5,#03H
+000D6D E1A4              AJMP    _IPC_TxHidData
   321: 	}
-000D8D         ?C0075?KB_PROCESS:
+000D6F         ?C0075?KB_PROCESS:
   322: #ifdef SYSTEM_CONTROL_ENABLE	
   323: 	else if (mult_key_status == KEY_SYSTEM_PRESS) 
-000D8D 904DE7            MOV      DPTR,#mult_key_status
-000D90 E0                MOVX     A,@DPTR
-000D91 6404              XRL      A,#04H
-000D93 7013              JNZ      ?C0077?KB_PROCESS
+000D6F 904DE7            MOV     DPTR,#mult_key_status
+000D72 E0                MOVX    A,@DPTR
+000D73 B40413            CJNE    A,#04H,?C0077?KB_PROCESS
   324: 	{
   325: 		mult_key_status = KEY_WAIT_RELEASE;
-000D95 7402              MOV      A,#02H
-000D97 F0                MOVX     @DPTR,A
+000D76 7402              MOV     A,#02H
+000D78 F0                MOVX    @DPTR,A
   326: 		multikey[0] = HID_REPORTID_SYSTEM;
-000D98 904DE8            MOV      DPTR,#multikey
-000D9B 7406              MOV      A,#06H
-000D9D F0                MOVX     @DPTR,A
+000D79 904DE8            MOV     DPTR,#multikey
+000D7C 7406              MOV     A,#06H
+000D7E F0                MOVX    @DPTR,A
   327: 		IPC_TxHidData(multikey, 3);
-000D9E 7B01              MOV      R3,#01H
-000DA0 7A4D              MOV      R2,#HIGH multikey
-000DA2 79E8              MOV      R1,#LOW multikey
-000DA4 7D03              MOV      R5,#03H
-000DA6 E1F4              AJMP     _IPC_TxHidData
+000D7F 7B01              MOV     R3,#01H
+000D81 7A4D              MOV     R2,#HIGH multikey
+000D83 79E8              MOV     R1,#LOW multikey
+000D85 7D03              MOV     R5,#03H
+000D87 E1A4              AJMP    _IPC_TxHidData
   328: 	}
-000DA8         ?C0077?KB_PROCESS:
+000D89         ?C0077?KB_PROCESS:
   329: #endif	
   330: 	else if((mult_key_status == KEY_RELEASE) || (mult_key_status == KEY_WAIT_RELEASE && (!keyCount)))
-000DA8 904DE7            MOV      DPTR,#mult_key_status
-000DAB E0                MOVX     A,@DPTR
-000DAC 6403              XRL      A,#03H
-000DAE 600B              JZ       ?C0080?KB_PROCESS
-000DB0 E0                MOVX     A,@DPTR
-000DB1 6402              XRL      A,#02H
-000DB3 702F              JNZ      ?C0079?KB_PROCESS
-000DB5 904DDD            MOV      DPTR,#keyCount
-000DB8 E0                MOVX     A,@DPTR
-000DB9 7029              JNZ      ?C0079?KB_PROCESS
-000DBB         ?C0080?KB_PROCESS:
+000D89 904DE7            MOV     DPTR,#mult_key_status
+000D8C E0                MOVX    A,@DPTR
+000D8D 6403              XRL     A,#03H
+000D8F 600B              JZ      ?C0080?KB_PROCESS
+000D91 E0                MOVX    A,@DPTR
+000D92 6402              XRL     A,#02H
+000D94 702F              JNZ     ?C0079?KB_PROCESS
+000D96 904DDD            MOV     DPTR,#keyCount
+000D99 E0                MOVX    A,@DPTR
+000D9A 7029              JNZ     ?C0079?KB_PROCESS
+000D9C         ?C0080?KB_PROCESS:
   331: 	{
   332: 		mult_key_status = KEY_STANDBY;
-000DBB E4                CLR      A
-000DBC 904DE7            MOV      DPTR,#mult_key_status
-000DBF F0                MOVX     @DPTR,A
+000D9C E4                CLR     A
+000D9D 904DE7            MOV     DPTR,#mult_key_status
+000DA0 F0                MOVX    @DPTR,A
   333: 		mult_key_value = 0;
-000DC0 904DE6            MOV      DPTR,#mult_key_value
-000DC3 F0                MOVX     @DPTR,A
+000DA1 904DE6            MOV     DPTR,#mult_key_value
+000DA4 F0                MOVX    @DPTR,A
   334: #ifdef SYSTEM_CONTROL_ENABLE		
   335: 		if(system_key_press)
-000DC4 904DE2            MOV      DPTR,#system_key_press
-000DC7 E0                MOVX     A,@DPTR
-000DC8 600A              JZ       ?C0081?KB_PROCESS
+000DA5 904DE2            MOV     DPTR,#system_key_press
+000DA8 E0                MOVX    A,@DPTR
+000DA9 600A              JZ      ?C0081?KB_PROCESS
   336: 		{
   337: 			system_key_press = 0;
-000DCA E4                CLR      A
-000DCB F0                MOVX     @DPTR,A
+000DAB E4                CLR     A
+000DAC F0                MOVX    @DPTR,A
   338: 			multikey[0] = HID_REPORTID_SYSTEM;
-000DCC 904DE8            MOV      DPTR,#multikey
-000DCF 7406              MOV      A,#06H
-000DD1 F0                MOVX     @DPTR,A
+000DAD 904DE8            MOV     DPTR,#multikey
+000DB0 7406              MOV     A,#06H
+000DB2 F0                MOVX    @DPTR,A
   339: 		}
-000DD2 8006              SJMP     ?C0082?KB_PROCESS
-000DD4         ?C0081?KB_PROCESS:
+000DB3 8006              SJMP    ?C0082?KB_PROCESS
+000DB5         ?C0081?KB_PROCESS:
   340: 		else
   341: #endif		
   342: 			multikey[0] = HID_REPORTID_2;
-000DD4 904DE8            MOV      DPTR,#multikey
-000DD7 7402              MOV      A,#02H
-000DD9 F0                MOVX     @DPTR,A
-000DDA         ?C0082?KB_PROCESS:
+000DB5 904DE8            MOV     DPTR,#multikey
+000DB8 7402              MOV     A,#02H
+000DBA F0                MOVX    @DPTR,A
+000DBB         ?C0082?KB_PROCESS:
   343: 		IPC_TxHidData(multikey, 3);
-000DDA 7B01              MOV      R3,#01H
-000DDC 7A4D              MOV      R2,#HIGH multikey
-000DDE 79E8              MOV      R1,#LOW multikey
-000DE0 7D03              MOV      R5,#03H
-000DE2 E1F4              AJMP     _IPC_TxHidData
+000DBB 7B01              MOV     R3,#01H
+000DBD 7A4D              MOV     R2,#HIGH multikey
+000DBF 79E8              MOV     R1,#LOW multikey
+000DC1 7D03              MOV     R5,#03H
+000DC3 E1A4              AJMP    _IPC_TxHidData
   344: 	}
-000DE4         ?C0079?KB_PROCESS:
+000DC5         ?C0079?KB_PROCESS:
   345: 	else 
   346: 	{
   347: 		if(!keyCount)
-000DE4 904DDD            MOV      DPTR,#keyCount
-000DE7 E0                MOVX     A,@DPTR
-000DE8 7016              JNZ      ?C0084?KB_PROCESS
+000DC5 904DDD            MOV     DPTR,#keyCount
+000DC8 E0                MOVX    A,@DPTR
+000DC9 7016              JNZ     ?C0084?KB_PROCESS
   348: 			xmemclear(pEvt->ksPool,6);
-000DEA 904E69            MOV      DPTR,#pEvt
-000DED E0                MOVX     A,@DPTR
-000DEE FB                MOV      R3,A
-000DEF A3                INC      DPTR
-000DF0 E0                MOVX     A,@DPTR
-000DF1 FA                MOV      R2,A
-000DF2 A3                INC      DPTR
-000DF3 E0                MOVX     A,@DPTR
-000DF4 2401              ADD      A,#01H
-000DF6 F9                MOV      R1,A
-000DF7 E4                CLR      A
-000DF8 3A                ADDC     A,R2
-000DF9 FA                MOV      R2,A
-000DFA 7D06              MOV      R5,#06H
-000DFC 7C00              MOV      R4,#00H
-000DFE D1D6              ACALL    _xmemclear
-000E00         ?C0084?KB_PROCESS:
+000DCB 904E69            MOV     DPTR,#pEvt
+000DCE E0                MOVX    A,@DPTR
+000DCF FB                MOV     R3,A
+000DD0 A3                INC     DPTR
+000DD1 E0                MOVX    A,@DPTR
+000DD2 FA                MOV     R2,A
+000DD3 A3                INC     DPTR
+000DD4 E0                MOVX    A,@DPTR
+000DD5 2401              ADD     A,#01H
+000DD7 F9                MOV     R1,A
+000DD8 E4                CLR     A
+000DD9 3A                ADDC    A,R2
+000DDA FA                MOV     R2,A
+000DDB 7D06              MOV     R5,#06H
+000DDD 7C00              MOV     R4,#00H
+000DDF D1B0              ACALL   _xmemclear
+000DE1         ?C0084?KB_PROCESS:
   349: 	
   350: 		hidBuff[0] = HID_REPORTID_1;		// standard key send
-000E00 904800            MOV      DPTR,#hidBuff
-000E03 7401              MOV      A,#01H
-000E05 F0                MOVX     @DPTR,A
+000DE1 904800            MOV     DPTR,#hidBuff
+000DE4 7401              MOV     A,#01H
+000DE6 F0                MOVX    @DPTR,A
   351: 		hidBuff[1] = pEvt->standardSel;
-000E06 904E69            MOV      DPTR,#pEvt
-000E09 E0                MOVX     A,@DPTR
-000E0A FB                MOV      R3,A
-000E0B A3                INC      DPTR
-000E0C E0                MOVX     A,@DPTR
-000E0D FA                MOV      R2,A
-000E0E A3                INC      DPTR
-000E0F E0                MOVX     A,@DPTR
-000E10 F9                MOV      R1,A
-000E11 1203B6            LCALL    ?C?CLDPTR
-000E14 904801            MOV      DPTR,#hidBuff+01H
-000E17 F0                MOVX     @DPTR,A
+000DE7 904E69            MOV     DPTR,#pEvt
+000DEA E0                MOVX    A,@DPTR
+000DEB FB                MOV     R3,A
+000DEC A3                INC     DPTR
+000DED E0                MOVX    A,@DPTR
+000DEE FA                MOV     R2,A
+000DEF A3                INC     DPTR
+000DF0 E0                MOVX    A,@DPTR
+000DF1 F9                MOV     R1,A
+000DF2 1203B6            LCALL   ?C?CLDPTR
+000DF5 904801            MOV     DPTR,#hidBuff+01H
+000DF8 F0                MOVX    @DPTR,A
   352: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
-000E18 904CC5            MOV      DPTR,#g_variable+06H
-000E1B E0                MOVX     A,@DPTR
-000E1C 6403              XRL      A,#03H
-000E1E 700A              JNZ      ?C0085?KB_PROCESS
+000DF9 904CC5            MOV     DPTR,#g_variable+06H
+000DFC E0                MOVX    A,@DPTR
+000DFD B4030A            CJNE    A,#03H,?C0085?KB_PROCESS
   353: 			hidBuff[2] = m_24g_led_flag;
-000E20 904D47            MOV      DPTR,#m_24g_led_flag
-000E23 E0                MOVX     A,@DPTR
-000E24 904802            MOV      DPTR,#hidBuff+02H
-000E27 F0                MOVX     @DPTR,A
-000E28 8005              SJMP     ?C0086?KB_PROCESS
-000E2A         ?C0085?KB_PROCESS:
+000E00 904D47            MOV     DPTR,#m_24g_led_flag
+000E03 E0                MOVX    A,@DPTR
+000E04 904802            MOV     DPTR,#hidBuff+02H
+000E07 F0                MOVX    @DPTR,A
+000E08 8005              SJMP    ?C0086?KB_PROCESS
+000E0A         ?C0085?KB_PROCESS:
   354: 		else
   355: 			hidBuff[2] = 0;
-000E2A E4                CLR      A
-000E2B 904802            MOV      DPTR,#hidBuff+02H
-000E2E F0                MOVX     @DPTR,A
-000E2F         ?C0086?KB_PROCESS:
+000E0A E4                CLR     A
+000E0B 904802            MOV     DPTR,#hidBuff+02H
+000E0E F0                MOVX    @DPTR,A
+000E0F         ?C0086?KB_PROCESS:
   356: 
   357: 		standard_key_release_flag = 0;
-000E2F E4                CLR      A
-000E30 904DD8            MOV      DPTR,#standard_key_release_flag
-000E33 F0                MOVX     @DPTR,A
+000E0F E4                CLR     A
+000E10 904DD8            MOV     DPTR,#standard_key_release_flag
+000E13 F0                MOVX    @DPTR,A
   358: 		if(!fast_connect_flag)
-000E34 904DF1            MOV      DPTR,#fast_connect_flag
-000E37 E0                MOVX     A,@DPTR
-000E38 7075              JNZ      ?C0087?KB_PROCESS
+000E14 904DF1            MOV     DPTR,#fast_connect_flag
+000E17 E0                MOVX    A,@DPTR
+000E18 706F              JNZ     ?C0087?KB_PROCESS
   359: 		{
   360: 			if (pEvt->ksPool[0] == HID_KEY_FN)
-000E3A 900001            MOV      DPTR,#01H
-000E3D 1203CF            LCALL    ?C?CLDOPTR
-000E40 647F              XRL      A,#07FH
-000E42 7015              JNZ      ?C0088?KB_PROCESS
+000E1A 900001            MOV     DPTR,#01H
+000E1D 1203CF            LCALL   ?C?CLDOPTR
+000E20 B47F15            CJNE    A,#07FH,?C0088?KB_PROCESS
   361: 				xmemcpy(&hidBuff[3], &pEvt->ksPool[1], 5);
-000E44 7E48              MOV      R6,#HIGH hidBuff+03H
-000E46 7F03              MOV      R7,#LOW hidBuff+03H
-000E48 E9                MOV      A,R1
-000E49 2402              ADD      A,#02H
-000E4B F9                MOV      R1,A
-000E4C E4                CLR      A
-000E4D 3A                ADDC     A,R2
-000E4E FA                MOV      R2,A
-000E4F 904E68            MOV      DPTR,#?_xmemcpy?BYTE+05H
-000E52 7405              MOV      A,#05H
-000E54 F0                MOVX     @DPTR,A
-000E55 7189              ACALL    _xmemcpy
-000E57 801C              SJMP     ?C0089?KB_PROCESS
-000E59         ?C0088?KB_PROCESS:
+000E23 7E48              MOV     R6,#HIGH hidBuff+03H
+000E25 7F03              MOV     R7,#LOW hidBuff+03H
+000E27 E9                MOV     A,R1
+000E28 2402              ADD     A,#02H
+000E2A F9                MOV     R1,A
+000E2B E4                CLR     A
+000E2C 3A                ADDC    A,R2
+000E2D FA                MOV     R2,A
+000E2E 904E68            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000E31 7405              MOV     A,#05H
+000E33 F0                MOVX    @DPTR,A
+000E34 717C              ACALL   _xmemcpy
+000E36 801C              SJMP    ?C0089?KB_PROCESS
+000E38         ?C0088?KB_PROCESS:
   362: 			else
   363: 				xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
-000E59 7E48              MOV      R6,#HIGH hidBuff+03H
-000E5B 7F03              MOV      R7,#LOW hidBuff+03H
-000E5D 904E69            MOV      DPTR,#pEvt
-000E60 E0                MOVX     A,@DPTR
-000E61 FB                MOV      R3,A
-000E62 A3                INC      DPTR
-000E63 E0                MOVX     A,@DPTR
-000E64 FA                MOV      R2,A
-000E65 A3                INC      DPTR
-000E66 E0                MOVX     A,@DPTR
-000E67 2401              ADD      A,#01H
-000E69 F9                MOV      R1,A
-000E6A E4                CLR      A
-000E6B 3A                ADDC     A,R2
-000E6C FA                MOV      R2,A
-000E6D 904E68            MOV      DPTR,#?_xmemcpy?BYTE+05H
-000E70 7406              MOV      A,#06H
-000E72 F0                MOVX     @DPTR,A
-000E73 7189              ACALL    _xmemcpy
-000E75         ?C0089?KB_PROCESS:
+000E38 7E48              MOV     R6,#HIGH hidBuff+03H
+000E3A 7F03              MOV     R7,#LOW hidBuff+03H
+000E3C 904E69            MOV     DPTR,#pEvt
+000E3F E0                MOVX    A,@DPTR
+000E40 FB                MOV     R3,A
+000E41 A3                INC     DPTR
+000E42 E0                MOVX    A,@DPTR
+000E43 FA                MOV     R2,A
+000E44 A3                INC     DPTR
+000E45 E0                MOVX    A,@DPTR
+000E46 2401              ADD     A,#01H
+000E48 F9                MOV     R1,A
+000E49 E4                CLR     A
+000E4A 3A                ADDC    A,R2
+000E4B FA                MOV     R2,A
+000E4C 904E68            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000E4F 7406              MOV     A,#06H
+000E51 F0                MOVX    @DPTR,A
+000E52 717C              ACALL   _xmemcpy
+000E54         ?C0089?KB_PROCESS:
   364: 			
   365: 			for(i = 3; i<9;i++)
-000E75 904E6D            MOV      DPTR,#i
-000E78 7403              MOV      A,#03H
-000E7A F0                MOVX     @DPTR,A
-000E7B         ?C0090?KB_PROCESS:
-000E7B 904E6D            MOV      DPTR,#i
-000E7E E0                MOVX     A,@DPTR
-000E7F FF                MOV      R7,A
-000E80 C3                CLR      C
-000E81 9409              SUBB     A,#09H
-000E83 7480              MOV      A,#080H
-000E85 9480              SUBB     A,#080H
-000E87 5042              JNC      ?C0094?KB_PROCESS
+000E54 904E6D            MOV     DPTR,#i
+000E57 7403              MOV     A,#03H
+000E59 F0                MOVX    @DPTR,A
+000E5A         ?C0090?KB_PROCESS:
+000E5A 904E6D            MOV     DPTR,#i
+000E5D E0                MOVX    A,@DPTR
+000E5E FF                MOV     R7,A
+000E5F C3                CLR     C
+000E60 9409              SUBB    A,#09H
+000E62 5041              JNC     ?C0094?KB_PROCESS
   366: 			{
   367: 				if (hidBuff[i] == HID_KEY_FN)
-000E89 7400              MOV      A,#LOW hidBuff
-000E8B 2F                ADD      A,R7
-000E8C F582              MOV      DPL,A
-000E8E E4                CLR      A
-000E8F 3448              ADDC     A,#HIGH hidBuff
-000E91 F583              MOV      DPH,A
-000E93 E0                MOVX     A,@DPTR
-000E94 647F              XRL      A,#07FH
-000E96 700F              JNZ      ?C0092?KB_PROCESS
+000E64 7400              MOV     A,#LOW hidBuff
+000E66 2F                ADD     A,R7
+000E67 F582              MOV     DPL,A
+000E69 E4                CLR     A
+000E6A 3448              ADDC    A,#HIGH hidBuff
+000E6C F583              MOV     DPH,A
+000E6E E0                MOVX    A,@DPTR
+000E6F B47F0F            CJNE    A,#07FH,?C0092?KB_PROCESS
   368: 					hidBuff[i] = 0;
-000E98 904E6D            MOV      DPTR,#i
-000E9B E0                MOVX     A,@DPTR
-000E9C 2400              ADD      A,#LOW hidBuff
-000E9E F582              MOV      DPL,A
-000EA0 E4                CLR      A
-000EA1 3448              ADDC     A,#HIGH hidBuff
-000EA3 F583              MOV      DPH,A
-000EA5 E4                CLR      A
-000EA6 F0                MOVX     @DPTR,A
+000E72 904E6D            MOV     DPTR,#i
+000E75 E0                MOVX    A,@DPTR
+000E76 2400              ADD     A,#LOW hidBuff
+000E78 F582              MOV     DPL,A
+000E7A E4                CLR     A
+000E7B 3448              ADDC    A,#HIGH hidBuff
+000E7D F583              MOV     DPH,A
+000E7F E4                CLR     A
+000E80 F0                MOVX    @DPTR,A
   369: 			}
-000EA7         ?C0092?KB_PROCESS:
-000EA7 904E6D            MOV      DPTR,#i
-000EAA E0                MOVX     A,@DPTR
-000EAB 04                INC      A
-000EAC F0                MOVX     @DPTR,A
-000EAD 80CC              SJMP     ?C0090?KB_PROCESS
+000E81         ?C0092?KB_PROCESS:
+000E81 904E6D            MOV     DPTR,#i
+000E84 E0                MOVX    A,@DPTR
+000E85 04                INC     A
+000E86 F0                MOVX    @DPTR,A
+000E87 80D1              SJMP    ?C0090?KB_PROCESS
   370: 		}
-000EAF         ?C0087?KB_PROCESS:
+000E89         ?C0087?KB_PROCESS:
   371: 		else	
   372: 			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
-000EAF 7E48              MOV      R6,#HIGH hidBuff+03H
-000EB1 7F03              MOV      R7,#LOW hidBuff+03H
-000EB3 904E69            MOV      DPTR,#pEvt
-000EB6 E0                MOVX     A,@DPTR
-000EB7 FB                MOV      R3,A
-000EB8 A3                INC      DPTR
-000EB9 E0                MOVX     A,@DPTR
-000EBA FA                MOV      R2,A
-000EBB A3                INC      DPTR
-000EBC E0                MOVX     A,@DPTR
-000EBD 2401              ADD      A,#01H
-000EBF F9                MOV      R1,A
-000EC0 E4                CLR      A
-000EC1 3A                ADDC     A,R2
-000EC2 FA                MOV      R2,A
-000EC3 904E68            MOV      DPTR,#?_xmemcpy?BYTE+05H
-000EC6 7406              MOV      A,#06H
-000EC8 F0                MOVX     @DPTR,A
-000EC9 7189              ACALL    _xmemcpy
-000ECB         ?C0094?KB_PROCESS:
+000E89 7E48              MOV     R6,#HIGH hidBuff+03H
+000E8B 7F03              MOV     R7,#LOW hidBuff+03H
+000E8D 904E69            MOV     DPTR,#pEvt
+000E90 E0                MOVX    A,@DPTR
+000E91 FB                MOV     R3,A
+000E92 A3                INC     DPTR
+000E93 E0                MOVX    A,@DPTR
+000E94 FA                MOV     R2,A
+000E95 A3                INC     DPTR
+000E96 E0                MOVX    A,@DPTR
+000E97 2401              ADD     A,#01H
+000E99 F9                MOV     R1,A
+000E9A E4                CLR     A
+000E9B 3A                ADDC    A,R2
+000E9C FA                MOV     R2,A
+000E9D 904E68            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000EA0 7406              MOV     A,#06H
+000EA2 F0                MOVX    @DPTR,A
+000EA3 717C              ACALL   _xmemcpy
+000EA5         ?C0094?KB_PROCESS:
   373: 		IPC_TxHidData(hidBuff, 9);
-000ECB 7B01              MOV      R3,#01H
-000ECD 7A48              MOV      R2,#HIGH hidBuff
-000ECF 7900              MOV      R1,#LOW hidBuff
-000ED1 7D09              MOV      R5,#09H
-000ED3 F1F4              ACALL    _IPC_TxHidData
+000EA5 7B01              MOV     R3,#01H
+000EA7 7A48              MOV     R2,#HIGH hidBuff
+000EA9 7900              MOV     R1,#LOW hidBuff
+000EAB 7D09              MOV     R5,#09H
+000EAD F1A4              ACALL   _IPC_TxHidData
   374: 	}
   375: 	return;
   376: }
-000ED5         ?C0056?KB_PROCESS:
-000ED5 22                RET      
+000EAF         ?C0056?KB_PROCESS:
+000EAF 22                RET     
 ----- FUNCTION _kb_motion_keyscan (END) -------
 
 
 ----- FUNCTION _xmemclear (BEGIN) -----
-000ED6 904E8D            MOV      DPTR,#dest
-000ED9 EB                MOV      A,R3
-000EDA F0                MOVX     @DPTR,A
-000EDB A3                INC      DPTR
-000EDC EA                MOV      A,R2
-000EDD F0                MOVX     @DPTR,A
-000EDE A3                INC      DPTR
-000EDF E9                MOV      A,R1
-000EE0 F0                MOVX     @DPTR,A
+000EB0 904E8D            MOV     DPTR,#dest
+000EB3 EB                MOV     A,R3
+000EB4 F0                MOVX    @DPTR,A
+000EB5 A3                INC     DPTR
+000EB6 EA                MOV     A,R2
+000EB7 F0                MOVX    @DPTR,A
+000EB8 A3                INC     DPTR
+000EB9 E9                MOV     A,R1
+000EBA F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R4/R5' ----
-000EE1         ?C0008?UTILITIES:
-000EE1 ED                MOV      A,R5
-000EE2 1D                DEC      R5
-000EE3 AE04              MOV      R6,AR4
-000EE5 7001              JNZ      ?C0026?UTILITIES
-000EE7 1C                DEC      R4
-000EE8         ?C0026?UTILITIES:
-000EE8 4E                ORL      A,R6
-000EE9 6016              JZ       ?C0010?UTILITIES
-000EEB 904E8D            MOV      DPTR,#dest
-000EEE E0                MOVX     A,@DPTR
-000EEF FB                MOV      R3,A
-000EF0 A3                INC      DPTR
-000EF1 E4                CLR      A
-000EF2 75F001            MOV      B,#01H
-000EF5 120424            LCALL    ?C?ILDIX
-000EF8 A9F0              MOV      R1,B
-000EFA FA                MOV      R2,A
-000EFB E4                CLR      A
-000EFC 1203FC            LCALL    ?C?CSTPTR
-000EFF 80E0              SJMP     ?C0008?UTILITIES
-000F01         ?C0010?UTILITIES:
-000F01 22                RET      
+000EBB         ?C0008?UTILITIES:
+000EBB ED                MOV     A,R5
+000EBC 1D                DEC     R5
+000EBD AE04              MOV     R6,AR4
+000EBF 7001              JNZ     ?C0026?UTILITIES
+000EC1 1C                DEC     R4
+000EC2         ?C0026?UTILITIES:
+000EC2 4E                ORL     A,R6
+000EC3 6016              JZ      ?C0010?UTILITIES
+000EC5 904E8D            MOV     DPTR,#dest
+000EC8 E0                MOVX    A,@DPTR
+000EC9 FB                MOV     R3,A
+000ECA A3                INC     DPTR
+000ECB E4                CLR     A
+000ECC 75F001            MOV     B,#01H
+000ECF 120424            LCALL   ?C?ILDIX
+000ED2 A9F0              MOV     R1,B
+000ED4 FA                MOV     R2,A
+000ED5 E4                CLR     A
+000ED6 1203FC            LCALL   ?C?CSTPTR
+000ED9 80E0              SJMP    ?C0008?UTILITIES
+000EDB         ?C0010?UTILITIES:
+000EDB 22                RET     
 ----- FUNCTION _xmemclear (END) -------
 
 
@@ -1838,100 +1800,100 @@
    12: {
    13: 	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
    14: 	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
-000F02 7B01              MOV      R3,#01H
-000F04 7A4C              MOV      R2,#HIGH g_variable
-000F06 79BF              MOV      R1,#LOW g_variable
-000F08 7D43              MOV      R5,#043H
-000F0A 7C00              MOV      R4,#00H
-000F0C D1D6              ACALL    _xmemclear
+000EDC 7B01              MOV     R3,#01H
+000EDE 7A4C              MOV     R2,#HIGH g_variable
+000EE0 79BF              MOV     R1,#LOW g_variable
+000EE2 7D43              MOV     R5,#043H
+000EE4 7C00              MOV     R4,#00H
+000EE6 D1B0              ACALL   _xmemclear
    15: 	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
-000F0E 7B01              MOV      R3,#01H
-000F10 7A4D              MOV      R2,#HIGH ksSelMapOld
-000F12 7993              MOV      R1,#LOW ksSelMapOld
-000F14 7D14              MOV      R5,#014H
-000F16 7C00              MOV      R4,#00H
-000F18 D1D6              ACALL    _xmemclear
+000EE8 7B01              MOV     R3,#01H
+000EEA 7A4D              MOV     R2,#HIGH ksSelMapOld
+000EEC 7993              MOV     R1,#LOW ksSelMapOld
+000EEE 7D14              MOV     R5,#014H
+000EF0 7C00              MOV     R4,#00H
+000EF2 D1B0              ACALL   _xmemclear
    16: 	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
-000F1A 7B01              MOV      R3,#01H
-000F1C 7A4D              MOV      R2,#HIGH ksSelMapCheck
-000F1E 79A8              MOV      R1,#LOW ksSelMapCheck
-000F20 7D14              MOV      R5,#014H
-000F22 7C00              MOV      R4,#00H
-000F24 D1D6              ACALL    _xmemclear
+000EF4 7B01              MOV     R3,#01H
+000EF6 7A4D              MOV     R2,#HIGH ksSelMapCheck
+000EF8 79A8              MOV     R1,#LOW ksSelMapCheck
+000EFA 7D14              MOV     R5,#014H
+000EFC 7C00              MOV     R4,#00H
+000EFE D1B0              ACALL   _xmemclear
    17: 	xmemclear(hidBuff,9);
-000F26 7B01              MOV      R3,#01H
-000F28 7A4D              MOV      R2,#HIGH ksSelMapCurr
-000F2A 79BC              MOV      R1,#LOW ksSelMapCurr
-000F2C 7D14              MOV      R5,#014H
-000F2E 7C00              MOV      R4,#00H
-000F30 D1D6              ACALL    _xmemclear
+000F00 7B01              MOV     R3,#01H
+000F02 7A4D              MOV     R2,#HIGH ksSelMapCurr
+000F04 79BC              MOV     R1,#LOW ksSelMapCurr
+000F06 7D14              MOV     R5,#014H
+000F08 7C00              MOV     R4,#00H
+000F0A D1B0              ACALL   _xmemclear
    18: 	xmemclear(multikey,9);
-000F32 7B01              MOV      R3,#01H
-000F34 7A48              MOV      R2,#HIGH hidBuff
-000F36 7900              MOV      R1,#LOW hidBuff
-000F38 7D09              MOV      R5,#09H
-000F3A 7C00              MOV      R4,#00H
-000F3C D1D6              ACALL    _xmemclear
+000F0C 7B01              MOV     R3,#01H
+000F0E 7A48              MOV     R2,#HIGH hidBuff
+000F10 7900              MOV     R1,#LOW hidBuff
+000F12 7D09              MOV     R5,#09H
+000F14 7C00              MOV     R4,#00H
+000F16 D1B0              ACALL   _xmemclear
    19:  
-000F3E 7B01              MOV      R3,#01H
-000F40 7A4D              MOV      R2,#HIGH multikey
-000F42 79E8              MOV      R1,#LOW multikey
-000F44 7D09              MOV      R5,#09H
-000F46 7C00              MOV      R4,#00H
-000F48 D1D6              ACALL    _xmemclear
+000F18 7B01              MOV     R3,#01H
+000F1A 7A4D              MOV     R2,#HIGH multikey
+000F1C 79E8              MOV     R1,#LOW multikey
+000F1E 7D09              MOV     R5,#09H
+000F20 7C00              MOV     R4,#00H
+000F22 D1B0              ACALL   _xmemclear
    20: 	delayChgInvTimer = 0;
-000F4A E4                CLR      A
-000F4B 904DDF            MOV      DPTR,#delayChgInvTimer
-000F4E F0                MOVX     @DPTR,A
+000F24 E4                CLR     A
+000F25 904DDF            MOV     DPTR,#delayChgInvTimer
+000F28 F0                MOVX    @DPTR,A
    21: 	action_timeout = 0;
-000F4F 904DE5            MOV      DPTR,#action_timeout
-000F52 F0                MOVX     @DPTR,A
+000F29 904DE5            MOV     DPTR,#action_timeout
+000F2C F0                MOVX    @DPTR,A
    22: 
    23: 	power_on_flag = 0;
-000F53 904DE4            MOV      DPTR,#power_on_flag
-000F56 F0                MOVX     @DPTR,A
+000F2D 904DE4            MOV     DPTR,#power_on_flag
+000F30 F0                MOVX    @DPTR,A
    24: 	repeat_send_24g = 0;
-000F57 904DD6            MOV      DPTR,#repeat_send_24g
-000F5A F0                MOVX     @DPTR,A
+000F31 904DD6            MOV     DPTR,#repeat_send_24g
+000F34 F0                MOVX    @DPTR,A
    25: 	get_24g_led_send = 0;
-000F5B 904DD0            MOV      DPTR,#get_24g_led_send
-000F5E F0                MOVX     @DPTR,A
+000F35 904DD0            MOV     DPTR,#get_24g_led_send
+000F38 F0                MOVX    @DPTR,A
    26: 	press_long_time_flag = 0;
-000F5F 904DDC            MOV      DPTR,#press_long_time_flag
-000F62 F0                MOVX     @DPTR,A
+000F39 904DDC            MOV     DPTR,#press_long_time_flag
+000F3C F0                MOVX    @DPTR,A
    27: 	mult_key_status = 0;
-000F63 904DE7            MOV      DPTR,#mult_key_status
-000F66 F0                MOVX     @DPTR,A
+000F3D 904DE7            MOV     DPTR,#mult_key_status
+000F40 F0                MOVX    @DPTR,A
    28: 	long_press_flag = 0;
-000F67 904DD5            MOV      DPTR,#long_press_flag
-000F6A F0                MOVX     @DPTR,A
+000F41 904DD5            MOV     DPTR,#long_press_flag
+000F44 F0                MOVX    @DPTR,A
    29: 	standard_key_release_flag = 0;
-000F6B 904DD8            MOV      DPTR,#standard_key_release_flag
-000F6E F0                MOVX     @DPTR,A
+000F45 904DD8            MOV     DPTR,#standard_key_release_flag
+000F48 F0                MOVX    @DPTR,A
    30: 	fn_flag = 0;
-000F6F 904DDB            MOV      DPTR,#fn_flag
-000F72 F0                MOVX     @DPTR,A
+000F49 904DDB            MOV     DPTR,#fn_flag
+000F4C F0                MOVX    @DPTR,A
    31: 	fn_flag_last = 0;
-000F73 904DE3            MOV      DPTR,#fn_flag_last
-000F76 F0                MOVX     @DPTR,A
+000F4D 904DE3            MOV     DPTR,#fn_flag_last
+000F50 F0                MOVX    @DPTR,A
    32: 	fn_tx_flag = 0;
-000F77 904DD3            MOV      DPTR,#fn_tx_flag
-000F7A F0                MOVX     @DPTR,A
+000F51 904DD3            MOV     DPTR,#fn_tx_flag
+000F54 F0                MOVX    @DPTR,A
    33: 	fn_lock_flag = 0;
-000F7B 904DE0            MOV      DPTR,#fn_lock_flag
-000F7E F0                MOVX     @DPTR,A
+000F55 904DE0            MOV     DPTR,#fn_lock_flag
+000F58 F0                MOVX    @DPTR,A
    34: 
    35: 	mult_key_value = 0;
-000F7F 904DE6            MOV      DPTR,#mult_key_value
-000F82 F0                MOVX     @DPTR,A
+000F59 904DE6            MOV     DPTR,#mult_key_value
+000F5C F0                MOVX    @DPTR,A
    36: 	m_caps_num_lock_last = 0; 
-000F83 904DD9            MOV      DPTR,#m_caps_num_lock_last
-000F86 F0                MOVX     @DPTR,A
+000F5D 904DD9            MOV     DPTR,#m_caps_num_lock_last
+000F60 F0                MOVX    @DPTR,A
    37: 	m_reconnect_continue = 0;
-000F87 904D38            MOV      DPTR,#m_reconnect_continue
-000F8A F0                MOVX     @DPTR,A
+000F61 904D38            MOV     DPTR,#m_reconnect_continue
+000F64 F0                MOVX    @DPTR,A
    38: }
-000F8B 22                RET      
+000F65 22                RET     
 ----- FUNCTION System_clear_mem (END) -------
 
 
@@ -1941,1151 +1903,886 @@
    43: {
    44: 	g_variable.recon_count = 0;
    45: }
-000F8C E4                CLR      A
-000F8D 904CF0            MOV      DPTR,#g_variable+031H
-000F90 F0                MOVX     @DPTR,A
+000F66 E4                CLR     A
+000F67 904CF0            MOV     DPTR,#g_variable+031H
+000F6A F0                MOVX    @DPTR,A
    46: 
-000F91 22                RET      
+000F6B 22                RET     
 ----- FUNCTION YC_clear_reconnect_flag (END) -------
 
 
------ FUNCTION YC_start_reconnect (BEGIN) -----
- FILE: 'bluetooth.c'
-   60: void YC_start_reconnect()
-   61: {
-   62: 	power_on_flag = 2;
-   63: 	YC_key_action_handle(KEY_START_24G);
-000F92 904DE4            MOV      DPTR,#power_on_flag
-000F95 7402              MOV      A,#02H
-000F97 F0                MOVX     @DPTR,A
-   64: }
-000F98 7F08              MOV      R7,#08H
-000F9A 0134              AJMP     _YC_key_action_handle
------ FUNCTION YC_start_reconnect (END) -------
-
-
------ FUNCTION IPC_WaitLpm (BEGIN) -----
-000F9C E4                CLR      A
-000F9D 900B7F            MOV      DPTR,#lpm_flag
-000FA0 F0                MOVX     @DPTR,A
-000FA1 900B7E            MOV      DPTR,#current_task
-000FA4 F0                MOVX     @DPTR,A
-000FA5 7F01              MOV      R7,#01H
-000FA7 4180              AJMP     _Delay1ms
------ FUNCTION IPC_WaitLpm (END) -------
-
-
------ FUNCTION KS_Initialize (BEGIN) -----
- FILE: 'keyscan.c'
-  207: void KS_Initialize()
-  208: {
-  209: 	REG_GPIO_SELECT(0) = 0;
-  210: 	REG_GPIO_SELECT(1) = 0;
-000FA9 908080            MOV      DPTR,#08080H
-000FAC E4                CLR      A
-000FAD F0                MOVX     @DPTR,A
-  211: 	REG_GPIO_SELECT(2) = 0;
-000FAE A3                INC      DPTR
-000FAF F0                MOVX     @DPTR,A
-  212: 	ksRawInitialize();
-000FB0 A3                INC      DPTR
-000FB1 F0                MOVX     @DPTR,A
-  213: 	ksColInitialize();
-000FB2 121E97            LCALL    ksRawInitialize
-;----                  JMP      ksColInitialize
-  214: }
------ FUNCTION KS_Initialize (END) -------
-
-
------ FUNCTION ksColInitialize (BEGIN) -----
- FILE: 'keyscan.c'
-  199: static void ksColInitialize()
-  200: {
-  201: 	byte i = 0;
-  202: 	for (i=0; col[i]!=0; i++) {
-000FB5 E4                CLR      A
-000FB6 904E9F            MOV      DPTR,#i
-000FB9 F0                MOVX     @DPTR,A
-  203: 		GPIO_SetInput(col[i], 0);
-000FBA F0                MOVX     @DPTR,A
-000FBB         ?C0032?KEYSCAN:
-000FBB 904E9F            MOV      DPTR,#i
-000FBE E0                MOVX     A,@DPTR
-000FBF 90060C            MOV      DPTR,#col
-000FC2 93                MOVC     A,@A+DPTR
-000FC3 FF                MOV      R7,A
-000FC4 600D              JZ       ?C0035?KEYSCAN
-  204: 	}
-000FC6 C205              CLR      ?_GPIO_SetInput?BIT
-000FC8 121EB8            LCALL    _GPIO_SetInput
-  205: }
-000FCB 904E9F            MOV      DPTR,#i
-000FCE E0                MOVX     A,@DPTR
-000FCF 04                INC      A
-000FD0 F0                MOVX     @DPTR,A
-000FD1 80E8              SJMP     ?C0032?KEYSCAN
-  206: 
-000FD3         ?C0035?KEYSCAN:
-000FD3 22                RET      
------ FUNCTION ksColInitialize (END) -------
-
-
------ FUNCTION YC_disconnect_all_link (BEGIN) -----
- FILE: 'bluetooth.c'
-   48: byte YC_disconnect_all_link()
-   49: {
-   50: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
-   51: 		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
-000FD4 904CC5            MOV      DPTR,#g_variable+06H
-000FD7 E0                MOVX     A,@DPTR
-000FD8 FF                MOV      R7,A
-000FD9 6403              XRL      A,#03H
-000FDB 6005              JZ       ?C0011?BLUETOOTH
-000FDD EF                MOV      A,R7
-000FDE 6402              XRL      A,#02H
-000FE0 7007              JNZ      ?C0010?BLUETOOTH
-000FE2         ?C0011?BLUETOOTH:
-   52: 	{
-   53: 		IPC_TxControlCmd(IPC_CMD_STOP_24G);
-000FE2 7F22              MOV      R7,#022H
-000FE4 11E5              ACALL    _IPC_TxControlCmd
-   54: 		return 1;
-000FE6 7F01              MOV      R7,#01H
-000FE8 22                RET      
-   55: 	}
-000FE9         ?C0010?BLUETOOTH:
-   56: 	return 0;
-000FE9 7F00              MOV      R7,#00H
-   57: }
-000FEB 22                RET      
------ FUNCTION YC_disconnect_all_link (END) -------
-
-
------ FUNCTION IIcWaitDone (BEGIN) -----
-000FEC         ?C0001?IIC:
-000FEC 90812C            MOV      DPTR,#0812CH
-000FEF E0                MOVX     A,@DPTR
-000FF0 30E5F9            JNB      ACC.5,?C0001?IIC
-000FF3 22                RET      
------ FUNCTION IIcWaitDone (END) -------
+----- FUNCTION _kb_send_combination_key (BEGIN) -----
+ FILE: 'kb_process.c'
+  128: void kb_send_combination_key(byte ctrl_value,byte key_value)
+  129: {
+000F6C 904E96            MOV     DPTR,#ctrl_value
+000F6F EF                MOV     A,R7
+000F70 F0                MOVX    @DPTR,A
+000F71 A3                INC     DPTR
+000F72 ED                MOV     A,R5
+000F73 F0                MOVX    @DPTR,A
+  130: 	xmemclear(hidBuff,9);
+  131: 	hidBuff[0] = HID_REPORTID_1;
+000F74 7B01              MOV     R3,#01H
+000F76 7A48              MOV     R2,#HIGH hidBuff
+000F78 7900              MOV     R1,#LOW hidBuff
+000F7A 7D09              MOV     R5,#09H
+000F7C 7C00              MOV     R4,#00H
+000F7E D1B0              ACALL   _xmemclear
+  132: 	hidBuff[1] |= ctrl_value;
+000F80 904800            MOV     DPTR,#hidBuff
+000F83 7401              MOV     A,#01H
+000F85 F0                MOVX    @DPTR,A
+  133: 	hidBuff[3] = key_value; 
+000F86 A3                INC     DPTR
+000F87 E0                MOVX    A,@DPTR
+000F88 FF                MOV     R7,A
+000F89 904E96            MOV     DPTR,#ctrl_value
+000F8C E0                MOVX    A,@DPTR
+000F8D FE                MOV     R6,A
+000F8E EF                MOV     A,R7
+000F8F 4E                ORL     A,R6
+000F90 904801            MOV     DPTR,#hidBuff+01H
+000F93 F0                MOVX    @DPTR,A
+  134: 	IPC_TxHidData(hidBuff, 9);
+000F94 904E97            MOV     DPTR,#key_value
+000F97 E0                MOVX    A,@DPTR
+000F98 904803            MOV     DPTR,#hidBuff+03H
+000F9B F0                MOVX    @DPTR,A
+  135: }
+000F9C 7B01              MOV     R3,#01H
+000F9E 7A48              MOV     R2,#HIGH hidBuff
+000FA0 7900              MOV     R1,#LOW hidBuff
+000FA2 7D09              MOV     R5,#09H
+;----                  JMP     _IPC_TxHidData
+----- FUNCTION _kb_send_combination_key (END) -------
 
 
 ----- FUNCTION _IPC_TxHidData (BEGIN) -----
  FILE: 'kb_process.c'
    58: void IPC_TxHidData(byte* dt, byte len)
    59: {
-000FF4 904E16            MOV      DPTR,#dt
-000FF7 EB                MOV      A,R3
-000FF8 F0                MOVX     @DPTR,A
-000FF9 A3                INC      DPTR
-000FFA EA                MOV      A,R2
-000FFB F0                MOVX     @DPTR,A
-000FFC A3                INC      DPTR
-000FFD E9                MOV      A,R1
-000FFE F0                MOVX     @DPTR,A
-000FFF A3                INC      DPTR
-001000 ED                MOV      A,R5
-001001 F0                MOVX     @DPTR,A
+000FA4 904E16            MOV     DPTR,#dt
+000FA7 EB                MOV     A,R3
+000FA8 F0                MOVX    @DPTR,A
+000FA9 A3                INC     DPTR
+000FAA EA                MOV     A,R2
+000FAB F0                MOVX    @DPTR,A
+000FAC A3                INC     DPTR
+000FAD E9                MOV     A,R1
+000FAE F0                MOVX    @DPTR,A
+000FAF A3                INC     DPTR
+000FB0 ED                MOV     A,R5
+000FB1 F0                MOVX    @DPTR,A
    60: 	xbyte tx_hid_buff[10];
    61: 	byte i=0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-001002 E4                CLR      A
-001003 FF                MOV      R7,A
+000FB2 E4                CLR     A
+000FB3 FF                MOV     R7,A
    62: 
    63: 	for(i==0; i< len; i++)
-001004         ?C0011?KB_PROCESS:
-001004 904E19            MOV      DPTR,#len
-001007 E0                MOVX     A,@DPTR
-001008 FE                MOV      R6,A
-001009 EF                MOV      A,R7
-00100A C3                CLR      C
-00100B 9E                SUBB     A,R6
-00100C 5023              JNC      ?C0012?KB_PROCESS
+000FB4         ?C0011?KB_PROCESS:
+000FB4 904E19            MOV     DPTR,#len
+000FB7 E0                MOVX    A,@DPTR
+000FB8 FE                MOV     R6,A
+000FB9 EF                MOV     A,R7
+000FBA C3                CLR     C
+000FBB 9E                SUBB    A,R6
+000FBC 5023              JNC     ?C0012?KB_PROCESS
    64: 	{
    65: 		tx_hid_buff[i] = dt[i];
-00100E 904E16            MOV      DPTR,#dt
-001011 E0                MOVX     A,@DPTR
-001012 FB                MOV      R3,A
-001013 A3                INC      DPTR
-001014 E0                MOVX     A,@DPTR
-001015 FA                MOV      R2,A
-001016 A3                INC      DPTR
-001017 E0                MOVX     A,@DPTR
-001018 F9                MOV      R1,A
-001019 8F82              MOV      DPL,R7
-00101B 758300            MOV      DPH,#00H
-00101E 1203CF            LCALL    ?C?CLDOPTR
-001021 FE                MOV      R6,A
-001022 741A              MOV      A,#LOW tx_hid_buff
-001024 2F                ADD      A,R7
-001025 F582              MOV      DPL,A
-001027 E4                CLR      A
-001028 344E              ADDC     A,#HIGH tx_hid_buff
-00102A F583              MOV      DPH,A
-00102C EE                MOV      A,R6
-00102D F0                MOVX     @DPTR,A
+000FBE 904E16            MOV     DPTR,#dt
+000FC1 E0                MOVX    A,@DPTR
+000FC2 FB                MOV     R3,A
+000FC3 A3                INC     DPTR
+000FC4 E0                MOVX    A,@DPTR
+000FC5 FA                MOV     R2,A
+000FC6 A3                INC     DPTR
+000FC7 E0                MOVX    A,@DPTR
+000FC8 F9                MOV     R1,A
+000FC9 8F82              MOV     DPL,R7
+000FCB 758300            MOV     DPH,#00H
+000FCE 1203CF            LCALL   ?C?CLDOPTR
+000FD1 FE                MOV     R6,A
+000FD2 741A              MOV     A,#LOW tx_hid_buff
+000FD4 2F                ADD     A,R7
+000FD5 F582              MOV     DPL,A
+000FD7 E4                CLR     A
+000FD8 344E              ADDC    A,#HIGH tx_hid_buff
+000FDA F583              MOV     DPH,A
+000FDC EE                MOV     A,R6
+000FDD F0                MOVX    @DPTR,A
    66: 	}
-00102E 0F                INC      R7
-00102F 80D3              SJMP     ?C0011?KB_PROCESS
-001031         ?C0012?KB_PROCESS:
+000FDE 0F                INC     R7
+000FDF 80D3              SJMP    ?C0011?KB_PROCESS
+000FE1         ?C0012?KB_PROCESS:
    67: 	
    68: 	if(!YC_check_need_reconnected()) 
-001031 1207FE            LCALL    YC_check_need_reconnected
-001034 EF                MOV      A,R7
-001035 6072              JZ       ?C0015?KB_PROCESS
+000FE1 1207EE            LCALL   YC_check_need_reconnected
+000FE4 EF                MOV     A,R7
+000FE5 6070              JZ      ?C0015?KB_PROCESS
+000FE7         ?C0014?KB_PROCESS:
    69: 		return;
    70: 	if (g_variable.release_data)
-001037 904CEB            MOV      DPTR,#g_variable+02CH
-00103A E0                MOVX     A,@DPTR
-00103B 706C              JNZ      ?C0015?KB_PROCESS
+000FE7 904CEB            MOV     DPTR,#g_variable+02CH
+000FEA E0                MOVX    A,@DPTR
+000FEB 706A              JNZ     ?C0015?KB_PROCESS
+000FED         ?C0016?KB_PROCESS:
    71: 		return;
    72: 
    73: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
-00103D 904CC5            MOV      DPTR,#g_variable+06H
-001040 E0                MOVX     A,@DPTR
-001041 6403              XRL      A,#03H
-001043 7064              JNZ      ?C0015?KB_PROCESS
+000FED 904CC5            MOV     DPTR,#g_variable+06H
+000FF0 E0                MOVX    A,@DPTR
+000FF1 6403              XRL     A,#03H
+000FF3 7062              JNZ     ?C0015?KB_PROCESS
    74: 	{
    75: 		if(tx_hid_buff[0] == HID_REPORTID_1)
-001045 904E1A            MOV      DPTR,#tx_hid_buff
-001048 E0                MOVX     A,@DPTR
-001049 6401              XRL      A,#01H
-00104B 7023              JNZ      ?C0018?KB_PROCESS
+000FF5 904E1A            MOV     DPTR,#tx_hid_buff
+000FF8 E0                MOVX    A,@DPTR
+000FF9 6401              XRL     A,#01H
+000FFB 7023              JNZ     ?C0018?KB_PROCESS
    76: 		{
    77: 			tx_hid_buff[0] = 4;
-00104D 7404              MOV      A,#04H
-00104F F0                MOVX     @DPTR,A
+000FFD 7404              MOV     A,#04H
+000FFF F0                MOVX    @DPTR,A
    78: 			if (tx_hid_buff[1] == 0 && tx_hid_buff[3] == 00 && tx_hid_buff[4] == 00 && tx_hid_buff[5] == 0)
-001050 A3                INC      DPTR
-001051 E0                MOVX     A,@DPTR
-001052 7014              JNZ      ?C0019?KB_PROCESS
-001054 904E1D            MOV      DPTR,#tx_hid_buff+03H
-001057 E0                MOVX     A,@DPTR
-001058 700E              JNZ      ?C0019?KB_PROCESS
-00105A A3                INC      DPTR
-00105B E0                MOVX     A,@DPTR
-00105C 700A              JNZ      ?C0019?KB_PROCESS
-00105E A3                INC      DPTR
-00105F E0                MOVX     A,@DPTR
-001060 7006              JNZ      ?C0019?KB_PROCESS
+001000 A3                INC     DPTR
+001001 E0                MOVX    A,@DPTR
+001002 7014              JNZ     ?C0019?KB_PROCESS
+001004 904E1D            MOV     DPTR,#tx_hid_buff+03H
+001007 E0                MOVX    A,@DPTR
+001008 700E              JNZ     ?C0019?KB_PROCESS
+00100A A3                INC     DPTR
+00100B E0                MOVX    A,@DPTR
+00100C 700A              JNZ     ?C0019?KB_PROCESS
+00100E A3                INC     DPTR
+00100F E0                MOVX    A,@DPTR
+001010 7006              JNZ     ?C0019?KB_PROCESS
    79: 				repeat_send_24g = 0;
-001062 904DD6            MOV      DPTR,#repeat_send_24g
-001065 F0                MOVX     @DPTR,A
-001066 8034              SJMP     ?C0021?KB_PROCESS
-001068         ?C0019?KB_PROCESS:
+001012 904DD6            MOV     DPTR,#repeat_send_24g
+001015 F0                MOVX    @DPTR,A
+001016 8032              SJMP    ?C0021?KB_PROCESS
+001018         ?C0019?KB_PROCESS:
    80: 			else
    81: 				repeat_send_24g = 1;			
-001068 904DD6            MOV      DPTR,#repeat_send_24g
-00106B 7401              MOV      A,#01H
-00106D F0                MOVX     @DPTR,A
+001018 904DD6            MOV     DPTR,#repeat_send_24g
+00101B 7401              MOV     A,#01H
+00101D F0                MOVX    @DPTR,A
    82: 		}
-00106E 802C              SJMP     ?C0021?KB_PROCESS
-001070         ?C0018?KB_PROCESS:
+00101E 802A              SJMP    ?C0021?KB_PROCESS
+001020         ?C0018?KB_PROCESS:
    83: 		else if(tx_hid_buff[0] == HID_REPORTID_2)
-001070 904E1A            MOV      DPTR,#tx_hid_buff
-001073 E0                MOVX     A,@DPTR
-001074 6402              XRL      A,#02H
-001076 7019              JNZ      ?C0022?KB_PROCESS
+001020 904E1A            MOV     DPTR,#tx_hid_buff
+001023 E0                MOVX    A,@DPTR
+001024 B40219            CJNE    A,#02H,?C0022?KB_PROCESS
    84: 		{
    85: 			tx_hid_buff[0] = 5;
-001078 7405              MOV      A,#05H
-00107A F0                MOVX     @DPTR,A
+001027 7405              MOV     A,#05H
+001029 F0                MOVX    @DPTR,A
    86: 			if (tx_hid_buff[1] == 00 && tx_hid_buff[2] == 00)
-00107B A3                INC      DPTR
-00107C E0                MOVX     A,@DPTR
-00107D 700A              JNZ      ?C0023?KB_PROCESS
-00107F A3                INC      DPTR
-001080 E0                MOVX     A,@DPTR
-001081 7006              JNZ      ?C0023?KB_PROCESS
+00102A A3                INC     DPTR
+00102B E0                MOVX    A,@DPTR
+00102C 700A              JNZ     ?C0023?KB_PROCESS
+00102E A3                INC     DPTR
+00102F E0                MOVX    A,@DPTR
+001030 7006              JNZ     ?C0023?KB_PROCESS
    87: 			{
    88: 				repeat_send_24g = 0;
-001083 904DD6            MOV      DPTR,#repeat_send_24g
-001086 F0                MOVX     @DPTR,A
+001032 904DD6            MOV     DPTR,#repeat_send_24g
+001035 F0                MOVX    @DPTR,A
    89: 			}
-001087 8013              SJMP     ?C0021?KB_PROCESS
-001089         ?C0023?KB_PROCESS:
+001036 8012              SJMP    ?C0021?KB_PROCESS
+001038         ?C0023?KB_PROCESS:
    90: 			else
    91: 			{
    92: 				repeat_send_24g = 1;
-001089 904DD6            MOV      DPTR,#repeat_send_24g
-00108C 7401              MOV      A,#01H
-00108E F0                MOVX     @DPTR,A
+001038 904DD6            MOV     DPTR,#repeat_send_24g
+00103B 7401              MOV     A,#01H
+00103D F0                MOVX    @DPTR,A
    93: 			}
    94: 		}
-00108F 800B              SJMP     ?C0021?KB_PROCESS
-001091         ?C0022?KB_PROCESS:
+00103E 800A              SJMP    ?C0021?KB_PROCESS
+001040         ?C0022?KB_PROCESS:
    95: 		else if(tx_hid_buff[0] == HID_REPORTID_3)
-001091 904E1A            MOV      DPTR,#tx_hid_buff
-001094 E0                MOVX     A,@DPTR
-001095 6403              XRL      A,#03H
-001097 7003              JNZ      ?C0021?KB_PROCESS
+001040 904E1A            MOV     DPTR,#tx_hid_buff
+001043 E0                MOVX    A,@DPTR
+001044 B40303            CJNE    A,#03H,?C0021?KB_PROCESS
    96: 		{
    97: 			tx_hid_buff[0] = 7;
-001099 7407              MOV      A,#07H
-00109B F0                MOVX     @DPTR,A
+001047 7407              MOV     A,#07H
+001049 F0                MOVX    @DPTR,A
    98: 		}
-00109C         ?C0021?KB_PROCESS:
+00104A         ?C0021?KB_PROCESS:
    99: 		IPC_Tx24GData(tx_hid_buff,len);
-00109C 7B01              MOV      R3,#01H
-00109E 7A4E              MOV      R2,#HIGH tx_hid_buff
-0010A0 791A              MOV      R1,#LOW tx_hid_buff
-0010A2 904E19            MOV      DPTR,#len
-0010A5 E0                MOVX     A,@DPTR
-0010A6 FD                MOV      R5,A
-0010A7 11AA              ACALL    _IPC_Tx24GData
+00104A 7B01              MOV     R3,#01H
+00104C 7A4E              MOV     R2,#HIGH tx_hid_buff
+00104E 791A              MOV     R1,#LOW tx_hid_buff
+001050 904E19            MOV     DPTR,#len
+001053 E0                MOVX    A,@DPTR
+001054 FD                MOV     R5,A
+001055 1158              ACALL   _IPC_Tx24GData
   100: 	}
   101: }
-0010A9         ?C0015?KB_PROCESS:
-0010A9 22                RET      
+001057         ?C0015?KB_PROCESS:
+001057 22                RET     
 ----- FUNCTION _IPC_TxHidData (END) -------
 
 
 ----- FUNCTION _IPC_Tx24GData (BEGIN) -----
 ;---- Variable 'len' assigned to Register 'R5' ----
 ;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
-0010AA 900BE7            MOV      DPTR,#ipcSendBuff
-0010AD 7406              MOV      A,#06H
-0010AF F0                MOVX     @DPTR,A
-;----                  JMP      _IPC_TxData
+001058 900BE7            MOV     DPTR,#ipcSendBuff
+00105B 7406              MOV     A,#06H
+00105D F0                MOVX    @DPTR,A
+;----                  JMP     _IPC_TxData
 ----- FUNCTION _IPC_Tx24GData (END) -------
 
 
 ----- FUNCTION _IPC_TxData (BEGIN) -----
-0010B0 904EA2            MOV      DPTR,#len
-0010B3 ED                MOV      A,R5
-0010B4 F0                MOVX     @DPTR,A
+00105E 904EA2            MOV     DPTR,#len
+001061 ED                MOV     A,R5
+001062 F0                MOVX    @DPTR,A
 ;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
-0010B5 E0                MOVX     A,@DPTR
-0010B6 FD                MOV      R5,A
-0010B7 900BE8            MOV      DPTR,#ipcSendBuff+01H
-0010BA F0                MOVX     @DPTR,A
-0010BB 7E0B              MOV      R6,#HIGH ipcSendBuff+02H
-0010BD 7FE9              MOV      R7,#LOW ipcSendBuff+02H
-0010BF 904E68            MOV      DPTR,#?_xmemcpy?BYTE+05H
-0010C2 ED                MOV      A,R5
-0010C3 F0                MOVX     @DPTR,A
-0010C4 120B89            LCALL    _xmemcpy
-0010C7 7B01              MOV      R3,#01H
-0010C9 7A0B              MOV      R2,#HIGH ipcSendBuff
-0010CB 79E7              MOV      R1,#LOW ipcSendBuff
-0010CD 904EA2            MOV      DPTR,#len
-0010D0 E0                MOVX     A,@DPTR
-0010D1 2402              ADD      A,#02H
-0010D3 FD                MOV      R5,A
-0010D4 02090D            LJMP     _ipcTx
+001063 E0                MOVX    A,@DPTR
+001064 FD                MOV     R5,A
+001065 900BE8            MOV     DPTR,#ipcSendBuff+01H
+001068 F0                MOVX    @DPTR,A
+001069 7E0B              MOV     R6,#HIGH ipcSendBuff+02H
+00106B 7FE9              MOV     R7,#LOW ipcSendBuff+02H
+00106D 904E68            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001070 ED                MOV     A,R5
+001071 F0                MOVX    @DPTR,A
+001072 120B7C            LCALL   _xmemcpy
+001075 7B01              MOV     R3,#01H
+001077 7A0B              MOV     R2,#HIGH ipcSendBuff
+001079 79E7              MOV     R1,#LOW ipcSendBuff
+00107B 904EA2            MOV     DPTR,#len
+00107E E0                MOVX    A,@DPTR
+00107F 2402              ADD     A,#02H
+001081 FD                MOV     R5,A
+001082 0208FD            LJMP    _ipcTx
 ----- FUNCTION _IPC_TxData (END) -------
 
 
------ FUNCTION _kb_set_multikey (BEGIN) -----
- FILE: 'kb_process.c'
-  104: void kb_set_multikey(word multikey_value)
-  105: {
-;---- Variable 'multikey_value' assigned to Register 'R4/R5' ----
-0010D7 AD07              MOV      R5,AR7
-0010D9 AC06              MOV      R4,AR6
-  106: 	if(mult_key_status != KEY_WAIT_RELEASE)
-  107: 	{
-0010DB 904DE7            MOV      DPTR,#mult_key_status
-0010DE E0                MOVX     A,@DPTR
-0010DF 6402              XRL      A,#02H
-0010E1 600E              JZ       ?C0028?KB_PROCESS
-  108: 		mult_key_status = KEY_MULIT_PRESS;
-  109: 		multikey[0] = HID_REPORTID_2;
-0010E3 7401              MOV      A,#01H
-0010E5 F0                MOVX     @DPTR,A
-  110: 		multikey[1] = (multikey_value&0xff);
-0010E6 904DE8            MOV      DPTR,#multikey
-0010E9 04                INC      A
-0010EA F0                MOVX     @DPTR,A
-  111: 		multikey[2] = ((multikey_value>>8)&0xff);
-0010EB EF                MOV      A,R7
-0010EC A3                INC      DPTR
-0010ED F0                MOVX     @DPTR,A
-  112: 	}
-0010EE EE                MOV      A,R6
-0010EF A3                INC      DPTR
-0010F0 F0                MOVX     @DPTR,A
-  113: }
-  114: 
-0010F1         ?C0028?KB_PROCESS:
-0010F1 22                RET      
------ FUNCTION _kb_set_multikey (END) -------
+----- FUNCTION YC_disconnect_all_link (BEGIN) -----
+ FILE: 'bluetooth.c'
+   48: byte YC_disconnect_all_link()
+   49: {
+   50: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+   51: 		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+001085 904CC5            MOV     DPTR,#g_variable+06H
+001088 E0                MOVX    A,@DPTR
+001089 FF                MOV     R7,A
+00108A 6403              XRL     A,#03H
+00108C 6004              JZ      ?C0011?BLUETOOTH
+00108E EF                MOV     A,R7
+00108F B40208            CJNE    A,#02H,?C0010?BLUETOOTH
+001092         ?C0011?BLUETOOTH:
+   52: 	{
+   53: 		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+001092 7F22              MOV     R7,#022H
+001094 1208D5            LCALL   _IPC_TxControlCmd
+   54: 		return 1;
+001097 7F01              MOV     R7,#01H
+001099 22                RET     
+   55: 	}
+00109A         ?C0010?BLUETOOTH:
+   56: 	return 0;
+00109A 7F00              MOV     R7,#00H
+   57: }
+00109C 22                RET     
+----- FUNCTION YC_disconnect_all_link (END) -------
 
 
------ FUNCTION _kb_multikey_setup (BEGIN) -----
- FILE: 'kb_process.c'
-  462: void kb_multikey_setup(tKSEVENT *pEvt)
-  463: {
-0010F2 904E78            MOV      DPTR,#pEvt
-0010F5 EB                MOV      A,R3
-0010F6 F0                MOVX     @DPTR,A
-0010F7 A3                INC      DPTR
-0010F8 EA                MOV      A,R2
-0010F9 F0                MOVX     @DPTR,A
-0010FA A3                INC      DPTR
-0010FB E9                MOV      A,R1
-0010FC F0                MOVX     @DPTR,A
-  464: 	byte i = 0;
-  465: 	
-0010FD E4                CLR      A
-0010FE A3                INC      DPTR
-0010FF F0                MOVX     @DPTR,A
-  466: 	for (i = 0;i < 6;i++)
-001100 F0                MOVX     @DPTR,A
-001101         ?C0118?KB_PROCESS:
-001101 904E7B            MOV      DPTR,#i
-001104 E0                MOVX     A,@DPTR
-001105 FF                MOV      R7,A
-001106 C3                CLR      C
-001107 9406              SUBB     A,#06H
-001109 7480              MOV      A,#080H
-00110B 9480              SUBB     A,#080H
-00110D 4002              JC       $ + 4H
-00110F 41B9              AJMP     ?C0169?KB_PROCESS
-  467: 	{		
-  468: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
-001111 904E78            MOV      DPTR,#pEvt
-001114 E0                MOVX     A,@DPTR
-001115 FB                MOV      R3,A
-001116 A3                INC      DPTR
-001117 E0                MOVX     A,@DPTR
-001118 FA                MOV      R2,A
-001119 A3                INC      DPTR
-00111A E0                MOVX     A,@DPTR
-00111B 2401              ADD      A,#01H
-00111D F9                MOV      R1,A
-00111E E4                CLR      A
-00111F 3A                ADDC     A,R2
-001120 FA                MOV      R2,A
-001121 7E00              MOV      R6,#00H
-001123 E9                MOV      A,R1
-001124 2F                ADD      A,R7
-001125 F9                MOV      R1,A
-001126 EE                MOV      A,R6
-001127 3A                ADDC     A,R2
-001128 FA                MOV      R2,A
-001129 1203B6            LCALL    ?C?CLDPTR
-00112C FF                MOV      R7,A
-00112D 54F0              ANL      A,#0F0H
-00112F 64F0              XRL      A,#0F0H
-001131 6009              JZ       ?C0122?KB_PROCESS
-001133 EF                MOV      A,R7
-001134 54D0              ANL      A,#0D0H
-001136 64D0              XRL      A,#0D0H
-001138 6002              JZ       $ + 4H
-00113A 41B1              AJMP     ?C0120?KB_PROCESS
-00113C         ?C0122?KB_PROCESS:
-  469: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
-  470: 		{
-  471: 			
-  472: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
-00113C 1203B6            LCALL    ?C?CLDPTR
-00113F F9                MOV      R1,A
-001140 FB                MOV      R3,A
-001141 7A00              MOV      R2,#00H
-001143 64F1              XRL      A,#0F1H
-001145 7008              JNZ      ?C0123?KB_PROCESS
-  473: 			{
-  474: 				kb_set_multikey(0x0183); 
-001147 7F83              MOV      R7,#083H
-001149 7E01              MOV      R6,#01H
-00114B 11D7              ACALL    _kb_set_multikey
-  475: 			}
-00114D 4185              AJMP     ?C0124?KB_PROCESS
-00114F         ?C0123?KB_PROCESS:
-  476: 			else
-  477: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
-00114F EB                MOV      A,R3
-001150 64F2              XRL      A,#0F2H
-001152 4A                ORL      A,R2
-001153 7007              JNZ      ?C0125?KB_PROCESS
-  478: 			{ 
-  479: 				kb_set_multikey(0x00cd);
-001155 7FCD              MOV      R7,#0CDH
-001157 FE                MOV      R6,A
-001158 11D7              ACALL    _kb_set_multikey
-  480: 			}
-00115A 4185              AJMP     ?C0124?KB_PROCESS
-00115C         ?C0125?KB_PROCESS:
-  481: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
-00115C E9                MOV      A,R1
-00115D FB                MOV      R3,A
-00115E 7A00              MOV      R2,#00H
-001160 64F3              XRL      A,#0F3H
-001162 7007              JNZ      ?C0127?KB_PROCESS
-  482: 			{
-  483: 				kb_set_multikey(0x00b7);
-001164 7FB7              MOV      R7,#0B7H
-001166 FE                MOV      R6,A
-001167 11D7              ACALL    _kb_set_multikey
-  484: 			}	
-001169 4185              AJMP     ?C0124?KB_PROCESS
-00116B         ?C0127?KB_PROCESS:
-  485: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
-00116B EB                MOV      A,R3
-00116C 64F4              XRL      A,#0F4H
-00116E 4A                ORL      A,R2
-00116F 7007              JNZ      ?C0129?KB_PROCESS
-  486: 			{
-  487: 				kb_set_multikey(0x00b6);
-001171 7FB6              MOV      R7,#0B6H
-001173 FE                MOV      R6,A
-001174 11D7              ACALL    _kb_set_multikey
-  488: 			}
-001176 4185              AJMP     ?C0124?KB_PROCESS
-001178         ?C0129?KB_PROCESS:
-  489: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
-001178 E9                MOV      A,R1
-001179 FB                MOV      R3,A
-00117A 7A00              MOV      R2,#00H
-00117C 64F5              XRL      A,#0F5H
-00117E 7007              JNZ      ?C0131?KB_PROCESS
-  490: 			{
-  491: 				kb_set_multikey(0x00b5);
-001180 7FB5              MOV      R7,#0B5H
-001182 FE                MOV      R6,A
-001183 11D7              ACALL    _kb_set_multikey
-  492: 			}
-001185 4185              AJMP     ?C0124?KB_PROCESS
-001187         ?C0131?KB_PROCESS:
-  493: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
-001187 EB                MOV      A,R3
-001188 64F6              XRL      A,#0F6H
-00118A 4A                ORL      A,R2
-00118B 7007              JNZ      ?C0133?KB_PROCESS
-  494: 			{
-  495: 				kb_set_multikey(0x00ea);
-00118D 7FEA              MOV      R7,#0EAH
-00118F FE                MOV      R6,A
-001190 11D7              ACALL    _kb_set_multikey
-  496: 			}
-001192 4185              AJMP     ?C0124?KB_PROCESS
-001194         ?C0133?KB_PROCESS:
-  497: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
-001194 E9                MOV      A,R1
-001195 FB                MOV      R3,A
-001196 7A00              MOV      R2,#00H
-001198 64F7              XRL      A,#0F7H
-00119A 7007              JNZ      ?C0135?KB_PROCESS
-  498: 			{
-  499: 				kb_set_multikey(0x00e9);
-00119C 7FE9              MOV      R7,#0E9H
-00119E FE                MOV      R6,A
-00119F 11D7              ACALL    _kb_set_multikey
-  500: 			}
-0011A1 4185              AJMP     ?C0124?KB_PROCESS
-0011A3         ?C0135?KB_PROCESS:
-  501: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
-0011A3 EB                MOV      A,R3
-0011A4 64F8              XRL      A,#0F8H
-0011A6 4A                ORL      A,R2
-0011A7 7007              JNZ      ?C0137?KB_PROCESS
-  502: 			{
-  503: 				kb_set_multikey(0x00e2);
-0011A9 7FE2              MOV      R7,#0E2H
-0011AB FE                MOV      R6,A
-0011AC 11D7              ACALL    _kb_set_multikey
-  504: 			}
-0011AE 4185              AJMP     ?C0124?KB_PROCESS
-0011B0         ?C0137?KB_PROCESS:
-  505: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
-0011B0 E9                MOV      A,R1
-0011B1 FB                MOV      R3,A
-0011B2 7A00              MOV      R2,#00H
-0011B4 64F9              XRL      A,#0F9H
-0011B6 7008              JNZ      ?C0139?KB_PROCESS
-  506: 			{
-  507: 				kb_set_multikey(0x0194);
-0011B8 7F94              MOV      R7,#094H
-0011BA 7E01              MOV      R6,#01H
-0011BC 11D7              ACALL    _kb_set_multikey
-  508: 			}	
-0011BE 4185              AJMP     ?C0124?KB_PROCESS
-0011C0         ?C0139?KB_PROCESS:
-  509: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
-0011C0 EB                MOV      A,R3
-0011C1 64FA              XRL      A,#0FAH
-0011C3 4A                ORL      A,R2
-0011C4 7008              JNZ      ?C0141?KB_PROCESS
-  510: 			{
-  511: 				kb_set_multikey(0x018a);//mail
-0011C6 7F8A              MOV      R7,#08AH
-0011C8 7E01              MOV      R6,#01H
-0011CA 11D7              ACALL    _kb_set_multikey
-  512: 			}
-0011CC 4185              AJMP     ?C0124?KB_PROCESS
-0011CE         ?C0141?KB_PROCESS:
-  513: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
-0011CE E9                MOV      A,R1
-0011CF FB                MOV      R3,A
-0011D0 7A00              MOV      R2,#00H
-0011D2 64FB              XRL      A,#0FBH
-0011D4 7008              JNZ      ?C0143?KB_PROCESS
-  514: 			{
-  515: 				kb_set_multikey(0x0192);
-0011D6 7F92              MOV      R7,#092H
-0011D8 7E01              MOV      R6,#01H
-0011DA 11D7              ACALL    _kb_set_multikey
-  516: 			}
-0011DC 4185              AJMP     ?C0124?KB_PROCESS
-0011DE         ?C0143?KB_PROCESS:
-  517: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
-0011DE EB                MOV      A,R3
-0011DF 64D0              XRL      A,#0D0H
-0011E1 4A                ORL      A,R2
-0011E2 7008              JNZ      ?C0145?KB_PROCESS
-  518: 			{
-  519: 				kb_set_multikey(0x022a);//www Favorites
-0011E4 7F2A              MOV      R7,#02AH
-0011E6 7E02              MOV      R6,#02H
-0011E8 11D7              ACALL    _kb_set_multikey
-  520: 			}
-0011EA 4185              AJMP     ?C0124?KB_PROCESS
-0011EC         ?C0145?KB_PROCESS:
-  521: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
-0011EC E9                MOV      A,R1
-0011ED FB                MOV      R3,A
-0011EE 7A00              MOV      R2,#00H
-0011F0 64D1              XRL      A,#0D1H
-0011F2 7008              JNZ      ?C0147?KB_PROCESS
-  522: 			{
-  523: 				kb_set_multikey(0x0225);
-0011F4 7F25              MOV      R7,#025H
-0011F6 7E02              MOV      R6,#02H
-0011F8 11D7              ACALL    _kb_set_multikey
-  524: 			}
-0011FA 4185              AJMP     ?C0124?KB_PROCESS
-0011FC         ?C0147?KB_PROCESS:
-  525: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
-0011FC EB                MOV      A,R3
-0011FD 64D3              XRL      A,#0D3H
-0011FF 4A                ORL      A,R2
-001200 7008              JNZ      ?C0149?KB_PROCESS
-  526: 			{
-  527: 				kb_set_multikey(0x0226);
-001202 7F26              MOV      R7,#026H
-001204 7E02              MOV      R6,#02H
-001206 11D7              ACALL    _kb_set_multikey
-  528: 			}
-001208 807B              SJMP     ?C0124?KB_PROCESS
-00120A         ?C0149?KB_PROCESS:
-  529: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
-00120A E9                MOV      A,R1
-00120B FB                MOV      R3,A
-00120C 7A00              MOV      R2,#00H
-00120E 64D2              XRL      A,#0D2H
-001210 7008              JNZ      ?C0151?KB_PROCESS
-  530: 			{
-  531: 				kb_set_multikey(0x0224);
-001212 7F24              MOV      R7,#024H
-001214 7E02              MOV      R6,#02H
-001216 11D7              ACALL    _kb_set_multikey
-  532: 			}
-001218 806B              SJMP     ?C0124?KB_PROCESS
-00121A         ?C0151?KB_PROCESS:
-  533: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
-00121A EB                MOV      A,R3
-00121B 64D4              XRL      A,#0D4H
-00121D 4A                ORL      A,R2
-00121E 7008              JNZ      ?C0153?KB_PROCESS
-  534: 			{
-  535: 				kb_set_multikey(0x0227);
-001220 7F27              MOV      R7,#027H
-001222 7E02              MOV      R6,#02H
-001224 11D7              ACALL    _kb_set_multikey
-  536: 			}	
-001226 805D              SJMP     ?C0124?KB_PROCESS
-001228         ?C0153?KB_PROCESS:
-  537: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
-001228 E9                MOV      A,R1
-001229 FB                MOV      R3,A
-00122A 7A00              MOV      R2,#00H
-00122C 64D5              XRL      A,#0D5H
-00122E 7008              JNZ      ?C0155?KB_PROCESS
-  538: 			{
-  539: 				kb_set_multikey(0x0221);
-001230 7F21              MOV      R7,#021H
-001232 7E02              MOV      R6,#02H
-001234 11D7              ACALL    _kb_set_multikey
-  540: 			}
-001236 804D              SJMP     ?C0124?KB_PROCESS
-001238         ?C0155?KB_PROCESS:
-  541: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
-001238 EB                MOV      A,R3
-001239 64D6              XRL      A,#0D6H
-00123B 4A                ORL      A,R2
-00123C 7008              JNZ      ?C0157?KB_PROCESS
-  542: 			{
-  543: 				kb_set_multikey(0x0223);
-00123E 7F23              MOV      R7,#023H
-001240 7E02              MOV      R6,#02H
-001242 11D7              ACALL    _kb_set_multikey
-  544: 			} 	
-001244 803F              SJMP     ?C0124?KB_PROCESS
-001246         ?C0157?KB_PROCESS:
-  545: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
-001246 E9                MOV      A,R1
-001247 FB                MOV      R3,A
-001248 7A00              MOV      R2,#00H
-00124A 64D7              XRL      A,#0D7H
-00124C 7007              JNZ      ?C0159?KB_PROCESS
-  546: 			{
-  547: 				kb_set_multikey(0x0070);
-00124E 7F70              MOV      R7,#070H
-001250 FE                MOV      R6,A
-001251 11D7              ACALL    _kb_set_multikey
-  548: 			}
-001253 8030              SJMP     ?C0124?KB_PROCESS
-001255         ?C0159?KB_PROCESS:
-  549: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
-001255 EB                MOV      A,R3
-001256 64D8              XRL      A,#0D8H
-001258 4A                ORL      A,R2
-001259 7007              JNZ      ?C0161?KB_PROCESS
-  550: 			{
-  551: 				kb_set_multikey(0x006f);
-00125B 7F6F              MOV      R7,#06FH
-00125D FE                MOV      R6,A
-00125E 11D7              ACALL    _kb_set_multikey
-  552: 			}
-001260 8023              SJMP     ?C0124?KB_PROCESS
-001262         ?C0161?KB_PROCESS:
-  553: 		#ifdef SYSTEM_CONTROL_ENABLE
-  554: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_POWER_DOWN)
-001262 E9                MOV      A,R1
-001263 FD                MOV      R5,A
-001264 7C00              MOV      R4,#00H
-001266 64DD              XRL      A,#0DDH
-001268 7006              JNZ      ?C0163?KB_PROCESS
-  555: 		      	{
-  556: 		        	kb_set_systemkey(0x01);
-00126A 7F01              MOV      R7,#01H
-00126C 51BA              ACALL    _kb_set_systemkey
-  557: 		      	}
-00126E 8015              SJMP     ?C0124?KB_PROCESS
-001270         ?C0163?KB_PROCESS:
-  558: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_SLEEP)
-001270 ED                MOV      A,R5
-001271 64DE              XRL      A,#0DEH
-001273 4C                ORL      A,R4
-001274 7006              JNZ      ?C0165?KB_PROCESS
-  559: 		      	{
-  560: 		        	kb_set_systemkey(0x02);
-001276 7F02              MOV      R7,#02H
-001278 51BA              ACALL    _kb_set_systemkey
-  561: 		      	}
-00127A 8009              SJMP     ?C0124?KB_PROCESS
-00127C         ?C0165?KB_PROCESS:
-  562: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_WAKE_UP)
-00127C E9                MOV      A,R1
-00127D 64DF              XRL      A,#0DFH
-00127F 7004              JNZ      ?C0124?KB_PROCESS
-  563: 		      	{
-  564: 		        	kb_set_systemkey(0x04);
-001281 7F04              MOV      R7,#04H
-001283 51BA              ACALL    _kb_set_systemkey
-  565: 		      	}
-001285         ?C0124?KB_PROCESS:
-  566: 		#endif
-  567: 			
-  568: 			if(mult_key_status == KEY_WAIT_RELEASE)
-001285 904DE7            MOV      DPTR,#mult_key_status
-001288 E0                MOVX     A,@DPTR
-001289 6402              XRL      A,#02H
-00128B 7024              JNZ      ?C0120?KB_PROCESS
-  569: 			{
-  570: 				mult_key_value = pEvt->ksPool[i];
-00128D 904E78            MOV      DPTR,#pEvt
-001290 E0                MOVX     A,@DPTR
-001291 FB                MOV      R3,A
-001292 A3                INC      DPTR
-001293 E0                MOVX     A,@DPTR
-001294 FA                MOV      R2,A
-001295 A3                INC      DPTR
-001296 E0                MOVX     A,@DPTR
-001297 2401              ADD      A,#01H
-001299 F9                MOV      R1,A
-00129A E4                CLR      A
-00129B 3A                ADDC     A,R2
-00129C FA                MOV      R2,A
-00129D A3                INC      DPTR
-00129E E0                MOVX     A,@DPTR
-00129F 7E00              MOV      R6,#00H
-0012A1 29                ADD      A,R1
-0012A2 F9                MOV      R1,A
-0012A3 EE                MOV      A,R6
-0012A4 3A                ADDC     A,R2
-0012A5 FA                MOV      R2,A
-0012A6 1203B6            LCALL    ?C?CLDPTR
-0012A9 904DE6            MOV      DPTR,#mult_key_value
-0012AC F0                MOVX     @DPTR,A
-  571: 				pEvt->ksPool[i] = 0;
-0012AD E4                CLR      A
-0012AE 1203FC            LCALL    ?C?CSTPTR
-  572: 			}
-  573: 		}
-  574: 	}
-0012B1         ?C0120?KB_PROCESS:
-0012B1 904E7B            MOV      DPTR,#i
-0012B4 E0                MOVX     A,@DPTR
-0012B5 04                INC      A
-0012B6 F0                MOVX     @DPTR,A
-0012B7 2101              AJMP     ?C0118?KB_PROCESS
-  575: }
-0012B9         ?C0169?KB_PROCESS:
-0012B9 22                RET      
------ FUNCTION _kb_multikey_setup (END) -------
+----- FUNCTION kb_button_press_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  271: void kb_button_press_timer500ms()
+  272: {
+  273: 	
+  274: //key status 
+  275: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+00109D 904CCE            MOV     DPTR,#g_variable+0FH
+0010A0 E0                MOVX    A,@DPTR
+0010A1 30E13E            JNB     ACC.1,?C0053?SYS
+  276: 	{
+  277: 		if (g_variable.button_timer[1] < 250)
+0010A4 904CD0            MOV     DPTR,#g_variable+011H
+0010A7 E0                MOVX    A,@DPTR
+0010A8 C3                CLR     C
+0010A9 94FA              SUBB    A,#0FAH
+0010AB 5003              JNC     ?C0054?SYS
+  278: 			g_variable.button_timer[1]++;
+0010AD E0                MOVX    A,@DPTR
+0010AE 04                INC     A
+0010AF F0                MOVX    @DPTR,A
+0010B0         ?C0054?SYS:
+  279: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+0010B0 904CD0            MOV     DPTR,#g_variable+011H
+0010B3 E0                MOVX    A,@DPTR
+0010B4 64B4              XRL     A,#0B4H
+0010B6 7037              JNZ     ?C0059?SYS
+  280: 		{
+  281: 			press_long_time_flag++;
+0010B8 904DDC            MOV     DPTR,#press_long_time_flag
+0010BB E0                MOVX    A,@DPTR
+0010BC 04                INC     A
+0010BD F0                MOVX    @DPTR,A
+  282: 			if(press_long_time_flag <= 2)
+0010BE E0                MOVX    A,@DPTR
+0010BF D3                SETB    C
+0010C0 9402              SUBB    A,#02H
+0010C2 5007              JNC     ?C0056?SYS
+  283: 			{
+  284: 				g_variable.button_timer[1] = 0;
+0010C4 E4                CLR     A
+0010C5 904CD0            MOV     DPTR,#g_variable+011H
+0010C8 F0                MOVX    @DPTR,A
+  285: 			}
+0010C9 8024              SJMP    ?C0059?SYS
+0010CB         ?C0056?SYS:
+  286: 			else if(press_long_time_flag == 3)
+0010CB 904DDC            MOV     DPTR,#press_long_time_flag
+0010CE E0                MOVX    A,@DPTR
+0010CF B4031D            CJNE    A,#03H,?C0059?SYS
+  287: 			{
+  288: 				long_press_flag = 1;
+0010D2 904DD5            MOV     DPTR,#long_press_flag
+0010D5 7401              MOV     A,#01H
+0010D7 F0                MOVX    @DPTR,A
+  289: 				g_variable.button_timer[1] = 0;
+0010D8 E4                CLR     A
+0010D9 904CD0            MOV     DPTR,#g_variable+011H
+0010DC F0                MOVX    @DPTR,A
+  290: 				System_long_sleep();
+0010DD 1207DA            LCALL   System_long_sleep
+  291: 			}
+  292: 		}
+  293: 	}
+0010E0 800D              SJMP    ?C0059?SYS
+0010E2         ?C0053?SYS:
+  294: 	else
+  295: 	{
+  296: 		press_long_time_flag = 0;
+0010E2 E4                CLR     A
+0010E3 904DDC            MOV     DPTR,#press_long_time_flag
+0010E6 F0                MOVX    @DPTR,A
+  297: 		long_press_flag = 0;
+0010E7 904DD5            MOV     DPTR,#long_press_flag
+0010EA F0                MOVX    @DPTR,A
+  298: 		g_variable.button_timer[1] = 0;
+0010EB 904CD0            MOV     DPTR,#g_variable+011H
+0010EE F0                MOVX    @DPTR,A
+  299: 	}
+0010EF         ?C0059?SYS:
+  300: 		
+  301: 	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
+0010EF 904CCE            MOV     DPTR,#g_variable+0FH
+0010F2 E0                MOVX    A,@DPTR
+0010F3 30E42F            JNB     ACC.4,?C0060?SYS
+  302: 	{
+  303: 		g_variable.delay_enter_lpm_timer = 10;
+0010F6 904CEA            MOV     DPTR,#g_variable+02BH
+0010F9 740A              MOV     A,#0AH
+0010FB F0                MOVX    @DPTR,A
+  304: 		if (g_variable.button_timer[2] < 250)
+0010FC 904CD1            MOV     DPTR,#g_variable+012H
+0010FF E0                MOVX    A,@DPTR
+001100 C3                CLR     C
+001101 94FA              SUBB    A,#0FAH
+001103 5003              JNC     ?C0061?SYS
+  305: 			g_variable.button_timer[2]++;
+001105 E0                MOVX    A,@DPTR
+001106 04                INC     A
+001107 F0                MOVX    @DPTR,A
+001108         ?C0061?SYS:
+  306: 		if (g_variable.button_timer[2] == 6)
+001108 904CD1            MOV     DPTR,#g_variable+012H
+00110B E0                MOVX    A,@DPTR
+00110C B4061B            CJNE    A,#06H,?C0066?SYS
+  307: 		{
+  308: 			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+00110F 904CC3            MOV     DPTR,#g_variable+04H
+001112 E0                MOVX    A,@DPTR
+001113 FF                MOV     R7,A
+001114 6003              JZ      ?C0064?SYS
+001116 B4FE11            CJNE    A,#0FEH,?C0066?SYS
+001119         ?C0064?SYS:
+  309: 			{
+  310: 				YC_disconnect_all_link();
+001119 1185              ACALL   YC_disconnect_all_link
+  311: 				Delay1ms(10);
+00111B 7F0A              MOV     R7,#0AH
+00111D 120A72            LCALL   _Delay1ms
+  312: 				YC_key_action_handle(KEY_PAIRING_24G);
+001120 7F0A              MOV     R7,#0AH
+001122 020823            LJMP    _YC_key_action_handle
+  313: 			}
+  314: 		}
+  315: 	}
+001125         ?C0060?SYS:
+  316: 	else
+  317: 		g_variable.button_timer[2] = 0;
+001125 E4                CLR     A
+001126 904CD1            MOV     DPTR,#g_variable+012H
+001129 F0                MOVX    @DPTR,A
+  318: 	
+  319: }
+00112A         ?C0066?SYS:
+00112A 22                RET     
+----- FUNCTION kb_button_press_timer500ms (END) -------
 
 
------ FUNCTION _kb_set_systemkey (BEGIN) -----
- FILE: 'kb_process.c'
-  116: void kb_set_systemkey(byte systemkey_value)
-  117: {
-;---- Variable 'systemkey_value' assigned to Register 'R7' ----
-  118: 	if(mult_key_status != KEY_WAIT_RELEASE)
-  119: 	{
-0012BA 904DE7            MOV      DPTR,#mult_key_status
-0012BD E0                MOVX     A,@DPTR
-0012BE 6402              XRL      A,#02H
-0012C0 6012              JZ       ?C0030?KB_PROCESS
-  120: 		mult_key_status = KEY_SYSTEM_PRESS;
-  121: 		system_key_press = 1;
-0012C2 7404              MOV      A,#04H
-0012C4 F0                MOVX     @DPTR,A
-  122: 		multikey[0] = HID_REPORTID_SYSTEM;
-0012C5 904DE2            MOV      DPTR,#system_key_press
-0012C8 7401              MOV      A,#01H
-0012CA F0                MOVX     @DPTR,A
-  123: 		multikey[1] = systemkey_value;
-0012CB 904DE8            MOV      DPTR,#multikey
-0012CE 7406              MOV      A,#06H
-0012D0 F0                MOVX     @DPTR,A
-  124: 	}
-0012D1 A3                INC      DPTR
-0012D2 EF                MOV      A,R7
-0012D3 F0                MOVX     @DPTR,A
-  125: }
-  126: #endif
-0012D4         ?C0030?KB_PROCESS:
-0012D4 22                RET      
------ FUNCTION _kb_set_systemkey (END) -------
+----- FUNCTION kb_cb_Timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  323: static void kb_cb_Timer500ms()
+  324: {
+  325: 	LED_timer500ms();	
+  326: 
+00112B 3173              ACALL   LED_timer500ms
+  327: 	g_variable.sleepTimer++;
+00112D 904CE4            MOV     DPTR,#g_variable+025H
+001130 E0                MOVX    A,@DPTR
+001131 04                INC     A
+001132 F0                MOVX    @DPTR,A
+001133 7006              JNZ     ?C0104?SYS
+001135 904CE3            MOV     DPTR,#g_variable+024H
+001138 E0                MOVX    A,@DPTR
+001139 04                INC     A
+00113A F0                MOVX    @DPTR,A
+00113B         ?C0104?SYS:
+  328: 
+  329: 	YC_adc_check_timer500ms();
+00113B 3161              ACALL   YC_adc_check_timer500ms
+  330: 	YC_connect_timeout_500ms();
+00113D 1221EB            LCALL   YC_connect_timeout_500ms
+  331: 	kb_button_press_timer500ms();
+001140 119D              ACALL   kb_button_press_timer500ms
+;----                  JMP     YC_pairing_timerout_500ms
+  332: 	YC_pairing_timerout_500ms();
+  333: 	
+  334: 	return;
+----- FUNCTION kb_cb_Timer500ms (END) -------
 
 
------ FUNCTION _kb_send_combination_key (BEGIN) -----
- FILE: 'kb_process.c'
-  128: void kb_send_combination_key(byte ctrl_value,byte key_value)
-  129: {
-0012D5 904E96            MOV      DPTR,#ctrl_value
-0012D8 EF                MOV      A,R7
-0012D9 F0                MOVX     @DPTR,A
-0012DA A3                INC      DPTR
-0012DB ED                MOV      A,R5
-0012DC F0                MOVX     @DPTR,A
-  130: 	xmemclear(hidBuff,9);
-  131: 	hidBuff[0] = HID_REPORTID_1;
-0012DD 7B01              MOV      R3,#01H
-0012DF 7A48              MOV      R2,#HIGH hidBuff
-0012E1 7900              MOV      R1,#LOW hidBuff
-0012E3 7D09              MOV      R5,#09H
-0012E5 7C00              MOV      R4,#00H
-0012E7 120ED6            LCALL    _xmemclear
-  132: 	hidBuff[1] |= ctrl_value;
-0012EA 904800            MOV      DPTR,#hidBuff
-0012ED 7401              MOV      A,#01H
-0012EF F0                MOVX     @DPTR,A
-  133: 	hidBuff[3] = key_value; 
-0012F0 A3                INC      DPTR
-0012F1 E0                MOVX     A,@DPTR
-0012F2 FF                MOV      R7,A
-0012F3 904E96            MOV      DPTR,#ctrl_value
-0012F6 E0                MOVX     A,@DPTR
-0012F7 FE                MOV      R6,A
-0012F8 EF                MOV      A,R7
-0012F9 4E                ORL      A,R6
-0012FA 904801            MOV      DPTR,#hidBuff+01H
-0012FD F0                MOVX     @DPTR,A
-  134: 	IPC_TxHidData(hidBuff, 9);
-0012FE 904E97            MOV      DPTR,#key_value
-001301 E0                MOVX     A,@DPTR
-001302 904803            MOV      DPTR,#hidBuff+03H
-001305 F0                MOVX     @DPTR,A
-  135: }
-001306 7B01              MOV      R3,#01H
-001308 7A48              MOV      R2,#HIGH hidBuff
-00130A 7900              MOV      R1,#LOW hidBuff
-00130C 7D09              MOV      R5,#09H
-00130E 020FF4            LJMP     _IPC_TxHidData
------ FUNCTION _kb_send_combination_key (END) -------
+----- FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  255: void YC_pairing_timerout_500ms()
+  256: {
+  257: //pairing timer
+  258: 	if (g_variable.pairing_g24_timeout != 0)
+001142 904CEE            MOV     DPTR,#g_variable+02FH
+001145 E0                MOVX    A,@DPTR
+001146 6018              JZ      ?C0052?SYS
+  259: 	{
+  260: 		g_variable.sleepTimer = 0;
+001148 E4                CLR     A
+001149 904CE3            MOV     DPTR,#g_variable+024H
+00114C F0                MOVX    @DPTR,A
+00114D A3                INC     DPTR
+00114E F0                MOVX    @DPTR,A
+  261: 		g_variable.pairing_g24_timeout--;
+00114F 904CEE            MOV     DPTR,#g_variable+02FH
+001152 E0                MOVX    A,@DPTR
+001153 14                DEC     A
+001154 F0                MOVX    @DPTR,A
+  262: 		if (g_variable.pairing_g24_timeout == 0)
+001155 E0                MOVX    A,@DPTR
+001156 7008              JNZ     ?C0052?SYS
+  263: 		{
+  264: //			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+  265: 			Delay1ms(10);
+001158 7F0A              MOV     R7,#0AH
+00115A 120A72            LCALL   _Delay1ms
+  266: 			System_long_sleep();
+00115D 1207DA            LCALL   System_long_sleep
+  267: 		}
+  268: 	}
+  269: }
+001160         ?C0052?SYS:
+001160 22                RET     
+----- FUNCTION YC_pairing_timerout_500ms (END) -------
 
 
------ FUNCTION kb_need_keyscan (BEGIN) -----
- FILE: 'kb_process.c'
-  192: void kb_need_keyscan()
-  193: {
-  194: 		if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
-  195: 		||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
-001311 904CF4            MOV      DPTR,#g_variable+035H
-001314 E0                MOVX     A,@DPTR
-001315 FF                MOV      R7,A
-001316 6009              JZ       ?C0039?KB_PROCESS
-001318 6403              XRL      A,#03H
-00131A 6005              JZ       ?C0039?KB_PROCESS
-00131C EF                MOV      A,R7
-00131D 6405              XRL      A,#05H
-00131F 7002              JNZ      ?C0038?KB_PROCESS
-001321         ?C0039?KB_PROCESS:
-  196: 		|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
-  197: 		)
-  198: 			kb_motion();
-001321 8074              SJMP     kb_motion
-001323         ?C0038?KB_PROCESS:
-  199: 		else
-  200: 		{
-  201: 			if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
-001323 904CF4            MOV      DPTR,#g_variable+035H
-001326 E0                MOVX     A,@DPTR
-001327 6401              XRL      A,#01H
-001329 700E              JNZ      ?C0041?KB_PROCESS
-  202: 			{
-  203: 				kb_send_combination_key(g_variable.key_combination_ctrl,0);
-00132B A3                INC      DPTR
-00132C E0                MOVX     A,@DPTR
-00132D FF                MOV      R7,A
-00132E E4                CLR      A
-00132F FD                MOV      R5,A
-001330 51D5              ACALL    _kb_send_combination_key
-  204: 				g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
-001332 904CF4            MOV      DPTR,#g_variable+035H
-001335 7402              MOV      A,#02H
-001337 F0                MOVX     @DPTR,A
-  205: 			}
-001338 22                RET      
-001339         ?C0041?KB_PROCESS:
-  206: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
-001339 904CF4            MOV      DPTR,#g_variable+035H
-00133C E0                MOVX     A,@DPTR
-00133D 6402              XRL      A,#02H
-00133F 700B              JNZ      ?C0043?KB_PROCESS
-  207: 			{	
-  208: 				g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
-001341 7403              MOV      A,#03H
-001343 F0                MOVX     @DPTR,A
-  209: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-001344 A3                INC      DPTR
-001345 E0                MOVX     A,@DPTR
-001346 FF                MOV      R7,A
-001347 A3                INC      DPTR
-001348 E0                MOVX     A,@DPTR
-001349 FD                MOV      R5,A
-00134A 8089              SJMP     _kb_send_combination_key
-  210: 			}
-00134C         ?C0043?KB_PROCESS:
-  211: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
-00134C 904CF4            MOV      DPTR,#g_variable+035H
-00134F E0                MOVX     A,@DPTR
-001350 6404              XRL      A,#04H
-001352 7026              JNZ      ?C0045?KB_PROCESS
-  212: 			{
-  213: 				g_variable.key_combination_keyvalue = 0;
-001354 904CF6            MOV      DPTR,#g_variable+037H
-001357 F0                MOVX     @DPTR,A
-  214: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-001358 904CF5            MOV      DPTR,#g_variable+036H
-00135B E0                MOVX     A,@DPTR
-00135C FF                MOV      R7,A
-00135D E4                CLR      A
-00135E FD                MOV      R5,A
-00135F 51D5              ACALL    _kb_send_combination_key
-  215: 				g_variable.key_combination_ctrl = 0;
-001361 E4                CLR      A
-001362 904CF5            MOV      DPTR,#g_variable+036H
-001365 F0                MOVX     @DPTR,A
-  216: 				if(!g_variable.one_key_press_wait_release_timer)
-001366 904CF8            MOV      DPTR,#g_variable+039H
-001369 E0                MOVX     A,@DPTR
-00136A 7007              JNZ      ?C0046?KB_PROCESS
-  217: 					g_variable.key_combination_step = CAMBINATION_KEY_NULL;
-00136C 904CF4            MOV      DPTR,#g_variable+035H
-00136F 7406              MOV      A,#06H
-001371 F0                MOVX     @DPTR,A
-001372 22                RET      
-001373         ?C0046?KB_PROCESS:
-  218: 				else
-  219: 					g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
-001373 904CF4            MOV      DPTR,#g_variable+035H
-001376 7405              MOV      A,#05H
-001378 F0                MOVX     @DPTR,A
-  220: 			}
-001379 22                RET      
-00137A         ?C0045?KB_PROCESS:
-  221: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
-00137A 904CF4            MOV      DPTR,#g_variable+035H
-00137D E0                MOVX     A,@DPTR
-00137E 6406              XRL      A,#06H
-001380 7014              JNZ      ?C0050?KB_PROCESS
-  222: 			{
-  223: 				g_variable.key_combination_keyvalue = 0;
-001382 904CF6            MOV      DPTR,#g_variable+037H
-001385 F0                MOVX     @DPTR,A
-  224: 				g_variable.key_combination_ctrl = 0;
-001386 904CF5            MOV      DPTR,#g_variable+036H
-001389 F0                MOVX     @DPTR,A
-  225: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
-00138A A3                INC      DPTR
-00138B E0                MOVX     A,@DPTR
-00138C FD                MOV      R5,A
-00138D E4                CLR      A
-00138E FF                MOV      R7,A
-00138F 51D5              ACALL    _kb_send_combination_key
-  226: 				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
-001391 E4                CLR      A
-001392 904CF4            MOV      DPTR,#g_variable+035H
-001395 F0                MOVX     @DPTR,A
-  227: 			}
-  228: 		}
-  229: 
-  230: }
-001396         ?C0050?KB_PROCESS:
-001396 22                RET      
------ FUNCTION kb_need_keyscan (END) -------
+----- FUNCTION YC_adc_check_timer500ms (BEGIN) -----
+ FILE: 'adc.c'
+   85: void YC_adc_check_timer500ms()
+   86: {
+   87: #ifdef  ADC_ENABLE
+   88: 	// adc check timer	
+   89: 	if (g_variable.battery_check_interval)
+001161 904CD3            MOV     DPTR,#g_variable+014H
+001164 E0                MOVX    A,@DPTR
+001165 600B              JZ      ?C0017?ADC
+   90: 	{
+   91: 		g_variable.battery_check_interval--;
+001167 14                DEC     A
+001168 F0                MOVX    @DPTR,A
+   92: 		if (g_variable.battery_check_interval == 0)
+001169 E0                MOVX    A,@DPTR
+00116A 7006              JNZ     ?C0017?ADC
+   93: 		{
+   94: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+00116C 7405              MOV     A,#05H
+00116E F0                MOVX    @DPTR,A
+   95: 			YC_adc_check();
+00116F 122230            LCALL   YC_adc_check
+   96: 		}
+   97: 	}
+   98: #endif	
+   99: }
+001172         ?C0017?ADC:
+001172 22                RET     
+----- FUNCTION YC_adc_check_timer500ms (END) -------
 
 
------ FUNCTION kb_motion (BEGIN) -----
- FILE: 'kb_process.c'
-  173: static void kb_motion()
-  174: {
-  175: 	tKSEVENT *pEvt = NULL;
-  176: 	
-001397 904E84            MOV      DPTR,#pEvt
-00139A E4                CLR      A
-00139B F0                MOVX     @DPTR,A
-00139C A3                INC      DPTR
-00139D F0                MOVX     @DPTR,A
-00139E A3                INC      DPTR
-00139F F0                MOVX     @DPTR,A
-  177: 	if (!IPC_IsTxBuffEmpty())
-0013A0 F1D3              ACALL    IPC_IsTxBuffEmpty
-0013A2 5026              JNC      ?C0036?KB_PROCESS
-  178: 		return;
-  179: 	pEvt = KS_GetCurrentEvt();
-0013A4 121918            LCALL    KS_GetCurrentEvt
-0013A7 904E84            MOV      DPTR,#pEvt
-0013AA EB                MOV      A,R3
-0013AB F0                MOVX     @DPTR,A
-0013AC A3                INC      DPTR
-0013AD EA                MOV      A,R2
-0013AE F0                MOVX     @DPTR,A
-0013AF A3                INC      DPTR
-0013B0 E9                MOV      A,R1
-0013B1 F0                MOVX     @DPTR,A
-  180: 
-  181: 	if (pEvt == NULL)
-0013B2 4A                ORL      A,R2
-0013B3 7007              JNZ      ?C0037?KB_PROCESS
-  182: 	{
-  183: 		m_power_on_flag = 1;
-0013B5 904CB6            MOV      DPTR,#m_power_on_flag
-0013B8 04                INC      A
-0013B9 F0                MOVX     @DPTR,A
-  184: 		kb_24g_get_led_status();
-0013BA E1EB              AJMP     kb_24g_get_led_status
-  185: 		return;
-  186: 	}
-0013BC         ?C0037?KB_PROCESS:
-  187: 	kb_motion_keyscan(pEvt);
-0013BC 904E84            MOV      DPTR,#pEvt
-0013BF E0                MOVX     A,@DPTR
-0013C0 FB                MOV      R3,A
-0013C1 A3                INC      DPTR
-0013C2 E0                MOVX     A,@DPTR
-0013C3 FA                MOV      R2,A
-0013C4 A3                INC      DPTR
-0013C5 E0                MOVX     A,@DPTR
-0013C6 F9                MOV      R1,A
-0013C7 120BCC            LCALL    _kb_motion_keyscan
-  188: }
-0013CA         ?C0036?KB_PROCESS:
-0013CA 22                RET      
------ FUNCTION kb_motion (END) -------
+----- FUNCTION LED_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  171: void LED_timer500ms()
+  172: {
+  173: 	if (power_on_flag != 2)
+  174: 		return;
+001173 904DE4            MOV     DPTR,#power_on_flag
+001176 E0                MOVX    A,@DPTR
+001177 6402              XRL     A,#02H
+001179 6002              JZ      $ + 4H
+00117B 4101              AJMP    ?C0026?SYS
+00117D         ?C0025?SYS:
+  175:  	if (g_variable.pairing_g24_timeout != 0)
+00117D 904CEE            MOV     DPTR,#g_variable+02FH
+001180 E0                MOVX    A,@DPTR
+001181 6008              JZ      ?C0028?SYS
+  176: 	{
+  177: 		GPIO_FlipOutBit(BT2_LED_GPIO);
+001183 7FFF              MOV     R7,#0FFH
+001185 5102              ACALL   _GPIO_FlipOutBit
+  178: 		GPIO_FlipOutBit(LOWPOWER_LED_GPIO);
+001187 7F1D              MOV     R7,#01DH
+001189 5102              ACALL   _GPIO_FlipOutBit
+  179: 	}
+  180: 	else
+  181: 	{
+  182: 		
+  183: 	}
+00118B         ?C0028?SYS:
+  184: 
+  185: 	
+  186: 	if (YC_check_is_connected())
+00118B 1206C2            LCALL   YC_check_is_connected
+00118E EF                MOV     A,R7
+00118F 6070              JZ      ?C0026?SYS
+  187: 	{
+  188: 		if(g_variable.sys_numlockled_on_timer)
+001191 904CE6            MOV     DPTR,#g_variable+027H
+001194 E0                MOVX    A,@DPTR
+001195 6017              JZ      ?C0030?SYS
+  189: 		{
+  190: 			g_variable.sys_numlockled_on_timer--;
+001197 14                DEC     A
+001198 F0                MOVX    @DPTR,A
+  191: 			if(!g_variable.sys_numlockled_on_timer)
+001199 E0                MOVX    A,@DPTR
+00119A 7009              JNZ     ?C0031?SYS
+  192: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+00119C D201              SETB    ?_GPIO_Setout?BIT
+00119E 7F10              MOV     R7,#010H
+0011A0 1207C8            LCALL   _GPIO_Setout
+0011A3 8010              SJMP    ?C0033?SYS
+0011A5         ?C0031?SYS:
+  193: 			else 
+  194: 				GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
+0011A5 C201              CLR     ?_GPIO_Setout?BIT
+0011A7 7F10              MOV     R7,#010H
+0011A9 1207C8            LCALL   _GPIO_Setout
+  195: 		}
+0011AC 8007              SJMP    ?C0033?SYS
+0011AE         ?C0030?SYS:
+  196: 		else 
+  197: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
+0011AE D201              SETB    ?_GPIO_Setout?BIT
+0011B0 7F10              MOV     R7,#010H
+0011B2 1207C8            LCALL   _GPIO_Setout
+0011B5         ?C0033?SYS:
+  198: 			
+  199: 
+  200: 		if(g_variable.sys_capslockled_on_timer)
+0011B5 904CE7            MOV     DPTR,#g_variable+028H
+0011B8 E0                MOVX    A,@DPTR
+0011B9 6017              JZ      ?C0034?SYS
+  201: 		{
+  202: 			g_variable.sys_capslockled_on_timer--;
+0011BB 14                DEC     A
+0011BC F0                MOVX    @DPTR,A
+  203: 			
+  204: 			if(!g_variable.sys_capslockled_on_timer)
+0011BD E0                MOVX    A,@DPTR
+0011BE 7009              JNZ     ?C0035?SYS
+  205: 				GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+0011C0 D201              SETB    ?_GPIO_Setout?BIT
+0011C2 7F0F              MOV     R7,#0FH
+0011C4 1207C8            LCALL   _GPIO_Setout
+0011C7 8010              SJMP    ?C0037?SYS
+0011C9         ?C0035?SYS:
+  206: 			else
+  207: 				GPIO_Setout(CAPS_LED_GPIO, LED_ON);
+0011C9 C201              CLR     ?_GPIO_Setout?BIT
+0011CB 7F0F              MOV     R7,#0FH
+0011CD 1207C8            LCALL   _GPIO_Setout
+  208: 		}
+0011D0 8007              SJMP    ?C0037?SYS
+0011D2         ?C0034?SYS:
+  209: 		else
+  210: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
+0011D2 D201              SETB    ?_GPIO_Setout?BIT
+0011D4 7F0F              MOV     R7,#0FH
+0011D6 1207C8            LCALL   _GPIO_Setout
+0011D9         ?C0037?SYS:
+  211: 
+  212: 
+  213: 		if(g_variable.sys_scrolllockled_on_timer)
+0011D9 904CE8            MOV     DPTR,#g_variable+029H
+0011DC E0                MOVX    A,@DPTR
+0011DD 6022              JZ      ?C0026?SYS
+  214: 		{
+  215: 			g_variable.sys_scrolllockled_on_timer--;
+0011DF 14                DEC     A
+0011E0 F0                MOVX    @DPTR,A
+  216: 			if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
+0011E1 904CE5            MOV     DPTR,#g_variable+026H
+0011E4 E0                MOVX    A,@DPTR
+0011E5 701A              JNZ     ?C0026?SYS
+0011E7 904CE2            MOV     DPTR,#g_variable+023H
+0011EA E0                MOVX    A,@DPTR
+0011EB 7014              JNZ     ?C0026?SYS
+  217: 			{
+  218: 				if(!g_variable.sys_scrolllockled_on_timer)
+0011ED 904CE8            MOV     DPTR,#g_variable+029H
+0011F0 E0                MOVX    A,@DPTR
+0011F1 7007              JNZ     ?C0040?SYS
+  219: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+0011F3 D201              SETB    ?_GPIO_Setout?BIT
+0011F5 7F1D              MOV     R7,#01DH
+0011F7 0207C8            LJMP    _GPIO_Setout
+0011FA         ?C0040?SYS:
+  220: 				else
+  221: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+0011FA C201              CLR     ?_GPIO_Setout?BIT
+0011FC 7F1D              MOV     R7,#01DH
+0011FE 1207C8            LCALL   _GPIO_Setout
+  222: 			}
+  223: 		}		
+  224: 		
+  225: 	}	
+  226: }
+001201         ?C0026?SYS:
+001201 22                RET     
+----- FUNCTION LED_timer500ms (END) -------
 
 
------ FUNCTION YC_System_Main (BEGIN) -----
- FILE: 'sys.c'
-  444: void YC_System_Main(void)
-  445: {
-  446: 	kb_cb_init();
-  447: 	while(1) {
-0013CB B148              ACALL    kb_cb_init
-0013CD         ?C0093?SYS:
-  448: 		IPC_DealSingleStep();
-  449: 		kb_need_keyscan();
-0013CD B1A0              ACALL    IPC_DealSingleStep
-  450: 		YC_update_eeprom_data();
-0013CF 7111              ACALL    kb_need_keyscan
-  451: 		LED_handle();
-0013D1 120A98            LCALL    YC_update_eeprom_data
-  452: 		
-0013D4 D167              ACALL    LED_handle
-  453: 		switch (current_task) {
-0013D6 900B7E            MOV      DPTR,#current_task
-0013D9 E0                MOVX     A,@DPTR
-0013DA 14                DEC      A
-0013DB 600E              JZ       ?C0099?SYS
-0013DD 24FE              ADD      A,#0FEH
-0013DF 70EC              JNZ      ?C0093?SYS
-  454: 		case FIX_ENTER_HIBERNATE:
-0013E1         ?C0096?SYS:
-  455: 			KS_Unistall();
-0013E1 9111              ACALL    KS_Unistall
-  456: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
-  457: 			LED_all_shutdown();
-0013E3 1207DB            LCALL    LED_all_shutdown
-  458: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
-0013E6 120F9C            LCALL    IPC_WaitLpm
-0013E9         ?C0097?SYS:
-  459: 			while(1);
-0013E9 80FE              SJMP     ?C0097?SYS
-  460: 			break;
-  461: 			
-  462: 		case FIX_ENTER_LPM:
-0013EB         ?C0099?SYS:
-  463: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.one_key_pres
->> s_wait_release_timer
-0013EB 904CEA            MOV      DPTR,#g_variable+02BH
-0013EE E0                MOVX     A,@DPTR
-0013EF 7012              JNZ      ?C0101?SYS
-0013F1 904CEC            MOV      DPTR,#g_variable+02DH
-0013F4 E0                MOVX     A,@DPTR
-0013F5 700C              JNZ      ?C0101?SYS
-0013F7 904CE5            MOV      DPTR,#g_variable+026H
-0013FA E0                MOVX     A,@DPTR
-0013FB 7006              JNZ      ?C0101?SYS
-0013FD 904CF8            MOV      DPTR,#g_variable+039H
-001400 E0                MOVX     A,@DPTR
-001401 6004              JZ       ?C0100?SYS
-001403         ?C0101?SYS:
-  464: 			) 
-  465: 			{
-  466: 				IPC_AbandonLpm();
-001403 F1C7              ACALL    IPC_AbandonLpm
-  467: 				break;
-001405 80C6              SJMP     ?C0093?SYS
-  468: 			}
-001407         ?C0100?SYS:
-  469: 			else
-  470: 			{
-  471: 				KS_Unistall();
-001407 9111              ACALL    KS_Unistall
-  472: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
-001409 120F9C            LCALL    IPC_WaitLpm
-  473: 				break;
-00140C 80BF              SJMP     ?C0093?SYS
-  474: 			}
-  475: 		}
-  476: 	}
-00140E 80BD              SJMP     ?C0093?SYS
-001410 22                RET      
------ FUNCTION YC_System_Main (END) -------
+----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
+001202 904EA5            MOV     DPTR,#gpio_num
+001205 EF                MOV     A,R7
+001206 F0                MOVX    @DPTR,A
+001207 7B01              MOV     R3,#01H
+001209 7A80              MOV     R2,#080H
+00120B 7974              MOV     R1,#074H
+00120D 511E              ACALL   _gpioGetBit
+00120F 9209              MOV     st,C
+001211 904EA5            MOV     DPTR,#gpio_num
+001214 E0                MOVX    A,@DPTR
+001215 FF                MOV     R7,A
+001216 A209              MOV     C,st
+001218 B3                CPL     C
+001219 9201              MOV     ?_GPIO_Setout?BIT,C
+00121B 0207C8            LJMP    _GPIO_Setout
+----- FUNCTION _GPIO_FlipOutBit (END) -------
+
+
+----- FUNCTION _gpioGetBit (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R5' ----
+00121E AD07              MOV     R5,AR7
+;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
+001220 E4                CLR     A
+001221 904EA3            MOV     DPTR,#queue
+001224 F0                MOVX    @DPTR,A
+;---- Variable 'group' assigned to Register 'R6' ----
+001225 FE                MOV     R6,A
+001226 EF                MOV     A,R7
+001227 5407              ANL     A,#07H
+001229 F0                MOVX    @DPTR,A
+00122A EF                MOV     A,R7
+00122B 13                RRC     A
+00122C 13                RRC     A
+00122D 13                RRC     A
+00122E 5403              ANL     A,#03H
+001230 FE                MOV     R6,A
+001231 F582              MOV     DPL,A
+001233 758300            MOV     DPH,#00H
+001236 1203CF            LCALL   ?C?CLDOPTR
+001239 FD                MOV     R5,A
+00123A 33                RLC     A
+00123B 95E0              SUBB    A,ACC
+00123D FC                MOV     R4,A
+00123E 904EA3            MOV     DPTR,#queue
+001241 E0                MOVX    A,@DPTR
+001242 FF                MOV     R7,A
+001243 7401              MOV     A,#01H
+001245 7E00              MOV     R6,#00H
+001247 A807              MOV     R0,AR7
+001249 08                INC     R0
+00124A 8005              SJMP    ?C0035?GPIO
+00124C         ?C0034?GPIO:
+00124C C3                CLR     C
+00124D 33                RLC     A
+00124E CE                XCH     A,R6
+00124F 33                RLC     A
+001250 CE                XCH     A,R6
+001251         ?C0035?GPIO:
+001251 D8F9              DJNZ    R0,?C0034?GPIO
+001253 FF                MOV     R7,A
+001254 EE                MOV     A,R6
+001255 5C                ANL     A,R4
+001256 FE                MOV     R6,A
+001257 EF                MOV     A,R7
+001258 5D                ANL     A,R5
+001259 4E                ORL     A,R6
+00125A 24FF              ADD     A,#0FFH
+00125C 22                RET     
+----- FUNCTION _gpioGetBit (END) -------
+
+
+----- FUNCTION _GPIO_GetInputStatus (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+00125D 7B01              MOV     R3,#01H
+00125F 7A81              MOV     R2,#081H
+001261 791C              MOV     R1,#01CH
+001263 80B9              SJMP    _gpioGetBit
+----- FUNCTION _GPIO_GetInputStatus (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
+001265 904EA4            MOV     DPTR,#gpio_num
+001268 EF                MOV     A,R7
+001269 F0                MOVX    @DPTR,A
+00126A 515D              ACALL   _GPIO_GetInputStatus
+00126C 9208              MOV     st,C
+00126E 904EA4            MOV     DPTR,#gpio_num
+001271 E0                MOVX    A,@DPTR
+001272 FF                MOV     R7,A
+001273 A208              MOV     C,st
+001275 B3                CPL     C
+001276 9207              MOV     ?_GPIO_SetWakeup?BIT,C
+;----                  JMP     _GPIO_SetWakeup
+----- FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeup (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001278 EF                MOV     A,R7
+001279 F4                CPL     A
+00127A 7002              JNZ     $ + 4H
+00127C 6103              AJMP    ?C0019?GPIO
+00127E         ?C0018?GPIO:
+00127E EF                MOV     A,R7
+00127F 5407              ANL     A,#07H
+001281 FE                MOV     R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+001282 EF                MOV     A,R7
+001283 13                RRC     A
+001284 13                RRC     A
+001285 13                RRC     A
+001286 5403              ANL     A,#03H
+001288 FF                MOV     R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+001289 300743            JNB     st,?C0020?GPIO
+00128C 24A3              ADD     A,#LOW YC_GPIOWakeupL
+00128E F582              MOV     DPL,A
+001290 E4                CLR     A
+001291 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+001293 F583              MOV     DPH,A
+001295 C083              PUSH    DPH
+001297 C082              PUSH    DPL
+001299 E0                MOVX    A,@DPTR
+00129A FD                MOV     R5,A
+00129B 7401              MOV     A,#01H
+00129D A806              MOV     R0,AR6
+00129F 08                INC     R0
+0012A0 8002              SJMP    ?C0037?GPIO
+0012A2         ?C0036?GPIO:
+0012A2 C3                CLR     C
+0012A3 33                RLC     A
+0012A4         ?C0037?GPIO:
+0012A4 D8FC              DJNZ    R0,?C0036?GPIO
+0012A6 F4                CPL     A
+0012A7 5D                ANL     A,R5
+0012A8 D082              POP     DPL
+0012AA D083              POP     DPH
+0012AC F0                MOVX    @DPTR,A
+0012AD 74A7              MOV     A,#LOW YC_GPIOWakeupH
+0012AF 2F                ADD     A,R7
+0012B0 F582              MOV     DPL,A
+0012B2 E4                CLR     A
+0012B3 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+0012B5 F583              MOV     DPH,A
+0012B7 C083              PUSH    DPH
+0012B9 C082              PUSH    DPL
+0012BB E0                MOVX    A,@DPTR
+0012BC FF                MOV     R7,A
+0012BD 7401              MOV     A,#01H
+0012BF A806              MOV     R0,AR6
+0012C1 08                INC     R0
+0012C2 8002              SJMP    ?C0039?GPIO
+0012C4         ?C0038?GPIO:
+0012C4 C3                CLR     C
+0012C5 33                RLC     A
+0012C6         ?C0039?GPIO:
+0012C6 D8FC              DJNZ    R0,?C0038?GPIO
+0012C8 4F                ORL     A,R7
+0012C9 D082              POP     DPL
+0012CB D083              POP     DPH
+0012CD F0                MOVX    @DPTR,A
+0012CE 22                RET     
+0012CF         ?C0020?GPIO:
+0012CF 74A3              MOV     A,#LOW YC_GPIOWakeupL
+0012D1 2F                ADD     A,R7
+0012D2 F582              MOV     DPL,A
+0012D4 E4                CLR     A
+0012D5 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+0012D7 F583              MOV     DPH,A
+0012D9 C083              PUSH    DPH
+0012DB C082              PUSH    DPL
+0012DD E0                MOVX    A,@DPTR
+0012DE FD                MOV     R5,A
+0012DF 7401              MOV     A,#01H
+0012E1 A806              MOV     R0,AR6
+0012E3 08                INC     R0
+0012E4 8002              SJMP    ?C0041?GPIO
+0012E6         ?C0040?GPIO:
+0012E6 C3                CLR     C
+0012E7 33                RLC     A
+0012E8         ?C0041?GPIO:
+0012E8 D8FC              DJNZ    R0,?C0040?GPIO
+0012EA FC                MOV     R4,A
+0012EB 4D                ORL     A,R5
+0012EC D082              POP     DPL
+0012EE D083              POP     DPH
+0012F0 F0                MOVX    @DPTR,A
+0012F1 74A7              MOV     A,#LOW YC_GPIOWakeupH
+0012F3 2F                ADD     A,R7
+0012F4 F582              MOV     DPL,A
+0012F6 E4                CLR     A
+0012F7 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+0012F9 F583              MOV     DPH,A
+0012FB E0                MOVX    A,@DPTR
+0012FC FF                MOV     R7,A
+0012FD EC                MOV     A,R4
+0012FE F4                CPL     A
+0012FF FE                MOV     R6,A
+001300 EF                MOV     A,R7
+001301 5E                ANL     A,R6
+001302 F0                MOVX    @DPTR,A
+001303         ?C0019?GPIO:
+001303 22                RET     
+----- FUNCTION _GPIO_SetWakeup (END) -------
 
 
 ----- FUNCTION KS_Unistall (BEGIN) -----
@@ -3095,977 +2792,1337 @@
   218: 	byte i = 0;
   219: 	byte temp = 0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-001411 E4                CLR      A
-001412 FF                MOV      R7,A
+001304 E4                CLR     A
+001305 FF                MOV     R7,A
   220: 	byte tgroup = 0;
-001413 904EA0            MOV      DPTR,#temp
-001416 F0                MOVX     @DPTR,A
+001306 904EA0            MOV     DPTR,#temp
+001309 F0                MOVX    @DPTR,A
   221: 	byte tgpionum = 0;
 ;---- Variable 'tgroup' assigned to Register 'R6' ----
-001417 FE                MOV      R6,A
+00130A FE                MOV     R6,A
   222: 	for (i=0; col[i]!=0; i++) {
 ;---- Variable 'tgpionum' assigned to Register 'R5' ----
-001418 FD                MOV      R5,A
+00130B FD                MOV     R5,A
   223: 		tgroup = col[i]  >> 3;
-001419         ?C0037?KEYSCAN:
-001419 EF                MOV      A,R7
-00141A 90060C            MOV      DPTR,#col
-00141D 93                MOVC     A,@A+DPTR
-00141E 6048              JZ       ?C0038?KEYSCAN
+00130C         ?C0037?KEYSCAN:
+00130C EF                MOV     A,R7
+00130D 90060C            MOV     DPTR,#col
+001310 93                MOVC    A,@A+DPTR
+001311 6049              JZ      ?C0038?KEYSCAN
   224: 		tgpionum = 1 << (col[i] & 7);
-001420 EF                MOV      A,R7
-001421 93                MOVC     A,@A+DPTR
-001422 FD                MOV      R5,A
-001423 13                RRC      A
-001424 13                RRC      A
-001425 13                RRC      A
-001426 541F              ANL      A,#01FH
-001428 FE                MOV      R6,A
+001313 EF                MOV     A,R7
+001314 93                MOVC    A,@A+DPTR
+001315 FD                MOV     R5,A
+001316 13                RRC     A
+001317 13                RRC     A
+001318 13                RRC     A
+001319 541F              ANL     A,#01FH
+00131B FE                MOV     R6,A
   225: 		REG_GPIO_PUP (tgroup) &= ~tgpionum;
-001429 ED                MOV      A,R5
-00142A 5407              ANL      A,#07H
-00142C FD                MOV      R5,A
-00142D F8                MOV      R0,A
-00142E 7401              MOV      A,#01H
-001430 08                INC      R0
-001431 8002              SJMP     ?C0091?KEYSCAN
-001433         ?C0090?KEYSCAN:
-001433 C3                CLR      C
-001434 33                RLC      A
-001435         ?C0091?KEYSCAN:
-001435 D8FC              DJNZ     R0,?C0090?KEYSCAN
-001437 FD                MOV      R5,A
+00131C ED                MOV     A,R5
+00131D 5407              ANL     A,#07H
+00131F FD                MOV     R5,A
+001320 7401              MOV     A,#01H
+001322 A805              MOV     R0,AR5
+001324 08                INC     R0
+001325 8002              SJMP    ?C0091?KEYSCAN
+001327         ?C0090?KEYSCAN:
+001327 C3                CLR     C
+001328 33                RLC     A
+001329         ?C0091?KEYSCAN:
+001329 D8FC              DJNZ    R0,?C0090?KEYSCAN
+00132B FD                MOV     R5,A
   226: 		REG_GPIO_OE(tgroup) |= tgpionum;
-001438 EE                MOV      A,R6
-001439 2478              ADD      A,#078H
-00143B FB                MOV      R3,A
-00143C E4                CLR      A
-00143D 3480              ADDC     A,#080H
-00143F 8B82              MOV      DPL,R3
-001441 F583              MOV      DPH,A
-001443 E0                MOVX     A,@DPTR
-001444 FC                MOV      R4,A
-001445 ED                MOV      A,R5
-001446 F4                CPL      A
-001447 FB                MOV      R3,A
-001448 EC                MOV      A,R4
-001449 5B                ANL      A,R3
-00144A F0                MOVX     @DPTR,A
+00132C EE                MOV     A,R6
+00132D 2478              ADD     A,#078H
+00132F FB                MOV     R3,A
+001330 E4                CLR     A
+001331 3480              ADDC    A,#080H
+001333 8B82              MOV     DPL,R3
+001335 F583              MOV     DPH,A
+001337 E0                MOVX    A,@DPTR
+001338 FC                MOV     R4,A
+001339 ED                MOV     A,R5
+00133A F4                CPL     A
+00133B FB                MOV     R3,A
+00133C EC                MOV     A,R4
+00133D 5B                ANL     A,R3
+00133E F0                MOVX    @DPTR,A
   227: 		REG_GPIO_OUT(tgroup) &= ~tgpionum;
-00144B EE                MOV      A,R6
-00144C 2470              ADD      A,#070H
-00144E F582              MOV      DPL,A
-001450 E4                CLR      A
-001451 3480              ADDC     A,#080H
-001453 F583              MOV      DPH,A
-001455 E0                MOVX     A,@DPTR
-001456 4D                ORL      A,R5
-001457 F0                MOVX     @DPTR,A
+00133F EE                MOV     A,R6
+001340 2470              ADD     A,#070H
+001342 F582              MOV     DPL,A
+001344 E4                CLR     A
+001345 3480              ADDC    A,#080H
+001347 F583              MOV     DPH,A
+001349 E0                MOVX    A,@DPTR
+00134A 4D                ORL     A,R5
+00134B F0                MOVX    @DPTR,A
   228: 	}
-001458 EE                MOV      A,R6
-001459 2474              ADD      A,#074H
-00145B F582              MOV      DPL,A
-00145D E4                CLR      A
-00145E 3480              ADDC     A,#080H
-001460 F583              MOV      DPH,A
-001462 E0                MOVX     A,@DPTR
-001463 5B                ANL      A,R3
-001464 F0                MOVX     @DPTR,A
+00134C EE                MOV     A,R6
+00134D 2474              ADD     A,#074H
+00134F F582              MOV     DPL,A
+001351 E4                CLR     A
+001352 3480              ADDC    A,#080H
+001354 F583              MOV     DPH,A
+001356 E0                MOVX    A,@DPTR
+001357 5B                ANL     A,R3
+001358 F0                MOVX    @DPTR,A
   229: 	
-001465 0F                INC      R7
-001466 80B1              SJMP     ?C0037?KEYSCAN
-001468         ?C0038?KEYSCAN:
+001359 0F                INC     R7
+00135A 80B0              SJMP    ?C0037?KEYSCAN
+00135C         ?C0038?KEYSCAN:
   230: 	GPIO_fillpd();
-001468 12262A            LCALL    GPIO_fillpd
+00135C F14A              ACALL   GPIO_fillpd
   231: 	
   232: 	temp = REG_GPIO_IN(0);
-00146B 90811C            MOV      DPTR,#0811CH
-00146E E0                MOVX     A,@DPTR
-00146F 904EA0            MOV      DPTR,#temp
-001472 F0                MOVX     @DPTR,A
+00135E 90811C            MOV     DPTR,#0811CH
+001361 E0                MOVX    A,@DPTR
+001362 904EA0            MOV     DPTR,#temp
+001365 F0                MOVX    @DPTR,A
   233: 
   234: 	if(long_press_flag)
-001473 904DD5            MOV      DPTR,#long_press_flag
-001476 E0                MOVX     A,@DPTR
-001477 6020              JZ       ?C0040?KEYSCAN
+001366 904DD5            MOV     DPTR,#long_press_flag
+001369 E0                MOVX    A,@DPTR
+00136A 6020              JZ      ?C0040?KEYSCAN
   235: 	{
   236: 		GPIO_SetWakeupByCurrentState(0);
-001479 E4                CLR      A
-00147A FF                MOV      R7,A
-00147B 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+00136C E4                CLR     A
+00136D FF                MOV     R7,A
+00136E 5165              ACALL   _GPIO_SetWakeupByCurrentState
   237: 		GPIO_SetWakeupByCurrentState(1);
-00147D 7F01              MOV      R7,#01H
-00147F 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+001370 7F01              MOV     R7,#01H
+001372 5165              ACALL   _GPIO_SetWakeupByCurrentState
   238: 		GPIO_SetWakeupByCurrentState(2);
-001481 7F02              MOV      R7,#02H
-001483 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+001374 7F02              MOV     R7,#02H
+001376 5165              ACALL   _GPIO_SetWakeupByCurrentState
   239: 		GPIO_SetWakeupByCurrentState(3);
-001485 7F03              MOV      R7,#03H
-001487 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+001378 7F03              MOV     R7,#03H
+00137A 5165              ACALL   _GPIO_SetWakeupByCurrentState
   240: 		GPIO_SetWakeupByCurrentState(4);
-001489 7F04              MOV      R7,#04H
-00148B 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+00137C 7F04              MOV     R7,#04H
+00137E 5165              ACALL   _GPIO_SetWakeupByCurrentState
   241: 		GPIO_SetWakeupByCurrentState(5);
-00148D 7F05              MOV      R7,#05H
-00148F 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+001380 7F05              MOV     R7,#05H
+001382 5165              ACALL   _GPIO_SetWakeupByCurrentState
   242: 		GPIO_SetWakeupByCurrentState(6);
-001491 7F06              MOV      R7,#06H
-001493 91A9              ACALL    _GPIO_SetWakeupByCurrentState
+001384 7F06              MOV     R7,#06H
+001386 5165              ACALL   _GPIO_SetWakeupByCurrentState
   243: 		GPIO_SetWakeupByCurrentState(7);
-001495 7F07              MOV      R7,#07H
-001497 8010              SJMP     _GPIO_SetWakeupByCurrentState
+001388 7F07              MOV     R7,#07H
+00138A 4165              AJMP    _GPIO_SetWakeupByCurrentState
   244: 	}
-001499         ?C0040?KEYSCAN:
+00138C         ?C0040?KEYSCAN:
   245: 	else
   246: 	{
   247: 		YC_GPIOWakeupL[0] = temp;
-001499 904EA0            MOV      DPTR,#temp
-00149C E0                MOVX     A,@DPTR
-00149D FF                MOV      R7,A
-00149E 9000A3            MOV      DPTR,#YC_GPIOWakeupL
-0014A1 F0                MOVX     @DPTR,A
+00138C 904EA0            MOV     DPTR,#temp
+00138F E0                MOVX    A,@DPTR
+001390 FF                MOV     R7,A
+001391 9000A3            MOV     DPTR,#YC_GPIOWakeupL
+001394 F0                MOVX    @DPTR,A
   248: 		YC_GPIOWakeupH[0] = ~temp;
-0014A2 EF                MOV      A,R7
-0014A3 F4                CPL      A
-0014A4 9000A7            MOV      DPTR,#YC_GPIOWakeupH
-0014A7 F0                MOVX     @DPTR,A
+001395 EF                MOV     A,R7
+001396 F4                CPL     A
+001397 9000A7            MOV     DPTR,#YC_GPIOWakeupH
+00139A F0                MOVX    @DPTR,A
   249: 	}
   250: 
   251: }
-0014A8 22                RET      
+00139B 22                RET     
 ----- FUNCTION KS_Unistall (END) -------
 
 
------ FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
-0014A9 904EA4            MOV      DPTR,#gpio_num
-0014AC EF                MOV      A,R7
-0014AD F0                MOVX     @DPTR,A
-0014AE B15B              ACALL    _GPIO_GetInputStatus
-0014B0 9208              MOV      st,C
-0014B2 904EA4            MOV      DPTR,#gpio_num
-0014B5 E0                MOVX     A,@DPTR
-0014B6 FF                MOV      R7,A
-0014B7 A208              MOV      C,st
-0014B9 B3                CPL      C
-0014BA 9207              MOV      ?_GPIO_SetWakeup?BIT,C
-;----                  JMP      _GPIO_SetWakeup
------ FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
-
-
------ FUNCTION _GPIO_SetWakeup (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-0014BC EF                MOV      A,R7
-0014BD F4                CPL      A
-0014BE 7002              JNZ      $ + 4H
-0014C0 A147              AJMP     ?C0019?GPIO
-0014C2         ?C0018?GPIO:
-0014C2 EF                MOV      A,R7
-0014C3 5407              ANL      A,#07H
-0014C5 FE                MOV      R6,A
-;---- Variable 'queue' assigned to Register 'R6' ----
-0014C6 EF                MOV      A,R7
-0014C7 13                RRC      A
-0014C8 13                RRC      A
-0014C9 13                RRC      A
-0014CA 5403              ANL      A,#03H
-0014CC FF                MOV      R7,A
-;---- Variable 'group' assigned to Register 'R7' ----
-0014CD 300743            JNB      st,?C0020?GPIO
-0014D0 24A3              ADD      A,#LOW YC_GPIOWakeupL
-0014D2 F582              MOV      DPL,A
-0014D4 E4                CLR      A
-0014D5 3400              ADDC     A,#HIGH YC_GPIOWakeupL
-0014D7 F583              MOV      DPH,A
-0014D9 C083              PUSH     DPH
-0014DB C082              PUSH     DPL
-0014DD E0                MOVX     A,@DPTR
-0014DE FD                MOV      R5,A
-0014DF 7401              MOV      A,#01H
-0014E1 A806              MOV      R0,AR6
-0014E3 08                INC      R0
-0014E4 8002              SJMP     ?C0037?GPIO
-0014E6         ?C0036?GPIO:
-0014E6 C3                CLR      C
-0014E7 33                RLC      A
-0014E8         ?C0037?GPIO:
-0014E8 D8FC              DJNZ     R0,?C0036?GPIO
-0014EA F4                CPL      A
-0014EB 5D                ANL      A,R5
-0014EC D082              POP      DPL
-0014EE D083              POP      DPH
-0014F0 F0                MOVX     @DPTR,A
-0014F1 74A7              MOV      A,#LOW YC_GPIOWakeupH
-0014F3 2F                ADD      A,R7
-0014F4 F582              MOV      DPL,A
-0014F6 E4                CLR      A
-0014F7 3400              ADDC     A,#HIGH YC_GPIOWakeupH
-0014F9 F583              MOV      DPH,A
-0014FB C083              PUSH     DPH
-0014FD C082              PUSH     DPL
-0014FF E0                MOVX     A,@DPTR
-001500 FF                MOV      R7,A
-001501 7401              MOV      A,#01H
-001503 A806              MOV      R0,AR6
-001505 08                INC      R0
-001506 8002              SJMP     ?C0039?GPIO
-001508         ?C0038?GPIO:
-001508 C3                CLR      C
-001509 33                RLC      A
-00150A         ?C0039?GPIO:
-00150A D8FC              DJNZ     R0,?C0038?GPIO
-00150C 4F                ORL      A,R7
-00150D D082              POP      DPL
-00150F D083              POP      DPH
-001511 F0                MOVX     @DPTR,A
-001512 22                RET      
-001513         ?C0020?GPIO:
-001513 74A3              MOV      A,#LOW YC_GPIOWakeupL
-001515 2F                ADD      A,R7
-001516 F582              MOV      DPL,A
-001518 E4                CLR      A
-001519 3400              ADDC     A,#HIGH YC_GPIOWakeupL
-00151B F583              MOV      DPH,A
-00151D C083              PUSH     DPH
-00151F C082              PUSH     DPL
-001521 E0                MOVX     A,@DPTR
-001522 FD                MOV      R5,A
-001523 7401              MOV      A,#01H
-001525 A806              MOV      R0,AR6
-001527 08                INC      R0
-001528 8002              SJMP     ?C0041?GPIO
-00152A         ?C0040?GPIO:
-00152A C3                CLR      C
-00152B 33                RLC      A
-00152C         ?C0041?GPIO:
-00152C D8FC              DJNZ     R0,?C0040?GPIO
-00152E FC                MOV      R4,A
-00152F 4D                ORL      A,R5
-001530 D082              POP      DPL
-001532 D083              POP      DPH
-001534 F0                MOVX     @DPTR,A
-001535 74A7              MOV      A,#LOW YC_GPIOWakeupH
-001537 2F                ADD      A,R7
-001538 F582              MOV      DPL,A
-00153A E4                CLR      A
-00153B 3400              ADDC     A,#HIGH YC_GPIOWakeupH
-00153D F583              MOV      DPH,A
-00153F E0                MOVX     A,@DPTR
-001540 FF                MOV      R7,A
-001541 EC                MOV      A,R4
-001542 F4                CPL      A
-001543 FE                MOV      R6,A
-001544 EF                MOV      A,R7
-001545 5E                ANL      A,R6
-001546 F0                MOVX     @DPTR,A
-001547         ?C0019?GPIO:
-001547 22                RET      
------ FUNCTION _GPIO_SetWakeup (END) -------
-
-
------ FUNCTION kb_cb_init (BEGIN) -----
+----- FUNCTION YC_System_Main (BEGIN) -----
  FILE: 'sys.c'
-  437: static void kb_cb_init()
-  438: {
-  439: 	IPC_Initialize(&cb);
-  440: }
-001548 7B01              MOV      R3,#01H
-00154A 7A4D              MOV      R2,#HIGH cb
-00154C 79F2              MOV      R1,#LOW cb
-;----                  JMP      _IPC_Initialize
------ FUNCTION kb_cb_init (END) -------
-
-
------ FUNCTION _IPC_Initialize (BEGIN) -----
-;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
-00154E 7804              MOV      R0,#LOW ipcCb
-001550 7C4E              MOV      R4,#HIGH ipcCb
-001552 7D01              MOV      R5,#01H
-001554 7E00              MOV      R6,#00H
-001556 7F12              MOV      R7,#012H
-001558 020390            LJMP     ?C?COPY
------ FUNCTION _IPC_Initialize (END) -------
-
-
------ FUNCTION _GPIO_GetInputStatus (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-00155B 7B01              MOV      R3,#01H
-00155D 7A81              MOV      R2,#081H
-00155F 791C              MOV      R1,#01CH
-;----                  JMP      _gpioGetBit
------ FUNCTION _GPIO_GetInputStatus (END) -------
-
-
------ FUNCTION _gpioGetBit (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R5' ----
-001561 AD07              MOV      R5,AR7
-;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
-001563 E4                CLR      A
-001564 904EA3            MOV      DPTR,#queue
-001567 F0                MOVX     @DPTR,A
-;---- Variable 'group' assigned to Register 'R6' ----
-001568 FE                MOV      R6,A
-001569 EF                MOV      A,R7
-00156A 5407              ANL      A,#07H
-00156C F0                MOVX     @DPTR,A
-00156D EF                MOV      A,R7
-00156E 13                RRC      A
-00156F 13                RRC      A
-001570 13                RRC      A
-001571 5403              ANL      A,#03H
-001573 FE                MOV      R6,A
-001574 F582              MOV      DPL,A
-001576 758300            MOV      DPH,#00H
-001579 1203CF            LCALL    ?C?CLDOPTR
-00157C FD                MOV      R5,A
-00157D 33                RLC      A
-00157E 95E0              SUBB     A,ACC
-001580 FC                MOV      R4,A
-001581 904EA3            MOV      DPTR,#queue
-001584 E0                MOVX     A,@DPTR
-001585 FF                MOV      R7,A
-001586 7401              MOV      A,#01H
-001588 7E00              MOV      R6,#00H
-00158A A807              MOV      R0,AR7
-00158C 08                INC      R0
-00158D 8005              SJMP     ?C0035?GPIO
-00158F         ?C0034?GPIO:
-00158F C3                CLR      C
-001590 33                RLC      A
-001591 CE                XCH      A,R6
-001592 33                RLC      A
-001593 CE                XCH      A,R6
-001594         ?C0035?GPIO:
-001594 D8F9              DJNZ     R0,?C0034?GPIO
-001596 FF                MOV      R7,A
-001597 EE                MOV      A,R6
-001598 5C                ANL      A,R4
-001599 FE                MOV      R6,A
-00159A EF                MOV      A,R7
-00159B 5D                ANL      A,R5
-00159C 4E                ORL      A,R6
-00159D 24FF              ADD      A,#0FFH
-00159F 22                RET      
------ FUNCTION _gpioGetBit (END) -------
+  444: void YC_System_Main(void)
+  445: {
+  446: 	kb_cb_init();
+  447: 	while(1) {
+00139C 9167              ACALL   kb_cb_init
+00139E         ?C0093?SYS:
+  448: 		IPC_DealSingleStep();
+  449: 		kb_need_keyscan();
+00139E 1223EF            LCALL   IPC_DealSingleStep
+  450: 		YC_update_eeprom_data();
+0013A1 B1AF              ACALL   kb_need_keyscan
+  451: 		LED_handle();
+0013A3 120A8A            LCALL   YC_update_eeprom_data
+  452: 		
+0013A6 1206CF            LCALL   LED_handle
+  453: 		switch (current_task) {
+0013A9 900B7E            MOV     DPTR,#current_task
+0013AC E0                MOVX    A,@DPTR
+0013AD 14                DEC     A
+0013AE 600C              JZ      ?C0099?SYS
+0013B0 24FE              ADD     A,#0FEH
+0013B2 70EA              JNZ     ?C0093?SYS
+  454: 		case FIX_ENTER_HIBERNATE:
+0013B4         ?C0096?SYS:
+  455: 			KS_Unistall();
+0013B4 7104              ACALL   KS_Unistall
+  456: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+  457: 			LED_all_shutdown();
+0013B6 71E1              ACALL   LED_all_shutdown
+  458: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+0013B8 9119              ACALL   IPC_WaitLpm
+0013BA         ?C0097?SYS:
+  459: 			while(1);
+0013BA 80FE              SJMP    ?C0097?SYS
+  460: 			break;
+  461: 			
+  462: 		case FIX_ENTER_LPM:
+0013BC         ?C0099?SYS:
+  463: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.one_key_pres
+>> s_wait_release_timer
+0013BC 904CEA            MOV     DPTR,#g_variable+02BH
+0013BF E0                MOVX    A,@DPTR
+0013C0 7012              JNZ     ?C0101?SYS
+0013C2 904CEC            MOV     DPTR,#g_variable+02DH
+0013C5 E0                MOVX    A,@DPTR
+0013C6 700C              JNZ     ?C0101?SYS
+0013C8 904CE5            MOV     DPTR,#g_variable+026H
+0013CB E0                MOVX    A,@DPTR
+0013CC 7006              JNZ     ?C0101?SYS
+0013CE 904CF8            MOV     DPTR,#g_variable+039H
+0013D1 E0                MOVX    A,@DPTR
+0013D2 6004              JZ      ?C0100?SYS
+0013D4         ?C0101?SYS:
+  464: 			) 
+  465: 			{
+  466: 				IPC_AbandonLpm();
+0013D4 F126              ACALL   IPC_AbandonLpm
+  467: 				break;
+0013D6 80C6              SJMP    ?C0093?SYS
+  468: 			}
+0013D8         ?C0100?SYS:
+  469: 			else
+  470: 			{
+  471: 				KS_Unistall();
+0013D8 7104              ACALL   KS_Unistall
+  472: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+0013DA 9119              ACALL   IPC_WaitLpm
+  473: 				break;
+0013DC 80C0              SJMP    ?C0093?SYS
+  474: 			}
+  475: 		}
+  476: 	}
+0013DE 80BE              SJMP    ?C0093?SYS
+0013E0 22                RET     
+----- FUNCTION YC_System_Main (END) -------
 
 
------ FUNCTION IPC_DealSingleStep (BEGIN) -----
-0015A0 7A0C              MOV      R2,#HIGH ipcReadBuff
-0015A2 794B              MOV      R1,#LOW ipcReadBuff
-0015A4 904E8A            MOV      DPTR,#pbuff
-0015A7 7401              MOV      A,#01H
-0015A9 F0                MOVX     @DPTR,A
-0015AA A3                INC      DPTR
-0015AB 740C              MOV      A,#HIGH ipcReadBuff
-0015AD F0                MOVX     @DPTR,A
-0015AE A3                INC      DPTR
-0015AF 744B              MOV      A,#LOW ipcReadBuff
-0015B1 F0                MOVX     @DPTR,A
-0015B2 904BA0            MOV      DPTR,#ipcRxWritePtr
-0015B5 E0                MOVX     A,@DPTR
-0015B6 FE                MOV      R6,A
-0015B7 A3                INC      DPTR
-0015B8 E0                MOVX     A,@DPTR
-0015B9 FF                MOV      R7,A
-0015BA 904B9E            MOV      DPTR,#ipcRxReadPtr
-0015BD E0                MOVX     A,@DPTR
-0015BE 6E                XRL      A,R6
-0015BF 7003              JNZ      ?C0038?IPC
-0015C1 A3                INC      DPTR
-0015C2 E0                MOVX     A,@DPTR
-0015C3 6F                XRL      A,R7
-0015C4         ?C0038?IPC:
-0015C4 6047              JZ       ?C0029?IPC
-0015C6         ?C0023?IPC:
-0015C6 7E0C              MOV      R6,#HIGH ipcReadBuff
-0015C8 7F4B              MOV      R7,#LOW ipcReadBuff
-0015CA 7D03              MOV      R5,#03H
-0015CC 1223D4            LCALL    _ipcRx
-0015CF 904E8A            MOV      DPTR,#pbuff
-0015D2 E0                MOVX     A,@DPTR
-0015D3 FB                MOV      R3,A
-0015D4 A3                INC      DPTR
-0015D5 E0                MOVX     A,@DPTR
-0015D6 FA                MOV      R2,A
-0015D7 A3                INC      DPTR
-0015D8 E0                MOVX     A,@DPTR
-0015D9 F9                MOV      R1,A
-0015DA 1203B6            LCALL    ?C?CLDPTR
-0015DD B4022B            CJNE     A,#02H,?C0027?IPC
-0015E0 904E8B            MOV      DPTR,#pbuff+01H
-0015E3 E4                CLR      A
-0015E4 75F002            MOV      B,#02H
-0015E7 12040E            LCALL    ?C?IILDX
-0015EA 904E8A            MOV      DPTR,#pbuff
-0015ED E0                MOVX     A,@DPTR
-0015EE FB                MOV      R3,A
-0015EF A3                INC      DPTR
-0015F0 E0                MOVX     A,@DPTR
-0015F1 FA                MOV      R2,A
-0015F2 A3                INC      DPTR
-0015F3 E0                MOVX     A,@DPTR
-0015F4 F9                MOV      R1,A
-0015F5 1203B6            LCALL    ?C?CLDPTR
-0015F8 FF                MOV      R7,A
-0015F9 904E04            MOV      DPTR,#ipcCb
-0015FC E0                MOVX     A,@DPTR
-0015FD A3                INC      DPTR
-0015FE E0                MOVX     A,@DPTR
-0015FF FA                MOV      R2,A
-001600 A3                INC      DPTR
-001601 E0                MOVX     A,@DPTR
-001602 F582              MOV      DPL,A
-001604 8A83              MOV      DPH,R2
-001606 120568            LCALL    ?C?ICALL2
-001609 8002              SJMP     ?C0029?IPC
-00160B         ?C0027?IPC:
-00160B 80FE              SJMP     ?C0027?IPC
-00160D         IPC_TIMER:
-00160D         ?C0029?IPC:
-00160D 904BA5            MOV      DPTR,#bttimer
-001610 E0                MOVX     A,@DPTR
-001611 FE                MOV      R6,A
-001612 A3                INC      DPTR
-001613 E0                MOVX     A,@DPTR
-001614 FF                MOV      R7,A
-001615 904C5E            MOV      DPTR,#c51timer
-001618 E0                MOVX     A,@DPTR
-001619 6E                XRL      A,R6
-00161A 7003              JNZ      ?C0039?IPC
-00161C A3                INC      DPTR
-00161D E0                MOVX     A,@DPTR
-00161E 6F                XRL      A,R7
-00161F         ?C0039?IPC:
-00161F 6022              JZ       ?C0033?IPC
-001621 904E0A            MOV      DPTR,#ipcCb+06H
-001624 E0                MOVX     A,@DPTR
-001625 FB                MOV      R3,A
-001626 A3                INC      DPTR
-001627 E0                MOVX     A,@DPTR
-001628 FA                MOV      R2,A
-001629 A3                INC      DPTR
-00162A E0                MOVX     A,@DPTR
-00162B F9                MOV      R1,A
-00162C 4A                ORL      A,R2
-00162D 6037              JZ       ?C0032?IPC
-00162F         ?C0031?IPC:
-00162F 120564            LCALL    ?C?ICALL
-001632 904BA5            MOV      DPTR,#bttimer
-001635 E0                MOVX     A,@DPTR
-001636 FF                MOV      R7,A
-001637 A3                INC      DPTR
-001638 E0                MOVX     A,@DPTR
-001639 904C5E            MOV      DPTR,#c51timer
-00163C CF                XCH      A,R7
-00163D F0                MOVX     @DPTR,A
-00163E A3                INC      DPTR
-00163F EF                MOV      A,R7
-001640 F0                MOVX     @DPTR,A
-001641 80CA              SJMP     ?C0029?IPC
-001643         ?C0033?IPC:
-001643 904C8D            MOV      DPTR,#btstimer
-001646 E0                MOVX     A,@DPTR
-001647 FF                MOV      R7,A
-001648 A3                INC      DPTR
-001649 E0                MOVX     A,@DPTR
-00164A 6F                XRL      A,R7
-00164B 6019              JZ       ?C0032?IPC
-00164D 904E0D            MOV      DPTR,#ipcCb+09H
-001650 E0                MOVX     A,@DPTR
-001651 FB                MOV      R3,A
-001652 A3                INC      DPTR
-001653 E0                MOVX     A,@DPTR
-001654 FA                MOV      R2,A
-001655 A3                INC      DPTR
-001656 E0                MOVX     A,@DPTR
-001657 F9                MOV      R1,A
-001658 4A                ORL      A,R2
-001659 600B              JZ       ?C0032?IPC
-00165B         ?C0035?IPC:
-00165B 120564            LCALL    ?C?ICALL
-00165E 904C8D            MOV      DPTR,#btstimer
-001661 E0                MOVX     A,@DPTR
-001662 A3                INC      DPTR
-001663 F0                MOVX     @DPTR,A
-001664 80DD              SJMP     ?C0033?IPC
-001666         ?C0032?IPC:
-001666 22                RET      
------ FUNCTION IPC_DealSingleStep (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);
+0013E1 D206              SETB    ?_GPIO_SetOutput?BIT
+0013E3 7F10              MOV     R7,#010H
+0013E5 71FD              ACALL   _GPIO_SetOutput
+    8: 	GPIO_SetOutput(BT_LED_GPIO,LED_OFF);
+0013E7 D206              SETB    ?_GPIO_SetOutput?BIT
+0013E9 7F0F              MOV     R7,#0FH
+0013EB 71FD              ACALL   _GPIO_SetOutput
+    9: 	GPIO_SetOutput(BT2_LED_GPIO,LED_OFF);	
+0013ED D206              SETB    ?_GPIO_SetOutput?BIT
+0013EF 7FFF              MOV     R7,#0FFH
+0013F1 71FD              ACALL   _GPIO_SetOutput
+   10: 	GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
+0013F3 D206              SETB    ?_GPIO_SetOutput?BIT
+0013F5 7FFF              MOV     R7,#0FFH
+0013F7 71FD              ACALL   _GPIO_SetOutput
+   11: //	GPIO_SetOutput(G24_LED_GPIO,LED_OFF);
+0013F9 D206              SETB    ?_GPIO_SetOutput?BIT
+0013FB 7F1D              MOV     R7,#01DH
+;----                  JMP     _GPIO_SetOutput
+   12: }
+----- FUNCTION LED_all_shutdown (END) -------
 
 
------ FUNCTION LED_handle (BEGIN) -----
+----- FUNCTION _GPIO_SetOutput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+0013FD AC07              MOV     R4,AR7
+0013FF EC                MOV     A,R4
+001400 F4                CPL     A
+001401 6015              JZ      ?C0017?GPIO
+001403         ?C0016?GPIO:
+001403 AF04              MOV     R7,AR4
+001405 D204              SETB    ?_GPIO_Setoe?BIT
+001407 91D2              ACALL   _GPIO_Setoe
+001409 AF04              MOV     R7,AR4
+00140B A206              MOV     C,st
+00140D 9201              MOV     ?_GPIO_Setout?BIT,C
+00140F 1207C8            LCALL   _GPIO_Setout
+001412 AF04              MOV     R7,AR4
+001414 C202              CLR     ?_GPIO_SetPu?BIT
+001416 91A3              ACALL   _GPIO_SetPu
+001418         ?C0017?GPIO:
+001418 22                RET     
+----- FUNCTION _GPIO_SetOutput (END) -------
+
+
+----- FUNCTION IPC_WaitLpm (BEGIN) -----
+001419 E4                CLR     A
+00141A 900B7F            MOV     DPTR,#lpm_flag
+00141D F0                MOVX    @DPTR,A
+00141E 900B7E            MOV     DPTR,#current_task
+001421 F0                MOVX    @DPTR,A
+001422 7F01              MOV     R7,#01H
+001424 020A72            LJMP    _Delay1ms
+----- FUNCTION IPC_WaitLpm (END) -------
+
+
+----- FUNCTION LED_device_poweron (BEGIN) -----
  FILE: 'led.c'
-   52: void LED_handle()
-   53: {
-   54: 	if (power_on_flag != 2)
-   55: 		return;
-001667 904DE4            MOV      DPTR,#power_on_flag
-00166A E0                MOVX     A,@DPTR
-00166B 6402              XRL      A,#02H
-00166D 6002              JZ       $ + 4H
-00166F E16C              AJMP     ?C0017?LED
-   56: 
-   57: 	if(!g_variable.pairing_timeout && !g_variable.pairing_g24_timeout)
-001671 904CE9            MOV      DPTR,#g_variable+02AH
-001674 E0                MOVX     A,@DPTR
-001675 6002              JZ       $ + 4H
-001677 E165              AJMP     ?C0018?LED
-001679 904CEE            MOV      DPTR,#g_variable+02FH
-00167C E0                MOVX     A,@DPTR
-00167D 6002              JZ       $ + 4H
-00167F E165              AJMP     ?C0018?LED
-   58: 	{
-   59: 		//low battery LED process
-   60: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
-001681 904CD5            MOV      DPTR,#g_variable+016H
-001684 E0                MOVX     A,@DPTR
-001685 6402              XRL      A,#02H
-001687 7004              JNZ      ?C0019?LED
-   61: 		{
-   62: 			System_long_sleep();
-001689 F16D              ACALL    System_long_sleep
-   63: 		}
-00168B 8030              SJMP     ?C0020?LED
-00168D         ?C0019?LED:
-   64: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
-00168D 904CD5            MOV      DPTR,#g_variable+016H
-001690 E0                MOVX     A,@DPTR
-001691 6401              XRL      A,#01H
-001693 7014              JNZ      ?C0021?LED
-   65: 		{
-   66: 			if (g_variable.battery_low_led_flash_flag == 0)
-001695 904CF7            MOV      DPTR,#g_variable+038H
-001698 E0                MOVX     A,@DPTR
-001699 7022              JNZ      ?C0020?LED
-   67: 			{
-   68: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
-00169B 904CE2            MOV      DPTR,#g_variable+023H
-00169E 7418              MOV      A,#018H
-0016A0 F0                MOVX     @DPTR,A
-   69: 				g_variable.battery_low_led_flash_flag = 1;
-0016A1 904CF7            MOV      DPTR,#g_variable+038H
-0016A4 7401              MOV      A,#01H
-0016A6 F0                MOVX     @DPTR,A
-   70: 			}
-   71: 		}
-0016A7 8014              SJMP     ?C0020?LED
-0016A9         ?C0021?LED:
-   72: 		else
-   73: 		{
-   74: 			if (g_variable.battery_low_led_flash_flag == 1)
-0016A9 904CF7            MOV      DPTR,#g_variable+038H
-0016AC E0                MOVX     A,@DPTR
-0016AD 6401              XRL      A,#01H
-0016AF 700C              JNZ      ?C0020?LED
-   75: 			{
-   76: 				g_variable.battery_low_led_flash_flag = 0;
-0016B1 F0                MOVX     @DPTR,A
-   77: 				g_variable.battery_low_led_flash_interval = 0;
-0016B2 904CE2            MOV      DPTR,#g_variable+023H
-0016B5 F0                MOVX     @DPTR,A
-   78: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-0016B6 D201              SETB     ?_GPIO_Setout?BIT
-0016B8 7F1D              MOV      R7,#01DH
-0016BA 120754            LCALL    _GPIO_Setout
-   79: 			}
-   80: 		}
-0016BD         ?C0020?LED:
-   81: 
-   82: 		//capslock  numlock  scrolllock LED process
-   83: 		if (YC_check_is_connected())
-0016BD 1206C2            LCALL    YC_check_is_connected
-0016C0 EF                MOV      A,R7
-0016C1 7002              JNZ      $ + 4H
-0016C3 E157              AJMP     ?C0025?LED
-   84: 		{
-   85: 			if(m_caps_num_lock != m_caps_num_lock_last)
-0016C5 904DD9            MOV      DPTR,#m_caps_num_lock_last
-0016C8 E0                MOVX     A,@DPTR
-0016C9 FF                MOV      R7,A
-0016CA 904CB7            MOV      DPTR,#m_caps_num_lock
-0016CD E0                MOVX     A,@DPTR
-0016CE 6F                XRL      A,R7
-0016CF 7002              JNZ      $ + 4H
-0016D1 E16C              AJMP     ?C0017?LED
-   86: 			{
-   87: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
-0016D3 E0                MOVX     A,@DPTR
-0016D4 30E00F            JNB      ACC.0,?C0027?LED
-   88: 				{
-   89: 					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-0016D7 904CE6            MOV      DPTR,#g_variable+027H
-0016DA 743C              MOV      A,#03CH
-0016DC F0                MOVX     @DPTR,A
-   90: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_ON);
-0016DD C201              CLR      ?_GPIO_Setout?BIT
-0016DF 7F10              MOV      R7,#010H
-0016E1 120754            LCALL    _GPIO_Setout
-   91: 				}
-0016E4 800C              SJMP     ?C0028?LED
-0016E6         ?C0027?LED:
-   92: 				else
-   93: 				{
-   94: 					GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-0016E6 D201              SETB     ?_GPIO_Setout?BIT
-0016E8 7F10              MOV      R7,#010H
-0016EA 120754            LCALL    _GPIO_Setout
-   95: 					g_variable.sys_numlockled_on_timer = 0;
-0016ED E4                CLR      A
-0016EE 904CE6            MOV      DPTR,#g_variable+027H
-0016F1 F0                MOVX     @DPTR,A
-   96: 				}
-0016F2         ?C0028?LED:
-   97: 				
-   98: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
-0016F2 904CB7            MOV      DPTR,#m_caps_num_lock
-0016F5 E0                MOVX     A,@DPTR
-0016F6 30E10F            JNB      ACC.1,?C0029?LED
-   99: 				{
-  100: 					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-0016F9 904CE7            MOV      DPTR,#g_variable+028H
-0016FC 743C              MOV      A,#03CH
-0016FE F0                MOVX     @DPTR,A
-  101: 					GPIO_Setout(CAPS_LED_GPIO, LED_ON);
-0016FF C201              CLR      ?_GPIO_Setout?BIT
-001701 7F0F              MOV      R7,#0FH
-001703 120754            LCALL    _GPIO_Setout
-  102: 				}
-001706 800C              SJMP     ?C0030?LED
-001708         ?C0029?LED:
-  103: 				else 
-  104: 				{
-  105: 					GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-001708 D201              SETB     ?_GPIO_Setout?BIT
-00170A 7F0F              MOV      R7,#0FH
-00170C 120754            LCALL    _GPIO_Setout
-  106: 					g_variable.sys_capslockled_on_timer = 0;
-00170F E4                CLR      A
-001710 904CE7            MOV      DPTR,#g_variable+028H
-001713 F0                MOVX     @DPTR,A
-  107: 				}	
-001714         ?C0030?LED:
-  108: 
-  109: 				
-  110: 				if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
-001714 904CB7            MOV      DPTR,#m_caps_num_lock
-001717 E0                MOVX     A,@DPTR
-001718 30E21B            JNB      ACC.2,?C0031?LED
-  111: 				{
-  112: 					g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
-00171B 904CE8            MOV      DPTR,#g_variable+029H
-00171E 743C              MOV      A,#03CH
-001720 F0                MOVX     @DPTR,A
-  113: 					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
-001721 904CE5            MOV      DPTR,#g_variable+026H
-001724 E0                MOVX     A,@DPTR
-001725 7027              JNZ      ?C0033?LED
-001727 904CE2            MOV      DPTR,#g_variable+023H
-00172A E0                MOVX     A,@DPTR
-00172B 7021              JNZ      ?C0033?LED
-  114: 						GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
-00172D C201              CLR      ?_GPIO_Setout?BIT
-00172F 7F1D              MOV      R7,#01DH
-001731 120754            LCALL    _GPIO_Setout
-  115: 				}
-001734 8018              SJMP     ?C0033?LED
-001736         ?C0031?LED:
-  116: 				else 
-  117: 				{
-  118: 					if(!g_variable.powerOn_timer && !g_variable.battery_low_led_flash_interval)
-001736 904CE5            MOV      DPTR,#g_variable+026H
-001739 E0                MOVX     A,@DPTR
-00173A 700D              JNZ      ?C0034?LED
-00173C 904CE2            MOV      DPTR,#g_variable+023H
-00173F E0                MOVX     A,@DPTR
-001740 7007              JNZ      ?C0034?LED
-  119: 						GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-001742 D201              SETB     ?_GPIO_Setout?BIT
-001744 7F1D              MOV      R7,#01DH
-001746 120754            LCALL    _GPIO_Setout
-001749         ?C0034?LED:
-  120: 					g_variable.sys_scrolllockled_on_timer = 0;
-001749 E4                CLR      A
-00174A 904CE8            MOV      DPTR,#g_variable+029H
-00174D F0                MOVX     @DPTR,A
-  121: 				}
-00174E         ?C0033?LED:
-  122: 					
-  123: 				m_caps_num_lock_last = m_caps_num_lock;
-00174E 904CB7            MOV      DPTR,#m_caps_num_lock
-001751 E0                MOVX     A,@DPTR
-001752 904DD9            MOV      DPTR,#m_caps_num_lock_last
-001755 F0                MOVX     @DPTR,A
-  124: 			}
-  125: 		}
-001756 22                RET      
-001757         ?C0025?LED:
-  126: 		else
-  127: 		{
-  128: 			GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-001757 D201              SETB     ?_GPIO_Setout?BIT
-001759 7F10              MOV      R7,#010H
-00175B 120754            LCALL    _GPIO_Setout
-  129: 			GPIO_Setout(CAPS_LED_GPIO, LED_OFF);
-00175E D201              SETB     ?_GPIO_Setout?BIT
-001760 7F0F              MOV      R7,#0FH
-001762 020754            LJMP     _GPIO_Setout
-  130: 		}
-  131: 	}
-001765         ?C0018?LED:
-  132: 	else
-  133: 	{
-  134: 		GPIO_Setout(NUM_LOCK_LED_GPIO, LED_OFF);
-001765 D201              SETB     ?_GPIO_Setout?BIT
-001767 7F10              MOV      R7,#010H
-001769 120754            LCALL    _GPIO_Setout
-  135: 
-  136: 	}
-  137: 
-  138: }
-00176C         ?C0017?LED:
-00176C 22                RET      
------ FUNCTION LED_handle (END) -------
+   15: void LED_device_poweron()
+   16: {
+   17: 	if(g_variable.current_device_num == 1)
+   18: 		GPIO_Setout(BT_LED_GPIO,LED_ON);
+001427 904CC3            MOV     DPTR,#g_variable+04H
+00142A E0                MOVX    A,@DPTR
+00142B B40107            CJNE    A,#01H,?C0002?LED
+   19: 	else if(g_variable.current_device_num == 2)
+00142E C201              CLR     ?_GPIO_Setout?BIT
+001430 7FFF              MOV     R7,#0FFH
+001432 0207C8            LJMP    _GPIO_Setout
+001435         ?C0002?LED:
+   20: 		GPIO_Setout(BT2_LED_GPIO,LED_ON);
+001435 904CC3            MOV     DPTR,#g_variable+04H
+001438 E0                MOVX    A,@DPTR
+001439 B40207            CJNE    A,#02H,?C0004?LED
+   21: 	else if(g_variable.current_device_num == 3)
+00143C C201              CLR     ?_GPIO_Setout?BIT
+00143E 7FFF              MOV     R7,#0FFH
+001440 0207C8            LJMP    _GPIO_Setout
+001443         ?C0004?LED:
+   22: 	{	
+001443 904CC3            MOV     DPTR,#g_variable+04H
+001446 E0                MOVX    A,@DPTR
+001447 B4030C            CJNE    A,#03H,?C0006?LED
+   23: 		GPIO_SetOutput(BT_LED_GPIO,LED_ON);
+   24: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_ON);
+00144A C206              CLR     ?_GPIO_SetOutput?BIT
+00144C 7FFF              MOV     R7,#0FFH
+00144E 71FD              ACALL   _GPIO_SetOutput
+   25: 	}
+001450 C206              CLR     ?_GPIO_SetOutput?BIT
+001452 7F1D              MOV     R7,#01DH
+001454 80A7              SJMP    _GPIO_SetOutput
+   26: 	else
+001456         ?C0006?LED:
+   27: 	{
+   28: 		GPIO_Setout(BT2_LED_GPIO,LED_ON);
+001456 C201              CLR     ?_GPIO_Setout?BIT
+001458 7FFF              MOV     R7,#0FFH
+00145A 1207C8            LCALL   _GPIO_Setout
+   29: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_ON);
+00145D C206              CLR     ?_GPIO_SetOutput?BIT
+00145F 7F1D              MOV     R7,#01DH
+001461 809A              SJMP    _GPIO_SetOutput
+   30: 	}
+----- FUNCTION LED_device_poweron (END) -------
 
 
------ FUNCTION System_long_sleep (BEGIN) -----
+----- FUNCTION System_Hardware_init (BEGIN) -----
  FILE: 'sys.c'
-   63: void System_long_sleep()
-   64: { 
-   65: 	LED_all_shutdown();
-   66: 	m_24g_pairing_sm = 0xff;
-00176D 1207DB            LCALL    LED_all_shutdown
-   67: 	m_24g_enter_hibernate[0]	= 0xff;
-001770 904BEF            MOV      DPTR,#m_24g_pairing_sm
-001773 74FF              MOV      A,#0FFH
-001775 F0                MOVX     @DPTR,A
-   68: 	m_24g_enter_hibernate[1]	= 0xff;
-001776 904D3D            MOV      DPTR,#m_24g_enter_hibernate
-001779 F0                MOVX     @DPTR,A
-   69: 	m_24g_enter_hibernate[2]	= 0xff;
-00177A A3                INC      DPTR
-00177B F0                MOVX     @DPTR,A
-   70: 	m_24g_enter_hibernate[3]	= 0xff;
-00177C A3                INC      DPTR
-00177D F0                MOVX     @DPTR,A
-   71: }
-00177E A3                INC      DPTR
-00177F F0                MOVX     @DPTR,A
-   72: 
-001780 22                RET      
------ FUNCTION System_long_sleep (END) -------
+   40: static void System_Hardware_init()
+   41: {
+   42: 	KS_Initialize();
+   43: 	LED_all_shutdown();
+001463 917A              ACALL   KS_Initialize
+   44: }
+001465 61E1              AJMP    LED_all_shutdown
+----- FUNCTION System_Hardware_init (END) -------
 
 
------ FUNCTION YC_connect_timeout_500ms (BEGIN) -----
+----- FUNCTION kb_cb_init (BEGIN) -----
  FILE: 'sys.c'
-  228: void YC_connect_timeout_500ms()
-  229: {
-  230: 	
-  231: //system long sleep timer
-  232: 	if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
-001781 904CC5            MOV      DPTR,#g_variable+06H
-001784 E0                MOVX     A,@DPTR
-001785 6403              XRL      A,#03H
-001787 7011              JNZ      ?C0042?SYS
-  233: 	{
-  234: 		if (g_variable.sleepTimer >= STANDBY_TIMER_30MIN)	
-001789 C3                CLR      C
-00178A 904CE4            MOV      DPTR,#g_variable+025H
-00178D E0                MOVX     A,@DPTR
-00178E 9410              SUBB     A,#010H
-001790 904CE3            MOV      DPTR,#g_variable+024H
-001793 E0                MOVX     A,@DPTR
-001794 940E              SUBB     A,#0EH
-001796 402C              JC       ?C0049?SYS
-  235: 			System_long_sleep();	// 2.4g long sleep  lpm will wakeup every 3min15s
-001798 80D3              SJMP     System_long_sleep
-  236: 	}
-00179A         ?C0042?SYS:
-  237: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
-00179A 904CC5            MOV      DPTR,#g_variable+06H
-00179D E0                MOVX     A,@DPTR
-00179E 6401              XRL      A,#01H
-0017A0 7011              JNZ      ?C0045?SYS
-  238: 	{
-  239: 		if (g_variable.sleepTimer >= BT_PAIRING_TIME_OUT_1MIN)
-0017A2 C3                CLR      C
-0017A3 904CE4            MOV      DPTR,#g_variable+025H
-0017A6 E0                MOVX     A,@DPTR
-0017A7 9478              SUBB     A,#078H
-0017A9 904CE3            MOV      DPTR,#g_variable+024H
-0017AC E0                MOVX     A,@DPTR
-0017AD 9400              SUBB     A,#00H
-0017AF 4013              JC       ?C0049?SYS
-  240: 		{
-  241: 			System_long_sleep();
-0017B1 80BA              SJMP     System_long_sleep
-  242: 		}
-  243: 	}
-0017B3         ?C0045?SYS:
-  244: 	else
-  245: 	{
-  246: 		if (g_variable.sleepTimer >= RECONNECT_TIMER_10S)
-0017B3 C3                CLR      C
-0017B4 904CE4            MOV      DPTR,#g_variable+025H
-0017B7 E0                MOVX     A,@DPTR
-0017B8 9414              SUBB     A,#014H
-0017BA 904CE3            MOV      DPTR,#g_variable+024H
-0017BD E0                MOVX     A,@DPTR
-0017BE 9400              SUBB     A,#00H
-0017C0 4002              JC       ?C0049?SYS
-  247: 		{
-  248: 			System_long_sleep();
-0017C2 F16D              ACALL    System_long_sleep
-  249: 		}
-  250: 	}
-  251: }
-0017C4         ?C0049?SYS:
-0017C4 22                RET      
------ FUNCTION YC_connect_timeout_500ms (END) -------
+  437: static void kb_cb_init()
+  438: {
+  439: 	IPC_Initialize(&cb);
+  440: }
+001467 7B01              MOV     R3,#01H
+001469 7A4D              MOV     R2,#HIGH cb
+00146B 79F2              MOV     R1,#LOW cb
+;----                  JMP     _IPC_Initialize
+----- FUNCTION kb_cb_init (END) -------
 
 
------ FUNCTION main (BEGIN) -----
- FILE: 'ram.c'
-    5: void main()
-    6: {
-    7: 	YC_System_Main();
-    8: }
-0017C5 61CB              AJMP     YC_System_Main
------ FUNCTION main (END) -------
+----- FUNCTION _IPC_Initialize (BEGIN) -----
+;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
+00146D 7804              MOV     R0,#LOW ipcCb
+00146F 7C4E              MOV     R4,#HIGH ipcCb
+001471 7D01              MOV     R5,#01H
+001473 7E00              MOV     R6,#00H
+001475 7F12              MOV     R7,#012H
+001477 020390            LJMP    ?C?COPY
+----- FUNCTION _IPC_Initialize (END) -------
 
 
------ FUNCTION IPC_AbandonLpm (BEGIN) -----
-0017C7 900B7F            MOV      DPTR,#lpm_flag
-0017CA 7401              MOV      A,#01H
-0017CC F0                MOVX     @DPTR,A
-0017CD E4                CLR      A
-0017CE 900B7E            MOV      DPTR,#current_task
-0017D1 F0                MOVX     @DPTR,A
-0017D2 22                RET      
------ FUNCTION IPC_AbandonLpm (END) -------
+----- FUNCTION KS_Initialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  207: void KS_Initialize()
+  208: {
+  209: 	REG_GPIO_SELECT(0) = 0;
+  210: 	REG_GPIO_SELECT(1) = 0;
+00147A 908080            MOV     DPTR,#08080H
+00147D E4                CLR     A
+00147E F0                MOVX    @DPTR,A
+  211: 	REG_GPIO_SELECT(2) = 0;
+00147F A3                INC     DPTR
+001480 F0                MOVX    @DPTR,A
+  212: 	ksRawInitialize();
+001481 A3                INC     DPTR
+001482 F0                MOVX    @DPTR,A
+  213: 	ksColInitialize();
+001483 B155              ACALL   ksRawInitialize
+;----                  JMP     ksColInitialize
+  214: }
+----- FUNCTION KS_Initialize (END) -------
 
 
------ FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
-0017D3 904B9C            MOV      DPTR,#ipcTxWritePtr
-0017D6 E0                MOVX     A,@DPTR
-0017D7 FE                MOV      R6,A
-0017D8 A3                INC      DPTR
-0017D9 E0                MOVX     A,@DPTR
-0017DA FF                MOV      R7,A
-0017DB 904B9A            MOV      DPTR,#ipcTxReadPtr
-0017DE E0                MOVX     A,@DPTR
-0017DF B50607            CJNE     A,AR6,?C0021?IPC
-0017E2 A3                INC      DPTR
-0017E3 E0                MOVX     A,@DPTR
-0017E4 B50702            CJNE     A,AR7,?C0021?IPC
-0017E7 D3                SETB     C
-0017E8 22                RET      
-0017E9         ?C0021?IPC:
-0017E9 C3                CLR      C
-0017EA 22                RET      
------ FUNCTION IPC_IsTxBuffEmpty (END) -------
+----- FUNCTION ksColInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  199: static void ksColInitialize()
+  200: {
+  201: 	byte i = 0;
+  202: 	for (i=0; col[i]!=0; i++) {
+001485 E4                CLR     A
+001486 904E9F            MOV     DPTR,#i
+001489 F0                MOVX    @DPTR,A
+  203: 		GPIO_SetInput(col[i], 0);
+00148A F0                MOVX    @DPTR,A
+00148B         ?C0032?KEYSCAN:
+00148B 904E9F            MOV     DPTR,#i
+00148E E0                MOVX    A,@DPTR
+00148F 90060C            MOV     DPTR,#col
+001492 93                MOVC    A,@A+DPTR
+001493 FF                MOV     R7,A
+001494 600C              JZ      ?C0035?KEYSCAN
+  204: 	}
+001496 C205              CLR     ?_GPIO_SetInput?BIT
+001498 91B4              ACALL   _GPIO_SetInput
+  205: }
+00149A 904E9F            MOV     DPTR,#i
+00149D E0                MOVX    A,@DPTR
+00149E 04                INC     A
+00149F F0                MOVX    @DPTR,A
+0014A0 80E9              SJMP    ?C0032?KEYSCAN
+  206: 
+0014A2         ?C0035?KEYSCAN:
+0014A2 22                RET     
+----- FUNCTION ksColInitialize (END) -------
 
 
------ FUNCTION kb_24g_get_led_status (BEGIN) -----
+----- FUNCTION _GPIO_SetPu (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+0014A3 EF                MOV     A,R7
+0014A4 F4                CPL     A
+0014A5 600C              JZ      ?C0009?GPIO
+0014A7         ?C0008?GPIO:
+0014A7 7B01              MOV     R3,#01H
+0014A9 7A80              MOV     R2,#080H
+0014AB 7978              MOV     R1,#078H
+0014AD A202              MOV     C,bit_val
+0014AF 9200              MOV     ?_gpioSetBit?BIT,C
+0014B1 91F4              ACALL   _gpioSetBit
+0014B3         ?C0009?GPIO:
+0014B3 22                RET     
+----- FUNCTION _GPIO_SetPu (END) -------
+
+
+----- FUNCTION _GPIO_SetInput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+0014B4 AC07              MOV     R4,AR7
+0014B6 EC                MOV     A,R4
+0014B7 F4                CPL     A
+0014B8 6017              JZ      ?C0015?GPIO
+0014BA         ?C0014?GPIO:
+0014BA AF04              MOV     R7,AR4
+0014BC A205              MOV     C,st
+0014BE 9203              MOV     ?_GPIO_SetPd?BIT,C
+0014C0 91E3              ACALL   _GPIO_SetPd
+0014C2 AF04              MOV     R7,AR4
+0014C4 A205              MOV     C,st
+0014C6 B3                CPL     C
+0014C7 9202              MOV     ?_GPIO_SetPu?BIT,C
+0014C9 91A3              ACALL   _GPIO_SetPu
+0014CB AF04              MOV     R7,AR4
+0014CD C204              CLR     ?_GPIO_Setoe?BIT
+0014CF 91D2              ACALL   _GPIO_Setoe
+0014D1         ?C0015?GPIO:
+0014D1 22                RET     
+----- FUNCTION _GPIO_SetInput (END) -------
+
+
+----- FUNCTION _GPIO_Setoe (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+0014D2 EF                MOV     A,R7
+0014D3 F4                CPL     A
+0014D4 600C              JZ      ?C0013?GPIO
+0014D6         ?C0012?GPIO:
+0014D6 7B01              MOV     R3,#01H
+0014D8 7A80              MOV     R2,#080H
+0014DA 7970              MOV     R1,#070H
+0014DC A204              MOV     C,bit_val
+0014DE 9200              MOV     ?_gpioSetBit?BIT,C
+0014E0 91F4              ACALL   _gpioSetBit
+0014E2         ?C0013?GPIO:
+0014E2 22                RET     
+----- FUNCTION _GPIO_Setoe (END) -------
+
+
+----- FUNCTION _GPIO_SetPd (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+0014E3 EF                MOV     A,R7
+0014E4 F4                CPL     A
+0014E5 600C              JZ      ?C0011?GPIO
+0014E7         ?C0010?GPIO:
+0014E7 7B01              MOV     R3,#01H
+0014E9 7A80              MOV     R2,#080H
+0014EB 797C              MOV     R1,#07CH
+0014ED A203              MOV     C,bit_val
+0014EF 9200              MOV     ?_gpioSetBit?BIT,C
+0014F1 91F4              ACALL   _gpioSetBit
+0014F3         ?C0011?GPIO:
+0014F3 22                RET     
+----- FUNCTION _GPIO_SetPd (END) -------
+
+
+----- FUNCTION _gpioSetBit (BEGIN) -----
+0014F4 904E93            MOV     DPTR,#reg_base
+0014F7 EB                MOV     A,R3
+0014F8 F0                MOVX    @DPTR,A
+0014F9 A3                INC     DPTR
+0014FA EA                MOV     A,R2
+0014FB F0                MOVX    @DPTR,A
+0014FC A3                INC     DPTR
+0014FD E9                MOV     A,R1
+0014FE F0                MOVX    @DPTR,A
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+;---- Variable 'queue' assigned to Register 'R6' ----
+0014FF E4                CLR     A
+001500 FE                MOV     R6,A
+;---- Variable 'group' assigned to Register 'R5' ----
+001501 FD                MOV     R5,A
+001502 EF                MOV     A,R7
+001503 5407              ANL     A,#07H
+001505 FE                MOV     R6,A
+001506 EF                MOV     A,R7
+001507 13                RRC     A
+001508 13                RRC     A
+001509 13                RRC     A
+00150A 5403              ANL     A,#03H
+00150C FD                MOV     R5,A
+00150D 300022            JNB     bit_val,?C0001?GPIO
+001510 904E93            MOV     DPTR,#reg_base
+001513 E0                MOVX    A,@DPTR
+001514 FB                MOV     R3,A
+001515 A3                INC     DPTR
+001516 E0                MOVX    A,@DPTR
+001517 FA                MOV     R2,A
+001518 A3                INC     DPTR
+001519 E0                MOVX    A,@DPTR
+00151A 2D                ADD     A,R5
+00151B F9                MOV     R1,A
+00151C E4                CLR     A
+00151D 3A                ADDC    A,R2
+00151E FA                MOV     R2,A
+00151F 1203B6            LCALL   ?C?CLDPTR
+001522 FF                MOV     R7,A
+001523 7401              MOV     A,#01H
+001525 A806              MOV     R0,AR6
+001527 08                INC     R0
+001528 8002              SJMP    ?C0031?GPIO
+00152A         ?C0030?GPIO:
+00152A C3                CLR     C
+00152B 33                RLC     A
+00152C         ?C0031?GPIO:
+00152C D8FC              DJNZ    R0,?C0030?GPIO
+00152E 4F                ORL     A,R7
+00152F 0203FC            LJMP    ?C?CSTPTR
+001532         ?C0001?GPIO:
+001532 904E93            MOV     DPTR,#reg_base
+001535 E0                MOVX    A,@DPTR
+001536 FB                MOV     R3,A
+001537 A3                INC     DPTR
+001538 E0                MOVX    A,@DPTR
+001539 FA                MOV     R2,A
+00153A A3                INC     DPTR
+00153B E0                MOVX    A,@DPTR
+00153C 2D                ADD     A,R5
+00153D F9                MOV     R1,A
+00153E E4                CLR     A
+00153F 3A                ADDC    A,R2
+001540 FA                MOV     R2,A
+001541 1203B6            LCALL   ?C?CLDPTR
+001544 FF                MOV     R7,A
+001545 7401              MOV     A,#01H
+001547 A806              MOV     R0,AR6
+001549 08                INC     R0
+00154A 8002              SJMP    ?C0033?GPIO
+00154C         ?C0032?GPIO:
+00154C C3                CLR     C
+00154D 33                RLC     A
+00154E         ?C0033?GPIO:
+00154E D8FC              DJNZ    R0,?C0032?GPIO
+001550 F4                CPL     A
+001551 5F                ANL     A,R7
+001552 0203FC            LJMP    ?C?CSTPTR
+----- FUNCTION _gpioSetBit (END) -------
+
+
+----- FUNCTION ksRawInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  190: static void ksRawInitialize()
+  191: {
+  192: 	byte i = 0;
+  193: 	
+001555 E4                CLR     A
+001556 904E9E            MOV     DPTR,#i
+001559 F0                MOVX    @DPTR,A
+  194: 	for (i=0; i<8; i++) {
+00155A F0                MOVX    @DPTR,A
+00155B         ?C0028?KEYSCAN:
+00155B 904E9E            MOV     DPTR,#i
+00155E E0                MOVX    A,@DPTR
+00155F FF                MOV     R7,A
+001560 C3                CLR     C
+001561 9408              SUBB    A,#08H
+001563 500C              JNC     ?C0031?KEYSCAN
+  195: 		GPIO_SetInput(i, 0);
+001565 C205              CLR     ?_GPIO_SetInput?BIT
+001567 91B4              ACALL   _GPIO_SetInput
+  196: 	}
+001569 904E9E            MOV     DPTR,#i
+00156C E0                MOVX    A,@DPTR
+00156D 04                INC     A
+00156E F0                MOVX    @DPTR,A
+00156F 80EA              SJMP    ?C0028?KEYSCAN
+  197: }
+001571         ?C0031?KEYSCAN:
+001571 22                RET     
+----- FUNCTION ksRawInitialize (END) -------
+
+
+----- FUNCTION LED_device_poweroff (BEGIN) -----
+ FILE: 'led.c'
+   33: void LED_device_poweroff()
+   34: {
+   35: 	if(g_variable.current_device_num == 1)
+   36: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+001572 904CC3            MOV     DPTR,#g_variable+04H
+001575 E0                MOVX    A,@DPTR
+001576 B40107            CJNE    A,#01H,?C0009?LED
+   37: 	else if(g_variable.current_device_num == 2)
+001579 D201              SETB    ?_GPIO_Setout?BIT
+00157B 7FFF              MOV     R7,#0FFH
+00157D 0207C8            LJMP    _GPIO_Setout
+001580         ?C0009?LED:
+   38: 		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+001580 904CC3            MOV     DPTR,#g_variable+04H
+001583 E0                MOVX    A,@DPTR
+001584 B40207            CJNE    A,#02H,?C0011?LED
+   39: 	else if(g_variable.current_device_num == 3)
+001587 D201              SETB    ?_GPIO_Setout?BIT
+001589 7FFF              MOV     R7,#0FFH
+00158B 0207C8            LJMP    _GPIO_Setout
+00158E         ?C0011?LED:
+   40: 	{	
+00158E 904CC3            MOV     DPTR,#g_variable+04H
+001591 E0                MOVX    A,@DPTR
+001592 B4030D            CJNE    A,#03H,?C0013?LED
+   41: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
+   42: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
+001595 D201              SETB    ?_GPIO_Setout?BIT
+001597 7FFF              MOV     R7,#0FFH
+001599 1207C8            LCALL   _GPIO_Setout
+   43: 	}
+00159C D206              SETB    ?_GPIO_SetOutput?BIT
+00159E 7F1D              MOV     R7,#01DH
+0015A0 61FD              AJMP    _GPIO_SetOutput
+   44: 	else
+0015A2         ?C0013?LED:
+   45: 	{
+   46: 		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
+0015A2 D201              SETB    ?_GPIO_Setout?BIT
+0015A4 7FFF              MOV     R7,#0FFH
+0015A6 1207C8            LCALL   _GPIO_Setout
+   47: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
+0015A9 D206              SETB    ?_GPIO_SetOutput?BIT
+0015AB 7F1D              MOV     R7,#01DH
+0015AD 61FD              AJMP    _GPIO_SetOutput
+   48: 	}
+----- FUNCTION LED_device_poweroff (END) -------
+
+
+----- FUNCTION kb_need_keyscan (BEGIN) -----
+ FILE: 'kb_process.c'
+  192: void kb_need_keyscan()
+  193: {
+  194: 		if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+  195: 		||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+0015AF 904CF4            MOV     DPTR,#g_variable+035H
+0015B2 E0                MOVX    A,@DPTR
+0015B3 FF                MOV     R7,A
+0015B4 6008              JZ      ?C0039?KB_PROCESS
+0015B6 6403              XRL     A,#03H
+0015B8 6004              JZ      ?C0039?KB_PROCESS
+0015BA EF                MOV     A,R7
+0015BB B40502            CJNE    A,#05H,?C0038?KB_PROCESS
+0015BE         ?C0039?KB_PROCESS:
+  196: 		|| (g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+  197: 		)
+  198: 			kb_motion();
+0015BE 8076              SJMP    kb_motion
+0015C0         ?C0038?KB_PROCESS:
+  199: 		else
+  200: 		{
+  201: 			if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+0015C0 904CF4            MOV     DPTR,#g_variable+035H
+0015C3 E0                MOVX    A,@DPTR
+0015C4 B4010F            CJNE    A,#01H,?C0041?KB_PROCESS
+  202: 			{
+  203: 				kb_send_combination_key(g_variable.key_combination_ctrl,0);
+0015C7 A3                INC     DPTR
+0015C8 E0                MOVX    A,@DPTR
+0015C9 FF                MOV     R7,A
+0015CA E4                CLR     A
+0015CB FD                MOV     R5,A
+0015CC 120F6C            LCALL   _kb_send_combination_key
+  204: 				g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+0015CF 904CF4            MOV     DPTR,#g_variable+035H
+0015D2 7402              MOV     A,#02H
+0015D4 F0                MOVX    @DPTR,A
+  205: 			}
+0015D5 22                RET     
+0015D6         ?C0041?KB_PROCESS:
+  206: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+0015D6 904CF4            MOV     DPTR,#g_variable+035H
+0015D9 E0                MOVX    A,@DPTR
+0015DA B4020C            CJNE    A,#02H,?C0043?KB_PROCESS
+  207: 			{	
+  208: 				g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+0015DD 7403              MOV     A,#03H
+0015DF F0                MOVX    @DPTR,A
+  209: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+0015E0 A3                INC     DPTR
+0015E1 E0                MOVX    A,@DPTR
+0015E2 FF                MOV     R7,A
+0015E3 A3                INC     DPTR
+0015E4 E0                MOVX    A,@DPTR
+0015E5 FD                MOV     R5,A
+0015E6 020F6C            LJMP    _kb_send_combination_key
+  210: 			}
+0015E9         ?C0043?KB_PROCESS:
+  211: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+0015E9 904CF4            MOV     DPTR,#g_variable+035H
+0015EC E0                MOVX    A,@DPTR
+0015ED B40428            CJNE    A,#04H,?C0045?KB_PROCESS
+  212: 			{
+  213: 				g_variable.key_combination_keyvalue = 0;
+0015F0 E4                CLR     A
+0015F1 904CF6            MOV     DPTR,#g_variable+037H
+0015F4 F0                MOVX    @DPTR,A
+  214: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+0015F5 904CF5            MOV     DPTR,#g_variable+036H
+0015F8 E0                MOVX    A,@DPTR
+0015F9 FF                MOV     R7,A
+0015FA E4                CLR     A
+0015FB FD                MOV     R5,A
+0015FC 120F6C            LCALL   _kb_send_combination_key
+  215: 				g_variable.key_combination_ctrl = 0;
+0015FF E4                CLR     A
+001600 904CF5            MOV     DPTR,#g_variable+036H
+001603 F0                MOVX    @DPTR,A
+  216: 				if(!g_variable.one_key_press_wait_release_timer)
+001604 904CF8            MOV     DPTR,#g_variable+039H
+001607 E0                MOVX    A,@DPTR
+001608 7007              JNZ     ?C0046?KB_PROCESS
+  217: 					g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+00160A 904CF4            MOV     DPTR,#g_variable+035H
+00160D 7406              MOV     A,#06H
+00160F F0                MOVX    @DPTR,A
+001610 22                RET     
+001611         ?C0046?KB_PROCESS:
+  218: 				else
+  219: 					g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+001611 904CF4            MOV     DPTR,#g_variable+035H
+001614 7405              MOV     A,#05H
+001616 F0                MOVX    @DPTR,A
+  220: 			}
+001617 22                RET     
+001618         ?C0045?KB_PROCESS:
+  221: 			else if(g_variable.key_combination_step == CAMBINATION_KEY_NULL)
+001618 904CF4            MOV     DPTR,#g_variable+035H
+00161B E0                MOVX    A,@DPTR
+00161C B40616            CJNE    A,#06H,?C0050?KB_PROCESS
+  222: 			{
+  223: 				g_variable.key_combination_keyvalue = 0;
+00161F E4                CLR     A
+001620 904CF6            MOV     DPTR,#g_variable+037H
+001623 F0                MOVX    @DPTR,A
+  224: 				g_variable.key_combination_ctrl = 0;
+001624 904CF5            MOV     DPTR,#g_variable+036H
+001627 F0                MOVX    @DPTR,A
+  225: 				kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+001628 A3                INC     DPTR
+001629 E0                MOVX    A,@DPTR
+00162A FD                MOV     R5,A
+00162B E4                CLR     A
+00162C FF                MOV     R7,A
+00162D 120F6C            LCALL   _kb_send_combination_key
+  226: 				g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+001630 E4                CLR     A
+001631 904CF4            MOV     DPTR,#g_variable+035H
+001634 F0                MOVX    @DPTR,A
+  227: 			}
+  228: 		}
+  229: 
+  230: }
+001635         ?C0050?KB_PROCESS:
+001635 22                RET     
+----- FUNCTION kb_need_keyscan (END) -------
+
+
+----- FUNCTION kb_motion (BEGIN) -----
+ FILE: 'kb_process.c'
+  173: static void kb_motion()
+  174: {
+  175: 	tKSEVENT *pEvt = NULL;
+  176: 	
+001636 904E84            MOV     DPTR,#pEvt
+001639 E4                CLR     A
+00163A F0                MOVX    @DPTR,A
+00163B A3                INC     DPTR
+00163C F0                MOVX    @DPTR,A
+00163D A3                INC     DPTR
+00163E F0                MOVX    @DPTR,A
+  177: 	if (!IPC_IsTxBuffEmpty())
+00163F F132              ACALL   IPC_IsTxBuffEmpty
+001641 5026              JNC     ?C0036?KB_PROCESS
+001643         ?C0035?KB_PROCESS:
+  178: 		return;
+  179: 	pEvt = KS_GetCurrentEvt();
+001643 1218EB            LCALL   KS_GetCurrentEvt
+001646 904E84            MOV     DPTR,#pEvt
+001649 EB                MOV     A,R3
+00164A F0                MOVX    @DPTR,A
+00164B A3                INC     DPTR
+00164C EA                MOV     A,R2
+00164D F0                MOVX    @DPTR,A
+00164E A3                INC     DPTR
+00164F E9                MOV     A,R1
+001650 F0                MOVX    @DPTR,A
+  180: 
+  181: 	if (pEvt == NULL)
+001651 4A                ORL     A,R2
+001652 7007              JNZ     ?C0037?KB_PROCESS
+  182: 	{
+  183: 		m_power_on_flag = 1;
+001654 904CB6            MOV     DPTR,#m_power_on_flag
+001657 04                INC     A
+001658 F0                MOVX    @DPTR,A
+  184: 		kb_24g_get_led_status();
+001659 E17E              AJMP    kb_24g_get_led_status
+  185: 		return;
+  186: 	}
+00165B         ?C0037?KB_PROCESS:
+  187: 	kb_motion_keyscan(pEvt);
+00165B 904E84            MOV     DPTR,#pEvt
+00165E E0                MOVX    A,@DPTR
+00165F FB                MOV     R3,A
+001660 A3                INC     DPTR
+001661 E0                MOVX    A,@DPTR
+001662 FA                MOV     R2,A
+001663 A3                INC     DPTR
+001664 E0                MOVX    A,@DPTR
+001665 F9                MOV     R1,A
+001666 120BBF            LCALL   _kb_motion_keyscan
+  188: }
+001669         ?C0036?KB_PROCESS:
+001669 22                RET     
+----- FUNCTION kb_motion (END) -------
+
+
+----- FUNCTION kb_cb_Timer100ms (BEGIN) -----
+ FILE: 'sys.c'
+  338: static void kb_cb_Timer100ms()
+  339: {
+  340: 
+  341: 	if (g_variable.delay_enter_lpm_timer) 
+00166A 904CEA            MOV     DPTR,#g_variable+02BH
+00166D E0                MOVX    A,@DPTR
+00166E 6002              JZ      ?C0068?SYS
+  342: 	{
+  343: 		g_variable.delay_enter_lpm_timer --;
+001670 14                DEC     A
+001671 F0                MOVX    @DPTR,A
+  344: 	}
+001672         ?C0068?SYS:
+  345: 
+  346: 	if(g_variable.recon_delay)
+001672 904CEF            MOV     DPTR,#g_variable+030H
+001675 E0                MOVX    A,@DPTR
+001676 6002              JZ      ?C0069?SYS
+  347: 		g_variable.recon_delay--;
+001678 14                DEC     A
+001679 F0                MOVX    @DPTR,A
+00167A         ?C0069?SYS:
+  348: 
+  349: 
+  350: 	if(g_variable.one_key_press_wait_release_timer)
+00167A 904CF8            MOV     DPTR,#g_variable+039H
+00167D E0                MOVX    A,@DPTR
+00167E 600B              JZ      ?C0070?SYS
+  351: 	{
+  352: 		g_variable.one_key_press_wait_release_timer--;
+001680 14                DEC     A
+001681 F0                MOVX    @DPTR,A
+  353: 		if(!g_variable.one_key_press_wait_release_timer)
+001682 E0                MOVX    A,@DPTR
+001683 7006              JNZ     ?C0070?SYS
+  354: 			g_variable.key_combination_step = CAMBINATION_KEY_NULL;
+001685 904CF4            MOV     DPTR,#g_variable+035H
+001688 7406              MOV     A,#06H
+00168A F0                MOVX    @DPTR,A
+  355: 	}
+00168B         ?C0070?SYS:
+  356: 
+  357: 	if (g_variable.powerOn_timer != 0)
+00168B 904CE5            MOV     DPTR,#g_variable+026H
+00168E E0                MOVX    A,@DPTR
+00168F 600D              JZ      ?C0072?SYS
+  358: 	{			
+  359: 		g_variable.powerOn_timer--;
+001691 14                DEC     A
+001692 F0                MOVX    @DPTR,A
+  360: 		
+  361: 		if (!g_variable.powerOn_timer)
+001693 E0                MOVX    A,@DPTR
+001694 7004              JNZ     ?C0073?SYS
+  362: 		{
+  363: 			LED_device_poweroff();
+001696 B172              ACALL   LED_device_poweroff
+  364: 		}
+001698 803F              SJMP    ?C0075?SYS
+00169A         ?C0073?SYS:
+  365: 		else 
+  366: 			LED_device_poweron();
+00169A 9127              ACALL   LED_device_poweron
+  367: 	}
+00169C 803B              SJMP    ?C0075?SYS
+00169E         ?C0072?SYS:
+  368: 	else
+  369: 	if (g_variable.pairing_g24_timeout == 0) //bt  pairing
+00169E 904CEE            MOV     DPTR,#g_variable+02FH
+0016A1 E0                MOVX    A,@DPTR
+0016A2 7035              JNZ     ?C0075?SYS
+  370: 	{
+  371: 		if(g_variable.battery_low_led_flash_interval)
+0016A4 904CE2            MOV     DPTR,#g_variable+023H
+0016A7 E0                MOVX    A,@DPTR
+0016A8 602F              JZ      ?C0075?SYS
+  372: 		{
+  373: 			g_variable.battery_low_led_flash_interval--;
+0016AA 14                DEC     A
+0016AB F0                MOVX    @DPTR,A
+  374: 			if(g_variable.battery_low_led_flash_interval < 8)
+0016AC E0                MOVX    A,@DPTR
+0016AD FF                MOV     R7,A
+0016AE C3                CLR     C
+0016AF 9408              SUBB    A,#08H
+0016B1 5016              JNC     ?C0078?SYS
+  375: 			{
+  376: 				if(g_variable.battery_low_led_flash_interval & 0x02)
+0016B3 EF                MOV     A,R7
+0016B4 30E109            JNB     ACC.1,?C0079?SYS
+  377: 				{
+  378: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
+0016B7 C201              CLR     ?_GPIO_Setout?BIT
+0016B9 7F1D              MOV     R7,#01DH
+0016BB 1207C8            LCALL   _GPIO_Setout
+  379: 				}
+0016BE 8010              SJMP    ?C0081?SYS
+0016C0         ?C0079?SYS:
+  380: 				else
+  381: 				{
+  382: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
+0016C0 D201              SETB    ?_GPIO_Setout?BIT
+0016C2 7F1D              MOV     R7,#01DH
+0016C4 1207C8            LCALL   _GPIO_Setout
+  383: 				}	
+  384: 			}
+0016C7 8007              SJMP    ?C0081?SYS
+0016C9         ?C0078?SYS:
+  385: 			else
+  386: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
+0016C9 D201              SETB    ?_GPIO_Setout?BIT
+0016CB 7F1D              MOV     R7,#01DH
+0016CD 1207C8            LCALL   _GPIO_Setout
+0016D0         ?C0081?SYS:
+  387: 			if(!g_variable.battery_low_led_flash_interval)
+0016D0 904CE2            MOV     DPTR,#g_variable+023H
+0016D3 E0                MOVX    A,@DPTR
+0016D4 7003              JNZ     ?C0075?SYS
+  388: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+0016D6 7418              MOV     A,#018H
+0016D8 F0                MOVX    @DPTR,A
+  389: 		}
+  390: 	}
+0016D9         ?C0075?SYS:
+  391: 	
+  392: // The dongle must receive data within 200ms, otherwise it will be forced to lift
+  393: 	if(!long_press_flag)
+0016D9 904DD5            MOV     DPTR,#long_press_flag
+0016DC E0                MOVX    A,@DPTR
+0016DD 702D              JNZ     ?C0083?SYS
+  394: 	{
+  395: 		if (repeat_send_24g == 1)
+0016DF 904DD6            MOV     DPTR,#repeat_send_24g
+0016E2 E0                MOVX    A,@DPTR
+0016E3 6401              XRL     A,#01H
+0016E5 7025              JNZ     ?C0083?SYS
+  396: 		{
+  397: 			repeat_send_24g = 0;
+0016E7 F0                MOVX    @DPTR,A
+  398: 
+  399: 			 if (multikey[0] != 0)
+0016E8 904DE8            MOV     DPTR,#multikey
+0016EB E0                MOVX    A,@DPTR
+0016EC 600D              JZ      ?C0085?SYS
+  400: 			{
+  401: 				IPC_TxHidData(multikey, 3);
+0016EE 7B01              MOV     R3,#01H
+0016F0 7A4D              MOV     R2,#HIGH multikey
+0016F2 79E8              MOV     R1,#LOW multikey
+0016F4 7D03              MOV     R5,#03H
+0016F6 120FA4            LCALL   _IPC_TxHidData
+  402: 			}
+0016F9 8011              SJMP    ?C0083?SYS
+0016FB         ?C0085?SYS:
+  403: 			else if (hidBuff[0] != 0)
+0016FB 904800            MOV     DPTR,#hidBuff
+0016FE E0                MOVX    A,@DPTR
+0016FF 600B              JZ      ?C0083?SYS
+  404: 			{
+  405: 
+  406: 				IPC_TxHidData(hidBuff,9);
+001701 7B01              MOV     R3,#01H
+001703 7A48              MOV     R2,#HIGH hidBuff
+001705 7900              MOV     R1,#LOW hidBuff
+001707 7D09              MOV     R5,#09H
+001709 120FA4            LCALL   _IPC_TxHidData
+  407: 			}
+  408: 		}
+  409: 	}
+00170C         ?C0083?SYS:
+  410: 
+  411: 	if (delayChgInvTimer != 0){
+00170C 904DDF            MOV     DPTR,#delayChgInvTimer
+00170F E0                MOVX    A,@DPTR
+001710 6011              JZ      ?C0091?SYS
+  412: 		delayChgInvTimer--;
+001712 E0                MOVX    A,@DPTR
+001713 14                DEC     A
+001714 F0                MOVX    @DPTR,A
+  413: 		if (delayChgInvTimer == 0)
+001715 E0                MOVX    A,@DPTR
+001716 700B              JNZ     ?C0091?SYS
+  414: 		{
+  415: 
+  416: 			if(!delayChgInvTimer && m_24g_led_flag)
+001718 E0                MOVX    A,@DPTR
+001719 7008              JNZ     ?C0091?SYS
+00171B 904D47            MOV     DPTR,#m_24g_led_flag
+00171E E0                MOVX    A,@DPTR
+00171F 6002              JZ      ?C0091?SYS
+  417: 			{
+  418: 				m_24g_led_flag = 0;
+001721 E4                CLR     A
+001722 F0                MOVX    @DPTR,A
+  419: 			}
+  420: 
+  421: 		}
+  422: 	}
+  423: }
+001723         ?C0091?SYS:
+001723 22                RET     
+----- FUNCTION kb_cb_Timer100ms (END) -------
+
+
+----- FUNCTION main (BEGIN) -----
+ FILE: 'ram.c'
+    5: void main()
+    6: {
+    7: 	YC_System_Main();
+    8: }
+001724 619C              AJMP    YC_System_Main
+----- FUNCTION main (END) -------
+
+
+----- FUNCTION IPC_AbandonLpm (BEGIN) -----
+001726 900B7F            MOV     DPTR,#lpm_flag
+001729 7401              MOV     A,#01H
+00172B F0                MOVX    @DPTR,A
+00172C E4                CLR     A
+00172D 900B7E            MOV     DPTR,#current_task
+001730 F0                MOVX    @DPTR,A
+001731 22                RET     
+----- FUNCTION IPC_AbandonLpm (END) -------
+
+
+----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
+001732 904B9C            MOV     DPTR,#ipcTxWritePtr
+001735 E0                MOVX    A,@DPTR
+001736 FE                MOV     R6,A
+001737 A3                INC     DPTR
+001738 E0                MOVX    A,@DPTR
+001739 FF                MOV     R7,A
+00173A 904B9A            MOV     DPTR,#ipcTxReadPtr
+00173D E0                MOVX    A,@DPTR
+00173E B50607            CJNE    A,AR6,?C0021?IPC
+001741 A3                INC     DPTR
+001742 E0                MOVX    A,@DPTR
+001743 B50702            CJNE    A,AR7,?C0021?IPC
+001746 D3                SETB    C
+001747 22                RET     
+001748         ?C0021?IPC:
+001748 C3                CLR     C
+001749 22                RET     
+----- FUNCTION IPC_IsTxBuffEmpty (END) -------
+
+
+----- FUNCTION GPIO_fillpd (BEGIN) -----
+;---- Variable 'i' assigned to Register 'R7' ----
+00174A E4                CLR     A
+00174B FF                MOV     R7,A
+00174C         ?C0026?GPIO:
+00174C EF                MOV     A,R7
+00174D FD                MOV     R5,A
+00174E 7C00              MOV     R4,#00H
+001750 2478              ADD     A,#078H
+001752 FB                MOV     R3,A
+001753 EC                MOV     A,R4
+001754 3480              ADDC    A,#080H
+001756 8B82              MOV     DPL,R3
+001758 F583              MOV     DPH,A
+00175A E0                MOVX    A,@DPTR
+00175B FE                MOV     R6,A
+00175C ED                MOV     A,R5
+00175D 2470              ADD     A,#070H
+00175F FD                MOV     R5,A
+001760 EC                MOV     A,R4
+001761 3480              ADDC    A,#080H
+001763 8D82              MOV     DPL,R5
+001765 F583              MOV     DPH,A
+001767 E0                MOVX    A,@DPTR
+001768 4E                ORL     A,R6
+001769 F4                CPL     A
+00176A FE                MOV     R6,A
+00176B EF                MOV     A,R7
+00176C 247C              ADD     A,#07CH
+00176E FD                MOV     R5,A
+00176F EC                MOV     A,R4
+001770 3480              ADDC    A,#080H
+001772 8D82              MOV     DPL,R5
+001774 F583              MOV     DPH,A
+001776 EE                MOV     A,R6
+001777 F0                MOVX    @DPTR,A
+001778 0F                INC     R7
+001779 EF                MOV     A,R7
+00177A B404CF            CJNE    A,#04H,?C0026?GPIO
+00177D 22                RET     
+----- FUNCTION GPIO_fillpd (END) -------
+
+
+----- FUNCTION kb_24g_get_led_status (BEGIN) -----
  FILE: 'kb_process.c'
   154: void kb_24g_get_led_status()		//get RF Ack for get numlock/capslock status
   155: {
   156: 	if((m_24g_led_flag)&& (repeat_send_24g == 0))
   157: 	{
-0017EB 904D47            MOV      DPTR,#m_24g_led_flag
-0017EE E0                MOVX     A,@DPTR
-0017EF 6037              JZ       ?C0034?KB_PROCESS
-0017F1 904DD6            MOV      DPTR,#repeat_send_24g
-0017F4 E0                MOVX     A,@DPTR
-0017F5 7031              JNZ      ?C0034?KB_PROCESS
+00177E 904D47            MOV     DPTR,#m_24g_led_flag
+001781 E0                MOVX    A,@DPTR
+001782 6037              JZ      ?C0034?KB_PROCESS
+001784 904DD6            MOV     DPTR,#repeat_send_24g
+001787 E0                MOVX    A,@DPTR
+001788 7031              JNZ     ?C0034?KB_PROCESS
   158: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
   159: 		{
-0017F7 904CC5            MOV      DPTR,#g_variable+06H
-0017FA E0                MOVX     A,@DPTR
-0017FB 6403              XRL      A,#03H
-0017FD 7029              JNZ      ?C0034?KB_PROCESS
+00178A 904CC5            MOV     DPTR,#g_variable+06H
+00178D E0                MOVX    A,@DPTR
+00178E B4032A            CJNE    A,#03H,?C0034?KB_PROCESS
   160: 			xmemclear(hidBuff,9);
   161: 
-0017FF 7B01              MOV      R3,#01H
-001801 7A48              MOV      R2,#HIGH hidBuff
-001803 7900              MOV      R1,#LOW hidBuff
-001805 7D09              MOV      R5,#09H
-001807 FC                MOV      R4,A
-001808 120ED6            LCALL    _xmemclear
+001791 7B01              MOV     R3,#01H
+001793 7A48              MOV     R2,#HIGH hidBuff
+001795 7900              MOV     R1,#LOW hidBuff
+001797 7D09              MOV     R5,#09H
+001799 7C00              MOV     R4,#00H
+00179B 120EB0            LCALL   _xmemclear
   162: 			mult_key_status = 0;
-00180B E4                CLR      A
-00180C 904DE7            MOV      DPTR,#mult_key_status
-00180F F0                MOVX     @DPTR,A
+00179E E4                CLR     A
+00179F 904DE7            MOV     DPTR,#mult_key_status
+0017A2 F0                MOVX    @DPTR,A
   163: 			hidBuff[0] = HID_REPORTID_1;		// standard key send
-001810 904800            MOV      DPTR,#hidBuff
-001813 04                INC      A
-001814 F0                MOVX     @DPTR,A
+0017A3 904800            MOV     DPTR,#hidBuff
+0017A6 04                INC     A
+0017A7 F0                MOVX    @DPTR,A
   164: 			hidBuff[2] = m_24g_led_flag;
-001815 904D47            MOV      DPTR,#m_24g_led_flag
-001818 E0                MOVX     A,@DPTR
-001819 904802            MOV      DPTR,#hidBuff+02H
-00181C F0                MOVX     @DPTR,A
+0017A8 904D47            MOV     DPTR,#m_24g_led_flag
+0017AB E0                MOVX    A,@DPTR
+0017AC 904802            MOV     DPTR,#hidBuff+02H
+0017AF F0                MOVX    @DPTR,A
   165: 			IPC_TxHidData(hidBuff, 9);
-00181D 7B01              MOV      R3,#01H
-00181F 7A48              MOV      R2,#HIGH hidBuff
-001821 7900              MOV      R1,#LOW hidBuff
-001823 7D09              MOV      R5,#09H
-001825 120FF4            LCALL    _IPC_TxHidData
+0017B0 7B01              MOV     R3,#01H
+0017B2 7A48              MOV     R2,#HIGH hidBuff
+0017B4 7900              MOV     R1,#LOW hidBuff
+0017B6 7D09              MOV     R5,#09H
+0017B8 120FA4            LCALL   _IPC_TxHidData
   166: 		}	
   167: 	}
   168: 
   169: }
-001828         ?C0034?KB_PROCESS:
-001828 22                RET      
+0017BB         ?C0034?KB_PROCESS:
+0017BB 22                RET     
 ----- FUNCTION kb_24g_get_led_status (END) -------
 
 
------ FUNCTION _kb_combination_key_press (BEGIN) -----
+----- FUNCTION YC_start_reconnect (BEGIN) -----
+ FILE: 'bluetooth.c'
+   60: void YC_start_reconnect()
+   61: {
+   62: 	power_on_flag = 2;
+   63: 	YC_key_action_handle(KEY_START_24G);
+0017BC 904DE4            MOV     DPTR,#power_on_flag
+0017BF 7402              MOV     A,#02H
+0017C1 F0                MOVX    @DPTR,A
+   64: }
+0017C2 7F08              MOV     R7,#08H
+0017C4 020823            LJMP    _YC_key_action_handle
+----- FUNCTION YC_start_reconnect (END) -------
+
+
+----- FUNCTION _kb_set_multikey (BEGIN) -----
  FILE: 'kb_process.c'
-  380: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
-  381: {
-;---- Variable 'press_state' assigned to Register 'R7' ----
-;---- Variable 'standrad_key' assigned to Register 'R3' ----
+  104: void kb_set_multikey(word multikey_value)
+  105: {
+;---- Variable 'multikey_value' assigned to Register 'R4/R5' ----
+0017C7 AD07              MOV     R5,AR7
+0017C9 AC06              MOV     R4,AR6
+  106: 	if(mult_key_status != KEY_WAIT_RELEASE)
+  107: 	{
+0017CB 904DE7            MOV     DPTR,#mult_key_status
+0017CE E0                MOVX    A,@DPTR
+0017CF 6402              XRL     A,#02H
+0017D1 600E              JZ      ?C0028?KB_PROCESS
+  108: 		mult_key_status = KEY_MULIT_PRESS;
+  109: 		multikey[0] = HID_REPORTID_2;
+0017D3 7401              MOV     A,#01H
+0017D5 F0                MOVX    @DPTR,A
+  110: 		multikey[1] = (multikey_value&0xff);
+0017D6 904DE8            MOV     DPTR,#multikey
+0017D9 04                INC     A
+0017DA F0                MOVX    @DPTR,A
+  111: 		multikey[2] = ((multikey_value>>8)&0xff);
+0017DB EF                MOV     A,R7
+0017DC A3                INC     DPTR
+0017DD F0                MOVX    @DPTR,A
+  112: 	}
+0017DE EE                MOV     A,R6
+0017DF A3                INC     DPTR
+0017E0 F0                MOVX    @DPTR,A
+  113: }
+  114: 
+0017E1         ?C0028?KB_PROCESS:
+0017E1 22                RET     
+----- FUNCTION _kb_set_multikey (END) -------
+
+
+----- FUNCTION _kb_set_systemkey (BEGIN) -----
+ FILE: 'kb_process.c'
+  116: void kb_set_systemkey(byte systemkey_value)
+  117: {
+;---- Variable 'systemkey_value' assigned to Register 'R7' ----
+  118: 	if(mult_key_status != KEY_WAIT_RELEASE)
+  119: 	{
+0017E2 904DE7            MOV     DPTR,#mult_key_status
+0017E5 E0                MOVX    A,@DPTR
+0017E6 6402              XRL     A,#02H
+0017E8 6012              JZ      ?C0030?KB_PROCESS
+  120: 		mult_key_status = KEY_SYSTEM_PRESS;
+  121: 		system_key_press = 1;
+0017EA 7404              MOV     A,#04H
+0017EC F0                MOVX    @DPTR,A
+  122: 		multikey[0] = HID_REPORTID_SYSTEM;
+0017ED 904DE2            MOV     DPTR,#system_key_press
+0017F0 7401              MOV     A,#01H
+0017F2 F0                MOVX    @DPTR,A
+  123: 		multikey[1] = systemkey_value;
+0017F3 904DE8            MOV     DPTR,#multikey
+0017F6 7406              MOV     A,#06H
+0017F8 F0                MOVX    @DPTR,A
+  124: 	}
+0017F9 A3                INC     DPTR
+0017FA EF                MOV     A,R7
+0017FB F0                MOVX    @DPTR,A
+  125: }
+  126: #endif
+0017FC         ?C0030?KB_PROCESS:
+0017FC 22                RET     
+----- FUNCTION _kb_set_systemkey (END) -------
+
+
+----- FUNCTION _kb_combination_key_press (BEGIN) -----
+ FILE: 'kb_process.c'
+  380: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
+  381: {
+;---- Variable 'press_state' assigned to Register 'R7' ----
+;---- Variable 'standrad_key' assigned to Register 'R3' ----
 ;---- Variable 'special_key' assigned to Register 'R5' ----
   382: 	g_variable.key_combination_ctrl = special_key;	
   383: 	g_variable.key_combination_keyvalue = standrad_key;
-001829 904CF5            MOV      DPTR,#g_variable+036H
-00182C ED                MOV      A,R5
-00182D F0                MOVX     @DPTR,A
+0017FD 904CF5            MOV     DPTR,#g_variable+036H
+001800 ED                MOV     A,R5
+001801 F0                MOVX    @DPTR,A
   384: 
-00182E A3                INC      DPTR
-00182F EB                MOV      A,R3
-001830 F0                MOVX     @DPTR,A
+001802 A3                INC     DPTR
+001803 EB                MOV     A,R3
+001804 F0                MOVX    @DPTR,A
   385: 	if(press_state & 1)
-001831 EF                MOV      A,R7
-001832 30E013            JNB      ACC.0,?C0095?KB_PROCESS
+001805 EF                MOV     A,R7
+001806 30E012            JNB     ACC.0,?C0095?KB_PROCESS
   386: 	{
   387: 		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
-001835 904CF4            MOV      DPTR,#g_variable+035H
-001838 E0                MOVX     A,@DPTR
-001839 6403              XRL      A,#03H
-00183B 7004              JNZ      ?C0096?KB_PROCESS
+001809 904CF4            MOV     DPTR,#g_variable+035H
+00180C E0                MOVX    A,@DPTR
+00180D B40304            CJNE    A,#03H,?C0096?KB_PROCESS
   388: 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
-00183D 7402              MOV      A,#02H
-00183F F0                MOVX     @DPTR,A
-001840 22                RET      
-001841         ?C0096?KB_PROCESS:
+001810 7402              MOV     A,#02H
+001812 F0                MOVX    @DPTR,A
+001813 22                RET     
+001814         ?C0096?KB_PROCESS:
   389: 		else	
   390: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-001841 904CF4            MOV      DPTR,#g_variable+035H
-001844 7401              MOV      A,#01H
-001846 F0                MOVX     @DPTR,A
+001814 904CF4            MOV     DPTR,#g_variable+035H
+001817 7401              MOV     A,#01H
+001819 F0                MOVX    @DPTR,A
   391: 	}
-001847 22                RET      
-001848         ?C0095?KB_PROCESS:
+00181A 22                RET     
+00181B         ?C0095?KB_PROCESS:
   392: 	else
   393: 	{
   394: 		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-001848 904CF4            MOV      DPTR,#g_variable+035H
-00184B 7404              MOV      A,#04H
-00184D F0                MOVX     @DPTR,A
+00181B 904CF4            MOV     DPTR,#g_variable+035H
+00181E 7404              MOV     A,#04H
+001820 F0                MOVX    @DPTR,A
   395: 	}
   396: 
   397: }
-00184E 22                RET      
+001821 22                RET     
 ----- FUNCTION _kb_combination_key_press (END) -------
 
 
@@ -4077,628 +4134,617 @@
 ;---- Variable 'state' assigned to Register 'R7' ----
   402: 	byte temp = 0;
   403: 
-00184F E4                CLR      A
-001850 904E9D            MOV      DPTR,#temp
-001853 F0                MOVX     @DPTR,A
+001822 E4                CLR     A
+001823 904E9D            MOV     DPTR,#temp
+001826 F0                MOVX    @DPTR,A
   404: 	if(state & 1)
-001854 EF                MOV      A,R7
-001855 30E005            JNB      ACC.0,?C0100?KB_PROCESS
+001827 EF                MOV     A,R7
+001828 30E005            JNB     ACC.0,?C0100?KB_PROCESS
   405: 		g_variable.one_key_press_wait_release_timer = 0;
-001858 E4                CLR      A
-001859 904CF8            MOV      DPTR,#g_variable+039H
-00185C F0                MOVX     @DPTR,A
-00185D         ?C0100?KB_PROCESS:
+00182B E4                CLR     A
+00182C 904CF8            MOV     DPTR,#g_variable+039H
+00182F F0                MOVX    @DPTR,A
+001830         ?C0100?KB_PROCESS:
   406: 
   407: 	temp = key_value;
-00185D 904E9D            MOV      DPTR,#temp
-001860 ED                MOV      A,R5
-001861 F0                MOVX     @DPTR,A
+001830 904E9D            MOV     DPTR,#temp
+001833 ED                MOV     A,R5
+001834 F0                MOVX    @DPTR,A
   408: 	if(fn_flag == 1)			// Fn lock
-001862 904DDB            MOV      DPTR,#fn_flag
-001865 E0                MOVX     A,@DPTR
-001866 6401              XRL      A,#01H
-001868 6002              JZ       $ + 4H
-00186A 2112              AJMP     ?C0101?KB_PROCESS
+001835 904DDB            MOV     DPTR,#fn_flag
+001838 E0                MOVX    A,@DPTR
+001839 6401              XRL     A,#01H
+00183B 6002              JZ      $ + 4H
+00183D 01E5              AJMP    ?C0101?KB_PROCESS
   409: 	{
   410: 		
   411: 		switch (key_value)
-00186C ED                MOV      A,R5
-00186D 24D4              ADD      A,#0D4H
-00186F 603B              JZ       ?C0103?KB_PROCESS
-001871 24F2              ADD      A,#0F2H
-001873 B40C00            CJNE     A,#0CH,?C0170?KB_PROCESS
-001876         ?C0170?KB_PROCESS:
-001876 4002              JC       $ + 4H
-001878 2112              AJMP     ?C0101?KB_PROCESS
-00187A 901888            MOV      DPTR,#01888H
-00187D 75F003            MOV      B,#03H
-001880 A4                MUL      AB
-001881 C583              XCH      A,DPH
-001883 25F0              ADD      A,B
-001885 C583              XCH      A,DPH
-001887 73                JMP      @A+DPTR
-001888         ?C0171?KB_PROCESS:
-001888 0218B4            LJMP     ?C0104?KB_PROCESS
-00188B 0218BC            LJMP     ?C0105?KB_PROCESS
-00188E 0218C4            LJMP     ?C0106?KB_PROCESS
-001891 0218CC            LJMP     ?C0107?KB_PROCESS
-001894 0218D4            LJMP     ?C0108?KB_PROCESS
-001897 0218DC            LJMP     ?C0109?KB_PROCESS
-00189A 0218E4            LJMP     ?C0110?KB_PROCESS
-00189D 0218EC            LJMP     ?C0111?KB_PROCESS
-0018A0 0218F4            LJMP     ?C0112?KB_PROCESS
-0018A3 0218FC            LJMP     ?C0113?KB_PROCESS
-0018A6 021904            LJMP     ?C0114?KB_PROCESS
-0018A9 02190C            LJMP     ?C0115?KB_PROCESS
+00183F ED                MOV     A,R5
+001840 24D4              ADD     A,#0D4H
+001842 603B              JZ      ?C0103?KB_PROCESS
+001844 24F2              ADD     A,#0F2H
+001846 B40C00            CJNE    A,#0CH,?C0170?KB_PROCESS
+001849         ?C0170?KB_PROCESS:
+001849 4002              JC      $ + 4H
+00184B 01E5              AJMP    ?C0101?KB_PROCESS
+00184D 90185B            MOV     DPTR,#0185BH
+001850 75F003            MOV     B,#03H
+001853 A4                MUL     AB
+001854 C583              XCH     A,DPH
+001856 25F0              ADD     A,B
+001858 C583              XCH     A,DPH
+00185A 73                JMP     @A+DPTR
+00185B         ?C0171?KB_PROCESS:
+00185B 021887            LJMP    ?C0104?KB_PROCESS
+00185E 02188F            LJMP    ?C0105?KB_PROCESS
+001861 021897            LJMP    ?C0106?KB_PROCESS
+001864 02189F            LJMP    ?C0107?KB_PROCESS
+001867 0218A7            LJMP    ?C0108?KB_PROCESS
+00186A 0218AF            LJMP    ?C0109?KB_PROCESS
+00186D 0218B7            LJMP    ?C0110?KB_PROCESS
+001870 0218BF            LJMP    ?C0111?KB_PROCESS
+001873 0218C7            LJMP    ?C0112?KB_PROCESS
+001876 0218CF            LJMP    ?C0113?KB_PROCESS
+001879 0218D7            LJMP    ?C0114?KB_PROCESS
+00187C 0218DF            LJMP    ?C0115?KB_PROCESS
   412: 		{ 
   413: 			case HID_KEY_SPACE:
-0018AC         ?C0103?KB_PROCESS:
+00187F         ?C0103?KB_PROCESS:
   414: 				temp = HID_KEY_APP;
-0018AC 904E9D            MOV      DPTR,#temp
-0018AF 7465              MOV      A,#065H
-0018B1 F0                MOVX     @DPTR,A
+00187F 904E9D            MOV     DPTR,#temp
+001882 7465              MOV     A,#065H
+001884 F0                MOVX    @DPTR,A
   415: 				break;
-0018B2 805E              SJMP     ?C0101?KB_PROCESS
+001885 805E              SJMP    ?C0101?KB_PROCESS
   416: 			case HID_KEY_F1:
-0018B4         ?C0104?KB_PROCESS:
+001887         ?C0104?KB_PROCESS:
   417: 				temp = HID_MULTIKEY_MEDIA;
-0018B4 904E9D            MOV      DPTR,#temp
-0018B7 74F1              MOV      A,#0F1H
-0018B9 F0                MOVX     @DPTR,A
+001887 904E9D            MOV     DPTR,#temp
+00188A 74F1              MOV     A,#0F1H
+00188C F0                MOVX    @DPTR,A
   418: 				break;
-0018BA 8056              SJMP     ?C0101?KB_PROCESS
+00188D 8056              SJMP    ?C0101?KB_PROCESS
   419: 			case HID_KEY_F2:
-0018BC         ?C0105?KB_PROCESS:
+00188F         ?C0105?KB_PROCESS:
   420: 				temp = HID_MULTIKEY_VOL_DOWN;
-0018BC 904E9D            MOV      DPTR,#temp
-0018BF 74F6              MOV      A,#0F6H
-0018C1 F0                MOVX     @DPTR,A
+00188F 904E9D            MOV     DPTR,#temp
+001892 74F6              MOV     A,#0F6H
+001894 F0                MOVX    @DPTR,A
   421: 				break;
-0018C2 804E              SJMP     ?C0101?KB_PROCESS
+001895 804E              SJMP    ?C0101?KB_PROCESS
   422: 			case HID_KEY_F3:
-0018C4         ?C0106?KB_PROCESS:
+001897         ?C0106?KB_PROCESS:
   423: 				temp = HID_MULTIKEY_VOL_UP;
-0018C4 904E9D            MOV      DPTR,#temp
-0018C7 74F7              MOV      A,#0F7H
-0018C9 F0                MOVX     @DPTR,A
+001897 904E9D            MOV     DPTR,#temp
+00189A 74F7              MOV     A,#0F7H
+00189C F0                MOVX    @DPTR,A
   424: 				break;
-0018CA 8046              SJMP     ?C0101?KB_PROCESS
+00189D 8046              SJMP    ?C0101?KB_PROCESS
   425: 			case HID_KEY_F4:
-0018CC         ?C0107?KB_PROCESS:
+00189F         ?C0107?KB_PROCESS:
   426: 				temp = HID_MULTIKEY_MUTE;
-0018CC 904E9D            MOV      DPTR,#temp
-0018CF 74F8              MOV      A,#0F8H
-0018D1 F0                MOVX     @DPTR,A
+00189F 904E9D            MOV     DPTR,#temp
+0018A2 74F8              MOV     A,#0F8H
+0018A4 F0                MOVX    @DPTR,A
   427: 				break;
-0018D2 803E              SJMP     ?C0101?KB_PROCESS
+0018A5 803E              SJMP    ?C0101?KB_PROCESS
   428: 			case HID_KEY_F5:
-0018D4         ?C0108?KB_PROCESS:
+0018A7         ?C0108?KB_PROCESS:
   429: 				temp = HID_MULTIKEY_PRE_TRACK;
-0018D4 904E9D            MOV      DPTR,#temp
-0018D7 74F4              MOV      A,#0F4H
-0018D9 F0                MOVX     @DPTR,A
+0018A7 904E9D            MOV     DPTR,#temp
+0018AA 74F4              MOV     A,#0F4H
+0018AC F0                MOVX    @DPTR,A
   430: 				break;
-0018DA 8036              SJMP     ?C0101?KB_PROCESS
+0018AD 8036              SJMP    ?C0101?KB_PROCESS
   431: 			case HID_KEY_F6:
-0018DC         ?C0109?KB_PROCESS:
+0018AF         ?C0109?KB_PROCESS:
   432: 				temp = HID_MULTIKEY_NEXT_TRACK;
-0018DC 904E9D            MOV      DPTR,#temp
-0018DF 74F5              MOV      A,#0F5H
-0018E1 F0                MOVX     @DPTR,A
+0018AF 904E9D            MOV     DPTR,#temp
+0018B2 74F5              MOV     A,#0F5H
+0018B4 F0                MOVX    @DPTR,A
   433: 				break;
-0018E2 802E              SJMP     ?C0101?KB_PROCESS
+0018B5 802E              SJMP    ?C0101?KB_PROCESS
   434: 			case HID_KEY_F7:
-0018E4         ?C0110?KB_PROCESS:
+0018B7         ?C0110?KB_PROCESS:
   435: 				temp = HID_MULTIKEY_PALY;
-0018E4 904E9D            MOV      DPTR,#temp
-0018E7 74F2              MOV      A,#0F2H
-0018E9 F0                MOVX     @DPTR,A
+0018B7 904E9D            MOV     DPTR,#temp
+0018BA 74F2              MOV     A,#0F2H
+0018BC F0                MOVX    @DPTR,A
   436: 				break;
-0018EA 8026              SJMP     ?C0101?KB_PROCESS
+0018BD 8026              SJMP    ?C0101?KB_PROCESS
   437: 			case HID_KEY_F8:
-0018EC         ?C0111?KB_PROCESS:
+0018BF         ?C0111?KB_PROCESS:
   438: 				temp = HID_MULTIKEY_STOP;
-0018EC 904E9D            MOV      DPTR,#temp
-0018EF 74F3              MOV      A,#0F3H
-0018F1 F0                MOVX     @DPTR,A
+0018BF 904E9D            MOV     DPTR,#temp
+0018C2 74F3              MOV     A,#0F3H
+0018C4 F0                MOVX    @DPTR,A
   439: 				break;
-0018F2 801E              SJMP     ?C0101?KB_PROCESS
+0018C5 801E              SJMP    ?C0101?KB_PROCESS
   440: 			case HID_KEY_F9:
-0018F4         ?C0112?KB_PROCESS:
+0018C7         ?C0112?KB_PROCESS:
   441: 				temp = HID_MULTIKEY_AC_HOME;
-0018F4 904E9D            MOV      DPTR,#temp
-0018F7 74D6              MOV      A,#0D6H
-0018F9 F0                MOVX     @DPTR,A
+0018C7 904E9D            MOV     DPTR,#temp
+0018CA 74D6              MOV     A,#0D6H
+0018CC F0                MOVX    @DPTR,A
   442: 				break;
-0018FA 8016              SJMP     ?C0101?KB_PROCESS
+0018CD 8016              SJMP    ?C0101?KB_PROCESS
   443: 			case HID_KEY_F10:
-0018FC         ?C0113?KB_PROCESS:
+0018CF         ?C0113?KB_PROCESS:
   444: 				temp = HID_MULTIKEY_MAIL;
-0018FC 904E9D            MOV      DPTR,#temp
-0018FF 74FA              MOV      A,#0FAH
-001901 F0                MOVX     @DPTR,A
+0018CF 904E9D            MOV     DPTR,#temp
+0018D2 74FA              MOV     A,#0FAH
+0018D4 F0                MOVX    @DPTR,A
   445: 				break;
-001902 800E              SJMP     ?C0101?KB_PROCESS
+0018D5 800E              SJMP    ?C0101?KB_PROCESS
   446: 			case HID_KEY_F11:
-001904         ?C0114?KB_PROCESS:
+0018D7         ?C0114?KB_PROCESS:
   447: 				temp = HID_MULTIKEY_MY_COMPUTER;
-001904 904E9D            MOV      DPTR,#temp
-001907 74F9              MOV      A,#0F9H
-001909 F0                MOVX     @DPTR,A
+0018D7 904E9D            MOV     DPTR,#temp
+0018DA 74F9              MOV     A,#0F9H
+0018DC F0                MOVX    @DPTR,A
   448: 				break;
-00190A 8006              SJMP     ?C0101?KB_PROCESS
+0018DD 8006              SJMP    ?C0101?KB_PROCESS
   449: 			case HID_KEY_F12:
-00190C         ?C0115?KB_PROCESS:
+0018DF         ?C0115?KB_PROCESS:
   450: 				temp = HID_MULTIKEY_AC_FAVORITES;
-00190C 904E9D            MOV      DPTR,#temp
-00190F 74D0              MOV      A,#0D0H
-001911 F0                MOVX     @DPTR,A
+0018DF 904E9D            MOV     DPTR,#temp
+0018E2 74D0              MOV     A,#0D0H
+0018E4 F0                MOVX    @DPTR,A
   451: 				break;
   452: 			default :
   453: 				break;
   454: 		}
   455: 	}
-001912         ?C0101?KB_PROCESS:
+0018E5         ?C0101?KB_PROCESS:
   456: 
   457: 	return temp;
-001912 904E9D            MOV      DPTR,#temp
-001915 E0                MOVX     A,@DPTR
-001916 FF                MOV      R7,A
+0018E5 904E9D            MOV     DPTR,#temp
+0018E8 E0                MOVX    A,@DPTR
+0018E9 FF                MOV     R7,A
   458: }
-001917 22                RET      
+0018EA 22                RET     
 ----- FUNCTION _key_fn_function (END) -------
 
 
 ----- FUNCTION KS_GetCurrentEvt (BEGIN) -----
  FILE: 'keyscan.c'
-  296: tKSEVENT *KS_GetCurrentEvt()
-  297: {
-  298: 	//
-  299: 	byte i = 0;
-001918 E4                CLR      A
-001919 904E24            MOV      DPTR,#i
-00191C F0                MOVX     @DPTR,A
-  300: 	byte j = 0;
-00191D A3                INC      DPTR
-00191E F0                MOVX     @DPTR,A
-  301: 	byte temp = 0;
-00191F A3                INC      DPTR
-001920 F0                MOVX     @DPTR,A
-  302: 	byte flag = 0;
-001921 A3                INC      DPTR
-001922 F0                MOVX     @DPTR,A
-  303: 	byte offset = 0;
-001923 A3                INC      DPTR
-001924 F0                MOVX     @DPTR,A
-  304: 	byte state = 0;
-001925 A3                INC      DPTR
-001926 F0                MOVX     @DPTR,A
-  305: 	byte colCounttemp = 0;
-001927 A3                INC      DPTR
-001928 F0                MOVX     @DPTR,A
-  306: 	byte rawSel =0;
-001929 A3                INC      DPTR
-00192A F0                MOVX     @DPTR,A
-  307: 	byte keyCounttemp = 0;
-00192B A3                INC      DPTR
-00192C F0                MOVX     @DPTR,A
-  308: 	byte key_value_temp = 0;
-00192D A3                INC      DPTR
-00192E F0                MOVX     @DPTR,A
-  309: 	byte ghost = 0;
-00192F A3                INC      DPTR
-001930 F0                MOVX     @DPTR,A
-  310: 	byte rawCount = 0;
-001931 A3                INC      DPTR
-001932 F0                MOVX     @DPTR,A
-  311: 	byte colCount = 0;
-001933 A3                INC      DPTR
-001934 F0                MOVX     @DPTR,A
-  312: 
-  313: 	
-  314: 	KS_ScanMatrix();
-001935 91DA              ACALL    KS_ScanMatrix
-  315: 
-  316: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
-001937 7A4D              MOV      R2,#HIGH ksSelMapCheck
-001939 79A8              MOV      R1,#LOW ksSelMapCheck
-00193B 904E4C            MOV      DPTR,#?_compare_str?BYTE+03H
-00193E 7401              MOV      A,#01H
-001940 F0                MOVX     @DPTR,A
-001941 A3                INC      DPTR
-001942 744D              MOV      A,#HIGH ksSelMapCheck
-001944 F0                MOVX     @DPTR,A
-001945 A3                INC      DPTR
-001946 74A8              MOV      A,#LOW ksSelMapCheck
-001948 F0                MOVX     @DPTR,A
-001949 A3                INC      DPTR
-00194A 7414              MOV      A,#014H
-00194C F0                MOVX     @DPTR,A
-00194D 7B01              MOV      R3,#01H
-00194F 7A4D              MOV      R2,#HIGH ksSelMapCurr
-001951 79BC              MOV      R1,#LOW ksSelMapCurr
-001953 7167              ACALL    _compare_str
-001955 EF                MOV      A,R7
-001956 6016              JZ       ?C0059?KEYSCAN
-001958 7B01              MOV      R3,#01H
-00195A 7A4D              MOV      R2,#HIGH ksSelMapCurr
-00195C 79BC              MOV      R1,#LOW ksSelMapCurr
-00195E 7D14              MOV      R5,#014H
-001960 7137              ACALL    _array_is_empty
-001962 EF                MOV      A,R7
-001963 7009              JNZ      ?C0059?KEYSCAN
-  317: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
-  318: 	{
-  319: 		g_variable.button_flag |= 0x02;
-001965 904CCE            MOV      DPTR,#g_variable+0FH
-001968 E0                MOVX     A,@DPTR
-001969 4402              ORL      A,#02H
-00196B F0                MOVX     @DPTR,A
-  320: 	}
-00196C 800C              SJMP     ?C0060?KEYSCAN
-00196E         ?C0059?KEYSCAN:
-  321: 	else
-  322: 	{	
-  323: 		g_variable.button_flag &= 0xFD;
-00196E 904CCE            MOV      DPTR,#g_variable+0FH
-001971 E0                MOVX     A,@DPTR
-001972 54FD              ANL      A,#0FDH
-001974 F0                MOVX     @DPTR,A
-  324: 		g_variable.button_timer[1] = 0;
-001975 E4                CLR      A
-001976 904CD0            MOV      DPTR,#g_variable+011H
-001979 F0                MOVX     @DPTR,A
-  325: 	}
-00197A         ?C0060?KEYSCAN:
-  326: 
-  327: 	for (i=0; col[i]!=0; i++) {
-00197A E4                CLR      A
-00197B 904E24            MOV      DPTR,#i
-00197E F0                MOVX     @DPTR,A
-00197F         ?C0061?KEYSCAN:
-00197F 904E24            MOV      DPTR,#i
-001982 E0                MOVX     A,@DPTR
-001983 FF                MOV      R7,A
-001984 90060C            MOV      DPTR,#col
-001987 93                MOVC     A,@A+DPTR
-001988 6035              JZ       ?C0062?KEYSCAN
-  328: 		temp = ksSelMapCurr[i];
-00198A 74BC              MOV      A,#LOW ksSelMapCurr
-00198C 2F                ADD      A,R7
-00198D F582              MOV      DPL,A
-00198F E4                CLR      A
-001990 344D              ADDC     A,#HIGH ksSelMapCurr
-001992 F583              MOV      DPH,A
-001994 E0                MOVX     A,@DPTR
-001995 904E26            MOV      DPTR,#temp
-001998 F0                MOVX     @DPTR,A
-  329: 		if (temp!=0) {
-001999 E0                MOVX     A,@DPTR
-00199A 601B              JZ       ?C0063?KEYSCAN
-  330: 			colCounttemp++;
-00199C 904E2A            MOV      DPTR,#colCounttemp
-00199F E0                MOVX     A,@DPTR
-0019A0 04                INC      A
-0019A1 F0                MOVX     @DPTR,A
-  331: 			rawSel = temp|rawSel;
-0019A2 A3                INC      DPTR
-0019A3 E0                MOVX     A,@DPTR
-0019A4 FE                MOV      R6,A
-0019A5 904E26            MOV      DPTR,#temp
-0019A8 E0                MOVX     A,@DPTR
-0019A9 FD                MOV      R5,A
-0019AA 4E                ORL      A,R6
-0019AB 904E2B            MOV      DPTR,#rawSel
-0019AE F0                MOVX     @DPTR,A
-  332: 			keyCounttemp += bit_count(temp);
-0019AF AF05              MOV      R7,AR5
-0019B1 7129              ACALL    _bit_count
-0019B3 A3                INC      DPTR
-0019B4 E0                MOVX     A,@DPTR
-0019B5 2F                ADD      A,R7
-0019B6 F0                MOVX     @DPTR,A
-  333: 		}
-  334: 	}
-0019B7         ?C0063?KEYSCAN:
-0019B7 904E24            MOV      DPTR,#i
-0019BA E0                MOVX     A,@DPTR
-0019BB 04                INC      A
-0019BC F0                MOVX     @DPTR,A
-0019BD 80C0              SJMP     ?C0061?KEYSCAN
-0019BF         ?C0062?KEYSCAN:
-  335: 	keyCount = keyCounttemp;
-0019BF 904E2C            MOV      DPTR,#keyCounttemp
-0019C2 E0                MOVX     A,@DPTR
-0019C3 904DDD            MOV      DPTR,#keyCount
-0019C6 F0                MOVX     @DPTR,A
-  336: 	colCount = colCounttemp;
-0019C7 904E2A            MOV      DPTR,#colCounttemp
-0019CA E0                MOVX     A,@DPTR
-0019CB 904E30            MOV      DPTR,#colCount
-0019CE F0                MOVX     @DPTR,A
-  337: 	rawCount = bit_count(rawSel);
-0019CF 904E2B            MOV      DPTR,#rawSel
-0019D2 E0                MOVX     A,@DPTR
-0019D3 FF                MOV      R7,A
-0019D4 7129              ACALL    _bit_count
-0019D6 904E2F            MOV      DPTR,#rawCount
-0019D9 EF                MOV      A,R7
-0019DA F0                MOVX     @DPTR,A
-  338: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
-0019DB 904DDD            MOV      DPTR,#keyCount
-0019DE E0                MOVX     A,@DPTR
-0019DF D3                SETB     C
-0019E0 9402              SUBB     A,#02H
-0019E2 7480              MOV      A,#080H
-0019E4 9480              SUBB     A,#080H
-0019E6 4020              JC       ?C0065?KEYSCAN
-0019E8 904E2F            MOV      DPTR,#rawCount
-0019EB E0                MOVX     A,@DPTR
-0019EC FF                MOV      R7,A
-0019ED A3                INC      DPTR
-0019EE E0                MOVX     A,@DPTR
-0019EF FE                MOV      R6,A
-0019F0 D3                SETB     C
-0019F1 9F                SUBB     A,R7
-0019F2 4004              JC       ?C0066?KEYSCAN
-0019F4 AF06              MOV      R7,AR6
-0019F6 8000              SJMP     ?C0067?KEYSCAN
-0019F8         ?C0066?KEYSCAN:
-0019F8         ?C0067?KEYSCAN:
-0019F8 904DDD            MOV      DPTR,#keyCount
-0019FB E0                MOVX     A,@DPTR
-0019FC D3                SETB     C
-0019FD 9F                SUBB     A,R7
-0019FE 4008              JC       ?C0065?KEYSCAN
-  339: 		ghost = 1;
-001A00 904E2E            MOV      DPTR,#ghost
-001A03 7401              MOV      A,#01H
-001A05 F0                MOVX     @DPTR,A
-  340: 	}
-001A06 8005              SJMP     ?C0068?KEYSCAN
-001A08         ?C0065?KEYSCAN:
-  341: 	else {
-  342: 		ghost = 0;
-001A08 E4                CLR      A
-001A09 904E2E            MOV      DPTR,#ghost
-001A0C F0                MOVX     @DPTR,A
-  343: 	}
-001A0D         ?C0068?KEYSCAN:
-  344: 	
-  345: 	for (i=0; col[i]!=0; i++)
-001A0D E4                CLR      A
-001A0E 904E24            MOV      DPTR,#i
-001A11 F0                MOVX     @DPTR,A
-001A12         ?C0069?KEYSCAN:
-001A12 904E24            MOV      DPTR,#i
-001A15 E0                MOVX     A,@DPTR
-001A16 FB                MOV      R3,A
-001A17 90060C            MOV      DPTR,#col
-001A1A 93                MOVC     A,@A+DPTR
-001A1B 7002              JNZ      $ + 4H
-001A1D 41FA              AJMP     ?C0070?KEYSCAN
-  346: 	{
-  347: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
-001A1F 904E24            MOV      DPTR,#i
-001A22 E0                MOVX     A,@DPTR
-001A23 FE                MOV      R6,A
-001A24 2493              ADD      A,#LOW ksSelMapOld
-001A26 F582              MOV      DPL,A
-001A28 E4                CLR      A
-001A29 344D              ADDC     A,#HIGH ksSelMapOld
-001A2B F583              MOV      DPH,A
-001A2D E0                MOVX     A,@DPTR
-001A2E FD                MOV      R5,A
-001A2F 74BC              MOV      A,#LOW ksSelMapCurr
-001A31 2E                ADD      A,R6
-001A32 F582              MOV      DPL,A
-001A34 E4                CLR      A
-001A35 344D              ADDC     A,#HIGH ksSelMapCurr
-001A37 F583              MOV      DPH,A
-001A39 E0                MOVX     A,@DPTR
-001A3A 6D                XRL      A,R5
-001A3B 904E26            MOV      DPTR,#temp
-001A3E F0                MOVX     @DPTR,A
-  348: 		state = ksSelMapCurr[i];
-001A3F 74BC              MOV      A,#LOW ksSelMapCurr
-001A41 2B                ADD      A,R3
-001A42 F582              MOV      DPL,A
-001A44 E4                CLR      A
-001A45 344D              ADDC     A,#HIGH ksSelMapCurr
-001A47 F583              MOV      DPH,A
-001A49 E0                MOVX     A,@DPTR
-001A4A 904E29            MOV      DPTR,#state
-001A4D F0                MOVX     @DPTR,A
-  349: 		if (temp == 0) 
-001A4E 904E26            MOV      DPTR,#temp
-001A51 E0                MOVX     A,@DPTR
-001A52 7004              JNZ      ?C0072?KEYSCAN
-  350: 		{
-  351: 			continue;
-001A54 41F2              AJMP     ?C0071?KEYSCAN
-  352: 		}
-001A56 41F2              AJMP     ?C0071?KEYSCAN
-001A58         ?C0072?KEYSCAN:
-  353: 		else 
-  354: 		{
-  355: 
-  356: 			if (ghost) 
-001A58 904E2E            MOV      DPTR,#ghost
-001A5B E0                MOVX     A,@DPTR
-001A5C 6007              JZ       ?C0074?KEYSCAN
-  357: 				return NULL;
-001A5E 7B00              MOV      R3,#00H
-001A60 7A00              MOV      R2,#00H
-001A62 7900              MOV      R1,#00H
-001A64 22                RET      
-001A65         ?C0074?KEYSCAN:
-  358: 			ksSelMapOld[i] = ksSelMapCurr[i];
-001A65 904E24            MOV      DPTR,#i
-001A68 E0                MOVX     A,@DPTR
-001A69 FF                MOV      R7,A
-001A6A 24BC              ADD      A,#LOW ksSelMapCurr
-001A6C F582              MOV      DPL,A
-001A6E E4                CLR      A
-001A6F 344D              ADDC     A,#HIGH ksSelMapCurr
-001A71 F583              MOV      DPH,A
-001A73 E0                MOVX     A,@DPTR
-001A74 FE                MOV      R6,A
-001A75 7493              MOV      A,#LOW ksSelMapOld
-001A77 2F                ADD      A,R7
-001A78 F582              MOV      DPL,A
-001A7A E4                CLR      A
-001A7B 344D              ADDC     A,#HIGH ksSelMapOld
-001A7D F583              MOV      DPH,A
-001A7F EE                MOV      A,R6
-001A80 F0                MOVX     @DPTR,A
-  359: 			for (j = 0 ; j<8 ; j++) 
-001A81 E4                CLR      A
-001A82 904E25            MOV      DPTR,#j
-001A85 F0                MOVX     @DPTR,A
-001A86         ?C0076?KEYSCAN:
-001A86 904E25            MOV      DPTR,#j
-001A89 E0                MOVX     A,@DPTR
-001A8A FF                MOV      R7,A
-001A8B C3                CLR      C
-001A8C 9408              SUBB     A,#08H
-001A8E 7480              MOV      A,#080H
-001A90 9480              SUBB     A,#080H
-001A92 5058              JNC      ?C0077?KEYSCAN
-  360: 			{
-  361: 				if (temp&1)
-001A94 A3                INC      DPTR
-001A95 E0                MOVX     A,@DPTR
-001A96 30E03B            JNB      ACC.0,?C0079?KEYSCAN
-  362: 				{
-  363: 					offset = i<<3 |j;
-001A99 904E24            MOV      DPTR,#i
-001A9C E0                MOVX     A,@DPTR
-001A9D FE                MOV      R6,A
-001A9E 33                RLC      A
-001A9F 33                RLC      A
-001AA0 33                RLC      A
-001AA1 54F8              ANL      A,#0F8H
-001AA3 FE                MOV      R6,A
-001AA4 EF                MOV      A,R7
-001AA5 4E                ORL      A,R6
-001AA6 904E28            MOV      DPTR,#offset
-001AA9 F0                MOVX     @DPTR,A
-  364: 					key_value_temp = key_fn_function(state,ksMap[offset]);
-001AAA A3                INC      DPTR
-001AAB E0                MOVX     A,@DPTR
-001AAC FF                MOV      R7,A
-001AAD 904E28            MOV      DPTR,#offset
-001AB0 E0                MOVX     A,@DPTR
-001AB1 900621            MOV      DPTR,#ksMap
-001AB4 93                MOVC     A,@A+DPTR
-001AB5 FD                MOV      R5,A
-001AB6 114F              ACALL    _key_fn_function
-001AB8 904E2D            MOV      DPTR,#key_value_temp
-001ABB EF                MOV      A,R7
-001ABC F0                MOVX     @DPTR,A
-  365: 					if (state & 1)
-001ABD 904E29            MOV      DPTR,#state
-001AC0 E0                MOVX     A,@DPTR
-001AC1 30E009            JNB      ACC.0,?C0080?KEYSCAN
-  366: 					{
-  367: 						keyIn(key_value_temp);
-001AC4 904E2D            MOV      DPTR,#key_value_temp
-001AC7 E0                MOVX     A,@DPTR
-001AC8 FF                MOV      R7,A
-001AC9 71B1              ACALL    _keyIn
-  368: 					}
-001ACB 8007              SJMP     ?C0079?KEYSCAN
-001ACD         ?C0080?KEYSCAN:
-  369: 					else
-  370: 					{
-  371: 						keyOut(key_value_temp);
-001ACD 904E2D            MOV      DPTR,#key_value_temp
-001AD0 E0                MOVX     A,@DPTR
-001AD1 FF                MOV      R7,A
-001AD2 9119              ACALL    _keyOut
-  372: 					}
-  373: 				}
-001AD4         ?C0079?KEYSCAN:
-  374: 				temp = temp >>1;
-001AD4 904E26            MOV      DPTR,#temp
-001AD7 E0                MOVX     A,@DPTR
-001AD8 FF                MOV      R7,A
-001AD9 C3                CLR      C
-001ADA 13                RRC      A
-001ADB F0                MOVX     @DPTR,A
-  375: 				state = state>>1;
-001ADC 904E29            MOV      DPTR,#state
-001ADF E0                MOVX     A,@DPTR
-001AE0 FF                MOV      R7,A
-001AE1 C3                CLR      C
-001AE2 13                RRC      A
-001AE3 F0                MOVX     @DPTR,A
-  376: 			}
-001AE4 904E25            MOV      DPTR,#j
-001AE7 E0                MOVX     A,@DPTR
-001AE8 04                INC      A
-001AE9 F0                MOVX     @DPTR,A
-001AEA 809A              SJMP     ?C0076?KEYSCAN
-001AEC         ?C0077?KEYSCAN:
-  377: 			flag = 1;
-001AEC 904E27            MOV      DPTR,#flag
-001AEF 7401              MOV      A,#01H
-001AF1 F0                MOVX     @DPTR,A
-  378: 		}
-  379: 	}
-001AF2         ?C0071?KEYSCAN:
-001AF2 904E24            MOV      DPTR,#i
-001AF5 E0                MOVX     A,@DPTR
-001AF6 04                INC      A
-001AF7 F0                MOVX     @DPTR,A
-001AF8 4112              AJMP     ?C0069?KEYSCAN
-001AFA         ?C0070?KEYSCAN:
-  380: 	
-  381: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
-001AFA 904DE7            MOV      DPTR,#mult_key_status
-001AFD E0                MOVX     A,@DPTR
-001AFE 6403              XRL      A,#03H
-001B00 700B              JNZ      ?C0082?KEYSCAN
-001B02 904DD8            MOV      DPTR,#standard_key_release_flag
-001B05 E0                MOVX     A,@DPTR
-001B06 6401              XRL      A,#01H
-001B08 7003              JNZ      ?C0082?KEYSCAN
-  382: 	{
-  383: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
-001B0A 7402              MOV      A,#02H
-001B0C F0                MOVX     @DPTR,A
-  384: 	}
-001B0D         ?C0082?KEYSCAN:
-  385: 
-  386: 	
-  387: 	if (flag || standard_key_release_flag == 2) 
-001B0D 904E27            MOV      DPTR,#flag
-001B10 E0                MOVX     A,@DPTR
-001B11 7008              JNZ      ?C0084?KEYSCAN
-001B13 904DD8            MOV      DPTR,#standard_key_release_flag
-001B16 E0                MOVX     A,@DPTR
-001B17 6402              XRL      A,#02H
-001B19 7007              JNZ      ?C0083?KEYSCAN
-001B1B         ?C0084?KEYSCAN:
-  388: 	{
-  389: 		return &ksEvtPool;
-001B1B 7B01              MOV      R3,#01H
-001B1D 7A4E              MOV      R2,#HIGH ksEvtPool
-001B1F 7942              MOV      R1,#LOW ksEvtPool
-001B21 22                RET      
-  390: 	}
-001B22         ?C0083?KEYSCAN:
-  391: 	else
-  392: 	{
-  393: 		return NULL;
-001B22 7B00              MOV      R3,#00H
-001B24 7A00              MOV      R2,#00H
-001B26 7900              MOV      R1,#00H
-  394: 	}
-  395: 	
-  396: 
-  397: }
-001B28 22                RET      
+  294: tKSEVENT *KS_GetCurrentEvt()
+  295: {
+  296: 	//
+  297: 	byte i = 0;
+0018EB E4                CLR     A
+0018EC 904E24            MOV     DPTR,#i
+0018EF F0                MOVX    @DPTR,A
+  298: 	byte j = 0;
+0018F0 A3                INC     DPTR
+0018F1 F0                MOVX    @DPTR,A
+  299: 	byte temp = 0;
+0018F2 A3                INC     DPTR
+0018F3 F0                MOVX    @DPTR,A
+  300: 	byte flag = 0;
+0018F4 A3                INC     DPTR
+0018F5 F0                MOVX    @DPTR,A
+  301: 	byte offset = 0;
+0018F6 A3                INC     DPTR
+0018F7 F0                MOVX    @DPTR,A
+  302: 	byte state = 0;
+0018F8 A3                INC     DPTR
+0018F9 F0                MOVX    @DPTR,A
+  303: 	byte colCounttemp = 0;
+0018FA A3                INC     DPTR
+0018FB F0                MOVX    @DPTR,A
+  304: 	byte rawSel =0;
+0018FC A3                INC     DPTR
+0018FD F0                MOVX    @DPTR,A
+  305: 	byte keyCounttemp = 0;
+0018FE A3                INC     DPTR
+0018FF F0                MOVX    @DPTR,A
+  306: 	byte key_value_temp = 0;
+001900 A3                INC     DPTR
+001901 F0                MOVX    @DPTR,A
+  307: 	byte ghost = 0;
+001902 A3                INC     DPTR
+001903 F0                MOVX    @DPTR,A
+  308: 	byte rawCount = 0;
+001904 A3                INC     DPTR
+001905 F0                MOVX    @DPTR,A
+  309: 	byte colCount = 0;
+001906 A3                INC     DPTR
+001907 F0                MOVX    @DPTR,A
+  310: 
+  311: 	
+  312: 	KS_ScanMatrix();
+001908 916F              ACALL   KS_ScanMatrix
+  313: 
+  314: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+00190A 7A4D              MOV     R2,#HIGH ksSelMapCheck
+00190C 79A8              MOV     R1,#LOW ksSelMapCheck
+00190E 904E4C            MOV     DPTR,#?_compare_str?BYTE+03H
+001911 7401              MOV     A,#01H
+001913 F0                MOVX    @DPTR,A
+001914 A3                INC     DPTR
+001915 744D              MOV     A,#HIGH ksSelMapCheck
+001917 F0                MOVX    @DPTR,A
+001918 A3                INC     DPTR
+001919 74A8              MOV     A,#LOW ksSelMapCheck
+00191B F0                MOVX    @DPTR,A
+00191C A3                INC     DPTR
+00191D 7414              MOV     A,#014H
+00191F F0                MOVX    @DPTR,A
+001920 7B01              MOV     R3,#01H
+001922 7A4D              MOV     R2,#HIGH ksSelMapCurr
+001924 79BC              MOV     R1,#LOW ksSelMapCurr
+001926 7125              ACALL   _compare_str
+001928 EF                MOV     A,R7
+001929 6016              JZ      ?C0059?KEYSCAN
+00192B 7B01              MOV     R3,#01H
+00192D 7A4D              MOV     R2,#HIGH ksSelMapCurr
+00192F 79BC              MOV     R1,#LOW ksSelMapCurr
+001931 7D14              MOV     R5,#014H
+001933 51F5              ACALL   _array_is_empty
+001935 EF                MOV     A,R7
+001936 7009              JNZ     ?C0059?KEYSCAN
+  315: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+  316: 	{
+  317: 		g_variable.button_flag |= 0x02;
+001938 904CCE            MOV     DPTR,#g_variable+0FH
+00193B E0                MOVX    A,@DPTR
+00193C 4402              ORL     A,#02H
+00193E F0                MOVX    @DPTR,A
+  318: 	}
+00193F 800C              SJMP    ?C0060?KEYSCAN
+001941         ?C0059?KEYSCAN:
+  319: 	else
+  320: 	{	
+  321: 		g_variable.button_flag &= 0xFD;
+001941 904CCE            MOV     DPTR,#g_variable+0FH
+001944 E0                MOVX    A,@DPTR
+001945 54FD              ANL     A,#0FDH
+001947 F0                MOVX    @DPTR,A
+  322: 		g_variable.button_timer[1] = 0;
+001948 E4                CLR     A
+001949 904CD0            MOV     DPTR,#g_variable+011H
+00194C F0                MOVX    @DPTR,A
+  323: 	}
+00194D         ?C0060?KEYSCAN:
+  324: 
+  325: 	for (i=0; col[i]!=0; i++) {
+00194D E4                CLR     A
+00194E 904E24            MOV     DPTR,#i
+001951 F0                MOVX    @DPTR,A
+001952         ?C0061?KEYSCAN:
+001952 904E24            MOV     DPTR,#i
+001955 E0                MOVX    A,@DPTR
+001956 FF                MOV     R7,A
+001957 90060C            MOV     DPTR,#col
+00195A 93                MOVC    A,@A+DPTR
+00195B 602F              JZ      ?C0062?KEYSCAN
+  326: 		temp = ksSelMapCurr[i];
+00195D 74BC              MOV     A,#LOW ksSelMapCurr
+00195F 2F                ADD     A,R7
+001960 F582              MOV     DPL,A
+001962 E4                CLR     A
+001963 344D              ADDC    A,#HIGH ksSelMapCurr
+001965 F583              MOV     DPH,A
+001967 E0                MOVX    A,@DPTR
+001968 904E26            MOV     DPTR,#temp
+00196B F0                MOVX    @DPTR,A
+  327: 		if (temp!=0) {
+00196C E0                MOVX    A,@DPTR
+00196D FD                MOV     R5,A
+00196E 6014              JZ      ?C0063?KEYSCAN
+  328: 			colCounttemp++;
+001970 904E2A            MOV     DPTR,#colCounttemp
+001973 E0                MOVX    A,@DPTR
+001974 04                INC     A
+001975 F0                MOVX    @DPTR,A
+  329: 			rawSel = temp|rawSel;
+001976 A3                INC     DPTR
+001977 E0                MOVX    A,@DPTR
+001978 FE                MOV     R6,A
+001979 ED                MOV     A,R5
+00197A 4E                ORL     A,R6
+00197B F0                MOVX    @DPTR,A
+  330: 			keyCounttemp += bit_count(temp);
+00197C AF05              MOV     R7,AR5
+00197E 51E7              ACALL   _bit_count
+001980 A3                INC     DPTR
+001981 E0                MOVX    A,@DPTR
+001982 2F                ADD     A,R7
+001983 F0                MOVX    @DPTR,A
+  331: 		}
+  332: 	}
+001984         ?C0063?KEYSCAN:
+001984 904E24            MOV     DPTR,#i
+001987 E0                MOVX    A,@DPTR
+001988 04                INC     A
+001989 F0                MOVX    @DPTR,A
+00198A 80C6              SJMP    ?C0061?KEYSCAN
+00198C         ?C0062?KEYSCAN:
+  333: 	keyCount = keyCounttemp;
+00198C 904E2C            MOV     DPTR,#keyCounttemp
+00198F E0                MOVX    A,@DPTR
+001990 904DDD            MOV     DPTR,#keyCount
+001993 F0                MOVX    @DPTR,A
+  334: 	colCount = colCounttemp;
+001994 904E2A            MOV     DPTR,#colCounttemp
+001997 E0                MOVX    A,@DPTR
+001998 904E30            MOV     DPTR,#colCount
+00199B F0                MOVX    @DPTR,A
+  335: 	rawCount = bit_count(rawSel);
+00199C 904E2B            MOV     DPTR,#rawSel
+00199F E0                MOVX    A,@DPTR
+0019A0 FF                MOV     R7,A
+0019A1 51E7              ACALL   _bit_count
+0019A3 904E2F            MOV     DPTR,#rawCount
+0019A6 EF                MOV     A,R7
+0019A7 F0                MOVX    @DPTR,A
+  336: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
+0019A8 904DDD            MOV     DPTR,#keyCount
+0019AB E0                MOVX    A,@DPTR
+0019AC D3                SETB    C
+0019AD 9402              SUBB    A,#02H
+0019AF 4020              JC      ?C0065?KEYSCAN
+0019B1 904E2F            MOV     DPTR,#rawCount
+0019B4 E0                MOVX    A,@DPTR
+0019B5 FF                MOV     R7,A
+0019B6 A3                INC     DPTR
+0019B7 E0                MOVX    A,@DPTR
+0019B8 FE                MOV     R6,A
+0019B9 D3                SETB    C
+0019BA 9F                SUBB    A,R7
+0019BB 4004              JC      ?C0066?KEYSCAN
+0019BD AF06              MOV     R7,AR6
+0019BF 8000              SJMP    ?C0067?KEYSCAN
+0019C1         ?C0066?KEYSCAN:
+0019C1         ?C0067?KEYSCAN:
+0019C1 904DDD            MOV     DPTR,#keyCount
+0019C4 E0                MOVX    A,@DPTR
+0019C5 D3                SETB    C
+0019C6 9F                SUBB    A,R7
+0019C7 4008              JC      ?C0065?KEYSCAN
+  337: 		ghost = 1;
+0019C9 904E2E            MOV     DPTR,#ghost
+0019CC 7401              MOV     A,#01H
+0019CE F0                MOVX    @DPTR,A
+  338: 	}
+0019CF 8005              SJMP    ?C0068?KEYSCAN
+0019D1         ?C0065?KEYSCAN:
+  339: 	else {
+  340: 		ghost = 0;
+0019D1 E4                CLR     A
+0019D2 904E2E            MOV     DPTR,#ghost
+0019D5 F0                MOVX    @DPTR,A
+  341: 	}
+0019D6         ?C0068?KEYSCAN:
+  342: 	
+  343: 	for (i=0; col[i]!=0; i++)
+0019D6 E4                CLR     A
+0019D7 904E24            MOV     DPTR,#i
+0019DA F0                MOVX    @DPTR,A
+0019DB         ?C0069?KEYSCAN:
+0019DB 904E24            MOV     DPTR,#i
+0019DE E0                MOVX    A,@DPTR
+0019DF FF                MOV     R7,A
+0019E0 90060C            MOV     DPTR,#col
+0019E3 93                MOVC    A,@A+DPTR
+0019E4 7002              JNZ     $ + 4H
+0019E6 41BB              AJMP    ?C0070?KEYSCAN
+  344: 	{
+  345: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+0019E8 7493              MOV     A,#LOW ksSelMapOld
+0019EA 2F                ADD     A,R7
+0019EB F582              MOV     DPL,A
+0019ED E4                CLR     A
+0019EE 344D              ADDC    A,#HIGH ksSelMapOld
+0019F0 F583              MOV     DPH,A
+0019F2 E0                MOVX    A,@DPTR
+0019F3 FE                MOV     R6,A
+0019F4 74BC              MOV     A,#LOW ksSelMapCurr
+0019F6 2F                ADD     A,R7
+0019F7 F582              MOV     DPL,A
+0019F9 E4                CLR     A
+0019FA 344D              ADDC    A,#HIGH ksSelMapCurr
+0019FC F583              MOV     DPH,A
+0019FE E0                MOVX    A,@DPTR
+0019FF 6E                XRL     A,R6
+001A00 904E26            MOV     DPTR,#temp
+001A03 F0                MOVX    @DPTR,A
+  346: 		state = ksSelMapCurr[i];
+001A04 904E24            MOV     DPTR,#i
+001A07 E0                MOVX    A,@DPTR
+001A08 FF                MOV     R7,A
+001A09 24BC              ADD     A,#LOW ksSelMapCurr
+001A0B F582              MOV     DPL,A
+001A0D E4                CLR     A
+001A0E 344D              ADDC    A,#HIGH ksSelMapCurr
+001A10 F583              MOV     DPH,A
+001A12 E0                MOVX    A,@DPTR
+001A13 904E29            MOV     DPTR,#state
+001A16 F0                MOVX    @DPTR,A
+  347: 		if (temp == 0) 
+001A17 904E26            MOV     DPTR,#temp
+001A1A E0                MOVX    A,@DPTR
+001A1B 7004              JNZ     ?C0072?KEYSCAN
+  348: 		{
+  349: 			continue;
+001A1D 41B3              AJMP    ?C0071?KEYSCAN
+  350: 		}
+001A1F 41B3              AJMP    ?C0071?KEYSCAN
+001A21         ?C0072?KEYSCAN:
+  351: 		else 
+  352: 		{
+  353: 
+  354: 			if (ghost) 
+001A21 904E2E            MOV     DPTR,#ghost
+001A24 E0                MOVX    A,@DPTR
+001A25 6007              JZ      ?C0074?KEYSCAN
+  355: 				return NULL;
+001A27 7B00              MOV     R3,#00H
+001A29 7A00              MOV     R2,#00H
+001A2B 7900              MOV     R1,#00H
+001A2D 22                RET     
+001A2E         ?C0074?KEYSCAN:
+  356: 			ksSelMapOld[i] = ksSelMapCurr[i];
+001A2E 74BC              MOV     A,#LOW ksSelMapCurr
+001A30 2F                ADD     A,R7
+001A31 F582              MOV     DPL,A
+001A33 E4                CLR     A
+001A34 344D              ADDC    A,#HIGH ksSelMapCurr
+001A36 F583              MOV     DPH,A
+001A38 E0                MOVX    A,@DPTR
+001A39 FE                MOV     R6,A
+001A3A 7493              MOV     A,#LOW ksSelMapOld
+001A3C 2F                ADD     A,R7
+001A3D F582              MOV     DPL,A
+001A3F E4                CLR     A
+001A40 344D              ADDC    A,#HIGH ksSelMapOld
+001A42 F583              MOV     DPH,A
+001A44 EE                MOV     A,R6
+001A45 F0                MOVX    @DPTR,A
+  357: 			for (j = 0 ; j<8 ; j++) 
+001A46 E4                CLR     A
+001A47 904E25            MOV     DPTR,#j
+001A4A F0                MOVX    @DPTR,A
+001A4B         ?C0076?KEYSCAN:
+001A4B 904E25            MOV     DPTR,#j
+001A4E E0                MOVX    A,@DPTR
+001A4F FF                MOV     R7,A
+001A50 C3                CLR     C
+001A51 9408              SUBB    A,#08H
+001A53 5058              JNC     ?C0077?KEYSCAN
+  358: 			{
+  359: 				if (temp&1)
+001A55 A3                INC     DPTR
+001A56 E0                MOVX    A,@DPTR
+001A57 30E03B            JNB     ACC.0,?C0079?KEYSCAN
+  360: 				{
+  361: 					offset = i<<3 |j;
+001A5A 904E24            MOV     DPTR,#i
+001A5D E0                MOVX    A,@DPTR
+001A5E FE                MOV     R6,A
+001A5F 33                RLC     A
+001A60 33                RLC     A
+001A61 33                RLC     A
+001A62 54F8              ANL     A,#0F8H
+001A64 FE                MOV     R6,A
+001A65 EF                MOV     A,R7
+001A66 4E                ORL     A,R6
+001A67 904E28            MOV     DPTR,#offset
+001A6A F0                MOVX    @DPTR,A
+  362: 					key_value_temp = key_fn_function(state,ksMap[offset]);
+001A6B A3                INC     DPTR
+001A6C E0                MOVX    A,@DPTR
+001A6D FF                MOV     R7,A
+001A6E 904E28            MOV     DPTR,#offset
+001A71 E0                MOVX    A,@DPTR
+001A72 900621            MOV     DPTR,#ksMap
+001A75 93                MOVC    A,@A+DPTR
+001A76 FD                MOV     R5,A
+001A77 1122              ACALL   _key_fn_function
+001A79 904E2D            MOV     DPTR,#key_value_temp
+001A7C EF                MOV     A,R7
+001A7D F0                MOVX    @DPTR,A
+  363: 					if (state & 1)
+001A7E 904E29            MOV     DPTR,#state
+001A81 E0                MOVX    A,@DPTR
+001A82 30E009            JNB     ACC.0,?C0080?KEYSCAN
+  364: 					{
+  365: 						keyIn(key_value_temp);
+001A85 904E2D            MOV     DPTR,#key_value_temp
+001A88 E0                MOVX    A,@DPTR
+001A89 FF                MOV     R7,A
+001A8A 716F              ACALL   _keyIn
+  366: 					}
+001A8C 8007              SJMP    ?C0079?KEYSCAN
+001A8E         ?C0080?KEYSCAN:
+  367: 					else
+  368: 					{
+  369: 						keyOut(key_value_temp);
+001A8E 904E2D            MOV     DPTR,#key_value_temp
+001A91 E0                MOVX    A,@DPTR
+001A92 FF                MOV     R7,A
+001A93 71C5              ACALL   _keyOut
+  370: 					}
+  371: 				}
+001A95         ?C0079?KEYSCAN:
+  372: 				temp = temp >>1;
+001A95 904E26            MOV     DPTR,#temp
+001A98 E0                MOVX    A,@DPTR
+001A99 FF                MOV     R7,A
+001A9A C3                CLR     C
+001A9B 13                RRC     A
+001A9C F0                MOVX    @DPTR,A
+  373: 				state = state>>1;
+001A9D 904E29            MOV     DPTR,#state
+001AA0 E0                MOVX    A,@DPTR
+001AA1 FF                MOV     R7,A
+001AA2 C3                CLR     C
+001AA3 13                RRC     A
+001AA4 F0                MOVX    @DPTR,A
+  374: 			}
+001AA5 904E25            MOV     DPTR,#j
+001AA8 E0                MOVX    A,@DPTR
+001AA9 04                INC     A
+001AAA F0                MOVX    @DPTR,A
+001AAB 809E              SJMP    ?C0076?KEYSCAN
+001AAD         ?C0077?KEYSCAN:
+  375: 			flag = 1;
+001AAD 904E27            MOV     DPTR,#flag
+001AB0 7401              MOV     A,#01H
+001AB2 F0                MOVX    @DPTR,A
+  376: 		}
+  377: 	}
+001AB3         ?C0071?KEYSCAN:
+001AB3 904E24            MOV     DPTR,#i
+001AB6 E0                MOVX    A,@DPTR
+001AB7 04                INC     A
+001AB8 F0                MOVX    @DPTR,A
+001AB9 21DB              AJMP    ?C0069?KEYSCAN
+001ABB         ?C0070?KEYSCAN:
+  378: 	
+  379: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+001ABB 904DE7            MOV     DPTR,#mult_key_status
+001ABE E0                MOVX    A,@DPTR
+001ABF B4030A            CJNE    A,#03H,?C0082?KEYSCAN
+001AC2 904DD8            MOV     DPTR,#standard_key_release_flag
+001AC5 E0                MOVX    A,@DPTR
+001AC6 B40103            CJNE    A,#01H,?C0082?KEYSCAN
+  380: 	{
+  381: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
+001AC9 7402              MOV     A,#02H
+001ACB F0                MOVX    @DPTR,A
+  382: 	}
+001ACC         ?C0082?KEYSCAN:
+  383: 
+  384: 	
+  385: 	if (flag || standard_key_release_flag == 2) 
+001ACC 904E27            MOV     DPTR,#flag
+001ACF E0                MOVX    A,@DPTR
+001AD0 7007              JNZ     ?C0084?KEYSCAN
+001AD2 904DD8            MOV     DPTR,#standard_key_release_flag
+001AD5 E0                MOVX    A,@DPTR
+001AD6 B40207            CJNE    A,#02H,?C0083?KEYSCAN
+001AD9         ?C0084?KEYSCAN:
+  386: 	{
+  387: 		return &ksEvtPool;
+001AD9 7B01              MOV     R3,#01H
+001ADB 7A4E              MOV     R2,#HIGH ksEvtPool
+001ADD 7942              MOV     R1,#LOW ksEvtPool
+001ADF 22                RET     
+  388: 	}
+001AE0         ?C0083?KEYSCAN:
+  389: 	else
+  390: 	{
+  391: 		return NULL;
+001AE0 7B00              MOV     R3,#00H
+001AE2 7A00              MOV     R2,#00H
+001AE4 7900              MOV     R1,#00H
+  392: 	}
+  393: 	
+  394: 
+  395: }
+001AE6 22                RET     
 ----- FUNCTION KS_GetCurrentEvt (END) -------
 
 
@@ -4710,136 +4756,136 @@
    26: 	unsigned char c;
    27: 	for (c = 0; v; c++) {
 ;---- Variable 'c' assigned to Register 'R6' ----
-001B29 E4                CLR      A
-001B2A FE                MOV      R6,A
-001B2B         ?C0001?KEYSCAN:
-001B2B EF                MOV      A,R7
-001B2C 6006              JZ       ?C0002?KEYSCAN
+001AE7 E4                CLR     A
+001AE8 FE                MOV     R6,A
+001AE9         ?C0001?KEYSCAN:
+001AE9 EF                MOV     A,R7
+001AEA 6006              JZ      ?C0002?KEYSCAN
    28:     	v &= v - 1;
-001B2E 14                DEC      A
-001B2F 5F                ANL      A,R7
-001B30 FF                MOV      R7,A
+001AEC 14                DEC     A
+001AED 5F                ANL     A,R7
+001AEE FF                MOV     R7,A
    29:     }
-001B31 0E                INC      R6
-001B32 80F7              SJMP     ?C0001?KEYSCAN
-001B34         ?C0002?KEYSCAN:
+001AEF 0E                INC     R6
+001AF0 80F7              SJMP    ?C0001?KEYSCAN
+001AF2         ?C0002?KEYSCAN:
    30:     return c;
-001B34 AF06              MOV      R7,AR6
+001AF2 AF06              MOV     R7,AR6
    31: }
-001B36 22                RET      
+001AF4 22                RET     
 ----- FUNCTION _bit_count (END) -------
 
 
 ----- FUNCTION _array_is_empty (BEGIN) -----
  FILE: 'keyscan.c'
-  284: byte array_is_empty(byte * str1,byte len)
-  285: {
-001B37 904E87            MOV      DPTR,#str1
-001B3A EB                MOV      A,R3
-001B3B F0                MOVX     @DPTR,A
-001B3C A3                INC      DPTR
-001B3D EA                MOV      A,R2
-001B3E F0                MOVX     @DPTR,A
-001B3F A3                INC      DPTR
-001B40 E9                MOV      A,R1
-001B41 F0                MOVX     @DPTR,A
+  282: byte array_is_empty(byte * str1,byte len)
+  283: {
+001AF5 904E87            MOV     DPTR,#str1
+001AF8 EB                MOV     A,R3
+001AF9 F0                MOVX    @DPTR,A
+001AFA A3                INC     DPTR
+001AFB EA                MOV     A,R2
+001AFC F0                MOVX    @DPTR,A
+001AFD A3                INC     DPTR
+001AFE E9                MOV     A,R1
+001AFF F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R5' ----
-  286: 	byte i;
-  287: 	for (i=0;i < len;i++)
+  284: 	byte i;
+  285: 	for (i=0;i < len;i++)
 ;---- Variable 'i' assigned to Register 'R7' ----
-001B42 E4                CLR      A
-001B43 FF                MOV      R7,A
-001B44         ?C0054?KEYSCAN:
-001B44 EF                MOV      A,R7
-001B45 C3                CLR      C
-001B46 9D                SUBB     A,R5
-001B47 501B              JNC      ?C0055?KEYSCAN
-  288: 	{
-  289: 		if (str1[i] != 0)
-001B49 904E87            MOV      DPTR,#str1
-001B4C E0                MOVX     A,@DPTR
-001B4D FB                MOV      R3,A
-001B4E A3                INC      DPTR
-001B4F E0                MOVX     A,@DPTR
-001B50 FA                MOV      R2,A
-001B51 A3                INC      DPTR
-001B52 E0                MOVX     A,@DPTR
-001B53 F9                MOV      R1,A
-001B54 8F82              MOV      DPL,R7
-001B56 758300            MOV      DPH,#00H
-001B59 1203CF            LCALL    ?C?CLDOPTR
-001B5C 6003              JZ       ?C0056?KEYSCAN
-  290: 			return 0x00;
-001B5E 7F00              MOV      R7,#00H
-001B60 22                RET      
-  291: 	}
-001B61         ?C0056?KEYSCAN:
-001B61 0F                INC      R7
-001B62 80E0              SJMP     ?C0054?KEYSCAN
-001B64         ?C0055?KEYSCAN:
-  292: 	return 0x01;
-001B64 7F01              MOV      R7,#01H
-  293: }
-001B66 22                RET      
+001B00 E4                CLR     A
+001B01 FF                MOV     R7,A
+001B02         ?C0054?KEYSCAN:
+001B02 EF                MOV     A,R7
+001B03 C3                CLR     C
+001B04 9D                SUBB    A,R5
+001B05 501B              JNC     ?C0055?KEYSCAN
+  286: 	{
+  287: 		if (str1[i] != 0)
+001B07 904E87            MOV     DPTR,#str1
+001B0A E0                MOVX    A,@DPTR
+001B0B FB                MOV     R3,A
+001B0C A3                INC     DPTR
+001B0D E0                MOVX    A,@DPTR
+001B0E FA                MOV     R2,A
+001B0F A3                INC     DPTR
+001B10 E0                MOVX    A,@DPTR
+001B11 F9                MOV     R1,A
+001B12 8F82              MOV     DPL,R7
+001B14 758300            MOV     DPH,#00H
+001B17 1203CF            LCALL   ?C?CLDOPTR
+001B1A 6003              JZ      ?C0056?KEYSCAN
+  288: 			return 0x00;
+001B1C 7F00              MOV     R7,#00H
+001B1E 22                RET     
+  289: 	}
+001B1F         ?C0056?KEYSCAN:
+001B1F 0F                INC     R7
+001B20 80E0              SJMP    ?C0054?KEYSCAN
+001B22         ?C0055?KEYSCAN:
+  290: 	return 0x01;
+001B22 7F01              MOV     R7,#01H
+  291: }
+001B24 22                RET     
 ----- FUNCTION _array_is_empty (END) -------
 
 
 ----- FUNCTION _compare_str (BEGIN) -----
-001B67 904E49            MOV      DPTR,#str1
-001B6A EB                MOV      A,R3
-001B6B F0                MOVX     @DPTR,A
-001B6C A3                INC      DPTR
-001B6D EA                MOV      A,R2
-001B6E F0                MOVX     @DPTR,A
-001B6F A3                INC      DPTR
-001B70 E9                MOV      A,R1
-001B71 F0                MOVX     @DPTR,A
+001B25 904E49            MOV     DPTR,#str1
+001B28 EB                MOV     A,R3
+001B29 F0                MOVX    @DPTR,A
+001B2A A3                INC     DPTR
+001B2B EA                MOV     A,R2
+001B2C F0                MOVX    @DPTR,A
+001B2D A3                INC     DPTR
+001B2E E9                MOV     A,R1
+001B2F F0                MOVX    @DPTR,A
 ;---- Variable 'i' assigned to Register 'R7' ----
-001B72 E4                CLR      A
-001B73 FF                MOV      R7,A
-001B74         ?C0021?UTILITIES:
-001B74 904E4F            MOV      DPTR,#len
-001B77 E0                MOVX     A,@DPTR
-001B78 FE                MOV      R6,A
-001B79 EF                MOV      A,R7
-001B7A C3                CLR      C
-001B7B 9E                SUBB     A,R6
-001B7C 5030              JNC      ?C0022?UTILITIES
-001B7E 904E4C            MOV      DPTR,#str2
-001B81 E0                MOVX     A,@DPTR
-001B82 FB                MOV      R3,A
-001B83 A3                INC      DPTR
-001B84 E0                MOVX     A,@DPTR
-001B85 FA                MOV      R2,A
-001B86 A3                INC      DPTR
-001B87 E0                MOVX     A,@DPTR
-001B88 F9                MOV      R1,A
-001B89 8F82              MOV      DPL,R7
-001B8B 758300            MOV      DPH,#00H
-001B8E 1203CF            LCALL    ?C?CLDOPTR
-001B91 FE                MOV      R6,A
-001B92 904E49            MOV      DPTR,#str1
-001B95 E0                MOVX     A,@DPTR
-001B96 FB                MOV      R3,A
-001B97 A3                INC      DPTR
-001B98 E0                MOVX     A,@DPTR
-001B99 FA                MOV      R2,A
-001B9A A3                INC      DPTR
-001B9B E0                MOVX     A,@DPTR
-001B9C F9                MOV      R1,A
-001B9D 8F82              MOV      DPL,R7
-001B9F 758300            MOV      DPH,#00H
-001BA2 1203CF            LCALL    ?C?CLDOPTR
-001BA5 6E                XRL      A,R6
-001BA6 6003              JZ       ?C0023?UTILITIES
-001BA8 7F00              MOV      R7,#00H
-001BAA 22                RET      
-001BAB         ?C0023?UTILITIES:
-001BAB 0F                INC      R7
-001BAC 80C6              SJMP     ?C0021?UTILITIES
-001BAE         ?C0022?UTILITIES:
-001BAE 7F01              MOV      R7,#01H
-001BB0 22                RET      
+001B30 E4                CLR     A
+001B31 FF                MOV     R7,A
+001B32         ?C0021?UTILITIES:
+001B32 904E4F            MOV     DPTR,#len
+001B35 E0                MOVX    A,@DPTR
+001B36 FE                MOV     R6,A
+001B37 EF                MOV     A,R7
+001B38 C3                CLR     C
+001B39 9E                SUBB    A,R6
+001B3A 5030              JNC     ?C0022?UTILITIES
+001B3C 904E4C            MOV     DPTR,#str2
+001B3F E0                MOVX    A,@DPTR
+001B40 FB                MOV     R3,A
+001B41 A3                INC     DPTR
+001B42 E0                MOVX    A,@DPTR
+001B43 FA                MOV     R2,A
+001B44 A3                INC     DPTR
+001B45 E0                MOVX    A,@DPTR
+001B46 F9                MOV     R1,A
+001B47 8F82              MOV     DPL,R7
+001B49 758300            MOV     DPH,#00H
+001B4C 1203CF            LCALL   ?C?CLDOPTR
+001B4F FE                MOV     R6,A
+001B50 904E49            MOV     DPTR,#str1
+001B53 E0                MOVX    A,@DPTR
+001B54 FB                MOV     R3,A
+001B55 A3                INC     DPTR
+001B56 E0                MOVX    A,@DPTR
+001B57 FA                MOV     R2,A
+001B58 A3                INC     DPTR
+001B59 E0                MOVX    A,@DPTR
+001B5A F9                MOV     R1,A
+001B5B 8F82              MOV     DPL,R7
+001B5D 758300            MOV     DPH,#00H
+001B60 1203CF            LCALL   ?C?CLDOPTR
+001B63 6E                XRL     A,R6
+001B64 6003              JZ      ?C0023?UTILITIES
+001B66 7F00              MOV     R7,#00H
+001B68 22                RET     
+001B69         ?C0023?UTILITIES:
+001B69 0F                INC     R7
+001B6A 80C6              SJMP    ?C0021?UTILITIES
+001B6C         ?C0022?UTILITIES:
+001B6C 7F01              MOV     R7,#01H
+001B6E 22                RET     
 ----- FUNCTION _compare_str (END) -------
 
 
@@ -4851,47 +4897,41 @@
    37: 	byte i = 0;
    38: 
 ;---- Variable 'i' assigned to Register 'R6' ----
-001BB1 E4                CLR      A
-001BB2 FE                MOV      R6,A
+001B6F E4                CLR     A
+001B70 FE                MOV     R6,A
    39: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
-001BB3 EF                MOV      A,R7
-001BB4 FD                MOV      R5,A
-001BB5 7C00              MOV      R4,#00H
-001BB7 C3                CLR      C
-001BB8 94E0              SUBB     A,#0E0H
-001BBA 7480              MOV      A,#080H
-001BBC 9480              SUBB     A,#080H
-001BBE 4023              JC       ?C0005?KEYSCAN
-001BC0 D3                SETB     C
-001BC1 ED                MOV      A,R5
-001BC2 94E7              SUBB     A,#0E7H
-001BC4 7480              MOV      A,#080H
-001BC6 9480              SUBB     A,#080H
-001BC8 5019              JNC      ?C0005?KEYSCAN
+001B71 EF                MOV     A,R7
+001B72 C3                CLR     C
+001B73 94E0              SUBB    A,#0E0H
+001B75 4020              JC      ?C0005?KEYSCAN
+001B77 EF                MOV     A,R7
+001B78 D3                SETB    C
+001B79 94E7              SUBB    A,#0E7H
+001B7B 501A              JNC     ?C0005?KEYSCAN
    40: 	{
    41: 		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
-001BCA 904E42            MOV      DPTR,#ksEvtPool
-001BCD E0                MOVX     A,@DPTR
-001BCE FE                MOV      R6,A
-001BCF EF                MOV      A,R7
-001BD0 5407              ANL      A,#07H
-001BD2 FF                MOV      R7,A
-001BD3 F8                MOV      R0,A
-001BD4 7401              MOV      A,#01H
-001BD6 08                INC      R0
-001BD7 8002              SJMP     ?C0087?KEYSCAN
-001BD9         ?C0086?KEYSCAN:
-001BD9 C3                CLR      C
-001BDA 33                RLC      A
-001BDB         ?C0087?KEYSCAN:
-001BDB D8FC              DJNZ     R0,?C0086?KEYSCAN
-001BDD 4E                ORL      A,R6
-001BDE 904E42            MOV      DPTR,#ksEvtPool
-001BE1 F0                MOVX     @DPTR,A
-001BE2 22                RET      
+001B7D 904E42            MOV     DPTR,#ksEvtPool
+001B80 E0                MOVX    A,@DPTR
+001B81 FE                MOV     R6,A
+001B82 EF                MOV     A,R7
+001B83 5407              ANL     A,#07H
+001B85 FF                MOV     R7,A
+001B86 7401              MOV     A,#01H
+001B88 A807              MOV     R0,AR7
+001B8A 08                INC     R0
+001B8B 8002              SJMP    ?C0087?KEYSCAN
+001B8D         ?C0086?KEYSCAN:
+001B8D C3                CLR     C
+001B8E 33                RLC     A
+001B8F         ?C0087?KEYSCAN:
+001B8F D8FC              DJNZ    R0,?C0086?KEYSCAN
+001B91 4E                ORL     A,R6
+001B92 904E42            MOV     DPTR,#ksEvtPool
+001B95 F0                MOVX    @DPTR,A
+001B96 22                RET     
    42: 		return;
    43: 	}
-001BE3         ?C0005?KEYSCAN:
+001B97         ?C0005?KEYSCAN:
    44: 
    45: /*
    46: 
@@ -4939,56 +4979,52 @@
    88: 	//special key
    89: 
    90: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001BE3 E4                CLR      A
-001BE4 FE                MOV      R6,A
-001BE5         ?C0007?KEYSCAN:
-001BE5 EE                MOV      A,R6
-001BE6 C3                CLR      C
-001BE7 9406              SUBB     A,#06H
-001BE9 7480              MOV      A,#080H
-001BEB 9480              SUBB     A,#080H
-001BED 5029              JNC      ?C0006?KEYSCAN
+001B97 E4                CLR     A
+001B98 FE                MOV     R6,A
+001B99         ?C0007?KEYSCAN:
    91: 	{
    92: 		if (ksEvtPool.ksPool[i] == key)
-001BEF 7443              MOV      A,#LOW ksEvtPool+01H
-001BF1 2E                ADD      A,R6
-001BF2 F582              MOV      DPL,A
-001BF4 E4                CLR      A
-001BF5 344E              ADDC     A,#HIGH ksEvtPool+01H
-001BF7 F583              MOV      DPH,A
-001BF9 E0                MOVX     A,@DPTR
-001BFA FD                MOV      R5,A
-001BFB 6F                XRL      A,R7
-001BFC 601A              JZ       ?C0006?KEYSCAN
+001B99 7443              MOV     A,#LOW ksEvtPool+01H
+001B9B 2E                ADD     A,R6
+001B9C F582              MOV     DPL,A
+001B9E E4                CLR     A
+001B9F 344E              ADDC    A,#HIGH ksEvtPool+01H
+001BA1 F583              MOV     DPH,A
+001BA3 E0                MOVX    A,@DPTR
+001BA4 FD                MOV     R5,A
+001BA5 6F                XRL     A,R7
+001BA6 601C              JZ      ?C0006?KEYSCAN
    93: 			break;
+001BA8         ?C0010?KEYSCAN:
    94: 		if (ksEvtPool.ksPool[i] == 0) 
-001BFE ED                MOV      A,R5
-001BFF 7014              JNZ      ?C0009?KEYSCAN
+001BA8 ED                MOV     A,R5
+001BA9 7014              JNZ     ?C0009?KEYSCAN
    95: 		{
    96: 			if(mult_key_value != key)
-001C01 904DE6            MOV      DPTR,#mult_key_value
-001C04 E0                MOVX     A,@DPTR
-001C05 6F                XRL      A,R7
-001C06 6010              JZ       ?C0006?KEYSCAN
+001BAB 904DE6            MOV     DPTR,#mult_key_value
+001BAE E0                MOVX    A,@DPTR
+001BAF 6F                XRL     A,R7
+001BB0 6012              JZ      ?C0006?KEYSCAN
    97: 				ksEvtPool.ksPool[i] = key;
-001C08 7443              MOV      A,#LOW ksEvtPool+01H
-001C0A 2E                ADD      A,R6
-001C0B F582              MOV      DPL,A
-001C0D E4                CLR      A
-001C0E 344E              ADDC     A,#HIGH ksEvtPool+01H
-001C10 F583              MOV      DPH,A
-001C12 EF                MOV      A,R7
-001C13 F0                MOVX     @DPTR,A
+001BB2 7443              MOV     A,#LOW ksEvtPool+01H
+001BB4 2E                ADD     A,R6
+001BB5 F582              MOV     DPL,A
+001BB7 E4                CLR     A
+001BB8 344E              ADDC    A,#HIGH ksEvtPool+01H
+001BBA F583              MOV     DPH,A
+001BBC EF                MOV     A,R7
+001BBD F0                MOVX    @DPTR,A
    98: 			break;
-001C14 22                RET      
+001BBE 22                RET     
    99: 		}
   100: 	}
-001C15         ?C0009?KEYSCAN:
-001C15 0E                INC      R6
-001C16 80CD              SJMP     ?C0007?KEYSCAN
+001BBF         ?C0009?KEYSCAN:
+001BBF 0E                INC     R6
+001BC0 EE                MOV     A,R6
+001BC1 B406D5            CJNE    A,#06H,?C0007?KEYSCAN
   101: }
-001C18         ?C0006?KEYSCAN:
-001C18 22                RET      
+001BC4         ?C0006?KEYSCAN:
+001BC4 22                RET     
 ----- FUNCTION _keyIn (END) -------
 
 
@@ -5000,82 +5036,75 @@
   105: 	byte i = 0 ;
   106: 	byte found = 0;
 ;---- Variable 'i' assigned to Register 'R6' ----
-001C19 E4                CLR      A
-001C1A FE                MOV      R6,A
+001BC5 E4                CLR     A
+001BC6 FE                MOV     R6,A
   107: 
 ;---- Variable 'found' assigned to Register 'R5' ----
-001C1B FD                MOV      R5,A
+001BC7 FD                MOV     R5,A
   108: 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
-001C1C EF                MOV      A,R7
-001C1D 54F0              ANL      A,#0F0H
-001C1F 64F0              XRL      A,#0F0H
-001C21 6007              JZ       ?C0014?KEYSCAN
-001C23 EF                MOV      A,R7
-001C24 54D0              ANL      A,#0D0H
-001C26 64D0              XRL      A,#0D0H
-001C28 700D              JNZ      ?C0013?KEYSCAN
-001C2A         ?C0014?KEYSCAN:
+001BC8 EF                MOV     A,R7
+001BC9 54F0              ANL     A,#0F0H
+001BCB 64F0              XRL     A,#0F0H
+001BCD 6007              JZ      ?C0014?KEYSCAN
+001BCF EF                MOV     A,R7
+001BD0 54D0              ANL     A,#0D0H
+001BD2 FC                MOV     R4,A
+001BD3 BCD00C            CJNE    R4,#0D0H,?C0013?KEYSCAN
+001BD6         ?C0014?KEYSCAN:
   109: 	{
   110: 		if(mult_key_status == KEY_WAIT_RELEASE)
-001C2A 904DE7            MOV      DPTR,#mult_key_status
-001C2D E0                MOVX     A,@DPTR
-001C2E 6402              XRL      A,#02H
-001C30 700B              JNZ      ?C0016?KEYSCAN
+001BD6 904DE7            MOV     DPTR,#mult_key_status
+001BD9 E0                MOVX    A,@DPTR
+001BDA B4020B            CJNE    A,#02H,?C0016?KEYSCAN
   111: 		{
   112: 			mult_key_status = KEY_RELEASE;
-001C32 7403              MOV      A,#03H
-001C34 F0                MOVX     @DPTR,A
+001BDD 7403              MOV     A,#03H
+001BDF F0                MOVX    @DPTR,A
   113: 		}
   114: 	}
-001C35 8006              SJMP     ?C0016?KEYSCAN
-001C37         ?C0013?KEYSCAN:
+001BE0 8006              SJMP    ?C0016?KEYSCAN
+001BE2         ?C0013?KEYSCAN:
   115: 	else
   116: 		standard_key_release_flag = 1;
-001C37 904DD8            MOV      DPTR,#standard_key_release_flag
-001C3A 7401              MOV      A,#01H
-001C3C F0                MOVX     @DPTR,A
-001C3D         ?C0016?KEYSCAN:
+001BE2 904DD8            MOV     DPTR,#standard_key_release_flag
+001BE5 7401              MOV     A,#01H
+001BE7 F0                MOVX    @DPTR,A
+001BE8         ?C0016?KEYSCAN:
   117: 
   118: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
-001C3D EF                MOV      A,R7
-001C3E FB                MOV      R3,A
-001C3F 7A00              MOV      R2,#00H
-001C41 C3                CLR      C
-001C42 94E0              SUBB     A,#0E0H
-001C44 7480              MOV      A,#080H
-001C46 9480              SUBB     A,#080H
-001C48 4024              JC       ?C0017?KEYSCAN
-001C4A D3                SETB     C
-001C4B EB                MOV      A,R3
-001C4C 94E7              SUBB     A,#0E7H
-001C4E 7480              MOV      A,#080H
-001C50 9480              SUBB     A,#080H
-001C52 501A              JNC      ?C0017?KEYSCAN
+001BE8 EF                MOV     A,R7
+001BE9 C3                CLR     C
+001BEA 94E0              SUBB    A,#0E0H
+001BEC 4021              JC      ?C0017?KEYSCAN
+001BEE EF                MOV     A,R7
+001BEF D3                SETB    C
+001BF0 94E7              SUBB    A,#0E7H
+001BF2 501B              JNC     ?C0017?KEYSCAN
   119: 	{
   120: 		ksEvtPool.standardSel  &= ~(0x01 << (key & 0x07));
-001C54 904E42            MOV      DPTR,#ksEvtPool
-001C57 E0                MOVX     A,@DPTR
-001C58 FE                MOV      R6,A
-001C59 EF                MOV      A,R7
-001C5A 5407              ANL      A,#07H
-001C5C FF                MOV      R7,A
-001C5D F8                MOV      R0,A
-001C5E 7401              MOV      A,#01H
-001C60 08                INC      R0
-001C61 8002              SJMP     ?C0089?KEYSCAN
-001C63         ?C0088?KEYSCAN:
-001C63 C3                CLR      C
-001C64 33                RLC      A
-001C65         ?C0089?KEYSCAN:
-001C65 D8FC              DJNZ     R0,?C0088?KEYSCAN
-001C67 F4                CPL      A
-001C68 5E                ANL      A,R6
-001C69 904E42            MOV      DPTR,#ksEvtPool
-001C6C F0                MOVX     @DPTR,A
-001C6D 22                RET      
+001BF4 904E42            MOV     DPTR,#ksEvtPool
+001BF7 E0                MOVX    A,@DPTR
+001BF8 FE                MOV     R6,A
+001BF9 EF                MOV     A,R7
+001BFA 5407              ANL     A,#07H
+001BFC FF                MOV     R7,A
+001BFD 7401              MOV     A,#01H
+001BFF A807              MOV     R0,AR7
+001C01 08                INC     R0
+001C02 8002              SJMP    ?C0089?KEYSCAN
+001C04         ?C0088?KEYSCAN:
+001C04 C3                CLR     C
+001C05 33                RLC     A
+001C06         ?C0089?KEYSCAN:
+001C06 D8FC              DJNZ    R0,?C0088?KEYSCAN
+001C08 F4                CPL     A
+001C09 5E                ANL     A,R6
+001C0A 904E42            MOV     DPTR,#ksEvtPool
+001C0D F0                MOVX    @DPTR,A
+001C0E 22                RET     
   121: 		return;
   122: 	}
-001C6E         ?C0017?KEYSCAN:
+001C0F         ?C0017?KEYSCAN:
   123: 	
   124: 
   125: /*
@@ -5121,102 +5150,94 @@
   165: 	}
   166: */	
   167: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001C6E E4                CLR      A
-001C6F FE                MOV      R6,A
-001C70         ?C0019?KEYSCAN:
-001C70 EE                MOV      A,R6
-001C71 C3                CLR      C
-001C72 9406              SUBB     A,#06H
-001C74 7480              MOV      A,#080H
-001C76 9480              SUBB     A,#080H
-001C78 505F              JNC      ?C0018?KEYSCAN
+001C0F E4                CLR     A
+001C10 FE                MOV     R6,A
+001C11         ?C0019?KEYSCAN:
   168: 	{
   169: 		if (found == 0) 
-001C7A ED                MOV      A,R5
-001C7B 7023              JNZ      ?C0022?KEYSCAN
+001C11 ED                MOV     A,R5
+001C12 7021              JNZ     ?C0022?KEYSCAN
   170: 		{
   171: 			if (ksEvtPool.ksPool[i] == key) {
-001C7D 7443              MOV      A,#LOW ksEvtPool+01H
-001C7F 2E                ADD      A,R6
-001C80 F582              MOV      DPL,A
-001C82 E4                CLR      A
-001C83 344E              ADDC     A,#HIGH ksEvtPool+01H
-001C85 F583              MOV      DPH,A
-001C87 E0                MOVX     A,@DPTR
-001C88 6F                XRL      A,R7
-001C89 704B              JNZ      ?C0021?KEYSCAN
+001C14 7443              MOV     A,#LOW ksEvtPool+01H
+001C16 2E                ADD     A,R6
+001C17 F582              MOV     DPL,A
+001C19 E4                CLR     A
+001C1A 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C1C F583              MOV     DPH,A
+001C1E E0                MOVX    A,@DPTR
+001C1F 6F                XRL     A,R7
+001C20 7047              JNZ     ?C0021?KEYSCAN
   172: 				if (i == KS_BUFF_POLL_LEN-1) {
-001C8B EE                MOV      A,R6
-001C8C 6405              XRL      A,#05H
-001C8E 700C              JNZ      ?C0024?KEYSCAN
+001C22 EE                MOV     A,R6
+001C23 B4050B            CJNE    A,#05H,?C0024?KEYSCAN
   173: 					ksEvtPool.ksPool[i] = 0;
-001C90 7443              MOV      A,#LOW ksEvtPool+01H
-001C92 2E                ADD      A,R6
-001C93 F582              MOV      DPL,A
-001C95 E4                CLR      A
-001C96 344E              ADDC     A,#HIGH ksEvtPool+01H
-001C98 F583              MOV      DPH,A
-001C9A E4                CLR      A
-001C9B F0                MOVX     @DPTR,A
+001C26 2443              ADD     A,#LOW ksEvtPool+01H
+001C28 F582              MOV     DPL,A
+001C2A E4                CLR     A
+001C2B 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C2D F583              MOV     DPH,A
+001C2F E4                CLR     A
+001C30 F0                MOVX    @DPTR,A
   174: 				}
-001C9C         ?C0024?KEYSCAN:
+001C31         ?C0024?KEYSCAN:
   175: 				found = 1;
-001C9C 7D01              MOV      R5,#01H
+001C31 7D01              MOV     R5,#01H
   176: 			}
   177: 		}
-001C9E 8036              SJMP     ?C0021?KEYSCAN
-001CA0         ?C0022?KEYSCAN:
+001C33 8034              SJMP    ?C0021?KEYSCAN
+001C35         ?C0022?KEYSCAN:
   178: 		else 
   179: 		{
   180: 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
-001CA0 7443              MOV      A,#LOW ksEvtPool+01H
-001CA2 2E                ADD      A,R6
-001CA3 F582              MOV      DPL,A
-001CA5 E4                CLR      A
-001CA6 344E              ADDC     A,#HIGH ksEvtPool+01H
-001CA8 F583              MOV      DPH,A
-001CAA E0                MOVX     A,@DPTR
-001CAB FC                MOV      R4,A
-001CAC 7442              MOV      A,#LOW ksEvtPool
-001CAE 2E                ADD      A,R6
-001CAF F582              MOV      DPL,A
-001CB1 E4                CLR      A
-001CB2 344E              ADDC     A,#HIGH ksEvtPool
-001CB4 F583              MOV      DPH,A
-001CB6 EC                MOV      A,R4
-001CB7 F0                MOVX     @DPTR,A
+001C35 7443              MOV     A,#LOW ksEvtPool+01H
+001C37 2E                ADD     A,R6
+001C38 F582              MOV     DPL,A
+001C3A E4                CLR     A
+001C3B 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C3D F583              MOV     DPH,A
+001C3F E0                MOVX    A,@DPTR
+001C40 FC                MOV     R4,A
+001C41 7442              MOV     A,#LOW ksEvtPool
+001C43 2E                ADD     A,R6
+001C44 F582              MOV     DPL,A
+001C46 E4                CLR     A
+001C47 344E              ADDC    A,#HIGH ksEvtPool
+001C49 F583              MOV     DPH,A
+001C4B EC                MOV     A,R4
+001C4C F0                MOVX    @DPTR,A
   181: 			if (ksEvtPool.ksPool[i] == 0)
-001CB8 7443              MOV      A,#LOW ksEvtPool+01H
-001CBA 2E                ADD      A,R6
-001CBB F582              MOV      DPL,A
-001CBD E4                CLR      A
-001CBE 344E              ADDC     A,#HIGH ksEvtPool+01H
-001CC0 F583              MOV      DPH,A
-001CC2 E0                MOVX     A,@DPTR
-001CC3 6014              JZ       ?C0018?KEYSCAN
+001C4D 7443              MOV     A,#LOW ksEvtPool+01H
+001C4F 2E                ADD     A,R6
+001C50 F582              MOV     DPL,A
+001C52 E4                CLR     A
+001C53 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C55 F583              MOV     DPH,A
+001C57 E0                MOVX    A,@DPTR
+001C58 6014              JZ      ?C0018?KEYSCAN
   182: 				break;
+001C5A         ?C0026?KEYSCAN:
   183: 			if (i == KS_BUFF_POLL_LEN-1) {
-001CC5 EE                MOV      A,R6
-001CC6 6405              XRL      A,#05H
-001CC8 700C              JNZ      ?C0021?KEYSCAN
+001C5A EE                MOV     A,R6
+001C5B B4050B            CJNE    A,#05H,?C0021?KEYSCAN
   184: 				ksEvtPool.ksPool[i] = 0;
-001CCA 7443              MOV      A,#LOW ksEvtPool+01H
-001CCC 2E                ADD      A,R6
-001CCD F582              MOV      DPL,A
-001CCF E4                CLR      A
-001CD0 344E              ADDC     A,#HIGH ksEvtPool+01H
-001CD2 F583              MOV      DPH,A
-001CD4 E4                CLR      A
-001CD5 F0                MOVX     @DPTR,A
+001C5E 2443              ADD     A,#LOW ksEvtPool+01H
+001C60 F582              MOV     DPL,A
+001C62 E4                CLR     A
+001C63 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C65 F583              MOV     DPH,A
+001C67 E4                CLR     A
+001C68 F0                MOVX    @DPTR,A
   185: 			}
   186: 		}
   187: 	}
-001CD6         ?C0021?KEYSCAN:
-001CD6 0E                INC      R6
-001CD7 8097              SJMP     ?C0019?KEYSCAN
+001C69         ?C0021?KEYSCAN:
+001C69 0E                INC     R6
+001C6A EE                MOV     A,R6
+001C6B B406A3            CJNE    A,#06H,?C0019?KEYSCAN
   188: }
-001CD9         ?C0018?KEYSCAN:
-001CD9 22                RET      
+001C6E         ?C0018?KEYSCAN:
+001C6E 22                RET     
 ----- FUNCTION _keyOut (END) -------
 
 
@@ -5227,593 +5248,926 @@
   256: 	byte i = 0;
   257: 	byte j = 0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-001CDA E4                CLR      A
-001CDB FF                MOV      R7,A
+001C6F E4                CLR     A
+001C70 FF                MOV     R7,A
   258: 	byte tgroup = 0;
-001CDC 904E57            MOV      DPTR,#j
-001CDF F0                MOVX     @DPTR,A
+001C71 904E57            MOV     DPTR,#j
+001C74 F0                MOVX    @DPTR,A
   259: 	byte tgpionum = 0;
-001CE0 A3                INC      DPTR
-001CE1 F0                MOVX     @DPTR,A
+001C75 A3                INC     DPTR
+001C76 F0                MOVX    @DPTR,A
   260: 	byte temp = 0;
-001CE2 A3                INC      DPTR
-001CE3 F0                MOVX     @DPTR,A
+001C77 A3                INC     DPTR
+001C78 F0                MOVX    @DPTR,A
   261: 	byte check = 0;
-001CE4 A3                INC      DPTR
-001CE5 F0                MOVX     @DPTR,A
+001C79 A3                INC     DPTR
+001C7A F0                MOVX    @DPTR,A
   262: 	byte rawSel = 0;
-001CE6 A3                INC      DPTR
-001CE7 F0                MOVX     @DPTR,A
+001C7B A3                INC     DPTR
+001C7C F0                MOVX    @DPTR,A
   263: 	for (i=0; col[i]!=0; i++) {
-001CE8 A3                INC      DPTR
-001CE9 F0                MOVX     @DPTR,A
+001C7D A3                INC     DPTR
+001C7E F0                MOVX    @DPTR,A
   264: 		tgroup = col[i]  >> 3;
-001CEA         ?C0043?KEYSCAN:
-001CEA EF                MOV      A,R7
-001CEB 90060C            MOV      DPTR,#col
-001CEE 93                MOVC     A,@A+DPTR
-001CEF 7002              JNZ      $ + 4H
-001CF1 A198              AJMP     ?C0044?KEYSCAN
+001C7F         ?C0043?KEYSCAN:
+001C7F EF                MOV     A,R7
+001C80 90060C            MOV     DPTR,#col
+001C83 93                MOVC    A,@A+DPTR
+001C84 7002              JNZ     $ + 4H
+001C86 A12E              AJMP    ?C0044?KEYSCAN
   265: 		tgpionum = 1 << (col[i] & 7);
-001CF3 EF                MOV      A,R7
-001CF4 93                MOVC     A,@A+DPTR
-001CF5 FE                MOV      R6,A
-001CF6 13                RRC      A
-001CF7 13                RRC      A
-001CF8 13                RRC      A
-001CF9 541F              ANL      A,#01FH
-001CFB F9                MOV      R1,A
-001CFC 904E58            MOV      DPTR,#tgroup
-001CFF F0                MOVX     @DPTR,A
+001C88 EF                MOV     A,R7
+001C89 93                MOVC    A,@A+DPTR
+001C8A FE                MOV     R6,A
+001C8B 13                RRC     A
+001C8C 13                RRC     A
+001C8D 13                RRC     A
+001C8E 541F              ANL     A,#01FH
+001C90 F9                MOV     R1,A
+001C91 904E58            MOV     DPTR,#tgroup
+001C94 F0                MOVX    @DPTR,A
   266: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
-001D00 EE                MOV      A,R6
-001D01 5407              ANL      A,#07H
-001D03 FE                MOV      R6,A
-001D04 F8                MOV      R0,A
-001D05 7401              MOV      A,#01H
-001D07 08                INC      R0
-001D08 8002              SJMP     ?C0093?KEYSCAN
-001D0A         ?C0092?KEYSCAN:
-001D0A C3                CLR      C
-001D0B 33                RLC      A
-001D0C         ?C0093?KEYSCAN:
-001D0C D8FC              DJNZ     R0,?C0092?KEYSCAN
-001D0E 904E59            MOV      DPTR,#tgpionum
-001D11 F0                MOVX     @DPTR,A
+001C95 EE                MOV     A,R6
+001C96 5407              ANL     A,#07H
+001C98 FE                MOV     R6,A
+001C99 7401              MOV     A,#01H
+001C9B A806              MOV     R0,AR6
+001C9D 08                INC     R0
+001C9E 8002              SJMP    ?C0093?KEYSCAN
+001CA0         ?C0092?KEYSCAN:
+001CA0 C3                CLR     C
+001CA1 33                RLC     A
+001CA2         ?C0093?KEYSCAN:
+001CA2 D8FC              DJNZ    R0,?C0092?KEYSCAN
+001CA4 904E59            MOV     DPTR,#tgpionum
+001CA7 F0                MOVX    @DPTR,A
   267: 	}
-001D12 E9                MOV      A,R1
-001D13 2478              ADD      A,#078H
-001D15 FD                MOV      R5,A
-001D16 E4                CLR      A
-001D17 3480              ADDC     A,#080H
-001D19 FC                MOV      R4,A
-001D1A 8D82              MOV      DPL,R5
-001D1C F583              MOV      DPH,A
-001D1E C083              PUSH     DPH
-001D20 C082              PUSH     DPL
-001D22 E0                MOVX     A,@DPTR
-001D23 FE                MOV      R6,A
-001D24 904E59            MOV      DPTR,#tgpionum
-001D27 E0                MOVX     A,@DPTR
-001D28 F4                CPL      A
-001D29 FB                MOV      R3,A
-001D2A EE                MOV      A,R6
-001D2B 5B                ANL      A,R3
-001D2C D082              POP      DPL
-001D2E D083              POP      DPH
-001D30 F0                MOVX     @DPTR,A
-001D31 E9                MOV      A,R1
-001D32 2470              ADD      A,#070H
-001D34 F582              MOV      DPL,A
-001D36 E4                CLR      A
-001D37 3480              ADDC     A,#080H
-001D39 F583              MOV      DPH,A
-001D3B C083              PUSH     DPH
-001D3D C082              PUSH     DPL
-001D3F E0                MOVX     A,@DPTR
-001D40 FE                MOV      R6,A
-001D41 904E59            MOV      DPTR,#tgpionum
-001D44 E0                MOVX     A,@DPTR
-001D45 FA                MOV      R2,A
-001D46 EE                MOV      A,R6
-001D47 4A                ORL      A,R2
-001D48 D082              POP      DPL
-001D4A D083              POP      DPH
-001D4C F0                MOVX     @DPTR,A
-001D4D E9                MOV      A,R1
-001D4E 2474              ADD      A,#074H
-001D50 F582              MOV      DPL,A
-001D52 E4                CLR      A
-001D53 3480              ADDC     A,#080H
-001D55 F583              MOV      DPH,A
-001D57 E0                MOVX     A,@DPTR
-001D58 5B                ANL      A,R3
-001D59 F0                MOVX     @DPTR,A
-001D5A 90811C            MOV      DPTR,#0811CH
-001D5D E0                MOVX     A,@DPTR
-001D5E F4                CPL      A
-001D5F FE                MOV      R6,A
-001D60 74BC              MOV      A,#LOW ksSelMapCurr
-001D62 2F                ADD      A,R7
-001D63 F582              MOV      DPL,A
-001D65 E4                CLR      A
-001D66 344D              ADDC     A,#HIGH ksSelMapCurr
-001D68 F583              MOV      DPH,A
-001D6A EE                MOV      A,R6
-001D6B F0                MOVX     @DPTR,A
-001D6C 8D82              MOV      DPL,R5
-001D6E 8C83              MOV      DPH,R4
-001D70 C083              PUSH     DPH
-001D72 C082              PUSH     DPL
-001D74 E0                MOVX     A,@DPTR
-001D75 FE                MOV      R6,A
-001D76 904E59            MOV      DPTR,#tgpionum
-001D79 E0                MOVX     A,@DPTR
-001D7A FD                MOV      R5,A
-001D7B EE                MOV      A,R6
-001D7C 4D                ORL      A,R5
-001D7D D082              POP      DPL
-001D7F D083              POP      DPH
-001D81 F0                MOVX     @DPTR,A
-001D82 E9                MOV      A,R1
-001D83 2470              ADD      A,#070H
-001D85 FB                MOV      R3,A
-001D86 E4                CLR      A
-001D87 3480              ADDC     A,#080H
-001D89 8B82              MOV      DPL,R3
-001D8B F583              MOV      DPH,A
-001D8D E0                MOVX     A,@DPTR
-001D8E FE                MOV      R6,A
-001D8F ED                MOV      A,R5
-001D90 F4                CPL      A
-001D91 FD                MOV      R5,A
-001D92 EE                MOV      A,R6
-001D93 5D                ANL      A,R5
-001D94 F0                MOVX     @DPTR,A
-  268: 
-001D95 0F                INC      R7
-001D96 81EA              AJMP     ?C0043?KEYSCAN
-001D98         ?C0044?KEYSCAN:
-  269: 	Delay1ms(5);
-001D98 7F05              MOV      R7,#05H
-001D9A 120A80            LCALL    _Delay1ms
-  270: 	
-  271: 	for (i=0; col[i]!=0; i++) {
-001D9D E4                CLR      A
-001D9E FF                MOV      R7,A
-001D9F         ?C0046?KEYSCAN:
-001D9F EF                MOV      A,R7
-001DA0 90060C            MOV      DPTR,#col
-001DA3 93                MOVC     A,@A+DPTR
-001DA4 7002              JNZ      $ + 4H
-001DA6 C14D              AJMP     ?C0047?KEYSCAN
-  272: 		tgroup = col[i]  >> 3;
-001DA8 EF                MOV      A,R7
-001DA9 93                MOVC     A,@A+DPTR
-001DAA FE                MOV      R6,A
-001DAB 13                RRC      A
-001DAC 13                RRC      A
-001DAD 13                RRC      A
-001DAE 541F              ANL      A,#01FH
-001DB0 F9                MOV      R1,A
-001DB1 904E58            MOV      DPTR,#tgroup
-001DB4 F0                MOVX     @DPTR,A
-  273: 		tgpionum = 1 << (col[i] & 7);
-001DB5 EE                MOV      A,R6
-001DB6 5407              ANL      A,#07H
-001DB8 FE                MOV      R6,A
-001DB9 F8                MOV      R0,A
-001DBA 7401              MOV      A,#01H
-001DBC 08                INC      R0
-001DBD 8002              SJMP     ?C0095?KEYSCAN
-001DBF         ?C0094?KEYSCAN:
-001DBF C3                CLR      C
-001DC0 33                RLC      A
-001DC1         ?C0095?KEYSCAN:
-001DC1 D8FC              DJNZ     R0,?C0094?KEYSCAN
-001DC3 904E59            MOV      DPTR,#tgpionum
-001DC6 F0                MOVX     @DPTR,A
-  274: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
-001DC7 E9                MOV      A,R1
-001DC8 2478              ADD      A,#078H
-001DCA FD                MOV      R5,A
-001DCB E4                CLR      A
-001DCC 3480              ADDC     A,#080H
-001DCE FC                MOV      R4,A
-001DCF 8D82              MOV      DPL,R5
-001DD1 F583              MOV      DPH,A
-001DD3 C083              PUSH     DPH
-001DD5 C082              PUSH     DPL
-001DD7 E0                MOVX     A,@DPTR
-001DD8 FE                MOV      R6,A
-001DD9 904E59            MOV      DPTR,#tgpionum
-001DDC E0                MOVX     A,@DPTR
-001DDD F4                CPL      A
-001DDE FB                MOV      R3,A
-001DDF EE                MOV      A,R6
-001DE0 5B                ANL      A,R3
-001DE1 D082              POP      DPL
-001DE3 D083              POP      DPH
-001DE5 F0                MOVX     @DPTR,A
-001DE6 E9                MOV      A,R1
-001DE7 2470              ADD      A,#070H
-001DE9 F582              MOV      DPL,A
-001DEB E4                CLR      A
-001DEC 3480              ADDC     A,#080H
-001DEE F583              MOV      DPH,A
-001DF0 C083              PUSH     DPH
-001DF2 C082              PUSH     DPL
-001DF4 E0                MOVX     A,@DPTR
-001DF5 FE                MOV      R6,A
-001DF6 904E59            MOV      DPTR,#tgpionum
-001DF9 E0                MOVX     A,@DPTR
-001DFA FA                MOV      R2,A
-001DFB EE                MOV      A,R6
-001DFC 4A                ORL      A,R2
-001DFD D082              POP      DPL
-001DFF D083              POP      DPH
-001E01 F0                MOVX     @DPTR,A
-001E02 E9                MOV      A,R1
-001E03 2474              ADD      A,#074H
-001E05 F582              MOV      DPL,A
-001E07 E4                CLR      A
-001E08 3480              ADDC     A,#080H
-001E0A F583              MOV      DPH,A
-001E0C E0                MOVX     A,@DPTR
-001E0D 5B                ANL      A,R3
-001E0E F0                MOVX     @DPTR,A
-001E0F 90811C            MOV      DPTR,#0811CH
-001E12 E0                MOVX     A,@DPTR
-001E13 F4                CPL      A
-001E14 FE                MOV      R6,A
-001E15 74A8              MOV      A,#LOW ksSelMapCheck
-001E17 2F                ADD      A,R7
-001E18 F582              MOV      DPL,A
-001E1A E4                CLR      A
-001E1B 344D              ADDC     A,#HIGH ksSelMapCheck
-001E1D F583              MOV      DPH,A
-001E1F EE                MOV      A,R6
-001E20 F0                MOVX     @DPTR,A
-001E21 8D82              MOV      DPL,R5
-001E23 8C83              MOV      DPH,R4
-001E25 C083              PUSH     DPH
-001E27 C082              PUSH     DPL
-001E29 E0                MOVX     A,@DPTR
-001E2A FE                MOV      R6,A
-001E2B 904E59            MOV      DPTR,#tgpionum
-001E2E E0                MOVX     A,@DPTR
-001E2F FD                MOV      R5,A
-001E30 EE                MOV      A,R6
-001E31 4D                ORL      A,R5
-001E32 D082              POP      DPL
-001E34 D083              POP      DPH
-001E36 F0                MOVX     @DPTR,A
-001E37 E9                MOV      A,R1
-001E38 2470              ADD      A,#070H
-001E3A FB                MOV      R3,A
-001E3B E4                CLR      A
-001E3C 3480              ADDC     A,#080H
-001E3E 8B82              MOV      DPL,R3
-001E40 F583              MOV      DPH,A
-001E42 E0                MOVX     A,@DPTR
-001E43 FE                MOV      R6,A
-001E44 ED                MOV      A,R5
-001E45 F4                CPL      A
-001E46 FD                MOV      R5,A
-001E47 EE                MOV      A,R6
-001E48 5D                ANL      A,R5
-001E49 F0                MOVX     @DPTR,A
-  275: 	}
-001E4A 0F                INC      R7
-001E4B A19F              AJMP     ?C0046?KEYSCAN
-001E4D         ?C0047?KEYSCAN:
-  276: 
-  277: 	for (i=0; col[i]!=0; i++) {
-001E4D E4                CLR      A
-001E4E FF                MOV      R7,A
-001E4F         ?C0049?KEYSCAN:
-001E4F EF                MOV      A,R7
-001E50 90060C            MOV      DPTR,#col
-001E53 93                MOVC     A,@A+DPTR
-001E54 6040              JZ       ?C0053?KEYSCAN
-  278: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
-001E56 74BC              MOV      A,#LOW ksSelMapCurr
-001E58 2F                ADD      A,R7
-001E59 F582              MOV      DPL,A
-001E5B E4                CLR      A
-001E5C 344D              ADDC     A,#HIGH ksSelMapCurr
-001E5E F583              MOV      DPH,A
-001E60 E0                MOVX     A,@DPTR
-001E61 FE                MOV      R6,A
-001E62 74A8              MOV      A,#LOW ksSelMapCheck
-001E64 2F                ADD      A,R7
-001E65 F582              MOV      DPL,A
-001E67 E4                CLR      A
-001E68 344D              ADDC     A,#HIGH ksSelMapCheck
-001E6A F583              MOV      DPH,A
-001E6C E0                MOVX     A,@DPTR
-001E6D 6E                XRL      A,R6
-001E6E 6023              JZ       ?C0051?KEYSCAN
-  279: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
-001E70 74BC              MOV      A,#LOW ksSelMapCurr
-001E72 2F                ADD      A,R7
-001E73 F582              MOV      DPL,A
-001E75 E4                CLR      A
-001E76 344D              ADDC     A,#HIGH ksSelMapCurr
-001E78 F583              MOV      DPH,A
-001E7A C083              PUSH     DPH
-001E7C C082              PUSH     DPL
-001E7E E0                MOVX     A,@DPTR
-001E7F FE                MOV      R6,A
-001E80 74A8              MOV      A,#LOW ksSelMapCheck
-001E82 2F                ADD      A,R7
-001E83 F582              MOV      DPL,A
-001E85 E4                CLR      A
-001E86 344D              ADDC     A,#HIGH ksSelMapCheck
-001E88 F583              MOV      DPH,A
-001E8A E0                MOVX     A,@DPTR
-001E8B FD                MOV      R5,A
-001E8C EE                MOV      A,R6
-001E8D 5D                ANL      A,R5
-001E8E D082              POP      DPL
-001E90 D083              POP      DPH
-001E92 F0                MOVX     @DPTR,A
-  280: 		}
-  281: 	}
-001E93         ?C0051?KEYSCAN:
-001E93 0F                INC      R7
-001E94 80B9              SJMP     ?C0049?KEYSCAN
-  282: }
-001E96         ?C0053?KEYSCAN:
-001E96 22                RET      
+001CA8 E9                MOV     A,R1
+001CA9 2478              ADD     A,#078H
+001CAB FD                MOV     R5,A
+001CAC E4                CLR     A
+001CAD 3480              ADDC    A,#080H
+001CAF FC                MOV     R4,A
+001CB0 8D82              MOV     DPL,R5
+001CB2 F583              MOV     DPH,A
+001CB4 C083              PUSH    DPH
+001CB6 C082              PUSH    DPL
+001CB8 E0                MOVX    A,@DPTR
+001CB9 FE                MOV     R6,A
+001CBA 904E59            MOV     DPTR,#tgpionum
+001CBD E0                MOVX    A,@DPTR
+001CBE F4                CPL     A
+001CBF FB                MOV     R3,A
+001CC0 EE                MOV     A,R6
+001CC1 5B                ANL     A,R3
+001CC2 D082              POP     DPL
+001CC4 D083              POP     DPH
+001CC6 F0                MOVX    @DPTR,A
+001CC7 E9                MOV     A,R1
+001CC8 2470              ADD     A,#070H
+001CCA F582              MOV     DPL,A
+001CCC E4                CLR     A
+001CCD 3480              ADDC    A,#080H
+001CCF F583              MOV     DPH,A
+001CD1 C083              PUSH    DPH
+001CD3 C082              PUSH    DPL
+001CD5 E0                MOVX    A,@DPTR
+001CD6 FE                MOV     R6,A
+001CD7 904E59            MOV     DPTR,#tgpionum
+001CDA E0                MOVX    A,@DPTR
+001CDB FA                MOV     R2,A
+001CDC EE                MOV     A,R6
+001CDD 4A                ORL     A,R2
+001CDE D082              POP     DPL
+001CE0 D083              POP     DPH
+001CE2 F0                MOVX    @DPTR,A
+001CE3 E9                MOV     A,R1
+001CE4 2474              ADD     A,#074H
+001CE6 F582              MOV     DPL,A
+001CE8 E4                CLR     A
+001CE9 3480              ADDC    A,#080H
+001CEB F583              MOV     DPH,A
+001CED E0                MOVX    A,@DPTR
+001CEE 5B                ANL     A,R3
+001CEF F0                MOVX    @DPTR,A
+001CF0 90811C            MOV     DPTR,#0811CH
+001CF3 E0                MOVX    A,@DPTR
+001CF4 F4                CPL     A
+001CF5 FE                MOV     R6,A
+001CF6 74BC              MOV     A,#LOW ksSelMapCurr
+001CF8 2F                ADD     A,R7
+001CF9 F582              MOV     DPL,A
+001CFB E4                CLR     A
+001CFC 344D              ADDC    A,#HIGH ksSelMapCurr
+001CFE F583              MOV     DPH,A
+001D00 EE                MOV     A,R6
+001D01 F0                MOVX    @DPTR,A
+001D02 8D82              MOV     DPL,R5
+001D04 8C83              MOV     DPH,R4
+001D06 C083              PUSH    DPH
+001D08 C082              PUSH    DPL
+001D0A E0                MOVX    A,@DPTR
+001D0B FE                MOV     R6,A
+001D0C 904E59            MOV     DPTR,#tgpionum
+001D0F E0                MOVX    A,@DPTR
+001D10 FD                MOV     R5,A
+001D11 EE                MOV     A,R6
+001D12 4D                ORL     A,R5
+001D13 D082              POP     DPL
+001D15 D083              POP     DPH
+001D17 F0                MOVX    @DPTR,A
+001D18 E9                MOV     A,R1
+001D19 2470              ADD     A,#070H
+001D1B FB                MOV     R3,A
+001D1C E4                CLR     A
+001D1D 3480              ADDC    A,#080H
+001D1F 8B82              MOV     DPL,R3
+001D21 F583              MOV     DPH,A
+001D23 E0                MOVX    A,@DPTR
+001D24 FE                MOV     R6,A
+001D25 ED                MOV     A,R5
+001D26 F4                CPL     A
+001D27 FD                MOV     R5,A
+001D28 EE                MOV     A,R6
+001D29 5D                ANL     A,R5
+001D2A F0                MOVX    @DPTR,A
+  268: 	Delay1ms(5);
+001D2B 0F                INC     R7
+001D2C 817F              AJMP    ?C0043?KEYSCAN
+001D2E         ?C0044?KEYSCAN:
+  269: 	for (i=0; col[i]!=0; i++) {
+001D2E 7F05              MOV     R7,#05H
+001D30 120A72            LCALL   _Delay1ms
+  270: 		tgroup = col[i]  >> 3;
+001D33 E4                CLR     A
+001D34 FF                MOV     R7,A
+001D35         ?C0046?KEYSCAN:
+001D35 EF                MOV     A,R7
+001D36 90060C            MOV     DPTR,#col
+001D39 93                MOVC    A,@A+DPTR
+001D3A 7002              JNZ     $ + 4H
+001D3C A1E4              AJMP    ?C0047?KEYSCAN
+  271: 		tgpionum = 1 << (col[i] & 7);
+001D3E EF                MOV     A,R7
+001D3F 93                MOVC    A,@A+DPTR
+001D40 FE                MOV     R6,A
+001D41 13                RRC     A
+001D42 13                RRC     A
+001D43 13                RRC     A
+001D44 541F              ANL     A,#01FH
+001D46 F9                MOV     R1,A
+001D47 904E58            MOV     DPTR,#tgroup
+001D4A F0                MOVX    @DPTR,A
+  272: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+001D4B EE                MOV     A,R6
+001D4C 5407              ANL     A,#07H
+001D4E FE                MOV     R6,A
+001D4F 7401              MOV     A,#01H
+001D51 A806              MOV     R0,AR6
+001D53 08                INC     R0
+001D54 8002              SJMP    ?C0095?KEYSCAN
+001D56         ?C0094?KEYSCAN:
+001D56 C3                CLR     C
+001D57 33                RLC     A
+001D58         ?C0095?KEYSCAN:
+001D58 D8FC              DJNZ    R0,?C0094?KEYSCAN
+001D5A 904E59            MOV     DPTR,#tgpionum
+001D5D F0                MOVX    @DPTR,A
+  273: 	}
+001D5E E9                MOV     A,R1
+001D5F 2478              ADD     A,#078H
+001D61 FD                MOV     R5,A
+001D62 E4                CLR     A
+001D63 3480              ADDC    A,#080H
+001D65 FC                MOV     R4,A
+001D66 8D82              MOV     DPL,R5
+001D68 F583              MOV     DPH,A
+001D6A C083              PUSH    DPH
+001D6C C082              PUSH    DPL
+001D6E E0                MOVX    A,@DPTR
+001D6F FE                MOV     R6,A
+001D70 904E59            MOV     DPTR,#tgpionum
+001D73 E0                MOVX    A,@DPTR
+001D74 F4                CPL     A
+001D75 FB                MOV     R3,A
+001D76 EE                MOV     A,R6
+001D77 5B                ANL     A,R3
+001D78 D082              POP     DPL
+001D7A D083              POP     DPH
+001D7C F0                MOVX    @DPTR,A
+001D7D E9                MOV     A,R1
+001D7E 2470              ADD     A,#070H
+001D80 F582              MOV     DPL,A
+001D82 E4                CLR     A
+001D83 3480              ADDC    A,#080H
+001D85 F583              MOV     DPH,A
+001D87 C083              PUSH    DPH
+001D89 C082              PUSH    DPL
+001D8B E0                MOVX    A,@DPTR
+001D8C FE                MOV     R6,A
+001D8D 904E59            MOV     DPTR,#tgpionum
+001D90 E0                MOVX    A,@DPTR
+001D91 FA                MOV     R2,A
+001D92 EE                MOV     A,R6
+001D93 4A                ORL     A,R2
+001D94 D082              POP     DPL
+001D96 D083              POP     DPH
+001D98 F0                MOVX    @DPTR,A
+001D99 E9                MOV     A,R1
+001D9A 2474              ADD     A,#074H
+001D9C F582              MOV     DPL,A
+001D9E E4                CLR     A
+001D9F 3480              ADDC    A,#080H
+001DA1 F583              MOV     DPH,A
+001DA3 E0                MOVX    A,@DPTR
+001DA4 5B                ANL     A,R3
+001DA5 F0                MOVX    @DPTR,A
+001DA6 90811C            MOV     DPTR,#0811CH
+001DA9 E0                MOVX    A,@DPTR
+001DAA F4                CPL     A
+001DAB FE                MOV     R6,A
+001DAC 74A8              MOV     A,#LOW ksSelMapCheck
+001DAE 2F                ADD     A,R7
+001DAF F582              MOV     DPL,A
+001DB1 E4                CLR     A
+001DB2 344D              ADDC    A,#HIGH ksSelMapCheck
+001DB4 F583              MOV     DPH,A
+001DB6 EE                MOV     A,R6
+001DB7 F0                MOVX    @DPTR,A
+001DB8 8D82              MOV     DPL,R5
+001DBA 8C83              MOV     DPH,R4
+001DBC C083              PUSH    DPH
+001DBE C082              PUSH    DPL
+001DC0 E0                MOVX    A,@DPTR
+001DC1 FE                MOV     R6,A
+001DC2 904E59            MOV     DPTR,#tgpionum
+001DC5 E0                MOVX    A,@DPTR
+001DC6 FD                MOV     R5,A
+001DC7 EE                MOV     A,R6
+001DC8 4D                ORL     A,R5
+001DC9 D082              POP     DPL
+001DCB D083              POP     DPH
+001DCD F0                MOVX    @DPTR,A
+001DCE E9                MOV     A,R1
+001DCF 2470              ADD     A,#070H
+001DD1 FB                MOV     R3,A
+001DD2 E4                CLR     A
+001DD3 3480              ADDC    A,#080H
+001DD5 8B82              MOV     DPL,R3
+001DD7 F583              MOV     DPH,A
+001DD9 E0                MOVX    A,@DPTR
+001DDA FE                MOV     R6,A
+001DDB ED                MOV     A,R5
+001DDC F4                CPL     A
+001DDD FD                MOV     R5,A
+001DDE EE                MOV     A,R6
+001DDF 5D                ANL     A,R5
+001DE0 F0                MOVX    @DPTR,A
+  274: 
+001DE1 0F                INC     R7
+001DE2 A135              AJMP    ?C0046?KEYSCAN
+001DE4         ?C0047?KEYSCAN:
+  275: 	for (i=0; col[i]!=0; i++) {
+001DE4 E4                CLR     A
+001DE5 FF                MOV     R7,A
+001DE6         ?C0049?KEYSCAN:
+001DE6 EF                MOV     A,R7
+001DE7 90060C            MOV     DPTR,#col
+001DEA 93                MOVC    A,@A+DPTR
+001DEB 6040              JZ      ?C0053?KEYSCAN
+  276: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+001DED 74BC              MOV     A,#LOW ksSelMapCurr
+001DEF 2F                ADD     A,R7
+001DF0 F582              MOV     DPL,A
+001DF2 E4                CLR     A
+001DF3 344D              ADDC    A,#HIGH ksSelMapCurr
+001DF5 F583              MOV     DPH,A
+001DF7 E0                MOVX    A,@DPTR
+001DF8 FE                MOV     R6,A
+001DF9 74A8              MOV     A,#LOW ksSelMapCheck
+001DFB 2F                ADD     A,R7
+001DFC F582              MOV     DPL,A
+001DFE E4                CLR     A
+001DFF 344D              ADDC    A,#HIGH ksSelMapCheck
+001E01 F583              MOV     DPH,A
+001E03 E0                MOVX    A,@DPTR
+001E04 6E                XRL     A,R6
+001E05 6023              JZ      ?C0051?KEYSCAN
+  277: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
+001E07 74BC              MOV     A,#LOW ksSelMapCurr
+001E09 2F                ADD     A,R7
+001E0A F582              MOV     DPL,A
+001E0C E4                CLR     A
+001E0D 344D              ADDC    A,#HIGH ksSelMapCurr
+001E0F F583              MOV     DPH,A
+001E11 C083              PUSH    DPH
+001E13 C082              PUSH    DPL
+001E15 E0                MOVX    A,@DPTR
+001E16 FE                MOV     R6,A
+001E17 74A8              MOV     A,#LOW ksSelMapCheck
+001E19 2F                ADD     A,R7
+001E1A F582              MOV     DPL,A
+001E1C E4                CLR     A
+001E1D 344D              ADDC    A,#HIGH ksSelMapCheck
+001E1F F583              MOV     DPH,A
+001E21 E0                MOVX    A,@DPTR
+001E22 FD                MOV     R5,A
+001E23 EE                MOV     A,R6
+001E24 5D                ANL     A,R5
+001E25 D082              POP     DPL
+001E27 D083              POP     DPH
+001E29 F0                MOVX    @DPTR,A
+  278: 		}
+  279: 	}
+001E2A         ?C0051?KEYSCAN:
+001E2A 0F                INC     R7
+001E2B 80B9              SJMP    ?C0049?KEYSCAN
+  280: }
+001E2D         ?C0053?KEYSCAN:
+001E2D 22                RET     
 ----- FUNCTION KS_ScanMatrix (END) -------
 
 
------ FUNCTION ksRawInitialize (BEGIN) -----
- FILE: 'keyscan.c'
-  190: static void ksRawInitialize()
-  191: {
-  192: 	byte i = 0;
-  193: 	
-001E97 E4                CLR      A
-001E98 904E9E            MOV      DPTR,#i
-001E9B F0                MOVX     @DPTR,A
-  194: 	for (i=0; i<8; i++) {
-001E9C F0                MOVX     @DPTR,A
-001E9D         ?C0028?KEYSCAN:
-001E9D 904E9E            MOV      DPTR,#i
-001EA0 E0                MOVX     A,@DPTR
-001EA1 FF                MOV      R7,A
-001EA2 C3                CLR      C
-001EA3 9408              SUBB     A,#08H
-001EA5 7480              MOV      A,#080H
-001EA7 9480              SUBB     A,#080H
-001EA9 500C              JNC      ?C0031?KEYSCAN
-  195: 		GPIO_SetInput(i, 0);
-001EAB C205              CLR      ?_GPIO_SetInput?BIT
-001EAD D1B8              ACALL    _GPIO_SetInput
-  196: 	}
-001EAF 904E9E            MOV      DPTR,#i
-001EB2 E0                MOVX     A,@DPTR
-001EB3 04                INC      A
-001EB4 F0                MOVX     @DPTR,A
-001EB5 80E6              SJMP     ?C0028?KEYSCAN
-  197: }
-001EB7         ?C0031?KEYSCAN:
-001EB7 22                RET      
------ FUNCTION ksRawInitialize (END) -------
-
-
------ FUNCTION _GPIO_SetInput (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R4' ----
-001EB8 AC07              MOV      R4,AR7
-001EBA EC                MOV      A,R4
-001EBB F4                CPL      A
-001EBC 6017              JZ       ?C0015?GPIO
-001EBE         ?C0014?GPIO:
-001EBE AF04              MOV      R7,AR4
-001EC0 A205              MOV      C,st
-001EC2 9203              MOV      ?_GPIO_SetPd?BIT,C
-001EC4 D1E7              ACALL    _GPIO_SetPd
-001EC6 AF04              MOV      R7,AR4
-001EC8 A205              MOV      C,st
-001ECA B3                CPL      C
-001ECB 9202              MOV      ?_GPIO_SetPu?BIT,C
-001ECD D1D6              ACALL    _GPIO_SetPu
-001ECF AF04              MOV      R7,AR4
-001ED1 C204              CLR      ?_GPIO_Setoe?BIT
-001ED3 D1F8              ACALL    _GPIO_Setoe
-001ED5         ?C0015?GPIO:
-001ED5 22                RET      
------ FUNCTION _GPIO_SetInput (END) -------
-
-
------ FUNCTION _GPIO_SetPu (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-001ED6 EF                MOV      A,R7
-001ED7 F4                CPL      A
-001ED8 600C              JZ       ?C0009?GPIO
-001EDA         ?C0008?GPIO:
-001EDA 7B01              MOV      R3,#01H
-001EDC 7A80              MOV      R2,#080H
-001EDE 7978              MOV      R1,#078H
-001EE0 A202              MOV      C,bit_val
-001EE2 9200              MOV      ?_gpioSetBit?BIT,C
-001EE4 F109              ACALL    _gpioSetBit
-001EE6         ?C0009?GPIO:
-001EE6 22                RET      
------ FUNCTION _GPIO_SetPu (END) -------
-
-
------ FUNCTION _GPIO_SetPd (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-001EE7 EF                MOV      A,R7
-001EE8 F4                CPL      A
-001EE9 600C              JZ       ?C0011?GPIO
-001EEB         ?C0010?GPIO:
-001EEB 7B01              MOV      R3,#01H
-001EED 7A80              MOV      R2,#080H
-001EEF 797C              MOV      R1,#07CH
-001EF1 A203              MOV      C,bit_val
-001EF3 9200              MOV      ?_gpioSetBit?BIT,C
-001EF5 F109              ACALL    _gpioSetBit
-001EF7         ?C0011?GPIO:
-001EF7 22                RET      
------ FUNCTION _GPIO_SetPd (END) -------
-
-
------ FUNCTION _GPIO_Setoe (BEGIN) -----
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-001EF8 EF                MOV      A,R7
-001EF9 F4                CPL      A
-001EFA 600C              JZ       ?C0013?GPIO
-001EFC         ?C0012?GPIO:
-001EFC 7B01              MOV      R3,#01H
-001EFE 7A80              MOV      R2,#080H
-001F00 7970              MOV      R1,#070H
-001F02 A204              MOV      C,bit_val
-001F04 9200              MOV      ?_gpioSetBit?BIT,C
-001F06 F109              ACALL    _gpioSetBit
-001F08         ?C0013?GPIO:
-001F08 22                RET      
------ FUNCTION _GPIO_Setoe (END) -------
-
-
------ FUNCTION _gpioSetBit (BEGIN) -----
-001F09 904E93            MOV      DPTR,#reg_base
-001F0C EB                MOV      A,R3
-001F0D F0                MOVX     @DPTR,A
-001F0E A3                INC      DPTR
-001F0F EA                MOV      A,R2
-001F10 F0                MOVX     @DPTR,A
-001F11 A3                INC      DPTR
-001F12 E9                MOV      A,R1
-001F13 F0                MOVX     @DPTR,A
-;---- Variable 'gpio_num' assigned to Register 'R7' ----
-;---- Variable 'queue' assigned to Register 'R6' ----
-001F14 E4                CLR      A
-001F15 FE                MOV      R6,A
-;---- Variable 'group' assigned to Register 'R5' ----
-001F16 FD                MOV      R5,A
-001F17 EF                MOV      A,R7
-001F18 5407              ANL      A,#07H
-001F1A FE                MOV      R6,A
-001F1B EF                MOV      A,R7
-001F1C 13                RRC      A
-001F1D 13                RRC      A
-001F1E 13                RRC      A
-001F1F 5403              ANL      A,#03H
-001F21 FD                MOV      R5,A
-001F22 300022            JNB      bit_val,?C0001?GPIO
-001F25 904E93            MOV      DPTR,#reg_base
-001F28 E0                MOVX     A,@DPTR
-001F29 FB                MOV      R3,A
-001F2A A3                INC      DPTR
-001F2B E0                MOVX     A,@DPTR
-001F2C FA                MOV      R2,A
-001F2D A3                INC      DPTR
-001F2E E0                MOVX     A,@DPTR
-001F2F 2D                ADD      A,R5
-001F30 F9                MOV      R1,A
-001F31 E4                CLR      A
-001F32 3A                ADDC     A,R2
-001F33 FA                MOV      R2,A
-001F34 1203B6            LCALL    ?C?CLDPTR
-001F37 FF                MOV      R7,A
-001F38 7401              MOV      A,#01H
-001F3A A806              MOV      R0,AR6
-001F3C 08                INC      R0
-001F3D 8002              SJMP     ?C0031?GPIO
-001F3F         ?C0030?GPIO:
-001F3F C3                CLR      C
-001F40 33                RLC      A
-001F41         ?C0031?GPIO:
-001F41 D8FC              DJNZ     R0,?C0030?GPIO
-001F43 4F                ORL      A,R7
-001F44 0203FC            LJMP     ?C?CSTPTR
-001F47         ?C0001?GPIO:
-001F47 904E93            MOV      DPTR,#reg_base
-001F4A E0                MOVX     A,@DPTR
-001F4B FB                MOV      R3,A
-001F4C A3                INC      DPTR
-001F4D E0                MOVX     A,@DPTR
-001F4E FA                MOV      R2,A
-001F4F A3                INC      DPTR
-001F50 E0                MOVX     A,@DPTR
-001F51 2D                ADD      A,R5
-001F52 F9                MOV      R1,A
-001F53 E4                CLR      A
-001F54 3A                ADDC     A,R2
-001F55 FA                MOV      R2,A
-001F56 1203B6            LCALL    ?C?CLDPTR
-001F59 FF                MOV      R7,A
-001F5A 7401              MOV      A,#01H
-001F5C A806              MOV      R0,AR6
-001F5E 08                INC      R0
-001F5F 8002              SJMP     ?C0033?GPIO
-001F61         ?C0032?GPIO:
-001F61 C3                CLR      C
-001F62 33                RLC      A
-001F63         ?C0033?GPIO:
-001F63 D8FC              DJNZ     R0,?C0032?GPIO
-001F65 F4                CPL      A
-001F66 5F                ANL      A,R7
-001F67 0203FC            LJMP     ?C?CSTPTR
------ FUNCTION _gpioSetBit (END) -------
-
-
------ FUNCTION LED_device_poweroff (BEGIN) -----
- FILE: 'led.c'
-   33: void LED_device_poweroff()
-   34: {
-   35: 	if(g_variable.current_device_num == 1)
-   36: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
-001F6A 904CC3            MOV      DPTR,#g_variable+04H
-001F6D E0                MOVX     A,@DPTR
-001F6E 6401              XRL      A,#01H
-001F70 7007              JNZ      ?C0009?LED
-   37: 	else if(g_variable.current_device_num == 2)
-001F72 D201              SETB     ?_GPIO_Setout?BIT
-001F74 7FFF              MOV      R7,#0FFH
-001F76 020754            LJMP     _GPIO_Setout
-001F79         ?C0009?LED:
-   38: 		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
-001F79 904CC3            MOV      DPTR,#g_variable+04H
-001F7C E0                MOVX     A,@DPTR
-001F7D 6402              XRL      A,#02H
-001F7F 7007              JNZ      ?C0011?LED
-   39: 	else if(g_variable.current_device_num == 3)
-001F81 D201              SETB     ?_GPIO_Setout?BIT
-001F83 7FFF              MOV      R7,#0FFH
-001F85 020754            LJMP     _GPIO_Setout
-001F88         ?C0011?LED:
-   40: 	{	
-001F88 904CC3            MOV      DPTR,#g_variable+04H
-001F8B E0                MOVX     A,@DPTR
-001F8C 6403              XRL      A,#03H
-001F8E 700E              JNZ      ?C0013?LED
-   41: 		GPIO_Setout(BT_LED_GPIO,LED_OFF);
-   42: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
-001F90 D201              SETB     ?_GPIO_Setout?BIT
-001F92 7FFF              MOV      R7,#0FFH
-001F94 120754            LCALL    _GPIO_Setout
-   43: 	}
-001F97 D206              SETB     ?_GPIO_SetOutput?BIT
-001F99 7F1D              MOV      R7,#01DH
-001F9B 020782            LJMP     _GPIO_SetOutput
-   44: 	else
-001F9E         ?C0013?LED:
-   45: 	{
-   46: 		GPIO_Setout(BT2_LED_GPIO,LED_OFF);
-001F9E D201              SETB     ?_GPIO_Setout?BIT
-001FA0 7FFF              MOV      R7,#0FFH
-001FA2 120754            LCALL    _GPIO_Setout
-   47: 		GPIO_SetOutput(LOWPOWER_LED_GPIO,LED_OFF);
-001FA5 D206              SETB     ?_GPIO_SetOutput?BIT
-001FA7 7F1D              MOV      R7,#01DH
-001FA9 020782            LJMP     _GPIO_SetOutput
-   48: 	}
------ FUNCTION LED_device_poweroff (END) -------
+----- FUNCTION _kb_multikey_setup (BEGIN) -----
+ FILE: 'kb_process.c'
+  462: void kb_multikey_setup(tKSEVENT *pEvt)
+  463: {
+001E2E 904E78            MOV     DPTR,#pEvt
+001E31 EB                MOV     A,R3
+001E32 F0                MOVX    @DPTR,A
+001E33 A3                INC     DPTR
+001E34 EA                MOV     A,R2
+001E35 F0                MOVX    @DPTR,A
+001E36 A3                INC     DPTR
+001E37 E9                MOV     A,R1
+001E38 F0                MOVX    @DPTR,A
+  464: 	byte i = 0;
+  465: 	
+001E39 E4                CLR     A
+001E3A A3                INC     DPTR
+001E3B F0                MOVX    @DPTR,A
+  466: 	for (i = 0;i < 6;i++)
+001E3C F0                MOVX    @DPTR,A
+001E3D         ?C0118?KB_PROCESS:
+001E3D 904E7B            MOV     DPTR,#i
+001E40 E0                MOVX    A,@DPTR
+001E41 FF                MOV     R7,A
+001E42 C3                CLR     C
+001E43 9406              SUBB    A,#06H
+001E45 4003              JC      $ + 5H
+001E47 0220EE            LJMP    ?C0169?KB_PROCESS
+  467: 	{		
+  468: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+001E4A 904E78            MOV     DPTR,#pEvt
+001E4D E0                MOVX    A,@DPTR
+001E4E FB                MOV     R3,A
+001E4F A3                INC     DPTR
+001E50 E0                MOVX    A,@DPTR
+001E51 FA                MOV     R2,A
+001E52 A3                INC     DPTR
+001E53 E0                MOVX    A,@DPTR
+001E54 2401              ADD     A,#01H
+001E56 F9                MOV     R1,A
+001E57 E4                CLR     A
+001E58 3A                ADDC    A,R2
+001E59 FA                MOV     R2,A
+001E5A 7E00              MOV     R6,#00H
+001E5C E9                MOV     A,R1
+001E5D 2F                ADD     A,R7
+001E5E F9                MOV     R1,A
+001E5F EE                MOV     A,R6
+001E60 3A                ADDC    A,R2
+001E61 FA                MOV     R2,A
+001E62 1203B6            LCALL   ?C?CLDPTR
+001E65 FF                MOV     R7,A
+001E66 54F0              ANL     A,#0F0H
+001E68 64F0              XRL     A,#0F0H
+001E6A 600A              JZ      ?C0122?KB_PROCESS
+001E6C EF                MOV     A,R7
+001E6D 54D0              ANL     A,#0D0H
+001E6F 64D0              XRL     A,#0D0H
+001E71 6003              JZ      $ + 5H
+001E73 0220E5            LJMP    ?C0120?KB_PROCESS
+001E76         ?C0122?KB_PROCESS:
+  469: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+  470: 		{
+  471: 			
+  472: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+001E76 1203B6            LCALL   ?C?CLDPTR
+001E79 FB                MOV     R3,A
+001E7A B4F10A            CJNE    A,#0F1H,?C0123?KB_PROCESS
+  473: 			{
+  474: 				kb_set_multikey(0x0183); 
+001E7D 7F83              MOV     R7,#083H
+001E7F 7E01              MOV     R6,#01H
+001E81 1217C7            LCALL   _kb_set_multikey
+  475: 			}
+001E84 0220BA            LJMP    ?C0124?KB_PROCESS
+001E87         ?C0123?KB_PROCESS:
+  476: 			else
+  477: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+001E87 EB                MOV     A,R3
+001E88 B4F20A            CJNE    A,#0F2H,?C0125?KB_PROCESS
+  478: 			{ 
+  479: 				kb_set_multikey(0x00cd);
+001E8B 7FCD              MOV     R7,#0CDH
+001E8D 7E00              MOV     R6,#00H
+001E8F 1217C7            LCALL   _kb_set_multikey
+  480: 			}
+001E92 0220BA            LJMP    ?C0124?KB_PROCESS
+001E95         ?C0125?KB_PROCESS:
+  481: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+001E95 904E78            MOV     DPTR,#pEvt
+001E98 E0                MOVX    A,@DPTR
+001E99 FB                MOV     R3,A
+001E9A A3                INC     DPTR
+001E9B E0                MOVX    A,@DPTR
+001E9C FA                MOV     R2,A
+001E9D A3                INC     DPTR
+001E9E E0                MOVX    A,@DPTR
+001E9F 2401              ADD     A,#01H
+001EA1 F9                MOV     R1,A
+001EA2 E4                CLR     A
+001EA3 3A                ADDC    A,R2
+001EA4 FA                MOV     R2,A
+001EA5 A3                INC     DPTR
+001EA6 E0                MOVX    A,@DPTR
+001EA7 7E00              MOV     R6,#00H
+001EA9 29                ADD     A,R1
+001EAA F9                MOV     R1,A
+001EAB EE                MOV     A,R6
+001EAC 3A                ADDC    A,R2
+001EAD FA                MOV     R2,A
+001EAE 1203B6            LCALL   ?C?CLDPTR
+001EB1 FB                MOV     R3,A
+001EB2 B4F308            CJNE    A,#0F3H,?C0127?KB_PROCESS
+  482: 			{
+  483: 				kb_set_multikey(0x00b7);
+001EB5 7FB7              MOV     R7,#0B7H
+001EB7 1217C7            LCALL   _kb_set_multikey
+  484: 			}	
+001EBA 0220BA            LJMP    ?C0124?KB_PROCESS
+001EBD         ?C0127?KB_PROCESS:
+  485: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+001EBD EB                MOV     A,R3
+001EBE B4F40A            CJNE    A,#0F4H,?C0129?KB_PROCESS
+  486: 			{
+  487: 				kb_set_multikey(0x00b6);
+001EC1 7FB6              MOV     R7,#0B6H
+001EC3 7E00              MOV     R6,#00H
+001EC5 1217C7            LCALL   _kb_set_multikey
+  488: 			}
+001EC8 0220BA            LJMP    ?C0124?KB_PROCESS
+001ECB         ?C0129?KB_PROCESS:
+  489: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+001ECB 904E78            MOV     DPTR,#pEvt
+001ECE E0                MOVX    A,@DPTR
+001ECF FB                MOV     R3,A
+001ED0 A3                INC     DPTR
+001ED1 E0                MOVX    A,@DPTR
+001ED2 FA                MOV     R2,A
+001ED3 A3                INC     DPTR
+001ED4 E0                MOVX    A,@DPTR
+001ED5 2401              ADD     A,#01H
+001ED7 F9                MOV     R1,A
+001ED8 E4                CLR     A
+001ED9 3A                ADDC    A,R2
+001EDA FA                MOV     R2,A
+001EDB A3                INC     DPTR
+001EDC E0                MOVX    A,@DPTR
+001EDD 7E00              MOV     R6,#00H
+001EDF 29                ADD     A,R1
+001EE0 F9                MOV     R1,A
+001EE1 EE                MOV     A,R6
+001EE2 3A                ADDC    A,R2
+001EE3 FA                MOV     R2,A
+001EE4 1203B6            LCALL   ?C?CLDPTR
+001EE7 FB                MOV     R3,A
+001EE8 B4F508            CJNE    A,#0F5H,?C0131?KB_PROCESS
+  490: 			{
+  491: 				kb_set_multikey(0x00b5);
+001EEB 7FB5              MOV     R7,#0B5H
+001EED 1217C7            LCALL   _kb_set_multikey
+  492: 			}
+001EF0 0220BA            LJMP    ?C0124?KB_PROCESS
+001EF3         ?C0131?KB_PROCESS:
+  493: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+001EF3 EB                MOV     A,R3
+001EF4 B4F60A            CJNE    A,#0F6H,?C0133?KB_PROCESS
+  494: 			{
+  495: 				kb_set_multikey(0x00ea);
+001EF7 7FEA              MOV     R7,#0EAH
+001EF9 7E00              MOV     R6,#00H
+001EFB 1217C7            LCALL   _kb_set_multikey
+  496: 			}
+001EFE 0220BA            LJMP    ?C0124?KB_PROCESS
+001F01         ?C0133?KB_PROCESS:
+  497: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+001F01 904E78            MOV     DPTR,#pEvt
+001F04 E0                MOVX    A,@DPTR
+001F05 FB                MOV     R3,A
+001F06 A3                INC     DPTR
+001F07 E0                MOVX    A,@DPTR
+001F08 FA                MOV     R2,A
+001F09 A3                INC     DPTR
+001F0A E0                MOVX    A,@DPTR
+001F0B 2401              ADD     A,#01H
+001F0D F9                MOV     R1,A
+001F0E E4                CLR     A
+001F0F 3A                ADDC    A,R2
+001F10 FA                MOV     R2,A
+001F11 A3                INC     DPTR
+001F12 E0                MOVX    A,@DPTR
+001F13 7E00              MOV     R6,#00H
+001F15 29                ADD     A,R1
+001F16 F9                MOV     R1,A
+001F17 EE                MOV     A,R6
+001F18 3A                ADDC    A,R2
+001F19 FA                MOV     R2,A
+001F1A 1203B6            LCALL   ?C?CLDPTR
+001F1D FB                MOV     R3,A
+001F1E B4F708            CJNE    A,#0F7H,?C0135?KB_PROCESS
+  498: 			{
+  499: 				kb_set_multikey(0x00e9);
+001F21 7FE9              MOV     R7,#0E9H
+001F23 1217C7            LCALL   _kb_set_multikey
+  500: 			}
+001F26 0220BA            LJMP    ?C0124?KB_PROCESS
+001F29         ?C0135?KB_PROCESS:
+  501: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+001F29 EB                MOV     A,R3
+001F2A B4F80A            CJNE    A,#0F8H,?C0137?KB_PROCESS
+  502: 			{
+  503: 				kb_set_multikey(0x00e2);
+001F2D 7FE2              MOV     R7,#0E2H
+001F2F 7E00              MOV     R6,#00H
+001F31 1217C7            LCALL   _kb_set_multikey
+  504: 			}
+001F34 0220BA            LJMP    ?C0124?KB_PROCESS
+001F37         ?C0137?KB_PROCESS:
+  505: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+001F37 904E78            MOV     DPTR,#pEvt
+001F3A E0                MOVX    A,@DPTR
+001F3B FB                MOV     R3,A
+001F3C A3                INC     DPTR
+001F3D E0                MOVX    A,@DPTR
+001F3E FA                MOV     R2,A
+001F3F A3                INC     DPTR
+001F40 E0                MOVX    A,@DPTR
+001F41 2401              ADD     A,#01H
+001F43 F9                MOV     R1,A
+001F44 E4                CLR     A
+001F45 3A                ADDC    A,R2
+001F46 FA                MOV     R2,A
+001F47 A3                INC     DPTR
+001F48 E0                MOVX    A,@DPTR
+001F49 7E00              MOV     R6,#00H
+001F4B 29                ADD     A,R1
+001F4C F9                MOV     R1,A
+001F4D EE                MOV     A,R6
+001F4E 3A                ADDC    A,R2
+001F4F FA                MOV     R2,A
+001F50 1203B6            LCALL   ?C?CLDPTR
+001F53 FB                MOV     R3,A
+001F54 B4F909            CJNE    A,#0F9H,?C0139?KB_PROCESS
+  506: 			{
+  507: 				kb_set_multikey(0x0194);
+001F57 7F94              MOV     R7,#094H
+001F59 0E                INC     R6
+001F5A 1217C7            LCALL   _kb_set_multikey
+  508: 			}	
+001F5D 0220BA            LJMP    ?C0124?KB_PROCESS
+001F60         ?C0139?KB_PROCESS:
+  509: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+001F60 EB                MOV     A,R3
+001F61 B4FA0A            CJNE    A,#0FAH,?C0141?KB_PROCESS
+  510: 			{
+  511: 				kb_set_multikey(0x018a);//mail
+001F64 7F8A              MOV     R7,#08AH
+001F66 7E01              MOV     R6,#01H
+001F68 1217C7            LCALL   _kb_set_multikey
+  512: 			}
+001F6B 0220BA            LJMP    ?C0124?KB_PROCESS
+001F6E         ?C0141?KB_PROCESS:
+  513: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+001F6E 904E78            MOV     DPTR,#pEvt
+001F71 E0                MOVX    A,@DPTR
+001F72 FB                MOV     R3,A
+001F73 A3                INC     DPTR
+001F74 E0                MOVX    A,@DPTR
+001F75 FA                MOV     R2,A
+001F76 A3                INC     DPTR
+001F77 E0                MOVX    A,@DPTR
+001F78 2401              ADD     A,#01H
+001F7A F9                MOV     R1,A
+001F7B E4                CLR     A
+001F7C 3A                ADDC    A,R2
+001F7D FA                MOV     R2,A
+001F7E A3                INC     DPTR
+001F7F E0                MOVX    A,@DPTR
+001F80 7E00              MOV     R6,#00H
+001F82 29                ADD     A,R1
+001F83 F9                MOV     R1,A
+001F84 EE                MOV     A,R6
+001F85 3A                ADDC    A,R2
+001F86 FA                MOV     R2,A
+001F87 1203B6            LCALL   ?C?CLDPTR
+001F8A FB                MOV     R3,A
+001F8B B4FB09            CJNE    A,#0FBH,?C0143?KB_PROCESS
+  514: 			{
+  515: 				kb_set_multikey(0x0192);
+001F8E 7F92              MOV     R7,#092H
+001F90 0E                INC     R6
+001F91 1217C7            LCALL   _kb_set_multikey
+  516: 			}
+001F94 0220BA            LJMP    ?C0124?KB_PROCESS
+001F97         ?C0143?KB_PROCESS:
+  517: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+001F97 EB                MOV     A,R3
+001F98 B4D00A            CJNE    A,#0D0H,?C0145?KB_PROCESS
+  518: 			{
+  519: 				kb_set_multikey(0x022a);//www Favorites
+001F9B 7F2A              MOV     R7,#02AH
+001F9D 7E02              MOV     R6,#02H
+001F9F 1217C7            LCALL   _kb_set_multikey
+  520: 			}
+001FA2 0220BA            LJMP    ?C0124?KB_PROCESS
+001FA5         ?C0145?KB_PROCESS:
+  521: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+001FA5 904E78            MOV     DPTR,#pEvt
+001FA8 E0                MOVX    A,@DPTR
+001FA9 FB                MOV     R3,A
+001FAA A3                INC     DPTR
+001FAB E0                MOVX    A,@DPTR
+001FAC FA                MOV     R2,A
+001FAD A3                INC     DPTR
+001FAE E0                MOVX    A,@DPTR
+001FAF 2401              ADD     A,#01H
+001FB1 F9                MOV     R1,A
+001FB2 E4                CLR     A
+001FB3 3A                ADDC    A,R2
+001FB4 FA                MOV     R2,A
+001FB5 A3                INC     DPTR
+001FB6 E0                MOVX    A,@DPTR
+001FB7 7E00              MOV     R6,#00H
+001FB9 29                ADD     A,R1
+001FBA F9                MOV     R1,A
+001FBB EE                MOV     A,R6
+001FBC 3A                ADDC    A,R2
+001FBD FA                MOV     R2,A
+001FBE 1203B6            LCALL   ?C?CLDPTR
+001FC1 FB                MOV     R3,A
+001FC2 B4D10A            CJNE    A,#0D1H,?C0147?KB_PROCESS
+  522: 			{
+  523: 				kb_set_multikey(0x0225);
+001FC5 7F25              MOV     R7,#025H
+001FC7 7E02              MOV     R6,#02H
+001FC9 1217C7            LCALL   _kb_set_multikey
+  524: 			}
+001FCC 0220BA            LJMP    ?C0124?KB_PROCESS
+001FCF         ?C0147?KB_PROCESS:
+  525: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+001FCF EB                MOV     A,R3
+001FD0 B4D30A            CJNE    A,#0D3H,?C0149?KB_PROCESS
+  526: 			{
+  527: 				kb_set_multikey(0x0226);
+001FD3 7F26              MOV     R7,#026H
+001FD5 7E02              MOV     R6,#02H
+001FD7 1217C7            LCALL   _kb_set_multikey
+  528: 			}
+001FDA 0220BA            LJMP    ?C0124?KB_PROCESS
+001FDD         ?C0149?KB_PROCESS:
+  529: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+001FDD 904E78            MOV     DPTR,#pEvt
+001FE0 E0                MOVX    A,@DPTR
+001FE1 FB                MOV     R3,A
+001FE2 A3                INC     DPTR
+001FE3 E0                MOVX    A,@DPTR
+001FE4 FA                MOV     R2,A
+001FE5 A3                INC     DPTR
+001FE6 E0                MOVX    A,@DPTR
+001FE7 2401              ADD     A,#01H
+001FE9 F9                MOV     R1,A
+001FEA E4                CLR     A
+001FEB 3A                ADDC    A,R2
+001FEC FA                MOV     R2,A
+001FED A3                INC     DPTR
+001FEE E0                MOVX    A,@DPTR
+001FEF 7E00              MOV     R6,#00H
+001FF1 29                ADD     A,R1
+001FF2 F9                MOV     R1,A
+001FF3 EE                MOV     A,R6
+001FF4 3A                ADDC    A,R2
+001FF5 FA                MOV     R2,A
+001FF6 1203B6            LCALL   ?C?CLDPTR
+001FF9 FB                MOV     R3,A
+001FFA B4D209            CJNE    A,#0D2H,?C0151?KB_PROCESS
+  530: 			{
+  531: 				kb_set_multikey(0x0224);
+001FFD 7F24              MOV     R7,#024H
+001FFF 7E02              MOV     R6,#02H
+002001 1217C7            LCALL   _kb_set_multikey
+  532: 			}
+002004 01BA              AJMP    ?C0124?KB_PROCESS
+002006         ?C0151?KB_PROCESS:
+  533: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+002006 EB                MOV     A,R3
+002007 B4D409            CJNE    A,#0D4H,?C0153?KB_PROCESS
+  534: 			{
+  535: 				kb_set_multikey(0x0227);
+00200A 7F27              MOV     R7,#027H
+00200C 7E02              MOV     R6,#02H
+00200E 1217C7            LCALL   _kb_set_multikey
+  536: 			}	
+002011 01BA              AJMP    ?C0124?KB_PROCESS
+002013         ?C0153?KB_PROCESS:
+  537: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+002013 904E78            MOV     DPTR,#pEvt
+002016 E0                MOVX    A,@DPTR
+002017 FB                MOV     R3,A
+002018 A3                INC     DPTR
+002019 E0                MOVX    A,@DPTR
+00201A FA                MOV     R2,A
+00201B A3                INC     DPTR
+00201C E0                MOVX    A,@DPTR
+00201D 2401              ADD     A,#01H
+00201F F9                MOV     R1,A
+002020 E4                CLR     A
+002021 3A                ADDC    A,R2
+002022 FA                MOV     R2,A
+002023 A3                INC     DPTR
+002024 E0                MOVX    A,@DPTR
+002025 7E00              MOV     R6,#00H
+002027 29                ADD     A,R1
+002028 F9                MOV     R1,A
+002029 EE                MOV     A,R6
+00202A 3A                ADDC    A,R2
+00202B FA                MOV     R2,A
+00202C 1203B6            LCALL   ?C?CLDPTR
+00202F FB                MOV     R3,A
+002030 B4D509            CJNE    A,#0D5H,?C0155?KB_PROCESS
+  538: 			{
+  539: 				kb_set_multikey(0x0221);
+002033 7F21              MOV     R7,#021H
+002035 7E02              MOV     R6,#02H
+002037 1217C7            LCALL   _kb_set_multikey
+  540: 			}
+00203A 807E              SJMP    ?C0124?KB_PROCESS
+00203C         ?C0155?KB_PROCESS:
+  541: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+00203C EB                MOV     A,R3
+00203D B4D609            CJNE    A,#0D6H,?C0157?KB_PROCESS
+  542: 			{
+  543: 				kb_set_multikey(0x0223);
+002040 7F23              MOV     R7,#023H
+002042 7E02              MOV     R6,#02H
+002044 1217C7            LCALL   _kb_set_multikey
+  544: 			} 	
+002047 8071              SJMP    ?C0124?KB_PROCESS
+002049         ?C0157?KB_PROCESS:
+  545: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+002049 904E78            MOV     DPTR,#pEvt
+00204C E0                MOVX    A,@DPTR
+00204D FB                MOV     R3,A
+00204E A3                INC     DPTR
+00204F E0                MOVX    A,@DPTR
+002050 FA                MOV     R2,A
+002051 A3                INC     DPTR
+002052 E0                MOVX    A,@DPTR
+002053 2401              ADD     A,#01H
+002055 F9                MOV     R1,A
+002056 E4                CLR     A
+002057 3A                ADDC    A,R2
+002058 FA                MOV     R2,A
+002059 A3                INC     DPTR
+00205A E0                MOVX    A,@DPTR
+00205B 7E00              MOV     R6,#00H
+00205D 29                ADD     A,R1
+00205E F9                MOV     R1,A
+00205F EE                MOV     A,R6
+002060 3A                ADDC    A,R2
+002061 FA                MOV     R2,A
+002062 1203B6            LCALL   ?C?CLDPTR
+002065 FB                MOV     R3,A
+002066 B4D707            CJNE    A,#0D7H,?C0159?KB_PROCESS
+  546: 			{
+  547: 				kb_set_multikey(0x0070);
+002069 7F70              MOV     R7,#070H
+00206B 1217C7            LCALL   _kb_set_multikey
+  548: 			}
+00206E 804A              SJMP    ?C0124?KB_PROCESS
+002070         ?C0159?KB_PROCESS:
+  549: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+002070 EB                MOV     A,R3
+002071 B4D809            CJNE    A,#0D8H,?C0161?KB_PROCESS
+  550: 			{
+  551: 				kb_set_multikey(0x006f);
+002074 7F6F              MOV     R7,#06FH
+002076 7E00              MOV     R6,#00H
+002078 1217C7            LCALL   _kb_set_multikey
+  552: 			}
+00207B 803D              SJMP    ?C0124?KB_PROCESS
+00207D         ?C0161?KB_PROCESS:
+  553: 		#ifdef SYSTEM_CONTROL_ENABLE
+  554: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_POWER_DOWN)
+00207D 904E78            MOV     DPTR,#pEvt
+002080 E0                MOVX    A,@DPTR
+002081 FB                MOV     R3,A
+002082 A3                INC     DPTR
+002083 E0                MOVX    A,@DPTR
+002084 FA                MOV     R2,A
+002085 A3                INC     DPTR
+002086 E0                MOVX    A,@DPTR
+002087 2401              ADD     A,#01H
+002089 F9                MOV     R1,A
+00208A E4                CLR     A
+00208B 3A                ADDC    A,R2
+00208C FA                MOV     R2,A
+00208D A3                INC     DPTR
+00208E E0                MOVX    A,@DPTR
+00208F 7E00              MOV     R6,#00H
+002091 29                ADD     A,R1
+002092 F9                MOV     R1,A
+002093 EE                MOV     A,R6
+002094 3A                ADDC    A,R2
+002095 FA                MOV     R2,A
+002096 1203B6            LCALL   ?C?CLDPTR
+002099 FE                MOV     R6,A
+00209A B4DD07            CJNE    A,#0DDH,?C0163?KB_PROCESS
+  555: 		      	{
+  556: 		        	kb_set_systemkey(0x01);
+00209D 7F01              MOV     R7,#01H
+00209F 1217E2            LCALL   _kb_set_systemkey
+  557: 		      	}
+0020A2 8016              SJMP    ?C0124?KB_PROCESS
+0020A4         ?C0163?KB_PROCESS:
+  558: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_SLEEP)
+0020A4 EE                MOV     A,R6
+0020A5 B4DE07            CJNE    A,#0DEH,?C0165?KB_PROCESS
+  559: 		      	{
+  560: 		        	kb_set_systemkey(0x02);
+0020A8 7F02              MOV     R7,#02H
+0020AA 1217E2            LCALL   _kb_set_systemkey
+  561: 		      	}
+0020AD 800B              SJMP    ?C0124?KB_PROCESS
+0020AF         ?C0165?KB_PROCESS:
+  562: 		      	else if (pEvt->ksPool[i] ==  HID_SYSTEM_KEY_WAKE_UP)
+0020AF 1203B6            LCALL   ?C?CLDPTR
+0020B2 B4DF05            CJNE    A,#0DFH,?C0124?KB_PROCESS
+  563: 		      	{
+  564: 		        	kb_set_systemkey(0x04);
+0020B5 7F04              MOV     R7,#04H
+0020B7 1217E2            LCALL   _kb_set_systemkey
+  565: 		      	}
+0020BA         ?C0124?KB_PROCESS:
+  566: 		#endif
+  567: 			
+  568: 			if(mult_key_status == KEY_WAIT_RELEASE)
+0020BA 904DE7            MOV     DPTR,#mult_key_status
+0020BD E0                MOVX    A,@DPTR
+0020BE B40224            CJNE    A,#02H,?C0120?KB_PROCESS
+  569: 			{
+  570: 				mult_key_value = pEvt->ksPool[i];
+0020C1 904E78            MOV     DPTR,#pEvt
+0020C4 E0                MOVX    A,@DPTR
+0020C5 FB                MOV     R3,A
+0020C6 A3                INC     DPTR
+0020C7 E0                MOVX    A,@DPTR
+0020C8 FA                MOV     R2,A
+0020C9 A3                INC     DPTR
+0020CA E0                MOVX    A,@DPTR
+0020CB 2401              ADD     A,#01H
+0020CD F9                MOV     R1,A
+0020CE E4                CLR     A
+0020CF 3A                ADDC    A,R2
+0020D0 FA                MOV     R2,A
+0020D1 A3                INC     DPTR
+0020D2 E0                MOVX    A,@DPTR
+0020D3 7E00              MOV     R6,#00H
+0020D5 29                ADD     A,R1
+0020D6 F9                MOV     R1,A
+0020D7 EE                MOV     A,R6
+0020D8 3A                ADDC    A,R2
+0020D9 FA                MOV     R2,A
+0020DA 1203B6            LCALL   ?C?CLDPTR
+0020DD 904DE6            MOV     DPTR,#mult_key_value
+0020E0 F0                MOVX    @DPTR,A
+  571: 				pEvt->ksPool[i] = 0;
+0020E1 E4                CLR     A
+0020E2 1203FC            LCALL   ?C?CSTPTR
+  572: 			}
+  573: 		}
+  574: 	}
+0020E5         ?C0120?KB_PROCESS:
+0020E5 904E7B            MOV     DPTR,#i
+0020E8 E0                MOVX    A,@DPTR
+0020E9 04                INC     A
+0020EA F0                MOVX    @DPTR,A
+0020EB 021E3D            LJMP    ?C0118?KB_PROCESS
+  575: }
+0020EE         ?C0169?KB_PROCESS:
+0020EE 22                RET     
+----- FUNCTION _kb_multikey_setup (END) -------
 
 
 ----- FUNCTION System_Software_init (BEGIN) -----
@@ -5822,325 +6176,304 @@
    48: {
    49: 	System_clear_mem();
    50: 	YC_adc_init();
-001FAC 120F02            LCALL    System_clear_mem
+0020EF 120EDC            LCALL   System_clear_mem
    51: 	g_variable.release_data =1;
-001FAF 1222AE            LCALL    YC_adc_init
+0020F2 310C              ACALL   YC_adc_init
    52: 	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
-001FB2 904CEB            MOV      DPTR,#g_variable+02CH
-001FB5 7401              MOV      A,#01H
-001FB7 F0                MOVX     @DPTR,A
+0020F4 904CEB            MOV     DPTR,#g_variable+02CH
+0020F7 7401              MOV     A,#01H
+0020F9 F0                MOVX    @DPTR,A
    53: 	g_variable.recon_count = 0;
-001FB8 904CE5            MOV      DPTR,#g_variable+026H
-001FBB 741E              MOV      A,#01EH
-001FBD F0                MOVX     @DPTR,A
+0020FA 904CE5            MOV     DPTR,#g_variable+026H
+0020FD 741E              MOV     A,#01EH
+0020FF F0                MOVX    @DPTR,A
    54: 	g_variable.test_buff = 0xff;
-001FBE E4                CLR      A
-001FBF 904CF0            MOV      DPTR,#g_variable+031H
-001FC2 F0                MOVX     @DPTR,A
+002100 E4                CLR     A
+002101 904CF0            MOV     DPTR,#g_variable+031H
+002104 F0                MOVX    @DPTR,A
    55: }
-001FC3 904D01            MOV      DPTR,#g_variable+042H
-001FC6 74FF              MOV      A,#0FFH
-001FC8 F0                MOVX     @DPTR,A
+002105 904D01            MOV     DPTR,#g_variable+042H
+002108 74FF              MOV     A,#0FFH
+00210A F0                MOVX    @DPTR,A
    56: 
-001FC9 22                RET      
+00210B 22                RET     
 ----- FUNCTION System_Software_init (END) -------
 
 
------ FUNCTION System_Hardware_reset (BEGIN) -----
- FILE: 'sys.c'
-   57: static void System_Hardware_reset()
-   58: {
-   59: 	m_reset_reg = 1;
-   60: 	while(1);
-001FCA 908010            MOV      DPTR,#m_reset_reg
-001FCD 7401              MOV      A,#01H
-001FCF F0                MOVX     @DPTR,A
-001FD0         ?C0004?SYS:
-   61: }
-001FD0 80FE              SJMP     ?C0004?SYS
-001FD2 22                RET      
------ FUNCTION System_Hardware_reset (END) -------
-
-
------ FUNCTION System_Reset_Connect (BEGIN) -----
- FILE: 'sys.c'
-   73: void System_Reset_Connect()
-   74: {
-   75: 	System_Hardware_reset();
-   76: }
-001FD3 80F5              SJMP     System_Hardware_reset
------ FUNCTION System_Reset_Connect (END) -------
-
-
------ FUNCTION _kb_cb_Hid (BEGIN) -----
- FILE: 'sys.c'
-   83: static void kb_cb_Hid(byte *p,byte len) {
-   84: 	//p[0] is hid type,always is 1(kb) now
-001FD5 904E98            MOV      DPTR,#len
-001FD8 ED                MOV      A,R5
-001FD9 F0                MOVX     @DPTR,A
-;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
-   85: 	byte temp = p[1];
-001FDA 900001            MOV      DPTR,#01H
-001FDD 1203CF            LCALL    ?C?CLDOPTR
-001FE0 904E99            MOV      DPTR,#temp
-001FE3 F0                MOVX     @DPTR,A
-   86: 
-   87: 	if (len<2) {
-   88: 		return;
-   89: 	}
-   90: }
-001FE4 22                RET      
------ FUNCTION _kb_cb_Hid (END) -------
-
-
------ FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
- FILE: 'sys.c'
-  255: void YC_pairing_timerout_500ms()
-  256: {
-  257: //pairing timer
-  258: 	if (g_variable.pairing_g24_timeout != 0)
-001FE5 904CEE            MOV      DPTR,#g_variable+02FH
-001FE8 E0                MOVX     A,@DPTR
-001FE9 6018              JZ       ?C0052?SYS
-  259: 	{
-  260: 		g_variable.sleepTimer = 0;
-001FEB E4                CLR      A
-001FEC 904CE3            MOV      DPTR,#g_variable+024H
-001FEF F0                MOVX     @DPTR,A
-001FF0 A3                INC      DPTR
-001FF1 F0                MOVX     @DPTR,A
-  261: 		g_variable.pairing_g24_timeout--;
-001FF2 904CEE            MOV      DPTR,#g_variable+02FH
-001FF5 E0                MOVX     A,@DPTR
-001FF6 14                DEC      A
-001FF7 F0                MOVX     @DPTR,A
-  262: 		if (g_variable.pairing_g24_timeout == 0)
-001FF8 E0                MOVX     A,@DPTR
-001FF9 7008              JNZ      ?C0052?SYS
-  263: 		{
-  264: //			IPC_TxControlCmd(IPC_CMD_STOP_24G);
-  265: 			Delay1ms(10);
-001FFB 7F0A              MOV      R7,#0AH
-001FFD 120A80            LCALL    _Delay1ms
-  266: 			System_long_sleep();
-002000 12176D            LCALL    System_long_sleep
-  267: 		}
-  268: 	}
-  269: }
-002003         ?C0052?SYS:
-002003 22                RET      
------ FUNCTION YC_pairing_timerout_500ms (END) -------
-
-
------ FUNCTION kb_button_press_timer500ms (BEGIN) -----
- FILE: 'sys.c'
-  271: void kb_button_press_timer500ms()
-  272: {
-  273: 	
-  274: //key status 
-  275: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
-002004 904CCE            MOV      DPTR,#g_variable+0FH
-002007 E0                MOVX     A,@DPTR
-002008 30E146            JNB      ACC.1,?C0053?SYS
-  276: 	{
-  277: 		if (g_variable.button_timer[1] < 250)
-00200B 904CD0            MOV      DPTR,#g_variable+011H
-00200E E0                MOVX     A,@DPTR
-00200F C3                CLR      C
-002010 94FA              SUBB     A,#0FAH
-002012 7480              MOV      A,#080H
-002014 9480              SUBB     A,#080H
-002016 5003              JNC      ?C0054?SYS
-  278: 			g_variable.button_timer[1]++;
-002018 E0                MOVX     A,@DPTR
-002019 04                INC      A
-00201A F0                MOVX     @DPTR,A
-00201B         ?C0054?SYS:
-  279: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
-00201B 904CD0            MOV      DPTR,#g_variable+011H
-00201E E0                MOVX     A,@DPTR
-00201F 64B4              XRL      A,#0B4H
-002021 703B              JNZ      ?C0059?SYS
-  280: 		{
-  281: 			press_long_time_flag++;
-002023 904DDC            MOV      DPTR,#press_long_time_flag
-002026 E0                MOVX     A,@DPTR
-002027 04                INC      A
-002028 F0                MOVX     @DPTR,A
-  282: 			if(press_long_time_flag <= 2)
-002029 E0                MOVX     A,@DPTR
-00202A D3                SETB     C
-00202B 9402              SUBB     A,#02H
-00202D 7480              MOV      A,#080H
-00202F 9480              SUBB     A,#080H
-002031 5007              JNC      ?C0056?SYS
-  283: 			{
-  284: 				g_variable.button_timer[1] = 0;
-002033 E4                CLR      A
-002034 904CD0            MOV      DPTR,#g_variable+011H
-002037 F0                MOVX     @DPTR,A
-  285: 			}
-002038 8024              SJMP     ?C0059?SYS
-00203A         ?C0056?SYS:
-  286: 			else if(press_long_time_flag == 3)
-00203A 904DDC            MOV      DPTR,#press_long_time_flag
-00203D E0                MOVX     A,@DPTR
-00203E 6403              XRL      A,#03H
-002040 701C              JNZ      ?C0059?SYS
-  287: 			{
-  288: 				long_press_flag = 1;
-002042 904DD5            MOV      DPTR,#long_press_flag
-002045 04                INC      A
-002046 F0                MOVX     @DPTR,A
-  289: 				g_variable.button_timer[1] = 0;
-002047 E4                CLR      A
-002048 904CD0            MOV      DPTR,#g_variable+011H
-00204B F0                MOVX     @DPTR,A
-  290: 				System_long_sleep();
-00204C 12176D            LCALL    System_long_sleep
-  291: 			}
-  292: 		}
-  293: 	}
-00204F 800D              SJMP     ?C0059?SYS
-002051         ?C0053?SYS:
-  294: 	else
-  295: 	{
-  296: 		press_long_time_flag = 0;
-002051 E4                CLR      A
-002052 904DDC            MOV      DPTR,#press_long_time_flag
-002055 F0                MOVX     @DPTR,A
-  297: 		long_press_flag = 0;
-002056 904DD5            MOV      DPTR,#long_press_flag
-002059 F0                MOVX     @DPTR,A
-  298: 		g_variable.button_timer[1] = 0;
-00205A 904CD0            MOV      DPTR,#g_variable+011H
-00205D F0                MOVX     @DPTR,A
-  299: 	}
-00205E         ?C0059?SYS:
-  300: 		
-  301: 	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
-00205E 904CCE            MOV      DPTR,#g_variable+0FH
-002061 E0                MOVX     A,@DPTR
-002062 30E435            JNB      ACC.4,?C0060?SYS
-  302: 	{
-  303: 		g_variable.delay_enter_lpm_timer = 10;
-002065 904CEA            MOV      DPTR,#g_variable+02BH
-002068 740A              MOV      A,#0AH
-00206A F0                MOVX     @DPTR,A
-  304: 		if (g_variable.button_timer[2] < 250)
-00206B 904CD1            MOV      DPTR,#g_variable+012H
-00206E E0                MOVX     A,@DPTR
-00206F C3                CLR      C
-002070 94FA              SUBB     A,#0FAH
-002072 7480              MOV      A,#080H
-002074 9480              SUBB     A,#080H
-002076 5003              JNC      ?C0061?SYS
-  305: 			g_variable.button_timer[2]++;
-002078 E0                MOVX     A,@DPTR
-002079 04                INC      A
-00207A F0                MOVX     @DPTR,A
-00207B         ?C0061?SYS:
-  306: 		if (g_variable.button_timer[2] == 6)
-00207B 904CD1            MOV      DPTR,#g_variable+012H
-00207E E0                MOVX     A,@DPTR
-00207F 6406              XRL      A,#06H
-002081 701C              JNZ      ?C0066?SYS
-  307: 		{
-  308: 			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
-002083 904CC3            MOV      DPTR,#g_variable+04H
-002086 E0                MOVX     A,@DPTR
-002087 6004              JZ       ?C0064?SYS
-002089 64FE              XRL      A,#0FEH
-00208B 7012              JNZ      ?C0066?SYS
-00208D         ?C0064?SYS:
-  309: 			{
-  310: 				YC_disconnect_all_link();
-00208D 120FD4            LCALL    YC_disconnect_all_link
-  311: 				Delay1ms(10);
-002090 7F0A              MOV      R7,#0AH
-002092 120A80            LCALL    _Delay1ms
-  312: 				YC_key_action_handle(KEY_PAIRING_24G);
-002095 7F0A              MOV      R7,#0AH
-002097 020834            LJMP     _YC_key_action_handle
-  313: 			}
-  314: 		}
-  315: 	}
-00209A         ?C0060?SYS:
-  316: 	else
-  317: 		g_variable.button_timer[2] = 0;
-00209A E4                CLR      A
-00209B 904CD1            MOV      DPTR,#g_variable+012H
-00209E F0                MOVX     @DPTR,A
-  318: 	
-  319: }
-00209F         ?C0066?SYS:
-00209F 22                RET      
------ FUNCTION kb_button_press_timer500ms (END) -------
+----- FUNCTION YC_adc_init (BEGIN) -----
+ FILE: 'adc.c'
+    3: void YC_adc_init()
+    4: {
+    5: #ifdef  ADC_ENABLE
+    6: 	byte i;
+    7: 	
+    8: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+00210C 904CD3            MOV     DPTR,#g_variable+014H
+00210F 7405              MOV     A,#05H
+002111 F0                MOVX    @DPTR,A
+    9: 	g_variable.battery_value_index = 0;
+002112 E4                CLR     A
+002113 A3                INC     DPTR
+002114 F0                MOVX    @DPTR,A
+   10: 
+   11: #ifdef ADC_TYPE_HVIN 	
+   12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+   13: 	{
+   14: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+   15: 	}
+   16: 
+   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++)
+   22: 		{
+   23: 			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
+   24: 		}
+   25: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V2+m_adc0vBase;
+   26: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V0+m_adc0vBase;
+   27: #endif
+   28: #ifdef ADC_TYPE_GPIO
+   29: 	m_adc_channel = ADC_CHANNEL;
+002115 904C90            MOV     DPTR,#m_adc_channel
+002118 7433              MOV     A,#033H
+00211A F0                MOVX    @DPTR,A
+   30: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+00211B E4                CLR     A
+00211C FF                MOV     R7,A
+00211D         ?C0001?ADC:
+   31: 	{
+   32: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE_GPIO;
+00211D EF                MOV     A,R7
+00211E 25E0              ADD     A,ACC
+002120 24D6              ADD     A,#LOW g_variable+017H
+002122 F582              MOV     DPL,A
+002124 E4                CLR     A
+002125 344C              ADDC    A,#HIGH g_variable+017H
+002127 F583              MOV     DPH,A
+002129 7462              MOV     A,#062H
+00212B F0                MOVX    @DPTR,A
+00212C A3                INC     DPTR
+00212D F0                MOVX    @DPTR,A
+   33: 	}
+00212E 0F                INC     R7
+00212F EF                MOV     A,R7
+002130 B404EA            CJNE    A,#04H,?C0001?ADC
+002133         ?C0002?ADC:
+   34: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
+002133 904C91            MOV     DPTR,#m_adc0vBase
+002136 E0                MOVX    A,@DPTR
+002137 FE                MOV     R6,A
+002138 A3                INC     DPTR
+002139 E0                MOVX    A,@DPTR
+00213A FF                MOV     R7,A
+00213B C3                CLR     C
+00213C 904C94            MOV     DPTR,#m_adc3vValue+01H
+00213F E0                MOVX    A,@DPTR
+002140 9F                SUBB    A,R7
+002141 FD                MOV     R5,A
+002142 904C93            MOV     DPTR,#m_adc3vValue
+002145 E0                MOVX    A,@DPTR
+002146 9E                SUBB    A,R6
+002147 FC                MOV     R4,A
+002148 E4                CLR     A
+002149 120206            LCALL   ?C?FCASTI
+00214C 7BC3              MOV     R3,#0C3H
+00214E 7AF5              MOV     R2,#0F5H
+002150 79A8              MOV     R1,#0A8H
+002152 783E              MOV     R0,#03EH
+002154 1200FB            LCALL   ?C?FPMUL
+002157 C004              PUSH    AR4
+002159 C005              PUSH    AR5
+00215B C006              PUSH    AR6
+00215D C007              PUSH    AR7
+00215F 904C91            MOV     DPTR,#m_adc0vBase
+002162 E0                MOVX    A,@DPTR
+002163 FC                MOV     R4,A
+002164 A3                INC     DPTR
+002165 E0                MOVX    A,@DPTR
+002166 FD                MOV     R5,A
+002167 E4                CLR     A
+002168 120206            LCALL   ?C?FCASTI
+00216B D003              POP     AR3
+00216D D002              POP     AR2
+00216F D001              POP     AR1
+002171 D000              POP     AR0
+002173 12000A            LCALL   ?C?FPADD
+002176 12023F            LCALL   ?C?CASTF
+002179 904CDE            MOV     DPTR,#g_variable+01FH
+00217C EE                MOV     A,R6
+00217D F0                MOVX    @DPTR,A
+00217E A3                INC     DPTR
+00217F EF                MOV     A,R7
+002180 F0                MOVX    @DPTR,A
+   35: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+002181 904C91            MOV     DPTR,#m_adc0vBase
+002184 E0                MOVX    A,@DPTR
+002185 FE                MOV     R6,A
+002186 A3                INC     DPTR
+002187 E0                MOVX    A,@DPTR
+002188 FF                MOV     R7,A
+002189 C3                CLR     C
+00218A 904C94            MOV     DPTR,#m_adc3vValue+01H
+00218D E0                MOVX    A,@DPTR
+00218E 9F                SUBB    A,R7
+00218F FD                MOV     R5,A
+002190 904C93            MOV     DPTR,#m_adc3vValue
+002193 E0                MOVX    A,@DPTR
+002194 9E                SUBB    A,R6
+002195 FC                MOV     R4,A
+002196 E4                CLR     A
+002197 120206            LCALL   ?C?FCASTI
+00219A 7B5C              MOV     R3,#05CH
+00219C 7A8F              MOV     R2,#08FH
+00219E 7942              MOV     R1,#042H
+0021A0 783E              MOV     R0,#03EH
+0021A2 1200FB            LCALL   ?C?FPMUL
+0021A5 C004              PUSH    AR4
+0021A7 C005              PUSH    AR5
+0021A9 C006              PUSH    AR6
+0021AB C007              PUSH    AR7
+0021AD 904C91            MOV     DPTR,#m_adc0vBase
+0021B0 E0                MOVX    A,@DPTR
+0021B1 FC                MOV     R4,A
+0021B2 A3                INC     DPTR
+0021B3 E0                MOVX    A,@DPTR
+0021B4 FD                MOV     R5,A
+0021B5 E4                CLR     A
+0021B6 120206            LCALL   ?C?FCASTI
+0021B9 D003              POP     AR3
+0021BB D002              POP     AR2
+0021BD D001              POP     AR1
+0021BF D000              POP     AR0
+0021C1 12000A            LCALL   ?C?FPADD
+0021C4 12023F            LCALL   ?C?CASTF
+0021C7 904CE0            MOV     DPTR,#g_variable+021H
+0021CA EE                MOV     A,R6
+0021CB F0                MOVX    @DPTR,A
+0021CC A3                INC     DPTR
+0021CD EF                MOV     A,R7
+0021CE F0                MOVX    @DPTR,A
+   36: #endif	
+   37: #endif
+   38: }
+0021CF 22                RET     
+----- FUNCTION YC_adc_init (END) -------
 
 
------ FUNCTION kb_cb_Timer500ms (BEGIN) -----
+----- FUNCTION System_Hardware_reset (BEGIN) -----
  FILE: 'sys.c'
-  323: static void kb_cb_Timer500ms()
-  324: {
-  325: 	LED_timer500ms();	
-  326: 
-0020A0 1206D0            LCALL    LED_timer500ms
-  327: 	g_variable.sleepTimer++;
-0020A3 904CE4            MOV      DPTR,#g_variable+025H
-0020A6 E0                MOVX     A,@DPTR
-0020A7 04                INC      A
-0020A8 F0                MOVX     @DPTR,A
-0020A9 7006              JNZ      ?C0104?SYS
-0020AB 904CE3            MOV      DPTR,#g_variable+024H
-0020AE E0                MOVX     A,@DPTR
-0020AF 04                INC      A
-0020B0 F0                MOVX     @DPTR,A
-0020B1         ?C0104?SYS:
-  328: 
-  329: 	YC_adc_check_timer500ms();
-0020B1 11BB              ACALL    YC_adc_check_timer500ms
-  330: 	YC_connect_timeout_500ms();
-0020B3 121781            LCALL    YC_connect_timeout_500ms
-  331: 	kb_button_press_timer500ms();
-0020B6 1104              ACALL    kb_button_press_timer500ms
-  332: 	YC_pairing_timerout_500ms();
-0020B8 021FE5            LJMP     YC_pairing_timerout_500ms
-  333: 	
-  334: 	return;
------ FUNCTION kb_cb_Timer500ms (END) -------
+   57: static void System_Hardware_reset()
+   58: {
+   59: 	m_reset_reg = 1;
+   60: 	while(1);
+0021D0 908010            MOV     DPTR,#m_reset_reg
+0021D3 7401              MOV     A,#01H
+0021D5 F0                MOVX    @DPTR,A
+0021D6         ?C0004?SYS:
+   61: }
+0021D6 80FE              SJMP    ?C0004?SYS
+0021D8 22                RET     
+----- FUNCTION System_Hardware_reset (END) -------
 
 
------ FUNCTION YC_adc_check_timer500ms (BEGIN) -----
- FILE: 'adc.c'
-   85: void YC_adc_check_timer500ms()
-   86: {
-   87: #ifdef  ADC_ENABLE
-   88: 	// adc check timer	
-   89: 	if (g_variable.battery_check_interval)
-0020BB 904CD3            MOV      DPTR,#g_variable+014H
-0020BE E0                MOVX     A,@DPTR
-0020BF 600A              JZ       ?C0017?ADC
-   90: 	{
-   91: 		g_variable.battery_check_interval--;
-0020C1 14                DEC      A
-0020C2 F0                MOVX     @DPTR,A
-   92: 		if (g_variable.battery_check_interval == 0)
-0020C3 E0                MOVX     A,@DPTR
-0020C4 7005              JNZ      ?C0017?ADC
-   93: 		{
-   94: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
-0020C6 7405              MOV      A,#05H
-0020C8 F0                MOVX     @DPTR,A
-   95: 			YC_adc_check();
-0020C9 11CC              ACALL    YC_adc_check
-   96: 		}
-   97: 	}
-   98: #endif	
-   99: }
-0020CB         ?C0017?ADC:
-0020CB 22                RET      
------ FUNCTION YC_adc_check_timer500ms (END) -------
+----- FUNCTION System_Reset_Connect (BEGIN) -----
+ FILE: 'sys.c'
+   73: void System_Reset_Connect()
+   74: {
+   75: 	System_Hardware_reset();
+   76: }
+0021D9 80F5              SJMP    System_Hardware_reset
+----- FUNCTION System_Reset_Connect (END) -------
+
+
+----- FUNCTION _kb_cb_Hid (BEGIN) -----
+ FILE: 'sys.c'
+   83: static void kb_cb_Hid(byte *p,byte len) {
+   84: 	//p[0] is hid type,always is 1(kb) now
+0021DB 904E98            MOV     DPTR,#len
+0021DE ED                MOV     A,R5
+0021DF F0                MOVX    @DPTR,A
+;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
+   85: 	byte temp = p[1];
+0021E0 900001            MOV     DPTR,#01H
+0021E3 1203CF            LCALL   ?C?CLDOPTR
+0021E6 904E99            MOV     DPTR,#temp
+0021E9 F0                MOVX    @DPTR,A
+   86: 
+   87: 	if (len<2) {
+   88: 		return;
+   89: 	}
+   90: }
+0021EA 22                RET     
+----- FUNCTION _kb_cb_Hid (END) -------
+
+
+----- FUNCTION YC_connect_timeout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  228: void YC_connect_timeout_500ms()
+  229: {
+  230: 	
+  231: //system long sleep timer
+  232: 	if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+0021EB 904CC5            MOV     DPTR,#g_variable+06H
+0021EE E0                MOVX    A,@DPTR
+0021EF B40312            CJNE    A,#03H,?C0042?SYS
+  233: 	{
+  234: 		if (g_variable.sleepTimer >= STANDBY_TIMER_30MIN)	
+0021F2 C3                CLR     C
+0021F3 904CE4            MOV     DPTR,#g_variable+025H
+0021F6 E0                MOVX    A,@DPTR
+0021F7 9410              SUBB    A,#010H
+0021F9 904CE3            MOV     DPTR,#g_variable+024H
+0021FC E0                MOVX    A,@DPTR
+0021FD 940E              SUBB    A,#0EH
+0021FF 402E              JC      ?C0049?SYS
+  235: 			System_long_sleep();	// 2.4g long sleep  lpm will wakeup every 3min15s
+002201 0207DA            LJMP    System_long_sleep
+  236: 	}
+002204         ?C0042?SYS:
+  237: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+002204 904CC5            MOV     DPTR,#g_variable+06H
+002207 E0                MOVX    A,@DPTR
+002208 B40112            CJNE    A,#01H,?C0045?SYS
+  238: 	{
+  239: 		if (g_variable.sleepTimer >= BT_PAIRING_TIME_OUT_1MIN)
+00220B C3                CLR     C
+00220C 904CE4            MOV     DPTR,#g_variable+025H
+00220F E0                MOVX    A,@DPTR
+002210 9478              SUBB    A,#078H
+002212 904CE3            MOV     DPTR,#g_variable+024H
+002215 E0                MOVX    A,@DPTR
+002216 9400              SUBB    A,#00H
+002218 4015              JC      ?C0049?SYS
+  240: 		{
+  241: 			System_long_sleep();
+00221A 0207DA            LJMP    System_long_sleep
+  242: 		}
+  243: 	}
+00221D         ?C0045?SYS:
+  244: 	else
+  245: 	{
+  246: 		if (g_variable.sleepTimer >= RECONNECT_TIMER_10S)
+00221D C3                CLR     C
+00221E 904CE4            MOV     DPTR,#g_variable+025H
+002221 E0                MOVX    A,@DPTR
+002222 9414              SUBB    A,#014H
+002224 904CE3            MOV     DPTR,#g_variable+024H
+002227 E0                MOVX    A,@DPTR
+002228 9400              SUBB    A,#00H
+00222A 4003              JC      ?C0049?SYS
+  247: 		{
+  248: 			System_long_sleep();
+00222C 1207DA            LCALL   System_long_sleep
+  249: 		}
+  250: 	}
+  251: }
+00222F         ?C0049?SYS:
+00222F 22                RET     
+----- FUNCTION YC_connect_timeout_500ms (END) -------
 
 
 ----- FUNCTION YC_adc_check (BEGIN) -----
@@ -6150,1211 +6483,939 @@
    42: #ifdef  ADC_ENABLE
    43: 	byte i;
    44: 	ulong batValue = 0;
-0020CC 904E6F            MOV      DPTR,#batValue
-0020CF 120533            LCALL    ?C?LSTKXDATA
-0020D2 00                DB       00H
-0020D3 00                DB       00H
-0020D4 00                DB       00H
-0020D5 00                DB       00H
+002230 904E6F            MOV     DPTR,#batValue
+002233 120533            LCALL   ?C?LSTKXDATA
+002236 00                DB      00H
+002237 00                DB      00H
+002238 00                DB      00H
+002239 00                DB      00H
    45: 
    46: 	if(!m_adcCurrentValue)
-0020D6 904C95            MOV      DPTR,#m_adcCurrentValue
-0020D9 E0                MOVX     A,@DPTR
-0020DA 7002              JNZ      ?C0018?ADC
-0020DC A3                INC      DPTR
-0020DD E0                MOVX     A,@DPTR
-0020DE         ?C0018?ADC:
-0020DE 7002              JNZ      $ + 4H
-0020E0 21ED              AJMP     ?C0006?ADC
+00223A 904C95            MOV     DPTR,#m_adcCurrentValue
+00223D E0                MOVX    A,@DPTR
+00223E 7002              JNZ     ?C0018?ADC
+002240 A3                INC     DPTR
+002241 E0                MOVX    A,@DPTR
+002242         ?C0018?ADC:
+002242 7002              JNZ     $ + 4H
+002244 6144              AJMP    ?C0006?ADC
+002246         ?C0005?ADC:
    47: 		return;
    48: 
    49: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
-0020E2 904C95            MOV      DPTR,#m_adcCurrentValue
-0020E5 E0                MOVX     A,@DPTR
-0020E6 FE                MOV      R6,A
-0020E7 A3                INC      DPTR
-0020E8 E0                MOVX     A,@DPTR
-0020E9 FF                MOV      R7,A
-0020EA 904CD4            MOV      DPTR,#g_variable+015H
-0020ED E0                MOVX     A,@DPTR
-0020EE FD                MOV      R5,A
-0020EF 04                INC      A
-0020F0 F0                MOVX     @DPTR,A
-0020F1 ED                MOV      A,R5
-0020F2 25E0              ADD      A,ACC
-0020F4 24D6              ADD      A,#LOW g_variable+017H
-0020F6 F582              MOV      DPL,A
-0020F8 E4                CLR      A
-0020F9 344C              ADDC     A,#HIGH g_variable+017H
-0020FB F583              MOV      DPH,A
-0020FD EE                MOV      A,R6
-0020FE F0                MOVX     @DPTR,A
-0020FF A3                INC      DPTR
-002100 EF                MOV      A,R7
-002101 F0                MOVX     @DPTR,A
+002246 904C95            MOV     DPTR,#m_adcCurrentValue
+002249 E0                MOVX    A,@DPTR
+00224A FE                MOV     R6,A
+00224B A3                INC     DPTR
+00224C E0                MOVX    A,@DPTR
+00224D FF                MOV     R7,A
+00224E 904CD4            MOV     DPTR,#g_variable+015H
+002251 E0                MOVX    A,@DPTR
+002252 FD                MOV     R5,A
+002253 04                INC     A
+002254 F0                MOVX    @DPTR,A
+002255 ED                MOV     A,R5
+002256 25E0              ADD     A,ACC
+002258 24D6              ADD     A,#LOW g_variable+017H
+00225A F582              MOV     DPL,A
+00225C E4                CLR     A
+00225D 344C              ADDC    A,#HIGH g_variable+017H
+00225F F583              MOV     DPH,A
+002261 EE                MOV     A,R6
+002262 F0                MOVX    @DPTR,A
+002263 A3                INC     DPTR
+002264 EF                MOV     A,R7
+002265 F0                MOVX    @DPTR,A
    50: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
-002102 904CD4            MOV      DPTR,#g_variable+015H
-002105 E0                MOVX     A,@DPTR
-002106 C3                CLR      C
-002107 9404              SUBB     A,#04H
-002109 7480              MOV      A,#080H
-00210B 9480              SUBB     A,#080H
-00210D 4002              JC       ?C0007?ADC
+002266 904CD4            MOV     DPTR,#g_variable+015H
+002269 E0                MOVX    A,@DPTR
+00226A C3                CLR     C
+00226B 9404              SUBB    A,#04H
+00226D 4002              JC      ?C0007?ADC
    51: 		g_variable.battery_value_index = 0;
-00210F E4                CLR      A
-002110 F0                MOVX     @DPTR,A
-002111         ?C0007?ADC:
+00226F E4                CLR     A
+002270 F0                MOVX    @DPTR,A
+002271         ?C0007?ADC:
    52: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-002111 E4                CLR      A
-002112 904E6E            MOV      DPTR,#i
-002115 F0                MOVX     @DPTR,A
-002116         ?C0008?ADC:
-002116 904E6E            MOV      DPTR,#i
-002119 E0                MOVX     A,@DPTR
-00211A C3                CLR      C
-00211B 9404              SUBB     A,#04H
-00211D 7480              MOV      A,#080H
-00211F 9480              SUBB     A,#080H
-002121 503D              JNC      ?C0009?ADC
+002271 E4                CLR     A
+002272 904E6E            MOV     DPTR,#i
+002275 F0                MOVX    @DPTR,A
+002276         ?C0008?ADC:
    53: 	{
    54: 		batValue += g_variable.battery_value[i];
-002123 A3                INC      DPTR
-002124 E0                MOVX     A,@DPTR
-002125 F8                MOV      R0,A
-002126 A3                INC      DPTR
-002127 E0                MOVX     A,@DPTR
-002128 F9                MOV      R1,A
-002129 A3                INC      DPTR
-00212A E0                MOVX     A,@DPTR
-00212B FA                MOV      R2,A
-00212C A3                INC      DPTR
-00212D E0                MOVX     A,@DPTR
-00212E FB                MOV      R3,A
-00212F 904E6E            MOV      DPTR,#i
-002132 E0                MOVX     A,@DPTR
-002133 25E0              ADD      A,ACC
-002135 24D6              ADD      A,#LOW g_variable+017H
-002137 F582              MOV      DPL,A
-002139 E4                CLR      A
-00213A 344C              ADDC     A,#HIGH g_variable+017H
-00213C F583              MOV      DPH,A
-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 E4                CLR      A
-002144 FC                MOV      R4,A
-002145 FD                MOV      R5,A
-002146 EB                MOV      A,R3
-002147 2F                ADD      A,R7
-002148 FF                MOV      R7,A
-002149 EA                MOV      A,R2
-00214A 3E                ADDC     A,R6
-00214B FE                MOV      R6,A
-00214C ED                MOV      A,R5
-00214D 39                ADDC     A,R1
-00214E FD                MOV      R5,A
-00214F EC                MOV      A,R4
-002150 38                ADDC     A,R0
-002151 FC                MOV      R4,A
-002152 904E6F            MOV      DPTR,#batValue
-002155 120527            LCALL    ?C?LSTXDATA
+002276 904E6F            MOV     DPTR,#batValue
+002279 E0                MOVX    A,@DPTR
+00227A F8                MOV     R0,A
+00227B A3                INC     DPTR
+00227C E0                MOVX    A,@DPTR
+00227D F9                MOV     R1,A
+00227E A3                INC     DPTR
+00227F E0                MOVX    A,@DPTR
+002280 FA                MOV     R2,A
+002281 A3                INC     DPTR
+002282 E0                MOVX    A,@DPTR
+002283 FB                MOV     R3,A
+002284 904E6E            MOV     DPTR,#i
+002287 E0                MOVX    A,@DPTR
+002288 25E0              ADD     A,ACC
+00228A 24D6              ADD     A,#LOW g_variable+017H
+00228C F582              MOV     DPL,A
+00228E E4                CLR     A
+00228F 344C              ADDC    A,#HIGH g_variable+017H
+002291 F583              MOV     DPH,A
+002293 E0                MOVX    A,@DPTR
+002294 FE                MOV     R6,A
+002295 A3                INC     DPTR
+002296 E0                MOVX    A,@DPTR
+002297 FF                MOV     R7,A
+002298 E4                CLR     A
+002299 FC                MOV     R4,A
+00229A FD                MOV     R5,A
+00229B EB                MOV     A,R3
+00229C 2F                ADD     A,R7
+00229D FF                MOV     R7,A
+00229E EA                MOV     A,R2
+00229F 3E                ADDC    A,R6
+0022A0 FE                MOV     R6,A
+0022A1 ED                MOV     A,R5
+0022A2 39                ADDC    A,R1
+0022A3 FD                MOV     R5,A
+0022A4 EC                MOV     A,R4
+0022A5 38                ADDC    A,R0
+0022A6 FC                MOV     R4,A
+0022A7 904E6F            MOV     DPTR,#batValue
+0022AA 120527            LCALL   ?C?LSTXDATA
    55: 	}
-002158 904E6E            MOV      DPTR,#i
-00215B E0                MOVX     A,@DPTR
-00215C 04                INC      A
-00215D F0                MOVX     @DPTR,A
-00215E 80B6              SJMP     ?C0008?ADC
-002160         ?C0009?ADC:
+0022AD 904E6E            MOV     DPTR,#i
+0022B0 E0                MOVX    A,@DPTR
+0022B1 04                INC     A
+0022B2 F0                MOVX    @DPTR,A
+0022B3 E0                MOVX    A,@DPTR
+0022B4 B404BF            CJNE    A,#04H,?C0008?ADC
+0022B7         ?C0009?ADC:
    56: 	batValue = batValue/BAT_ARRAY_LEN;
-002160 904E6F            MOV      DPTR,#batValue
-002163 E0                MOVX     A,@DPTR
-002164 FC                MOV      R4,A
-002165 A3                INC      DPTR
-002166 E0                MOVX     A,@DPTR
-002167 FD                MOV      R5,A
-002168 A3                INC      DPTR
-002169 E0                MOVX     A,@DPTR
-00216A FE                MOV      R6,A
-00216B A3                INC      DPTR
-00216C E0                MOVX     A,@DPTR
-00216D FF                MOV      R7,A
-00216E E4                CLR      A
-00216F 7B04              MOV      R3,#04H
-002171 FA                MOV      R2,A
-002172 F9                MOV      R1,A
-002173 F8                MOV      R0,A
-002174 120476            LCALL    ?C?ULDIV
-002177 904E6F            MOV      DPTR,#batValue
-00217A 120527            LCALL    ?C?LSTXDATA
+0022B7 904E6F            MOV     DPTR,#batValue
+0022BA E0                MOVX    A,@DPTR
+0022BB FC                MOV     R4,A
+0022BC A3                INC     DPTR
+0022BD E0                MOVX    A,@DPTR
+0022BE FD                MOV     R5,A
+0022BF A3                INC     DPTR
+0022C0 E0                MOVX    A,@DPTR
+0022C1 FE                MOV     R6,A
+0022C2 A3                INC     DPTR
+0022C3 E0                MOVX    A,@DPTR
+0022C4 FF                MOV     R7,A
+0022C5 E4                CLR     A
+0022C6 7B04              MOV     R3,#04H
+0022C8 FA                MOV     R2,A
+0022C9 F9                MOV     R1,A
+0022CA F8                MOV     R0,A
+0022CB 120476            LCALL   ?C?ULDIV
+0022CE 904E6F            MOV     DPTR,#batValue
+0022D1 120527            LCALL   ?C?LSTXDATA
    57: 
    58: 	if(batValue < g_variable.battery_level_shutdown)
-00217D 904CE0            MOV      DPTR,#g_variable+021H
-002180 E0                MOVX     A,@DPTR
-002181 FE                MOV      R6,A
-002182 A3                INC      DPTR
-002183 E0                MOVX     A,@DPTR
-002184 FF                MOV      R7,A
-002185 E4                CLR      A
-002186 FC                MOV      R4,A
-002187 FD                MOV      R5,A
-002188 904E6F            MOV      DPTR,#batValue
-00218B E0                MOVX     A,@DPTR
-00218C F8                MOV      R0,A
-00218D A3                INC      DPTR
-00218E E0                MOVX     A,@DPTR
-00218F F9                MOV      R1,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 FB                MOV      R3,A
-002196 C3                CLR      C
-002197 120516            LCALL    ?C?ULCMP
-00219A 5007              JNC      ?C0011?ADC
+0022D4 904CE0            MOV     DPTR,#g_variable+021H
+0022D7 E0                MOVX    A,@DPTR
+0022D8 FE                MOV     R6,A
+0022D9 A3                INC     DPTR
+0022DA E0                MOVX    A,@DPTR
+0022DB FF                MOV     R7,A
+0022DC E4                CLR     A
+0022DD FC                MOV     R4,A
+0022DE FD                MOV     R5,A
+0022DF 904E6F            MOV     DPTR,#batValue
+0022E2 E0                MOVX    A,@DPTR
+0022E3 F8                MOV     R0,A
+0022E4 A3                INC     DPTR
+0022E5 E0                MOVX    A,@DPTR
+0022E6 F9                MOV     R1,A
+0022E7 A3                INC     DPTR
+0022E8 E0                MOVX    A,@DPTR
+0022E9 FA                MOV     R2,A
+0022EA A3                INC     DPTR
+0022EB E0                MOVX    A,@DPTR
+0022EC FB                MOV     R3,A
+0022ED C3                CLR     C
+0022EE 120516            LCALL   ?C?ULCMP
+0022F1 5007              JNC     ?C0011?ADC
    59: 	{
    60: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
-00219C 904CD5            MOV      DPTR,#g_variable+016H
-00219F 7402              MOV      A,#02H
-0021A1 F0                MOVX     @DPTR,A
+0022F3 904CD5            MOV     DPTR,#g_variable+016H
+0022F6 7402              MOV     A,#02H
+0022F8 F0                MOVX    @DPTR,A
    61: 	}
-0021A2 22                RET      
-0021A3         ?C0011?ADC:
+0022F9 22                RET     
+0022FA         ?C0011?ADC:
    62: 	else
    63: 	{
    64: 		if (batValue < g_variable.battery_level_low)
-0021A3 904CDE            MOV      DPTR,#g_variable+01FH
-0021A6 E0                MOVX     A,@DPTR
-0021A7 FE                MOV      R6,A
-0021A8 A3                INC      DPTR
-0021A9 E0                MOVX     A,@DPTR
-0021AA FF                MOV      R7,A
-0021AB E4                CLR      A
-0021AC FC                MOV      R4,A
-0021AD FD                MOV      R5,A
-0021AE 904E6F            MOV      DPTR,#batValue
-0021B1 E0                MOVX     A,@DPTR
-0021B2 F8                MOV      R0,A
-0021B3 A3                INC      DPTR
-0021B4 E0                MOVX     A,@DPTR
-0021B5 F9                MOV      R1,A
-0021B6 A3                INC      DPTR
-0021B7 E0                MOVX     A,@DPTR
-0021B8 FA                MOV      R2,A
-0021B9 A3                INC      DPTR
-0021BA E0                MOVX     A,@DPTR
-0021BB FB                MOV      R3,A
-0021BC C3                CLR      C
-0021BD 120516            LCALL    ?C?ULCMP
-0021C0 5017              JNC      ?C0013?ADC
+0022FA 904CDE            MOV     DPTR,#g_variable+01FH
+0022FD E0                MOVX    A,@DPTR
+0022FE FE                MOV     R6,A
+0022FF A3                INC     DPTR
+002300 E0                MOVX    A,@DPTR
+002301 FF                MOV     R7,A
+002302 E4                CLR     A
+002303 FC                MOV     R4,A
+002304 FD                MOV     R5,A
+002305 904E6F            MOV     DPTR,#batValue
+002308 E0                MOVX    A,@DPTR
+002309 F8                MOV     R0,A
+00230A A3                INC     DPTR
+00230B E0                MOVX    A,@DPTR
+00230C F9                MOV     R1,A
+00230D A3                INC     DPTR
+00230E E0                MOVX    A,@DPTR
+00230F FA                MOV     R2,A
+002310 A3                INC     DPTR
+002311 E0                MOVX    A,@DPTR
+002312 FB                MOV     R3,A
+002313 C3                CLR     C
+002314 120516            LCALL   ?C?ULCMP
+002317 5017              JNC     ?C0013?ADC
    65: 		{
    66: 			g_variable.battery_status = BAT_STATUS_LOW;
-0021C2 904CD5            MOV      DPTR,#g_variable+016H
-0021C5 7401              MOV      A,#01H
-0021C7 F0                MOVX     @DPTR,A
+002319 904CD5            MOV     DPTR,#g_variable+016H
+00231C 7401              MOV     A,#01H
+00231E F0                MOVX    @DPTR,A
    67: 			m_24g_enter_hibernate[0]	= 0x00;
-0021C8 E4                CLR      A
-0021C9 904D3D            MOV      DPTR,#m_24g_enter_hibernate
-0021CC F0                MOVX     @DPTR,A
+00231F E4                CLR     A
+002320 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+002323 F0                MOVX    @DPTR,A
    68: 			m_24g_enter_hibernate[1]	= 0x48;
-0021CD A3                INC      DPTR
-0021CE 7448              MOV      A,#048H
-0021D0 F0                MOVX     @DPTR,A
+002324 A3                INC     DPTR
+002325 7448              MOV     A,#048H
+002327 F0                MOVX    @DPTR,A
    69: 			m_24g_enter_hibernate[2]	= 0x12;		// 100ms
-0021D1 A3                INC      DPTR
-0021D2 7412              MOV      A,#012H
-0021D4 F0                MOVX     @DPTR,A
+002328 A3                INC     DPTR
+002329 7412              MOV     A,#012H
+00232B F0                MOVX    @DPTR,A
    70: 			m_24g_enter_hibernate[3]	= 0x00;
-0021D5 E4                CLR      A
-0021D6 A3                INC      DPTR
-0021D7 F0                MOVX     @DPTR,A
+00232C E4                CLR     A
+00232D A3                INC     DPTR
+00232E F0                MOVX    @DPTR,A
    71: 		}
-0021D8 22                RET      
-0021D9         ?C0013?ADC:
+00232F 22                RET     
+002330         ?C0013?ADC:
    72: 		else
    73: 		{
    74: 			g_variable.battery_status = BAT_STATUS_NONE;
-0021D9 E4                CLR      A
-0021DA 904CD5            MOV      DPTR,#g_variable+016H
-0021DD F0                MOVX     @DPTR,A
+002330 E4                CLR     A
+002331 904CD5            MOV     DPTR,#g_variable+016H
+002334 F0                MOVX    @DPTR,A
    75: 			m_24g_enter_hibernate[0]	= 0x00;
-0021DE 904D3D            MOV      DPTR,#m_24g_enter_hibernate
-0021E1 F0                MOVX     @DPTR,A
+002335 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+002338 F0                MOVX    @DPTR,A
    76: 			m_24g_enter_hibernate[1]	= 0x48;
-0021E2 A3                INC      DPTR
-0021E3 7448              MOV      A,#048H
-0021E5 F0                MOVX     @DPTR,A
+002339 A3                INC     DPTR
+00233A 7448              MOV     A,#048H
+00233C F0                MOVX    @DPTR,A
    77: 			m_24g_enter_hibernate[2]   = 0x5d;		// 510ms
-0021E6 A3                INC      DPTR
-0021E7 745D              MOV      A,#05DH
-0021E9 F0                MOVX     @DPTR,A
+00233D A3                INC     DPTR
+00233E 745D              MOV     A,#05DH
+002340 F0                MOVX    @DPTR,A
    78: 			m_24g_enter_hibernate[3]	= 0x00;
-0021EA E4                CLR      A
-0021EB A3                INC      DPTR
-0021EC F0                MOVX     @DPTR,A
+002341 E4                CLR     A
+002342 A3                INC     DPTR
+002343 F0                MOVX    @DPTR,A
    79: 		}
    80: 	}
    81: #endif	
    82: }
-0021ED         ?C0006?ADC:
-0021ED 22                RET      
+002344         ?C0006?ADC:
+002344 22                RET     
 ----- FUNCTION YC_adc_check (END) -------
 
 
------ FUNCTION kb_cb_Timer100ms (BEGIN) -----
- FILE: 'sys.c'
-  338: static void kb_cb_Timer100ms()
-  339: {
-  340: 
-  341: 	if (g_variable.delay_enter_lpm_timer) 
-0021EE 904CEA            MOV      DPTR,#g_variable+02BH
-0021F1 E0                MOVX     A,@DPTR
-0021F2 6002              JZ       ?C0068?SYS
-  342: 	{
-  343: 		g_variable.delay_enter_lpm_timer --;
-0021F4 14                DEC      A
-0021F5 F0                MOVX     @DPTR,A
-  344: 	}
-0021F6         ?C0068?SYS:
-  345: 
-  346: 	if(g_variable.recon_delay)
-0021F6 904CEF            MOV      DPTR,#g_variable+030H
-0021F9 E0                MOVX     A,@DPTR
-0021FA 6002              JZ       ?C0069?SYS
-  347: 		g_variable.recon_delay--;
-0021FC 14                DEC      A
-0021FD F0                MOVX     @DPTR,A
-0021FE         ?C0069?SYS:
-  348: 
-  349: 
-  350: 	if(g_variable.one_key_press_wait_release_timer)
-0021FE 904CF8            MOV      DPTR,#g_variable+039H
-002201 E0                MOVX     A,@DPTR
-002202 600B              JZ       ?C0070?SYS
-  351: 	{
-  352: 		g_variable.one_key_press_wait_release_timer--;
-002204 14                DEC      A
-002205 F0                MOVX     @DPTR,A
-  353: 		if(!g_variable.one_key_press_wait_release_timer)
-002206 E0                MOVX     A,@DPTR
-002207 7006              JNZ      ?C0070?SYS
-  354: 			g_variable.key_combination_step = CAMBINATION_KEY_NULL;
-002209 904CF4            MOV      DPTR,#g_variable+035H
-00220C 7406              MOV      A,#06H
-00220E F0                MOVX     @DPTR,A
-  355: 	}
-00220F         ?C0070?SYS:
-  356: 
-  357: 	if (g_variable.powerOn_timer != 0)
-00220F 904CE5            MOV      DPTR,#g_variable+026H
-002212 E0                MOVX     A,@DPTR
-002213 600F              JZ       ?C0072?SYS
-  358: 	{			
-  359: 		g_variable.powerOn_timer--;
-002215 14                DEC      A
-002216 F0                MOVX     @DPTR,A
-  360: 		
-  361: 		if (!g_variable.powerOn_timer)
-002217 E0                MOVX     A,@DPTR
-002218 7005              JNZ      ?C0073?SYS
-  362: 		{
-  363: 			LED_device_poweroff();
-00221A 121F6A            LCALL    LED_device_poweroff
-  364: 		}
-00221D 8044              SJMP     ?C0075?SYS
-00221F         ?C0073?SYS:
-  365: 		else 
-  366: 			LED_device_poweron();
-00221F 12079F            LCALL    LED_device_poweron
-  367: 	}
-002222 803F              SJMP     ?C0075?SYS
-002224         ?C0072?SYS:
-  368: 	else
-  369: 	if (g_variable.pairing_g24_timeout == 0) //bt  pairing
-002224 904CEE            MOV      DPTR,#g_variable+02FH
-002227 E0                MOVX     A,@DPTR
-002228 7039              JNZ      ?C0075?SYS
-  370: 	{
-  371: 		if(g_variable.battery_low_led_flash_interval)
-00222A 904CE2            MOV      DPTR,#g_variable+023H
-00222D E0                MOVX     A,@DPTR
-00222E 6033              JZ       ?C0075?SYS
-  372: 		{
-  373: 			g_variable.battery_low_led_flash_interval--;
-002230 14                DEC      A
-002231 F0                MOVX     @DPTR,A
-  374: 			if(g_variable.battery_low_led_flash_interval < 8)
-002232 E0                MOVX     A,@DPTR
-002233 FF                MOV      R7,A
-002234 C3                CLR      C
-002235 9408              SUBB     A,#08H
-002237 7480              MOV      A,#080H
-002239 9480              SUBB     A,#080H
-00223B 5016              JNC      ?C0078?SYS
-  375: 			{
-  376: 				if(g_variable.battery_low_led_flash_interval & 0x02)
-00223D EF                MOV      A,R7
-00223E 30E109            JNB      ACC.1,?C0079?SYS
-  377: 				{
-  378: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
-002241 C201              CLR      ?_GPIO_Setout?BIT
-002243 7F1D              MOV      R7,#01DH
-002245 120754            LCALL    _GPIO_Setout
-  379: 				}
-002248 8010              SJMP     ?C0081?SYS
-00224A         ?C0079?SYS:
-  380: 				else
-  381: 				{
-  382: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
-00224A D201              SETB     ?_GPIO_Setout?BIT
-00224C 7F1D              MOV      R7,#01DH
-00224E 120754            LCALL    _GPIO_Setout
-  383: 				}	
-  384: 			}
-002251 8007              SJMP     ?C0081?SYS
-002253         ?C0078?SYS:
-  385: 			else
-  386: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-002253 D201              SETB     ?_GPIO_Setout?BIT
-002255 7F1D              MOV      R7,#01DH
-002257 120754            LCALL    _GPIO_Setout
-00225A         ?C0081?SYS:
-  387: 			if(!g_variable.battery_low_led_flash_interval)
-00225A 904CE2            MOV      DPTR,#g_variable+023H
-00225D E0                MOVX     A,@DPTR
-00225E 7003              JNZ      ?C0075?SYS
-  388: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
-002260 7418              MOV      A,#018H
-002262 F0                MOVX     @DPTR,A
-  389: 		}
-  390: 	}
-002263         ?C0075?SYS:
-  391: 	
-  392: // The dongle must receive data within 200ms, otherwise it will be forced to lift
-  393: 	if(!long_press_flag)
-002263 904DD5            MOV      DPTR,#long_press_flag
-002266 E0                MOVX     A,@DPTR
-002267 702D              JNZ      ?C0083?SYS
-  394: 	{
-  395: 		if (repeat_send_24g == 1)
-002269 904DD6            MOV      DPTR,#repeat_send_24g
-00226C E0                MOVX     A,@DPTR
-00226D 6401              XRL      A,#01H
-00226F 7025              JNZ      ?C0083?SYS
-  396: 		{
-  397: 			repeat_send_24g = 0;
-002271 F0                MOVX     @DPTR,A
-  398: 
-  399: 			 if (multikey[0] != 0)
-002272 904DE8            MOV      DPTR,#multikey
-002275 E0                MOVX     A,@DPTR
-002276 600D              JZ       ?C0085?SYS
-  400: 			{
-  401: 				IPC_TxHidData(multikey, 3);
-002278 7B01              MOV      R3,#01H
-00227A 7A4D              MOV      R2,#HIGH multikey
-00227C 79E8              MOV      R1,#LOW multikey
-00227E 7D03              MOV      R5,#03H
-002280 120FF4            LCALL    _IPC_TxHidData
-  402: 			}
-002283 8011              SJMP     ?C0083?SYS
-002285         ?C0085?SYS:
-  403: 			else if (hidBuff[0] != 0)
-002285 904800            MOV      DPTR,#hidBuff
-002288 E0                MOVX     A,@DPTR
-002289 600B              JZ       ?C0083?SYS
-  404: 			{
-  405: 
-  406: 				IPC_TxHidData(hidBuff,9);
-00228B 7B01              MOV      R3,#01H
-00228D 7A48              MOV      R2,#HIGH hidBuff
-00228F 7900              MOV      R1,#LOW hidBuff
-002291 7D09              MOV      R5,#09H
-002293 120FF4            LCALL    _IPC_TxHidData
-  407: 			}
-  408: 		}
-  409: 	}
-002296         ?C0083?SYS:
-  410: 
-  411: 	if (delayChgInvTimer != 0){
-002296 904DDF            MOV      DPTR,#delayChgInvTimer
-002299 E0                MOVX     A,@DPTR
-00229A 6011              JZ       ?C0091?SYS
-  412: 		delayChgInvTimer--;
-00229C E0                MOVX     A,@DPTR
-00229D 14                DEC      A
-00229E F0                MOVX     @DPTR,A
-  413: 		if (delayChgInvTimer == 0)
-00229F E0                MOVX     A,@DPTR
-0022A0 700B              JNZ      ?C0091?SYS
-  414: 		{
-  415: 
-  416: 			if(!delayChgInvTimer && m_24g_led_flag)
-0022A2 E0                MOVX     A,@DPTR
-0022A3 7008              JNZ      ?C0091?SYS
-0022A5 904D47            MOV      DPTR,#m_24g_led_flag
-0022A8 E0                MOVX     A,@DPTR
-0022A9 6002              JZ       ?C0091?SYS
-  417: 			{
-  418: 				m_24g_led_flag = 0;
-0022AB E4                CLR      A
-0022AC F0                MOVX     @DPTR,A
-  419: 			}
-  420: 
-  421: 		}
-  422: 	}
-  423: }
-0022AD         ?C0091?SYS:
-0022AD 22                RET      
------ FUNCTION kb_cb_Timer100ms (END) -------
-
-
------ FUNCTION YC_adc_init (BEGIN) -----
- FILE: 'adc.c'
-    3: void YC_adc_init()
-    4: {
-    5: #ifdef  ADC_ENABLE
-    6: 	byte i;
-    7: 	
-    8: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
-0022AE 904CD3            MOV      DPTR,#g_variable+014H
-0022B1 7405              MOV      A,#05H
-0022B3 F0                MOVX     @DPTR,A
-    9: 	g_variable.battery_value_index = 0;
-0022B4 E4                CLR      A
-0022B5 A3                INC      DPTR
-0022B6 F0                MOVX     @DPTR,A
-   10: 
-   11: #ifdef ADC_TYPE_HVIN 	
-   12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-   13: 	{
-   14: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
-   15: 	}
-   16: 
-   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++)
-   22: 		{
-   23: 			g_variable.battery_value[i] = INIT_BATTERY_VALUE_VINLPM;
-   24: 		}
-   25: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V2+m_adc0vBase;
-   26: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_2V0+m_adc0vBase;
-   27: #endif
-   28: #ifdef ADC_TYPE_GPIO
-   29: 	m_adc_channel = ADC_CHANNEL;
-0022B7 904C90            MOV      DPTR,#m_adc_channel
-0022BA 7433              MOV      A,#033H
-0022BC F0                MOVX     @DPTR,A
-   30: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-;---- Variable 'i' assigned to Register 'R7' ----
-0022BD E4                CLR      A
-0022BE FF                MOV      R7,A
-0022BF         ?C0001?ADC:
-0022BF EF                MOV      A,R7
-0022C0 C3                CLR      C
-0022C1 9404              SUBB     A,#04H
-0022C3 7480              MOV      A,#080H
-0022C5 9480              SUBB     A,#080H
-0022C7 5014              JNC      ?C0002?ADC
-   31: 	{
-   32: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE_GPIO;
-0022C9 EF                MOV      A,R7
-0022CA 25E0              ADD      A,ACC
-0022CC 24D6              ADD      A,#LOW g_variable+017H
-0022CE F582              MOV      DPL,A
-0022D0 E4                CLR      A
-0022D1 344C              ADDC     A,#HIGH g_variable+017H
-0022D3 F583              MOV      DPH,A
-0022D5 7462              MOV      A,#062H
-0022D7 F0                MOVX     @DPTR,A
-0022D8 A3                INC      DPTR
-0022D9 F0                MOVX     @DPTR,A
-   33: 	}
-0022DA 0F                INC      R7
-0022DB 80E2              SJMP     ?C0001?ADC
-0022DD         ?C0002?ADC:
-   34: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
-0022DD 904C91            MOV      DPTR,#m_adc0vBase
-0022E0 E0                MOVX     A,@DPTR
-0022E1 FE                MOV      R6,A
-0022E2 A3                INC      DPTR
-0022E3 E0                MOVX     A,@DPTR
-0022E4 FF                MOV      R7,A
-0022E5 C3                CLR      C
-0022E6 904C94            MOV      DPTR,#m_adc3vValue+01H
-0022E9 E0                MOVX     A,@DPTR
-0022EA 9F                SUBB     A,R7
-0022EB FD                MOV      R5,A
-0022EC 904C93            MOV      DPTR,#m_adc3vValue
-0022EF E0                MOVX     A,@DPTR
-0022F0 9E                SUBB     A,R6
-0022F1 FC                MOV      R4,A
-0022F2 E4                CLR      A
-0022F3 120206            LCALL    ?C?FCASTI
-0022F6 7BC3              MOV      R3,#0C3H
-0022F8 7AF5              MOV      R2,#0F5H
-0022FA 79A8              MOV      R1,#0A8H
-0022FC 783E              MOV      R0,#03EH
-0022FE 1200FB            LCALL    ?C?FPMUL
-002301 C004              PUSH     AR4
-002303 C005              PUSH     AR5
-002305 C006              PUSH     AR6
-002307 C007              PUSH     AR7
-002309 904C91            MOV      DPTR,#m_adc0vBase
-00230C E0                MOVX     A,@DPTR
-00230D FC                MOV      R4,A
-00230E A3                INC      DPTR
-00230F E0                MOVX     A,@DPTR
-002310 FD                MOV      R5,A
-002311 E4                CLR      A
-002312 120206            LCALL    ?C?FCASTI
-002315 D003              POP      AR3
-002317 D002              POP      AR2
-002319 D001              POP      AR1
-00231B D000              POP      AR0
-00231D 12000A            LCALL    ?C?FPADD
-002320 12023F            LCALL    ?C?CASTF
-002323 904CDE            MOV      DPTR,#g_variable+01FH
-002326 EE                MOV      A,R6
-002327 F0                MOVX     @DPTR,A
-002328 A3                INC      DPTR
-002329 EF                MOV      A,R7
-00232A F0                MOVX     @DPTR,A
-   35: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
-00232B 904C91            MOV      DPTR,#m_adc0vBase
-00232E E0                MOVX     A,@DPTR
-00232F FE                MOV      R6,A
-002330 A3                INC      DPTR
-002331 E0                MOVX     A,@DPTR
-002332 FF                MOV      R7,A
-002333 C3                CLR      C
-002334 904C94            MOV      DPTR,#m_adc3vValue+01H
-002337 E0                MOVX     A,@DPTR
-002338 9F                SUBB     A,R7
-002339 FD                MOV      R5,A
-00233A 904C93            MOV      DPTR,#m_adc3vValue
-00233D E0                MOVX     A,@DPTR
-00233E 9E                SUBB     A,R6
-00233F FC                MOV      R4,A
-002340 E4                CLR      A
-002341 120206            LCALL    ?C?FCASTI
-002344 7B5C              MOV      R3,#05CH
-002346 7A8F              MOV      R2,#08FH
-002348 7942              MOV      R1,#042H
-00234A 783E              MOV      R0,#03EH
-00234C 1200FB            LCALL    ?C?FPMUL
-00234F C004              PUSH     AR4
-002351 C005              PUSH     AR5
-002353 C006              PUSH     AR6
-002355 C007              PUSH     AR7
-002357 904C91            MOV      DPTR,#m_adc0vBase
-00235A E0                MOVX     A,@DPTR
-00235B FC                MOV      R4,A
-00235C A3                INC      DPTR
-00235D E0                MOVX     A,@DPTR
-00235E FD                MOV      R5,A
-00235F E4                CLR      A
-002360 120206            LCALL    ?C?FCASTI
-002363 D003              POP      AR3
-002365 D002              POP      AR2
-002367 D001              POP      AR1
-002369 D000              POP      AR0
-00236B 12000A            LCALL    ?C?FPADD
-00236E 12023F            LCALL    ?C?CASTF
-002371 904CE0            MOV      DPTR,#g_variable+021H
-002374 EE                MOV      A,R6
-002375 F0                MOVX     @DPTR,A
-002376 A3                INC      DPTR
-002377 EF                MOV      A,R7
-002378 F0                MOVX     @DPTR,A
-   36: #endif	
-   37: #endif
-   38: }
-002379 22                RET      
------ FUNCTION YC_adc_init (END) -------
-
-
 ----- FUNCTION _bufsize (BEGIN) -----
-00237A 904E7C            MOV      DPTR,#rptr
-00237D EE                MOV      A,R6
-00237E F0                MOVX     @DPTR,A
-00237F A3                INC      DPTR
-002380 EF                MOV      A,R7
-002381 F0                MOVX     @DPTR,A
-002382 904E7E            MOV      DPTR,#wptr
-002385 EC                MOV      A,R4
-002386 F0                MOVX     @DPTR,A
-002387 A3                INC      DPTR
-002388 ED                MOV      A,R5
-002389 F0                MOVX     @DPTR,A
+002345 904E7C            MOV     DPTR,#rptr
+002348 EE                MOV     A,R6
+002349 F0                MOVX    @DPTR,A
+00234A A3                INC     DPTR
+00234B EF                MOV     A,R7
+00234C F0                MOVX    @DPTR,A
+00234D 904E7E            MOV     DPTR,#wptr
+002350 EC                MOV     A,R4
+002351 F0                MOVX    @DPTR,A
+002352 A3                INC     DPTR
+002353 ED                MOV     A,R5
+002354 F0                MOVX    @DPTR,A
 ;---- Variable 'buflen' assigned to Register 'R3' ----
-00238A 904E7E            MOV      DPTR,#wptr
-00238D E0                MOVX     A,@DPTR
-00238E FE                MOV      R6,A
-00238F A3                INC      DPTR
-002390 E0                MOVX     A,@DPTR
-002391 FF                MOV      R7,A
-002392 D3                SETB     C
-002393 904E7D            MOV      DPTR,#rptr+01H
-002396 E0                MOVX     A,@DPTR
-002397 9F                SUBB     A,R7
-002398 904E7C            MOV      DPTR,#rptr
-00239B E0                MOVX     A,@DPTR
-00239C 9E                SUBB     A,R6
-00239D 4016              JC       ?C0001?IPC
-00239F 904E7E            MOV      DPTR,#wptr
-0023A2 E0                MOVX     A,@DPTR
-0023A3 FE                MOV      R6,A
-0023A4 A3                INC      DPTR
-0023A5 E0                MOVX     A,@DPTR
-0023A6 FF                MOV      R7,A
-0023A7 904E7D            MOV      DPTR,#rptr+01H
-0023AA E0                MOVX     A,@DPTR
-0023AB 9F                SUBB     A,R7
-0023AC FF                MOV      R7,A
-0023AD 904E7C            MOV      DPTR,#rptr
-0023B0 E0                MOVX     A,@DPTR
-0023B1 9E                SUBB     A,R6
-0023B2 FE                MOV      R6,A
-0023B3 801E              SJMP     ?C0002?IPC
-0023B5         ?C0001?IPC:
-0023B5 904E7C            MOV      DPTR,#rptr
-0023B8 E0                MOVX     A,@DPTR
-0023B9 FE                MOV      R6,A
-0023BA A3                INC      DPTR
-0023BB E0                MOVX     A,@DPTR
-0023BC FF                MOV      R7,A
-0023BD C3                CLR      C
-0023BE 904E7F            MOV      DPTR,#wptr+01H
-0023C1 E0                MOVX     A,@DPTR
-0023C2 9F                SUBB     A,R7
-0023C3 FF                MOV      R7,A
-0023C4 904E7E            MOV      DPTR,#wptr
-0023C7 E0                MOVX     A,@DPTR
-0023C8 9E                SUBB     A,R6
-0023C9 FE                MOV      R6,A
-0023CA AD03              MOV      R5,AR3
-0023CC C3                CLR      C
-0023CD EB                MOV      A,R3
-0023CE 9F                SUBB     A,R7
-0023CF FF                MOV      R7,A
-0023D0 E4                CLR      A
-0023D1 9E                SUBB     A,R6
-0023D2 FE                MOV      R6,A
-0023D3         ?C0002?IPC:
-0023D3 22                RET      
+002355 904E7E            MOV     DPTR,#wptr
+002358 E0                MOVX    A,@DPTR
+002359 FE                MOV     R6,A
+00235A A3                INC     DPTR
+00235B E0                MOVX    A,@DPTR
+00235C FF                MOV     R7,A
+00235D D3                SETB    C
+00235E 904E7D            MOV     DPTR,#rptr+01H
+002361 E0                MOVX    A,@DPTR
+002362 9F                SUBB    A,R7
+002363 904E7C            MOV     DPTR,#rptr
+002366 E0                MOVX    A,@DPTR
+002367 9E                SUBB    A,R6
+002368 4016              JC      ?C0001?IPC
+00236A 904E7E            MOV     DPTR,#wptr
+00236D E0                MOVX    A,@DPTR
+00236E FE                MOV     R6,A
+00236F A3                INC     DPTR
+002370 E0                MOVX    A,@DPTR
+002371 FF                MOV     R7,A
+002372 904E7D            MOV     DPTR,#rptr+01H
+002375 E0                MOVX    A,@DPTR
+002376 9F                SUBB    A,R7
+002377 FF                MOV     R7,A
+002378 904E7C            MOV     DPTR,#rptr
+00237B E0                MOVX    A,@DPTR
+00237C 9E                SUBB    A,R6
+00237D FE                MOV     R6,A
+00237E 801E              SJMP    ?C0002?IPC
+002380         ?C0001?IPC:
+002380 904E7C            MOV     DPTR,#rptr
+002383 E0                MOVX    A,@DPTR
+002384 FE                MOV     R6,A
+002385 A3                INC     DPTR
+002386 E0                MOVX    A,@DPTR
+002387 FF                MOV     R7,A
+002388 C3                CLR     C
+002389 904E7F            MOV     DPTR,#wptr+01H
+00238C E0                MOVX    A,@DPTR
+00238D 9F                SUBB    A,R7
+00238E FF                MOV     R7,A
+00238F 904E7E            MOV     DPTR,#wptr
+002392 E0                MOVX    A,@DPTR
+002393 9E                SUBB    A,R6
+002394 FE                MOV     R6,A
+002395 AD03              MOV     R5,AR3
+002397 C3                CLR     C
+002398 EB                MOV     A,R3
+002399 9F                SUBB    A,R7
+00239A FF                MOV     R7,A
+00239B E4                CLR     A
+00239C 9E                SUBB    A,R6
+00239D FE                MOV     R6,A
+00239E         ?C0002?IPC:
+00239E 22                RET     
 ----- FUNCTION _bufsize (END) -------
 
 
 ----- FUNCTION _ipcRx (BEGIN) -----
-0023D4 904E9A            MOV      DPTR,#dest
-0023D7 EE                MOV      A,R6
-0023D8 F0                MOVX     @DPTR,A
-0023D9 A3                INC      DPTR
-0023DA EF                MOV      A,R7
-0023DB F0                MOVX     @DPTR,A
+00239F 904E9A            MOV     DPTR,#dest
+0023A2 EE                MOV     A,R6
+0023A3 F0                MOVX    @DPTR,A
+0023A4 A3                INC     DPTR
+0023A5 EF                MOV     A,R7
+0023A6 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R1' ----
-0023DC A905              MOV      R1,AR5
-0023DE 904B9E            MOV      DPTR,#ipcRxReadPtr
-0023E1 E0                MOVX     A,@DPTR
-0023E2 FE                MOV      R6,A
-0023E3 A3                INC      DPTR
-0023E4 E0                MOVX     A,@DPTR
-0023E5 FF                MOV      R7,A
+0023A7 A905              MOV     R1,AR5
+0023A9 904B9E            MOV     DPTR,#ipcRxReadPtr
+0023AC E0                MOVX    A,@DPTR
+0023AD FE                MOV     R6,A
+0023AE A3                INC     DPTR
+0023AF E0                MOVX    A,@DPTR
+0023B0 FF                MOV     R7,A
 ;---- Variable 'src' assigned to Register 'R6/R7' ----
-0023E6         ?C0004?IPC:
-0023E6 AD01              MOV      R5,AR1
-0023E8 19                DEC      R1
-0023E9 ED                MOV      A,R5
-0023EA 602F              JZ       ?C0005?IPC
-0023EC 0F                INC      R7
-0023ED EF                MOV      A,R7
-0023EE AC06              MOV      R4,AR6
-0023F0 7001              JNZ      ?C0036?IPC
-0023F2 0E                INC      R6
-0023F3         ?C0036?IPC:
-0023F3 14                DEC      A
-0023F4 F582              MOV      DPL,A
-0023F6 8C83              MOV      DPH,R4
-0023F8 E0                MOVX     A,@DPTR
-0023F9 FD                MOV      R5,A
-0023FA 904E9A            MOV      DPTR,#dest
-0023FD E4                CLR      A
-0023FE 75F001            MOV      B,#01H
-002401 120424            LCALL    ?C?ILDIX
-002404 85F082            MOV      DPL,B
-002407 F583              MOV      DPH,A
-002409 ED                MOV      A,R5
-00240A F0                MOVX     @DPTR,A
-00240B AD07              MOV      R5,AR7
-00240D AC06              MOV      R4,AR6
-00240F BC4BD4            CJNE     R4,#04BH,?C0004?IPC
-002412 BD9AD1            CJNE     R5,#09AH,?C0004?IPC
-002415 7E4B              MOV      R6,#04BH
-002417 7F36              MOV      R7,#036H
-002419 80CB              SJMP     ?C0004?IPC
-00241B         ?C0005?IPC:
-00241B 904B9E            MOV      DPTR,#ipcRxReadPtr
-00241E EE                MOV      A,R6
-00241F F0                MOVX     @DPTR,A
-002420 A3                INC      DPTR
-002421 EF                MOV      A,R7
-002422 F0                MOVX     @DPTR,A
-002423 22                RET      
+0023B1         ?C0004?IPC:
+0023B1 AD01              MOV     R5,AR1
+0023B3 19                DEC     R1
+0023B4 ED                MOV     A,R5
+0023B5 602F              JZ      ?C0005?IPC
+0023B7 0F                INC     R7
+0023B8 EF                MOV     A,R7
+0023B9 AC06              MOV     R4,AR6
+0023BB 7001              JNZ     ?C0036?IPC
+0023BD 0E                INC     R6
+0023BE         ?C0036?IPC:
+0023BE 14                DEC     A
+0023BF F582              MOV     DPL,A
+0023C1 8C83              MOV     DPH,R4
+0023C3 E0                MOVX    A,@DPTR
+0023C4 FD                MOV     R5,A
+0023C5 904E9A            MOV     DPTR,#dest
+0023C8 E4                CLR     A
+0023C9 75F001            MOV     B,#01H
+0023CC 120424            LCALL   ?C?ILDIX
+0023CF 85F082            MOV     DPL,B
+0023D2 F583              MOV     DPH,A
+0023D4 ED                MOV     A,R5
+0023D5 F0                MOVX    @DPTR,A
+0023D6 AD07              MOV     R5,AR7
+0023D8 AC06              MOV     R4,AR6
+0023DA BC4BD4            CJNE    R4,#04BH,?C0004?IPC
+0023DD BD9AD1            CJNE    R5,#09AH,?C0004?IPC
+0023E0 7E4B              MOV     R6,#04BH
+0023E2 7F36              MOV     R7,#036H
+0023E4 80CB              SJMP    ?C0004?IPC
+0023E6         ?C0005?IPC:
+0023E6 904B9E            MOV     DPTR,#ipcRxReadPtr
+0023E9 EE                MOV     A,R6
+0023EA F0                MOVX    @DPTR,A
+0023EB A3                INC     DPTR
+0023EC EF                MOV     A,R7
+0023ED F0                MOVX    @DPTR,A
+0023EE 22                RET     
 ----- FUNCTION _ipcRx (END) -------
 
 
+----- FUNCTION IPC_DealSingleStep (BEGIN) -----
+0023EF 7A0C              MOV     R2,#HIGH ipcReadBuff
+0023F1 794B              MOV     R1,#LOW ipcReadBuff
+0023F3 904E8A            MOV     DPTR,#pbuff
+0023F6 7401              MOV     A,#01H
+0023F8 F0                MOVX    @DPTR,A
+0023F9 A3                INC     DPTR
+0023FA 740C              MOV     A,#HIGH ipcReadBuff
+0023FC F0                MOVX    @DPTR,A
+0023FD A3                INC     DPTR
+0023FE 744B              MOV     A,#LOW ipcReadBuff
+002400 F0                MOVX    @DPTR,A
+002401 904BA0            MOV     DPTR,#ipcRxWritePtr
+002404 E0                MOVX    A,@DPTR
+002405 FE                MOV     R6,A
+002406 A3                INC     DPTR
+002407 E0                MOVX    A,@DPTR
+002408 FF                MOV     R7,A
+002409 904B9E            MOV     DPTR,#ipcRxReadPtr
+00240C E0                MOVX    A,@DPTR
+00240D 6E                XRL     A,R6
+00240E 7003              JNZ     ?C0038?IPC
+002410 A3                INC     DPTR
+002411 E0                MOVX    A,@DPTR
+002412 6F                XRL     A,R7
+002413         ?C0038?IPC:
+002413 6046              JZ      ?C0029?IPC
+002415         ?C0023?IPC:
+002415 7E0C              MOV     R6,#HIGH ipcReadBuff
+002417 7F4B              MOV     R7,#LOW ipcReadBuff
+002419 7D03              MOV     R5,#03H
+00241B 719F              ACALL   _ipcRx
+00241D 904E8A            MOV     DPTR,#pbuff
+002420 E0                MOVX    A,@DPTR
+002421 FB                MOV     R3,A
+002422 A3                INC     DPTR
+002423 E0                MOVX    A,@DPTR
+002424 FA                MOV     R2,A
+002425 A3                INC     DPTR
+002426 E0                MOVX    A,@DPTR
+002427 F9                MOV     R1,A
+002428 1203B6            LCALL   ?C?CLDPTR
+00242B B4022B            CJNE    A,#02H,?C0027?IPC
+00242E 904E8B            MOV     DPTR,#pbuff+01H
+002431 E4                CLR     A
+002432 75F002            MOV     B,#02H
+002435 12040E            LCALL   ?C?IILDX
+002438 904E8A            MOV     DPTR,#pbuff
+00243B E0                MOVX    A,@DPTR
+00243C FB                MOV     R3,A
+00243D A3                INC     DPTR
+00243E E0                MOVX    A,@DPTR
+00243F FA                MOV     R2,A
+002440 A3                INC     DPTR
+002441 E0                MOVX    A,@DPTR
+002442 F9                MOV     R1,A
+002443 1203B6            LCALL   ?C?CLDPTR
+002446 FF                MOV     R7,A
+002447 904E04            MOV     DPTR,#ipcCb
+00244A E0                MOVX    A,@DPTR
+00244B A3                INC     DPTR
+00244C E0                MOVX    A,@DPTR
+00244D FA                MOV     R2,A
+00244E A3                INC     DPTR
+00244F E0                MOVX    A,@DPTR
+002450 F582              MOV     DPL,A
+002452 8A83              MOV     DPH,R2
+002454 120568            LCALL   ?C?ICALL2
+002457 8002              SJMP    ?C0029?IPC
+002459         ?C0027?IPC:
+002459 80FE              SJMP    ?C0027?IPC
+00245B         IPC_TIMER:
+00245B         ?C0029?IPC:
+00245B 904BA5            MOV     DPTR,#bttimer
+00245E E0                MOVX    A,@DPTR
+00245F FE                MOV     R6,A
+002460 A3                INC     DPTR
+002461 E0                MOVX    A,@DPTR
+002462 FF                MOV     R7,A
+002463 904C5E            MOV     DPTR,#c51timer
+002466 E0                MOVX    A,@DPTR
+002467 6E                XRL     A,R6
+002468 7003              JNZ     ?C0039?IPC
+00246A A3                INC     DPTR
+00246B E0                MOVX    A,@DPTR
+00246C 6F                XRL     A,R7
+00246D         ?C0039?IPC:
+00246D 6022              JZ      ?C0033?IPC
+00246F 904E0A            MOV     DPTR,#ipcCb+06H
+002472 E0                MOVX    A,@DPTR
+002473 FB                MOV     R3,A
+002474 A3                INC     DPTR
+002475 E0                MOVX    A,@DPTR
+002476 FA                MOV     R2,A
+002477 A3                INC     DPTR
+002478 E0                MOVX    A,@DPTR
+002479 F9                MOV     R1,A
+00247A 4A                ORL     A,R2
+00247B 6037              JZ      ?C0032?IPC
+00247D         ?C0031?IPC:
+00247D 120564            LCALL   ?C?ICALL
+002480 904BA5            MOV     DPTR,#bttimer
+002483 E0                MOVX    A,@DPTR
+002484 FF                MOV     R7,A
+002485 A3                INC     DPTR
+002486 E0                MOVX    A,@DPTR
+002487 904C5E            MOV     DPTR,#c51timer
+00248A CF                XCH     A,R7
+00248B F0                MOVX    @DPTR,A
+00248C A3                INC     DPTR
+00248D EF                MOV     A,R7
+00248E F0                MOVX    @DPTR,A
+00248F 80CA              SJMP    ?C0029?IPC
+002491         ?C0033?IPC:
+002491 904C8D            MOV     DPTR,#btstimer
+002494 E0                MOVX    A,@DPTR
+002495 FF                MOV     R7,A
+002496 A3                INC     DPTR
+002497 E0                MOVX    A,@DPTR
+002498 6F                XRL     A,R7
+002499 6019              JZ      ?C0032?IPC
+00249B 904E0D            MOV     DPTR,#ipcCb+09H
+00249E E0                MOVX    A,@DPTR
+00249F FB                MOV     R3,A
+0024A0 A3                INC     DPTR
+0024A1 E0                MOVX    A,@DPTR
+0024A2 FA                MOV     R2,A
+0024A3 A3                INC     DPTR
+0024A4 E0                MOVX    A,@DPTR
+0024A5 F9                MOV     R1,A
+0024A6 4A                ORL     A,R2
+0024A7 600B              JZ      ?C0032?IPC
+0024A9         ?C0035?IPC:
+0024A9 120564            LCALL   ?C?ICALL
+0024AC 904C8D            MOV     DPTR,#btstimer
+0024AF E0                MOVX    A,@DPTR
+0024B0 A3                INC     DPTR
+0024B1 F0                MOVX    @DPTR,A
+0024B2 80DD              SJMP    ?C0033?IPC
+0024B4         ?C0032?IPC:
+0024B4 22                RET     
+----- FUNCTION IPC_DealSingleStep (END) -------
+
+
 ----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
-002424 900446            MOV      DPTR,#bbDisReason
-002427 E0                MOVX     A,@DPTR
-002428 FF                MOV      R7,A
-002429 22                RET      
+0024B5 900446            MOV     DPTR,#bbDisReason
+0024B8 E0                MOVX    A,@DPTR
+0024B9 FF                MOV     R7,A
+0024BA 22                RET     
 ----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
 
 
 ----- FUNCTION YC_Ice_break (BEGIN) -----
-00242A 908280            MOV      DPTR,#08280H
-00242D 7401              MOV      A,#01H
-00242F F0                MOVX     @DPTR,A
-002430 22                RET      
+0024BB 908280            MOV     DPTR,#08280H
+0024BE 7401              MOV     A,#01H
+0024C0 F0                MOVX    @DPTR,A
+0024C1 22                RET     
 ----- FUNCTION YC_Ice_break (END) -------
 
 
 ----- FUNCTION _dmemcpy (BEGIN) -----
-002431 904E3A            MOV      DPTR,#dest
-002434 EB                MOV      A,R3
-002435 F0                MOVX     @DPTR,A
-002436 A3                INC      DPTR
-002437 EA                MOV      A,R2
-002438 F0                MOVX     @DPTR,A
-002439 A3                INC      DPTR
-00243A E9                MOV      A,R1
-00243B F0                MOVX     @DPTR,A
-00243C         ?C0005?UTILITIES:
-00243C 904E40            MOV      DPTR,#len
-00243F 74FF              MOV      A,#0FFH
-002441 F5F0              MOV      B,A
-002443 120424            LCALL    ?C?ILDIX
-002446 45F0              ORL      A,B
-002448 602A              JZ       ?C0007?UTILITIES
-00244A 904E3D            MOV      DPTR,#src
-00244D E0                MOVX     A,@DPTR
-00244E FB                MOV      R3,A
-00244F A3                INC      DPTR
-002450 E4                CLR      A
-002451 75F001            MOV      B,#01H
-002454 120424            LCALL    ?C?ILDIX
-002457 A9F0              MOV      R1,B
-002459 FA                MOV      R2,A
-00245A 1203B6            LCALL    ?C?CLDPTR
-00245D FF                MOV      R7,A
-00245E 904E3A            MOV      DPTR,#dest
-002461 E0                MOVX     A,@DPTR
-002462 FB                MOV      R3,A
-002463 A3                INC      DPTR
-002464 E4                CLR      A
-002465 75F001            MOV      B,#01H
-002468 120424            LCALL    ?C?ILDIX
-00246B A9F0              MOV      R1,B
-00246D FA                MOV      R2,A
-00246E EF                MOV      A,R7
-00246F 1203FC            LCALL    ?C?CSTPTR
-002472 80C8              SJMP     ?C0005?UTILITIES
-002474         ?C0007?UTILITIES:
-002474 22                RET      
+0024C2 904E3A            MOV     DPTR,#dest
+0024C5 EB                MOV     A,R3
+0024C6 F0                MOVX    @DPTR,A
+0024C7 A3                INC     DPTR
+0024C8 EA                MOV     A,R2
+0024C9 F0                MOVX    @DPTR,A
+0024CA A3                INC     DPTR
+0024CB E9                MOV     A,R1
+0024CC F0                MOVX    @DPTR,A
+0024CD         ?C0005?UTILITIES:
+0024CD 904E40            MOV     DPTR,#len
+0024D0 74FF              MOV     A,#0FFH
+0024D2 F5F0              MOV     B,A
+0024D4 120424            LCALL   ?C?ILDIX
+0024D7 45F0              ORL     A,B
+0024D9 602A              JZ      ?C0007?UTILITIES
+0024DB 904E3D            MOV     DPTR,#src
+0024DE E0                MOVX    A,@DPTR
+0024DF FB                MOV     R3,A
+0024E0 A3                INC     DPTR
+0024E1 E4                CLR     A
+0024E2 75F001            MOV     B,#01H
+0024E5 120424            LCALL   ?C?ILDIX
+0024E8 A9F0              MOV     R1,B
+0024EA FA                MOV     R2,A
+0024EB 1203B6            LCALL   ?C?CLDPTR
+0024EE FF                MOV     R7,A
+0024EF 904E3A            MOV     DPTR,#dest
+0024F2 E0                MOVX    A,@DPTR
+0024F3 FB                MOV     R3,A
+0024F4 A3                INC     DPTR
+0024F5 E4                CLR     A
+0024F6 75F001            MOV     B,#01H
+0024F9 120424            LCALL   ?C?ILDIX
+0024FC A9F0              MOV     R1,B
+0024FE FA                MOV     R2,A
+0024FF EF                MOV     A,R7
+002500 1203FC            LCALL   ?C?CSTPTR
+002503 80C8              SJMP    ?C0005?UTILITIES
+002505         ?C0007?UTILITIES:
+002505 22                RET     
 ----- FUNCTION _dmemcpy (END) -------
 
 
 ----- FUNCTION _IIC_write (BEGIN) -----
-002475 904E50            MOV      DPTR,#addr
-002478 EE                MOV      A,R6
-002479 F0                MOVX     @DPTR,A
-00247A A3                INC      DPTR
-00247B EF                MOV      A,R7
-00247C F0                MOVX     @DPTR,A
-00247D 904E54            MOV      DPTR,#pbuff
-002480 EB                MOV      A,R3
-002481 F0                MOVX     @DPTR,A
-002482 A3                INC      DPTR
-002483 EA                MOV      A,R2
-002484 F0                MOVX     @DPTR,A
-002485 A3                INC      DPTR
-002486 E9                MOV      A,R1
-002487 F0                MOVX     @DPTR,A
-002488 904E52            MOV      DPTR,#len
-00248B EC                MOV      A,R4
-00248C F0                MOVX     @DPTR,A
-00248D A3                INC      DPTR
-00248E ED                MOV      A,R5
-00248F F0                MOVX     @DPTR,A
-002490 A3                INC      DPTR
-002491 E0                MOVX     A,@DPTR
-002492 F9                MOV      R1,A
-002493 A3                INC      DPTR
-002494 E0                MOVX     A,@DPTR
-002495 FA                MOV      R2,A
-002496 A3                INC      DPTR
-002497 E0                MOVX     A,@DPTR
-002498 904E3D            MOV      DPTR,#?_dmemcpy?BYTE+03H
-00249B C9                XCH      A,R1
-00249C F0                MOVX     @DPTR,A
-00249D A3                INC      DPTR
-00249E EA                MOV      A,R2
-00249F F0                MOVX     @DPTR,A
-0024A0 A3                INC      DPTR
-0024A1 E9                MOV      A,R1
-0024A2 F0                MOVX     @DPTR,A
-0024A3 A3                INC      DPTR
-0024A4 EC                MOV      A,R4
-0024A5 F0                MOVX     @DPTR,A
-0024A6 A3                INC      DPTR
-0024A7 ED                MOV      A,R5
-0024A8 F0                MOVX     @DPTR,A
-0024A9 7B01              MOV      R3,#01H
-0024AB 7A0B              MOV      R2,#HIGH IIC_TempBuff+03H
-0024AD 7986              MOV      R1,#LOW IIC_TempBuff+03H
-0024AF 9131              ACALL    _dmemcpy
-0024B1 900B83            MOV      DPTR,#IIC_TempBuff
-0024B4 74A0              MOV      A,#0A0H
-0024B6 F0                MOVX     @DPTR,A
-0024B7 904E50            MOV      DPTR,#addr
-0024BA E0                MOVX     A,@DPTR
-0024BB FF                MOV      R7,A
-0024BC A3                INC      DPTR
-0024BD E0                MOVX     A,@DPTR
-0024BE 900B84            MOV      DPTR,#IIC_TempBuff+01H
-0024C1 CF                XCH      A,R7
-0024C2 F0                MOVX     @DPTR,A
-0024C3 A3                INC      DPTR
-0024C4 EF                MOV      A,R7
-0024C5 F0                MOVX     @DPTR,A
-0024C6 904E53            MOV      DPTR,#len+01H
-0024C9 E0                MOVX     A,@DPTR
-0024CA 2403              ADD      A,#03H
-0024CC FD                MOV      R5,A
-0024CD 904E52            MOV      DPTR,#len
-0024D0 E0                MOVX     A,@DPTR
-0024D1 3400              ADDC     A,#00H
-0024D3 FC                MOV      R4,A
-0024D4 ED                MOV      A,R5
-0024D5 FA                MOV      R2,A
-0024D6 EC                MOV      A,R4
-0024D7 FF                MOV      R7,A
-0024D8 EA                MOV      A,R2
-0024D9 FE                MOV      R6,A
-0024DA EF                MOV      A,R7
-0024DB 908098            MOV      DPTR,#08098H
-0024DE EE                MOV      A,R6
-0024DF F0                MOVX     @DPTR,A
-0024E0 A3                INC      DPTR
-0024E1 EF                MOV      A,R7
-0024E2 F0                MOVX     @DPTR,A
-0024E3 7A0B              MOV      R2,#HIGH IIC_TempBuff
-0024E5 7983              MOV      R1,#LOW IIC_TempBuff
-0024E7 7E0B              MOV      R6,#HIGH IIC_TempBuff
-0024E9 7F83              MOV      R7,#LOW IIC_TempBuff
-0024EB 7483              MOV      A,#LOW IIC_TempBuff
-0024ED FC                MOV      R4,A
-0024EE 740B              MOV      A,#HIGH IIC_TempBuff
-0024F0 FF                MOV      R7,A
-0024F1 EC                MOV      A,R4
-0024F2 FE                MOV      R6,A
-0024F3 EF                MOV      A,R7
-0024F4 A3                INC      DPTR
-0024F5 EE                MOV      A,R6
-0024F6 F0                MOVX     @DPTR,A
-0024F7 A3                INC      DPTR
-0024F8 EF                MOV      A,R7
-0024F9 F0                MOVX     @DPTR,A
-0024FA 90809E            MOV      DPTR,#0809EH
-0024FD E4                CLR      A
-0024FE F0                MOVX     @DPTR,A
-0024FF A3                INC      DPTR
-002500 F0                MOVX     @DPTR,A
-002501 908090            MOV      DPTR,#08090H
-002504 04                INC      A
-002505 F0                MOVX     @DPTR,A
-002506 908006            MOV      DPTR,#08006H
-002509 E0                MOVX     A,@DPTR
-00250A 4404              ORL      A,#04H
-00250C F0                MOVX     @DPTR,A
-00250D 020FEC            LJMP     IIcWaitDone
+002506 904E50            MOV     DPTR,#addr
+002509 EE                MOV     A,R6
+00250A F0                MOVX    @DPTR,A
+00250B A3                INC     DPTR
+00250C EF                MOV     A,R7
+00250D F0                MOVX    @DPTR,A
+00250E 904E54            MOV     DPTR,#pbuff
+002511 EB                MOV     A,R3
+002512 F0                MOVX    @DPTR,A
+002513 A3                INC     DPTR
+002514 EA                MOV     A,R2
+002515 F0                MOVX    @DPTR,A
+002516 A3                INC     DPTR
+002517 E9                MOV     A,R1
+002518 F0                MOVX    @DPTR,A
+002519 904E52            MOV     DPTR,#len
+00251C EC                MOV     A,R4
+00251D F0                MOVX    @DPTR,A
+00251E A3                INC     DPTR
+00251F ED                MOV     A,R5
+002520 F0                MOVX    @DPTR,A
+002521 A3                INC     DPTR
+002522 E0                MOVX    A,@DPTR
+002523 F9                MOV     R1,A
+002524 A3                INC     DPTR
+002525 E0                MOVX    A,@DPTR
+002526 FA                MOV     R2,A
+002527 A3                INC     DPTR
+002528 E0                MOVX    A,@DPTR
+002529 904E3D            MOV     DPTR,#?_dmemcpy?BYTE+03H
+00252C C9                XCH     A,R1
+00252D F0                MOVX    @DPTR,A
+00252E A3                INC     DPTR
+00252F EA                MOV     A,R2
+002530 F0                MOVX    @DPTR,A
+002531 A3                INC     DPTR
+002532 E9                MOV     A,R1
+002533 F0                MOVX    @DPTR,A
+002534 A3                INC     DPTR
+002535 EC                MOV     A,R4
+002536 F0                MOVX    @DPTR,A
+002537 A3                INC     DPTR
+002538 ED                MOV     A,R5
+002539 F0                MOVX    @DPTR,A
+00253A 7B01              MOV     R3,#01H
+00253C 7A0B              MOV     R2,#HIGH IIC_TempBuff+03H
+00253E 7986              MOV     R1,#LOW IIC_TempBuff+03H
+002540 91C2              ACALL   _dmemcpy
+002542 900B83            MOV     DPTR,#IIC_TempBuff
+002545 74A0              MOV     A,#0A0H
+002547 F0                MOVX    @DPTR,A
+002548 904E50            MOV     DPTR,#addr
+00254B E0                MOVX    A,@DPTR
+00254C FF                MOV     R7,A
+00254D A3                INC     DPTR
+00254E E0                MOVX    A,@DPTR
+00254F 900B84            MOV     DPTR,#IIC_TempBuff+01H
+002552 CF                XCH     A,R7
+002553 F0                MOVX    @DPTR,A
+002554 A3                INC     DPTR
+002555 EF                MOV     A,R7
+002556 F0                MOVX    @DPTR,A
+002557 904E53            MOV     DPTR,#len+01H
+00255A E0                MOVX    A,@DPTR
+00255B 2403              ADD     A,#03H
+00255D FD                MOV     R5,A
+00255E 904E52            MOV     DPTR,#len
+002561 E0                MOVX    A,@DPTR
+002562 3400              ADDC    A,#00H
+002564 FC                MOV     R4,A
+002565 ED                MOV     A,R5
+002566 FA                MOV     R2,A
+002567 EC                MOV     A,R4
+002568 FF                MOV     R7,A
+002569 EA                MOV     A,R2
+00256A FE                MOV     R6,A
+00256B EF                MOV     A,R7
+00256C 908098            MOV     DPTR,#08098H
+00256F EE                MOV     A,R6
+002570 F0                MOVX    @DPTR,A
+002571 A3                INC     DPTR
+002572 EF                MOV     A,R7
+002573 F0                MOVX    @DPTR,A
+002574 7A0B              MOV     R2,#HIGH IIC_TempBuff
+002576 7983              MOV     R1,#LOW IIC_TempBuff
+002578 7E0B              MOV     R6,#HIGH IIC_TempBuff
+00257A 7F83              MOV     R7,#LOW IIC_TempBuff
+00257C 7483              MOV     A,#LOW IIC_TempBuff
+00257E FC                MOV     R4,A
+00257F 740B              MOV     A,#HIGH IIC_TempBuff
+002581 FF                MOV     R7,A
+002582 EC                MOV     A,R4
+002583 FE                MOV     R6,A
+002584 EF                MOV     A,R7
+002585 A3                INC     DPTR
+002586 EE                MOV     A,R6
+002587 F0                MOVX    @DPTR,A
+002588 A3                INC     DPTR
+002589 EF                MOV     A,R7
+00258A F0                MOVX    @DPTR,A
+00258B 90809E            MOV     DPTR,#0809EH
+00258E E4                CLR     A
+00258F F0                MOVX    @DPTR,A
+002590 A3                INC     DPTR
+002591 F0                MOVX    @DPTR,A
+002592 908090            MOV     DPTR,#08090H
+002595 04                INC     A
+002596 F0                MOVX    @DPTR,A
+002597 908006            MOV     DPTR,#08006H
+00259A E0                MOVX    A,@DPTR
+00259B 4404              ORL     A,#04H
+00259D F0                MOVX    @DPTR,A
+;----                  JMP     IIcWaitDone
 ----- FUNCTION _IIC_write (END) -------
 
 
+----- FUNCTION IIcWaitDone (BEGIN) -----
+00259E         ?C0001?IIC:
+00259E 90812C            MOV     DPTR,#0812CH
+0025A1 E0                MOVX    A,@DPTR
+0025A2 30E5F9            JNB     ACC.5,?C0001?IIC
+0025A5 22                RET     
+----- FUNCTION IIcWaitDone (END) -------
+
+
 ----- FUNCTION _IIC_WriteBlock (BEGIN) -----
-002510 904E31            MOV      DPTR,#addr
-002513 EE                MOV      A,R6
-002514 F0                MOVX     @DPTR,A
-002515 A3                INC      DPTR
-002516 EF                MOV      A,R7
-002517 F0                MOVX     @DPTR,A
-002518 A3                INC      DPTR
-002519 EC                MOV      A,R4
-00251A F0                MOVX     @DPTR,A
-00251B A3                INC      DPTR
-00251C ED                MOV      A,R5
-00251D F0                MOVX     @DPTR,A
-00251E A3                INC      DPTR
-00251F EB                MOV      A,R3
-002520 F0                MOVX     @DPTR,A
-002521 A3                INC      DPTR
-002522 EA                MOV      A,R2
-002523 F0                MOVX     @DPTR,A
-002524 A3                INC      DPTR
-002525 E9                MOV      A,R1
-002526 F0                MOVX     @DPTR,A
-002527         ?C0007?IIC:
-002527 904E33            MOV      DPTR,#len
-00252A E0                MOVX     A,@DPTR
-00252B 7002              JNZ      ?C0012?IIC
-00252D A3                INC      DPTR
-00252E E0                MOVX     A,@DPTR
-00252F         ?C0012?IIC:
-00252F 7002              JNZ      $ + 4H
-002531 A1BD              AJMP     ?C0011?IIC
-002533 904E31            MOV      DPTR,#addr
-002536 E0                MOVX     A,@DPTR
-002537 FE                MOV      R6,A
-002538 A3                INC      DPTR
-002539 E0                MOVX     A,@DPTR
-00253A FF                MOV      R7,A
-00253B 440F              ORL      A,#0FH
-00253D 2401              ADD      A,#01H
-00253F FD                MOV      R5,A
-002540 E4                CLR      A
-002541 3E                ADDC     A,R6
-002542 FC                MOV      R4,A
+0025A6 904E31            MOV     DPTR,#addr
+0025A9 EE                MOV     A,R6
+0025AA F0                MOVX    @DPTR,A
+0025AB A3                INC     DPTR
+0025AC EF                MOV     A,R7
+0025AD F0                MOVX    @DPTR,A
+0025AE A3                INC     DPTR
+0025AF EC                MOV     A,R4
+0025B0 F0                MOVX    @DPTR,A
+0025B1 A3                INC     DPTR
+0025B2 ED                MOV     A,R5
+0025B3 F0                MOVX    @DPTR,A
+0025B4 A3                INC     DPTR
+0025B5 EB                MOV     A,R3
+0025B6 F0                MOVX    @DPTR,A
+0025B7 A3                INC     DPTR
+0025B8 EA                MOV     A,R2
+0025B9 F0                MOVX    @DPTR,A
+0025BA A3                INC     DPTR
+0025BB E9                MOV     A,R1
+0025BC F0                MOVX    @DPTR,A
+0025BD         ?C0007?IIC:
+0025BD 904E33            MOV     DPTR,#len
+0025C0 E0                MOVX    A,@DPTR
+0025C1 7002              JNZ     ?C0012?IIC
+0025C3 A3                INC     DPTR
+0025C4 E0                MOVX    A,@DPTR
+0025C5         ?C0012?IIC:
+0025C5 7002              JNZ     $ + 4H
+0025C7 C153              AJMP    ?C0011?IIC
+0025C9 904E31            MOV     DPTR,#addr
+0025CC E0                MOVX    A,@DPTR
+0025CD FE                MOV     R6,A
+0025CE A3                INC     DPTR
+0025CF E0                MOVX    A,@DPTR
+0025D0 FF                MOV     R7,A
+0025D1 440F              ORL     A,#0FH
+0025D3 2401              ADD     A,#01H
+0025D5 FD                MOV     R5,A
+0025D6 E4                CLR     A
+0025D7 3E                ADDC    A,R6
+0025D8 FC                MOV     R4,A
 ;---- Variable 'cris' assigned to Register 'R4/R5' ----
-002543 C3                CLR      C
-002544 ED                MOV      A,R5
-002545 9F                SUBB     A,R7
-002546 FF                MOV      R7,A
-002547 EC                MOV      A,R4
-002548 9E                SUBB     A,R6
-002549 FE                MOV      R6,A
-00254A 904E38            MOV      DPTR,#curr_len
-00254D F0                MOVX     @DPTR,A
-00254E A3                INC      DPTR
-00254F EF                MOV      A,R7
-002550 F0                MOVX     @DPTR,A
-002551 904E33            MOV      DPTR,#len
-002554 E0                MOVX     A,@DPTR
-002555 FC                MOV      R4,A
-002556 A3                INC      DPTR
-002557 E0                MOVX     A,@DPTR
-002558 FD                MOV      R5,A
-002559 D3                SETB     C
-00255A 9F                SUBB     A,R7
-00255B EC                MOV      A,R4
-00255C 9E                SUBB     A,R6
-00255D 400A              JC       ?C0009?IIC
-00255F 904E38            MOV      DPTR,#curr_len
-002562 E0                MOVX     A,@DPTR
-002563 FE                MOV      R6,A
-002564 A3                INC      DPTR
-002565 E0                MOVX     A,@DPTR
-002566 FF                MOV      R7,A
-002567 8004              SJMP     ?C0010?IIC
-002569         ?C0009?IIC:
-002569 AE04              MOV      R6,AR4
-00256B AF05              MOV      R7,AR5
-00256D         ?C0010?IIC:
-00256D 904E38            MOV      DPTR,#curr_len
-002570 EE                MOV      A,R6
-002571 F0                MOVX     @DPTR,A
-002572 FC                MOV      R4,A
-002573 A3                INC      DPTR
-002574 EF                MOV      A,R7
-002575 F0                MOVX     @DPTR,A
-002576 FD                MOV      R5,A
-002577 C3                CLR      C
-002578 904E34            MOV      DPTR,#len+01H
-00257B E0                MOVX     A,@DPTR
-00257C 9D                SUBB     A,R5
-00257D F0                MOVX     @DPTR,A
-00257E 904E33            MOV      DPTR,#len
-002581 E0                MOVX     A,@DPTR
-002582 9C                SUBB     A,R4
-002583 F0                MOVX     @DPTR,A
-002584 904E31            MOV      DPTR,#addr
-002587 E0                MOVX     A,@DPTR
-002588 FE                MOV      R6,A
-002589 A3                INC      DPTR
-00258A E0                MOVX     A,@DPTR
-00258B FF                MOV      R7,A
-00258C 904E35            MOV      DPTR,#pbuff
-00258F E0                MOVX     A,@DPTR
-002590 FB                MOV      R3,A
-002591 A3                INC      DPTR
-002592 E0                MOVX     A,@DPTR
-002593 FA                MOV      R2,A
-002594 A3                INC      DPTR
-002595 E0                MOVX     A,@DPTR
-002596 F9                MOV      R1,A
-002597 9175              ACALL    _IIC_write
-002599 7F0A              MOV      R7,#0AH
-00259B 120A80            LCALL    _Delay1ms
-00259E 904E38            MOV      DPTR,#curr_len
-0025A1 E0                MOVX     A,@DPTR
-0025A2 FE                MOV      R6,A
-0025A3 A3                INC      DPTR
-0025A4 E0                MOVX     A,@DPTR
-0025A5 FF                MOV      R7,A
-0025A6 904E36            MOV      DPTR,#pbuff+01H
-0025A9 EE                MOV      A,R6
-0025AA 8FF0              MOV      B,R7
-0025AC 12040E            LCALL    ?C?IILDX
-0025AF 904E32            MOV      DPTR,#addr+01H
-0025B2 E0                MOVX     A,@DPTR
-0025B3 2F                ADD      A,R7
-0025B4 F0                MOVX     @DPTR,A
-0025B5 904E31            MOV      DPTR,#addr
-0025B8 E0                MOVX     A,@DPTR
-0025B9 3E                ADDC     A,R6
-0025BA F0                MOVX     @DPTR,A
-0025BB A127              AJMP     ?C0007?IIC
-0025BD         ?C0011?IIC:
-0025BD 22                RET      
+0025D9 C3                CLR     C
+0025DA ED                MOV     A,R5
+0025DB 9F                SUBB    A,R7
+0025DC FF                MOV     R7,A
+0025DD EC                MOV     A,R4
+0025DE 9E                SUBB    A,R6
+0025DF FE                MOV     R6,A
+0025E0 904E38            MOV     DPTR,#curr_len
+0025E3 F0                MOVX    @DPTR,A
+0025E4 A3                INC     DPTR
+0025E5 EF                MOV     A,R7
+0025E6 F0                MOVX    @DPTR,A
+0025E7 904E33            MOV     DPTR,#len
+0025EA E0                MOVX    A,@DPTR
+0025EB FC                MOV     R4,A
+0025EC A3                INC     DPTR
+0025ED E0                MOVX    A,@DPTR
+0025EE FD                MOV     R5,A
+0025EF D3                SETB    C
+0025F0 9F                SUBB    A,R7
+0025F1 EC                MOV     A,R4
+0025F2 9E                SUBB    A,R6
+0025F3 400A              JC      ?C0009?IIC
+0025F5 904E38            MOV     DPTR,#curr_len
+0025F8 E0                MOVX    A,@DPTR
+0025F9 FE                MOV     R6,A
+0025FA A3                INC     DPTR
+0025FB E0                MOVX    A,@DPTR
+0025FC FF                MOV     R7,A
+0025FD 8004              SJMP    ?C0010?IIC
+0025FF         ?C0009?IIC:
+0025FF AE04              MOV     R6,AR4
+002601 AF05              MOV     R7,AR5
+002603         ?C0010?IIC:
+002603 904E38            MOV     DPTR,#curr_len
+002606 EE                MOV     A,R6
+002607 F0                MOVX    @DPTR,A
+002608 FC                MOV     R4,A
+002609 A3                INC     DPTR
+00260A EF                MOV     A,R7
+00260B F0                MOVX    @DPTR,A
+00260C FD                MOV     R5,A
+00260D C3                CLR     C
+00260E 904E34            MOV     DPTR,#len+01H
+002611 E0                MOVX    A,@DPTR
+002612 9D                SUBB    A,R5
+002613 F0                MOVX    @DPTR,A
+002614 904E33            MOV     DPTR,#len
+002617 E0                MOVX    A,@DPTR
+002618 9C                SUBB    A,R4
+002619 F0                MOVX    @DPTR,A
+00261A 904E31            MOV     DPTR,#addr
+00261D E0                MOVX    A,@DPTR
+00261E FE                MOV     R6,A
+00261F A3                INC     DPTR
+002620 E0                MOVX    A,@DPTR
+002621 FF                MOV     R7,A
+002622 904E35            MOV     DPTR,#pbuff
+002625 E0                MOVX    A,@DPTR
+002626 FB                MOV     R3,A
+002627 A3                INC     DPTR
+002628 E0                MOVX    A,@DPTR
+002629 FA                MOV     R2,A
+00262A A3                INC     DPTR
+00262B E0                MOVX    A,@DPTR
+00262C F9                MOV     R1,A
+00262D B106              ACALL   _IIC_write
+00262F 7F0A              MOV     R7,#0AH
+002631 120A72            LCALL   _Delay1ms
+002634 904E38            MOV     DPTR,#curr_len
+002637 E0                MOVX    A,@DPTR
+002638 FE                MOV     R6,A
+002639 A3                INC     DPTR
+00263A E0                MOVX    A,@DPTR
+00263B FF                MOV     R7,A
+00263C 904E36            MOV     DPTR,#pbuff+01H
+00263F EE                MOV     A,R6
+002640 8FF0              MOV     B,R7
+002642 12040E            LCALL   ?C?IILDX
+002645 904E32            MOV     DPTR,#addr+01H
+002648 E0                MOVX    A,@DPTR
+002649 2F                ADD     A,R7
+00264A F0                MOVX    @DPTR,A
+00264B 904E31            MOV     DPTR,#addr
+00264E E0                MOVX    A,@DPTR
+00264F 3E                ADDC    A,R6
+002650 F0                MOVX    @DPTR,A
+002651 A1BD              AJMP    ?C0007?IIC
+002653         ?C0011?IIC:
+002653 22                RET     
 ----- FUNCTION _IIC_WriteBlock (END) -------
 
 
 ----- FUNCTION _xmemclear_ff (BEGIN) -----
-0025BE 904E90            MOV      DPTR,#dest
-0025C1 EB                MOV      A,R3
-0025C2 F0                MOVX     @DPTR,A
-0025C3 A3                INC      DPTR
-0025C4 EA                MOV      A,R2
-0025C5 F0                MOVX     @DPTR,A
-0025C6 A3                INC      DPTR
-0025C7 E9                MOV      A,R1
-0025C8 F0                MOVX     @DPTR,A
+002654 904E90            MOV     DPTR,#dest
+002657 EB                MOV     A,R3
+002658 F0                MOVX    @DPTR,A
+002659 A3                INC     DPTR
+00265A EA                MOV     A,R2
+00265B F0                MOVX    @DPTR,A
+00265C A3                INC     DPTR
+00265D E9                MOV     A,R1
+00265E F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R4/R5' ----
-0025C9         ?C0011?UTILITIES:
-0025C9 ED                MOV      A,R5
-0025CA 1D                DEC      R5
-0025CB AE04              MOV      R6,AR4
-0025CD 7001              JNZ      ?C0027?UTILITIES
-0025CF 1C                DEC      R4
-0025D0         ?C0027?UTILITIES:
-0025D0 4E                ORL      A,R6
-0025D1 6017              JZ       ?C0013?UTILITIES
-0025D3 904E90            MOV      DPTR,#dest
-0025D6 E0                MOVX     A,@DPTR
-0025D7 FB                MOV      R3,A
-0025D8 A3                INC      DPTR
-0025D9 E4                CLR      A
-0025DA 75F001            MOV      B,#01H
-0025DD 120424            LCALL    ?C?ILDIX
-0025E0 A9F0              MOV      R1,B
-0025E2 FA                MOV      R2,A
-0025E3 74FF              MOV      A,#0FFH
-0025E5 1203FC            LCALL    ?C?CSTPTR
-0025E8 80DF              SJMP     ?C0011?UTILITIES
-0025EA         ?C0013?UTILITIES:
-0025EA 22                RET      
+00265F         ?C0011?UTILITIES:
+00265F ED                MOV     A,R5
+002660 1D                DEC     R5
+002661 AE04              MOV     R6,AR4
+002663 7001              JNZ     ?C0027?UTILITIES
+002665 1C                DEC     R4
+002666         ?C0027?UTILITIES:
+002666 4E                ORL     A,R6
+002667 6017              JZ      ?C0013?UTILITIES
+002669 904E90            MOV     DPTR,#dest
+00266C E0                MOVX    A,@DPTR
+00266D FB                MOV     R3,A
+00266E A3                INC     DPTR
+00266F E4                CLR     A
+002670 75F001            MOV     B,#01H
+002673 120424            LCALL   ?C?ILDIX
+002676 A9F0              MOV     R1,B
+002678 FA                MOV     R2,A
+002679 74FF              MOV     A,#0FFH
+00267B 1203FC            LCALL   ?C?CSTPTR
+00267E 80DF              SJMP    ?C0011?UTILITIES
+002680         ?C0013?UTILITIES:
+002680 22                RET     
 ----- FUNCTION _xmemclear_ff (END) -------
 
 
 ----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-0025EB EF                MOV      A,R7
-0025EC F4                CPL      A
-0025ED 603A              JZ       ?C0023?GPIO
-0025EF         ?C0022?GPIO:
-0025EF EF                MOV      A,R7
-0025F0 5407              ANL      A,#07H
-0025F2 FE                MOV      R6,A
+002681 EF                MOV     A,R7
+002682 F4                CPL     A
+002683 603A              JZ      ?C0023?GPIO
+002685         ?C0022?GPIO:
+002685 EF                MOV     A,R7
+002686 5407              ANL     A,#07H
+002688 FE                MOV     R6,A
 ;---- Variable 'queue' assigned to Register 'R6' ----
-0025F3 EF                MOV      A,R7
-0025F4 13                RRC      A
-0025F5 13                RRC      A
-0025F6 13                RRC      A
-0025F7 5403              ANL      A,#03H
-0025F9 FF                MOV      R7,A
+002689 EF                MOV     A,R7
+00268A 13                RRC     A
+00268B 13                RRC     A
+00268C 13                RRC     A
+00268D 5403              ANL     A,#03H
+00268F FF                MOV     R7,A
 ;---- Variable 'group' assigned to Register 'R7' ----
-0025FA 24A3              ADD      A,#LOW YC_GPIOWakeupL
-0025FC F582              MOV      DPL,A
-0025FE E4                CLR      A
-0025FF 3400              ADDC     A,#HIGH YC_GPIOWakeupL
-002601 F583              MOV      DPH,A
-002603 C083              PUSH     DPH
-002605 C082              PUSH     DPL
-002607 E0                MOVX     A,@DPTR
-002608 FD                MOV      R5,A
-002609 7401              MOV      A,#01H
-00260B A806              MOV      R0,AR6
-00260D 08                INC      R0
-00260E 8002              SJMP     ?C0043?GPIO
-002610         ?C0042?GPIO:
-002610 C3                CLR      C
-002611 33                RLC      A
-002612         ?C0043?GPIO:
-002612 D8FC              DJNZ     R0,?C0042?GPIO
-002614 F4                CPL      A
-002615 FC                MOV      R4,A
-002616 5D                ANL      A,R5
-002617 D082              POP      DPL
-002619 D083              POP      DPH
-00261B F0                MOVX     @DPTR,A
-00261C 74A7              MOV      A,#LOW YC_GPIOWakeupH
-00261E 2F                ADD      A,R7
-00261F F582              MOV      DPL,A
-002621 E4                CLR      A
-002622 3400              ADDC     A,#HIGH YC_GPIOWakeupH
-002624 F583              MOV      DPH,A
-002626 E0                MOVX     A,@DPTR
-002627 5C                ANL      A,R4
-002628 F0                MOVX     @DPTR,A
-002629         ?C0023?GPIO:
-002629 22                RET      
+002690 24A3              ADD     A,#LOW YC_GPIOWakeupL
+002692 F582              MOV     DPL,A
+002694 E4                CLR     A
+002695 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+002697 F583              MOV     DPH,A
+002699 C083              PUSH    DPH
+00269B C082              PUSH    DPL
+00269D E0                MOVX    A,@DPTR
+00269E FD                MOV     R5,A
+00269F 7401              MOV     A,#01H
+0026A1 A806              MOV     R0,AR6
+0026A3 08                INC     R0
+0026A4 8002              SJMP    ?C0043?GPIO
+0026A6         ?C0042?GPIO:
+0026A6 C3                CLR     C
+0026A7 33                RLC     A
+0026A8         ?C0043?GPIO:
+0026A8 D8FC              DJNZ    R0,?C0042?GPIO
+0026AA F4                CPL     A
+0026AB FC                MOV     R4,A
+0026AC 5D                ANL     A,R5
+0026AD D082              POP     DPL
+0026AF D083              POP     DPH
+0026B1 F0                MOVX    @DPTR,A
+0026B2 74A7              MOV     A,#LOW YC_GPIOWakeupH
+0026B4 2F                ADD     A,R7
+0026B5 F582              MOV     DPL,A
+0026B7 E4                CLR     A
+0026B8 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+0026BA F583              MOV     DPH,A
+0026BC E0                MOVX    A,@DPTR
+0026BD 5C                ANL     A,R4
+0026BE F0                MOVX    @DPTR,A
+0026BF         ?C0023?GPIO:
+0026BF 22                RET     
 ----- FUNCTION _GPIO_ClearWakeup (END) -------
 
 
------ FUNCTION GPIO_fillpd (BEGIN) -----
-;---- Variable 'i' assigned to Register 'R7' ----
-00262A E4                CLR      A
-00262B FF                MOV      R7,A
-00262C         ?C0026?GPIO:
-00262C EF                MOV      A,R7
-00262D FD                MOV      R5,A
-00262E 7C00              MOV      R4,#00H
-002630 2478              ADD      A,#078H
-002632 FB                MOV      R3,A
-002633 EC                MOV      A,R4
-002634 3480              ADDC     A,#080H
-002636 8B82              MOV      DPL,R3
-002638 F583              MOV      DPH,A
-00263A E0                MOVX     A,@DPTR
-00263B FE                MOV      R6,A
-00263C ED                MOV      A,R5
-00263D 2470              ADD      A,#070H
-00263F FD                MOV      R5,A
-002640 EC                MOV      A,R4
-002641 3480              ADDC     A,#080H
-002643 8D82              MOV      DPL,R5
-002645 F583              MOV      DPH,A
-002647 E0                MOVX     A,@DPTR
-002648 4E                ORL      A,R6
-002649 F4                CPL      A
-00264A FE                MOV      R6,A
-00264B EF                MOV      A,R7
-00264C 247C              ADD      A,#07CH
-00264E FD                MOV      R5,A
-00264F EC                MOV      A,R4
-002650 3480              ADDC     A,#080H
-002652 8D82              MOV      DPL,R5
-002654 F583              MOV      DPH,A
-002656 EE                MOV      A,R6
-002657 F0                MOVX     @DPTR,A
-002658 0F                INC      R7
-002659 EF                MOV      A,R7
-00265A B404CF            CJNE     A,#04H,?C0026?GPIO
-00265D 22                RET      
------ FUNCTION GPIO_fillpd (END) -------
-
-
Index: c51/output/FW.HTM
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.HTM	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.HTM	(working copy)
@@ -25,7 +25,7 @@
 
 <p class="TinyT">
 Created from: <b>LX51 LINKER/LOCATER V4.41</b><br>
-Creation time: <b>12/04/2021  14:47:01</b><p>
+Creation time: <b>07/19/2022  17:23:57</b><p>
 
 <hr>
 
@@ -49,20 +49,20 @@
 <li><a href="#S169">?PR?_GPIO_SETINPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S86"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:002173H - C:00217BH)</h2>
+<h2><a name="S86"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:0021D0H - C:0021D8H)</h2>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 <li><a href="#S88">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
 </ul>
 
-<h2><a name="S88"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:00217CH - C:00217DH)</h2>
+<h2><a name="S88"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:0021D9H - C:0021DAH)</h2>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S86">?PR?SYSTEM_HARDWARE_RESET?SYS</a></li>
 </ul>
 
-<h2><a name="S89"></a>?PR?_KB_CB_HID?SYS (C:00217EH - C:00218DH)</h2>
+<h2><a name="S89"></a>?PR?_KB_CB_HID?SYS (C:0021DBH - C:0021EAH)</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>
@@ -169,7 +169,7 @@
 <li><a href="#S194">?C?LIB_CODE</a></li>
 </ul>
 
-<h2><a name="S150"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:0025F7H - C:002623H)</h2>
+<h2><a name="S150"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:002654H - C:002680H)</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>
@@ -355,7 +355,7 @@
 <li><a href="#S76">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S60"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:001DCFH - C:002091H)</h2>
+<h2><a name="S60"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:001E2EH - C:0020EEH)</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>
@@ -428,8 +428,13 @@
 <li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S72"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001C6FH - C:001DCEH)</h2>
+<h2><a name="S72"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001C6FH - C:001E2DH)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S76">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S152">?PR?_DELAY1MS?UTILITIES</a></li>
+</ul>
+
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S76">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
@@ -545,7 +550,7 @@
 <li><a href="#S91">?PR?_KB_CB_EVENT?SYS</a></li>
 </ul>
 
-<h2><a name="S85"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:002092H - C:0020AEH)</h2>
+<h2><a name="S85"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:0020EFH - C:00210BH)</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>
@@ -588,7 +593,7 @@
 <li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S94"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:00218EH - C:0021D2H)</h2>
+<h2><a name="S94"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:0021EBH - C:00222FH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S87">?PR?SYSTEM_LONG_SLEEP?SYS</a>) Top=2 Bytes (<a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -622,7 +627,7 @@
 <li><a href="#S100">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S103"></a>?PR?YC_ADC_INIT?ADC (C:0020AFH - C:002172H)</h2>
+<h2><a name="S103"></a>?PR?YC_ADC_INIT?ADC (C:00210CH - C:0021CFH)</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>
@@ -634,7 +639,7 @@
 <li><a href="#S85">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
 </ul>
 
-<h2><a name="S104"></a>?PR?YC_ADC_CHECK?ADC (C:0021D3H - C:0022E7H)</h2>
+<h2><a name="S104"></a>?PR?YC_ADC_CHECK?ADC (C:002230H - C:002344H)</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>
@@ -658,14 +663,14 @@
 <li><a href="#S97">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S108"></a>?PR?_BUFSIZE?IPC (C:0022E8H - C:002341H)</h2>
+<h2><a name="S108"></a>?PR?_BUFSIZE?IPC (C:002345H - C:00239EH)</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="#S112">?PR?_IPCTX?IPC</a></li>
 </ul>
 
-<h2><a name="S110"></a>?PR?_IPCRX?IPC (C:002342H - C:002391H)</h2>
+<h2><a name="S110"></a>?PR?_IPCRX?IPC (C:00239FH - C:0023EEH)</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>
@@ -723,7 +728,7 @@
 <li><a href="#S52">?PR?KB_MOTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S124"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:002392H - C:002457H)</h2>
+<h2><a name="S124"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:0023EFH - C:0024B4H)</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>
@@ -749,7 +754,7 @@
 <li><a href="#S55">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S146"></a>?PR?_DMEMCPY?UTILITIES (C:002465H - C:0024A8H)</h2>
+<h2><a name="S146"></a>?PR?_DMEMCPY?UTILITIES (C:0024C2H - C:002505H)</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>
@@ -785,6 +790,7 @@
 <li><a href="#S43">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 <li><a href="#S121">?PR?IPC_WAITLPM?IPC</a></li>
 <li><a href="#S96">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S72">?PR?KS_SCANMATRIX?KEYSCAN</a></li>
 <li><a href="#S95">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
 <li><a href="#S7">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
@@ -961,7 +967,7 @@
 <li><a href="#S70">?PR?KS_UNISTALL?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S185"></a>?PR?IICWAITDONE?IIC (C:002541H - C:002548H)</h2>
+<h2><a name="S185"></a>?PR?IICWAITDONE?IIC (C:00259EH - C:0025A5H)</h2>
 <p><br><b>Maximum Stack:</b> Top=14 Bytes (<a href="#S186">?PR?_IIC_READ?IIC</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
@@ -981,7 +987,7 @@
 <li><a href="#S43">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S188"></a>?PR?_IIC_WRITE?IIC (C:0024A9H - C:002540H)</h2>
+<h2><a name="S188"></a>?PR?_IIC_WRITE?IIC (C:002506H - C:00259DH)</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>
@@ -993,7 +999,7 @@
 <li><a href="#S190">?PR?_IIC_WRITEBLOCK?IIC</a></li>
 </ul>
 
-<h2><a name="S190"></a>?PR?_IIC_WRITEBLOCK?IIC (C:002549H - C:0025F6H)</h2>
+<h2><a name="S190"></a>?PR?_IIC_WRITEBLOCK?IIC (C:0025A6H - C:002653H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S188">?PR?_IIC_WRITE?IIC</a>) Top=4 Bytes (<a href="#S7">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
Index: c51/output/FW.MAP
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.MAP	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/FW.MAP	(working copy)
@@ -1,8 +1,8 @@
-LX51 LINKER/LOCATER V4.41                                                               12/04/2021  14:47:01  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               07/19/2022  17:23:57  PAGE 1
 
 
 LX51 LINKER/LOCATER V4.41, INVOKED BY:
-H:\KEIL\C51\BIN\LX51.EXE OUTPUT/BLUETOOTH.OBJ, OUTPUT/GLOBAL_VARIABLE.OBJ, OUTPUT/KB_PROCESS.OBJ, OUTPUT/KEYSCAN.OBJ, OU
+D:\KEIL\C51\BIN\LX51.EXE OUTPUT/BLUETOOTH.OBJ, OUTPUT/GLOBAL_VARIABLE.OBJ, OUTPUT/KB_PROCESS.OBJ, OUTPUT/KEYSCAN.OBJ, OU
 >> TPUT/LED.OBJ, OUTPUT/SYS.OBJ, OUTPUT/ADC.OBJ, OUTPUT/RAM.OBJ, OUTPUT/..\PATCH\IPC.OBJ, OUTPUT/..\PATCH\UTILITIES.OBJ,
 >>  OUTPUT/..\PATCH\GPIO.OBJ, OUTPUT/..\PATCH\IIC.OBJ TO OUTPUT\FW CLASSES (XDATA (X:0X4DD0-X:0X4F40), CODE (C:0-C:0XFFF
 >> F), DATA (D:0X10-0X7F), IDATA (I:0X80-0XCF)) SEGMENTS (?STACK (D:0XD0)) NOOVERLAY PAGELENGTH (60000) CODE
@@ -37,43 +37,43 @@
          COMMENT TYPE 0: C51 V9.00
   OUTPUT/..\PATCH\IIC.OBJ (IIC)
          COMMENT TYPE 0: C51 V9.00
-  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPADD)
+  D:\KEIL\C51\LIB\C51FPL.LIB (?C?FPADD)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPMUL)
+  D:\KEIL\C51\LIB\C51FPL.LIB (?C?FPMUL)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FCAST)
+  D:\KEIL\C51\LIB\C51FPL.LIB (?C?FCAST)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51FPL.LIB (?C?CASTF)
+  D:\KEIL\C51\LIB\C51FPL.LIB (?C?CASTF)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPGETOPN)
+  D:\KEIL\C51\LIB\C51FPL.LIB (?C?FPGETOPN)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C_STARTUP)
+  D:\KEIL\C51\LIB\C51L.LIB (?C_STARTUP)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?COPY)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?COPY)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?CLDPTR)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?CLDPTR)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?CLDOPTR)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?CLDOPTR)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?CSTPTR)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?CSTPTR)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?IILDX)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?IILDX)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?ILDIX)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?ILDIX)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?ULDIV)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?ULDIV)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?LNEG)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?LNEG)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?ULCMP)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?ULCMP)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?LSTXDATA)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?LSTXDATA)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?LSTKXDATA)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?LSTKXDATA)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C?ICALL)
+  D:\KEIL\C51\LIB\C51L.LIB (?C?ICALL)
          COMMENT TYPE 1: A51 / ASM51 Assembler
-  H:\KEIL\C51\LIB\C51L.LIB (?C_INIT)
+  D:\KEIL\C51\LIB\C51L.LIB (?C_INIT)
          COMMENT TYPE 1: A51 / ASM51 Assembler
 
 
@@ -81,8 +81,8 @@
 
 BASE        START       END         USED      MEMORY CLASS
 ==========================================================
-X:000000H   X:004DD0H   X:004F40H   000315H   XDATA
-C:000000H   C:000000H   C:00FFFFH   0025ADH   CODE
+X:000000H   X:004DD0H   X:004F40H   000317H   XDATA
+C:000000H   C:000000H   C:00FFFFH   00260AH   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
@@ -187,26 +187,26 @@
 001B25H   001B6EH   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
 001B6FH   001BC4H   000056H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
 001BC5H   001C6EH   0000AAH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
-001C6FH   001DCEH   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
-001DCFH   002091H   0002C3H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
-002092H   0020AEH   00001DH   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
-0020AFH   002172H   0000C4H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
-002173H   00217BH   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
-00217CH   00217DH   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
-00217EH   00218DH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
-00218EH   0021D2H   000045H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
-0021D3H   0022E7H   000115H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
-0022E8H   002341H   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
-002342H   002391H   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
-002392H   002457H   0000C6H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
-002458H   00245DH   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
-00245EH   002464H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
-002465H   0024A8H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
-0024A9H   002540H   000098H   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
-002541H   002548H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
-002549H   0025F6H   0000AEH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
-0025F7H   002623H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
-002624H   002662H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+001C6FH   001E2DH   0001BFH   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
+001E2EH   0020EEH   0002C1H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
+0020EFH   00210BH   00001DH   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
+00210CH   0021CFH   0000C4H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
+0021D0H   0021D8H   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
+0021D9H   0021DAH   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
+0021DBH   0021EAH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
+0021EBH   00222FH   000045H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
+002230H   002344H   000115H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
+002345H   00239EH   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
+00239FH   0023EEH   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+0023EFH   0024B4H   0000C6H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
+0024B5H   0024BAH   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+0024BBH   0024C1H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+0024C2H   002505H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+002506H   00259DH   000098H   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
+00259EH   0025A5H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
+0025A6H   002653H   0000AEH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
+002654H   002680H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+002681H   0026BFH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
 
 * * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
 000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?28
@@ -299,35 +299,35 @@
 004E42H   004E48H   000007H   BYTE   UNIT     XDATA          ?XD?KEYSCAN
 004E49H   004E4FH   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
 004E50H   004E56H   000007H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
-004E57H   004E5CH   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
-004E5DH   004E62H   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
-004E63H   004E67H   000005H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
-004E68H   004E6CH   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
-004E6DH   004E71H   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
-004E72H   004E75H   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
-004E76H   004E79H   000004H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
-004E7AH   004E7DH   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
-004E7EH   004E81H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
-004E82H   004E84H   000003H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
-004E85H   004E87H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
-004E88H   004E8AH   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
-004E8BH   004E8DH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
-004E8EH   004E90H   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
-004E91H   004E93H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
-004E94H   004E95H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
-004E96H   004E97H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
-004E98H   004E99H   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
-004E9AH   004E9AH   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
-004E9BH   004E9BH   000001H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
-004E9CH   004E9CH   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
-004E9DH   004E9DH   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
-004E9EH   004E9EH   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
-004E9FH   004E9FH   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
-004EA0H   004EA0H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
-004EA1H   004EA1H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
-004EA2H   004EA2H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
-004EA3H   004EA3H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
-004EA4H   00800FH   00316CH   ---    ---      **GAP**
+004E57H   004E5CH   000006H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
+004E5DH   004E62H   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
+004E63H   004E68H   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
+004E69H   004E6DH   000005H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
+004E6EH   004E72H   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
+004E73H   004E77H   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
+004E78H   004E7BH   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
+004E7CH   004E7FH   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
+004E80H   004E83H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
+004E84H   004E86H   000003H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
+004E87H   004E89H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
+004E8AH   004E8CH   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
+004E8DH   004E8FH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
+004E90H   004E92H   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
+004E93H   004E95H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
+004E96H   004E97H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+004E98H   004E99H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
+004E9AH   004E9BH   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
+004E9CH   004E9CH   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+004E9DH   004E9DH   000001H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
+004E9EH   004E9EH   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
+004E9FH   004E9FH   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
+004EA0H   004EA0H   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
+004EA1H   004EA1H   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
+004EA2H   004EA2H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
+004EA3H   004EA3H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+004EA4H   004EA4H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+004EA5H   004EA5H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+004EA6H   00800FH   00316AH   ---    ---      **GAP**
 008010H   008010H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
 
 
@@ -346,7 +346,7 @@
       00000020H.3 BIT      BIT       ?_GPIO_SetPd?BIT
       00000020H.2 BIT      BIT       ?_GPIO_SetPu?BIT
       00000020H.7 BIT      BIT       ?_GPIO_SetWakeup?BIT
-      02004E5DH   XDATA    BYTE      ?_xmemcpy?BYTE
+      02004E63H   XDATA    BYTE      ?_xmemcpy?BYTE
       0100023FH   CODE     ---       ?C?CASTF
       010003CFH   CODE     ---       ?C?CLDOPTR
       010003B6H   CODE     ---       ?C?CLDPTR
@@ -380,8 +380,8 @@
       01001AF5H   CODE     ---       _array_is_empty
       01001B25H   CODE     ---       _compare_str
       01000A72H   CODE     ---       _Delay1ms
-      01002465H   CODE     ---       _dmemcpy
-      01002624H   CODE     ---       _GPIO_ClearWakeup
+      010024C2H   CODE     ---       _dmemcpy
+      01002681H   CODE     ---       _GPIO_ClearWakeup
       01001202H   CODE     ---       _GPIO_FlipOutBit
       0100125DH   CODE     ---       _GPIO_GetInputStatus
       010014B4H   CODE     ---       _GPIO_SetInput
@@ -393,8 +393,8 @@
       01001278H   CODE     ---       _GPIO_SetWakeup
       01001265H   CODE     ---       _GPIO_SetWakeupByCurrentState
       01000ACEH   CODE     ---       _IIC_Read
-      010024A9H   CODE     ---       _IIC_write
-      01002549H   CODE     ---       _IIC_WriteBlock
+      01002506H   CODE     ---       _IIC_write
+      010025A6H   CODE     ---       _IIC_WriteBlock
       0100146DH   CODE     ---       _IPC_Initialize
       01001058H   CODE     ---       _IPC_Tx24GData
       010008D5H   CODE     ---       _IPC_TxControlCmd
@@ -402,13 +402,13 @@
       01000FA4H   CODE     ---       _IPC_TxHidData
       010017FDH   CODE     ---       _kb_combination_key_press
       01000BBFH   CODE     ---       _kb_motion_keyscan
-      01001DCFH   CODE     ---       _kb_multikey_setup
+      01001E2EH   CODE     ---       _kb_multikey_setup
       01000F6CH   CODE     ---       _kb_send_combination_key
       010017C7H   CODE     ---       _kb_set_multikey
       010017E2H   CODE     ---       _kb_set_systemkey
       01001822H   CODE     ---       _key_fn_function
       01000EB0H   CODE     ---       _xmemclear
-      010025F7H   CODE     ---       _xmemclear_ff
+      01002654H   CODE     ---       _xmemclear_ff
       01000B7CH   CODE     ---       _xmemcpy
       01000823H   CODE     ---       _YC_key_action_handle
       02004DE5H   XDATA    BYTE      action_timeout
@@ -431,8 +431,8 @@
       02004800H   XDATA    ---       hidBuff
       02004DDAH   XDATA    BYTE      iOS_rec_pinCode
       01001726H   CODE     ---       IPC_AbandonLpm
-      01002392H   CODE     ---       IPC_DealSingleStep
-      01002458H   CODE     ---       IPC_GetBBDIsconnectReason
+      010023EFH   CODE     ---       IPC_DealSingleStep
+      010024B5H   CODE     ---       IPC_GetBBDIsconnectReason
       01001732H   CODE     ---       IPC_IsTxBuffEmpty
       01001419H   CODE     ---       IPC_WaitLpm
       02000550H   XDATA    ---       ipcPin
@@ -503,19 +503,19 @@
       02004DD4H   XDATA    BYTE      switch_role_timer
       02004DE2H   XDATA    BYTE      system_key_press
       010007DAH   CODE     ---       System_long_sleep
-      0100217CH   CODE     ---       System_Reset_Connect
-      01002092H   CODE     ---       System_Software_init
-      010021D3H   CODE     ---       YC_adc_check
+      010021D9H   CODE     ---       System_Reset_Connect
+      010020EFH   CODE     ---       System_Software_init
+      01002230H   CODE     ---       YC_adc_check
       01001161H   CODE     ---       YC_adc_check_timer500ms
-      010020AFH   CODE     ---       YC_adc_init
+      0100210CH   CODE     ---       YC_adc_init
       010006C2H   CODE     ---       YC_check_is_connected
       010007EEH   CODE     ---       YC_check_need_reconnected
       01000F66H   CODE     ---       YC_clear_reconnect_flag
-      0100218EH   CODE     ---       YC_connect_timeout_500ms
+      010021EBH   CODE     ---       YC_connect_timeout_500ms
       01001085H   CODE     ---       YC_disconnect_all_link
       020000A7H   XDATA    ---       YC_GPIOWakeupH
       020000A3H   XDATA    ---       YC_GPIOWakeupL
-      0100245EH   CODE     ---       YC_Ice_break
+      010024BBH   CODE     ---       YC_Ice_break
       01001142H   CODE     ---       YC_pairing_timerout_500ms
       010017BCH   CODE     ---       YC_start_reconnect
       0100139CH   CODE     ---       YC_System_Main
@@ -681,7 +681,7 @@
       0100060CH   PUBLIC    CONST    ---       col
 
       ---         MODULE    ---      ---       KB_PROCESS
-      01001DCFH   PUBLIC    CODE     ---       _kb_multikey_setup
+      01001E2EH   PUBLIC    CODE     ---       _kb_multikey_setup
       01001822H   PUBLIC    CODE     ---       _key_fn_function
       010017FDH   PUBLIC    CODE     ---       _kb_combination_key_press
       01000BBFH   PUBLIC    CODE     ---       _kb_motion_keyscan
@@ -854,7 +854,7 @@
       0100165BH   LINE      ---      ---       #186
       0100165BH   LINE      ---      ---       #187
       01001669H   LINE      ---      ---       #188
-      02004E82H   SYMBOL    XDATA    VOID      pEvt
+      02004E84H   SYMBOL    XDATA    VOID      pEvt
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1002,8 +1002,8 @@
       01000EA5H   LINE      ---      ---       #373
       01000EAFH   LINE      ---      ---       #374
       01000EAFH   LINE      ---      ---       #376
-      02004E66H   SYMBOL    XDATA    VOID      temp
-      02004E67H   SYMBOL    XDATA    VOID      i
+      02004E6CH   SYMBOL    XDATA    VOID      temp
+      02004E6DH   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1081,120 +1081,120 @@
       010018E5H   LINE      ---      ---       #455
       010018E5H   LINE      ---      ---       #457
       010018EAH   LINE      ---      ---       #458
-      02004E9BH   SYMBOL    XDATA    VOID      temp
+      02004E9DH   SYMBOL    XDATA    VOID      temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001DCFH   BLOCK     CODE     ---       LVL=0
-      01001DCFH   LINE      ---      ---       #462
-      01001DDAH   LINE      ---      ---       #463
-      01001DDAH   BLOCK     CODE     NEAR LAB  LVL=1
-      01001DDAH   LINE      ---      ---       #464
-      01001DDDH   LINE      ---      ---       #466
-      01001DEBH   LINE      ---      ---       #467
-      01001DEBH   LINE      ---      ---       #468
-      01001E17H   LINE      ---      ---       #470
-      01001E17H   LINE      ---      ---       #472
-      01001E1EH   LINE      ---      ---       #473
-      01001E1EH   LINE      ---      ---       #474
-      01001E25H   LINE      ---      ---       #475
-      01001E28H   LINE      ---      ---       #477
-      01001E2CH   LINE      ---      ---       #478
-      01001E2CH   LINE      ---      ---       #479
-      01001E33H   LINE      ---      ---       #480
-      01001E36H   LINE      ---      ---       #481
-      01001E56H   LINE      ---      ---       #482
-      01001E56H   LINE      ---      ---       #483
-      01001E5BH   LINE      ---      ---       #484
-      01001E5EH   LINE      ---      ---       #485
-      01001E62H   LINE      ---      ---       #486
-      01001E62H   LINE      ---      ---       #487
-      01001E69H   LINE      ---      ---       #488
-      01001E6CH   LINE      ---      ---       #489
-      01001E8CH   LINE      ---      ---       #490
-      01001E8CH   LINE      ---      ---       #491
-      01001E91H   LINE      ---      ---       #492
-      01001E94H   LINE      ---      ---       #493
-      01001E98H   LINE      ---      ---       #494
-      01001E98H   LINE      ---      ---       #495
-      01001E9FH   LINE      ---      ---       #496
-      01001EA2H   LINE      ---      ---       #497
-      01001EC2H   LINE      ---      ---       #498
-      01001EC2H   LINE      ---      ---       #499
-      01001EC7H   LINE      ---      ---       #500
-      01001ECAH   LINE      ---      ---       #501
-      01001ECEH   LINE      ---      ---       #502
-      01001ECEH   LINE      ---      ---       #503
-      01001ED5H   LINE      ---      ---       #504
-      01001ED8H   LINE      ---      ---       #505
-      01001EF8H   LINE      ---      ---       #506
-      01001EF8H   LINE      ---      ---       #507
-      01001EFEH   LINE      ---      ---       #508
-      01001F01H   LINE      ---      ---       #509
-      01001F05H   LINE      ---      ---       #510
-      01001F05H   LINE      ---      ---       #511
-      01001F0CH   LINE      ---      ---       #512
-      01001F0FH   LINE      ---      ---       #513
-      01001F2FH   LINE      ---      ---       #514
-      01001F2FH   LINE      ---      ---       #515
-      01001F35H   LINE      ---      ---       #516
-      01001F38H   LINE      ---      ---       #517
-      01001F3CH   LINE      ---      ---       #518
-      01001F3CH   LINE      ---      ---       #519
-      01001F43H   LINE      ---      ---       #520
-      01001F46H   LINE      ---      ---       #521
-      01001F66H   LINE      ---      ---       #522
-      01001F66H   LINE      ---      ---       #523
-      01001F6DH   LINE      ---      ---       #524
-      01001F70H   LINE      ---      ---       #525
-      01001F74H   LINE      ---      ---       #526
-      01001F74H   LINE      ---      ---       #527
-      01001F7BH   LINE      ---      ---       #528
-      01001F7EH   LINE      ---      ---       #529
-      01001F9EH   LINE      ---      ---       #530
-      01001F9EH   LINE      ---      ---       #531
-      01001FA5H   LINE      ---      ---       #532
-      01001FA8H   LINE      ---      ---       #533
-      01001FACH   LINE      ---      ---       #534
-      01001FACH   LINE      ---      ---       #535
-      01001FB3H   LINE      ---      ---       #536
-      01001FB6H   LINE      ---      ---       #537
-      01001FD6H   LINE      ---      ---       #538
-      01001FD6H   LINE      ---      ---       #539
-      01001FDDH   LINE      ---      ---       #540
-      01001FDFH   LINE      ---      ---       #541
-      01001FE3H   LINE      ---      ---       #542
-      01001FE3H   LINE      ---      ---       #543
-      01001FEAH   LINE      ---      ---       #544
-      01001FECH   LINE      ---      ---       #545
-      0100200CH   LINE      ---      ---       #546
-      0100200CH   LINE      ---      ---       #547
-      01002011H   LINE      ---      ---       #548
-      01002013H   LINE      ---      ---       #549
-      01002017H   LINE      ---      ---       #550
-      01002017H   LINE      ---      ---       #551
-      0100201EH   LINE      ---      ---       #552
-      01002020H   LINE      ---      ---       #554
-      01002040H   LINE      ---      ---       #555
-      01002040H   LINE      ---      ---       #556
-      01002045H   LINE      ---      ---       #557
-      01002047H   LINE      ---      ---       #558
-      0100204BH   LINE      ---      ---       #559
-      0100204BH   LINE      ---      ---       #560
-      01002050H   LINE      ---      ---       #561
-      01002052H   LINE      ---      ---       #562
-      01002058H   LINE      ---      ---       #563
-      01002058H   LINE      ---      ---       #564
-      0100205DH   LINE      ---      ---       #565
-      0100205DH   LINE      ---      ---       #568
-      01002064H   LINE      ---      ---       #569
-      01002064H   LINE      ---      ---       #570
-      01002084H   LINE      ---      ---       #571
-      01002088H   LINE      ---      ---       #572
-      01002088H   LINE      ---      ---       #573
-      01002088H   LINE      ---      ---       #574
-      01002091H   LINE      ---      ---       #575
-      02004E75H   SYMBOL    XDATA    VOID      i
+      01001E2EH   BLOCK     CODE     ---       LVL=0
+      01001E2EH   LINE      ---      ---       #462
+      01001E39H   LINE      ---      ---       #463
+      01001E39H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001E39H   LINE      ---      ---       #464
+      01001E3CH   LINE      ---      ---       #466
+      01001E4AH   LINE      ---      ---       #467
+      01001E4AH   LINE      ---      ---       #468
+      01001E76H   LINE      ---      ---       #470
+      01001E76H   LINE      ---      ---       #472
+      01001E7DH   LINE      ---      ---       #473
+      01001E7DH   LINE      ---      ---       #474
+      01001E84H   LINE      ---      ---       #475
+      01001E87H   LINE      ---      ---       #477
+      01001E8BH   LINE      ---      ---       #478
+      01001E8BH   LINE      ---      ---       #479
+      01001E92H   LINE      ---      ---       #480
+      01001E95H   LINE      ---      ---       #481
+      01001EB5H   LINE      ---      ---       #482
+      01001EB5H   LINE      ---      ---       #483
+      01001EBAH   LINE      ---      ---       #484
+      01001EBDH   LINE      ---      ---       #485
+      01001EC1H   LINE      ---      ---       #486
+      01001EC1H   LINE      ---      ---       #487
+      01001EC8H   LINE      ---      ---       #488
+      01001ECBH   LINE      ---      ---       #489
+      01001EEBH   LINE      ---      ---       #490
+      01001EEBH   LINE      ---      ---       #491
+      01001EF0H   LINE      ---      ---       #492
+      01001EF3H   LINE      ---      ---       #493
+      01001EF7H   LINE      ---      ---       #494
+      01001EF7H   LINE      ---      ---       #495
+      01001EFEH   LINE      ---      ---       #496
+      01001F01H   LINE      ---      ---       #497
+      01001F21H   LINE      ---      ---       #498
+      01001F21H   LINE      ---      ---       #499
+      01001F26H   LINE      ---      ---       #500
+      01001F29H   LINE      ---      ---       #501
+      01001F2DH   LINE      ---      ---       #502
+      01001F2DH   LINE      ---      ---       #503
+      01001F34H   LINE      ---      ---       #504
+      01001F37H   LINE      ---      ---       #505
+      01001F57H   LINE      ---      ---       #506
+      01001F57H   LINE      ---      ---       #507
+      01001F5DH   LINE      ---      ---       #508
+      01001F60H   LINE      ---      ---       #509
+      01001F64H   LINE      ---      ---       #510
+      01001F64H   LINE      ---      ---       #511
+      01001F6BH   LINE      ---      ---       #512
+      01001F6EH   LINE      ---      ---       #513
+      01001F8EH   LINE      ---      ---       #514
+      01001F8EH   LINE      ---      ---       #515
+      01001F94H   LINE      ---      ---       #516
+      01001F97H   LINE      ---      ---       #517
+      01001F9BH   LINE      ---      ---       #518
+      01001F9BH   LINE      ---      ---       #519
+      01001FA2H   LINE      ---      ---       #520
+      01001FA5H   LINE      ---      ---       #521
+      01001FC5H   LINE      ---      ---       #522
+      01001FC5H   LINE      ---      ---       #523
+      01001FCCH   LINE      ---      ---       #524
+      01001FCFH   LINE      ---      ---       #525
+      01001FD3H   LINE      ---      ---       #526
+      01001FD3H   LINE      ---      ---       #527
+      01001FDAH   LINE      ---      ---       #528
+      01001FDDH   LINE      ---      ---       #529
+      01001FFDH   LINE      ---      ---       #530
+      01001FFDH   LINE      ---      ---       #531
+      01002004H   LINE      ---      ---       #532
+      01002006H   LINE      ---      ---       #533
+      0100200AH   LINE      ---      ---       #534
+      0100200AH   LINE      ---      ---       #535
+      01002011H   LINE      ---      ---       #536
+      01002013H   LINE      ---      ---       #537
+      01002033H   LINE      ---      ---       #538
+      01002033H   LINE      ---      ---       #539
+      0100203AH   LINE      ---      ---       #540
+      0100203CH   LINE      ---      ---       #541
+      01002040H   LINE      ---      ---       #542
+      01002040H   LINE      ---      ---       #543
+      01002047H   LINE      ---      ---       #544
+      01002049H   LINE      ---      ---       #545
+      01002069H   LINE      ---      ---       #546
+      01002069H   LINE      ---      ---       #547
+      0100206EH   LINE      ---      ---       #548
+      01002070H   LINE      ---      ---       #549
+      01002074H   LINE      ---      ---       #550
+      01002074H   LINE      ---      ---       #551
+      0100207BH   LINE      ---      ---       #552
+      0100207DH   LINE      ---      ---       #554
+      0100209DH   LINE      ---      ---       #555
+      0100209DH   LINE      ---      ---       #556
+      010020A2H   LINE      ---      ---       #557
+      010020A4H   LINE      ---      ---       #558
+      010020A8H   LINE      ---      ---       #559
+      010020A8H   LINE      ---      ---       #560
+      010020ADH   LINE      ---      ---       #561
+      010020AFH   LINE      ---      ---       #562
+      010020B5H   LINE      ---      ---       #563
+      010020B5H   LINE      ---      ---       #564
+      010020BAH   LINE      ---      ---       #565
+      010020BAH   LINE      ---      ---       #568
+      010020C1H   LINE      ---      ---       #569
+      010020C1H   LINE      ---      ---       #570
+      010020E1H   LINE      ---      ---       #571
+      010020E5H   LINE      ---      ---       #572
+      010020E5H   LINE      ---      ---       #573
+      010020E5H   LINE      ---      ---       #574
+      010020EEH   LINE      ---      ---       #575
+      02004E7BH   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1297,7 +1297,7 @@
       01001565H   LINE      ---      ---       #195
       01001569H   LINE      ---      ---       #196
       01001571H   LINE      ---      ---       #197
-      02004E9CH   SYMBOL    XDATA    VOID      i
+      02004E9EH   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1310,7 +1310,7 @@
       01001496H   LINE      ---      ---       #203
       0100149AH   LINE      ---      ---       #204
       010014A2H   LINE      ---      ---       #205
-      02004E9DH   SYMBOL    XDATA    VOID      i
+      02004E9FH   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1357,7 +1357,7 @@
       0100139BH   LINE      ---      ---       #249
       0100139BH   LINE      ---      ---       #251
       00000007H   SYMBOL    DATA     VOID      i
-      02004E9EH   SYMBOL    XDATA    VOID      temp
+      02004EA0H   SYMBOL    XDATA    VOID      temp
       00000006H   SYMBOL    DATA     VOID      tgroup
       00000005H   SYMBOL    DATA     VOID      tgpionum
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -1370,33 +1370,34 @@
       01001C6FH   LINE      ---      ---       #256
       01001C71H   LINE      ---      ---       #257
       01001C75H   LINE      ---      ---       #258
-      01001C76H   LINE      ---      ---       #259
-      01001C77H   LINE      ---      ---       #260
-      01001C79H   LINE      ---      ---       #261
-      01001C7BH   LINE      ---      ---       #262
-      01001C7DH   LINE      ---      ---       #263
-      01001C84H   LINE      ---      ---       #264
-      01001C8DH   LINE      ---      ---       #265
-      01001C9DH   LINE      ---      ---       #266
-      01001CFDH   LINE      ---      ---       #267
-      01001D00H   LINE      ---      ---       #269
-      01001D09H   LINE      ---      ---       #270
-      01001D12H   LINE      ---      ---       #271
-      01001D22H   LINE      ---      ---       #272
-      01001D82H   LINE      ---      ---       #273
-      01001D85H   LINE      ---      ---       #275
-      01001D8EH   LINE      ---      ---       #276
-      01001DA8H   LINE      ---      ---       #277
-      01001DCBH   LINE      ---      ---       #278
-      01001DCBH   LINE      ---      ---       #279
-      01001DCEH   LINE      ---      ---       #280
+      01001C77H   LINE      ---      ---       #259
+      01001C79H   LINE      ---      ---       #260
+      01001C7BH   LINE      ---      ---       #261
+      01001C7DH   LINE      ---      ---       #262
+      01001C7FH   LINE      ---      ---       #263
+      01001C88H   LINE      ---      ---       #264
+      01001C95H   LINE      ---      ---       #265
+      01001CA8H   LINE      ---      ---       #266
+      01001D2BH   LINE      ---      ---       #267
+      01001D2EH   LINE      ---      ---       #268
+      01001D33H   LINE      ---      ---       #269
+      01001D3EH   LINE      ---      ---       #270
+      01001D4BH   LINE      ---      ---       #271
+      01001D5EH   LINE      ---      ---       #272
+      01001DE1H   LINE      ---      ---       #273
+      01001DE4H   LINE      ---      ---       #275
+      01001DEDH   LINE      ---      ---       #276
+      01001E07H   LINE      ---      ---       #277
+      01001E2AH   LINE      ---      ---       #278
+      01001E2AH   LINE      ---      ---       #279
+      01001E2DH   LINE      ---      ---       #280
       00000007H   SYMBOL    DATA     VOID      i
-      02004E76H   SYMBOL    XDATA    VOID      j
-      00000006H   SYMBOL    DATA     VOID      tgroup
-      00000005H   SYMBOL    DATA     VOID      tgpionum
-      02004E77H   SYMBOL    XDATA    VOID      temp
-      02004E78H   SYMBOL    XDATA    VOID      check
-      02004E79H   SYMBOL    XDATA    VOID      rawSel
+      02004E57H   SYMBOL    XDATA    VOID      j
+      02004E58H   SYMBOL    XDATA    VOID      tgroup
+      02004E59H   SYMBOL    XDATA    VOID      tgpionum
+      02004E5AH   SYMBOL    XDATA    VOID      temp
+      02004E5BH   SYMBOL    XDATA    VOID      check
+      02004E5CH   SYMBOL    XDATA    VOID      rawSel
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1645,11 +1646,11 @@
       0100139CH   PUBLIC    CODE     ---       YC_System_Main
       0100109DH   PUBLIC    CODE     ---       kb_button_press_timer500ms
       01001142H   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
-      0100218EH   PUBLIC    CODE     ---       YC_connect_timeout_500ms
+      010021EBH   PUBLIC    CODE     ---       YC_connect_timeout_500ms
       01001173H   PUBLIC    CODE     ---       LED_timer500ms
-      0100217CH   PUBLIC    CODE     ---       System_Reset_Connect
+      010021D9H   PUBLIC    CODE     ---       System_Reset_Connect
       010007DAH   PUBLIC    CODE     ---       System_long_sleep
-      01002092H   PUBLIC    CODE     ---       System_Software_init
+      010020EFH   PUBLIC    CODE     ---       System_Software_init
 
       01000EDCH   BLOCK     CODE     ---       LVL=0
       01000EDCH   LINE      ---      ---       #11
@@ -1686,23 +1687,23 @@
       01001465H   LINE      ---      ---       #43
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01002092H   BLOCK     CODE     ---       LVL=0
-      01002092H   LINE      ---      ---       #47
-      01002092H   LINE      ---      ---       #48
-      01002092H   LINE      ---      ---       #49
-      01002095H   LINE      ---      ---       #50
-      01002097H   LINE      ---      ---       #51
-      0100209DH   LINE      ---      ---       #52
-      010020A3H   LINE      ---      ---       #53
-      010020A8H   LINE      ---      ---       #54
-      010020AEH   LINE      ---      ---       #55
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002173H   BLOCK     CODE     ---       LVL=0
-      01002173H   LINE      ---      ---       #57
-      01002173H   LINE      ---      ---       #58
-      01002173H   LINE      ---      ---       #59
-      01002179H   LINE      ---      ---       #60
+      010020EFH   BLOCK     CODE     ---       LVL=0
+      010020EFH   LINE      ---      ---       #47
+      010020EFH   LINE      ---      ---       #48
+      010020EFH   LINE      ---      ---       #49
+      010020F2H   LINE      ---      ---       #50
+      010020F4H   LINE      ---      ---       #51
+      010020FAH   LINE      ---      ---       #52
+      01002100H   LINE      ---      ---       #53
+      01002105H   LINE      ---      ---       #54
+      0100210BH   LINE      ---      ---       #55
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010021D0H   BLOCK     CODE     ---       LVL=0
+      010021D0H   LINE      ---      ---       #57
+      010021D0H   LINE      ---      ---       #58
+      010021D0H   LINE      ---      ---       #59
+      010021D6H   LINE      ---      ---       #60
       ---         BLOCKEND  ---      ---       LVL=0
 
       010007DAH   BLOCK     CODE     ---       LVL=0
@@ -1717,20 +1718,20 @@
       010007EDH   LINE      ---      ---       #71
       ---         BLOCKEND  ---      ---       LVL=0
 
-      0100217CH   BLOCK     CODE     ---       LVL=0
-      0100217CH   LINE      ---      ---       #73
-      0100217CH   LINE      ---      ---       #74
-      0100217CH   LINE      ---      ---       #75
+      010021D9H   BLOCK     CODE     ---       LVL=0
+      010021D9H   LINE      ---      ---       #73
+      010021D9H   LINE      ---      ---       #74
+      010021D9H   LINE      ---      ---       #75
       ---         BLOCKEND  ---      ---       LVL=0
 
-      0100217EH   BLOCK     CODE     ---       LVL=0
-      0100217EH   LINE      ---      ---       #83
-      01002183H   BLOCK     CODE     NEAR LAB  LVL=1
-      01002183H   LINE      ---      ---       #85
-      0100218DH   LINE      ---      ---       #87
-      0100218DH   LINE      ---      ---       #89
-      0100218DH   LINE      ---      ---       #90
-      02004E97H   SYMBOL    XDATA    VOID      temp
+      010021DBH   BLOCK     CODE     ---       LVL=0
+      010021DBH   LINE      ---      ---       #83
+      010021E0H   BLOCK     CODE     NEAR LAB  LVL=1
+      010021E0H   LINE      ---      ---       #85
+      010021EAH   LINE      ---      ---       #87
+      010021EAH   LINE      ---      ---       #89
+      010021EAH   LINE      ---      ---       #90
+      02004E99H   SYMBOL    XDATA    VOID      temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1846,28 +1847,28 @@
       01001201H   LINE      ---      ---       #226
       ---         BLOCKEND  ---      ---       LVL=0
 
-      0100218EH   BLOCK     CODE     ---       LVL=0
-      0100218EH   LINE      ---      ---       #228
-      0100218EH   LINE      ---      ---       #229
-      0100218EH   LINE      ---      ---       #232
-      01002195H   LINE      ---      ---       #233
-      01002195H   LINE      ---      ---       #234
-      010021A4H   LINE      ---      ---       #235
-      010021A7H   LINE      ---      ---       #236
-      010021A7H   LINE      ---      ---       #237
-      010021AEH   LINE      ---      ---       #238
-      010021AEH   LINE      ---      ---       #239
-      010021BDH   LINE      ---      ---       #240
-      010021BDH   LINE      ---      ---       #241
-      010021C0H   LINE      ---      ---       #242
-      010021C0H   LINE      ---      ---       #243
-      010021C0H   LINE      ---      ---       #245
-      010021C0H   LINE      ---      ---       #246
-      010021CFH   LINE      ---      ---       #247
-      010021CFH   LINE      ---      ---       #248
-      010021D2H   LINE      ---      ---       #249
-      010021D2H   LINE      ---      ---       #250
-      010021D2H   LINE      ---      ---       #251
+      010021EBH   BLOCK     CODE     ---       LVL=0
+      010021EBH   LINE      ---      ---       #228
+      010021EBH   LINE      ---      ---       #229
+      010021EBH   LINE      ---      ---       #232
+      010021F2H   LINE      ---      ---       #233
+      010021F2H   LINE      ---      ---       #234
+      01002201H   LINE      ---      ---       #235
+      01002204H   LINE      ---      ---       #236
+      01002204H   LINE      ---      ---       #237
+      0100220BH   LINE      ---      ---       #238
+      0100220BH   LINE      ---      ---       #239
+      0100221AH   LINE      ---      ---       #240
+      0100221AH   LINE      ---      ---       #241
+      0100221DH   LINE      ---      ---       #242
+      0100221DH   LINE      ---      ---       #243
+      0100221DH   LINE      ---      ---       #245
+      0100221DH   LINE      ---      ---       #246
+      0100222CH   LINE      ---      ---       #247
+      0100222CH   LINE      ---      ---       #248
+      0100222FH   LINE      ---      ---       #249
+      0100222FH   LINE      ---      ---       #250
+      0100222FH   LINE      ---      ---       #251
       ---         BLOCKEND  ---      ---       LVL=0
 
       01001142H   BLOCK     CODE     ---       LVL=0
@@ -2053,65 +2054,65 @@
 
       ---         MODULE    ---      ---       ADC
       01001161H   PUBLIC    CODE     ---       YC_adc_check_timer500ms
-      010021D3H   PUBLIC    CODE     ---       YC_adc_check
-      010020AFH   PUBLIC    CODE     ---       YC_adc_init
+      01002230H   PUBLIC    CODE     ---       YC_adc_check
+      0100210CH   PUBLIC    CODE     ---       YC_adc_init
 
-      010020AFH   BLOCK     CODE     ---       LVL=0
-      010020AFH   LINE      ---      ---       #3
-      010020AFH   LINE      ---      ---       #4
-      010020AFH   BLOCK     CODE     NEAR LAB  LVL=1
-      010020AFH   LINE      ---      ---       #8
-      010020B5H   LINE      ---      ---       #9
-      010020B8H   LINE      ---      ---       #29
-      010020BEH   LINE      ---      ---       #30
-      010020C0H   LINE      ---      ---       #31
-      010020C0H   LINE      ---      ---       #32
-      010020D1H   LINE      ---      ---       #33
-      010020D6H   LINE      ---      ---       #34
-      01002124H   LINE      ---      ---       #35
-      01002172H   LINE      ---      ---       #38
+      0100210CH   BLOCK     CODE     ---       LVL=0
+      0100210CH   LINE      ---      ---       #3
+      0100210CH   LINE      ---      ---       #4
+      0100210CH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100210CH   LINE      ---      ---       #8
+      01002112H   LINE      ---      ---       #9
+      01002115H   LINE      ---      ---       #29
+      0100211BH   LINE      ---      ---       #30
+      0100211DH   LINE      ---      ---       #31
+      0100211DH   LINE      ---      ---       #32
+      0100212EH   LINE      ---      ---       #33
+      01002133H   LINE      ---      ---       #34
+      01002181H   LINE      ---      ---       #35
+      010021CFH   LINE      ---      ---       #38
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010021D3H   BLOCK     CODE     ---       LVL=0
-      010021D3H   LINE      ---      ---       #40
-      010021D3H   LINE      ---      ---       #41
-      010021D3H   BLOCK     CODE     NEAR LAB  LVL=1
-      010021D3H   LINE      ---      ---       #44
-      010021DDH   LINE      ---      ---       #46
-      010021E9H   LINE      ---      ---       #49
-      01002209H   LINE      ---      ---       #50
-      01002212H   LINE      ---      ---       #51
-      01002214H   LINE      ---      ---       #52
-      01002219H   LINE      ---      ---       #53
-      01002219H   LINE      ---      ---       #54
-      01002250H   LINE      ---      ---       #55
-      0100225AH   LINE      ---      ---       #56
-      01002277H   LINE      ---      ---       #58
-      01002296H   LINE      ---      ---       #59
-      01002296H   LINE      ---      ---       #60
-      0100229CH   LINE      ---      ---       #61
-      0100229DH   LINE      ---      ---       #63
-      0100229DH   LINE      ---      ---       #64
-      010022BCH   LINE      ---      ---       #65
-      010022BCH   LINE      ---      ---       #66
-      010022C2H   LINE      ---      ---       #67
-      010022C7H   LINE      ---      ---       #68
-      010022CBH   LINE      ---      ---       #69
-      010022CFH   LINE      ---      ---       #70
-      010022D2H   LINE      ---      ---       #71
-      010022D3H   LINE      ---      ---       #73
-      010022D3H   LINE      ---      ---       #74
-      010022D8H   LINE      ---      ---       #75
-      010022DCH   LINE      ---      ---       #76
-      010022E0H   LINE      ---      ---       #77
-      010022E4H   LINE      ---      ---       #78
-      010022E7H   LINE      ---      ---       #79
-      010022E7H   LINE      ---      ---       #80
-      010022E7H   LINE      ---      ---       #82
-      02004E68H   SYMBOL    XDATA    VOID      i
-      02004E69H   SYMBOL    XDATA    VOID      batValue
+      01002230H   BLOCK     CODE     ---       LVL=0
+      01002230H   LINE      ---      ---       #40
+      01002230H   LINE      ---      ---       #41
+      01002230H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002230H   LINE      ---      ---       #44
+      0100223AH   LINE      ---      ---       #46
+      01002246H   LINE      ---      ---       #49
+      01002266H   LINE      ---      ---       #50
+      0100226FH   LINE      ---      ---       #51
+      01002271H   LINE      ---      ---       #52
+      01002276H   LINE      ---      ---       #53
+      01002276H   LINE      ---      ---       #54
+      010022ADH   LINE      ---      ---       #55
+      010022B7H   LINE      ---      ---       #56
+      010022D4H   LINE      ---      ---       #58
+      010022F3H   LINE      ---      ---       #59
+      010022F3H   LINE      ---      ---       #60
+      010022F9H   LINE      ---      ---       #61
+      010022FAH   LINE      ---      ---       #63
+      010022FAH   LINE      ---      ---       #64
+      01002319H   LINE      ---      ---       #65
+      01002319H   LINE      ---      ---       #66
+      0100231FH   LINE      ---      ---       #67
+      01002324H   LINE      ---      ---       #68
+      01002328H   LINE      ---      ---       #69
+      0100232CH   LINE      ---      ---       #70
+      0100232FH   LINE      ---      ---       #71
+      01002330H   LINE      ---      ---       #73
+      01002330H   LINE      ---      ---       #74
+      01002335H   LINE      ---      ---       #75
+      01002339H   LINE      ---      ---       #76
+      0100233DH   LINE      ---      ---       #77
+      01002341H   LINE      ---      ---       #78
+      01002344H   LINE      ---      ---       #79
+      01002344H   LINE      ---      ---       #80
+      01002344H   LINE      ---      ---       #82
+      02004E6EH   SYMBOL    XDATA    VOID      i
+      02004E6FH   SYMBOL    XDATA    VOID      batValue
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2150,36 +2151,36 @@
       02000C4BH   PUBLIC    XDATA    ---       ipcReadBuff
       0200054FH   PUBLIC    XDATA    BYTE      ipcPinlen
       02000B7EH   PUBLIC    XDATA    BYTE      current_task
-      01002392H   PUBLIC    CODE     ---       IPC_DealSingleStep
+      010023EFH   PUBLIC    CODE     ---       IPC_DealSingleStep
       01001732H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
       01001726H   PUBLIC    CODE     ---       IPC_AbandonLpm
       01001419H   PUBLIC    CODE     ---       IPC_WaitLpm
       0100146DH   PUBLIC    CODE     ---       _IPC_Initialize
-      01002458H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      010024B5H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
       01001058H   PUBLIC    CODE     ---       _IPC_Tx24GData
       0100105EH   PUBLIC    CODE     ---       _IPC_TxData
       010008D5H   PUBLIC    CODE     ---       _IPC_TxControlCmd
 
-      010022E8H   BLOCK     CODE     ---       LVL=0
-      010022E8H   LINE      ---      ---       #44
-      010022F8H   LINE      ---      ---       #45
-      010022F8H   LINE      ---      ---       #46
-      01002341H   LINE      ---      ---       #47
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002342H   BLOCK     CODE     ---       LVL=0
-      01002342H   LINE      ---      ---       #49
-      0100234CH   LINE      ---      ---       #50
-      0100234CH   BLOCK     CODE     NEAR LAB  LVL=1
-      0100234CH   LINE      ---      ---       #51
-      01002354H   LINE      ---      ---       #52
-      0100235AH   LINE      ---      ---       #53
-      01002379H   LINE      ---      ---       #54
-      01002383H   LINE      ---      ---       #55
-      01002387H   LINE      ---      ---       #56
-      01002387H   LINE      ---      ---       #57
-      01002389H   LINE      ---      ---       #58
-      01002391H   LINE      ---      ---       #59
+      01002345H   BLOCK     CODE     ---       LVL=0
+      01002345H   LINE      ---      ---       #44
+      01002355H   LINE      ---      ---       #45
+      01002355H   LINE      ---      ---       #46
+      0100239EH   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100239FH   BLOCK     CODE     ---       LVL=0
+      0100239FH   LINE      ---      ---       #49
+      010023A9H   LINE      ---      ---       #50
+      010023A9H   BLOCK     CODE     NEAR LAB  LVL=1
+      010023A9H   LINE      ---      ---       #51
+      010023B1H   LINE      ---      ---       #52
+      010023B7H   LINE      ---      ---       #53
+      010023D6H   LINE      ---      ---       #54
+      010023E0H   LINE      ---      ---       #55
+      010023E4H   LINE      ---      ---       #56
+      010023E4H   LINE      ---      ---       #57
+      010023E6H   LINE      ---      ---       #58
+      010023EEH   LINE      ---      ---       #59
       00000006H   SYMBOL    DATA     VOID      src
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2198,7 +2199,7 @@
       01000980H   LINE      ---      ---       #70
       01000982H   LINE      ---      ---       #71
       01000991H   LINE      ---      ---       #72
-      02004E5BH   SYMBOL    XDATA    VOID      dest
+      02004E61H   SYMBOL    XDATA    VOID      dest
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2209,7 +2210,7 @@
       010008DAH   LINE      ---      ---       #76
       010008EDH   LINE      ---      ---       #79
       010008F5H   LINE      ---      ---       #80
-      02004E7FH   SYMBOL    XDATA    VOID      cmdBuff
+      02004E81H   SYMBOL    XDATA    VOID      cmdBuff
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2227,11 +2228,11 @@
       01001058H   LINE      ---      ---       #92
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01002458H   BLOCK     CODE     ---       LVL=0
-      01002458H   LINE      ---      ---       #98
-      01002458H   LINE      ---      ---       #99
-      01002458H   LINE      ---      ---       #100
-      0100245DH   LINE      ---      ---       #101
+      010024B5H   BLOCK     CODE     ---       LVL=0
+      010024B5H   LINE      ---      ---       #98
+      010024B5H   LINE      ---      ---       #99
+      010024B5H   LINE      ---      ---       #100
+      010024BAH   LINE      ---      ---       #101
       ---         BLOCKEND  ---      ---       LVL=0
 
       0100146DH   BLOCK     CODE     ---       LVL=0
@@ -2265,35 +2266,35 @@
       01001749H   LINE      ---      ---       #126
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01002392H   BLOCK     CODE     ---       LVL=0
-      01002392H   LINE      ---      ---       #129
-      01002392H   LINE      ---      ---       #130
-      01002392H   BLOCK     CODE     NEAR LAB  LVL=1
-      01002392H   LINE      ---      ---       #131
-      010023A4H   LINE      ---      ---       #132
-      010023B8H   LINE      ---      ---       #133
-      010023B8H   LINE      ---      ---       #134
-      010023C0H   LINE      ---      ---       #135
-      010023D1H   LINE      ---      ---       #136
-      010023DBH   LINE      ---      ---       #137
-      010023FAH   LINE      ---      ---       #138
-      010023FCH   LINE      ---      ---       #139
-      010023FCH   LINE      ---      ---       #140
-      010023FEH   LINE      ---      ---       #141
-      010023FEH   LINE      ---      ---       #142
-      010023FEH   LINE      ---      ---       #143
-      01002412H   LINE      ---      ---       #144
-      01002420H   LINE      ---      ---       #146
-      01002423H   LINE      ---      ---       #148
-      01002432H   LINE      ---      ---       #149
-      01002434H   LINE      ---      ---       #150
-      0100243EH   LINE      ---      ---       #151
-      0100244CH   LINE      ---      ---       #153
-      0100244FH   LINE      ---      ---       #155
-      01002455H   LINE      ---      ---       #156
-      01002457H   LINE      ---      ---       #158
-      010023FEH   SYMBOL    ---      ---       IPC_TIMERingleStep
-      02004E88H   SYMBOL    XDATA    VOID      pbuff
+      010023EFH   BLOCK     CODE     ---       LVL=0
+      010023EFH   LINE      ---      ---       #129
+      010023EFH   LINE      ---      ---       #130
+      010023EFH   BLOCK     CODE     NEAR LAB  LVL=1
+      010023EFH   LINE      ---      ---       #131
+      01002401H   LINE      ---      ---       #132
+      01002415H   LINE      ---      ---       #133
+      01002415H   LINE      ---      ---       #134
+      0100241DH   LINE      ---      ---       #135
+      0100242EH   LINE      ---      ---       #136
+      01002438H   LINE      ---      ---       #137
+      01002457H   LINE      ---      ---       #138
+      01002459H   LINE      ---      ---       #139
+      01002459H   LINE      ---      ---       #140
+      0100245BH   LINE      ---      ---       #141
+      0100245BH   LINE      ---      ---       #142
+      0100245BH   LINE      ---      ---       #143
+      0100246FH   LINE      ---      ---       #144
+      0100247DH   LINE      ---      ---       #146
+      01002480H   LINE      ---      ---       #148
+      0100248FH   LINE      ---      ---       #149
+      01002491H   LINE      ---      ---       #150
+      0100249BH   LINE      ---      ---       #151
+      010024A9H   LINE      ---      ---       #153
+      010024ACH   LINE      ---      ---       #155
+      010024B2H   LINE      ---      ---       #156
+      010024B4H   LINE      ---      ---       #158
+      0100245BH   SYMBOL    ---      ---       IPC_TIMERingleStep
+      02004E8AH   SYMBOL    XDATA    VOID      pbuff
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2301,19 +2302,19 @@
       02004E49H   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
       01001B25H   PUBLIC    CODE     ---       _compare_str
       01000A72H   PUBLIC    CODE     ---       _Delay1ms
-      010025F7H   PUBLIC    CODE     ---       _xmemclear_ff
+      01002654H   PUBLIC    CODE     ---       _xmemclear_ff
       01000EB0H   PUBLIC    CODE     ---       _xmemclear
       02004E3AH   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
-      01002465H   PUBLIC    CODE     ---       _dmemcpy
-      02004E5DH   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
+      010024C2H   PUBLIC    CODE     ---       _dmemcpy
+      02004E63H   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
       01000B7CH   PUBLIC    CODE     ---       _xmemcpy
-      0100245EH   PUBLIC    CODE     ---       YC_Ice_break
+      010024BBH   PUBLIC    CODE     ---       YC_Ice_break
 
-      0100245EH   BLOCK     CODE     ---       LVL=0
-      0100245EH   LINE      ---      ---       #3
-      0100245EH   LINE      ---      ---       #4
-      0100245EH   LINE      ---      ---       #5
-      01002464H   LINE      ---      ---       #7
+      010024BBH   BLOCK     CODE     ---       LVL=0
+      010024BBH   LINE      ---      ---       #3
+      010024BBH   LINE      ---      ---       #4
+      010024BBH   LINE      ---      ---       #5
+      010024C1H   LINE      ---      ---       #7
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000B7CH   BLOCK     CODE     ---       LVL=0
@@ -2324,12 +2325,12 @@
       01000BBEH   LINE      ---      ---       #14
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01002465H   BLOCK     CODE     ---       LVL=0
-      01002465H   LINE      ---      ---       #16
-      01002470H   LINE      ---      ---       #17
-      01002470H   LINE      ---      ---       #18
-      0100247EH   LINE      ---      ---       #19
-      010024A8H   LINE      ---      ---       #21
+      010024C2H   BLOCK     CODE     ---       LVL=0
+      010024C2H   LINE      ---      ---       #16
+      010024CDH   LINE      ---      ---       #17
+      010024CDH   LINE      ---      ---       #18
+      010024DBH   LINE      ---      ---       #19
+      01002505H   LINE      ---      ---       #21
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000EB0H   BLOCK     CODE     ---       LVL=0
@@ -2340,12 +2341,12 @@
       01000EDBH   LINE      ---      ---       #28
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010025F7H   BLOCK     CODE     ---       LVL=0
-      010025F7H   LINE      ---      ---       #30
-      01002602H   LINE      ---      ---       #31
-      01002602H   LINE      ---      ---       #32
-      0100260CH   LINE      ---      ---       #33
-      01002623H   LINE      ---      ---       #35
+      01002654H   BLOCK     CODE     ---       LVL=0
+      01002654H   LINE      ---      ---       #30
+      0100265FH   LINE      ---      ---       #31
+      0100265FH   LINE      ---      ---       #32
+      01002669H   LINE      ---      ---       #33
+      01002680H   LINE      ---      ---       #35
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000A72H   BLOCK     CODE     ---       LVL=0
@@ -2380,7 +2381,7 @@
       0100174AH   PUBLIC    CODE     ---       GPIO_fillpd
       01001202H   PUBLIC    CODE     ---       _GPIO_FlipOutBit
       01001265H   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
-      01002624H   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      01002681H   PUBLIC    CODE     ---       _GPIO_ClearWakeup
       00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
       01001278H   PUBLIC    CODE     ---       _GPIO_SetWakeup
       00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
@@ -2425,7 +2426,7 @@
       0100122AH   LINE      ---      ---       #32
       01001231H   LINE      ---      ---       #33
       0100125CH   LINE      ---      ---       #35
-      02004EA1H   SYMBOL    XDATA    VOID      queue
+      02004EA3H   SYMBOL    XDATA    VOID      queue
       00000006H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2509,16 +2510,16 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01002624H   BLOCK     CODE     ---       LVL=0
-      01002624H   LINE      ---      ---       #107
-      01002624H   LINE      ---      ---       #108
-      01002624H   BLOCK     CODE     NEAR LAB  LVL=1
-      01002624H   LINE      ---      ---       #111
-      01002628H   LINE      ---      ---       #113
-      0100262CH   LINE      ---      ---       #114
-      01002633H   LINE      ---      ---       #115
-      01002655H   LINE      ---      ---       #116
-      01002662H   LINE      ---      ---       #117
+      01002681H   BLOCK     CODE     ---       LVL=0
+      01002681H   LINE      ---      ---       #107
+      01002681H   LINE      ---      ---       #108
+      01002681H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002681H   LINE      ---      ---       #111
+      01002685H   LINE      ---      ---       #113
+      01002689H   LINE      ---      ---       #114
+      01002690H   LINE      ---      ---       #115
+      010026B2H   LINE      ---      ---       #116
+      010026BFH   LINE      ---      ---       #117
       00000006H   SYMBOL    DATA     VOID      queue
       00000007H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -2556,15 +2557,15 @@
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       IIC
-      01002549H   PUBLIC    CODE     ---       _IIC_WriteBlock
-      010024A9H   PUBLIC    CODE     ---       _IIC_write
+      010025A6H   PUBLIC    CODE     ---       _IIC_WriteBlock
+      01002506H   PUBLIC    CODE     ---       _IIC_write
       01000ACEH   PUBLIC    CODE     ---       _IIC_Read
 
-      01002541H   BLOCK     CODE     ---       LVL=0
-      01002541H   LINE      ---      ---       #11
-      01002541H   LINE      ---      ---       #12
-      01002541H   LINE      ---      ---       #13
-      01002548H   LINE      ---      ---       #14
+      0100259EH   BLOCK     CODE     ---       LVL=0
+      0100259EH   LINE      ---      ---       #11
+      0100259EH   LINE      ---      ---       #12
+      0100259EH   LINE      ---      ---       #13
+      010025A5H   LINE      ---      ---       #14
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000ACEH   BLOCK     CODE     ---       LVL=0
@@ -2590,34 +2591,34 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010024A9H   BLOCK     CODE     ---       LVL=0
-      010024A9H   LINE      ---      ---       #35
-      010024C4H   LINE      ---      ---       #36
-      010024C4H   LINE      ---      ---       #37
-      010024E5H   LINE      ---      ---       #38
-      010024EBH   LINE      ---      ---       #39
-      010024FAH   LINE      ---      ---       #40
-      01002517H   LINE      ---      ---       #41
-      0100252EH   LINE      ---      ---       #42
-      01002535H   LINE      ---      ---       #43
-      0100253AH   LINE      ---      ---       #44
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01002549H   BLOCK     CODE     ---       LVL=0
-      01002549H   LINE      ---      ---       #48
-      01002560H   LINE      ---      ---       #49
-      01002560H   BLOCK     CODE     NEAR LAB  LVL=1
-      01002560H   LINE      ---      ---       #51
-      0100256CH   LINE      ---      ---       #52
-      0100257CH   LINE      ---      ---       #53
-      0100258AH   LINE      ---      ---       #54
-      010025B0H   LINE      ---      ---       #55
-      010025BDH   LINE      ---      ---       #56
-      010025D2H   LINE      ---      ---       #57
-      010025D7H   LINE      ---      ---       #58
-      010025E8H   LINE      ---      ---       #59
-      010025F4H   LINE      ---      ---       #60
-      010025F6H   LINE      ---      ---       #61
+      01002506H   BLOCK     CODE     ---       LVL=0
+      01002506H   LINE      ---      ---       #35
+      01002521H   LINE      ---      ---       #36
+      01002521H   LINE      ---      ---       #37
+      01002542H   LINE      ---      ---       #38
+      01002548H   LINE      ---      ---       #39
+      01002557H   LINE      ---      ---       #40
+      01002574H   LINE      ---      ---       #41
+      0100258BH   LINE      ---      ---       #42
+      01002592H   LINE      ---      ---       #43
+      01002597H   LINE      ---      ---       #44
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010025A6H   BLOCK     CODE     ---       LVL=0
+      010025A6H   LINE      ---      ---       #48
+      010025BDH   LINE      ---      ---       #49
+      010025BDH   BLOCK     CODE     NEAR LAB  LVL=1
+      010025BDH   LINE      ---      ---       #51
+      010025C9H   LINE      ---      ---       #52
+      010025D9H   LINE      ---      ---       #53
+      010025E7H   LINE      ---      ---       #54
+      0100260DH   LINE      ---      ---       #55
+      0100261AH   LINE      ---      ---       #56
+      0100262FH   LINE      ---      ---       #57
+      01002634H   LINE      ---      ---       #58
+      01002645H   LINE      ---      ---       #59
+      01002651H   LINE      ---      ---       #60
+      01002653H   LINE      ---      ---       #61
       00000004H   SYMBOL    DATA     VOID      cris
       02004E38H   SYMBOL    XDATA    VOID      curr_len
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -2689,5 +2690,5 @@
       ---         MODULE    ---      ---       ?C_INIT
       010005B1H   PUBLIC    CODE     ---       ?C_START
 
-Program Size: data=10.2 xdata=789 const=182 code=9645
+Program Size: data=10.2 xdata=791 const=182 code=9738
 LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
Index: c51/output/FW.SBR
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/output/eeprom.dat
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/eeprom.dat	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/eeprom.dat	(working copy)
@@ -2129,8 +2129,8 @@
 00
 00
 58
+0a
 00
-b0
 00
 20
 40
@@ -3700,11 +3700,11 @@
 20
 3a
 7a
-95
-93
+2b
+e9
 aa
 55
-60
+c2
 26
 02
 05
@@ -5106,7 +5106,7 @@
 b1
 02
 17
-c5
+24
 e4
 93
 a3
@@ -5237,22 +5237,22 @@
 f2
 ff
 09
-a2
+92
 00
 00
 00
 ff
-20
-a0
+11
+2b
 ff
-21
-ee
+16
+6a
 00
 00
 00
 ff
-1f
-d5
+21
+db
 00
 1a
 08
@@ -5440,9 +5440,8 @@
 4c
 c5
 e0
-64
+b4
 03
-70
 03
 7f
 01
@@ -5456,116 +5455,207 @@
 e0
 64
 02
-70
-7b
+60
+02
+e1
+c7
+90
+4c
+e9
+e0
+60
+02
+e1
+c1
 90
 4c
 ee
 e0
 60
-08
-7f
-ff
-f1
-66
-7f
-1d
+02
+e1
+c1
+90
+4c
+d5
+e0
+b4
+02
+04
 f1
-66
-d1
-c2
-ef
-60
-68
+da
+80
+2e
 90
 4c
-e6
+d5
 e0
-60
-15
+b4
+01
 14
-f0
+90
+4c
+f7
 e0
 70
-08
+21
+90
+4c
+e2
+74
+18
+f0
+90
+4c
+f7
+74
+01
+f0
+80
+13
+90
+4c
+f7
+e0
+b4
+01
+0c
+e4
+f0
+90
+4c
+e2
+f0
 d2
 01
 7f
-10
+1d
 f1
-54
-80
+c8
+d1
+c2
+ef
+70
+02
+e1
+b5
+90
+4d
+d9
+e0
+ff
+90
+4c
+b7
+e0
+6f
+70
+02
+e1
+c7
+e0
+30
+e0
 0e
+90
+4c
+e6
+74
+3c
+f0
 c2
 01
 7f
 10
 f1
-54
+c8
 80
-06
+0b
 d2
 01
 7f
 10
 f1
-54
+c8
+e4
 90
 4c
-e7
-e0
-60
-15
-14
+e6
 f0
+90
+4c
+b7
 e0
-70
-08
-d2
-01
-7f
-0f
-f1
-54
-80
+30
+e1
 0e
+90
+4c
+e7
+74
+3c
+f0
 c2
 01
 7f
 0f
 f1
-54
+c8
 80
-06
+0b
 d2
 01
 7f
 0f
 f1
-54
+c8
+e4
 90
 4c
-e8
+e7
+f0
+90
+4c
+b7
 e0
-60
-20
-14
+30
+e2
+1a
+90
+4c
+e8
+74
+3c
 f0
 90
 4c
 e5
 e0
 70
-18
+25
 90
 4c
 e2
 e0
 70
-12
+1f
+c2
+01
+7f
+1d
+f1
+c8
+80
+17
 90
 4c
-e8
+e5
+e0
+70
+0c
+90
+4c
+e2
 e0
 70
 06
@@ -5573,14 +5663,40 @@
 01
 7f
 1d
+f1
+c8
+e4
+90
+4c
+e8
+f0
+90
+4c
+b7
+e0
+90
+4d
+d9
+f0
+22
+d2
+01
+7f
+10
+f1
+c8
+d2
+01
+7f
+0f
 80
 07
-c2
+d2
 01
 7f
-1d
+10
 f1
-54
+c8
 22
 ef
 f4
@@ -5597,161 +5713,29 @@
 92
 00
 12
-1f
-09
+14
+f4
 22
-90
-4e
-a5
-ef
-f0
-7b
-01
-7a
-80
-79
-74
-12
-15
-61
-92
-09
-90
-4e
-a5
-e0
-ff
-a2
-09
-b3
-92
-01
-80
-d2
-ac
-07
-ec
-f4
-60
-16
-af
-04
-d2
-04
-12
-1e
-f8
-af
-04
-a2
-06
-92
-01
-f1
-54
-af
-04
-c2
-02
 12
-1e
-d6
-22
-90
-4c
-c3
-e0
-64
-01
-70
-06
-c2
-01
-7f
-ff
-80
-a7
+13
+e1
 90
-4c
-c3
-e0
-64
-02
-70
-06
-c2
-01
-7f
+4b
+ef
+74
 ff
-80
-99
+f0
 90
-4c
-c3
-e0
-64
-03
-70
-0c
-c2
-06
-7f
-ff
-f1
-82
-c2
-06
-7f
-1d
-80
-b3
-c2
-01
-7f
-ff
-f1
-54
-c2
-06
-7f
-1d
-80
-a7
-d2
-06
-7f
-10
-f1
-82
-d2
-06
-7f
-0f
-f1
-82
-d2
-06
-7f
-ff
-f1
-82
-d2
-06
-7f
-ff
-f1
-82
-d2
-06
-7f
-1d
-80
-89
-12
-0f
-a9
-80
-dd
+4d
+3d
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+22
 e4
 ff
 90
@@ -5768,32 +5752,31 @@
 64
 03
 60
-1d
+1c
 90
 4c
 ef
 e0
 70
-1e
+1d
 74
 0a
 f0
 a3
 e0
 70
-17
+16
 90
 4d
 e4
 e0
-64
+b4
 02
-70
 0f
 7f
 09
 11
-34
+23
 7f
 01
 80
@@ -5823,7 +5806,7 @@
 60
 02
 01
-df
+cf
 e4
 90
 4c
@@ -5843,11 +5826,11 @@
 7e
 3f
 51
-dc
+ce
 7f
 0a
 51
-80
+72
 e4
 90
 4d
@@ -5862,18 +5845,18 @@
 21
 a3
 e0
-f4
-70
+b4
+ff
 1c
 a3
 e0
-f4
-70
+b4
+ff
 17
 a3
 e0
-f4
-70
+b4
+ff
 12
 90
 4c
@@ -5896,7 +5879,7 @@
 7f
 21
 11
-e5
+d5
 90
 4c
 c5
@@ -5916,8 +5899,9 @@
 4c
 f0
 f0
-f1
-d4
+12
+10
+85
 ef
 60
 09
@@ -5946,7 +5930,7 @@
 7f
 23
 11
-e5
+d5
 90
 4c
 c5
@@ -6072,7 +6056,7 @@
 64
 12
 23
-7a
+45
 90
 4e
 60
@@ -6180,34 +6164,34 @@
 24
 d0
 60
-4b
+4c
 14
 60
-4a
+4c
 14
 70
 02
 41
-46
+38
 14
 60
 0a
 24
 f7
 60
-3e
+40
 24
 0d
 60
 02
 41
-7f
+71
 12
-07
-f9
+14
+63
 12
-1f
-ac
+20
+ef
 7b
 01
 7a
@@ -6223,14 +6207,14 @@
 7e
 3f
 51
-dc
+ce
 12
-07
-9f
+14
+27
 7f
 0a
 51
-80
+72
 90
 4c
 c1
@@ -6249,15 +6233,17 @@
 7e
 3f
 51
-dc
+ce
 7f
 0a
 51
-80
-e1
-92
-e1
-a9
+72
+02
+17
+bc
+02
+14
+7a
 90
 4c
 c5
@@ -6268,7 +6254,7 @@
 a3
 f0
 f1
-8c
+66
 e4
 90
 4c
@@ -6304,10 +6290,10 @@
 4e
 a1
 e0
-64
+b4
 31
-70
-15
+16
+e4
 90
 4d
 f1
@@ -6325,10 +6311,10 @@
 01
 f0
 51
-98
+8a
 02
-1f
-ca
+21
+d0
 90
 4c
 e5
@@ -6347,7 +6333,7 @@
 7f
 0a
 11
-34
+23
 e4
 90
 4c
@@ -6373,26 +6359,26 @@
 60
 09
 f1
-8c
+66
 90
 4c
 ed
 e0
 ff
 01
-34
+23
 90
 4c
 ec
 e0
-64
+b4
 01
-70
-04
+05
+e4
 f0
 12
-17
-6d
+07
+da
 22
 ef
 d3
@@ -6427,14 +6413,14 @@
 7f
 c8
 51
-80
+72
 c2
 01
 7f
 ff
 12
 07
-54
+c8
 7b
 01
 7a
@@ -6451,7 +6437,7 @@
 3f
 12
 25
-10
+a6
 7b
 01
 7a
@@ -6468,18 +6454,18 @@
 3f
 12
 25
-10
+a6
 d2
 01
 7f
 ff
 12
 07
-54
+c8
 7f
 0a
 51
-80
+72
 e4
 90
 4c
@@ -6629,8 +6615,9 @@
 44
 04
 f0
-f1
-ec
+12
+25
+9e
 90
 4e
 75
@@ -6758,10 +6745,6 @@
 c3
 94
 05
-74
-80
-94
-80
 50
 2c
 90
@@ -6791,14 +6774,14 @@
 12
 03
 b6
-64
+b4
 7f
-70
-05
+06
 90
 4d
 db
-04
+74
+01
 f0
 90
 4e
@@ -6807,7 +6790,7 @@
 04
 f0
 80
-c6
+ca
 90
 4e
 69
@@ -6821,7 +6804,7 @@
 70
 02
 c1
-d5
+af
 90
 4d
 df
@@ -6839,10 +6822,10 @@
 4c
 d5
 e0
-64
+b4
 01
-70
-11
+12
+e4
 90
 4d
 3d
@@ -6887,7 +6870,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -6899,7 +6882,7 @@
 7c
 00
 d1
-d6
+b0
 90
 4e
 69
@@ -6918,11 +6901,8 @@
 03
 cf
 ff
-7e
-00
-64
+b4
 2e
-70
 0a
 90
 00
@@ -6933,12 +6913,10 @@
 64
 29
 60
-38
+34
 ef
-64
+b4
 29
-4e
-70
 0a
 90
 00
@@ -6949,16 +6927,15 @@
 64
 2e
 60
-28
+26
 90
 00
 01
 12
 03
 cf
-64
+b4
 7f
-70
 0a
 90
 00
@@ -6969,7 +6946,7 @@
 64
 27
 60
-14
+13
 90
 00
 01
@@ -6979,16 +6956,15 @@
 64
 27
 70
-24
+23
 90
 00
 02
 12
 03
 cf
-64
+b4
 7f
-70
 1a
 90
 4c
@@ -7039,21 +7015,21 @@
 70
 02
 c1
-d5
+af
 ef
 64
 04
 70
 02
 c1
-d5
+af
 ef
 64
 02
 70
 02
 c1
-d5
+af
 90
 4c
 c5
@@ -7061,7 +7037,7 @@
 64
 03
 70
-4a
+45
 90
 4e
 6d
@@ -7074,12 +7050,8 @@
 c3
 94
 05
-74
-80
-94
-80
 50
-38
+37
 90
 4e
 69
@@ -7111,16 +7083,15 @@
 64
 39
 60
-0a
+09
 ef
 64
 53
 60
-05
+04
 ef
-64
+b4
 47
-70
 06
 90
 4d
@@ -7135,7 +7106,7 @@
 04
 f0
 80
-ba
+bf
 90
 4e
 69
@@ -7148,15 +7119,14 @@
 e0
 f9
 12
-10
-f2
+1e
+2e
 90
 4d
 e7
 e0
-64
+b4
 01
-70
 11
 74
 02
@@ -7174,14 +7144,13 @@
 7d
 03
 e1
-f4
+a4
 90
 4d
 e7
 e0
-64
+b4
 04
-70
 13
 74
 02
@@ -7201,7 +7170,7 @@
 7d
 03
 e1
-f4
+a4
 90
 4d
 e7
@@ -7261,7 +7230,7 @@
 7d
 03
 e1
-f4
+a4
 90
 4d
 dd
@@ -7289,7 +7258,7 @@
 7c
 00
 d1
-d6
+b0
 90
 48
 00
@@ -7318,9 +7287,8 @@
 4c
 c5
 e0
-64
+b4
 03
-70
 0a
 90
 4d
@@ -7347,16 +7315,15 @@
 f1
 e0
 70
-75
+6f
 90
 00
 01
 12
 03
 cf
-64
+b4
 7f
-70
 15
 7e
 48
@@ -7376,7 +7343,7 @@
 05
 f0
 71
-89
+7c
 80
 1c
 7e
@@ -7406,7 +7373,7 @@
 06
 f0
 71
-89
+7c
 90
 4e
 6d
@@ -7421,12 +7388,8 @@
 c3
 94
 09
-74
-80
-94
-80
 50
-42
+41
 74
 00
 2f
@@ -7438,9 +7401,8 @@
 f5
 83
 e0
-64
+b4
 7f
-70
 0f
 90
 4e
@@ -7464,7 +7426,7 @@
 04
 f0
 80
-cc
+d1
 7e
 48
 7f
@@ -7492,7 +7454,7 @@
 06
 f0
 71
-89
+7c
 7b
 01
 7a
@@ -7502,7 +7464,7 @@
 7d
 09
 f1
-f4
+a4
 22
 90
 4e
@@ -7559,7 +7521,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -7571,7 +7533,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -7583,7 +7545,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -7595,7 +7557,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -7607,7 +7569,7 @@
 7c
 00
 d1
-d6
+b0
 7b
 01
 7a
@@ -7619,7 +7581,7 @@
 7c
 00
 d1
-d6
+b0
 e4
 90
 4d
@@ -7693,132 +7655,90 @@
 f0
 22
 90
-4d
-e4
-74
-02
+4e
+96
+ef
 f0
-7f
-08
+a3
+ed
+f0
+7b
 01
-34
-e4
+7a
+48
+79
+00
+7d
+09
+7c
+00
+d1
+b0
 90
-0b
-7f
+48
+00
+74
+01
 f0
+a3
+e0
+ff
 90
-0b
-7e
+4e
+96
+e0
+fe
+ef
+4e
+90
+48
+01
 f0
-7f
+90
+4e
+97
+e0
+90
+48
+03
+f0
+7b
 01
-41
-80
+7a
+48
+79
+00
+7d
+09
 90
-80
-80
-e4
+4e
+16
+eb
+f0
+a3
+ea
 f0
 a3
+e9
 f0
 a3
+ed
 f0
-12
-1e
-97
 e4
+ff
 90
 4e
-9f
-f0
-f0
+19
+e0
+fe
+ef
+c3
+9e
+50
+23
 90
 4e
-9f
-e0
-90
-06
-0c
-93
-ff
-60
-0d
-c2
-05
-12
-1e
-b8
-90
-4e
-9f
-e0
-04
-f0
-80
-e8
-22
-90
-4c
-c5
-e0
-ff
-64
-03
-60
-05
-ef
-64
-02
-70
-07
-7f
-22
-11
-e5
-7f
-01
-22
-7f
-00
-22
-90
-81
-2c
-e0
-30
-e5
-f9
-22
-90
-4e
-16
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-a3
-ed
-f0
-e4
-ff
-90
-4e
-19
-e0
-fe
-ef
-c3
-9e
-50
-23
-90
-4e
-16
+16
 e0
 fb
 a3
@@ -7853,16 +7773,16 @@
 d3
 12
 07
-fe
+ee
 ef
 60
-72
+70
 90
 4c
 eb
 e0
 70
-6c
+6a
 90
 4c
 c5
@@ -7870,7 +7790,7 @@
 64
 03
 70
-64
+62
 90
 4e
 1a
@@ -7905,7 +7825,7 @@
 d6
 f0
 80
-34
+32
 90
 4d
 d6
@@ -7913,14 +7833,13 @@
 01
 f0
 80
-2c
+2a
 90
 4e
 1a
 e0
-64
+b4
 02
-70
 19
 74
 05
@@ -7938,7 +7857,7 @@
 d6
 f0
 80
-13
+12
 90
 4d
 d6
@@ -7946,14 +7865,13 @@
 01
 f0
 80
-0b
+0a
 90
 4e
 1a
 e0
-64
+b4
 03
-70
 03
 74
 07
@@ -7970,7 +7888,7 @@
 e0
 fd
 11
-aa
+58
 22
 90
 0b
@@ -8000,7 +7918,7 @@
 f0
 12
 0b
-89
+7c
 7b
 01
 7a
@@ -8015,833 +7933,646 @@
 02
 fd
 02
-09
-0d
-ad
-07
-ac
-06
+08
+fd
 90
-4d
-e7
+4c
+c5
 e0
+ff
 64
-02
+03
 60
-0e
-74
+04
+ef
+b4
+02
+08
+7f
+22
+12
+08
+d5
+7f
 01
+22
+7f
+00
+22
+90
+4c
+ce
+e0
+30
+e1
+3e
+90
+4c
+d0
+e0
+c3
+94
+fa
+50
+03
+e0
+04
 f0
 90
+4c
+d0
+e0
+64
+b4
+70
+37
+90
 4d
-e8
+dc
+e0
 04
 f0
-ef
-a3
-f0
-ee
-a3
-f0
-22
+e0
+d3
+94
+02
+50
+07
+e4
 90
-4e
-78
-eb
+4c
+d0
 f0
-a3
-ea
+80
+24
+90
+4d
+dc
+e0
+b4
+03
+1d
+90
+4d
+d5
+74
+01
 f0
-a3
-e9
+e4
+90
+4c
+d0
 f0
+12
+07
+da
+80
+0d
 e4
-a3
+90
+4d
+dc
 f0
+90
+4d
+d5
 f0
 90
-4e
-7b
+4c
+d0
+f0
+90
+4c
+ce
 e0
-ff
-c3
-94
-06
+30
+e4
+2f
+90
+4c
+ea
 74
-80
-94
-80
-40
-02
-41
-b9
+0a
+f0
 90
-4e
-78
-e0
-fb
-a3
+4c
+d1
 e0
+c3
+94
 fa
-a3
-e0
-24
-01
-f9
-e4
-3a
-fa
-7e
-00
-e9
-2f
-f9
-ee
-3a
-fa
-12
+50
 03
-b6
-ff
-54
-f0
-64
+e0
+04
 f0
+90
+4c
+d1
+e0
+b4
+06
+1b
+90
+4c
+c3
+e0
+ff
 60
-09
-ef
-54
-d0
-64
-d0
-60
-02
-41
-b1
-12
 03
-b6
-f9
-fb
-7a
-00
-64
-f1
-70
-08
-7f
-83
-7e
-01
-11
-d7
-41
-85
-eb
-64
-f2
-4a
-70
-07
-7f
-cd
-fe
-11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-f3
-70
-07
-7f
-b7
-fe
-11
-d7
-41
-85
-eb
-64
-f4
-4a
-70
-07
-7f
-b6
-fe
-11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-f5
-70
-07
-7f
-b5
-fe
-11
-d7
-41
-85
-eb
-64
-f6
-4a
-70
-07
-7f
-ea
-fe
-11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-f7
-70
-07
-7f
-e9
-fe
-11
-d7
-41
-85
-eb
-64
-f8
-4a
-70
-07
-7f
-e2
+b4
 fe
 11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-f9
-70
-08
-7f
-94
-7e
-01
-11
-d7
-41
-85
-eb
-64
-fa
-4a
-70
-08
-7f
-8a
-7e
-01
-11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-fb
-70
-08
-7f
-92
-7e
-01
-11
-d7
-41
-85
-eb
-64
-d0
-4a
-70
-08
-7f
-2a
-7e
-02
-11
-d7
-41
-85
-e9
-fb
-7a
-00
-64
-d1
-70
-08
-7f
-25
-7e
-02
 11
-d7
-41
 85
-eb
-64
-d3
-4a
-70
-08
 7f
-26
-7e
-02
-11
-d7
-80
-7b
-e9
-fb
-7a
-00
-64
-d2
-70
-08
+0a
+12
+0a
+72
 7f
-24
-7e
+0a
 02
-11
-d7
-80
-6b
-eb
-64
-d4
-4a
-70
 08
-7f
-27
-7e
-02
-11
-d7
-80
-5d
-e9
-fb
-7a
-00
-64
-d5
+23
+e4
+90
+4c
+d1
+f0
+22
+31
+73
+90
+4c
+e4
+e0
+04
+f0
 70
-08
-7f
+06
+90
+4c
+e3
+e0
+04
+f0
+31
+61
+12
 21
-7e
-02
-11
-d7
-80
-4d
 eb
-64
-d6
-4a
+11
+9d
+90
+4c
+ee
+e0
+60
+18
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+ee
+e0
+14
+f0
+e0
 70
 08
 7f
-23
-7e
-02
-11
-d7
-80
-3f
-e9
-fb
-7a
-00
-64
-d7
-70
+0a
+12
+0a
+72
+12
 07
-7f
+da
+22
+90
+4c
+d3
+e0
+60
+0b
+14
+f0
+e0
 70
-fe
-11
-d7
-80
+06
+74
+05
+f0
+12
+22
 30
-eb
-64
-d8
-4a
-70
-07
-7f
-6f
-fe
-11
-d7
-80
-23
-e9
-fd
-7c
-00
+22
+90
+4d
+e4
+e0
 64
-dd
-70
-06
-7f
+02
+60
+02
+41
 01
-51
-ba
-80
-15
-ed
-64
-de
+90
 4c
-70
-06
+ee
+e0
+60
+08
 7f
-02
+ff
 51
-ba
-80
-09
-e9
-64
-df
-70
-04
+02
 7f
-04
+1d
 51
-ba
-90
-4d
-e7
-e0
-64
 02
+12
+06
+c2
+ef
+60
 70
-24
 90
-4e
-78
-e0
-fb
-a3
+4c
+e6
 e0
-fa
-a3
+60
+17
+14
+f0
 e0
-24
+70
+09
+d2
 01
-f9
-e4
-3a
-fa
-a3
-e0
-7e
-00
-29
-f9
-ee
-3a
-fa
+7f
+10
 12
-03
-b6
-90
-4d
-e6
-f0
-e4
+07
+c8
+80
+10
+c2
+01
+7f
+10
 12
-03
-fc
+07
+c8
+80
+07
+d2
+01
+7f
+10
+12
+07
+c8
 90
-4e
-7b
+4c
+e7
 e0
-04
+60
+17
+14
 f0
-21
+e0
+70
+09
+d2
 01
-22
+7f
+0f
+12
+07
+c8
+80
+10
+c2
+01
+7f
+0f
+12
+07
+c8
+80
+07
+d2
+01
+7f
+0f
+12
+07
+c8
 90
-4d
-e7
+4c
+e8
 e0
-64
-02
 60
-12
-74
-04
+22
+14
 f0
 90
-4d
+4c
+e5
+e0
+70
+1a
+90
+4c
 e2
-74
-01
-f0
+e0
+70
+14
 90
-4d
+4c
 e8
-74
-06
-f0
-a3
-ef
-f0
+e0
+70
+07
+d2
+01
+7f
+1d
+02
+07
+c8
+c2
+01
+7f
+1d
+12
+07
+c8
 22
 90
 4e
-96
+a5
 ef
 f0
-a3
-ed
-f0
 7b
 01
 7a
-48
+80
 79
-00
-7d
+74
+51
+1e
+92
 09
-7c
-00
-12
-0e
-d6
 90
-48
-00
-74
-01
-f0
-a3
+4e
+a5
 e0
 ff
+a2
+09
+b3
+92
+01
+02
+07
+c8
+ad
+07
+e4
 90
 4e
-96
-e0
+a3
+f0
 fe
 ef
-4e
-90
-48
-01
+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
-97
+a3
 e0
-90
-48
-03
-f0
+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
-48
+81
 79
-00
-7d
-09
-02
-0f
-f4
+1c
+80
+b9
 90
-4c
-f4
-e0
-ff
-60
-09
-64
-03
-60
-05
+4e
+a4
 ef
-64
-05
-70
-02
-80
-74
+f0
+51
+5d
+92
+08
 90
-4c
-f4
-e0
-64
-01
-70
-0e
-a3
+4e
+a4
 e0
 ff
-e4
-fd
-51
-d5
-90
-4c
-f4
-74
-02
-f0
-22
-90
-4c
+a2
+08
+b3
+92
+07
+ef
 f4
-e0
-64
-02
 70
-0b
-74
+02
+61
+03
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
 03
-f0
-a3
-e0
 ff
+30
+07
+43
+24
 a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
 e0
 fd
+74
+01
+a8
+06
+08
 80
-89
-90
-4c
+02
+c3
+33
+d8
+fc
 f4
-e0
-64
-04
-70
-26
-90
-4c
-f6
+5d
+d0
+82
+d0
+83
 f0
-90
-4c
+74
+a7
+2f
 f5
-e0
-ff
-e4
-fd
-51
-d5
+82
 e4
-90
-4c
+34
+00
 f5
-f0
-90
-4c
-f8
+83
+c0
+83
+c0
+82
 e0
-70
-07
-90
-4c
-f4
+ff
 74
+01
+a8
 06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
 f0
 22
-90
-4c
-f4
 74
-05
-f0
-22
-90
-4c
-f4
-e0
-64
-06
-70
-14
-90
-4c
-f6
-f0
-90
-4c
-f5
-f0
 a3
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
 e0
 fd
-e4
-ff
-51
-d5
-e4
-90
-4c
-f4
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
 f0
-22
-90
-4e
-84
+74
+a7
+2f
+f5
+82
 e4
-f0
-a3
-f0
-a3
-f0
-f1
-d3
-50
-26
-12
-19
-18
-90
-4e
-84
-eb
-f0
-a3
-ea
-f0
-a3
-e9
-f0
-4a
-70
-07
-90
-4c
-b6
-04
-f0
-e1
-eb
-90
-4e
-84
-e0
-fb
-a3
-e0
-fa
-a3
-e0
-f9
-12
-0b
-cc
-22
-b1
-48
-b1
-a0
-71
-11
-12
-0a
-98
-d1
-67
-90
-0b
-7e
+34
+00
+f5
+83
 e0
-14
-60
-0e
-24
-fe
-70
+ff
 ec
-91
-11
-12
-07
-db
-12
-0f
-9c
-80
+f4
 fe
-90
-4c
-ea
-e0
-70
-12
-90
-4c
-ec
-e0
-70
-0c
-90
-4c
-e5
-e0
-70
-06
-90
-4c
-f8
-e0
-60
-04
-f1
-c7
-80
-c6
-91
-11
-12
-0f
-9c
-80
-bf
-80
-bd
+ef
+5e
+f0
 22
 e4
 ff
@@ -8857,7 +8588,7 @@
 0c
 93
 60
-48
+49
 ef
 93
 fd
@@ -8871,9 +8602,10 @@
 54
 07
 fd
-f8
 74
 01
+a8
+05
 08
 80
 02
@@ -8929,10 +8661,9 @@
 f0
 0f
 80
-b1
-12
-26
-2a
+b0
+f1
+4a
 90
 81
 1c
@@ -8948,37 +8679,37 @@
 60
 20
 e4
-ff
-91
-a9
+ff
+51
+65
 7f
 01
-91
-a9
+51
+65
 7f
 02
-91
-a9
+51
+65
 7f
 03
-91
-a9
+51
+65
 7f
 04
-91
-a9
+51
+65
 7f
 05
-91
-a9
+51
+65
 7f
 06
-91
-a9
+51
+65
 7f
 07
-80
-10
+41
+65
 90
 4e
 a0
@@ -8995,165 +8726,209 @@
 a7
 f0
 22
-90
-4e
-a4
+91
+67
+12
+23
 ef
-f0
 b1
-5b
-92
-08
+af
+12
+0a
+8a
+12
+06
+cf
 90
-4e
-a4
+0b
+7e
+e0
+14
+60
+0c
+24
+fe
+70
+ea
+71
+04
+71
+e1
+91
+19
+80
+fe
+90
+4c
+ea
+e0
+70
+12
+90
+4c
+ec
+e0
+70
+0c
+90
+4c
+e5
+e0
+70
+06
+90
+4c
+f8
 e0
+60
+04
+f1
+26
+80
+c6
+71
+04
+91
+19
+80
+c0
+80
+be
+22
+d2
+06
+7f
+10
+71
+fd
+d2
+06
+7f
+0f
+71
+fd
+d2
+06
+7f
 ff
+71
+fd
+d2
+06
+7f
+ff
+71
+fd
+d2
+06
+7f
+1d
+ac
+07
+ec
+f4
+60
+15
+af
+04
+d2
+04
+91
+d2
+af
+04
 a2
-08
-b3
+06
 92
+01
+12
 07
-ef
-f4
-70
+c8
+af
+04
+c2
 02
-a1
-47
-ef
-54
-07
-fe
-ef
-13
-13
-13
-54
-03
-ff
-30
-07
-43
-24
+91
 a3
-f5
-82
+22
 e4
-34
-00
-f5
-83
-c0
-83
-c0
-82
-e0
-fd
-74
+90
+0b
+7f
+f0
+90
+0b
+7e
+f0
+7f
 01
-a8
-06
-08
-80
 02
+0a
+72
+90
+4c
 c3
-33
-d8
-fc
-f4
-5d
-d0
-82
-d0
-83
-f0
-74
-a7
-2f
-f5
-82
-e4
-34
-00
-f5
-83
-c0
-83
-c0
-82
 e0
+b4
+01
+07
+c2
+01
+7f
 ff
-74
+02
+07
+c8
+90
+4c
+c3
+e0
+b4
+02
+07
+c2
 01
-a8
-06
-08
-80
+7f
+ff
 02
+07
+c8
+90
+4c
 c3
-33
-d8
-fc
-4f
-d0
-82
-d0
-83
-f0
-22
-74
-a3
-2f
-f5
-82
-e4
-34
-00
-f5
-83
-c0
-83
-c0
-82
 e0
+b4
+03
+0c
+c2
+06
+7f
+ff
+71
 fd
-74
-01
-a8
+c2
 06
-08
+7f
+1d
 80
-02
-c3
-33
-d8
-fc
-fc
-4d
-d0
-82
-d0
-83
-f0
-74
 a7
-2f
-f5
-82
-e4
-34
-00
-f5
-83
-e0
+c2
+01
+7f
 ff
-ec
-f4
-fe
-ef
-5e
-f0
-22
+12
+07
+c8
+c2
+06
+7f
+1d
+80
+9a
+91
+7a
+61
+e1
 7b
 01
 7a
@@ -9173,125 +8948,159 @@
 02
 03
 90
-7b
-01
-7a
-81
-79
-1c
-ad
-07
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+b1
+55
 e4
 90
 4e
-a3
+9f
 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
-a3
+9f
 e0
+90
+06
+0c
+93
 ff
-74
+60
+0c
+c2
+05
+91
+b4
+90
+4e
+9f
+e0
+04
+f0
+80
+e9
+22
+ef
+f4
+60
+0c
+7b
 01
-7e
+7a
+80
+79
+78
+a2
+02
+92
 00
-a8
+91
+f4
+22
+ac
 07
-08
-80
+ec
+f4
+60
+17
+af
+04
+a2
 05
-c3
-33
-ce
-33
-ce
-d8
-f9
-ff
-ee
-5c
-fe
-ef
-5d
-4e
-24
-ff
+92
+03
+91
+e3
+af
+04
+a2
+05
+b3
+92
+02
+91
+a3
+af
+04
+c2
+04
+91
+d2
 22
+ef
+f4
+60
+0c
+7b
+01
 7a
+80
+79
+70
+a2
+04
+92
+00
+91
+f4
+22
+ef
+f4
+60
 0c
+7b
+01
+7a
+80
 79
-4b
+7c
+a2
+03
+92
+00
+91
+f4
+22
 90
 4e
-8a
-74
-01
+93
+eb
 f0
-a3
-74
-0c
+a3
+ea
 f0
 a3
-74
-4b
+e9
 f0
-90
-4b
-a0
-e0
+e4
 fe
-a3
-e0
-ff
-90
-4b
-9e
-e0
-6e
-70
-03
-a3
-e0
-6f
-60
-47
-7e
-0c
-7f
-4b
-7d
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
 03
-12
-23
-d4
+fd
+30
+00
+22
 90
 4e
-8a
+93
 e0
 fb
 a3
@@ -9299,26 +9108,33 @@
 fa
 a3
 e0
+2d
 f9
+e4
+3a
+fa
 12
 03
 b6
-b4
+ff
+74
+01
+a8
+06
+08
+80
 02
-2b
-90
-4e
-8b
-e4
-75
-f0
+c3
+33
+d8
+fc
+4f
 02
-12
-04
-0e
+03
+fc
 90
 4e
-8a
+93
 e0
 fb
 a3
@@ -9326,473 +9142,496 @@
 fa
 a3
 e0
+2d
 f9
+e4
+3a
+fa
 12
 03
 b6
 ff
-90
-4e
-04
-e0
-a3
-e0
-fa
-a3
-e0
-f5
-82
-8a
-83
-12
-05
-68
+74
+01
+a8
+06
+08
 80
 02
-80
-fe
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
+e4
 90
-4b
-a5
-e0
-fe
-a3
+4e
+9e
+f0
+f0
+90
+4e
+9e
 e0
 ff
+c3
+94
+08
+50
+0c
+c2
+05
+91
+b4
 90
-4c
-5e
-e0
-6e
-70
-03
-a3
+4e
+9e
 e0
-6f
-60
+04
+f0
+80
+ea
 22
 90
-4e
-0a
-e0
-fb
-a3
-e0
-fa
-a3
+4c
+c3
 e0
-f9
-4a
-60
-37
-12
-05
-64
+b4
+01
+07
+d2
+01
+7f
+ff
+02
+07
+c8
 90
-4b
-a5
+4c
+c3
 e0
+b4
+02
+07
+d2
+01
+7f
 ff
-a3
-e0
+02
+07
+c8
 90
 4c
-5e
-cf
-f0
-a3
-ef
-f0
-80
-ca
+c3
+e0
+b4
+03
+0d
+d2
+01
+7f
+ff
+12
+07
+c8
+d2
+06
+7f
+1d
+61
+fd
+d2
+01
+7f
+ff
+12
+07
+c8
+d2
+06
+7f
+1d
+61
+fd
 90
 4c
-8d
+f4
 e0
 ff
-a3
-e0
-6f
 60
-19
-90
-4e
-0d
-e0
-fb
-a3
+08
+64
+03
+60
+04
+ef
+b4
+05
+02
+80
+76
+90
+4c
+f4
 e0
-fa
+b4
+01
+0f
 a3
 e0
-f9
-4a
-60
-0b
+ff
+e4
+fd
 12
-05
-64
+0f
+6c
 90
 4c
-8d
-e0
-a3
+f4
+74
+02
 f0
-80
-dd
 22
 90
-4d
-e4
+4c
+f4
 e0
-64
+b4
 02
-60
+0c
+74
+03
+f0
+a3
+e0
+ff
+a3
+e0
+fd
 02
-e1
+0f
 6c
 90
 4c
-e9
+f4
 e0
-60
-02
-e1
-65
+b4
+04
+28
+e4
 90
 4c
-ee
-e0
-60
-02
-e1
-65
+f6
+f0
 90
 4c
-d5
+f5
 e0
-64
-02
-70
-04
-f1
-6d
-80
-30
+ff
+e4
+fd
+12
+0f
+6c
+e4
 90
 4c
-d5
-e0
-64
-01
-70
-14
+f5
+f0
 90
 4c
-f7
+f8
 e0
 70
-22
+07
 90
 4c
-e2
+f4
 74
-18
+06
 f0
+22
 90
 4c
-f7
+f4
 74
-01
+05
 f0
-80
-14
+22
 90
 4c
-f7
+f4
 e0
-64
-01
-70
-0c
-f0
+b4
+06
+16
+e4
 90
 4c
-e2
+f6
 f0
-d2
-01
-7f
-1d
-12
-07
-54
-12
-06
-c2
-ef
-70
-02
-e1
-57
-90
-4d
-d9
-e0
-ff
 90
 4c
-b7
-e0
-6f
-70
-02
-e1
-6c
-e0
-30
+f5
+f0
+a3
 e0
+fd
+e4
+ff
+12
 0f
+6c
+e4
 90
 4c
-e6
-74
-3c
+f4
 f0
-c2
-01
-7f
-10
-12
-07
-54
-80
-0c
-d2
-01
-7f
-10
+22
+90
+4e
+84
+e4
+f0
+a3
+f0
+a3
+f0
+f1
+32
+50
+26
 12
+18
+eb
+90
+4e
+84
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
 07
-54
-e4
 90
 4c
-e6
+b6
+04
 f0
+e1
+7e
 90
-4c
-b7
+4e
+84
 e0
-30
-e1
-0f
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+0b
+bf
+22
 90
 4c
-e7
-74
-3c
+ea
+e0
+60
+02
+14
 f0
-c2
-01
-7f
-0f
-12
-07
-54
-80
-0c
-d2
-01
-7f
-0f
-12
-07
-54
-e4
 90
 4c
-e7
+ef
+e0
+60
+02
+14
 f0
 90
 4c
-b7
+f8
 e0
-30
-e2
-1b
+60
+0b
+14
+f0
+e0
+70
+06
 90
 4c
-e8
+f4
 74
-3c
+06
 f0
 90
 4c
 e5
 e0
-70
-27
-90
-4c
-e2
+60
+0d
+14
+f0
 e0
 70
-21
-c2
-01
-7f
-1d
-12
-07
-54
+04
+b1
+72
 80
-18
+3f
+91
+27
+80
+3b
 90
 4c
-e5
+ee
 e0
 70
-0d
+35
 90
 4c
 e2
 e0
-70
-07
-d2
+60
+2f
+14
+f0
+e0
+ff
+c3
+94
+08
+50
+16
+ef
+30
+e1
+09
+c2
 01
 7f
 1d
 12
 07
-54
-e4
-90
-4c
-e8
-f0
-90
-4c
-b7
-e0
-90
-4d
-d9
-f0
-22
+c8
+80
+10
 d2
 01
 7f
-10
+1d
 12
 07
-54
-d2
-01
-7f
-0f
-02
+c8
+80
 07
-54
 d2
 01
 7f
-10
-12
-07
-54
-22
+1d
 12
 07
-db
+c8
 90
-4b
-ef
+4c
+e2
+e0
+70
+03
 74
-ff
+18
 f0
 90
 4d
-3d
-f0
-a3
-f0
-a3
-f0
-a3
-f0
-22
-90
-4c
-c5
+d5
 e0
-64
-03
 70
-11
-c3
-90
-4c
-e4
-e0
-94
-10
-90
-4c
-e3
-e0
-94
-0e
-40
-2c
-80
-d3
+2d
 90
-4c
-c5
+4d
+d6
 e0
 64
 01
 70
-11
-c3
+25
+f0
 90
-4c
-e4
+4d
+e8
 e0
-94
-78
+60
+0d
+7b
+01
+7a
+4d
+79
+e8
+7d
+03
+12
+0f
+a4
+80
+11
 90
-4c
-e3
+48
+00
 e0
-94
+60
+0b
+7b
+01
+7a
+48
+79
 00
-40
-13
-80
-ba
-c3
+7d
+09
+12
+0f
+a4
 90
-4c
-e4
+4d
+df
+e0
+60
+11
 e0
-94
 14
+f0
+e0
+70
+0b
+e0
+70
+08
 90
-4c
-e3
+4d
+47
 e0
-94
-00
-40
+60
 02
-f1
-6d
+e4
+f0
 22
 61
-cb
+9c
 90
 0b
 7f
@@ -9829,6 +9668,58 @@
 22
 c3
 22
+e4
+ff
+ef
+fd
+7c
+00
+24
+78
+fb
+ec
+34
+80
+8b
+82
+f5
+83
+e0
+fe
+ed
+24
+70
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+e0
+4e
+f4
+fe
+ef
+24
+7c
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+ee
+f0
+0f
+ef
+b4
+04
+cf
+22
 90
 4d
 47
@@ -9845,10 +9736,9 @@
 4c
 c5
 e0
-64
+b4
 03
-70
-29
+2a
 7b
 01
 7a
@@ -9857,10 +9747,11 @@
 00
 7d
 09
-fc
+7c
+00
 12
 0e
-d6
+b0
 e4
 90
 4d
@@ -9889,7 +9780,72 @@
 09
 12
 0f
-f4
+a4
+22
+90
+4d
+e4
+74
+02
+f0
+7f
+08
+02
+08
+23
+ad
+07
+ac
+06
+90
+4d
+e7
+e0
+64
+02
+60
+0e
+74
+01
+f0
+90
+4d
+e8
+04
+f0
+ef
+a3
+f0
+ee
+a3
+f0
+22
+90
+4d
+e7
+e0
+64
+02
+60
+12
+74
+04
+f0
+90
+4d
+e2
+74
+01
+f0
+90
+4d
+e8
+74
+06
+f0
+a3
+ef
+f0
 22
 90
 4c
@@ -9902,14 +9858,13 @@
 ef
 30
 e0
-13
+12
 90
 4c
 f4
 e0
-64
+b4
 03
-70
 04
 74
 02
@@ -9956,8 +9911,8 @@
 01
 60
 02
-21
-12
+01
+e5
 ed
 24
 d4
@@ -9970,11 +9925,11 @@
 00
 40
 02
-21
-12
+01
+e5
 90
 18
-88
+5b
 75
 f0
 03
@@ -9988,40 +9943,40 @@
 73
 02
 18
-b4
+87
 02
 18
-bc
+8f
 02
 18
-c4
+97
 02
 18
-cc
+9f
 02
 18
-d4
+a7
 02
 18
-dc
+af
 02
 18
-e4
+b7
 02
 18
-ec
+bf
 02
 18
-f4
+c7
 02
 18
-fc
+cf
 02
-19
-04
+18
+d7
 02
-19
-0c
+18
+df
 90
 4e
 9d
@@ -10160,7 +10115,7 @@
 a3
 f0
 91
-da
+6f
 7a
 4d
 79
@@ -10190,7 +10145,7 @@
 79
 bc
 71
-67
+25
 ef
 60
 16
@@ -10202,8 +10157,8 @@
 bc
 7d
 14
-71
-37
+51
+f5
 ef
 70
 09
@@ -10243,7 +10198,7 @@
 0c
 93
 60
-35
+2f
 74
 bc
 2f
@@ -10260,8 +10215,9 @@
 26
 f0
 e0
+fd
 60
-1b
+14
 90
 4e
 2a
@@ -10271,20 +10227,13 @@
 a3
 e0
 fe
-90
-4e
-26
-e0
-fd
-4e
-90
+ed
 4e
-2b
 f0
 af
 05
-71
-29
+51
+e7
 a3
 e0
 2f
@@ -10296,7 +10245,7 @@
 04
 f0
 80
-c0
+c6
 90
 4e
 2c
@@ -10318,8 +10267,8 @@
 2b
 e0
 ff
-71
-29
+51
+e7
 90
 4e
 2f
@@ -10332,10 +10281,6 @@
 d3
 94
 02
-74
-80
-94
-80
 40
 20
 90
@@ -10384,7 +10329,7 @@
 4e
 24
 e0
-fb
+ff
 90
 06
 0c
@@ -10392,14 +10337,10 @@
 70
 02
 41
-fa
-90
-4e
-24
-e0
-fe
-24
+bb
+74
 93
+2f
 f5
 82
 e4
@@ -10408,10 +10349,10 @@
 f5
 83
 e0
-fd
+fe
 74
 bc
-2e
+2f
 f5
 82
 e4
@@ -10420,14 +10361,18 @@
 f5
 83
 e0
-6d
+6e
 90
 4e
 26
 f0
-74
+90
+4e
+24
+e0
+ff
+24
 bc
-2b
 f5
 82
 e4
@@ -10447,9 +10392,9 @@
 70
 04
 41
-f2
+b3
 41
-f2
+b3
 90
 4e
 2e
@@ -10463,13 +10408,9 @@
 79
 00
 22
-90
-4e
-24
-e0
-ff
-24
+74
 bc
+2f
 f5
 82
 e4
@@ -10504,10 +10445,6 @@
 c3
 94
 08
-74
-80
-94
-80
 50
 58
 a3
@@ -10545,7 +10482,7 @@
 93
 fd
 11
-4f
+22
 90
 4e
 2d
@@ -10564,7 +10501,7 @@
 e0
 ff
 71
-b1
+6f
 80
 07
 90
@@ -10572,8 +10509,8 @@
 2d
 e0
 ff
-91
-19
+71
+c5
 90
 4e
 26
@@ -10597,7 +10534,7 @@
 04
 f0
 80
-9a
+9e
 90
 4e
 27
@@ -10610,23 +10547,21 @@
 e0
 04
 f0
-41
-12
+21
+db
 90
 4d
 e7
 e0
-64
+b4
 03
-70
-0b
+0a
 90
 4d
 d8
 e0
-64
+b4
 01
-70
 03
 74
 02
@@ -10636,14 +10571,13 @@
 27
 e0
 70
-08
+07
 90
 4d
 d8
 e0
-64
+b4
 02
-70
 07
 7b
 01
@@ -10798,28 +10732,17 @@
 e4
 fe
 ef
-fd
-7c
-00
 c3
 94
-e0
-74
-80
-94
-80
+e0
 40
-23
+20
+ef
 d3
-ed
 94
 e7
-74
-80
-94
-80
 50
-19
+1a
 90
 4e
 42
@@ -10829,9 +10752,10 @@
 54
 07
 ff
-f8
 74
 01
+a8
+07
 08
 80
 02
@@ -10847,16 +10771,6 @@
 22
 e4
 fe
-ee
-c3
-94
-06
-74
-80
-94
-80
-50
-29
 74
 43
 2e
@@ -10871,7 +10785,7 @@
 fd
 6f
 60
-1a
+1c
 ed
 70
 14
@@ -10881,7 +10795,7 @@
 e0
 6f
 60
-10
+12
 74
 43
 2e
@@ -10896,8 +10810,10 @@
 f0
 22
 0e
-80
-cd
+ee
+b4
+06
+d5
 22
 e4
 fe
@@ -10912,17 +10828,16 @@
 ef
 54
 d0
-64
+fc
+bc
 d0
-70
-0d
+0c
 90
 4d
 e7
 e0
-64
+b4
 02
-70
 0b
 74
 03
@@ -10936,28 +10851,17 @@
 01
 f0
 ef
-fb
-7a
-00
 c3
 94
 e0
-74
-80
-94
-80
 40
-24
+21
+ef
 d3
-eb
 94
 e7
-74
-80
-94
-80
 50
-1a
+1b
 90
 4e
 42
@@ -10967,9 +10871,10 @@
 54
 07
 ff
-f8
 74
 01
+a8
+07
 08
 80
 02
@@ -10986,19 +10891,9 @@
 22
 e4
 fe
-ee
-c3
-94
-06
-74
-80
-94
-80
-50
-5f
 ed
 70
-23
+21
 74
 43
 2e
@@ -11012,15 +10907,13 @@
 e0
 6f
 70
-4b
+47
 ee
-64
+b4
 05
-70
-0c
-74
+0b
+24
 43
-2e
 f5
 82
 e4
@@ -11033,7 +10926,7 @@
 7d
 01
 80
-36
+34
 74
 43
 2e
@@ -11072,13 +10965,11 @@
 60
 14
 ee
-64
+b4
 05
-70
-0c
-74
+0b
+24
 43
-2e
 f5
 82
 e4
@@ -11089,8 +10980,10 @@
 e4
 f0
 0e
-80
-97
+ee
+b4
+06
+a3
 22
 e4
 ff
@@ -11116,7 +11009,7 @@
 70
 02
 a1
-98
+2e
 ef
 93
 fe
@@ -11134,9 +11027,10 @@
 54
 07
 fe
-f8
 74
 01
+a8
+06
 08
 80
 02
@@ -11281,12 +11175,12 @@
 f0
 0f
 81
-ea
+7f
 7f
 05
 12
 0a
-80
+72
 e4
 ff
 ef
@@ -11296,8 +11190,8 @@
 93
 70
 02
-c1
-4d
+a1
+e4
 ef
 93
 fe
@@ -11315,9 +11209,10 @@
 54
 07
 fe
-f8
 74
 01
+a8
+06
 08
 80
 02
@@ -11462,7 +11357,7 @@
 f0
 0f
 a1
-9f
+35
 e4
 ff
 ef
@@ -11537,123 +11432,9 @@
 80
 b9
 22
-e4
-90
-4e
-9e
-f0
-f0
-90
-4e
-9e
-e0
-ff
-c3
-94
-08
-74
-80
-94
-80
-50
-0c
-c2
-05
-d1
-b8
 90
 4e
-9e
-e0
-04
-f0
-80
-e6
-22
-ac
-07
-ec
-f4
-60
-17
-af
-04
-a2
-05
-92
-03
-d1
-e7
-af
-04
-a2
-05
-b3
-92
-02
-d1
-d6
-af
-04
-c2
-04
-d1
-f8
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
 78
-a2
-02
-92
-00
-f1
-09
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-7c
-a2
-03
-92
-00
-f1
-09
-22
-ef
-f4
-60
-0c
-7b
-01
-7a
-80
-79
-70
-a2
-04
-92
-00
-f1
-09
-22
-90
-4e
-93
 eb
 f0
 a3
@@ -11663,25 +11444,25 @@
 e9
 f0
 e4
-fe
-fd
-ef
-54
-07
-fe
-ef
-13
-13
-13
-54
+a3
+f0
+f0
+90
+4e
+7b
+e0
+ff
+c3
+94
+06
+40
 03
-fd
-30
-00
-22
+02
+20
+ee
 90
 4e
-93
+78
 e0
 fb
 a3
@@ -11689,33 +11470,74 @@
 fa
 a3
 e0
-2d
+24
+01
 f9
 e4
 3a
 fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
 12
 03
 b6
 ff
-74
+54
+f0
+64
+f0
+60
+0a
+ef
+54
+d0
+64
+d0
+60
+03
+02
+20
+e5
+12
+03
+b6
+fb
+b4
+f1
+0a
+7f
+83
+7e
 01
-a8
-06
-08
-80
+12
+17
+c7
 02
-c3
-33
-d8
-fc
-4f
+20
+ba
+eb
+b4
+f2
+0a
+7f
+cd
+7e
+00
+12
+17
+c7
 02
-03
-fc
+20
+ba
 90
 4e
-93
+78
 e0
 fb
 a3
@@ -11723,895 +11545,1007 @@
 fa
 a3
 e0
-2d
+24
+01
 f9
 e4
 3a
 fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
 12
 03
 b6
-ff
-74
-01
-a8
-06
+fb
+b4
+f3
 08
-80
-02
-c3
-33
-d8
-fc
-f4
-5f
-02
-03
-fc
-90
-4c
-c3
-e0
-64
-01
-70
-07
-d2
-01
-7f
-ff
-02
-07
-54
-90
-4c
-c3
-e0
-64
-02
-70
-07
-d2
-01
-7f
-ff
-02
-07
-54
-90
-4c
-c3
-e0
-64
-03
-70
-0e
-d2
-01
 7f
-ff
+b7
 12
-07
-54
-d2
-06
-7f
-1d
+17
+c7
 02
-07
-82
-d2
-01
-7f
-ff
-12
-07
-54
-d2
-06
+20
+ba
+eb
+b4
+f4
+0a
 7f
-1d
-02
-07
-82
+b6
+7e
+00
 12
-0f
+17
+c7
 02
-12
-22
-ae
+20
+ba
 90
-4c
-eb
-74
+4e
+78
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
 01
-f0
-90
-4c
-e5
-74
-1e
-f0
+f9
 e4
-90
-4c
-f0
-f0
-90
-4d
-01
-74
-ff
-f0
-22
-90
-80
-10
-74
-01
-f0
-80
-fe
-22
-80
-f5
-90
-4e
-98
-ed
-f0
-90
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f5
+08
+7f
+b5
+12
+17
+c7
+02
+20
+ba
+eb
+b4
+f6
+0a
+7f
+ea
+7e
 00
-01
 12
-03
-cf
+17
+c7
+02
+20
+ba
 90
 4e
-99
-f0
-22
-90
-4c
-ee
+78
 e0
-60
-18
-e4
-90
-4c
-e3
-f0
+fb
 a3
-f0
-90
-4c
-ee
 e0
-14
-f0
+fa
+a3
 e0
-70
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f7
 08
 7f
-0a
+e9
 12
+17
+c7
+02
+20
+ba
+eb
+b4
+f8
 0a
-80
+7f
+e2
+7e
+00
 12
 17
-6d
-22
+c7
+02
+20
+ba
 90
-4c
-ce
+4e
+78
 e0
-30
-e1
-46
-90
-4c
-d0
+fb
+a3
 e0
-c3
-94
 fa
-74
-80
-94
-80
-50
-03
+a3
 e0
-04
-f0
-90
-4c
-d0
+24
+01
+f9
+e4
+3a
+fa
+a3
 e0
-64
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
 b4
-70
-3b
-90
-4d
-dc
-e0
-04
-f0
-e0
-d3
+f9
+09
+7f
 94
+0e
+12
+17
+c7
 02
-74
-80
-94
-80
-50
-07
-e4
+20
+ba
+eb
+b4
+fa
+0a
+7f
+8a
+7e
+01
+12
+17
+c7
+02
+20
+ba
 90
-4c
-d0
-f0
-80
+4e
+78
+e0
+fb
+a3
+e0
+fa
+a3
+e0
 24
-90
-4d
-dc
+01
+f9
+e4
+3a
+fa
+a3
 e0
-64
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
 03
-70
-1c
-90
-4d
-d5
-04
-f0
-e4
-90
-4c
-d0
-f0
+b6
+fb
+b4
+fb
+09
+7f
+92
+0e
 12
 17
-6d
-80
-0d
-e4
-90
-4d
-dc
-f0
-90
-4d
-d5
-f0
-90
-4c
-d0
-f0
-90
-4c
-ce
-e0
-30
-e4
-35
-90
-4c
-ea
-74
+c7
+02
+20
+ba
+eb
+b4
+d0
 0a
-f0
+7f
+2a
+7e
+02
+12
+17
+c7
+02
+20
+ba
 90
-4c
-d1
+4e
+78
 e0
-c3
-94
-fa
-74
-80
-94
-80
-50
-03
+fb
+a3
 e0
-04
-f0
-90
-4c
-d1
+fa
+a3
 e0
-64
-06
-70
-1c
-90
-4c
-c3
+24
+01
+f9
+e4
+3a
+fa
+a3
 e0
-60
-04
-64
-fe
-70
-12
+7e
+00
+29
+f9
+ee
+3a
+fa
 12
-0f
-d4
-7f
+03
+b6
+fb
+b4
+d1
 0a
+7f
+25
+7e
+02
 12
+17
+c7
+02
+20
+ba
+eb
+b4
+d3
 0a
-80
 7f
-0a
+26
+7e
 02
-08
-34
-e4
-90
-4c
-d1
-f0
-22
 12
-06
-d0
+17
+c7
+02
+20
+ba
 90
-4c
-e4
+4e
+78
 e0
-04
-f0
-70
-06
-90
-4c
-e3
+fb
+a3
 e0
-04
-f0
-11
-bb
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d2
+09
+7f
+24
+7e
+02
 12
 17
-81
-11
-04
+c7
+01
+ba
+eb
+b4
+d4
+09
+7f
+27
+7e
 02
-1f
-e5
+12
+17
+c7
+01
+ba
 90
-4c
-d3
+4e
+78
 e0
-60
-0a
-14
-f0
+fb
+a3
 e0
-70
-05
-74
-05
-f0
-11
-cc
-22
-90
-4e
-6f
-12
-05
-33
-00
-00
-00
-00
-90
-4c
-95
+fa
+a3
 e0
-70
-02
+24
+01
+f9
+e4
+3a
+fa
 a3
 e0
-70
-02
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d5
+09
+7f
 21
-ed
+7e
+02
+12
+17
+c7
+80
+7e
+eb
+b4
+d6
+09
+7f
+23
+7e
+02
+12
+17
+c7
+80
+71
 90
-4c
-95
-e0
-fe
-a3
+4e
+78
 e0
-ff
-90
-4c
-d4
+fb
+a3
 e0
-fd
-04
-f0
-ed
-25
+fa
+a3
 e0
 24
-d6
-f5
-82
+01
+f9
 e4
-34
-4c
-f5
-83
-ee
-f0
+3a
+fa
 a3
-ef
-f0
-90
-4c
-d4
 e0
-c3
-94
-04
-74
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d7
+07
+7f
+70
+12
+17
+c7
 80
-94
+4a
+eb
+b4
+d8
+09
+7f
+6f
+7e
+00
+12
+17
+c7
 80
-40
-02
-e4
-f0
-e4
-90
-4e
-6e
-f0
+3d
 90
 4e
-6e
+78
 e0
-c3
-94
-04
-74
-80
-94
-80
-50
-3d
+fb
 a3
 e0
-f8
+fa
 a3
 e0
+24
+01
 f9
+e4
+3a
+fa
 a3
 e0
+7e
+00
+29
+f9
+ee
+3a
 fa
-a3
+12
+03
+b6
+fe
+b4
+dd
+07
+7f
+01
+12
+17
+e2
+80
+16
+ee
+b4
+de
+07
+7f
+02
+12
+17
+e2
+80
+0b
+12
+03
+b6
+b4
+df
+05
+7f
+04
+12
+17
+e2
+90
+4d
+e7
 e0
-fb
+b4
+02
+24
 90
 4e
-6e
+78
 e0
-25
+fb
+a3
+e0
+fa
+a3
 e0
 24
-d6
-f5
-82
+01
+f9
 e4
-34
-4c
-f5
-83
-e0
-fe
+3a
+fa
 a3
 e0
-ff
-e4
-fc
-fd
-eb
-2f
-ff
-ea
-3e
-fe
-ed
-39
-fd
-ec
-38
-fc
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
 90
-4e
-6f
+4d
+e6
+f0
+e4
 12
-05
-27
+03
+fc
 90
 4e
-6e
+7b
 e0
 04
 f0
-80
-b6
+02
+1e
+3d
+22
+12
+0e
+dc
+31
+0c
 90
-4e
-6f
-e0
-fc
-a3
-e0
-fd
-a3
-e0
-fe
+4c
+eb
+74
+01
+f0
+90
+4c
+e5
+74
+1e
+f0
+e4
+90
+4c
+f0
+f0
+90
+4d
+01
+74
+ff
+f0
+22
+90
+4c
+d3
+74
+05
+f0
+e4
 a3
-e0
+f0
+90
+4c
+90
+74
+33
+f0
+e4
 ff
+ef
+25
+e0
+24
+d6
+f5
+82
 e4
-7b
-04
-fa
-f9
-f8
-12
+34
+4c
+f5
+83
+74
+62
+f0
+a3
+f0
+0f
+ef
+b4
 04
-76
-90
-4e
-6f
-12
-05
-27
+ea
 90
 4c
-e0
+91
 e0
 fe
 a3
 e0
 ff
-e4
-fc
-fd
+c3
 90
-4e
-6f
-e0
-f8
-a3
-e0
-f9
-a3
+4c
+94
 e0
-fa
-a3
+9f
+fd
+90
+4c
+93
 e0
-fb
+9e
+fc
+e4
+12
+02
+06
+7b
 c3
+7a
+f5
+79
+a8
+78
+3e
 12
+00
+fb
+c0
+04
+c0
 05
-16
-50
+c0
+06
+c0
 07
 90
 4c
-d5
-74
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
 02
-f0
-22
+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
-e4
-fc
-fd
+c3
 90
-4e
-6f
-e0
-f8
-a3
-e0
-f9
-a3
+4c
+94
 e0
-fa
-a3
+9f
+fd
+90
+4c
+93
 e0
-fb
-c3
+9e
+fc
+e4
+12
+02
+06
+7b
+5c
+7a
+8f
+79
+42
+78
+3e
 12
+00
+fb
+c0
+04
+c0
 05
-16
-50
-17
+c0
+06
+c0
+07
 90
 4c
-d5
-74
-01
-f0
-e4
-90
-4d
-3d
-f0
-a3
-74
-48
-f0
-a3
-74
-12
-f0
-e4
+91
+e0
+fc
 a3
-f0
-22
+e0
+fd
 e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
 90
 4c
-d5
-f0
-90
-4d
-3d
-f0
-a3
-74
-48
-f0
-a3
-74
-5d
+e0
+ee
 f0
-e4
 a3
+ef
 f0
 22
 90
-4c
-ea
-e0
-60
-02
-14
+80
+10
+74
+01
 f0
+80
+fe
+22
+80
+f5
 90
-4c
-ef
-e0
-60
-02
-14
+4e
+98
+ed
 f0
 90
-4c
-f8
-e0
-60
-0b
-14
-f0
-e0
-70
-06
+00
+01
+12
+03
+cf
 90
-4c
-f4
-74
-06
+4e
+99
 f0
+22
 90
 4c
-e5
-e0
-60
-0f
-14
-f0
+c5
 e0
-70
-05
-12
-1f
-6a
-80
-44
+b4
+03
 12
-07
-9f
-80
-3f
+c3
 90
 4c
-ee
+e4
 e0
-70
-39
+94
+10
 90
 4c
-e2
-e0
-60
-33
-14
-f0
+e3
 e0
-ff
-c3
-94
-08
-74
-80
 94
-80
-50
-16
-ef
-30
-e1
-09
-c2
-01
-7f
-1d
-12
-07
-54
-80
-10
-d2
-01
-7f
-1d
-12
-07
-54
-80
+0e
+40
+2e
+02
 07
-d2
+da
+90
+4c
+c5
+e0
+b4
 01
-7f
-1d
 12
-07
-54
+c3
 90
 4c
-e2
+e4
 e0
-70
-03
-74
-18
-f0
+94
+78
 90
-4d
-d5
+4c
+e3
 e0
-70
-2d
+94
+00
+40
+15
+02
+07
+da
+c3
 90
-4d
-d6
+4c
+e4
 e0
-64
-01
-70
-25
-f0
+94
+14
 90
-4d
-e8
+4c
+e3
 e0
-60
-0d
-7b
-01
-7a
-4d
-79
-e8
-7d
+94
+00
+40
 03
 12
-0f
-f4
-80
-11
+07
+da
+22
 90
-48
+4e
+6f
+12
+05
+33
+00
+00
 00
-e0
-60
-0b
-7b
-01
-7a
-48
-79
 00
-7d
-09
-12
-0f
-f4
 90
-4d
-df
-e0
-60
-11
-e0
-14
-f0
+4c
+95
 e0
 70
-0b
+02
+a3
 e0
 70
-08
+02
+61
+44
 90
-4d
-47
+4c
+95
 e0
-60
-02
-e4
-f0
-22
+fe
+a3
+e0
+ff
 90
 4c
-d3
-74
-05
+d4
+e0
+fd
+04
 f0
+ed
+25
+e0
+24
+d6
+f5
+82
 e4
+34
+4c
+f5
+83
+ee
+f0
 a3
+ef
 f0
 90
 4c
-90
-74
-33
-f0
-e4
-ff
-ef
+d4
+e0
 c3
 94
 04
-74
-80
-94
-80
-50
-14
-ef
+40
+02
+e4
+f0
+e4
+90
+4e
+6e
+f0
+90
+4e
+6f
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+90
+4e
+6e
+e0
 25
 e0
 24
@@ -12623,169 +12557,182 @@
 4c
 f5
 83
-74
-62
-f0
-a3
-f0
-0f
-80
-e2
-90
-4c
-91
 e0
 fe
 a3
 e0
 ff
-c3
+e4
+fc
+fd
+eb
+2f
+ff
+ea
+3e
+fe
+ed
+39
+fd
+ec
+38
+fc
 90
-4c
-94
+4e
+6f
+12
+05
+27
+90
+4e
+6e
 e0
-9f
-fd
+04
+f0
+e0
+b4
+04
+bf
 90
-4c
-93
+4e
+6f
 e0
-9e
 fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
 e4
-12
-02
-06
 7b
-c3
-7a
-f5
-79
-a8
-78
-3e
+04
+fa
+f9
+f8
 12
-00
-fb
-c0
 04
-c0
+76
+90
+4e
+6f
+12
 05
-c0
-06
-c0
-07
+27
 90
 4c
-91
 e0
-fc
+e0
+fe
 a3
 e0
-fd
+ff
 e4
+fc
+fd
+90
+4e
+6f
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
 12
-02
-06
-d0
-03
-d0
-02
-d0
-01
-d0
-00
-12
-00
-0a
-12
-02
-3f
+05
+16
+50
+07
 90
 4c
-de
-ee
-f0
-a3
-ef
+d5
+74
+02
 f0
+22
 90
 4c
-91
+de
 e0
 fe
 a3
 e0
 ff
-c3
-90
-4c
-94
-e0
-9f
+e4
+fc
 fd
 90
-4c
-93
+4e
+6f
 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
+f8
+a3
 e0
-fc
+f9
 a3
 e0
-fd
-e4
+fa
+a3
+e0
+fb
+c3
 12
-02
-06
-d0
-03
-d0
-02
-d0
+05
+16
+50
+17
+90
+4c
+d5
+74
 01
-d0
-00
-12
-00
-0a
+f0
+e4
+90
+4d
+3d
+f0
+a3
+74
+48
+f0
+a3
+74
 12
-02
-3f
+f0
+e4
+a3
+f0
+22
+e4
 90
 4c
-e0
-ee
+d5
+f0
+90
+4d
+3d
 f0
 a3
-ef
+74
+48
+f0
+a3
+74
+5d
+f0
+e4
+a3
 f0
 22
 90
@@ -12892,71 +12839,269 @@
 4b
 9e
 e0
-fe
+fe
+a3
+e0
+ff
+ad
+01
+19
+ed
+60
+2f
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+4e
+9a
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ed
+f0
+ad
+07
+ac
+06
+bc
+4b
+d4
+bd
+9a
+d1
+7e
+4b
+7f
+36
+80
+cb
+90
+4b
+9e
+ee
+f0
+a3
+ef
+f0
+22
+7a
+0c
+79
+4b
+90
+4e
+8a
+74
+01
+f0
+a3
+74
+0c
+f0
+a3
+74
+4b
+f0
+90
+4b
+a0
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+46
+7e
+0c
+7f
+4b
+7d
+03
+71
+9f
+90
+4e
+8a
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+b4
+02
+2b
+90
+4e
+8b
+e4
+75
+f0
+02
+12
+04
+0e
+90
+4e
+8a
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+90
+4e
+04
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+05
+68
+80
+02
+80
+fe
+90
+4b
+a5
+e0
+fe
+a3
+e0
+ff
+90
+4c
+5e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+22
+90
+4e
+0a
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+37
+12
+05
+64
+90
+4b
+a5
+e0
+ff
+a3
+e0
+90
+4c
+5e
+cf
+f0
+a3
+ef
+f0
+80
+ca
+90
+4c
+8d
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+4e
+0d
+e0
+fb
+a3
+e0
+fa
 a3
 e0
-ff
-ad
-01
-19
-ed
+f9
+4a
 60
-2f
-0f
-ef
-ac
-06
-70
-01
-0e
-14
-f5
-82
-8c
-83
-e0
-fd
-90
-4e
-9a
-e4
-75
-f0
-01
+0b
 12
-04
-24
-85
-f0
-82
-f5
-83
-ed
-f0
-ad
-07
-ac
-06
-bc
-4b
-d4
-bd
-9a
-d1
-7e
-4b
-7f
-36
-80
-cb
+05
+64
 90
-4b
-9e
-ee
-f0
+4c
+8d
+e0
 a3
-ef
 f0
+80
+dd
 22
 90
 04
@@ -13098,7 +13243,7 @@
 79
 86
 91
-31
+c2
 90
 0b
 83
@@ -13191,9 +13336,14 @@
 44
 04
 f0
-02
-0f
-ec
+90
+81
+2c
+e0
+30
+e5
+f9
+22
 90
 4e
 31
@@ -13227,8 +13377,8 @@
 e0
 70
 02
-a1
-bd
+c1
+53
 90
 4e
 31
@@ -13329,13 +13479,13 @@
 a3
 e0
 f9
-91
-75
+b1
+06
 7f
 0a
 12
 0a
-80
+72
 90
 4e
 38
@@ -13366,7 +13516,7 @@
 3e
 f0
 a1
-27
+bd
 22
 90
 4e
@@ -13476,60 +13626,8 @@
 5c
 f0
 22
-e4
-ff
-ef
-fd
-7c
-00
-24
-78
-fb
-ec
-34
-80
-8b
-82
-f5
-83
-e0
-fe
-ed
-24
-70
-fd
-ec
-34
-80
-8d
-82
-f5
-83
-e0
-4e
-f4
-fe
-ef
-24
-7c
-fd
-ec
-34
-80
-8d
-82
-f5
-83
-ee
-f0
-0f
-ef
-b4
-04
-cf
-22
-a2
-9e
+c5
+64
 aa
 55
 40
@@ -15580,106 +15678,8 @@
 6c
 59
 50
-30
-c4
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+3c
+9a
 ff
 ff
 ff
@@ -16380,5 +16380,5 @@
 ff
 ff
 ff
-d0
-f2
+65
+03
Index: c51/output/fw.hex
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/fw.hex	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/fw.hex	(working copy)
@@ -85,7 +85,7 @@
 :10054000054A12054A12054AE473E493A3C583C51C
 :10055000F0C583C8C582C8F0A3C583C5F0C583C8EC
 :10056000C582C8228A838982E473787FE4F6D8FD45
-:100570007581CF0205B10217C5E493A3F8E493A3F4
+:100570007581CF0205B1021724E493A3F8E493A395
 :100580004003F68001F208DFF48029E493A3F854D5
 :1005900007240CC8C333C4540F4420C8834004F458
 :1005A00056800146F6DFE4800B010204081020406B
@@ -93,8 +93,8 @@
 :1005C00009541FFEE493A360010ECF54C025E060E0
 :1005D000A840B8E493A3FAE493A3F8E493A3C8C5AE
 :1005E00082C8CAC583CAF0A3C8C582C8CAC583CA9F
-:1005F000DFE9DEE780BE524DF2FF09A2000000FFF6
-:1006000020A0FF21EE000000FF1FD5001A08090AF4
+:1005F000DFE9DEE780BE524DF2FF0992000000FF06
+:10060000112BFF166A000000FF21DB001A08090AFF
 :100610000B0C0D0E18191715141311161B1C0000C6
 :100620000048000000E400E03E142B04291DEF35D3
 :100630001E1A3916641B8A3A1F083C073D06883B80
@@ -106,510 +106,516 @@
 :100690004E57855852F2504A4D00E1E5F6F7F5F411
 :1006A000F1FAE3D1D3D2D4F8D591D07FF9F3FBD6C8
 :1006B00090000000000000000000000000000001A9
-:1006C0000100904CC5E0640370037F01227F00228B
-:1006D000904DE4E06402707B904CEEE060087FFF98
-:1006E000F1667F1DF166D1C2EF6068904CE6E06074
-:1006F0001514F0E07008D2017F10F154800EC20191
-:100700007F10F1548006D2017F10F154904CE7E045
-:10071000601514F0E07008D2017F0FF154800EC212
-:10072000017F0FF1548006D2017F0FF154904CE805
-:10073000E0602014F0904CE5E07018904CE2E0701E
-:1007400012904CE8E07006D2017F1D8007C2017F45
-:100750001DF15422EFF4600D7B017A807974A201BF
-:100760009200121F0922904EA5EFF07B017A80794A
-:10077000741215619209904EA5E0FFA209B392018F
-:1007800080D2AC07ECF46016AF04D204121EF8AFAE
-:1007900004A2069201F154AF04C202121ED62290A6
-:1007A0004CC3E064017006C2017FFF80A7904CC378
-:1007B000E064027006C2017FFF8099904CC3E06440
-:1007C00003700CC2067FFFF182C2067F1D80B3C298
-:1007D000017FFFF154C2067F1D80A7D2067F10F172
-:1007E00082D2067F0FF182D2067FFFF182D2067F8E
-:1007F000FFF182D2067F1D8089120FA980DDE4FF00
-:10080000904CEEE0600122904CC5E06403601D90C6
-:100810004CEFE0701E740AF0A3E07017904DE4E016
-:100820006402700F7F0911347F018007E4904CEB64
-:10083000F07F0122904E9CEFF024F7600914605D78
-:100840002402600201DFE4904CF0F07B017A4C79E5
-:10085000007D04FC7FF27E3F51DC7F0A5180E490F2
-:100860004DF1F0904C00E0F47021A3E0F4701CA373
-:10087000E0F47017A3E0F47012904C00740FF0A332
-:10088000F0A3F0A3F0904DF17401F07F2111E590F9
-:100890004CC57402F0E4A3F0904CEDF022E4904CCF
-:1008A000F0F0F1D4EF6009904E9CE0904CEDF02216
-:1008B000904CC5E064016021E4904DF1F07F23117C
-:1008C000E5904CC57401F0E4A3F0904CEE7478F020
-:1008D000E4904CE9F0904CE5F0E4904CEDF022E42B
-:1008E000904CEDF022904E80EFF078817C4E7D01AF
-:1008F0007BFF7A0679BF7E007F03120390904E80C3
-:10090000E0904E83F07B017A4E79817D03904E5DBD
-:10091000EBF0A3EAF0A3E9F0A3EDF0904B9CE0FF2D
-:10092000A3E0904E61CFF0A3EFF0904B9AE0FEA3CE
-:10093000E0FF904B9CE0FCA3E0FD7B6412237A90E7
-:100940004E60E0FEEFC39E40E1904E60E0FF14F089
-:10095000EF603F904E5DE0FBA3E475F001120424CC
-:10096000A9F0FA1203B6FF904E61E475F00112048B
-:100970002485F082F583EFF0904E61E0FEA3E0FF66
-:10098000BE4BC6BF36C3904E61744AF0A374A0F04C
-:1009900080B7904E61E0FFA3E0904B9CCFF0A3EFB7
-:1009A000F022904EA1EFF024D0604B14604A1470F6
-:1009B00002414614600A24F7603E240D6002417F24
-:1009C0001207F9121FAC7B017A4C79007D047C0080
-:1009D0007FF27E3F51DC12079F7F0A5180904CC10D
-:1009E000E0F97A007B007D017C007FF87E3F51DCDE
-:1009F0007F0A5180E192E1A9904CC57403F0E4A311
-:100A0000F0F18CE4904CEEF0904CEBF0904CC07414
-:100A1000FEF0904CC3F0904D477403F0904DDF749E
-:100A20000AF0904EA1E064317015904DF1F0904CB9
-:100A3000E5741EF0904CBF7401F05198021FCA90EB
-:100A40004CE5E0703A22904DF1E06006E4F07F0A58
-:100A50001134E4904CC5F0A3F0904CE3F0A3F09077
-:100A60004CEB04F0904CEDE06009F18C904CEDE023
-:100A7000FF0134904CECE064017004F012176D2219
-:100A8000EFD394004011E4FDFC0DBD00010CBC044B
-:100A9000F8BDA6F51F80E922904CBFE0603D7FC8FD
-:100AA0005180C2017FFF1207547B017A4C79007D8F
-:100AB000047C007FF27E3F1225107B017A4C79C1C5
-:100AC0007D017C007FF87E3F122510D2017FFF124E
-:100AD00007547F0A5180E4904CBFF022904E73EC93
-:100AE000F0A3EDF0A3EBF0A3EAF0A3E9F090809877
-:100AF0007404F0A3E4F0900CAF74A0F0A3EEF0A3A4
-:100B0000EFF0900CB274A1F07A0C79AF7E0C7FAF4D
-:100B100074AFFC740CFFECFEEF90809AEEF0A3EF44
-:100B2000F0904E73E0FCA3E0FAECFFEAFEEF908059
-:100B30009EEEF0A3EFF07A0B79837E0B7F837483B4
-:100B4000FC740BFFECFEEF90809CEEF0A3EFF090B6
-:100B500080907402F090809CA3E020E70790809042
-:100B6000E04401F0908006E04404F0F1EC904E7512
-:100B7000E0A3E0FAA3E0AE02FF7B017A0B79839059
-:100B80004E73E0A3E0904E68F0904E63EEF0A3EF5A
-:100B9000F0A3EBF0A3EAF0A3E9F0904E68E0FF14B5
-:100BA000F0EF6027904E65E0FBA3E475F0011204BE
-:100BB00024A9F0FA1203B6FF904E63E475F0011217
-:100BC000042485F082F583EFF080CF22904E69EB0C
-:100BD000F0A3EAF0A3E9F0E4A3F0A3F0904DDBF07A
-:100BE000904E6DF0904E6DE0FFC39405748094803C
-:100BF000502C904E69E0FBA3E0FAA3E02401F9E455
-:100C00003AFA7E00E92FF9EE3AFA1203B6647F70E1
-:100C100005904DDB04F0904E6DE004F080C6904EE0
-:100C200069E0A3E0FAA3E04A7002C1D5904DDF74F9
-:100C30000AF0E4904CE3F0A3F0904CD5E06401702E
-:100C400011904D3DF0A37448F0A37412F0E4A3F0AA
-:100C50008010E4904D3DF0A37448F0A3745DF0E47F
-:100C6000A3F07B017A4879007D097C00D1D67B0115
-:100C70007A4D79E87D097C00D1D6904E69E0FBA3DE
-:100C8000E0FAA3E0F99000011203CFFF7E00642E8A
-:100C9000700A9000021203CF64296038EF64294E75
-:100CA000700A9000021203CF642E60289000011297
-:100CB00003CF647F700A9000021203CF6427601490
-:100CC0009000011203CF642770249000021203CF1A
-:100CD000647F701A904CC5E064016009904CCEE0CE
-:100CE0004410F08010904CCEE054EFF08007904C10
-:100CF000CEE054EFF0904CB67401F0904CF4E0FF6D
-:100D000064017002C1D5EF64047002C1D5EF6402C2
-:100D10007002C1D5904CC5E06403704A904E6DF0EE
-:100D2000904E6DE0FFC39405748094805038904ECF
-:100D300069E0FBA3E0FAA3E02401F9E43AFA7E00BB
-:100D4000E92FF9EE3AFA1203B6FF6439600AEF644C
-:100D5000536005EF64477006904D477403F0904E62
-:100D60006DE004F080BA904E69E0FBA3E0FAA3E0E6
-:100D7000F91210F2904DE7E0640170117402F090E6
-:100D80004DE8F07B017A4D79E87D03E1F4904DE781
-:100D9000E0640470137402F0904DE87406F07B0177
-:100DA0007A4D79E87D03E1F4904DE7E06403600B50
-:100DB000E06402702F904DDDE07029E4904DE7F083
-:100DC000904DE6F0904DE2E0600AE4F0904DE8745A
-:100DD00006F08006904DE87402F07B017A4D79E8C8
-:100DE0007D03E1F4904DDDE07016904E69E0FBA3C9
-:100DF000E0FAA3E02401F9E43AFA7D067C00D1D6BA
-:100E00009048007401F0904E69E0FBA3E0FAA3E083
-:100E1000F91203B6904801F0904CC5E06403700AE3
-:100E2000904D47E0904802F08005E4904802F0E4DD
-:100E3000904DD8F0904DF1E070759000011203CF05
-:100E4000647F70157E487F03E92402F9E43AFA9042
-:100E50004E687405F07189801C7E487F03904E694E
-:100E6000E0FBA3E0FAA3E02401F9E43AFA904E682B
-:100E70007406F07189904E6D7403F0904E6DE0FF32
-:100E8000C3940974809480504274002FF582E43436
-:100E900048F583E0647F700F904E6DE02400F5828A
-:100EA000E43448F583E4F0904E6DE004F080CC7EAD
-:100EB000487F03904E69E0FBA3E0FAA3E02401F928
-:100EC000E43AFA904E687406F071897B017A4879A9
-:100ED000007D09F1F422904E8DEBF0A3EAF0A3E936
-:100EE000F0ED1DAE0470011C4E6016904E8DE0FBBF
-:100EF000A3E475F001120424A9F0FAE41203FC80C3
-:100F0000E0227B017A4C79BF7D437C00D1D67B0106
-:100F10007A4D79937D147C00D1D67B017A4D79A8E6
-:100F20007D147C00D1D67B017A4D79BC7D147C0088
-:100F3000D1D67B017A4879007D097C00D1D67B012E
-:100F40007A4D79E87D097C00D1D6E4904DDFF090B0
-:100F50004DE5F0904DE4F0904DD6F0904DD0F090EE
-:100F60004DDCF0904DE7F0904DD5F0904DD8F090DD
-:100F70004DDBF0904DE3F0904DD3F0904DE0F090CC
-:100F80004DE6F0904DD9F0904D38F022E4904CF0C1
-:100F9000F022904DE47402F07F080134E4900B7F5E
-:100FA000F0900B7EF07F014180908080E4F0A3F010
-:100FB000A3F0121E97E4904E9FF0F0904E9FE090A9
-:100FC000060C93FF600DC205121EB8904E9FE00400
-:100FD000F080E822904CC5E0FF64036005EF6402F6
-:100FE00070077F2211E57F01227F002290812CE093
-:100FF00030E5F922904E16EBF0A3EAF0A3E9F0A356
-:10100000EDF0E4FF904E19E0FEEFC39E5023904EAA
-:1010100016E0FBA3E0FAA3E0F98F827583001203C8
-:10102000CFFE741A2FF582E4344EF583EEF00F8074
-:10103000D31207FEEF6072904CEBE0706C904CC5E1
-:10104000E064037064904E1AE0640170237404F04D
-:10105000A3E07014904E1DE0700EA3E0700AA3E0B0
-:101060007006904DD6F08034904DD67401F0802CEF
-:10107000904E1AE0640270197405F0A3E0700AA3A0
-:10108000E07006904DD6F08013904DD67401F0803C
-:101090000B904E1AE0640370037407F07B017A4EE4
-:1010A000791A904E19E0FD11AA22900BE77406F010
-:1010B000904EA2EDF0E0FD900BE8F07E0B7FE99002
-:1010C0004E68EDF0120B897B017A0B79E7904EA206
-:1010D000E02402FD02090DAD07AC06904DE7E06487
-:1010E00002600E7401F0904DE804F0EFA3F0EEA35F
-:1010F000F022904E78EBF0A3EAF0A3E9F0E4A3F03D
-:10110000F0904E7BE0FFC3940674809480400241CF
-:10111000B9904E78E0FBA3E0FAA3E02401F9E43AA9
-:10112000FA7E00E92FF9EE3AFA1203B6FF54F064A2
-:10113000F06009EF54D064D0600241B11203B6F9F7
-:10114000FB7A0064F170087F837E0111D74185EB43
-:1011500064F24A70077FCDFE11D74185E9FB7A0022
-:1011600064F370077FB7FE11D74185EB64F44A70D2
-:10117000077FB6FE11D74185E9FB7A0064F5700759
-:101180007FB5FE11D74185EB64F64A70077FEAFE12
-:1011900011D74185E9FB7A0064F770077FE9FE11FA
-:1011A000D74185EB64F84A70077FE2FE11D741858D
-:1011B000E9FB7A0064F970087F947E0111D74185BC
-:1011C000EB64FA4A70087F8A7E0111D74185E9FBFA
-:1011D0007A0064FB70087F927E0111D74185EB6431
-:1011E000D04A70087F2A7E0211D74185E9FB7A0038
-:1011F00064D170087F257E0211D74185EB64D34A04
-:1012000070087F267E0211D7807BE9FB7A0064D2CA
-:1012100070087F247E0211D7806BEB64D44A70087B
-:101220007F277E0211D7805DE9FB7A0064D57008C4
-:101230007F217E0211D7804DEB64D64A70087F2350
-:101240007E0211D7803FE9FB7A0064D770077F7078
-:10125000FE11D78030EB64D84A70077F6FFE11D73C
-:101260008023E9FD7C0064DD70067F0151BA8015A2
-:10127000ED64DE4C70067F0251BA8009E964DF70CC
-:10128000047F0451BA904DE7E064027024904E78D8
-:10129000E0FBA3E0FAA3E02401F9E43AFAA3E07E3C
-:1012A0000029F9EE3AFA1203B6904DE6F0E4120383
-:1012B000FC904E7BE004F0210122904DE7E06402B7
-:1012C00060127404F0904DE27401F0904DE87406E1
-:1012D000F0A3EFF022904E96EFF0A3EDF07B017AB1
-:1012E0004879007D097C00120ED69048007401F008
-:1012F000A3E0FF904E96E0FEEF4E904801F0904E36
-:1013000097E0904803F07B017A4879007D09020F4D
-:10131000F4904CF4E0FF600964036005EF6405702D
-:10132000028074904CF4E06401700EA3E0FFE4FDD1
-:1013300051D5904CF47402F022904CF4E0640270A9
-:101340000B7403F0A3E0FFA3E0FD8089904CF4E070
-:1013500064047026904CF6F0904CF5E0FFE4FD51EB
-:10136000D5E4904CF5F0904CF8E07007904CF47494
-:1013700006F022904CF47405F022904CF4E06406E0
-:101380007014904CF6F0904CF5F0A3E0FDE4FF51A2
-:10139000D5E4904CF4F022904E84E4F0A3F0A3F056
-:1013A000F1D35026121918904E84EBF0A3EAF0A363
-:1013B000E9F04A7007904CB604F0E1EB904E84E0FF
-:1013C000FBA3E0FAA3E0F9120BCC22B148B1A07163
-:1013D00011120A98D167900B7EE014600E24FE7003
-:1013E000EC91111207DB120F9C80FE904CEAE0702A
-:1013F00012904CECE0700C904CE5E07006904CF8CC
-:10140000E06004F1C780C69111120F9C80BF80BDBF
-:1014100022E4FF904EA0F0FEFDEF90060C93604892
-:10142000EF93FD131313541FFEED5407FDF87401E1
-:10143000088002C333D8FCFDEE2478FBE434808BB3
-:1014400082F583E0FCEDF4FBEC5BF0EE2470F582BA
-:10145000E43480F583E04DF0EE2474F582E43480CA
-:10146000F583E05BF00F80B112262A90811CE0909A
-:101470004EA0F0904DD5E06020E4FF91A97F01914E
-:10148000A97F0291A97F0391A97F0491A97F05916A
-:10149000A97F0691A97F078010904EA0E0FF9000E1
-:1014A000A3F0EFF49000A7F022904EA4EFF0B15B10
-:1014B0009208904EA4E0FFA208B39207EFF47002E6
-:1014C000A147EF5407FEEF1313135403FF300743F4
-:1014D00024A3F582E43400F583C083C082E0FD7468
-:1014E00001A806088002C333D8FCF45DD082D08303
-:1014F000F074A72FF582E43400F583C083C082E046
-:10150000FF7401A806088002C333D8FC4FD082D0F4
-:1015100083F02274A32FF582E43400F583C083C0E6
-:1015200082E0FD7401A806088002C333D8FCFC4D9C
-:10153000D082D083F074A72FF582E43400F583E0E5
-:10154000FFECF4FEEF5EF0227B017A4D79F2780435
-:101550007C4E7D017E007F120203907B017A8179AF
-:101560001CAD07E4904EA3F0FEEF5407F0EF131309
-:10157000135403FEF5827583001203CFFD3395E00B
-:10158000FC904EA3E0FF74017E00A807088005C30D
-:1015900033CE33CED8F9FFEE5CFEEF5D4E24FF2252
-:1015A0007A0C794B904E8A7401F0A3740CF0A374FA
-:1015B0004BF0904BA0E0FEA3E0FF904B9EE06E70DE
-:1015C00003A3E06F60477E0C7F4B7D031223D49012
-:1015D0004E8AE0FBA3E0FAA3E0F91203B6B4022BB3
-:1015E000904E8BE475F00212040E904E8AE0FBA33D
-:1015F000E0FAA3E0F91203B6FF904E04E0A3E0FA8C
-:10160000A3E0F5828A83120568800280FE904BA5D4
-:10161000E0FEA3E0FF904C5EE06E7003A3E06F601D
-:1016200022904E0AE0FBA3E0FAA3E0F94A603712E9
-:101630000564904BA5E0FFA3E0904C5ECFF0A3EFD4
-:10164000F080CA904C8DE0FFA3E06F6019904E0DC2
-:10165000E0FBA3E0FAA3E0F94A600B120564904CAA
-:101660008DE0A3F080DD22904DE4E064026002E1B1
-:101670006C904CE9E06002E165904CEEE06002E1C4
-:1016800065904CD5E064027004F16D8030904CD5CB
-:10169000E064017014904CF7E07022904CE27418F2
-:1016A000F0904CF77401F08014904CF7E0640170F6
-:1016B0000CF0904CE2F0D2017F1D1207541206C2CA
-:1016C000EF7002E157904DD9E0FF904CB7E06F709A
-:1016D00002E16CE030E00F904CE6743CF0C2017F18
-:1016E00010120754800CD2017F10120754E4904C62
-:1016F000E6F0904CB7E030E10F904CE7743CF0C25C
-:10170000017F0F120754800CD2017F0F120754E49F
-:10171000904CE7F0904CB7E030E21B904CE8743C02
-:10172000F0904CE5E07027904CE2E07021C2017F20
-:101730001D1207548018904CE5E0700D904CE2E0CB
-:101740007007D2017F1D120754E4904CE8F0904CD2
-:10175000B7E0904DD9F022D2017F10120754D20188
-:101760007F0F020754D2017F10120754221207DBA9
-:10177000904BEF74FFF0904D3DF0A3F0A3F0A3F079
-:1017800022904CC5E064037011C3904CE4E09410C7
-:10179000904CE3E0940E402C80D3904CC5E0640163
-:1017A0007011C3904CE4E09478904CE3E0940040D6
-:1017B0001380BAC3904CE4E09414904CE3E094009E
-:1017C0004002F16D2261CB900B7F7401F0E4900B2D
-:1017D0007EF022904B9CE0FEA3E0FF904B9AE0B598
-:1017E0000607A3E0B50702D322C322904D47E0606D
-:1017F00037904DD6E07031904CC5E0640370297B82
-:10180000017A4879007D09FC120ED6E4904DE7F08C
-:1018100090480004F0904D47E0904802F07B017A38
-:101820004879007D09120FF422904CF5EDF0A3EBFE
-:10183000F0EF30E013904CF4E0640370047402F0B5
-:1018400022904CF47401F022904CF47404F022E4E1
-:10185000904E9DF0EF30E005E4904CF8F0904E9DF6
-:10186000EDF0904DDBE0640160022112ED24D460C4
-:101870003B24F2B40C004002211290188875F0034A
-:10188000A4C58325F0C583730218B40218BC0218DE
-:10189000C40218CC0218D40218DC0218E40218ECB6
-:1018A0000218F40218FC02190402190C904E9D74DF
-:1018B00065F0805E904E9D74F1F08056904E9D7460
-:1018C000F6F0804E904E9D74F7F08046904E9D74D9
-:1018D000F8F0803E904E9D74F4F08036904E9D74EA
-:1018E000F5F0802E904E9D74F2F08026904E9D74FF
-:1018F000F3F0801E904E9D74D6F08016904E9D742D
-:10190000FAF0800E904E9D74F9F08006904E9D7412
-:10191000D0F0904E9DE0FF22E4904E24F0A3F0A37F
-:10192000F0A3F0A3F0A3F0A3F0A3F0A3F0A3F0A31F
-:10193000F0A3F0A3F091DA7A4D79A8904E4C74019F
-:10194000F0A3744DF0A374A8F0A37414F07B017A93
-:101950004D79BC7167EF60167B017A4D79BC7D14BF
-:101960007137EF7009904CCEE04402F0800C904C3F
-:10197000CEE054FDF0E4904CD0F0E4904E24F09092
-:101980004E24E0FF90060C93603574BC2FF582E482
-:10199000344DF583E0904E26F0E0601B904E2AE037
-:1019A00004F0A3E0FE904E26E0FD4E904E2BF0AFEB
-:1019B000057129A3E02FF0904E24E004F080C09040
-:1019C0004E2CE0904DDDF0904E2AE0904E30F0909D
-:1019D0004E2BE0FF7129904E2FEFF0904DDDE0D3BC
-:1019E0009402748094804020904E2FE0FFA3E0FE8C
-:1019F000D39F4004AF068000904DDDE0D39F4008A8
-:101A0000904E2E7401F08005E4904E2EF0E4904E3E
-:101A100024F0904E24E0FB90060C93700241FA9063
-:101A20004E24E0FE2493F582E4344DF583E0FD740A
-:101A3000BC2EF582E4344DF583E06D904E26F074B3
-:101A4000BC2BF582E4344DF583E0904E29F0904EA6
-:101A500026E0700441F241F2904E2EE060077B00D8
-:101A60007A00790022904E24E0FF24BCF582E43411
-:101A70004DF583E0FE74932FF582E4344DF583EE4B
-:101A8000F0E4904E25F0904E25E0FFC3940874805A
-:101A900094805058A3E030E03B904E24E0FE333376
-:101AA0003354F8FEEF4E904E28F0A3E0FF904E28FE
-:101AB000E090062193FD114F904E2DEFF0904E29AE
-:101AC000E030E009904E2DE0FF71B18007904E2D7F
-:101AD000E0FF9119904E26E0FFC313F0904E29E0ED
-:101AE000FFC313F0904E25E004F0809A904E2774C7
-:101AF00001F0904E24E004F04112904DE7E06403C1
-:101B0000700B904DD8E0640170037402F0904E2782
-:101B1000E07008904DD8E0640270077B017A4E793E
-:101B200042227B007A00790022E4FEEF6006145F17
-:101B3000FF0E80F7AF0622904E87EBF0A3EAF0A3EA
-:101B4000E9F0E4FFEFC39D501B904E87E0FBA3E05C
-:101B5000FAA3E0F98F827583001203CF60037F0040
-:101B6000220F80E07F0122904E49EBF0A3EAF0A320
-:101B7000E9F0E4FF904E4FE0FEEFC39E5030904EF0
-:101B80004CE0FBA3E0FAA3E0F98F82758300120317
-:101B9000CFFE904E49E0FBA3E0FAA3E0F98F8275F7
-:101BA00083001203CF6E60037F00220F80C67F0187
-:101BB00022E4FEEFFD7C00C394E074809480402317
-:101BC000D3ED94E7748094805019904E42E0FEEF7C
-:101BD0005407FFF87401088002C333D8FC4E904EBE
-:101BE00042F022E4FEEEC39406748094805029747F
-:101BF000432EF582E4344EF583E0FD6F601AED70FC
-:101C000014904DE6E06F601074432EF582E4344E7C
-:101C1000F583EFF0220E80CD22E4FEFDEF54F06458
-:101C2000F06007EF54D064D0700D904DE7E064028F
-:101C3000700B7403F08006904DD87401F0EFFB7ABE
-:101C400000C394E0748094804024D3EB94E77480C4
-:101C50009480501A904E42E0FEEF5407FFF8740152
-:101C6000088002C333D8FCF45E904E42F022E4FEBA
-:101C7000EEC3940674809480505FED702374432EFD
-:101C8000F582E4344EF583E06F704BEE6405700C22
-:101C900074432EF582E4344EF583E4F07D01803602
-:101CA00074432EF582E4344EF583E0FC74422EF545
-:101CB00082E4344EF583ECF074432EF582E4344E26
-:101CC000F583E06014EE6405700C74432EF582E435
-:101CD000344EF583E4F00E809722E4FF904E57F0E7
-:101CE000A3F0A3F0A3F0A3F0A3F0EF90060C937081
-:101CF00002A198EF93FE131313541FF9904E58F05E
-:101D0000EE5407FEF87401088002C333D8FC904EED
-:101D100059F0E92478FDE43480FC8D82F583C0839A
-:101D2000C082E0FE904E59E0F4FBEE5BD082D0839F
-:101D3000F0E92470F582E43480F583C083C082E04A
-:101D4000FE904E59E0FAEE4AD082D083F0E9247436
-:101D5000F582E43480F583E05BF090811CE0F4FED2
-:101D600074BC2FF582E4344DF583EEF08D828C83C4
-:101D7000C083C082E0FE904E59E0FDEE4DD082D08F
-:101D800083F0E92470FBE434808B82F583E0FEED80
-:101D9000F4FDEE5DF00F81EA7F05120A80E4FFEFAB
-:101DA00090060C937002C14DEF93FE131313541F52
-:101DB000F9904E58F0EE5407FEF87401088002C303
-:101DC00033D8FC904E59F0E92478FDE43480FC8D42
-:101DD00082F583C083C082E0FE904E59E0F4FBEEB2
-:101DE0005BD082D083F0E92470F582E43480F583FF
-:101DF000C083C082E0FE904E59E0FAEE4AD082D015
-:101E000083F0E92474F582E43480F583E05BF0909C
-:101E1000811CE0F4FE74A82FF582E4344DF583EEC6
-:101E2000F08D828C83C083C082E0FE904E59E0FD2D
-:101E3000EE4DD082D083F0E92470FBE434808B82B5
-:101E4000F583E0FEEDF4FDEE5DF00FA19FE4FFEF02
-:101E500090060C93604074BC2FF582E4344DF583FA
-:101E6000E0FE74A82FF582E4344DF583E06E602324
-:101E700074BC2FF582E4344DF583C083C082E0FE4C
-:101E800074A82FF582E4344DF583E0FDEE5DD08239
-:101E9000D083F00F80B922E4904E9EF0F0904E9ED9
-:101EA000E0FFC3940874809480500CC205D1B890B0
-:101EB0004E9EE004F080E622AC07ECF46017AF041D
-:101EC000A2059203D1E7AF04A205B39202D1D6AF27
-:101ED00004C204D1F822EFF4600C7B017A80797897
-:101EE000A2029200F10922EFF4600C7B017A807962
-:101EF0007CA2039200F10922EFF4600C7B017A804E
-:101F00007970A2049200F10922904E93EBF0A3EABB
-:101F1000F0A3E9F0E4FEFDEF5407FEEF13131354B2
-:101F200003FD300022904E93E0FBA3E0FAA3E02DE6
-:101F3000F9E43AFA1203B6FF7401A806088002C356
-:101F400033D8FC4F0203FC904E93E0FBA3E0FAA3CE
-:101F5000E02DF9E43AFA1203B6FF7401A8060880EE
-:101F600002C333D8FCF45F0203FC904CC3E064016D
-:101F70007007D2017FFF020754904CC3E0640270E7
-:101F800007D2017FFF020754904CC3E06403700E38
-:101F9000D2017FFF120754D2067F1D020782D201B1
-:101FA0007FFF120754D2067F1D020782120F021212
-:101FB00022AE904CEB7401F0904CE5741EF0E4906E
-:101FC0004CF0F0904D0174FFF0229080107401F0FD
-:101FD00080FE2280F5904E98EDF09000011203CF24
-:101FE000904E99F022904CEEE06018E4904CE3F0B3
-:101FF000A3F0904CEEE014F0E070087F0A120A8023
-:1020000012176D22904CCEE030E146904CD0E0C3E8
-:1020100094FA748094805003E004F0904CD0E06413
-:10202000B4703B904DDCE004F0E0D39402748094F3
-:10203000805007E4904CD0F08024904DDCE06403A5
-:10204000701C904DD504F0E4904CD0F012176D80C8
-:102050000DE4904DDCF0904DD5F0904CD0F0904CCC
-:10206000CEE030E435904CEA740AF0904CD1E0C3F5
-:1020700094FA748094805003E004F0904CD1E064B2
-:1020800006701C904CC3E0600464FE7012120FD402
-:102090007F0A120A807F0A020834E4904CD1F022B1
-:1020A0001206D0904CE4E004F07006904CE3E0049B
-:1020B000F011BB1217811104021FE5904CD3E060B0
-:1020C0000A14F0E070057405F011CC22904E6F12E6
-:1020D000053300000000904C95E07002A3E0700210
-:1020E00021ED904C95E0FEA3E0FF904CD4E0FD0480
-:1020F000F0ED25E024D6F582E4344CF583EEF0A330
-:10210000EFF0904CD4E0C39404748094804002E4D7
-:10211000F0E4904E6EF0904E6EE0C39404748094A0
-:1021200080503DA3E0F8A3E0F9A3E0FAA3E0FB9020
-:102130004E6EE025E024D6F582E4344CF583E0FED3
-:10214000A3E0FFE4FCFDEB2FFFEA3EFEED39FDECE2
-:1021500038FC904E6F120527904E6EE004F080B66A
-:10216000904E6FE0FCA3E0FDA3E0FEA3E0FFE47B64
-:1021700004FAF9F8120476904E6F120527904CE09D
-:10218000E0FEA3E0FFE4FCFD904E6FE0F8A3E0F971
-:10219000A3E0FAA3E0FBC31205165007904CD574D8
-:1021A00002F022904CDEE0FEA3E0FFE4FCFD904E46
-:1021B0006FE0F8A3E0F9A3E0FAA3E0FBC312051671
-:1021C0005017904CD57401F0E4904D3DF0A3744845
-:1021D000F0A37412F0E4A3F022E4904CD5F0904DFB
-:1021E0003DF0A37448F0A3745DF0E4A3F022904C9A
-:1021F000EAE0600214F0904CEFE0600214F0904CC2
-:10220000F8E0600B14F0E07006904CF47406F09067
-:102210004CE5E0600F14F0E07005121F6A80441274
-:10222000079F803F904CEEE07039904CE2E06033C5
-:1022300014F0E0FFC39408748094805016EF30E1EE
-:1022400009C2017F1D1207548010D2017F1D1207A1
-:10225000548007D2017F1D120754904CE2E07003B6
-:102260007418F0904DD5E0702D904DD6E06401705B
-:1022700025F0904DE8E0600D7B017A4D79E87D0313
-:10228000120FF48011904800E0600B7B017A4879CE
-:10229000007D09120FF4904DDFE06011E014F0E0D2
-:1022A000700BE07008904D47E06002E4F022904C23
-:1022B000D37405F0E4A3F0904C907433F0E4FFEF96
-:1022C000C39404748094805014EF25E024D6F582E2
-:1022D000E4344CF5837462F0A3F00F80E2904C91EB
-:1022E000E0FEA3E0FFC3904C94E09FFD904C93E090
-:1022F0009EFCE41202067BC37AF579A8783E1200B0
-:10230000FBC004C005C006C007904C91E0FCA3E0F0
-:10231000FDE4120206D003D002D001D00012000A60
-:1023200012023F904CDEEEF0A3EFF0904C91E0FEF5
-:10233000A3E0FFC3904C94E09FFD904C93E09EFC83
-:10234000E41202067B5C7A8F7942783E1200FBC071
-:1023500004C005C006C007904C91E0FCA3E0FDE47A
-:10236000120206D003D002D001D00012000A1202DD
-:102370003F904CE0EEF0A3EFF022904E7CEEF0A305
-:10238000EFF0904E7EECF0A3EDF0904E7EE0FEA3D9
-:10239000E0FFD3904E7DE09F904E7CE09E401690F3
-:1023A0004E7EE0FEA3E0FF904E7DE09FFF904E7CCE
-:1023B000E09EFE801E904E7CE0FEA3E0FFC3904EA8
-:1023C0007FE09FFF904E7EE09EFEAD03C3EB9FFF3C
-:1023D000E49EFE22904E9AEEF0A3EFF0A905904BFA
-:1023E0009EE0FEA3E0FFAD0119ED602F0FEFAC06FC
-:1023F00070010E14F5828C83E0FD904E9AE475F026
-:102400000112042485F082F583EDF0AD07AC06BC23
-:102410004BD4BD9AD17E4B7F3680CB904B9EEEF055
-:10242000A3EFF022900446E0FF229082807401F036
-:1024300022904E3AEBF0A3EAF0A3E9F0904E4074FC
-:10244000FFF5F012042445F0602A904E3DE0FBA316
-:10245000E475F001120424A9F0FA1203B6FF904EBD
-:102460003AE0FBA3E475F001120424A9F0FAEF129C
-:1024700003FC80C822904E50EEF0A3EFF0904E5433
-:10248000EBF0A3EAF0A3E9F0904E52ECF0A3EDF0EC
-:10249000A3E0F9A3E0FAA3E0904E3DC9F0A3EAF06F
-:1024A000A3E9F0A3ECF0A3EDF07B017A0B79869120
-:1024B00031900B8374A0F0904E50E0FFA3E0900B9E
-:1024C00084CFF0A3EFF0904E53E02403FD904E52E2
-:1024D000E03400FCEDFAECFFEAFEEF908098EEF0BD
-:1024E000A3EFF07A0B79837E0B7F837483FC740BEC
-:1024F000FFECFEEFA3EEF0A3EFF090809EE4F0A3DC
-:10250000F090809004F0908006E04404F0020FEC1C
-:10251000904E31EEF0A3EFF0A3ECF0A3EDF0A3EBBF
-:10252000F0A3EAF0A3E9F0904E33E07002A3E0706C
-:1025300002A1BD904E31E0FEA3E0FF440F2401FD57
-:10254000E43EFCC3ED9FFFEC9EFE904E38F0A3EFFF
-:10255000F0904E33E0FCA3E0FDD39FEC9E400A9048
-:102560004E38E0FEA3E0FF8004AE04AF05904E3885
-:10257000EEF0FCA3EFF0FDC3904E34E09DF0904EE2
-:1025800033E09CF0904E31E0FEA3E0FF904E35E04A
-:10259000FBA3E0FAA3E0F991757F0A120A80904E3E
-:1025A00038E0FEA3E0FF904E36EE8FF012040E905E
-:1025B0004E32E02FF0904E31E03EF0A12722904EB7
-:1025C00090EBF0A3EAF0A3E9F0ED1DAE0470011C5E
-:1025D0004E6017904E90E0FBA3E475F001120424C6
-:1025E000A9F0FA74FF1203FC80DF22EFF4603AEFE7
-:1025F0005407FEEF1313135403FF24A3F582E434AE
-:1026000000F583C083C082E0FD7401A80608800243
-:10261000C333D8FCF4FC5DD082D083F074A72FF5CF
-:1026200082E43400F583E05CF022E4FFEFFD7C00FF
-:102630002478FBEC34808B82F583E0FEED2470FD82
-:10264000EC34808D82F583E04EF4FEEF247CFDECCB
-:0E26500034808D82F583EEF00FEFB404CF22BC
+:1006C0000100904CC5E0B403037F01227F0022901B
+:1006D0004DE4E064026002E1C7904CE9E06002E1B1
+:1006E000C1904CEEE06002E1C1904CD5E0B4020450
+:1006F000F1DA802E904CD5E0B40114904CF7E07004
+:1007000021904CE27418F0904CF77401F080139033
+:100710004CF7E0B4010CE4F0904CE2F0D2017F1D04
+:10072000F1C8D1C2EF7002E1B5904DD9E0FF904C15
+:10073000B7E06F7002E1C7E030E00E904CE6743C29
+:10074000F0C2017F10F1C8800BD2017F10F1C8E424
+:10075000904CE6F0904CB7E030E10E904CE7743CE2
+:10076000F0C2017F0FF1C8800BD2017F0FF1C8E406
+:10077000904CE7F0904CB7E030E21A904CE8743CB3
+:10078000F0904CE5E07025904CE2E0701FC2017FD4
+:100790001DF1C88017904CE5E0700C904CE2E070C1
+:1007A00006D2017F1DF1C8E4904CE8F0904CB7E010
+:1007B000904DD9F022D2017F10F1C8D2017F0F8075
+:1007C00007D2017F10F1C822EFF4600D7B017A801F
+:1007D0007974A20192001214F4221213E1904BEFEB
+:1007E00074FFF0904D3DF0A3F0A3F0A3F022E4FFDE
+:1007F000904CEEE0600122904CC5E06403601C90D8
+:100800004CEFE0701D740AF0A3E07016904DE4E028
+:10081000B4020F7F0911237F018007E4904CEBF0B5
+:100820007F0122904E9CEFF024F7600914605D2454
+:1008300002600201CFE4904CF0F07B017A4C790029
+:100840007D04FC7FF27E3F51CE7F0A5172E4904DD1
+:10085000F1F0904C00E0F47021A3E0B4FF1CA3E0A1
+:10086000B4FF17A3E0B4FF12904C00740FF0A3F094
+:10087000A3F0A3F0904DF17401F07F2111D5904CBD
+:10088000C57402F0E4A3F0904CEDF022E4904CF03B
+:10089000F0121085EF6009904E9CE0904CEDF02234
+:1008A000904CC5E064016021E4904DF1F07F23118C
+:1008B000D5904CC57401F0E4A3F0904CEE7478F040
+:1008C000E4904CE9F0904CE5F0E4904CEDF022E43B
+:1008D000904CEDF022904E80EFF078817C4E7D01BF
+:1008E0007BFF7A0679BF7E007F03120390904E80D3
+:1008F000E0904E83F07B017A4E79817D03904E5DCE
+:10090000EBF0A3EAF0A3E9F0A3EDF0904B9CE0FF3D
+:10091000A3E0904E61CFF0A3EFF0904B9AE0FEA3DE
+:10092000E0FF904B9CE0FCA3E0FD7B64122345902C
+:100930004E60E0FEEFC39E40E1904E60E0FF14F099
+:10094000EF603F904E5DE0FBA3E475F001120424DC
+:10095000A9F0FA1203B6FF904E61E475F00112049B
+:100960002485F082F583EFF0904E61E0FEA3E0FF76
+:10097000BE4BC6BF36C3904E61744AF0A374A0F05C
+:1009800080B7904E61E0FFA3E0904B9CCFF0A3EFC7
+:10099000F022904EA1EFF024D0604C14604C147003
+:1009A00002413814600A24F76040240D600241714E
+:1009B0001214631220EF7B017A4C79007D047C00D5
+:1009C0007FF27E3F51CE1214277F0A5172904CC1A4
+:1009D000E0F97A007B007D017C007FF87E3F51CEFC
+:1009E0007F0A51720217BC02147A904CC57403F04E
+:1009F000E4A3F0F166E4904CEEF0904CEBF0904CF8
+:100A0000C074FEF0904CC3F0904D477403F0904DCD
+:100A1000DF740AF0904EA1E0B43116E4904DF1F08D
+:100A2000904CE5741EF0904CBF7401F0518A022185
+:100A3000D0904CE5E0703A22904DF1E06006E4F091
+:100A40007F0A1123E4904CC5F0A3F0904CE3F0A38F
+:100A5000F0904CEB04F0904CEDE06009F166904CA6
+:100A6000EDE0FF0123904CECE0B40105E4F0120747
+:100A7000DA22EFD394004011E4FDFC0DBD00010C1F
+:100A8000BC04F8BDA6F51F80E922904CBFE0603D94
+:100A90007FC85172C2017FFF1207C87B017A4C796F
+:100AA000007D047C007FF27E3F1225A67B017A4CFC
+:100AB00079C17D017C007FF87E3F1225A6D2017F9F
+:100AC000FF1207C87F0A5172E4904CBFF022904E8B
+:100AD00073ECF0A3EDF0A3EBF0A3EAF0A3E9F09040
+:100AE00080987404F0A3E4F0900CAF74A0F0A3EE2F
+:100AF000F0A3EFF0900CB274A1F07A0C79AF7E0CF9
+:100B00007FAF74AFFC740CFFECFEEF90809AEEF0B8
+:100B1000A3EFF0904E73E0FCA3E0FAECFFEAFEEFE7
+:100B200090809EEEF0A3EFF07A0B79837E0B7F83AB
+:100B30007483FC740BFFECFEEF90809CEEF0A3EF4F
+:100B4000F09080907402F090809CA3E020E70790E2
+:100B50008090E04401F0908006E04404F012259E6D
+:100B6000904E75E0A3E0FAA3E0AE02FF7B017A0BA2
+:100B70007983904E73E0A3E0904E68F0904E63EE60
+:100B8000F0A3EFF0A3EBF0A3EAF0A3E9F0904E6836
+:100B9000E0FF14F0EF6027904E65E0FBA3E475F0F2
+:100BA00001120424A9F0FA1203B6FF904E63E47513
+:100BB000F00112042485F082F583EFF080CF2290BB
+:100BC0004E69EBF0A3EAF0A3E9F0E4A3F0A3F09000
+:100BD0004DDBF0904E6DF0904E6DE0FFC3940550EC
+:100BE0002C904E69E0FBA3E0FAA3E02401F9E43A7B
+:100BF000FA7E00E92FF9EE3AFA1203B6B47F0690B6
+:100C00004DDB7401F0904E6DE004F080CA904E69A7
+:100C1000E0A3E0FAA3E04A7002C1AF904DDF740A8E
+:100C2000F0E4904CE3F0A3F0904CD5E0B40112E472
+:100C3000904D3DF0A37448F0A37412F0E4A3F0804B
+:100C400010E4904D3DF0A37448F0A3745DF0E4A36C
+:100C5000F07B017A4879007D097C00D1B07B017A74
+:100C60004D79E87D097C00D1B0904E69E0FBA3E0AE
+:100C7000FAA3E0F99000011203CFFFB42E0A90000E
+:100C8000021203CF64296034EFB4290A90000212E3
+:100C900003CF642E60269000011203CFB47F0A9028
+:100CA00000021203CF642760139000011203CF6487
+:100CB0002770239000021203CFB47F1A904CC5E036
+:100CC00064016009904CCEE04410F08010904CCE4E
+:100CD000E054EFF08007904CCEE054EFF0904CB62B
+:100CE0007401F0904CF4E0FF64017002C1AFEF6456
+:100CF000047002C1AFEF64027002C1AF904CC5E056
+:100D000064037045904E6DF0904E6DE0FFC3940506
+:100D10005037904E69E0FBA3E0FAA3E02401F9E428
+:100D20003AFA7E00E92FF9EE3AFA1203B6FF643977
+:100D30006009EF64536004EFB44706904D477403B5
+:100D4000F0904E6DE004F080BF904E69E0FBA3E0B0
+:100D5000FAA3E0F9121E2E904DE7E0B401117402DF
+:100D6000F0904DE8F07B017A4D79E87D03E1A490A5
+:100D70004DE7E0B404137402F0904DE87406F07B84
+:100D8000017A4D79E87D03E1A4904DE7E0640360CA
+:100D90000BE06402702F904DDDE07029E4904DE788
+:100DA000F0904DE6F0904DE2E0600AE4F0904DE8FE
+:100DB0007406F08006904DE87402F07B017A4D795C
+:100DC000E87D03E1A4904DDDE07016904E69E0FBF4
+:100DD000A3E0FAA3E02401F9E43AFA7D067C00D10D
+:100DE000B09048007401F0904E69E0FBA3E0FAA3D4
+:100DF000E0F91203B6904801F0904CC5E0B4030A44
+:100E0000904D47E0904802F08005E4904802F0E4FD
+:100E1000904DD8F0904DF1E0706F9000011203CF2B
+:100E2000B47F157E487F03E92402F9E43AFA904E34
+:100E3000687405F0717C801C7E487F03904E69E0E9
+:100E4000FBA3E0FAA3E02401F9E43AFA904E6874B7
+:100E500006F0717C904E6D7403F0904E6DE0FFC310
+:100E60009409504174002FF582E43448F583E0B4CE
+:100E70007F0F904E6DE02400F582E43448F583E462
+:100E8000F0904E6DE004F080D17E487F03904E6973
+:100E9000E0FBA3E0FAA3E02401F9E43AFA904E68FB
+:100EA0007406F0717C7B017A4879007D09F1A422F7
+:100EB000904E8DEBF0A3EAF0A3E9F0ED1DAE0470C7
+:100EC000011C4E6016904E8DE0FBA3E475F00112FC
+:100ED0000424A9F0FAE41203FC80E0227B017A4C9E
+:100EE00079BF7D437C00D1B07B017A4D79937D142D
+:100EF0007C00D1B07B017A4D79A87D147C00D1B003
+:100F00007B017A4D79BC7D147C00D1B07B017A489D
+:100F100079007D097C00D1B07B017A4D79E87D09AB
+:100F20007C00D1B0E4904DDFF0904DE5F0904DE4C1
+:100F3000F0904DD6F0904DD0F0904DDCF0904DE714
+:100F4000F0904DD5F0904DD8F0904DDBF0904DE302
+:100F5000F0904DD3F0904DE0F0904DE6F0904DD9EB
+:100F6000F0904D38F022E4904CF0F022904E96EF45
+:100F7000F0A3EDF07B017A4879007D097C00D1B0C7
+:100F80009048007401F0A3E0FF904E96E0FEEF4E13
+:100F9000904801F0904E97E0904803F07B017A482A
+:100FA00079007D09904E16EBF0A3EAF0A3E9F0A3D7
+:100FB000EDF0E4FF904E19E0FEEFC39E5023904EFB
+:100FC00016E0FBA3E0FAA3E0F98F82758300120319
+:100FD000CFFE741A2FF582E4344EF583EEF00F80C5
+:100FE000D31207EEEF6070904CEBE0706A904CC546
+:100FF000E064037062904E1AE0640170237404F0A0
+:10100000A3E07014904E1DE0700EA3E0700AA3E000
+:101010007006904DD6F08032904DD67401F0802A43
+:10102000904E1AE0B402197405F0A3E0700AA3E030
+:101030007006904DD6F08012904DD67401F0800A63
+:10104000904E1AE0B403037407F07B017A4E791ACC
+:10105000904E19E0FD115822900BE77406F0904E67
+:10106000A2EDF0E0FD900BE8F07E0B7FE9904E687A
+:10107000EDF0120B7C7B017A0B79E7904EA2E02415
+:1010800002FD0208FD904CC5E0FF64036004EFB46C
+:1010900002087F221208D57F01227F0022904CCEC9
+:1010A000E030E13E904CD0E0C394FA5003E004F00D
+:1010B000904CD0E064B47037904DDCE004F0E0D3A5
+:1010C00094025007E4904CD0F08024904DDCE0B4C2
+:1010D000031D904DD57401F0E4904CD0F01207DA66
+:1010E000800DE4904DDCF0904DD5F0904CD0F09018
+:1010F0004CCEE030E42F904CEA740AF0904CD1E0F2
+:10110000C394FA5003E004F0904CD1E0B4061B9075
+:101110004CC3E0FF6003B4FE1111857F0A120A720E
+:101120007F0A020823E4904CD1F0223173904CE402
+:10113000E004F07006904CE3E004F031611221EB22
+:10114000119D904CEEE06018E4904CE3F0A3F09019
+:101150004CEEE014F0E070087F0A120A721207DA0F
+:1011600022904CD3E0600B14F0E070067405F0128E
+:10117000223022904DE4E0640260024101904CEE86
+:10118000E060087FFF51027F1D51021206C2EF602E
+:1011900070904CE6E0601714F0E07009D2017F1007
+:1011A0001207C88010C2017F101207C88007D20141
+:1011B0007F101207C8904CE7E0601714F0E0700948
+:1011C000D2017F0F1207C88010C2017F0F1207C81B
+:1011D0008007D2017F0F1207C8904CE8E06022140C
+:1011E000F0904CE5E0701A904CE2E07014904CE8FE
+:1011F000E07007D2017F1D0207C8C2017F1D1207E0
+:10120000C822904EA5EFF07B017A807974511E922E
+:1012100009904EA5E0FFA209B392010207C8AD07ED
+:10122000E4904EA3F0FEEF5407F0EF1313135403B2
+:10123000FEF5827583001203CFFD3395E0FC904EDE
+:10124000A3E0FF74017E00A807088005C333CE33F6
+:10125000CED8F9FFEE5CFEEF5D4E24FF227B017AD3
+:1012600081791C80B9904EA4EFF0515D9208904EA8
+:10127000A4E0FFA208B39207EFF470026103EF54F9
+:1012800007FEEF1313135403FF30074324A3F58223
+:10129000E43400F583C083C082E0FD7401A8060831
+:1012A0008002C333D8FCF45DD082D083F074A72FC2
+:1012B000F582E43400F583C083C082E0FF7401A8A6
+:1012C00006088002C333D8FC4FD082D083F022744A
+:1012D000A32FF582E43400F583C083C082E0FD745F
+:1012E00001A806088002C333D8FCFC4DD082D0830D
+:1012F000F074A72FF582E43400F583E0FFECF4FEF0
+:10130000EF5EF022E4FF904EA0F0FEFDEF90060CA1
+:10131000936049EF93FD131313541FFEED5407FD23
+:101320007401A805088002C333D8FCFDEE2478FBC5
+:10133000E434808B82F583E0FCEDF4FBEC5BF0EEB3
+:101340002470F582E43480F583E04DF0EE2474F5EA
+:1013500082E43480F583E05BF00F80B0F14A908145
+:101360001CE0904EA0F0904DD5E06020E4FF516568
+:101370007F0151657F0251657F0351657F0451658F
+:101380007F0551657F0651657F074165904EA0E05E
+:10139000FF9000A3F0EFF49000A7F02291671223D2
+:1013A000EFB1AF120A8A1206CF900B7EE014600CE8
+:1013B00024FE70EA710471E1911980FE904CEAE01C
+:1013C0007012904CECE0700C904CE5E07006904C84
+:1013D000F8E06004F12680C67104911980C080BED7
+:1013E00022D2067F1071FDD2067F0F71FDD2067FDB
+:1013F000FF71FDD2067FFF71FDD2067F1DAC07ECA9
+:10140000F46015AF04D20491D2AF04A20692011287
+:1014100007C8AF04C20291A322E4900B7FF0900BA7
+:101420007EF07F01020A72904CC3E0B40107C20152
+:101430007FFF0207C8904CC3E0B40207C2017FFFE0
+:101440000207C8904CC3E0B4030CC2067FFF71FDD5
+:10145000C2067F1D80A7C2017FFF1207C8C2067F98
+:101460001D809A917A61E17B017A4D79F278047C52
+:101470004E7D017E007F12020390908080E4F0A3F5
+:10148000F0A3F0B155E4904E9FF0F0904E9FE090A5
+:10149000060C93FF600CC20591B4904E9FE004F0DF
+:1014A00080E922EFF4600C7B017A807978A20292C5
+:1014B0000091F422AC07ECF46017AF04A20592038C
+:1014C00091E3AF04A205B3920291A3AF04C20491C9
+:1014D000D222EFF4600C7B017A807970A204920032
+:1014E00091F422EFF4600C7B017A80797CA2039264
+:1014F0000091F422904E93EBF0A3EAF0A3E9F0E41C
+:10150000FEFDEF5407FEEF1313135403FD300022CA
+:10151000904E93E0FBA3E0FAA3E02DF9E43AFA122F
+:1015200003B6FF7401A806088002C333D8FC4F023B
+:1015300003FC904E93E0FBA3E0FAA3E02DF9E43A1C
+:10154000FA1203B6FF7401A806088002C333D8FC60
+:10155000F45F0203FCE4904E9EF0F0904E9EE0FF9C
+:10156000C39408500CC20591B4904E9EE004F080E4
+:10157000EA22904CC3E0B40107D2017FFF0207C802
+:10158000904CC3E0B40207D2017FFF0207C8904C21
+:10159000C3E0B4030DD2017FFF1207C8D2067F1D3E
+:1015A00061FDD2017FFF1207C8D2067F1D61FD9049
+:1015B0004CF4E0FF600864036004EFB40502807639
+:1015C000904CF4E0B4010FA3E0FFE4FD120F6C9027
+:1015D0004CF47402F022904CF4E0B4020C7403F06A
+:1015E000A3E0FFA3E0FD020F6C904CF4E0B40428EC
+:1015F000E4904CF6F0904CF5E0FFE4FD120F6CE443
+:10160000904CF5F0904CF8E07007904CF47406F0B4
+:1016100022904CF47405F022904CF4E0B40616E4E9
+:10162000904CF6F0904CF5F0A3E0FDE4FF120F6C47
+:10163000E4904CF4F022904E84E4F0A3F0A3F0F197
+:101640003250261218EB904E84EBF0A3EAF0A3E997
+:10165000F04A7007904CB604F0E17E904E84E0FBB7
+:10166000A3E0FAA3E0F9120BBF22904CEAE060027B
+:1016700014F0904CEFE0600214F0904CF8E0600B36
+:1016800014F0E07006904CF47406F0904CE5E060C5
+:101690000D14F0E07004B172803F9127803B904CB4
+:1016A000EEE07035904CE2E0602F14F0E0FFC39460
+:1016B000085016EF30E109C2017F1D1207C88010E3
+:1016C000D2017F1D1207C88007D2017F1D1207C8F3
+:1016D000904CE2E070037418F0904DD5E0702D90BE
+:1016E0004DD6E064017025F0904DE8E0600D7B017F
+:1016F0007A4D79E87D03120FA48011904800E060D4
+:101700000B7B017A4879007D09120FA4904DDFE030
+:101710006011E014F0E0700BE07008904D47E0605D
+:1017200002E4F022619C900B7F7401F0E4900B7E48
+:10173000F022904B9CE0FEA3E0FF904B9AE0B506B0
+:1017400007A3E0B50702D322C322E4FFEFFD7C002C
+:101750002478FBEC34808B82F583E0FEED2470FD71
+:10176000EC34808D82F583E04EF4FEEF247CFDECBA
+:1017700034808D82F583EEF00FEFB404CF22904DCC
+:1017800047E06037904DD6E07031904CC5E0B4032F
+:101790002A7B017A4879007D097C00120EB0E49022
+:1017A0004DE7F090480004F0904D47E0904802F07B
+:1017B0007B017A4879007D09120FA422904DE474D0
+:1017C00002F07F08020823AD07AC06904DE7E06405
+:1017D00002600E7401F0904DE804F0EFA3F0EEA368
+:1017E000F022904DE7E0640260127404F0904DE244
+:1017F0007401F0904DE87406F0A3EFF022904CF5E0
+:10180000EDF0A3EBF0EF30E012904CF4E0B4030401
+:101810007402F022904CF47401F022904CF47404A1
+:10182000F022E4904E9DF0EF30E005E4904CF8F0AB
+:10183000904E9DEDF0904DDBE06401600201E5ED1E
+:1018400024D4603B24F2B40C00400201E590185B04
+:1018500075F003A4C58325F0C583730218870218A9
+:101860008F02189702189F0218A70218AF0218B724
+:101870000218BF0218C70218CF0218D70218DF904B
+:101880004E9D7465F0805E904E9D74F1F080569090
+:101890004E9D74F6F0804E904E9D74F7F080469009
+:1018A0004E9D74F8F0803E904E9D74F4F08036901A
+:1018B0004E9D74F5F0802E904E9D74F2F08026902F
+:1018C0004E9D74F3F0801E904E9D74D6F08016905D
+:1018D0004E9D74FAF0800E904E9D74F9F080069043
+:1018E0004E9D74D0F0904E9DE0FF22E4904E24F087
+:1018F000A3F0A3F0A3F0A3F0A3F0A3F0A3F0A3F050
+:10190000A3F0A3F0A3F0A3F0916F7A4D79A8904EC5
+:101910004C7401F0A3744DF0A374A8F0A37414F0F8
+:101920007B017A4D79BC7125EF60167B017A4D7988
+:10193000BC7D1451F5EF7009904CCEE04402F0806C
+:101940000C904CCEE054FDF0E4904CD0F0E4904E7E
+:1019500024F0904E24E0FF90060C93602F74BC2F6F
+:10196000F582E4344DF583E0904E26F0E0FD6014FE
+:10197000904E2AE004F0A3E0FEED4EF0AF0551E7F3
+:10198000A3E02FF0904E24E004F080C6904E2CE0AF
+:10199000904DDDF0904E2AE0904E30F0904E2BE0CE
+:1019A000FF51E7904E2FEFF0904DDDE0D3940240D1
+:1019B00020904E2FE0FFA3E0FED39F4004AF0680AF
+:1019C00000904DDDE0D39F4008904E2E7401F080D2
+:1019D00005E4904E2EF0E4904E24F0904E24E0FF6B
+:1019E00090060C93700241BB74932FF582E4344D42
+:1019F000F583E0FE74BC2FF582E4344DF583E06E90
+:101A0000904E26F0904E24E0FF24BCF582E4344D45
+:101A1000F583E0904E29F0904E26E0700441B341EA
+:101A2000B3904E2EE060077B007A0079002274BCF0
+:101A30002FF582E4344DF583E0FE74932FF582E4B4
+:101A4000344DF583EEF0E4904E25F0904E25E0FF06
+:101A5000C394085058A3E030E03B904E24E0FE339E
+:101A6000333354F8FEEF4E904E28F0A3E0FF904E33
+:101A700028E090062193FD1122904E2DEFF0904E1C
+:101A800029E030E009904E2DE0FF716F8007904E05
+:101A90002DE0FF71C5904E26E0FFC313F0904E2954
+:101AA000E0FFC313F0904E25E004F0809E904E2797
+:101AB0007401F0904E24E004F021DB904DE7E0B497
+:101AC000030A904DD8E0B401037402F0904E27E071
+:101AD0007007904DD8E0B402077B017A4E7942221C
+:101AE0007B007A00790022E4FEEF6006145FFF0EAF
+:101AF00080F7AF0622904E87EBF0A3EAF0A3E9F05F
+:101B0000E4FFEFC39D501B904E87E0FBA3E0FAA3D8
+:101B1000E0F98F827583001203CF60037F00220FEC
+:101B200080E07F0122904E49EBF0A3EAF0A3E9F0B8
+:101B3000E4FF904E4FE0FEEFC39E5030904E4CE0DD
+:101B4000FBA3E0FAA3E0F98F827583001203CFFEB6
+:101B5000904E49E0FBA3E0FAA3E0F98F8275830081
+:101B60001203CF6E60037F00220F80C67F0122E444
+:101B7000FEEFC394E04020EFD394E7501A904E421A
+:101B8000E0FEEF5407FF7401A807088002C333D8B2
+:101B9000FC4E904E42F022E4FE74432EF582E43473
+:101BA0004EF583E0FD6F601CED7014904DE6E06F24
+:101BB000601274432EF582E4344EF583EFF0220E6A
+:101BC000EEB406D522E4FEFDEF54F064F06007EFBA
+:101BD00054D0FCBCD00C904DE7E0B4020B7403F081
+:101BE0008006904DD87401F0EFC394E04021EFD30C
+:101BF00094E7501B904E42E0FEEF5407FF7401A89B
+:101C000007088002C333D8FCF45E904E42F022E411
+:101C1000FEED702174432EF582E4344EF583E06FBF
+:101C20007047EEB4050B2443F582E4344EF583E4AB
+:101C3000F07D01803474432EF582E4344EF583E068
+:101C4000FC74422EF582E4344EF583ECF074432E9E
+:101C5000F582E4344EF583E06014EEB4050B2443C2
+:101C6000F582E4344EF583E4F00EEEB406A322E4EC
+:101C7000FF904E57F0A3F0A3F0A3F0A3F0A3F0EF72
+:101C800090060C937002A12EEF93FE131313541FB2
+:101C9000F9904E58F0EE5407FE7401A80608800231
+:101CA000C333D8FC904E59F0E92478FDE43480FC2D
+:101CB0008D82F583C083C082E0FE904E59E0F4FB34
+:101CC000EE5BD082D083F0E92470F582E43480F5B5
+:101CD00083C083C082E0FE904E59E0FAEE4AD08283
+:101CE000D083F0E92474F582E43480F583E05BF07E
+:101CF00090811CE0F4FE74BC2FF582E4344DF58332
+:101D0000EEF08D828C83C083C082E0FE904E59E05D
+:101D1000FDEE4DD082D083F0E92470FBE434808B5B
+:101D200082F583E0FEEDF4FDEE5DF00F817F7F052F
+:101D3000120A72E4FFEF90060C937002A1E4EF9395
+:101D4000FE131313541FF9904E58F0EE5407FE740F
+:101D500001A806088002C333D8FC904E59F0E9244C
+:101D600078FDE43480FC8D82F583C083C082E0FE80
+:101D7000904E59E0F4FBEE5BD082D083F0E9247002
+:101D8000F582E43480F583C083C082E0FE904E5932
+:101D9000E0FAEE4AD082D083F0E92474F582E4348C
+:101DA00080F583E05BF090811CE0F4FE74A82FF5D1
+:101DB00082E4344DF583EEF08D828C83C083C08243
+:101DC000E0FE904E59E0FDEE4DD082D083F0E92444
+:101DD00070FBE434808B82F583E0FEEDF4FDEE5D74
+:101DE000F00FA135E4FFEF90060C93604074BC2F18
+:101DF000F582E4344DF583E0FE74A82FF582E434D7
+:101E00004DF583E06E602374BC2FF582E4344DF50C
+:101E100083C083C082E0FE74A82FF582E4344DF5C0
+:101E200083E0FDEE5DD082D083F00F80B922904E2A
+:101E300078EBF0A3EAF0A3E9F0E4A3F0F0904E7B96
+:101E4000E0FFC3940640030220EE904E78E0FBA32F
+:101E5000E0FAA3E02401F9E43AFA7E00E92FF9EE72
+:101E60003AFA1203B6FF54F064F0600AEF54D064FB
+:101E7000D060030220E51203B6FBB4F10A7F837E33
+:101E8000011217C70220BAEBB4F20A7FCD7E00120E
+:101E900017C70220BA904E78E0FBA3E0FAA3E02433
+:101EA00001F9E43AFAA3E07E0029F9EE3AFA1203C6
+:101EB000B6FBB4F3087FB71217C70220BAEBB4F42D
+:101EC0000A7FB67E001217C70220BA904E78E0FB58
+:101ED000A3E0FAA3E02401F9E43AFAA3E07E0029A2
+:101EE000F9EE3AFA1203B6FBB4F5087FB51217C73C
+:101EF0000220BAEBB4F60A7FEA7E001217C702206E
+:101F0000BA904E78E0FBA3E0FAA3E02401F9E43AAA
+:101F1000FAA3E07E0029F9EE3AFA1203B6FBB4F711
+:101F2000087FE91217C70220BAEBB4F80A7FE27EF5
+:101F3000001217C70220BA904E78E0FBA3E0FAA384
+:101F4000E02401F9E43AFAA3E07E0029F9EE3AFA36
+:101F50001203B6FBB4F9097F940E1217C70220BA18
+:101F6000EBB4FA0A7F8A7E011217C70220BA904E9C
+:101F700078E0FBA3E0FAA3E02401F9E43AFAA3E055
+:101F80007E0029F9EE3AFA1203B6FBB4FB097F9200
+:101F90000E1217C70220BAEBB4D00A7F2A7E0212B3
+:101FA00017C70220BA904E78E0FBA3E0FAA3E02422
+:101FB00001F9E43AFAA3E07E0029F9EE3AFA1203B5
+:101FC000B6FBB4D10A7F257E021217C70220BAEBF6
+:101FD000B4D30A7F267E021217C70220BA904E7829
+:101FE000E0FBA3E0FAA3E02401F9E43AFAA3E07EDF
+:101FF0000029F9EE3AFA1203B6FBB4D2097F247E27
+:10200000021217C701BAEBB4D4097F277E02121758
+:10201000C701BA904E78E0FBA3E0FAA3E02401F9EF
+:10202000E43AFAA3E07E0029F9EE3AFA1203B6FB8D
+:10203000B4D5097F217E021217C7807EEBB4D60982
+:102040007F237E021217C78071904E78E0FBA3E0D9
+:10205000FAA3E02401F9E43AFAA3E07E0029F9EEBC
+:102060003AFA1203B6FBB4D7077F701217C7804A3B
+:10207000EBB4D8097F6F7E001217C7803D904E7871
+:10208000E0FBA3E0FAA3E02401F9E43AFAA3E07E3E
+:102090000029F9EE3AFA1203B6FEB4DD077F011209
+:1020A00017E28016EEB4DE077F021217E2800B12F1
+:1020B00003B6B4DF057F041217E2904DE7E0B402E7
+:1020C00024904E78E0FBA3E0FAA3E02401F9E43A7F
+:1020D000FAA3E07E0029F9EE3AFA1203B6904DE633
+:1020E000F0E41203FC904E7BE004F0021E3D22124D
+:1020F0000EDC310C904CEB7401F0904CE5741EF04A
+:10210000E4904CF0F0904D0174FFF022904CD374A9
+:1021100005F0E4A3F0904C907433F0E4FFEF25E079
+:1021200024D6F582E4344CF5837462F0A3F00FEF0B
+:10213000B404EA904C91E0FEA3E0FFC3904C94E01D
+:102140009FFD904C93E09EFCE41202067BC37AF55F
+:1021500079A8783E1200FBC004C005C006C00790F5
+:102160004C91E0FCA3E0FDE4120206D003D002D0C3
+:1021700001D00012000A12023F904CDEEEF0A3EFF5
+:10218000F0904C91E0FEA3E0FFC3904C94E09FFDE3
+:10219000904C93E09EFCE41202067B5C7A8F7942BD
+:1021A000783E1200FBC004C005C006C007904C91E9
+:1021B000E0FCA3E0FDE4120206D003D002D001D07F
+:1021C0000012000A12023F904CE0EEF0A3EFF02262
+:1021D0009080107401F080FE2280F5904E98EDF012
+:1021E0009000011203CF904E99F022904CC5E0B4BC
+:1021F0000312C3904CE4E09410904CE3E0940E4042
+:102200002E0207DA904CC5E0B40112C3904CE4E012
+:102210009478904CE3E0940040150207DAC3904CA8
+:10222000E4E09414904CE3E0940040031207DA22B7
+:10223000904E6F12053300000000904C95E0700244
+:10224000A3E070026144904C95E0FEA3E0FF904C47
+:10225000D4E0FD04F0ED25E024D6F582E4344CF51D
+:1022600083EEF0A3EFF0904CD4E0C394044002E47A
+:10227000F0E4904E6EF0904E6FE0F8A3E0F9A3E02A
+:10228000FAA3E0FB904E6EE025E024D6F582E4341C
+:102290004CF583E0FEA3E0FFE4FCFDEB2FFFEA3EFC
+:1022A000FEED39FDEC38FC904E6F120527904E6E16
+:1022B000E004F0E0B404BF904E6FE0FCA3E0FDA3A7
+:1022C000E0FEA3E0FFE47B04FAF9F8120476904EF6
+:1022D0006F120527904CE0E0FEA3E0FFE4FCFD90C8
+:1022E0004E6FE0F8A3E0F9A3E0FAA3E0FBC3120508
+:1022F000165007904CD57402F022904CDEE0FEA3FD
+:10230000E0FFE4FCFD904E6FE0F8A3E0F9A3E0FAF3
+:10231000A3E0FBC31205165017904CD57401F0E4EE
+:10232000904D3DF0A37448F0A37412F0E4A3F022A2
+:10233000E4904CD5F0904D3DF0A37448F0A3745D4B
+:10234000F0E4A3F022904E7CEEF0A3EFF0904E7EEE
+:10235000ECF0A3EDF0904E7EE0FEA3E0FFD3904EB4
+:102360007DE09F904E7CE09E4016904E7EE0FEA366
+:10237000E0FF904E7DE09FFF904E7CE09EFE801E31
+:10238000904E7CE0FEA3E0FFC3904E7FE09FFF9065
+:102390004E7EE09EFEAD03C3EB9FFFE49EFE2290C7
+:1023A0004E9AEEF0A3EFF0A905904B9EE0FEA3E05D
+:1023B000FFAD0119ED602F0FEFAC0670010E14F5A3
+:1023C000828C83E0FD904E9AE475F001120424851E
+:1023D000F082F583EDF0AD07AC06BC4BD4BD9AD1CD
+:1023E0007E4B7F3680CB904B9EEEF0A3EFF0227AAF
+:1023F0000C794B904E8A7401F0A3740CF0A3744BCB
+:10240000F0904BA0E0FEA3E0FF904B9EE06E7003C7
+:10241000A3E06F60467E0C7F4B7D03719F904E8AD8
+:10242000E0FBA3E0FAA3E0F91203B6B4022B904E4E
+:102430008BE475F00212040E904E8AE0FBA3E0FAE2
+:10244000A3E0F91203B6FF904E04E0A3E0FAA3E084
+:10245000F5828A83120568800280FE904BA5E0FE1B
+:10246000A3E0FF904C5EE06E7003A3E06F602290EB
+:102470004E0AE0FBA3E0FAA3E0F94A6037120564D4
+:10248000904BA5E0FFA3E0904C5ECFF0A3EFF0806F
+:10249000CA904C8DE0FFA3E06F6019904E0DE0FBF9
+:1024A000A3E0FAA3E0F94A600B120564904C8DE0BA
+:1024B000A3F080DD22900446E0FF22908280740128
+:1024C000F022904E3AEBF0A3EAF0A3E9F0904E40F0
+:1024D00074FFF5F012042445F0602A904E3DE0FBB5
+:1024E000A3E475F001120424A9F0FA1203B6FF90D8
+:1024F0004E3AE0FBA3E475F001120424A9F0FAEFD0
+:102500001203FC80C822904E50EEF0A3EFF0904EE4
+:1025100054EBF0A3EAF0A3E9F0904E52ECF0A3EDF7
+:10252000F0A3E0F9A3E0FAA3E0904E3DC9F0A3EADE
+:10253000F0A3E9F0A3ECF0A3EDF07B017A0B798630
+:1025400091C2900B8374A0F0904E50E0FFA3E090F6
+:102550000B84CFF0A3EFF0904E53E02403FD904E98
+:1025600052E03400FCEDFAECFFEAFEEF908098EECA
+:10257000F0A3EFF07A0B79837E0B7F837483FC7476
+:102580000BFFECFEEFA3EEF0A3EFF090809EE4F0E3
+:10259000A3F090809004F0908006E04404F09081D5
+:1025A0002CE030E5F922904E31EEF0A3EFF0A3ECF1
+:1025B000F0A3EDF0A3EBF0A3EAF0A3E9F0904E3323
+:1025C000E07002A3E07002C153904E31E0FEA3E040
+:1025D000FF440F2401FDE43EFCC3ED9FFFEC9EFE93
+:1025E000904E38F0A3EFF0904E33E0FCA3E0FDD323
+:1025F0009FEC9E400A904E38E0FEA3E0FF8004AEC0
+:1026000004AF05904E38EEF0FCA3EFF0FDC3904E02
+:1026100034E09DF0904E33E09CF0904E31E0FEA30C
+:10262000E0FF904E35E0FBA3E0FAA3E0F9B1067FAE
+:102630000A120A72904E38E0FEA3E0FF904E36EE8A
+:102640008FF012040E904E32E02FF0904E31E03EAB
+:10265000F0A1BD22904E90EBF0A3EAF0A3E9F0EDDB
+:102660001DAE0470011C4E6017904E90E0FBA3E479
+:1026700075F001120424A9F0FA74FF1203FC80DF44
+:1026800022EFF4603AEF5407FEEF1313135403FFE5
+:1026900024A3F582E43400F583C083C082E0FD7496
+:1026A00001A806088002C333D8FCF4FC5DD082D0B8
+:1026B00083F074A72FF582E43400F583E05CF02208
 :00000001FF
Index: c51/output/fwram.rom
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/fwram.rom	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/fwram.rom	(working copy)
@@ -1544,7 +1544,7 @@
 00
 ff
 21
-7e
+db
 00
 1a
 08
@@ -2083,7 +2083,7 @@
 22
 90
 4e
-9a
+9c
 ef
 f0
 24
@@ -2199,7 +2199,7 @@
 09
 90
 4e
-9a
+9c
 e0
 90
 4c
@@ -2261,11 +2261,11 @@
 22
 90
 4e
-7e
+80
 ef
 f0
 78
-7f
+81
 7c
 4e
 7d
@@ -2285,23 +2285,23 @@
 90
 90
 4e
-7e
+80
 e0
 90
 4e
-81
+83
 f0
 7b
 01
 7a
 4e
 79
-7f
+81
 7d
 03
 90
 4e
-57
+5d
 eb
 f0
 a3
@@ -2322,7 +2322,7 @@
 e0
 90
 4e
-5b
+61
 cf
 f0
 a3
@@ -2347,11 +2347,11 @@
 7b
 64
 12
-22
-e8
+23
+45
 90
 4e
-5a
+60
 e0
 fe
 ef
@@ -2361,7 +2361,7 @@
 e1
 90
 4e
-5a
+60
 e0
 ff
 14
@@ -2371,7 +2371,7 @@
 3f
 90
 4e
-57
+5d
 e0
 fb
 a3
@@ -2391,7 +2391,7 @@
 ff
 90
 4e
-5b
+61
 e4
 75
 f0
@@ -2408,7 +2408,7 @@
 f0
 90
 4e
-5b
+61
 e0
 fe
 a3
@@ -2422,7 +2422,7 @@
 c3
 90
 4e
-5b
+61
 74
 4a
 f0
@@ -2434,7 +2434,7 @@
 b7
 90
 4e
-5b
+61
 e0
 ff
 a3
@@ -2450,7 +2450,7 @@
 22
 90
 4e
-9f
+a1
 ef
 f0
 24
@@ -2483,7 +2483,7 @@
 63
 12
 20
-92
+ef
 7b
 01
 7a
@@ -2580,7 +2580,7 @@
 f0
 90
 4e
-9f
+a1
 e0
 b4
 31
@@ -2606,7 +2606,7 @@
 8a
 02
 21
-73
+d0
 90
 4c
 e5
@@ -2729,7 +2729,7 @@
 3f
 12
 25
-49
+a6
 7b
 01
 7a
@@ -2746,7 +2746,7 @@
 3f
 12
 25
-49
+a6
 d2
 01
 7f
@@ -2766,7 +2766,7 @@
 22
 90
 4e
-6d
+73
 ec
 f0
 a3
@@ -2835,7 +2835,7 @@
 f0
 90
 4e
-6d
+73
 e0
 fc
 a3
@@ -2909,10 +2909,10 @@
 f0
 12
 25
-41
+9e
 90
 4e
-6f
+75
 e0
 a3
 e0
@@ -2930,17 +2930,17 @@
 83
 90
 4e
-6d
+73
 e0
 a3
 e0
 90
 4e
-62
+68
 f0
 90
 4e
-5d
+63
 ee
 f0
 a3
@@ -2957,7 +2957,7 @@
 f0
 90
 4e
-62
+68
 e0
 ff
 14
@@ -2967,7 +2967,7 @@
 27
 90
 4e
-5f
+65
 e0
 fb
 a3
@@ -2987,7 +2987,7 @@
 ff
 90
 4e
-5d
+63
 e4
 75
 f0
@@ -3007,7 +3007,7 @@
 22
 90
 4e
-63
+69
 eb
 f0
 a3
@@ -3027,11 +3027,11 @@
 f0
 90
 4e
-67
+6d
 f0
 90
 4e
-67
+6d
 e0
 ff
 c3
@@ -3041,7 +3041,7 @@
 2c
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3077,7 +3077,7 @@
 f0
 90
 4e
-67
+6d
 e0
 04
 f0
@@ -3085,7 +3085,7 @@
 ca
 90
 4e
-63
+69
 e0
 a3
 e0
@@ -3177,7 +3177,7 @@
 b0
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3332,11 +3332,11 @@
 45
 90
 4e
-67
+6d
 f0
 90
 4e
-67
+6d
 e0
 ff
 c3
@@ -3346,7 +3346,7 @@
 37
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3393,7 +3393,7 @@
 f0
 90
 4e
-67
+6d
 e0
 04
 f0
@@ -3401,7 +3401,7 @@
 bf
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3411,8 +3411,8 @@
 e0
 f9
 12
-1d
-cf
+1e
+2e
 90
 4d
 e7
@@ -3531,7 +3531,7 @@
 16
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3559,7 +3559,7 @@
 f0
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3630,7 +3630,7 @@
 fa
 90
 4e
-62
+68
 74
 05
 f0
@@ -3644,7 +3644,7 @@
 03
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3660,7 +3660,7 @@
 fa
 90
 4e
-62
+68
 74
 06
 f0
@@ -3668,13 +3668,13 @@
 7c
 90
 4e
-67
+6d
 74
 03
 f0
 90
 4e
-67
+6d
 e0
 ff
 c3
@@ -3698,7 +3698,7 @@
 0f
 90
 4e
-67
+6d
 e0
 24
 00
@@ -3713,7 +3713,7 @@
 f0
 90
 4e
-67
+6d
 e0
 04
 f0
@@ -3725,7 +3725,7 @@
 03
 90
 4e
-63
+69
 e0
 fb
 a3
@@ -3741,7 +3741,7 @@
 fa
 90
 4e
-62
+68
 74
 06
 f0
@@ -3760,7 +3760,7 @@
 22
 90
 4e
-8b
+8d
 eb
 f0
 a3
@@ -3781,7 +3781,7 @@
 16
 90
 4e
-8b
+8d
 e0
 fb
 a3
@@ -3948,7 +3948,7 @@
 22
 90
 4e
-94
+96
 ef
 f0
 a3
@@ -3977,7 +3977,7 @@
 ff
 90
 4e
-94
+96
 e0
 fe
 ef
@@ -3988,7 +3988,7 @@
 f0
 90
 4e
-95
+97
 e0
 90
 48
@@ -4190,7 +4190,7 @@
 f0
 90
 4e
-a0
+a2
 ed
 f0
 e0
@@ -4205,7 +4205,7 @@
 e9
 90
 4e
-62
+68
 ed
 f0
 12
@@ -4219,7 +4219,7 @@
 e7
 90
 4e
-a0
+a2
 e0
 24
 02
@@ -4413,7 +4413,7 @@
 61
 12
 21
-8e
+eb
 11
 9d
 90
@@ -4462,8 +4462,8 @@
 05
 f0
 12
-21
-d3
+22
+30
 22
 90
 4d
@@ -4610,7 +4610,7 @@
 22
 90
 4e
-a3
+a5
 ef
 f0
 7b
@@ -4625,7 +4625,7 @@
 09
 90
 4e
-a3
+a5
 e0
 ff
 a2
@@ -4641,7 +4641,7 @@
 e4
 90
 4e
-a1
+a3
 f0
 fe
 ef
@@ -4670,7 +4670,7 @@
 fc
 90
 4e
-a1
+a3
 e0
 ff
 74
@@ -4709,7 +4709,7 @@
 b9
 90
 4e
-a2
+a4
 ef
 f0
 51
@@ -4718,7 +4718,7 @@
 08
 90
 4e
-a2
+a4
 e0
 ff
 a2
@@ -4870,7 +4870,7 @@
 ff
 90
 4e
-9e
+a0
 f0
 fe
 fd
@@ -4962,7 +4962,7 @@
 e0
 90
 4e
-9e
+a0
 f0
 90
 4d
@@ -5004,7 +5004,7 @@
 65
 90
 4e
-9e
+a0
 e0
 ff
 90
@@ -5022,7 +5022,7 @@
 67
 12
 23
-92
+ef
 b1
 af
 12
@@ -5254,12 +5254,12 @@
 e4
 90
 4e
-9d
+9f
 f0
 f0
 90
 4e
-9d
+9f
 e0
 90
 06
@@ -5274,7 +5274,7 @@
 b4
 90
 4e
-9d
+9f
 e0
 04
 f0
@@ -5364,7 +5364,7 @@
 22
 90
 4e
-91
+93
 eb
 f0
 a3
@@ -5392,7 +5392,7 @@
 22
 90
 4e
-91
+93
 e0
 fb
 a3
@@ -5426,7 +5426,7 @@
 fc
 90
 4e
-91
+93
 e0
 fb
 a3
@@ -5462,12 +5462,12 @@
 e4
 90
 4e
-9c
+9e
 f0
 f0
 90
 4e
-9c
+9e
 e0
 ff
 c3
@@ -5481,7 +5481,7 @@
 b4
 90
 4e
-9c
+9e
 e0
 04
 f0
@@ -5686,7 +5686,7 @@
 22
 90
 4e
-82
+84
 e4
 f0
 a3
@@ -5702,7 +5702,7 @@
 eb
 90
 4e
-82
+84
 eb
 f0
 a3
@@ -5723,7 +5723,7 @@
 7e
 90
 4e
-82
+84
 e0
 fb
 a3
@@ -6179,7 +6179,7 @@
 e4
 90
 4e
-9b
+9d
 f0
 ef
 30
@@ -6192,7 +6192,7 @@
 f0
 90
 4e
-9b
+9d
 ed
 f0
 90
@@ -6271,7 +6271,7 @@
 df
 90
 4e
-9b
+9d
 74
 65
 f0
@@ -6279,7 +6279,7 @@
 5e
 90
 4e
-9b
+9d
 74
 f1
 f0
@@ -6287,7 +6287,7 @@
 56
 90
 4e
-9b
+9d
 74
 f6
 f0
@@ -6295,7 +6295,7 @@
 4e
 90
 4e
-9b
+9d
 74
 f7
 f0
@@ -6303,7 +6303,7 @@
 46
 90
 4e
-9b
+9d
 74
 f8
 f0
@@ -6311,7 +6311,7 @@
 3e
 90
 4e
-9b
+9d
 74
 f4
 f0
@@ -6319,7 +6319,7 @@
 36
 90
 4e
-9b
+9d
 74
 f5
 f0
@@ -6327,7 +6327,7 @@
 2e
 90
 4e
-9b
+9d
 74
 f2
 f0
@@ -6335,7 +6335,7 @@
 26
 90
 4e
-9b
+9d
 74
 f3
 f0
@@ -6343,7 +6343,7 @@
 1e
 90
 4e
-9b
+9d
 74
 d6
 f0
@@ -6351,7 +6351,7 @@
 16
 90
 4e
-9b
+9d
 74
 fa
 f0
@@ -6359,7 +6359,7 @@
 0e
 90
 4e
-9b
+9d
 74
 f9
 f0
@@ -6367,13 +6367,13 @@
 06
 90
 4e
-9b
+9d
 74
 d0
 f0
 90
 4e
-9b
+9d
 e0
 ff
 22
@@ -6901,7 +6901,7 @@
 22
 90
 4e
-85
+87
 eb
 f0
 a3
@@ -6919,7 +6919,7 @@
 1b
 90
 4e
-85
+87
 e0
 fb
 a3
@@ -7281,10 +7281,12 @@
 ff
 90
 4e
-76
+57
+f0
+a3
+f0
+a3
 f0
-fe
-fd
 a3
 f0
 a3
@@ -7296,25 +7298,31 @@
 06
 0c
 93
-60
-7c
+70
+02
+a1
+2e
 ef
 93
-fd
+fe
 13
 13
 13
 54
 1f
-fe
-ed
+f9
+90
+4e
+58
+f0
+ee
 54
 07
-fd
+fe
 74
 01
 a8
-05
+06
 08
 80
 02
@@ -7322,27 +7330,42 @@
 33
 d8
 fc
-fd
-ee
+90
+4e
+59
+f0
+e9
 24
 78
-fb
+fd
 e4
 34
 80
-8b
+fc
+8d
 82
 f5
 83
+c0
+83
+c0
+82
+e0
+fe
+90
+4e
+59
 e0
-fc
-ed
 f4
 fb
-ec
+ee
 5b
+d0
+82
+d0
+83
 f0
-ee
+e9
 24
 70
 f5
@@ -7352,10 +7375,25 @@
 80
 f5
 83
+c0
+83
+c0
+82
 e0
-4d
-f0
+fe
+90
+4e
+59
+e0
+fa
 ee
+4a
+d0
+82
+d0
+83
+f0
+e9
 24
 74
 f5
@@ -7373,7 +7411,7 @@
 1c
 e0
 f4
-fc
+fe
 74
 bc
 2f
@@ -7384,23 +7422,31 @@
 4d
 f5
 83
-ec
-f0
 ee
-24
-78
-fb
-e4
-34
-80
-8b
+f0
+8d
 82
-f5
+8c
 83
+c0
+83
+c0
+82
 e0
+fe
+90
+4e
+59
+e0
+fd
+ee
 4d
+d0
+82
+d0
+83
 f0
-ee
+e9
 24
 70
 fb
@@ -7412,16 +7458,21 @@
 f5
 83
 e0
-fc
+fe
 ed
 f4
-fb
-ec
-5b
+fd
+ee
+5d
 f0
 0f
 81
-7d
+7f
+7f
+05
+12
+0a
+72
 e4
 ff
 ef
@@ -7429,25 +7480,31 @@
 06
 0c
 93
-60
-7c
+70
+02
+a1
+e4
 ef
 93
-fd
+fe
 13
 13
 13
 54
 1f
-fe
-ed
+f9
+90
+4e
+58
+f0
+ee
 54
 07
-fd
+fe
 74
 01
 a8
-05
+06
 08
 80
 02
@@ -7455,27 +7512,42 @@
 33
 d8
 fc
-fd
-ee
+90
+4e
+59
+f0
+e9
 24
 78
-fb
+fd
 e4
 34
 80
-8b
+fc
+8d
 82
 f5
 83
+c0
+83
+c0
+82
+e0
+fe
+90
+4e
+59
 e0
-fc
-ed
 f4
 fb
-ec
+ee
 5b
+d0
+82
+d0
+83
 f0
-ee
+e9
 24
 70
 f5
@@ -7485,10 +7557,25 @@
 80
 f5
 83
+c0
+83
+c0
+82
 e0
-4d
-f0
+fe
+90
+4e
+59
+e0
+fa
 ee
+4a
+d0
+82
+d0
+83
+f0
+e9
 24
 74
 f5
@@ -7506,7 +7593,7 @@
 1c
 e0
 f4
-fc
+fe
 74
 a8
 2f
@@ -7517,23 +7604,31 @@
 4d
 f5
 83
-ec
-f0
 ee
-24
-78
-fb
-e4
-34
-80
-8b
+f0
+8d
 82
-f5
+8c
+83
+c0
 83
+c0
+82
 e0
+fe
+90
+4e
+59
+e0
+fd
+ee
 4d
+d0
+82
+d0
+83
 f0
-ee
+e9
 24
 70
 fb
@@ -7545,16 +7640,16 @@
 f5
 83
 e0
-fc
+fe
 ed
 f4
-fb
-ec
-5b
+fd
+ee
+5d
 f0
 0f
 a1
-02
+35
 e4
 ff
 ef
@@ -7631,7 +7726,7 @@
 22
 90
 4e
-72
+78
 eb
 f0
 a3
@@ -7646,7 +7741,7 @@
 f0
 90
 4e
-75
+7b
 e0
 ff
 c3
@@ -7656,10 +7751,10 @@
 03
 02
 20
-91
+ee
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7700,7 +7795,7 @@
 03
 02
 20
-88
+e5
 12
 03
 b6
@@ -7717,7 +7812,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 f2
@@ -7731,10 +7826,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7771,7 +7866,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 f4
@@ -7785,10 +7880,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7825,7 +7920,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 f6
@@ -7839,10 +7934,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7879,7 +7974,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 f8
@@ -7893,10 +7988,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7934,7 +8029,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 fa
@@ -7948,10 +8043,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -7989,7 +8084,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 d0
@@ -8003,10 +8098,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8045,7 +8140,7 @@
 c7
 02
 20
-5d
+ba
 eb
 b4
 d3
@@ -8059,10 +8154,10 @@
 c7
 02
 20
-5d
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8091,7 +8186,7 @@
 fb
 b4
 d2
-0a
+09
 7f
 24
 7e
@@ -8099,13 +8194,12 @@
 12
 17
 c7
-02
-20
-5d
+01
+ba
 eb
 b4
 d4
-0a
+09
 7f
 27
 7e
@@ -8113,12 +8207,11 @@
 12
 17
 c7
-02
-20
-5d
+01
+ba
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8172,7 +8265,7 @@
 71
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8224,7 +8317,7 @@
 3d
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8292,7 +8385,7 @@
 24
 90
 4e
-72
+78
 e0
 fb
 a3
@@ -8328,19 +8421,19 @@
 fc
 90
 4e
-75
+7b
 e0
 04
 f0
 02
-1d
-de
+1e
+3d
 22
 12
 0e
 dc
-11
-af
+31
+0c
 90
 4c
 eb
@@ -8574,7 +8667,7 @@
 f5
 90
 4e
-96
+98
 ed
 f0
 90
@@ -8585,7 +8678,7 @@
 cf
 90
 4e
-97
+99
 f0
 22
 90
@@ -8659,7 +8752,7 @@
 22
 90
 4e
-69
+6f
 12
 05
 33
@@ -8677,8 +8770,8 @@
 e0
 70
 02
-41
-e7
+61
+44
 90
 4c
 95
@@ -8725,11 +8818,11 @@
 e4
 90
 4e
-68
+6e
 f0
 90
 4e
-69
+6f
 e0
 f8
 a3
@@ -8743,7 +8836,7 @@
 fb
 90
 4e
-68
+6e
 e0
 25
 e0
@@ -8778,13 +8871,13 @@
 fc
 90
 4e
-69
+6f
 12
 05
 27
 90
 4e
-68
+6e
 e0
 04
 f0
@@ -8794,7 +8887,7 @@
 bf
 90
 4e
-69
+6f
 e0
 fc
 a3
@@ -8817,7 +8910,7 @@
 76
 90
 4e
-69
+6f
 12
 05
 27
@@ -8834,7 +8927,7 @@
 fd
 90
 4e
-69
+6f
 e0
 f8
 a3
@@ -8872,7 +8965,7 @@
 fd
 90
 4e
-69
+6f
 e0
 f8
 a3
@@ -8936,7 +9029,7 @@
 22
 90
 4e
-7a
+7c
 ee
 f0
 a3
@@ -8944,7 +9037,7 @@
 f0
 90
 4e
-7c
+7e
 ec
 f0
 a3
@@ -8952,7 +9045,7 @@
 f0
 90
 4e
-7c
+7e
 e0
 fe
 a3
@@ -8961,19 +9054,19 @@
 d3
 90
 4e
-7b
+7d
 e0
 9f
 90
 4e
-7a
+7c
 e0
 9e
 40
 16
 90
 4e
-7c
+7e
 e0
 fe
 a3
@@ -8981,13 +9074,13 @@
 ff
 90
 4e
-7b
+7d
 e0
 9f
 ff
 90
 4e
-7a
+7c
 e0
 9e
 fe
@@ -8995,7 +9088,7 @@
 1e
 90
 4e
-7a
+7c
 e0
 fe
 a3
@@ -9004,13 +9097,13 @@
 c3
 90
 4e
-7d
+7f
 e0
 9f
 ff
 90
 4e
-7c
+7e
 e0
 9e
 fe
@@ -9026,7 +9119,7 @@
 22
 90
 4e
-98
+9a
 ee
 f0
 a3
@@ -9064,7 +9157,7 @@
 fd
 90
 4e
-98
+9a
 e4
 75
 f0
@@ -9110,7 +9203,7 @@
 4b
 90
 4e
-88
+8a
 74
 01
 f0
@@ -9149,10 +9242,10 @@
 7d
 03
 71
-42
+9f
 90
 4e
-88
+8a
 e0
 fb
 a3
@@ -9169,7 +9262,7 @@
 2b
 90
 4e
-89
+8b
 e4
 75
 f0
@@ -9179,7 +9272,7 @@
 0e
 90
 4e
-88
+8a
 e0
 fb
 a3
@@ -9442,7 +9535,7 @@
 79
 86
 91
-65
+c2
 90
 0b
 83
@@ -9576,8 +9669,8 @@
 e0
 70
 02
-a1
-f6
+c1
+53
 90
 4e
 31
@@ -9678,8 +9771,8 @@
 a3
 e0
 f9
-91
-a9
+b1
+06
 7f
 0a
 12
@@ -9715,11 +9808,11 @@
 3e
 f0
 a1
-60
+bd
 22
 90
 4e
-8e
+90
 eb
 f0
 a3
@@ -9740,7 +9833,7 @@
 17
 90
 4e
-8e
+90
 e0
 fb
 a3
Index: c51/output/ramcode.rom
===================================================================
--- /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/ramcode.rom	(revision 4872)
+++ /branch/mouse_project/LeXiang/Keyboard/KG9012/c51/output/ramcode.rom	(working copy)
@@ -529,7 +529,7 @@
 207a0000
 6800c131
 207a0000
-5800b000
+580a0000
 20407e8a
 600a41fc
 20203cda
Index: c51/patch/adc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/bluetooth.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/global_variable.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/kb_process.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/keyscan.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/led.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/ram.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/patch/sys.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
