Index: c51/output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: c51/output/FW.COD
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/FW.COD	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/c51/output/FW.COD	(working copy)
@@ -1,4 +1,4 @@
-LX51 LINKER/LOCATER V4.41                                                               06/22/2021  21:01:58  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               08/04/2021  19:15:28  PAGE 1
 
 
 
@@ -343,12 +343,12 @@
   200: 	byte i = 0;
   201: 	for (i=0; col[i]!=0; i++) {
 0007FA E4                CLR     A
-0007FB 904E9C            MOV     DPTR,#i
+0007FB 904E9A            MOV     DPTR,#i
 0007FE F0                MOVX    @DPTR,A
   202: 		GPIO_SetInput(col[i], 0);
 0007FF F0                MOVX    @DPTR,A
 000800         ?C0032?KEYSCAN:
-000800 904E9C            MOV     DPTR,#i
+000800 904E9A            MOV     DPTR,#i
 000803 E0                MOVX    A,@DPTR
 000804 90060C            MOV     DPTR,#col
 000807 93                MOVC    A,@A+DPTR
@@ -358,7 +358,7 @@
 00080B C205              CLR     ?_GPIO_SetInput?BIT
 00080D 1118              ACALL   _GPIO_SetInput
   204: }
-00080F 904E9C            MOV     DPTR,#i
+00080F 904E9A            MOV     DPTR,#i
 000812 E0                MOVX    A,@DPTR
 000813 04                INC     A
 000814 F0                MOVX    @DPTR,A
@@ -445,7 +445,7 @@
 
 
 ----- FUNCTION _gpioSetBit (BEGIN) -----
-000869 904E90            MOV     DPTR,#reg_base
+000869 904E8E            MOV     DPTR,#reg_base
 00086C EB                MOV     A,R3
 00086D F0                MOVX    @DPTR,A
 00086E A3                INC     DPTR
@@ -470,7 +470,7 @@
 00087F 5403              ANL     A,#03H
 000881 FD                MOV     R5,A
 000882 300022            JNB     bit_val,?C0001?GPIO
-000885 904E90            MOV     DPTR,#reg_base
+000885 904E8E            MOV     DPTR,#reg_base
 000888 E0                MOVX    A,@DPTR
 000889 FB                MOV     R3,A
 00088A A3                INC     DPTR
@@ -497,7 +497,7 @@
 0008A3 4F                ORL     A,R7
 0008A4 0203FC            LJMP    ?C?CSTPTR
 0008A7         ?C0001?GPIO:
-0008A7 904E90            MOV     DPTR,#reg_base
+0008A7 904E8E            MOV     DPTR,#reg_base
 0008AA E0                MOVX    A,@DPTR
 0008AB FB                MOV     R3,A
 0008AC A3                INC     DPTR
@@ -534,12 +534,12 @@
   191: 	byte i = 0;
   192: 	
 0008CA E4                CLR     A
-0008CB 904E9B            MOV     DPTR,#i
+0008CB 904E99            MOV     DPTR,#i
 0008CE F0                MOVX    @DPTR,A
   193: 	for (i=0; i<8; i++) {
 0008CF F0                MOVX    @DPTR,A
 0008D0         ?C0028?KEYSCAN:
-0008D0 904E9B            MOV     DPTR,#i
+0008D0 904E99            MOV     DPTR,#i
 0008D3 E0                MOVX    A,@DPTR
 0008D4 FF                MOV     R7,A
 0008D5 C3                CLR     C
@@ -549,7 +549,7 @@
 0008DA C205              CLR     ?_GPIO_SetInput?BIT
 0008DC 1118              ACALL   _GPIO_SetInput
   195: 	}
-0008DE 904E9B            MOV     DPTR,#i
+0008DE 904E99            MOV     DPTR,#i
 0008E1 E0                MOVX    A,@DPTR
 0008E2 04                INC     A
 0008E3 F0                MOVX    @DPTR,A
@@ -630,7 +630,7 @@
  FILE: 'kb_process.c'
     3: void YC_key_action_handle(byte key_num)
     4: {
-00091C 904E99            MOV     DPTR,#key_num
+00091C 904E97            MOV     DPTR,#key_num
 00091F EF                MOV     A,R7
 000920 F0                MOVX    @DPTR,A
     5: 	switch (key_num)
@@ -730,7 +730,7 @@
 00098E 6009              JZ      ?C0006?KB_PROCESS
    32: 		{
    33: 			g_variable.key_action = key_num;
-000990 904E99            MOV     DPTR,#key_num
+000990 904E97            MOV     DPTR,#key_num
 000993 E0                MOVX    A,@DPTR
 000994 904CED            MOV     DPTR,#g_variable+02EH
 000997 F0                MOVX    @DPTR,A
@@ -787,10 +787,10 @@
 
 
 ----- FUNCTION _IPC_TxControlCmd (BEGIN) -----
-0009C5 904E7D            MOV     DPTR,#cmd
+0009C5 904E7B            MOV     DPTR,#cmd
 0009C8 EF                MOV     A,R7
 0009C9 F0                MOVX    @DPTR,A
-0009CA 787E              MOV     R0,#LOW cmdBuff
+0009CA 787C              MOV     R0,#LOW cmdBuff
 0009CC 7C4E              MOV     R4,#HIGH cmdBuff
 0009CE 7D01              MOV     R5,#01H
 0009D0 7BFF              MOV     R3,#0FFH
@@ -799,20 +799,20 @@
 0009D6 7E00              MOV     R6,#00H
 0009D8 7F03              MOV     R7,#03H
 0009DA 120390            LCALL   ?C?COPY
-0009DD 904E7D            MOV     DPTR,#cmd
+0009DD 904E7B            MOV     DPTR,#cmd
 0009E0 E0                MOVX    A,@DPTR
-0009E1 904E80            MOV     DPTR,#cmdBuff+02H
+0009E1 904E7E            MOV     DPTR,#cmdBuff+02H
 0009E4 F0                MOVX    @DPTR,A
 0009E5 7B01              MOV     R3,#01H
 0009E7 7A4E              MOV     R2,#HIGH cmdBuff
-0009E9 797E              MOV     R1,#LOW cmdBuff
+0009E9 797C              MOV     R1,#LOW cmdBuff
 0009EB 7D03              MOV     R5,#03H
 ;----                  JMP     _ipcTx
 ----- FUNCTION _IPC_TxControlCmd (END) -------
 
 
 ----- FUNCTION _ipcTx (BEGIN) -----
-0009ED 904E56            MOV     DPTR,#src
+0009ED 904E54            MOV     DPTR,#src
 0009F0 EB                MOV     A,R3
 0009F1 F0                MOVX    @DPTR,A
 0009F2 A3                INC     DPTR
@@ -829,7 +829,7 @@
 0009FF FF                MOV     R7,A
 000A00 A3                INC     DPTR
 000A01 E0                MOVX    A,@DPTR
-000A02 904E5A            MOV     DPTR,#dest
+000A02 904E58            MOV     DPTR,#dest
 000A05 CF                XCH     A,R7
 000A06 F0                MOVX    @DPTR,A
 000A07 A3                INC     DPTR
@@ -849,8 +849,8 @@
 000A18 E0                MOVX    A,@DPTR
 000A19 FD                MOV     R5,A
 000A1A 7B64              MOV     R3,#064H
-000A1C 1223D5            LCALL   _bufsize
-000A1F 904E59            MOV     DPTR,#len
+000A1C 122407            LCALL   _bufsize
+000A1F 904E57            MOV     DPTR,#len
 000A22 E0                MOVX    A,@DPTR
 000A23 FE                MOV     R6,A
 000A24 EF                MOV     A,R7
@@ -859,14 +859,14 @@
 000A27 40E1              JC      ?C0008?IPC
 000A29         ?C0009?IPC:
 000A29         ?C0010?IPC:
-000A29 904E59            MOV     DPTR,#len
+000A29 904E57            MOV     DPTR,#len
 000A2C E0                MOVX    A,@DPTR
 000A2D FF                MOV     R7,A
 000A2E 14                DEC     A
 000A2F F0                MOVX    @DPTR,A
 000A30 EF                MOV     A,R7
 000A31 603F              JZ      ?C0011?IPC
-000A33 904E56            MOV     DPTR,#src
+000A33 904E54            MOV     DPTR,#src
 000A36 E0                MOVX    A,@DPTR
 000A37 FB                MOV     R3,A
 000A38 A3                INC     DPTR
@@ -877,7 +877,7 @@
 000A42 FA                MOV     R2,A
 000A43 1203B6            LCALL   ?C?CLDPTR
 000A46 FF                MOV     R7,A
-000A47 904E5A            MOV     DPTR,#dest
+000A47 904E58            MOV     DPTR,#dest
 000A4A E4                CLR     A
 000A4B 75F001            MOV     B,#01H
 000A4E 120424            LCALL   ?C?ILDIX
@@ -885,7 +885,7 @@
 000A54 F583              MOV     DPH,A
 000A56 EF                MOV     A,R7
 000A57 F0                MOVX    @DPTR,A
-000A58 904E5A            MOV     DPTR,#dest
+000A58 904E58            MOV     DPTR,#dest
 000A5B E0                MOVX    A,@DPTR
 000A5C FE                MOV     R6,A
 000A5D A3                INC     DPTR
@@ -893,7 +893,7 @@
 000A5F FF                MOV     R7,A
 000A60 BE4BC6            CJNE    R6,#04BH,?C0010?IPC
 000A63 BF36C3            CJNE    R7,#036H,?C0010?IPC
-000A66 904E5A            MOV     DPTR,#dest
+000A66 904E58            MOV     DPTR,#dest
 000A69 744A              MOV     A,#04AH
 000A6B F0                MOVX    @DPTR,A
 000A6C A3                INC     DPTR
@@ -901,7 +901,7 @@
 000A6F F0                MOVX    @DPTR,A
 000A70 80B7              SJMP    ?C0010?IPC
 000A72         ?C0011?IPC:
-000A72 904E5A            MOV     DPTR,#dest
+000A72 904E58            MOV     DPTR,#dest
 000A75 E0                MOVX    A,@DPTR
 000A76 FF                MOV     R7,A
 000A77 A3                INC     DPTR
@@ -1090,7 +1090,7 @@
  FILE: 'kb_process.c'
   220: void kb_motion_keyscan(tKSEVENT *pEvt)
   221: {
-000B35 904E62            MOV     DPTR,#pEvt
+000B35 904E60            MOV     DPTR,#pEvt
 000B38 EB                MOV     A,R3
 000B39 F0                MOVX    @DPTR,A
 000B3A A3                INC     DPTR
@@ -1111,10 +1111,10 @@
 000B45 904DDB            MOV     DPTR,#fn_flag
 000B48 F0                MOVX    @DPTR,A
   226: 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
-000B49 904E66            MOV     DPTR,#i
+000B49 904E64            MOV     DPTR,#i
 000B4C F0                MOVX    @DPTR,A
 000B4D         ?C0049?KB_PROCESS:
-000B4D 904E66            MOV     DPTR,#i
+000B4D 904E64            MOV     DPTR,#i
 000B50 E0                MOVX    A,@DPTR
 000B51 FF                MOV     R7,A
 000B52 C3                CLR     C
@@ -1122,7 +1122,7 @@
 000B55 502C              JNC     ?C0050?KB_PROCESS
   227: 	{
   228: 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
-000B57 904E62            MOV     DPTR,#pEvt
+000B57 904E60            MOV     DPTR,#pEvt
 000B5A E0                MOVX    A,@DPTR
 000B5B FB                MOV     R3,A
 000B5C A3                INC     DPTR
@@ -1152,7 +1152,7 @@
   231: 		}
   232: 	}
 000B7B         ?C0051?KB_PROCESS:
-000B7B 904E66            MOV     DPTR,#i
+000B7B 904E64            MOV     DPTR,#i
 000B7E E0                MOVX    A,@DPTR
 000B7F 04                INC     A
 000B80 F0                MOVX    @DPTR,A
@@ -1166,7 +1166,7 @@
   234: 
   235: 	
   236: 	if (pEvt == NULL)
-000B8B 904E62            MOV     DPTR,#pEvt
+000B8B 904E60            MOV     DPTR,#pEvt
 000B8E E0                MOVX    A,@DPTR
 000B8F A3                INC     DPTR
 000B90 E0                MOVX    A,@DPTR
@@ -1249,7 +1249,7 @@
 000BE5 D148              ACALL   _xmemclear
   257: 
   258: 	if (pEvt->ksPool[0]  == 0xa5) 
-000BE7 904E62            MOV     DPTR,#pEvt
+000BE7 904E60            MOV     DPTR,#pEvt
 000BEA E0                MOVX    A,@DPTR
 000BEB FB                MOV     R3,A
 000BEC A3                INC     DPTR
@@ -1306,7 +1306,7 @@
   269: 
   270: 	////////////////////////////2.4g pairing////////////////////////////////////
   271: 	if ((pEvt->ksPool[0]  == HID_KEY_Q && pEvt->ksPool[1]  == HID_KEY_ESC) 
-000C2D 904E62            MOV     DPTR,#pEvt
+000C2D 904E60            MOV     DPTR,#pEvt
 000C30 E0                MOVX    A,@DPTR
 000C31 FB                MOV     R3,A
 000C32 A3                INC     DPTR
@@ -1434,10 +1434,10 @@
 000CC2 7045              JNZ     ?C0068?KB_PROCESS
   311: 	{
   312: 		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
-000CC4 904E66            MOV     DPTR,#i
+000CC4 904E64            MOV     DPTR,#i
 000CC7 F0                MOVX    @DPTR,A
 000CC8         ?C0069?KB_PROCESS:
-000CC8 904E66            MOV     DPTR,#i
+000CC8 904E64            MOV     DPTR,#i
 000CCB E0                MOVX    A,@DPTR
 000CCC FF                MOV     R7,A
 000CCD C3                CLR     C
@@ -1445,7 +1445,7 @@
 000CD0 5037              JNC     ?C0068?KB_PROCESS
   313: 		{
   314: 			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
-000CD2 904E62            MOV     DPTR,#pEvt
+000CD2 904E60            MOV     DPTR,#pEvt
 000CD5 E0                MOVX    A,@DPTR
 000CD6 FB                MOV     R3,A
 000CD7 A3                INC     DPTR
@@ -1485,7 +1485,7 @@
   319: 			}
   320: 		}
 000D01         ?C0071?KB_PROCESS:
-000D01 904E66            MOV     DPTR,#i
+000D01 904E64            MOV     DPTR,#i
 000D04 E0                MOVX    A,@DPTR
 000D05 04                INC     A
 000D06 F0                MOVX    @DPTR,A
@@ -1494,7 +1494,7 @@
 000D09         ?C0068?KB_PROCESS:
   322: 
   323: 	kb_multikey_setup(pEvt);
-000D09 904E62            MOV     DPTR,#pEvt
+000D09 904E60            MOV     DPTR,#pEvt
 000D0C E0                MOVX    A,@DPTR
 000D0D FB                MOV     R3,A
 000D0E A3                INC     DPTR
@@ -1503,7 +1503,7 @@
 000D11 A3                INC     DPTR
 000D12 E0                MOVX    A,@DPTR
 000D13 F9                MOV     R1,A
-000D14 121E62            LCALL   _kb_multikey_setup
+000D14 121E95            LCALL   _kb_multikey_setup
   324: 	
   325: 	if (mult_key_status == KEY_MULIT_PRESS) 
 000D17 904DE6            MOV     DPTR,#mult_key_status
@@ -1562,7 +1562,7 @@
 000D5D E0                MOVX    A,@DPTR
 000D5E 7016              JNZ     ?C0079?KB_PROCESS
   341: 			xmemclear(pEvt->ksPool,6);
-000D60 904E62            MOV     DPTR,#pEvt
+000D60 904E60            MOV     DPTR,#pEvt
 000D63 E0                MOVX    A,@DPTR
 000D64 FB                MOV     R3,A
 000D65 A3                INC     DPTR
@@ -1585,7 +1585,7 @@
 000D79 7401              MOV     A,#01H
 000D7B F0                MOVX    @DPTR,A
   344: 		hidBuff[1] = pEvt->standardSel;
-000D7C 904E62            MOV     DPTR,#pEvt
+000D7C 904E60            MOV     DPTR,#pEvt
 000D7F E0                MOVX    A,@DPTR
 000D80 FB                MOV     R3,A
 000D81 A3                INC     DPTR
@@ -1637,7 +1637,7 @@
 000DC0 E4                CLR     A
 000DC1 3A                ADDC    A,R2
 000DC2 FA                MOV     R2,A
-000DC3 904E61            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000DC3 904E5F            MOV     DPTR,#?_xmemcpy?BYTE+05H
 000DC6 7405              MOV     A,#05H
 000DC8 F0                MOVX    @DPTR,A
 000DC9 121017            LCALL   _xmemcpy
@@ -1647,7 +1647,7 @@
   356: 				xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
 000DCE 7E48              MOV     R6,#HIGH hidBuff+03H
 000DD0 7F03              MOV     R7,#LOW hidBuff+03H
-000DD2 904E62            MOV     DPTR,#pEvt
+000DD2 904E60            MOV     DPTR,#pEvt
 000DD5 E0                MOVX    A,@DPTR
 000DD6 FB                MOV     R3,A
 000DD7 A3                INC     DPTR
@@ -1660,18 +1660,18 @@
 000DDF E4                CLR     A
 000DE0 3A                ADDC    A,R2
 000DE1 FA                MOV     R2,A
-000DE2 904E61            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000DE2 904E5F            MOV     DPTR,#?_xmemcpy?BYTE+05H
 000DE5 7406              MOV     A,#06H
 000DE7 F0                MOVX    @DPTR,A
 000DE8 121017            LCALL   _xmemcpy
 000DEB         ?C0084?KB_PROCESS:
   357: 			
   358: 			for(i = 3; i<9;i++)
-000DEB 904E66            MOV     DPTR,#i
+000DEB 904E64            MOV     DPTR,#i
 000DEE 7403              MOV     A,#03H
 000DF0 F0                MOVX    @DPTR,A
 000DF1         ?C0085?KB_PROCESS:
-000DF1 904E66            MOV     DPTR,#i
+000DF1 904E64            MOV     DPTR,#i
 000DF4 E0                MOVX    A,@DPTR
 000DF5 FF                MOV     R7,A
 000DF6 C3                CLR     C
@@ -1688,7 +1688,7 @@
 000E05 E0                MOVX    A,@DPTR
 000E06 B4AF0F            CJNE    A,#0AFH,?C0087?KB_PROCESS
   361: 					hidBuff[i] = 0;
-000E09 904E66            MOV     DPTR,#i
+000E09 904E64            MOV     DPTR,#i
 000E0C E0                MOVX    A,@DPTR
 000E0D 2400              ADD     A,#LOW hidBuff
 000E0F F582              MOV     DPL,A
@@ -1699,7 +1699,7 @@
 000E17 F0                MOVX    @DPTR,A
   362: 			}
 000E18         ?C0087?KB_PROCESS:
-000E18 904E66            MOV     DPTR,#i
+000E18 904E64            MOV     DPTR,#i
 000E1B E0                MOVX    A,@DPTR
 000E1C 04                INC     A
 000E1D F0                MOVX    @DPTR,A
@@ -1710,7 +1710,7 @@
   365: 			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
 000E20 7E48              MOV     R6,#HIGH hidBuff+03H
 000E22 7F03              MOV     R7,#LOW hidBuff+03H
-000E24 904E62            MOV     DPTR,#pEvt
+000E24 904E60            MOV     DPTR,#pEvt
 000E27 E0                MOVX    A,@DPTR
 000E28 FB                MOV     R3,A
 000E29 A3                INC     DPTR
@@ -1723,7 +1723,7 @@
 000E31 E4                CLR     A
 000E32 3A                ADDC    A,R2
 000E33 FA                MOV     R2,A
-000E34 904E61            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000E34 904E5F            MOV     DPTR,#?_xmemcpy?BYTE+05H
 000E37 7406              MOV     A,#06H
 000E39 F0                MOVX    @DPTR,A
 000E3A 121017            LCALL   _xmemcpy
@@ -1743,7 +1743,7 @@
 
 
 ----- FUNCTION _xmemclear (BEGIN) -----
-000E48 904E8A            MOV     DPTR,#dest
+000E48 904E88            MOV     DPTR,#dest
 000E4B EB                MOV     A,R3
 000E4C F0                MOVX    @DPTR,A
 000E4D A3                INC     DPTR
@@ -1762,7 +1762,7 @@
 000E5A         ?C0026?UTILITIES:
 000E5A 4E                ORL     A,R6
 000E5B 6016              JZ      ?C0010?UTILITIES
-000E5D 904E8A            MOV     DPTR,#dest
+000E5D 904E88            MOV     DPTR,#dest
 000E60 E0                MOVX    A,@DPTR
 000E61 FB                MOV     R3,A
 000E62 A3                INC     DPTR
@@ -1887,7 +1887,7 @@
  FILE: 'kb_process.c'
   114: void kb_send_combination_key(byte ctrl_value,byte key_value)
   115: {
-000EFE 904E93            MOV     DPTR,#ctrl_value
+000EFE 904E91            MOV     DPTR,#ctrl_value
 000F01 EF                MOV     A,R7
 000F02 F0                MOVX    @DPTR,A
 000F03 A3                INC     DPTR
@@ -1909,7 +1909,7 @@
 000F18 A3                INC     DPTR
 000F19 E0                MOVX    A,@DPTR
 000F1A FF                MOV     R7,A
-000F1B 904E93            MOV     DPTR,#ctrl_value
+000F1B 904E91            MOV     DPTR,#ctrl_value
 000F1E E0                MOVX    A,@DPTR
 000F1F FE                MOV     R6,A
 000F20 EF                MOV     A,R7
@@ -1917,7 +1917,7 @@
 000F22 904801            MOV     DPTR,#hidBuff+01H
 000F25 F0                MOVX    @DPTR,A
   120: 	IPC_TxHidData(hidBuff, 9);
-000F26 904E94            MOV     DPTR,#key_value
+000F26 904E92            MOV     DPTR,#key_value
 000F29 E0                MOVX    A,@DPTR
 000F2A 904803            MOV     DPTR,#hidBuff+03H
 000F2D F0                MOVX    @DPTR,A
@@ -2126,7 +2126,7 @@
 
 
 ----- FUNCTION _IPC_TxData (BEGIN) -----
-000FF1 904E9F            MOV     DPTR,#len
+000FF1 904E9D            MOV     DPTR,#len
 000FF4 ED                MOV     A,R5
 000FF5 F0                MOVX    @DPTR,A
 ;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
@@ -2136,14 +2136,14 @@
 000FFB F0                MOVX    @DPTR,A
 000FFC 7E0B              MOV     R6,#HIGH ipcSendBuff+02H
 000FFE 7FE9              MOV     R7,#LOW ipcSendBuff+02H
-001000 904E61            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001000 904E5F            MOV     DPTR,#?_xmemcpy?BYTE+05H
 001003 ED                MOV     A,R5
 001004 F0                MOVX    @DPTR,A
 001005 1117              ACALL   _xmemcpy
 001007 7B01              MOV     R3,#01H
 001009 7A0B              MOV     R2,#HIGH ipcSendBuff
 00100B 79E7              MOV     R1,#LOW ipcSendBuff
-00100D 904E9F            MOV     DPTR,#len
+00100D 904E9D            MOV     DPTR,#len
 001010 E0                MOVX    A,@DPTR
 001011 2402              ADD     A,#02H
 001013 FD                MOV     R5,A
@@ -2152,7 +2152,7 @@
 
 
 ----- FUNCTION _xmemcpy (BEGIN) -----
-001017 904E5C            MOV     DPTR,#dest
+001017 904E5A            MOV     DPTR,#dest
 00101A EE                MOV     A,R6
 00101B F0                MOVX    @DPTR,A
 00101C A3                INC     DPTR
@@ -2168,14 +2168,14 @@
 001026 E9                MOV     A,R1
 001027 F0                MOVX    @DPTR,A
 001028         ?C0002?UTILITIES:
-001028 904E61            MOV     DPTR,#len
+001028 904E5F            MOV     DPTR,#len
 00102B E0                MOVX    A,@DPTR
 00102C FF                MOV     R7,A
 00102D 14                DEC     A
 00102E F0                MOVX    @DPTR,A
 00102F EF                MOV     A,R7
 001030 6027              JZ      ?C0004?UTILITIES
-001032 904E5E            MOV     DPTR,#src
+001032 904E5C            MOV     DPTR,#src
 001035 E0                MOVX    A,@DPTR
 001036 FB                MOV     R3,A
 001037 A3                INC     DPTR
@@ -2186,7 +2186,7 @@
 001041 FA                MOV     R2,A
 001042 1203B6            LCALL   ?C?CLDPTR
 001045 FF                MOV     R7,A
-001046 904E5C            MOV     DPTR,#dest
+001046 904E5A            MOV     DPTR,#dest
 001049 E4                CLR     A
 00104A 75F001            MOV     B,#01H
 00104D 120424            LCALL   ?C?ILDIX
@@ -2201,7 +2201,7 @@
 
 
 ----- FUNCTION _IIC_Read (BEGIN) -----
-00105A 904E6C            MOV     DPTR,#len
+00105A 904E6A            MOV     DPTR,#len
 00105D EC                MOV     A,R4
 00105E F0                MOVX    @DPTR,A
 00105F A3                INC     DPTR
@@ -2253,7 +2253,7 @@
 00109C A3                INC     DPTR
 00109D EF                MOV     A,R7
 00109E F0                MOVX    @DPTR,A
-00109F 904E6C            MOV     DPTR,#len
+00109F 904E6A            MOV     DPTR,#len
 0010A2 E0                MOVX    A,@DPTR
 0010A3 FC                MOV     R4,A
 0010A4 A3                INC     DPTR
@@ -2304,7 +2304,7 @@
 0010E6 4404              ORL     A,#04H
 0010E8 F0                MOVX    @DPTR,A
 0010E9 B1FE              ACALL   IIcWaitDone
-0010EB 904E6E            MOV     DPTR,#pbuff
+0010EB 904E6C            MOV     DPTR,#pbuff
 0010EE E0                MOVX    A,@DPTR
 0010EF A3                INC     DPTR
 0010F0 E0                MOVX    A,@DPTR
@@ -2316,11 +2316,11 @@
 0010F7 7B01              MOV     R3,#01H
 0010F9 7A0B              MOV     R2,#HIGH IIC_TempBuff
 0010FB 7983              MOV     R1,#LOW IIC_TempBuff
-0010FD 904E6C            MOV     DPTR,#len
+0010FD 904E6A            MOV     DPTR,#len
 001100 E0                MOVX    A,@DPTR
 001101 A3                INC     DPTR
 001102 E0                MOVX    A,@DPTR
-001103 904E61            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001103 904E5F            MOV     DPTR,#?_xmemcpy?BYTE+05H
 001106 F0                MOVX    @DPTR,A
 001107 0117              AJMP    _xmemcpy
 ----- FUNCTION _IIC_Read (END) -------
@@ -2330,7 +2330,7 @@
  FILE: 'sys.c'
    94: static void kb_cb_event(byte evt)
    95: {
-001109 904E9E            MOV     DPTR,#evt
+001109 904E9C            MOV     DPTR,#evt
 00110C EF                MOV     A,R7
 00110D F0                MOVX    @DPTR,A
    96: 	switch (evt) 
@@ -2444,7 +2444,7 @@
 001193 F0                MOVX    @DPTR,A
   131: 
   132: 		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
-001194 904E9E            MOV     DPTR,#evt
+001194 904E9C            MOV     DPTR,#evt
 001197 E0                MOVX    A,@DPTR
 001198 6431              XRL     A,#031H
 00119A 7029              JNZ     ?C0017?SYS
@@ -2689,7 +2689,7 @@
    51: 	YC_adc_init();
 001272 120E74            LCALL   System_clear_mem
    52: 	g_variable.release_data =1;
-001275 1221EF            LCALL   YC_adc_init
+001275 122221            LCALL   YC_adc_init
    53: 	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
 001278 904CEB            MOV     DPTR,#g_variable+02CH
 00127B 7401              MOV     A,#01H
@@ -2765,7 +2765,7 @@
 
 
 ----- FUNCTION _IIC_WriteBlock (BEGIN) -----
-0012D4 904E30            MOV     DPTR,#addr
+0012D4 904E2E            MOV     DPTR,#addr
 0012D7 EE                MOV     A,R6
 0012D8 F0                MOVX    @DPTR,A
 0012D9 A3                INC     DPTR
@@ -2787,7 +2787,7 @@
 0012E9 E9                MOV     A,R1
 0012EA F0                MOVX    @DPTR,A
 0012EB         ?C0007?IIC:
-0012EB 904E32            MOV     DPTR,#len
+0012EB 904E30            MOV     DPTR,#len
 0012EE E0                MOVX    A,@DPTR
 0012EF 7002              JNZ     ?C0012?IIC
 0012F1 A3                INC     DPTR
@@ -2795,7 +2795,7 @@
 0012F3         ?C0012?IIC:
 0012F3 7002              JNZ     $ + 4H
 0012F5 6181              AJMP    ?C0011?IIC
-0012F7 904E30            MOV     DPTR,#addr
+0012F7 904E2E            MOV     DPTR,#addr
 0012FA E0                MOVX    A,@DPTR
 0012FB FE                MOV     R6,A
 0012FC A3                INC     DPTR
@@ -2815,12 +2815,12 @@
 00130B EC                MOV     A,R4
 00130C 9E                SUBB    A,R6
 00130D FE                MOV     R6,A
-00130E 904E37            MOV     DPTR,#curr_len
+00130E 904E35            MOV     DPTR,#curr_len
 001311 F0                MOVX    @DPTR,A
 001312 A3                INC     DPTR
 001313 EF                MOV     A,R7
 001314 F0                MOVX    @DPTR,A
-001315 904E32            MOV     DPTR,#len
+001315 904E30            MOV     DPTR,#len
 001318 E0                MOVX    A,@DPTR
 001319 FC                MOV     R4,A
 00131A A3                INC     DPTR
@@ -2831,7 +2831,7 @@
 00131F EC                MOV     A,R4
 001320 9E                SUBB    A,R6
 001321 400A              JC      ?C0009?IIC
-001323 904E37            MOV     DPTR,#curr_len
+001323 904E35            MOV     DPTR,#curr_len
 001326 E0                MOVX    A,@DPTR
 001327 FE                MOV     R6,A
 001328 A3                INC     DPTR
@@ -2842,7 +2842,7 @@
 00132D AE04              MOV     R6,AR4
 00132F AF05              MOV     R7,AR5
 001331         ?C0010?IIC:
-001331 904E37            MOV     DPTR,#curr_len
+001331 904E35            MOV     DPTR,#curr_len
 001334 EE                MOV     A,R6
 001335 F0                MOVX    @DPTR,A
 001336 FC                MOV     R4,A
@@ -2851,21 +2851,21 @@
 001339 F0                MOVX    @DPTR,A
 00133A FD                MOV     R5,A
 00133B C3                CLR     C
-00133C 904E33            MOV     DPTR,#len+01H
+00133C 904E31            MOV     DPTR,#len+01H
 00133F E0                MOVX    A,@DPTR
 001340 9D                SUBB    A,R5
 001341 F0                MOVX    @DPTR,A
-001342 904E32            MOV     DPTR,#len
+001342 904E30            MOV     DPTR,#len
 001345 E0                MOVX    A,@DPTR
 001346 9C                SUBB    A,R4
 001347 F0                MOVX    @DPTR,A
-001348 904E30            MOV     DPTR,#addr
+001348 904E2E            MOV     DPTR,#addr
 00134B E0                MOVX    A,@DPTR
 00134C FE                MOV     R6,A
 00134D A3                INC     DPTR
 00134E E0                MOVX    A,@DPTR
 00134F FF                MOV     R7,A
-001350 904E34            MOV     DPTR,#pbuff
+001350 904E32            MOV     DPTR,#pbuff
 001353 E0                MOVX    A,@DPTR
 001354 FB                MOV     R3,A
 001355 A3                INC     DPTR
@@ -2877,21 +2877,21 @@
 00135B B165              ACALL   _IIC_write
 00135D 7F0A              MOV     R7,#0AH
 00135F 120FD3            LCALL   _Delay1ms
-001362 904E37            MOV     DPTR,#curr_len
+001362 904E35            MOV     DPTR,#curr_len
 001365 E0                MOVX    A,@DPTR
 001366 FE                MOV     R6,A
 001367 A3                INC     DPTR
 001368 E0                MOVX    A,@DPTR
 001369 FF                MOV     R7,A
-00136A 904E35            MOV     DPTR,#pbuff+01H
+00136A 904E33            MOV     DPTR,#pbuff+01H
 00136D EE                MOV     A,R6
 00136E 8FF0              MOV     B,R7
 001370 12040E            LCALL   ?C?IILDX
-001373 904E31            MOV     DPTR,#addr+01H
+001373 904E2F            MOV     DPTR,#addr+01H
 001376 E0                MOVX    A,@DPTR
 001377 2F                ADD     A,R7
 001378 F0                MOVX    @DPTR,A
-001379 904E30            MOV     DPTR,#addr
+001379 904E2E            MOV     DPTR,#addr
 00137C E0                MOVX    A,@DPTR
 00137D 3E                ADDC    A,R6
 00137E F0                MOVX    @DPTR,A
@@ -2990,7 +2990,7 @@
 0013C7 E4                CLR     A
 0013C8 FF                MOV     R7,A
   219: 	byte tgroup = 0;
-0013C9 904E9D            MOV     DPTR,#temp
+0013C9 904E9B            MOV     DPTR,#temp
 0013CC F0                MOVX    @DPTR,A
   220: 	byte tgpionum = 0;
 ;---- Variable 'tgroup' assigned to Register 'R6' ----
@@ -3020,12 +3020,12 @@
 0013E3 7401              MOV     A,#01H
 0013E5 A805              MOV     R0,AR5
 0013E7 08                INC     R0
-0013E8 8002              SJMP    ?C0091?KEYSCAN
-0013EA         ?C0090?KEYSCAN:
+0013E8 8002              SJMP    ?C0097?KEYSCAN
+0013EA         ?C0096?KEYSCAN:
 0013EA C3                CLR     C
 0013EB 33                RLC     A
-0013EC         ?C0091?KEYSCAN:
-0013EC D8FC              DJNZ    R0,?C0090?KEYSCAN
+0013EC         ?C0097?KEYSCAN:
+0013EC D8FC              DJNZ    R0,?C0096?KEYSCAN
 0013EE FD                MOV     R5,A
   225: 		REG_GPIO_OE(tgroup) |= tgpionum;
 0013EF EE                MOV     A,R6
@@ -3068,12 +3068,12 @@
 00141D 80B0              SJMP    ?C0037?KEYSCAN
 00141F         ?C0038?KEYSCAN:
   229: 	GPIO_fillpd();
-00141F 12253C            LCALL   GPIO_fillpd
+00141F 12256E            LCALL   GPIO_fillpd
   230: 	
   231: 	temp = REG_GPIO_IN(0);
 001422 90811C            MOV     DPTR,#0811CH
 001425 E0                MOVX    A,@DPTR
-001426 904E9D            MOV     DPTR,#temp
+001426 904E9B            MOV     DPTR,#temp
 001429 F0                MOVX    @DPTR,A
   232: 	//if (g_variable.battery_status != 2)
   233: 	{
@@ -3112,7 +3112,7 @@
   245: 		else
   246: 		{
   247: 			YC_GPIOWakeupL[0] = temp;
-001450 904E9D            MOV     DPTR,#temp
+001450 904E9B            MOV     DPTR,#temp
 001453 E0                MOVX    A,@DPTR
 001454 FF                MOV     R7,A
 001455 9000A3            MOV     DPTR,#YC_GPIOWakeupL
@@ -3136,12 +3136,12 @@
 
 
 ----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
-001460 904EA1            MOV     DPTR,#gpio_num
+001460 904E9F            MOV     DPTR,#gpio_num
 001463 EF                MOV     A,R7
 001464 F0                MOVX    @DPTR,A
 001465 B120              ACALL   _GPIO_GetInputStatus
 001467 9208              MOV     st,C
-001469 904EA1            MOV     DPTR,#gpio_num
+001469 904E9F            MOV     DPTR,#gpio_num
 00146C E0                MOVX    A,@DPTR
 00146D FF                MOV     R7,A
 00146E A208              MOV     C,st
@@ -3310,7 +3310,7 @@
 001526 AD07              MOV     R5,AR7
 ;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
 001528 E4                CLR     A
-001529 904EA0            MOV     DPTR,#queue
+001529 904E9E            MOV     DPTR,#queue
 00152C F0                MOVX    @DPTR,A
 ;---- Variable 'group' assigned to Register 'R6' ----
 00152D FE                MOV     R6,A
@@ -3330,7 +3330,7 @@
 001542 33                RLC     A
 001543 95E0              SUBB    A,ACC
 001545 FC                MOV     R4,A
-001546 904EA0            MOV     DPTR,#queue
+001546 904E9E            MOV     DPTR,#queue
 001549 E0                MOVX    A,@DPTR
 00154A FF                MOV     R7,A
 00154B 7401              MOV     A,#01H
@@ -3359,13 +3359,13 @@
 
 
 ----- FUNCTION _IIC_write (BEGIN) -----
-001565 904E4F            MOV     DPTR,#addr
+001565 904E4D            MOV     DPTR,#addr
 001568 EE                MOV     A,R6
 001569 F0                MOVX    @DPTR,A
 00156A A3                INC     DPTR
 00156B EF                MOV     A,R7
 00156C F0                MOVX    @DPTR,A
-00156D 904E53            MOV     DPTR,#pbuff
+00156D 904E51            MOV     DPTR,#pbuff
 001570 EB                MOV     A,R3
 001571 F0                MOVX    @DPTR,A
 001572 A3                INC     DPTR
@@ -3374,7 +3374,7 @@
 001575 A3                INC     DPTR
 001576 E9                MOV     A,R1
 001577 F0                MOVX    @DPTR,A
-001578 904E51            MOV     DPTR,#len
+001578 904E4F            MOV     DPTR,#len
 00157B EC                MOV     A,R4
 00157C F0                MOVX    @DPTR,A
 00157D A3                INC     DPTR
@@ -3388,7 +3388,7 @@
 001585 FA                MOV     R2,A
 001586 A3                INC     DPTR
 001587 E0                MOVX    A,@DPTR
-001588 904E3C            MOV     DPTR,#?_dmemcpy?BYTE+03H
+001588 904E3A            MOV     DPTR,#?_dmemcpy?BYTE+03H
 00158B C9                XCH     A,R1
 00158C F0                MOVX    @DPTR,A
 00158D A3                INC     DPTR
@@ -3406,11 +3406,11 @@
 001599 7B01              MOV     R3,#01H
 00159B 7A0B              MOV     R2,#HIGH IIC_TempBuff+03H
 00159D 7986              MOV     R1,#LOW IIC_TempBuff+03H
-00159F 12248C            LCALL   _dmemcpy
+00159F 1224BE            LCALL   _dmemcpy
 0015A2 900B83            MOV     DPTR,#IIC_TempBuff
 0015A5 74A0              MOV     A,#0A0H
 0015A7 F0                MOVX    @DPTR,A
-0015A8 904E4F            MOV     DPTR,#addr
+0015A8 904E4D            MOV     DPTR,#addr
 0015AB E0                MOVX    A,@DPTR
 0015AC FF                MOV     R7,A
 0015AD A3                INC     DPTR
@@ -3421,11 +3421,11 @@
 0015B4 A3                INC     DPTR
 0015B5 EF                MOV     A,R7
 0015B6 F0                MOVX    @DPTR,A
-0015B7 904E52            MOV     DPTR,#len+01H
+0015B7 904E50            MOV     DPTR,#len+01H
 0015BA E0                MOVX    A,@DPTR
 0015BB 2403              ADD     A,#03H
 0015BD FD                MOV     R5,A
-0015BE 904E51            MOV     DPTR,#len
+0015BE 904E4F            MOV     DPTR,#len
 0015C1 E0                MOVX    A,@DPTR
 0015C2 3400              ADDC    A,#00H
 0015C4 FC                MOV     R4,A
@@ -3487,7 +3487,7 @@
 ----- FUNCTION IPC_DealSingleStep (BEGIN) -----
 001606 7A0C              MOV     R2,#HIGH ipcReadBuff
 001608 794B              MOV     R1,#LOW ipcReadBuff
-00160A 904E87            MOV     DPTR,#pbuff
+00160A 904E85            MOV     DPTR,#pbuff
 00160D 7401              MOV     A,#01H
 00160F F0                MOVX    @DPTR,A
 001610 A3                INC     DPTR
@@ -3515,8 +3515,8 @@
 00162C 7E0C              MOV     R6,#HIGH ipcReadBuff
 00162E 7F4B              MOV     R7,#LOW ipcReadBuff
 001630 7D03              MOV     R5,#03H
-001632 12242F            LCALL   _ipcRx
-001635 904E87            MOV     DPTR,#pbuff
+001632 122461            LCALL   _ipcRx
+001635 904E85            MOV     DPTR,#pbuff
 001638 E0                MOVX    A,@DPTR
 001639 FB                MOV     R3,A
 00163A A3                INC     DPTR
@@ -3527,11 +3527,11 @@
 00163F F9                MOV     R1,A
 001640 1203B6            LCALL   ?C?CLDPTR
 001643 B4022B            CJNE    A,#02H,?C0027?IPC
-001646 904E88            MOV     DPTR,#pbuff+01H
+001646 904E86            MOV     DPTR,#pbuff+01H
 001649 E4                CLR     A
 00164A 75F002            MOV     B,#02H
 00164D 12040E            LCALL   ?C?IILDX
-001650 904E87            MOV     DPTR,#pbuff
+001650 904E85            MOV     DPTR,#pbuff
 001653 E0                MOVX    A,@DPTR
 001654 FB                MOV     R3,A
 001655 A3                INC     DPTR
@@ -3757,7 +3757,7 @@
 001725 7405              MOV     A,#05H
 001727 F0                MOVX    @DPTR,A
   101: 			YC_adc_check();
-001728 1222B5            LCALL   YC_adc_check
+001728 1222E7            LCALL   YC_adc_check
   102: 		}
   103: 	}
   104: #endif	
@@ -3930,7 +3930,7 @@
 
 
 ----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
-0017C0 904EA2            MOV     DPTR,#gpio_num
+0017C0 904EA0            MOV     DPTR,#gpio_num
 0017C3 EF                MOV     A,R7
 0017C4 F0                MOVX    @DPTR,A
 0017C5 7B01              MOV     R3,#01H
@@ -3938,7 +3938,7 @@
 0017C9 7974              MOV     R1,#074H
 0017CB B126              ACALL   _gpioGetBit
 0017CD 9209              MOV     st,C
-0017CF 904EA2            MOV     DPTR,#gpio_num
+0017CF 904EA0            MOV     DPTR,#gpio_num
 0017D2 E0                MOVX    A,@DPTR
 0017D3 FF                MOV     R7,A
 0017D4 A209              MOV     C,st
@@ -4043,7 +4043,7 @@
   160: {
   161: 	tKSEVENT *pEvt = NULL;
   162: 	
-001835 904E81            MOV     DPTR,#pEvt
+001835 904E7F            MOV     DPTR,#pEvt
 001838 E4                CLR     A
 001839 F0                MOVX    @DPTR,A
 00183A A3                INC     DPTR
@@ -4051,13 +4051,13 @@
 00183C A3                INC     DPTR
 00183D F0                MOVX    @DPTR,A
   163: 	if (!IPC_IsTxBuffEmpty())
-00183E 7170              ACALL   IPC_IsTxBuffEmpty
+00183E 51C1              ACALL   IPC_IsTxBuffEmpty
 001840 5025              JNC     ?C0034?KB_PROCESS
 001842         ?C0033?KB_PROCESS:
   164: 		return;
   165: 	pEvt = KS_GetCurrentEvt();
 001842 1168              ACALL   KS_GetCurrentEvt
-001844 904E81            MOV     DPTR,#pEvt
+001844 904E7F            MOV     DPTR,#pEvt
 001847 EB                MOV     A,R3
 001848 F0                MOVX    @DPTR,A
 001849 A3                INC     DPTR
@@ -4081,7 +4081,7 @@
   172: 	}
 001859         ?C0035?KB_PROCESS:
   173: 	kb_motion_keyscan(pEvt);
-001859 904E81            MOV     DPTR,#pEvt
+001859 904E7F            MOV     DPTR,#pEvt
 00185C E0                MOVX    A,@DPTR
 00185D FB                MOV     R3,A
 00185E A3                INC     DPTR
@@ -4109,433 +4109,497 @@
   304: 	byte j = 0;
 00186D A3                INC     DPTR
 00186E F0                MOVX    @DPTR,A
-  305: 	byte temp = 0;
+  305: 	byte k = 0;
 00186F A3                INC     DPTR
 001870 F0                MOVX    @DPTR,A
-  306: 	byte flag = 0;
+  306: 	byte temp = 0;
 001871 A3                INC     DPTR
 001872 F0                MOVX    @DPTR,A
-  307: 	byte offset = 0;
+  307: 	byte flag = 0;
 001873 A3                INC     DPTR
 001874 F0                MOVX    @DPTR,A
-  308: 	byte state = 0;
+  308: 	byte offset = 0;
 001875 A3                INC     DPTR
 001876 F0                MOVX    @DPTR,A
-  309: 	byte colCounttemp = 0;
+  309: 	byte state = 0;
 001877 A3                INC     DPTR
 001878 F0                MOVX    @DPTR,A
-  310: 	byte rawSel =0;
+  310: 	byte keyCounttemp = 0;
 001879 A3                INC     DPTR
 00187A F0                MOVX    @DPTR,A
-  311: 	byte keyCounttemp = 0;
+  311: 	byte key_value_temp = 0;
 00187B A3                INC     DPTR
 00187C F0                MOVX    @DPTR,A
-  312: 	byte key_value_temp = 0;
+  312: 	byte ghost = 0;
 00187D A3                INC     DPTR
 00187E F0                MOVX    @DPTR,A
-  313: 	byte ghost = 0;
+  313: 	byte rawCount = 0;
 00187F A3                INC     DPTR
 001880 F0                MOVX    @DPTR,A
-  314: 	byte rawCount = 0;
-001881 A3                INC     DPTR
-001882 F0                MOVX    @DPTR,A
-  315: 	byte colCount = 0;
-001883 A3                INC     DPTR
-001884 F0                MOVX    @DPTR,A
+  314: 	
+  315: 	KS_ScanMatrix();
+001881 B110              ACALL   KS_ScanMatrix
   316: 
-  317: 	
-  318: 	KS_ScanMatrix();
-001885 B102              ACALL   KS_ScanMatrix
-  319: 
-  320: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
-001887 7A4D              MOV     R2,#HIGH ksSelMapCheck
-001889 79A8              MOV     R1,#LOW ksSelMapCheck
-00188B 904E4B            MOV     DPTR,#?_compare_str?BYTE+03H
-00188E 7401              MOV     A,#01H
+  317: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+001883 7A4D              MOV     R2,#HIGH ksSelMapCheck
+001885 79A8              MOV     R1,#LOW ksSelMapCheck
+001887 904E49            MOV     DPTR,#?_compare_str?BYTE+03H
+00188A 7401              MOV     A,#01H
+00188C F0                MOVX    @DPTR,A
+00188D A3                INC     DPTR
+00188E 744D              MOV     A,#HIGH ksSelMapCheck
 001890 F0                MOVX    @DPTR,A
 001891 A3                INC     DPTR
-001892 744D              MOV     A,#HIGH ksSelMapCheck
+001892 74A8              MOV     A,#LOW ksSelMapCheck
 001894 F0                MOVX    @DPTR,A
 001895 A3                INC     DPTR
-001896 74A8              MOV     A,#LOW ksSelMapCheck
+001896 7414              MOV     A,#014H
 001898 F0                MOVX    @DPTR,A
-001899 A3                INC     DPTR
-00189A 7414              MOV     A,#014H
-00189C F0                MOVX    @DPTR,A
-00189D 7B01              MOV     R3,#01H
-00189F 7A4D              MOV     R2,#HIGH ksSelMapCurr
-0018A1 79BC              MOV     R1,#LOW ksSelMapCurr
-0018A3 71B8              ACALL   _compare_str
-0018A5 EF                MOV     A,R7
-0018A6 6016              JZ      ?C0059?KEYSCAN
-0018A8 7B01              MOV     R3,#01H
-0018AA 7A4D              MOV     R2,#HIGH ksSelMapCurr
-0018AC 79BC              MOV     R1,#LOW ksSelMapCurr
-0018AE 7D14              MOV     R5,#014H
-0018B0 7188              ACALL   _array_is_empty
-0018B2 EF                MOV     A,R7
-0018B3 7009              JNZ     ?C0059?KEYSCAN
-  321: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
-  322: 	{
-  323: 		g_variable.button_flag |= 0x02;
-0018B5 904CCE            MOV     DPTR,#g_variable+0FH
-0018B8 E0                MOVX    A,@DPTR
-0018B9 4402              ORL     A,#02H
-0018BB F0                MOVX    @DPTR,A
-  324: 	}
-0018BC 800C              SJMP    ?C0060?KEYSCAN
-0018BE         ?C0059?KEYSCAN:
-  325: 	else
-  326: 	{	
-  327: 		g_variable.button_flag &= 0xFD;
-0018BE 904CCE            MOV     DPTR,#g_variable+0FH
-0018C1 E0                MOVX    A,@DPTR
-0018C2 54FD              ANL     A,#0FDH
-0018C4 F0                MOVX    @DPTR,A
-  328: 		g_variable.button_timer[1] = 0;
-0018C5 E4                CLR     A
-0018C6 904CD0            MOV     DPTR,#g_variable+011H
-0018C9 F0                MOVX    @DPTR,A
-  329: 	}
-0018CA         ?C0060?KEYSCAN:
-  330: 
-  331: 	for (i=0; col[i]!=0; i++) {
-0018CA E4                CLR     A
+001899 7B01              MOV     R3,#01H
+00189B 7A4D              MOV     R2,#HIGH ksSelMapCurr
+00189D 79BC              MOV     R1,#LOW ksSelMapCurr
+00189F 7109              ACALL   _compare_str
+0018A1 EF                MOV     A,R7
+0018A2 6016              JZ      ?C0059?KEYSCAN
+0018A4 7B01              MOV     R3,#01H
+0018A6 7A4D              MOV     R2,#HIGH ksSelMapCurr
+0018A8 79BC              MOV     R1,#LOW ksSelMapCurr
+0018AA 7D14              MOV     R5,#014H
+0018AC 51D9              ACALL   _array_is_empty
+0018AE EF                MOV     A,R7
+0018AF 7009              JNZ     ?C0059?KEYSCAN
+  318: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+  319: 	{
+  320: 		g_variable.button_flag |= 0x02;
+0018B1 904CCE            MOV     DPTR,#g_variable+0FH
+0018B4 E0                MOVX    A,@DPTR
+0018B5 4402              ORL     A,#02H
+0018B7 F0                MOVX    @DPTR,A
+  321: 	}
+0018B8 800C              SJMP    ?C0060?KEYSCAN
+0018BA         ?C0059?KEYSCAN:
+  322: 	else
+  323: 	{	
+  324: 		g_variable.button_flag &= 0xFD;
+0018BA 904CCE            MOV     DPTR,#g_variable+0FH
+0018BD E0                MOVX    A,@DPTR
+0018BE 54FD              ANL     A,#0FDH
+0018C0 F0                MOVX    @DPTR,A
+  325: 		g_variable.button_timer[1] = 0;
+0018C1 E4                CLR     A
+0018C2 904CD0            MOV     DPTR,#g_variable+011H
+0018C5 F0                MOVX    @DPTR,A
+  326: 	}
+0018C6         ?C0060?KEYSCAN:
+  327: 
+  328: 	for (i=0; col[i]!=0; i++) 
+0018C6 E4                CLR     A
+0018C7 904E23            MOV     DPTR,#i
+0018CA F0                MOVX    @DPTR,A
+0018CB         ?C0061?KEYSCAN:
 0018CB 904E23            MOV     DPTR,#i
-0018CE F0                MOVX    @DPTR,A
-0018CF         ?C0061?KEYSCAN:
-0018CF 904E23            MOV     DPTR,#i
-0018D2 E0                MOVX    A,@DPTR
-0018D3 FF                MOV     R7,A
-0018D4 90060C            MOV     DPTR,#col
-0018D7 93                MOVC    A,@A+DPTR
-0018D8 602F              JZ      ?C0062?KEYSCAN
-  332: 		temp = ksSelMapCurr[i];
-0018DA 74BC              MOV     A,#LOW ksSelMapCurr
-0018DC 2F                ADD     A,R7
-0018DD F582              MOV     DPL,A
-0018DF E4                CLR     A
-0018E0 344D              ADDC    A,#HIGH ksSelMapCurr
-0018E2 F583              MOV     DPH,A
-0018E4 E0                MOVX    A,@DPTR
-0018E5 904E25            MOV     DPTR,#temp
-0018E8 F0                MOVX    @DPTR,A
-  333: 		if (temp!=0) {
-0018E9 E0                MOVX    A,@DPTR
-0018EA FD                MOV     R5,A
-0018EB 6014              JZ      ?C0063?KEYSCAN
-  334: 			colCounttemp++;
-0018ED 904E29            MOV     DPTR,#colCounttemp
-0018F0 E0                MOVX    A,@DPTR
-0018F1 04                INC     A
-0018F2 F0                MOVX    @DPTR,A
-  335: 			rawSel = temp|rawSel;
-0018F3 A3                INC     DPTR
-0018F4 E0                MOVX    A,@DPTR
-0018F5 FE                MOV     R6,A
-0018F6 ED                MOV     A,R5
-0018F7 4E                ORL     A,R6
-0018F8 F0                MOVX    @DPTR,A
-  336: 			keyCounttemp += bit_count(temp);
-0018F9 AF05              MOV     R7,AR5
-0018FB 5164              ACALL   _bit_count
-0018FD A3                INC     DPTR
-0018FE E0                MOVX    A,@DPTR
-0018FF 2F                ADD     A,R7
-001900 F0                MOVX    @DPTR,A
-  337: 		}
-  338: 	}
-001901         ?C0063?KEYSCAN:
-001901 904E23            MOV     DPTR,#i
-001904 E0                MOVX    A,@DPTR
-001905 04                INC     A
-001906 F0                MOVX    @DPTR,A
-001907 80C6              SJMP    ?C0061?KEYSCAN
-001909         ?C0062?KEYSCAN:
-  339: 	keyCount = keyCounttemp;
-001909 904E2B            MOV     DPTR,#keyCounttemp
-00190C E0                MOVX    A,@DPTR
-00190D 904DDD            MOV     DPTR,#keyCount
-001910 F0                MOVX    @DPTR,A
-  340: 	colCount = colCounttemp;
-001911 904E29            MOV     DPTR,#colCounttemp
-001914 E0                MOVX    A,@DPTR
-001915 904E2F            MOV     DPTR,#colCount
-001918 F0                MOVX    @DPTR,A
-  341: 	rawCount = bit_count(rawSel);
-001919 904E2A            MOV     DPTR,#rawSel
-00191C E0                MOVX    A,@DPTR
-00191D FF                MOV     R7,A
-00191E 5164              ACALL   _bit_count
-001920 904E2E            MOV     DPTR,#rawCount
-001923 EF                MOV     A,R7
-001924 F0                MOVX    @DPTR,A
-  342: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
-001925 904DDD            MOV     DPTR,#keyCount
-001928 E0                MOVX    A,@DPTR
-001929 D3                SETB    C
-00192A 9402              SUBB    A,#02H
-00192C 4020              JC      ?C0065?KEYSCAN
-00192E 904E2E            MOV     DPTR,#rawCount
-001931 E0                MOVX    A,@DPTR
-001932 FF                MOV     R7,A
-001933 A3                INC     DPTR
+0018CE E0                MOVX    A,@DPTR
+0018CF FF                MOV     R7,A
+0018D0 90060C            MOV     DPTR,#col
+0018D3 93                MOVC    A,@A+DPTR
+0018D4 7002              JNZ     $ + 4H
+0018D6 2198              AJMP    ?C0062?KEYSCAN
+  329: 	{
+  330: 		temp = ksSelMapCurr[i];
+0018D8 74BC              MOV     A,#LOW ksSelMapCurr
+0018DA 2F                ADD     A,R7
+0018DB F582              MOV     DPL,A
+0018DD E4                CLR     A
+0018DE 344D              ADDC    A,#HIGH ksSelMapCurr
+0018E0 F583              MOV     DPH,A
+0018E2 E0                MOVX    A,@DPTR
+0018E3 904E26            MOV     DPTR,#temp
+0018E6 F0                MOVX    @DPTR,A
+  331: 		rawCount = bit_count(temp);
+0018E7 E0                MOVX    A,@DPTR
+0018E8 FF                MOV     R7,A
+0018E9 51B3              ACALL   _bit_count
+0018EB 904E2D            MOV     DPTR,#rawCount
+0018EE EF                MOV     A,R7
+0018EF F0                MOVX    @DPTR,A
+  332: 		if(rawCount >= 2)		// col[i] has more than two key press
+0018F0 C3                CLR     C
+0018F1 9402              SUBB    A,#02H
+0018F3 5002              JNC     $ + 4H
+0018F5 2181              AJMP    ?C0064?KEYSCAN
+  333: 		{
+  334: 			for(j=0 ; j<8 ;j++)
+0018F7 E4                CLR     A
+0018F8 904E24            MOV     DPTR,#j
+0018FB F0                MOVX    @DPTR,A
+0018FC         ?C0065?KEYSCAN:
+0018FC 904E24            MOV     DPTR,#j
+0018FF E0                MOVX    A,@DPTR
+001900 FF                MOV     R7,A
+001901 C3                CLR     C
+001902 9408              SUBB    A,#08H
+001904 507B              JNC     ?C0064?KEYSCAN
+  335: 			{
+  336: 				if(temp & (1<<j))	// Ci_Rj press
+001906 7401              MOV     A,#01H
+001908 7E00              MOV     R6,#00H
+00190A A807              MOV     R0,AR7
+00190C 08                INC     R0
+00190D 8005              SJMP    ?C0103?KEYSCAN
+00190F         ?C0102?KEYSCAN:
+00190F C3                CLR     C
+001910 33                RLC     A
+001911 CE                XCH     A,R6
+001912 33                RLC     A
+001913 CE                XCH     A,R6
+001914         ?C0103?KEYSCAN:
+001914 D8F9              DJNZ    R0,?C0102?KEYSCAN
+001916 FF                MOV     R7,A
+001917 904E26            MOV     DPTR,#temp
+00191A E0                MOVX    A,@DPTR
+00191B FD                MOV     R5,A
+00191C E4                CLR     A
+00191D EF                MOV     A,R7
+00191E 5D                ANL     A,R5
+00191F 6058              JZ      ?C0067?KEYSCAN
+  337: 				{
+  338: 					for(k=0 ; col[k]!=0; k++)
+001921 E4                CLR     A
+001922 904E25            MOV     DPTR,#k
+001925 F0                MOVX    @DPTR,A
+001926         ?C0069?KEYSCAN:
+001926 904E25            MOV     DPTR,#k
+001929 E0                MOVX    A,@DPTR
+00192A FF                MOV     R7,A
+00192B 90060C            MOV     DPTR,#col
+00192E 93                MOVC    A,@A+DPTR
+00192F 6048              JZ      ?C0067?KEYSCAN
+  339: 					{
+  340: 						if(k!= i)
+001931 904E23            MOV     DPTR,#i
 001934 E0                MOVX    A,@DPTR
 001935 FE                MOV     R6,A
-001936 D3                SETB    C
-001937 9F                SUBB    A,R7
-001938 4004              JC      ?C0066?KEYSCAN
-00193A AF06              MOV     R7,AR6
-00193C 8000              SJMP    ?C0067?KEYSCAN
-00193E         ?C0066?KEYSCAN:
-00193E         ?C0067?KEYSCAN:
-00193E 904DDD            MOV     DPTR,#keyCount
-001941 E0                MOVX    A,@DPTR
-001942 D3                SETB    C
-001943 9F                SUBB    A,R7
-001944 4008              JC      ?C0065?KEYSCAN
-  343: 		ghost = 1;
-001946 904E2D            MOV     DPTR,#ghost
-001949 7401              MOV     A,#01H
-00194B F0                MOVX    @DPTR,A
-  344: 	}
-00194C 8005              SJMP    ?C0068?KEYSCAN
-00194E         ?C0065?KEYSCAN:
-  345: 	else {
-  346: 		ghost = 0;
-00194E E4                CLR     A
-00194F 904E2D            MOV     DPTR,#ghost
-001952 F0                MOVX    @DPTR,A
-  347: 	}
-001953         ?C0068?KEYSCAN:
-  348: 	
-  349: 	for (i=0; col[i]!=0; i++)
-001953 E4                CLR     A
-001954 904E23            MOV     DPTR,#i
-001957 F0                MOVX    @DPTR,A
-001958         ?C0069?KEYSCAN:
-001958 904E23            MOV     DPTR,#i
-00195B E0                MOVX    A,@DPTR
-00195C FF                MOV     R7,A
-00195D 90060C            MOV     DPTR,#col
-001960 93                MOVC    A,@A+DPTR
-001961 7002              JNZ     $ + 4H
-001963 4138              AJMP    ?C0070?KEYSCAN
-  350: 	{
-  351: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
-001965 7493              MOV     A,#LOW ksSelMapOld
-001967 2F                ADD     A,R7
-001968 F582              MOV     DPL,A
-00196A E4                CLR     A
-00196B 344D              ADDC    A,#HIGH ksSelMapOld
-00196D F583              MOV     DPH,A
-00196F E0                MOVX    A,@DPTR
-001970 FE                MOV     R6,A
-001971 74BC              MOV     A,#LOW ksSelMapCurr
-001973 2F                ADD     A,R7
-001974 F582              MOV     DPL,A
-001976 E4                CLR     A
-001977 344D              ADDC    A,#HIGH ksSelMapCurr
-001979 F583              MOV     DPH,A
-00197B E0                MOVX    A,@DPTR
-00197C 6E                XRL     A,R6
-00197D 904E25            MOV     DPTR,#temp
-001980 F0                MOVX    @DPTR,A
-  352: 		state = ksSelMapCurr[i];
-001981 904E23            MOV     DPTR,#i
+001936 EF                MOV     A,R7
+001937 6E                XRL     A,R6
+001938 6037              JZ      ?C0071?KEYSCAN
+  341: 						{
+  342: 							if(ksSelMapCurr[k] & (1<<j))	// R line has another key press
+00193A 904E25            MOV     DPTR,#k
+00193D E0                MOVX    A,@DPTR
+00193E 24BC              ADD     A,#LOW ksSelMapCurr
+001940 F582              MOV     DPL,A
+001942 E4                CLR     A
+001943 344D              ADDC    A,#HIGH ksSelMapCurr
+001945 F583              MOV     DPH,A
+001947 E0                MOVX    A,@DPTR
+001948 FD                MOV     R5,A
+001949 7C00              MOV     R4,#00H
+00194B 904E24            MOV     DPTR,#j
+00194E E0                MOVX    A,@DPTR
+00194F FF                MOV     R7,A
+001950 7401              MOV     A,#01H
+001952 7E00              MOV     R6,#00H
+001954 A807              MOV     R0,AR7
+001956 08                INC     R0
+001957 8005              SJMP    ?C0105?KEYSCAN
+001959         ?C0104?KEYSCAN:
+001959 C3                CLR     C
+00195A 33                RLC     A
+00195B CE                XCH     A,R6
+00195C 33                RLC     A
+00195D CE                XCH     A,R6
+00195E         ?C0105?KEYSCAN:
+00195E D8F9              DJNZ    R0,?C0104?KEYSCAN
+001960 FF                MOV     R7,A
+001961 EE                MOV     A,R6
+001962 5C                ANL     A,R4
+001963 FE                MOV     R6,A
+001964 EF                MOV     A,R7
+001965 5D                ANL     A,R5
+001966 4E                ORL     A,R6
+001967 6008              JZ      ?C0071?KEYSCAN
+  343: 							{
+  344: 								ghost = 1;
+001969 904E2C            MOV     DPTR,#ghost
+00196C 7401              MOV     A,#01H
+00196E F0                MOVX    @DPTR,A
+  345: 								break;
+00196F 8008              SJMP    ?C0067?KEYSCAN
+  346: 							}	
+  347: 						}
+  348: 					}
+001971         ?C0071?KEYSCAN:
+001971 904E25            MOV     DPTR,#k
+001974 E0                MOVX    A,@DPTR
+001975 04                INC     A
+001976 F0                MOVX    @DPTR,A
+001977 80AD              SJMP    ?C0069?KEYSCAN
+  349: 				}
+  350: 			}
+001979         ?C0067?KEYSCAN:
+001979 904E24            MOV     DPTR,#j
+00197C E0                MOVX    A,@DPTR
+00197D 04                INC     A
+00197E F0                MOVX    @DPTR,A
+00197F 01FC              AJMP    ?C0065?KEYSCAN
+  351: 		}
+001981         ?C0064?KEYSCAN:
+  352: 		
+  353: 		if (temp!=0)
+001981 904E26            MOV     DPTR,#temp
 001984 E0                MOVX    A,@DPTR
 001985 FF                MOV     R7,A
-001986 24BC              ADD     A,#LOW ksSelMapCurr
-001988 F582              MOV     DPL,A
-00198A E4                CLR     A
-00198B 344D              ADDC    A,#HIGH ksSelMapCurr
-00198D F583              MOV     DPH,A
-00198F E0                MOVX    A,@DPTR
-001990 904E28            MOV     DPTR,#state
-001993 F0                MOVX    @DPTR,A
-  353: 		if (temp == 0) 
-001994 904E25            MOV     DPTR,#temp
-001997 E0                MOVX    A,@DPTR
-001998 7004              JNZ     ?C0072?KEYSCAN
+001986 6008              JZ      ?C0063?KEYSCAN
   354: 		{
-  355: 			continue;
-00199A 4130              AJMP    ?C0071?KEYSCAN
+  355: 			keyCounttemp += bit_count(temp);
+001988 51B3              ACALL   _bit_count
+00198A 904E2A            MOV     DPTR,#keyCounttemp
+00198D E0                MOVX    A,@DPTR
+00198E 2F                ADD     A,R7
+00198F F0                MOVX    @DPTR,A
   356: 		}
-00199C 4130              AJMP    ?C0071?KEYSCAN
-00199E         ?C0072?KEYSCAN:
-  357: 		else 
-  358: 		{
-  359: 
-  360: 			if (ghost) 
-00199E 904E2D            MOV     DPTR,#ghost
-0019A1 E0                MOVX    A,@DPTR
-0019A2 6007              JZ      ?C0074?KEYSCAN
-  361: 				return NULL;
-0019A4 7B00              MOV     R3,#00H
-0019A6 7A00              MOV     R2,#00H
-0019A8 7900              MOV     R1,#00H
-0019AA 22                RET     
-0019AB         ?C0074?KEYSCAN:
-  362: 			ksSelMapOld[i] = ksSelMapCurr[i];
-0019AB 74BC              MOV     A,#LOW ksSelMapCurr
-0019AD 2F                ADD     A,R7
-0019AE F582              MOV     DPL,A
-0019B0 E4                CLR     A
-0019B1 344D              ADDC    A,#HIGH ksSelMapCurr
-0019B3 F583              MOV     DPH,A
-0019B5 E0                MOVX    A,@DPTR
-0019B6 FE                MOV     R6,A
-0019B7 7493              MOV     A,#LOW ksSelMapOld
-0019B9 2F                ADD     A,R7
-0019BA F582              MOV     DPL,A
-0019BC E4                CLR     A
-0019BD 344D              ADDC    A,#HIGH ksSelMapOld
-0019BF F583              MOV     DPH,A
-0019C1 EE                MOV     A,R6
-0019C2 F0                MOVX    @DPTR,A
-  363: 			for (j = 0 ; j<8 ; j++) 
+  357: 	}
+001990         ?C0063?KEYSCAN:
+001990 904E23            MOV     DPTR,#i
+001993 E0                MOVX    A,@DPTR
+001994 04                INC     A
+001995 F0                MOVX    @DPTR,A
+001996 01CB              AJMP    ?C0061?KEYSCAN
+001998         ?C0062?KEYSCAN:
+  358: 	keyCount = keyCounttemp;
+001998 904E2A            MOV     DPTR,#keyCounttemp
+00199B E0                MOVX    A,@DPTR
+00199C 904DDD            MOV     DPTR,#keyCount
+00199F F0                MOVX    @DPTR,A
+  359: 	
+  360: 	
+  361: 	for (i=0; col[i]!=0; i++)
+0019A0 E4                CLR     A
+0019A1 904E23            MOV     DPTR,#i
+0019A4 F0                MOVX    @DPTR,A
+0019A5         ?C0075?KEYSCAN:
+0019A5 904E23            MOV     DPTR,#i
+0019A8 E0                MOVX    A,@DPTR
+0019A9 FF                MOV     R7,A
+0019AA 90060C            MOV     DPTR,#col
+0019AD 93                MOVC    A,@A+DPTR
+0019AE 7002              JNZ     $ + 4H
+0019B0 4187              AJMP    ?C0076?KEYSCAN
+  362: 	{
+  363: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+0019B2 7493              MOV     A,#LOW ksSelMapOld
+0019B4 2F                ADD     A,R7
+0019B5 F582              MOV     DPL,A
+0019B7 E4                CLR     A
+0019B8 344D              ADDC    A,#HIGH ksSelMapOld
+0019BA F583              MOV     DPH,A
+0019BC E0                MOVX    A,@DPTR
+0019BD FE                MOV     R6,A
+0019BE 74BC              MOV     A,#LOW ksSelMapCurr
+0019C0 2F                ADD     A,R7
+0019C1 F582              MOV     DPL,A
 0019C3 E4                CLR     A
-0019C4 904E24            MOV     DPTR,#j
-0019C7 F0                MOVX    @DPTR,A
-0019C8         ?C0076?KEYSCAN:
-0019C8 904E24            MOV     DPTR,#j
-0019CB E0                MOVX    A,@DPTR
-0019CC FF                MOV     R7,A
-0019CD C3                CLR     C
-0019CE 9408              SUBB    A,#08H
-0019D0 5058              JNC     ?C0077?KEYSCAN
-  364: 			{
-  365: 				if (temp&1)
-0019D2 A3                INC     DPTR
-0019D3 E0                MOVX    A,@DPTR
-0019D4 30E03B            JNB     ACC.0,?C0079?KEYSCAN
-  366: 				{
-  367: 					offset = i<<3 |j;
-0019D7 904E23            MOV     DPTR,#i
-0019DA E0                MOVX    A,@DPTR
-0019DB FE                MOV     R6,A
-0019DC 33                RLC     A
-0019DD 33                RLC     A
-0019DE 33                RLC     A
-0019DF 54F8              ANL     A,#0F8H
-0019E1 FE                MOV     R6,A
-0019E2 EF                MOV     A,R7
-0019E3 4E                ORL     A,R6
-0019E4 904E27            MOV     DPTR,#offset
-0019E7 F0                MOVX    @DPTR,A
-  368: 					key_value_temp = key_fn_function(state,ksMap[offset]);
-0019E8 A3                INC     DPTR
-0019E9 E0                MOVX    A,@DPTR
-0019EA FF                MOV     R7,A
-0019EB 904E27            MOV     DPTR,#offset
+0019C4 344D              ADDC    A,#HIGH ksSelMapCurr
+0019C6 F583              MOV     DPH,A
+0019C8 E0                MOVX    A,@DPTR
+0019C9 6E                XRL     A,R6
+0019CA 904E26            MOV     DPTR,#temp
+0019CD F0                MOVX    @DPTR,A
+  364: 		state = ksSelMapCurr[i];
+0019CE 904E23            MOV     DPTR,#i
+0019D1 E0                MOVX    A,@DPTR
+0019D2 FF                MOV     R7,A
+0019D3 24BC              ADD     A,#LOW ksSelMapCurr
+0019D5 F582              MOV     DPL,A
+0019D7 E4                CLR     A
+0019D8 344D              ADDC    A,#HIGH ksSelMapCurr
+0019DA F583              MOV     DPH,A
+0019DC E0                MOVX    A,@DPTR
+0019DD 904E29            MOV     DPTR,#state
+0019E0 F0                MOVX    @DPTR,A
+  365: 		if (temp == 0) 
+0019E1 904E26            MOV     DPTR,#temp
+0019E4 E0                MOVX    A,@DPTR
+0019E5 7004              JNZ     ?C0078?KEYSCAN
+  366: 		{
+  367: 			continue;
+0019E7 417F              AJMP    ?C0077?KEYSCAN
+  368: 		}
+0019E9 417F              AJMP    ?C0077?KEYSCAN
+0019EB         ?C0078?KEYSCAN:
+  369: 		else 
+  370: 		{
+  371: 
+  372: 			if (ghost) 
+0019EB 904E2C            MOV     DPTR,#ghost
 0019EE E0                MOVX    A,@DPTR
-0019EF 900621            MOV     DPTR,#ksMap
-0019F2 93                MOVC    A,@A+DPTR
-0019F3 FD                MOV     R5,A
-0019F4 5172              ACALL   _key_fn_function
-0019F6 904E2C            MOV     DPTR,#key_value_temp
-0019F9 EF                MOV     A,R7
-0019FA F0                MOVX    @DPTR,A
-  369: 					if (state & 1)
-0019FB 904E28            MOV     DPTR,#state
-0019FE E0                MOVX    A,@DPTR
-0019FF 30E009            JNB     ACC.0,?C0080?KEYSCAN
-  370: 					{
-  371: 						keyIn(key_value_temp);
-001A02 904E2C            MOV     DPTR,#key_value_temp
-001A05 E0                MOVX    A,@DPTR
-001A06 FF                MOV     R7,A
-001A07 9102              ACALL   _keyIn
-  372: 					}
-001A09 8007              SJMP    ?C0079?KEYSCAN
-001A0B         ?C0080?KEYSCAN:
-  373: 					else
-  374: 					{
-  375: 						keyOut(key_value_temp);
-001A0B 904E2C            MOV     DPTR,#key_value_temp
-001A0E E0                MOVX    A,@DPTR
-001A0F FF                MOV     R7,A
-001A10 9158              ACALL   _keyOut
-  376: 					}
-  377: 				}
-001A12         ?C0079?KEYSCAN:
-  378: 				temp = temp >>1;
-001A12 904E25            MOV     DPTR,#temp
-001A15 E0                MOVX    A,@DPTR
-001A16 FF                MOV     R7,A
-001A17 C3                CLR     C
-001A18 13                RRC     A
-001A19 F0                MOVX    @DPTR,A
-  379: 				state = state>>1;
-001A1A 904E28            MOV     DPTR,#state
-001A1D E0                MOVX    A,@DPTR
-001A1E FF                MOV     R7,A
-001A1F C3                CLR     C
-001A20 13                RRC     A
-001A21 F0                MOVX    @DPTR,A
-  380: 			}
-001A22 904E24            MOV     DPTR,#j
-001A25 E0                MOVX    A,@DPTR
-001A26 04                INC     A
-001A27 F0                MOVX    @DPTR,A
-001A28 809E              SJMP    ?C0076?KEYSCAN
-001A2A         ?C0077?KEYSCAN:
-  381: 			flag = 1;
-001A2A 904E26            MOV     DPTR,#flag
-001A2D 7401              MOV     A,#01H
-001A2F F0                MOVX    @DPTR,A
-  382: 		}
-  383: 	}
-001A30         ?C0071?KEYSCAN:
-001A30 904E23            MOV     DPTR,#i
-001A33 E0                MOVX    A,@DPTR
-001A34 04                INC     A
-001A35 F0                MOVX    @DPTR,A
-001A36 2158              AJMP    ?C0069?KEYSCAN
-001A38         ?C0070?KEYSCAN:
-  384: 	
-  385: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
-001A38 904DE6            MOV     DPTR,#mult_key_status
-001A3B E0                MOVX    A,@DPTR
-001A3C B4030A            CJNE    A,#03H,?C0082?KEYSCAN
-001A3F 904DD8            MOV     DPTR,#standard_key_release_flag
-001A42 E0                MOVX    A,@DPTR
-001A43 B40103            CJNE    A,#01H,?C0082?KEYSCAN
-  386: 	{
-  387: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
-001A46 7402              MOV     A,#02H
-001A48 F0                MOVX    @DPTR,A
-  388: 	}
-001A49         ?C0082?KEYSCAN:
-  389: 
-  390: 	
-  391: 	if (flag || standard_key_release_flag == 2) 
-001A49 904E26            MOV     DPTR,#flag
-001A4C E0                MOVX    A,@DPTR
-001A4D 7007              JNZ     ?C0084?KEYSCAN
-001A4F 904DD8            MOV     DPTR,#standard_key_release_flag
-001A52 E0                MOVX    A,@DPTR
-001A53 B40207            CJNE    A,#02H,?C0083?KEYSCAN
-001A56         ?C0084?KEYSCAN:
-  392: 	{
-  393: 		return &ksEvtPool;
-001A56 7B01              MOV     R3,#01H
-001A58 7A4E              MOV     R2,#HIGH ksEvtPool
-001A5A 7941              MOV     R1,#LOW ksEvtPool
-001A5C 22                RET     
-  394: 	}
-001A5D         ?C0083?KEYSCAN:
-  395: 	else
-  396: 	{
-  397: 		return NULL;
-001A5D 7B00              MOV     R3,#00H
-001A5F 7A00              MOV     R2,#00H
-001A61 7900              MOV     R1,#00H
-  398: 	}
-  399: 	
-  400: 
-  401: }
-001A63 22                RET     
+0019EF 6007              JZ      ?C0080?KEYSCAN
+  373: 				return NULL;
+0019F1 7B00              MOV     R3,#00H
+0019F3 7A00              MOV     R2,#00H
+0019F5 7900              MOV     R1,#00H
+0019F7 22                RET     
+0019F8         ?C0080?KEYSCAN:
+  374: 			ksSelMapOld[i] = ksSelMapCurr[i];
+0019F8 74BC              MOV     A,#LOW ksSelMapCurr
+0019FA 2F                ADD     A,R7
+0019FB F582              MOV     DPL,A
+0019FD E4                CLR     A
+0019FE 344D              ADDC    A,#HIGH ksSelMapCurr
+001A00 F583              MOV     DPH,A
+001A02 E0                MOVX    A,@DPTR
+001A03 FE                MOV     R6,A
+001A04 7493              MOV     A,#LOW ksSelMapOld
+001A06 2F                ADD     A,R7
+001A07 F582              MOV     DPL,A
+001A09 E4                CLR     A
+001A0A 344D              ADDC    A,#HIGH ksSelMapOld
+001A0C F583              MOV     DPH,A
+001A0E EE                MOV     A,R6
+001A0F F0                MOVX    @DPTR,A
+  375: 			for (j = 0 ; j<8 ; j++) 
+001A10 E4                CLR     A
+001A11 904E24            MOV     DPTR,#j
+001A14 F0                MOVX    @DPTR,A
+001A15         ?C0082?KEYSCAN:
+001A15 904E24            MOV     DPTR,#j
+001A18 E0                MOVX    A,@DPTR
+001A19 FF                MOV     R7,A
+001A1A C3                CLR     C
+001A1B 9408              SUBB    A,#08H
+001A1D 505A              JNC     ?C0083?KEYSCAN
+  376: 			{
+  377: 				if (temp&1)
+001A1F 904E26            MOV     DPTR,#temp
+001A22 E0                MOVX    A,@DPTR
+001A23 30E03B            JNB     ACC.0,?C0085?KEYSCAN
+  378: 				{
+  379: 					offset = i<<3 |j;
+001A26 904E23            MOV     DPTR,#i
+001A29 E0                MOVX    A,@DPTR
+001A2A FE                MOV     R6,A
+001A2B 33                RLC     A
+001A2C 33                RLC     A
+001A2D 33                RLC     A
+001A2E 54F8              ANL     A,#0F8H
+001A30 FE                MOV     R6,A
+001A31 EF                MOV     A,R7
+001A32 4E                ORL     A,R6
+001A33 904E28            MOV     DPTR,#offset
+001A36 F0                MOVX    @DPTR,A
+  380: 					key_value_temp = key_fn_function(state,ksMap[offset]);
+001A37 A3                INC     DPTR
+001A38 E0                MOVX    A,@DPTR
+001A39 FF                MOV     R7,A
+001A3A 904E28            MOV     DPTR,#offset
+001A3D E0                MOVX    A,@DPTR
+001A3E 900621            MOV     DPTR,#ksMap
+001A41 93                MOVC    A,@A+DPTR
+001A42 FD                MOV     R5,A
+001A43 9153              ACALL   _key_fn_function
+001A45 904E2B            MOV     DPTR,#key_value_temp
+001A48 EF                MOV     A,R7
+001A49 F0                MOVX    @DPTR,A
+  381: 					if (state & 1)
+001A4A 904E29            MOV     DPTR,#state
+001A4D E0                MOVX    A,@DPTR
+001A4E 30E009            JNB     ACC.0,?C0086?KEYSCAN
+  382: 					{
+  383: 						keyIn(key_value_temp);
+001A51 904E2B            MOV     DPTR,#key_value_temp
+001A54 E0                MOVX    A,@DPTR
+001A55 FF                MOV     R7,A
+001A56 7153              ACALL   _keyIn
+  384: 					}
+001A58 8007              SJMP    ?C0085?KEYSCAN
+001A5A         ?C0086?KEYSCAN:
+  385: 					else
+  386: 					{
+  387: 						keyOut(key_value_temp);
+001A5A 904E2B            MOV     DPTR,#key_value_temp
+001A5D E0                MOVX    A,@DPTR
+001A5E FF                MOV     R7,A
+001A5F 71A9              ACALL   _keyOut
+  388: 					}
+  389: 				}
+001A61         ?C0085?KEYSCAN:
+  390: 				temp = temp >>1;
+001A61 904E26            MOV     DPTR,#temp
+001A64 E0                MOVX    A,@DPTR
+001A65 FF                MOV     R7,A
+001A66 C3                CLR     C
+001A67 13                RRC     A
+001A68 F0                MOVX    @DPTR,A
+  391: 				state = state>>1;
+001A69 904E29            MOV     DPTR,#state
+001A6C E0                MOVX    A,@DPTR
+001A6D FF                MOV     R7,A
+001A6E C3                CLR     C
+001A6F 13                RRC     A
+001A70 F0                MOVX    @DPTR,A
+  392: 			}
+001A71 904E24            MOV     DPTR,#j
+001A74 E0                MOVX    A,@DPTR
+001A75 04                INC     A
+001A76 F0                MOVX    @DPTR,A
+001A77 809C              SJMP    ?C0082?KEYSCAN
+001A79         ?C0083?KEYSCAN:
+  393: 			flag = 1;
+001A79 904E27            MOV     DPTR,#flag
+001A7C 7401              MOV     A,#01H
+001A7E F0                MOVX    @DPTR,A
+  394: 		}
+  395: 	}
+001A7F         ?C0077?KEYSCAN:
+001A7F 904E23            MOV     DPTR,#i
+001A82 E0                MOVX    A,@DPTR
+001A83 04                INC     A
+001A84 F0                MOVX    @DPTR,A
+001A85 21A5              AJMP    ?C0075?KEYSCAN
+001A87         ?C0076?KEYSCAN:
+  396: 	
+  397: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+001A87 904DE6            MOV     DPTR,#mult_key_status
+001A8A E0                MOVX    A,@DPTR
+001A8B B4030A            CJNE    A,#03H,?C0088?KEYSCAN
+001A8E 904DD8            MOV     DPTR,#standard_key_release_flag
+001A91 E0                MOVX    A,@DPTR
+001A92 B40103            CJNE    A,#01H,?C0088?KEYSCAN
+  398: 	{
+  399: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
+001A95 7402              MOV     A,#02H
+001A97 F0                MOVX    @DPTR,A
+  400: 	}
+001A98         ?C0088?KEYSCAN:
+  401: 
+  402: 	
+  403: 	if (flag || standard_key_release_flag == 2) 
+001A98 904E27            MOV     DPTR,#flag
+001A9B E0                MOVX    A,@DPTR
+001A9C 7007              JNZ     ?C0090?KEYSCAN
+001A9E 904DD8            MOV     DPTR,#standard_key_release_flag
+001AA1 E0                MOVX    A,@DPTR
+001AA2 B40207            CJNE    A,#02H,?C0089?KEYSCAN
+001AA5         ?C0090?KEYSCAN:
+  404: 	{
+  405: 		return &ksEvtPool;
+001AA5 7B01              MOV     R3,#01H
+001AA7 7A4E              MOV     R2,#HIGH ksEvtPool
+001AA9 793F              MOV     R1,#LOW ksEvtPool
+001AAB 22                RET     
+  406: 	}
+001AAC         ?C0089?KEYSCAN:
+  407: 	else
+  408: 	{
+  409: 		return NULL;
+001AAC 7B00              MOV     R3,#00H
+001AAE 7A00              MOV     R2,#00H
+001AB0 7900              MOV     R1,#00H
+  410: 	}
+  411: 	
+  412: 
+  413: }
+001AB2 22                RET     
 ----- FUNCTION KS_GetCurrentEvt (END) -------
 
 
@@ -4547,285 +4611,44 @@
    26: 	unsigned char c;
    27: 	for (c = 0; v; c++) {
 ;---- Variable 'c' assigned to Register 'R6' ----
-001A64 E4                CLR     A
-001A65 FE                MOV     R6,A
-001A66         ?C0001?KEYSCAN:
-001A66 EF                MOV     A,R7
-001A67 6006              JZ      ?C0002?KEYSCAN
+001AB3 E4                CLR     A
+001AB4 FE                MOV     R6,A
+001AB5         ?C0001?KEYSCAN:
+001AB5 EF                MOV     A,R7
+001AB6 6006              JZ      ?C0002?KEYSCAN
    28:     	v &= v - 1;
-001A69 14                DEC     A
-001A6A 5F                ANL     A,R7
-001A6B FF                MOV     R7,A
+001AB8 14                DEC     A
+001AB9 5F                ANL     A,R7
+001ABA FF                MOV     R7,A
    29:     }
-001A6C 0E                INC     R6
-001A6D 80F7              SJMP    ?C0001?KEYSCAN
-001A6F         ?C0002?KEYSCAN:
+001ABB 0E                INC     R6
+001ABC 80F7              SJMP    ?C0001?KEYSCAN
+001ABE         ?C0002?KEYSCAN:
    30:     return c;
-001A6F AF06              MOV     R7,AR6
+001ABE AF06              MOV     R7,AR6
    31: }
-001A71 22                RET     
+001AC0 22                RET     
 ----- FUNCTION _bit_count (END) -------
 
 
------ FUNCTION _key_fn_function (BEGIN) -----
- FILE: 'kb_process.c'
-  395: byte key_fn_function(byte state ,byte key_value)
-  396: {
-;---- Variable 'state' assigned to Register 'R6' ----
-001A72 AE07              MOV     R6,AR7
-;---- Variable 'key_value' assigned to Register 'R5' ----
-  397: 	byte temp = 0;
-  398: 
-001A74 E4                CLR     A
-001A75 904E9A            MOV     DPTR,#temp
-001A78 F0                MOVX    @DPTR,A
-  399: 	if(state & 1)
-001A79 EE                MOV     A,R6
-001A7A 30E005            JNB     ACC.0,?C0095?KB_PROCESS
-  400: 		g_variable.one_key_press_wait_release_timer = 0;
-001A7D E4                CLR     A
-001A7E 904CF8            MOV     DPTR,#g_variable+039H
-001A81 F0                MOVX    @DPTR,A
-001A82         ?C0095?KB_PROCESS:
-  401: 
-  402: 	temp = key_value;
-001A82 904E9A            MOV     DPTR,#temp
-001A85 ED                MOV     A,R5
-001A86 F0                MOVX    @DPTR,A
-  403: 	if(fn_flag == 1)			// Fn lock
-001A87 904DDB            MOV     DPTR,#fn_flag
-001A8A E0                MOVX    A,@DPTR
-001A8B 6401              XRL     A,#01H
-001A8D 6002              JZ      $ + 4H
-001A8F 6145              AJMP    ?C0096?KB_PROCESS
-  404: 	{
-  405: 		
-  406: 		switch (key_value)
-001A91 ED                MOV     A,R5
-001A92 24D7              ADD     A,#0D7H
-001A94 603B              JZ      ?C0098?KB_PROCESS
-001A96 24EF              ADD     A,#0EFH
-001A98 B40C00            CJNE    A,#0CH,?C0159?KB_PROCESS
-001A9B         ?C0159?KB_PROCESS:
-001A9B 4002              JC      $ + 4H
-001A9D 6145              AJMP    ?C0096?KB_PROCESS
-001A9F 901AAD            MOV     DPTR,#01AADH
-001AA2 75F003            MOV     B,#03H
-001AA5 A4                MUL     AB
-001AA6 C583              XCH     A,DPH
-001AA8 25F0              ADD     A,B
-001AAA C583              XCH     A,DPH
-001AAC 73                JMP     @A+DPTR
-001AAD         ?C0160?KB_PROCESS:
-001AAD 021AD9            LJMP    ?C0099?KB_PROCESS
-001AB0 021AE1            LJMP    ?C0100?KB_PROCESS
-001AB3 021AE9            LJMP    ?C0101?KB_PROCESS
-001AB6 021AF1            LJMP    ?C0102?KB_PROCESS
-001AB9 021AF9            LJMP    ?C0103?KB_PROCESS
-001ABC 021B01            LJMP    ?C0104?KB_PROCESS
-001ABF 021B09            LJMP    ?C0105?KB_PROCESS
-001AC2 021B11            LJMP    ?C0106?KB_PROCESS
-001AC5 021B19            LJMP    ?C0107?KB_PROCESS
-001AC8 021B28            LJMP    ?C0108?KB_PROCESS
-001ACB 021B37            LJMP    ?C0109?KB_PROCESS
-001ACE 021B3F            LJMP    ?C0110?KB_PROCESS
-  407: 		{ 
-  408: 			case HID_KEY_ESC:
-001AD1         ?C0098?KB_PROCESS:
-  409: 				temp = HID_MULTIKEY_MEDIA;
-001AD1 904E9A            MOV     DPTR,#temp
-001AD4 74F1              MOV     A,#0F1H
-001AD6 F0                MOVX    @DPTR,A
-  410: 				break;
-001AD7 806C              SJMP    ?C0096?KB_PROCESS
-  411: 			case HID_KEY_F1:
-001AD9         ?C0099?KB_PROCESS:
-  412: 				temp = HID_MULTIKEY_PALY;
-001AD9 904E9A            MOV     DPTR,#temp
-001ADC 74F2              MOV     A,#0F2H
-001ADE F0                MOVX    @DPTR,A
-  413: 				break;
-001ADF 8064              SJMP    ?C0096?KB_PROCESS
-  414: 			case HID_KEY_F2:
-001AE1         ?C0100?KB_PROCESS:
-  415: 				temp = HID_MULTIKEY_PRE_TRACK;
-001AE1 904E9A            MOV     DPTR,#temp
-001AE4 74F4              MOV     A,#0F4H
-001AE6 F0                MOVX    @DPTR,A
-  416: 				break;
-001AE7 805C              SJMP    ?C0096?KB_PROCESS
-  417: 			case HID_KEY_F3:
-001AE9         ?C0101?KB_PROCESS:
-  418: 				temp = HID_MULTIKEY_NEXT_TRACK;
-001AE9 904E9A            MOV     DPTR,#temp
-001AEC 74F5              MOV     A,#0F5H
-001AEE F0                MOVX    @DPTR,A
-  419: 				break;
-001AEF 8054              SJMP    ?C0096?KB_PROCESS
-  420: 			case HID_KEY_F4:
-001AF1         ?C0102?KB_PROCESS:
-  421: 				temp = HID_MULTIKEY_VOL_DOWN;
-001AF1 904E9A            MOV     DPTR,#temp
-001AF4 74F6              MOV     A,#0F6H
-001AF6 F0                MOVX    @DPTR,A
-  422: 				break;
-001AF7 804C              SJMP    ?C0096?KB_PROCESS
-  423: 			case HID_KEY_F5:
-001AF9         ?C0103?KB_PROCESS:
-  424: 				temp = HID_MULTIKEY_VOL_UP;
-001AF9 904E9A            MOV     DPTR,#temp
-001AFC 74F7              MOV     A,#0F7H
-001AFE F0                MOVX    @DPTR,A
-  425: 				break;
-001AFF 8044              SJMP    ?C0096?KB_PROCESS
-  426: 			case HID_KEY_F6:
-001B01         ?C0104?KB_PROCESS:
-  427: 				temp = HID_MULTIKEY_MUTE;
-001B01 904E9A            MOV     DPTR,#temp
-001B04 74F8              MOV     A,#0F8H
-001B06 F0                MOVX    @DPTR,A
-  428: 				break;
-001B07 803C              SJMP    ?C0096?KB_PROCESS
-  429: 			case HID_KEY_F7:
-001B09         ?C0105?KB_PROCESS:
-  430: 				temp = HID_MULTIKEY_AC_HOME;
-001B09 904E9A            MOV     DPTR,#temp
-001B0C 74D6              MOV     A,#0D6H
-001B0E F0                MOVX    @DPTR,A
-  431: 				break;
-001B0F 8034              SJMP    ?C0096?KB_PROCESS
-  432: 			case HID_KEY_F8:
-001B11         ?C0106?KB_PROCESS:
-  433: 				temp = HID_MULTIKEY_AC_SEARCH;
-001B11 904E9A            MOV     DPTR,#temp
-001B14 74D5              MOV     A,#0D5H
-001B16 F0                MOVX    @DPTR,A
-  434: 				break;
-001B17 802C              SJMP    ?C0096?KB_PROCESS
-  435: 			case HID_KEY_F9:
-001B19         ?C0107?KB_PROCESS:
-  436: 				kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_I);
-001B19 AF06              MOV     R7,AR6
-001B1B 7B0C              MOV     R3,#0CH
-001B1D 7D08              MOV     R5,#08H
-001B1F 714B              ACALL   _kb_combination_key_press
-  437: 				temp = HID_KEY_NULL;
-001B21 E4                CLR     A
-001B22 904E9A            MOV     DPTR,#temp
-001B25 F0                MOVX    @DPTR,A
-  438: 				break;
-001B26 801D              SJMP    ?C0096?KB_PROCESS
-  439: 			case HID_KEY_F10:
-001B28         ?C0108?KB_PROCESS:
-  440: 				kb_combination_key_press(state,KS_SEL_LGUI,HID_KEY_L);
-001B28 AF06              MOV     R7,AR6
-001B2A 7B0F              MOV     R3,#0FH
-001B2C 7D08              MOV     R5,#08H
-001B2E 714B              ACALL   _kb_combination_key_press
-  441: 				temp = HID_KEY_NULL;
-001B30 E4                CLR     A
-001B31 904E9A            MOV     DPTR,#temp
-001B34 F0                MOVX    @DPTR,A
-  442: 				break;
-001B35 800E              SJMP    ?C0096?KB_PROCESS
-  443: 			case HID_KEY_F11:
-001B37         ?C0109?KB_PROCESS:
-  444: 				temp = HID_MULTIKEY_CALCULATOR;
-001B37 904E9A            MOV     DPTR,#temp
-001B3A 74FB              MOV     A,#0FBH
-001B3C F0                MOVX    @DPTR,A
-  445: 				break;
-001B3D 8006              SJMP    ?C0096?KB_PROCESS
-  446: 			case HID_KEY_F12:
-001B3F         ?C0110?KB_PROCESS:
-  447: 				temp = HID_MULTIKEY_AC_FAVORITES;
-001B3F 904E9A            MOV     DPTR,#temp
-001B42 74D0              MOV     A,#0D0H
-001B44 F0                MOVX    @DPTR,A
-  448: 				break;
-  449: 			default :
-  450: 				break;
-  451: 		}
-  452: 	}
-001B45         ?C0096?KB_PROCESS:
-  453: 
-  454: 	return temp;
-001B45 904E9A            MOV     DPTR,#temp
-001B48 E0                MOVX    A,@DPTR
-001B49 FF                MOV     R7,A
-  455: }
-001B4A 22                RET     
------ FUNCTION _key_fn_function (END) -------
-
-
------ FUNCTION _kb_combination_key_press (BEGIN) -----
- FILE: 'kb_process.c'
-  373: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
-  374: {
-;---- Variable 'press_state' assigned to Register 'R7' ----
-;---- Variable 'standrad_key' assigned to Register 'R3' ----
-;---- Variable 'special_key' assigned to Register 'R5' ----
-  375: 	g_variable.key_combination_ctrl = special_key;	
-  376: 	g_variable.key_combination_keyvalue = standrad_key;
-001B4B 904CF5            MOV     DPTR,#g_variable+036H
-001B4E ED                MOV     A,R5
-001B4F F0                MOVX    @DPTR,A
-  377: 
-001B50 A3                INC     DPTR
-001B51 EB                MOV     A,R3
-001B52 F0                MOVX    @DPTR,A
-  378: 	if(press_state & 1)
-001B53 EF                MOV     A,R7
-001B54 30E012            JNB     ACC.0,?C0090?KB_PROCESS
-  379: 	{
-  380: 		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
-001B57 904CF4            MOV     DPTR,#g_variable+035H
-001B5A E0                MOVX    A,@DPTR
-001B5B B40304            CJNE    A,#03H,?C0091?KB_PROCESS
-  381: 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
-001B5E 7402              MOV     A,#02H
-001B60 F0                MOVX    @DPTR,A
-001B61 22                RET     
-001B62         ?C0091?KB_PROCESS:
-  382: 		else	
-  383: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
-001B62 904CF4            MOV     DPTR,#g_variable+035H
-001B65 7401              MOV     A,#01H
-001B67 F0                MOVX    @DPTR,A
-  384: 	}
-001B68 22                RET     
-001B69         ?C0090?KB_PROCESS:
-  385: 	else
-  386: 	{
-  387: 		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
-001B69 904CF4            MOV     DPTR,#g_variable+035H
-001B6C 7404              MOV     A,#04H
-001B6E F0                MOVX    @DPTR,A
-  388: 	}
-  389: 
-  390: }
-001B6F 22                RET     
------ FUNCTION _kb_combination_key_press (END) -------
-
-
 ----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
-001B70 904B9C            MOV     DPTR,#ipcTxWritePtr
-001B73 E0                MOVX    A,@DPTR
-001B74 FE                MOV     R6,A
-001B75 A3                INC     DPTR
-001B76 E0                MOVX    A,@DPTR
-001B77 FF                MOV     R7,A
-001B78 904B9A            MOV     DPTR,#ipcTxReadPtr
-001B7B E0                MOVX    A,@DPTR
-001B7C B50607            CJNE    A,AR6,?C0021?IPC
-001B7F A3                INC     DPTR
-001B80 E0                MOVX    A,@DPTR
-001B81 B50702            CJNE    A,AR7,?C0021?IPC
-001B84 D3                SETB    C
-001B85 22                RET     
-001B86         ?C0021?IPC:
-001B86 C3                CLR     C
-001B87 22                RET     
+001AC1 904B9C            MOV     DPTR,#ipcTxWritePtr
+001AC4 E0                MOVX    A,@DPTR
+001AC5 FE                MOV     R6,A
+001AC6 A3                INC     DPTR
+001AC7 E0                MOVX    A,@DPTR
+001AC8 FF                MOV     R7,A
+001AC9 904B9A            MOV     DPTR,#ipcTxReadPtr
+001ACC E0                MOVX    A,@DPTR
+001ACD B50607            CJNE    A,AR6,?C0021?IPC
+001AD0 A3                INC     DPTR
+001AD1 E0                MOVX    A,@DPTR
+001AD2 B50702            CJNE    A,AR7,?C0021?IPC
+001AD5 D3                SETB    C
+001AD6 22                RET     
+001AD7         ?C0021?IPC:
+001AD7 C3                CLR     C
+001AD8 22                RET     
 ----- FUNCTION IPC_IsTxBuffEmpty (END) -------
 
 
@@ -4833,112 +4656,112 @@
  FILE: 'keyscan.c'
   288: byte array_is_empty(byte * str1,byte len)
   289: {
-001B88 904E84            MOV     DPTR,#str1
-001B8B EB                MOV     A,R3
-001B8C F0                MOVX    @DPTR,A
-001B8D A3                INC     DPTR
-001B8E EA                MOV     A,R2
-001B8F F0                MOVX    @DPTR,A
-001B90 A3                INC     DPTR
-001B91 E9                MOV     A,R1
-001B92 F0                MOVX    @DPTR,A
+001AD9 904E82            MOV     DPTR,#str1
+001ADC EB                MOV     A,R3
+001ADD F0                MOVX    @DPTR,A
+001ADE A3                INC     DPTR
+001ADF EA                MOV     A,R2
+001AE0 F0                MOVX    @DPTR,A
+001AE1 A3                INC     DPTR
+001AE2 E9                MOV     A,R1
+001AE3 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R5' ----
   290: 	byte i;
   291: 	for (i=0;i < len;i++)
 ;---- Variable 'i' assigned to Register 'R7' ----
-001B93 E4                CLR     A
-001B94 FF                MOV     R7,A
-001B95         ?C0054?KEYSCAN:
-001B95 EF                MOV     A,R7
-001B96 C3                CLR     C
-001B97 9D                SUBB    A,R5
-001B98 501B              JNC     ?C0055?KEYSCAN
+001AE4 E4                CLR     A
+001AE5 FF                MOV     R7,A
+001AE6         ?C0054?KEYSCAN:
+001AE6 EF                MOV     A,R7
+001AE7 C3                CLR     C
+001AE8 9D                SUBB    A,R5
+001AE9 501B              JNC     ?C0055?KEYSCAN
   292: 	{
   293: 		if (str1[i] != 0)
-001B9A 904E84            MOV     DPTR,#str1
-001B9D E0                MOVX    A,@DPTR
-001B9E FB                MOV     R3,A
-001B9F A3                INC     DPTR
-001BA0 E0                MOVX    A,@DPTR
-001BA1 FA                MOV     R2,A
-001BA2 A3                INC     DPTR
-001BA3 E0                MOVX    A,@DPTR
-001BA4 F9                MOV     R1,A
-001BA5 8F82              MOV     DPL,R7
-001BA7 758300            MOV     DPH,#00H
-001BAA 1203CF            LCALL   ?C?CLDOPTR
-001BAD 6003              JZ      ?C0056?KEYSCAN
+001AEB 904E82            MOV     DPTR,#str1
+001AEE E0                MOVX    A,@DPTR
+001AEF FB                MOV     R3,A
+001AF0 A3                INC     DPTR
+001AF1 E0                MOVX    A,@DPTR
+001AF2 FA                MOV     R2,A
+001AF3 A3                INC     DPTR
+001AF4 E0                MOVX    A,@DPTR
+001AF5 F9                MOV     R1,A
+001AF6 8F82              MOV     DPL,R7
+001AF8 758300            MOV     DPH,#00H
+001AFB 1203CF            LCALL   ?C?CLDOPTR
+001AFE 6003              JZ      ?C0056?KEYSCAN
   294: 			return 0x00;
-001BAF 7F00              MOV     R7,#00H
-001BB1 22                RET     
+001B00 7F00              MOV     R7,#00H
+001B02 22                RET     
   295: 	}
-001BB2         ?C0056?KEYSCAN:
-001BB2 0F                INC     R7
-001BB3 80E0              SJMP    ?C0054?KEYSCAN
-001BB5         ?C0055?KEYSCAN:
+001B03         ?C0056?KEYSCAN:
+001B03 0F                INC     R7
+001B04 80E0              SJMP    ?C0054?KEYSCAN
+001B06         ?C0055?KEYSCAN:
   296: 	return 0x01;
-001BB5 7F01              MOV     R7,#01H
+001B06 7F01              MOV     R7,#01H
   297: }
-001BB7 22                RET     
+001B08 22                RET     
 ----- FUNCTION _array_is_empty (END) -------
 
 
 ----- FUNCTION _compare_str (BEGIN) -----
-001BB8 904E48            MOV     DPTR,#str1
-001BBB EB                MOV     A,R3
-001BBC F0                MOVX    @DPTR,A
-001BBD A3                INC     DPTR
-001BBE EA                MOV     A,R2
-001BBF F0                MOVX    @DPTR,A
-001BC0 A3                INC     DPTR
-001BC1 E9                MOV     A,R1
-001BC2 F0                MOVX    @DPTR,A
+001B09 904E46            MOV     DPTR,#str1
+001B0C EB                MOV     A,R3
+001B0D F0                MOVX    @DPTR,A
+001B0E A3                INC     DPTR
+001B0F EA                MOV     A,R2
+001B10 F0                MOVX    @DPTR,A
+001B11 A3                INC     DPTR
+001B12 E9                MOV     A,R1
+001B13 F0                MOVX    @DPTR,A
 ;---- Variable 'i' assigned to Register 'R7' ----
-001BC3 E4                CLR     A
-001BC4 FF                MOV     R7,A
-001BC5         ?C0021?UTILITIES:
-001BC5 904E4E            MOV     DPTR,#len
-001BC8 E0                MOVX    A,@DPTR
-001BC9 FE                MOV     R6,A
-001BCA EF                MOV     A,R7
-001BCB C3                CLR     C
-001BCC 9E                SUBB    A,R6
-001BCD 5030              JNC     ?C0022?UTILITIES
-001BCF 904E4B            MOV     DPTR,#str2
-001BD2 E0                MOVX    A,@DPTR
-001BD3 FB                MOV     R3,A
-001BD4 A3                INC     DPTR
-001BD5 E0                MOVX    A,@DPTR
-001BD6 FA                MOV     R2,A
-001BD7 A3                INC     DPTR
-001BD8 E0                MOVX    A,@DPTR
-001BD9 F9                MOV     R1,A
-001BDA 8F82              MOV     DPL,R7
-001BDC 758300            MOV     DPH,#00H
-001BDF 1203CF            LCALL   ?C?CLDOPTR
-001BE2 FE                MOV     R6,A
-001BE3 904E48            MOV     DPTR,#str1
-001BE6 E0                MOVX    A,@DPTR
-001BE7 FB                MOV     R3,A
-001BE8 A3                INC     DPTR
-001BE9 E0                MOVX    A,@DPTR
-001BEA FA                MOV     R2,A
-001BEB A3                INC     DPTR
-001BEC E0                MOVX    A,@DPTR
-001BED F9                MOV     R1,A
-001BEE 8F82              MOV     DPL,R7
-001BF0 758300            MOV     DPH,#00H
-001BF3 1203CF            LCALL   ?C?CLDOPTR
-001BF6 6E                XRL     A,R6
-001BF7 6003              JZ      ?C0023?UTILITIES
-001BF9 7F00              MOV     R7,#00H
-001BFB 22                RET     
-001BFC         ?C0023?UTILITIES:
-001BFC 0F                INC     R7
-001BFD 80C6              SJMP    ?C0021?UTILITIES
-001BFF         ?C0022?UTILITIES:
-001BFF 7F01              MOV     R7,#01H
-001C01 22                RET     
+001B14 E4                CLR     A
+001B15 FF                MOV     R7,A
+001B16         ?C0021?UTILITIES:
+001B16 904E4C            MOV     DPTR,#len
+001B19 E0                MOVX    A,@DPTR
+001B1A FE                MOV     R6,A
+001B1B EF                MOV     A,R7
+001B1C C3                CLR     C
+001B1D 9E                SUBB    A,R6
+001B1E 5030              JNC     ?C0022?UTILITIES
+001B20 904E49            MOV     DPTR,#str2
+001B23 E0                MOVX    A,@DPTR
+001B24 FB                MOV     R3,A
+001B25 A3                INC     DPTR
+001B26 E0                MOVX    A,@DPTR
+001B27 FA                MOV     R2,A
+001B28 A3                INC     DPTR
+001B29 E0                MOVX    A,@DPTR
+001B2A F9                MOV     R1,A
+001B2B 8F82              MOV     DPL,R7
+001B2D 758300            MOV     DPH,#00H
+001B30 1203CF            LCALL   ?C?CLDOPTR
+001B33 FE                MOV     R6,A
+001B34 904E46            MOV     DPTR,#str1
+001B37 E0                MOVX    A,@DPTR
+001B38 FB                MOV     R3,A
+001B39 A3                INC     DPTR
+001B3A E0                MOVX    A,@DPTR
+001B3B FA                MOV     R2,A
+001B3C A3                INC     DPTR
+001B3D E0                MOVX    A,@DPTR
+001B3E F9                MOV     R1,A
+001B3F 8F82              MOV     DPL,R7
+001B41 758300            MOV     DPH,#00H
+001B44 1203CF            LCALL   ?C?CLDOPTR
+001B47 6E                XRL     A,R6
+001B48 6003              JZ      ?C0023?UTILITIES
+001B4A 7F00              MOV     R7,#00H
+001B4C 22                RET     
+001B4D         ?C0023?UTILITIES:
+001B4D 0F                INC     R7
+001B4E 80C6              SJMP    ?C0021?UTILITIES
+001B50         ?C0022?UTILITIES:
+001B50 7F01              MOV     R7,#01H
+001B52 22                RET     
 ----- FUNCTION _compare_str (END) -------
 
 
@@ -4950,41 +4773,41 @@
    37: 	byte i = 0;
    38: 
 ;---- Variable 'i' assigned to Register 'R6' ----
-001C02 E4                CLR     A
-001C03 FE                MOV     R6,A
+001B53 E4                CLR     A
+001B54 FE                MOV     R6,A
    39: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
-001C04 EF                MOV     A,R7
-001C05 C3                CLR     C
-001C06 94E0              SUBB    A,#0E0H
-001C08 4020              JC      ?C0005?KEYSCAN
-001C0A EF                MOV     A,R7
-001C0B D3                SETB    C
-001C0C 94E7              SUBB    A,#0E7H
-001C0E 501A              JNC     ?C0005?KEYSCAN
+001B55 EF                MOV     A,R7
+001B56 C3                CLR     C
+001B57 94E0              SUBB    A,#0E0H
+001B59 4020              JC      ?C0005?KEYSCAN
+001B5B EF                MOV     A,R7
+001B5C D3                SETB    C
+001B5D 94E7              SUBB    A,#0E7H
+001B5F 501A              JNC     ?C0005?KEYSCAN
    40: 	{
    41: 		ksEvtPool.standardSel  |=  0x01 << (key & 0x07);
-001C10 904E41            MOV     DPTR,#ksEvtPool
-001C13 E0                MOVX    A,@DPTR
-001C14 FE                MOV     R6,A
-001C15 EF                MOV     A,R7
-001C16 5407              ANL     A,#07H
-001C18 FF                MOV     R7,A
-001C19 7401              MOV     A,#01H
-001C1B A807              MOV     R0,AR7
-001C1D 08                INC     R0
-001C1E 8002              SJMP    ?C0087?KEYSCAN
-001C20         ?C0086?KEYSCAN:
-001C20 C3                CLR     C
-001C21 33                RLC     A
-001C22         ?C0087?KEYSCAN:
-001C22 D8FC              DJNZ    R0,?C0086?KEYSCAN
-001C24 4E                ORL     A,R6
-001C25 904E41            MOV     DPTR,#ksEvtPool
-001C28 F0                MOVX    @DPTR,A
-001C29 22                RET     
+001B61 904E3F            MOV     DPTR,#ksEvtPool
+001B64 E0                MOVX    A,@DPTR
+001B65 FE                MOV     R6,A
+001B66 EF                MOV     A,R7
+001B67 5407              ANL     A,#07H
+001B69 FF                MOV     R7,A
+001B6A 7401              MOV     A,#01H
+001B6C A807              MOV     R0,AR7
+001B6E 08                INC     R0
+001B6F 8002              SJMP    ?C0093?KEYSCAN
+001B71         ?C0092?KEYSCAN:
+001B71 C3                CLR     C
+001B72 33                RLC     A
+001B73         ?C0093?KEYSCAN:
+001B73 D8FC              DJNZ    R0,?C0092?KEYSCAN
+001B75 4E                ORL     A,R6
+001B76 904E3F            MOV     DPTR,#ksEvtPool
+001B79 F0                MOVX    @DPTR,A
+001B7A 22                RET     
    42: 		return;
    43: 	}
-001C2A         ?C0005?KEYSCAN:
+001B7B         ?C0005?KEYSCAN:
    44: 
    45: /*
    46: 
@@ -5032,52 +4855,52 @@
    88: 	//special key
    89: 
    90: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001C2A E4                CLR     A
-001C2B FE                MOV     R6,A
-001C2C         ?C0007?KEYSCAN:
+001B7B E4                CLR     A
+001B7C FE                MOV     R6,A
+001B7D         ?C0007?KEYSCAN:
    91: 	{
    92: 		if (ksEvtPool.ksPool[i] == key)
-001C2C 7442              MOV     A,#LOW ksEvtPool+01H
-001C2E 2E                ADD     A,R6
-001C2F F582              MOV     DPL,A
-001C31 E4                CLR     A
-001C32 344E              ADDC    A,#HIGH ksEvtPool+01H
-001C34 F583              MOV     DPH,A
-001C36 E0                MOVX    A,@DPTR
-001C37 FD                MOV     R5,A
-001C38 6F                XRL     A,R7
-001C39 601C              JZ      ?C0006?KEYSCAN
+001B7D 7440              MOV     A,#LOW ksEvtPool+01H
+001B7F 2E                ADD     A,R6
+001B80 F582              MOV     DPL,A
+001B82 E4                CLR     A
+001B83 344E              ADDC    A,#HIGH ksEvtPool+01H
+001B85 F583              MOV     DPH,A
+001B87 E0                MOVX    A,@DPTR
+001B88 FD                MOV     R5,A
+001B89 6F                XRL     A,R7
+001B8A 601C              JZ      ?C0006?KEYSCAN
    93: 			break;
-001C3B         ?C0010?KEYSCAN:
+001B8C         ?C0010?KEYSCAN:
    94: 		if (ksEvtPool.ksPool[i] == 0) 
-001C3B ED                MOV     A,R5
-001C3C 7014              JNZ     ?C0009?KEYSCAN
+001B8C ED                MOV     A,R5
+001B8D 7014              JNZ     ?C0009?KEYSCAN
    95: 		{
    96: 			if(mult_key_value != key)
-001C3E 904DE5            MOV     DPTR,#mult_key_value
-001C41 E0                MOVX    A,@DPTR
-001C42 6F                XRL     A,R7
-001C43 6012              JZ      ?C0006?KEYSCAN
+001B8F 904DE5            MOV     DPTR,#mult_key_value
+001B92 E0                MOVX    A,@DPTR
+001B93 6F                XRL     A,R7
+001B94 6012              JZ      ?C0006?KEYSCAN
    97: 				ksEvtPool.ksPool[i] = key;
-001C45 7442              MOV     A,#LOW ksEvtPool+01H
-001C47 2E                ADD     A,R6
-001C48 F582              MOV     DPL,A
-001C4A E4                CLR     A
-001C4B 344E              ADDC    A,#HIGH ksEvtPool+01H
-001C4D F583              MOV     DPH,A
-001C4F EF                MOV     A,R7
-001C50 F0                MOVX    @DPTR,A
+001B96 7440              MOV     A,#LOW ksEvtPool+01H
+001B98 2E                ADD     A,R6
+001B99 F582              MOV     DPL,A
+001B9B E4                CLR     A
+001B9C 344E              ADDC    A,#HIGH ksEvtPool+01H
+001B9E F583              MOV     DPH,A
+001BA0 EF                MOV     A,R7
+001BA1 F0                MOVX    @DPTR,A
    98: 			break;
-001C51 22                RET     
+001BA2 22                RET     
    99: 		}
   100: 	}
-001C52         ?C0009?KEYSCAN:
-001C52 0E                INC     R6
-001C53 EE                MOV     A,R6
-001C54 B406D5            CJNE    A,#06H,?C0007?KEYSCAN
+001BA3         ?C0009?KEYSCAN:
+001BA3 0E                INC     R6
+001BA4 EE                MOV     A,R6
+001BA5 B406D5            CJNE    A,#06H,?C0007?KEYSCAN
   101: }
-001C57         ?C0006?KEYSCAN:
-001C57 22                RET     
+001BA8         ?C0006?KEYSCAN:
+001BA8 22                RET     
 ----- FUNCTION _keyIn (END) -------
 
 
@@ -5089,75 +4912,75 @@
   105: 	byte i = 0 ;
   106: 	byte found = 0;
 ;---- Variable 'i' assigned to Register 'R6' ----
-001C58 E4                CLR     A
-001C59 FE                MOV     R6,A
+001BA9 E4                CLR     A
+001BAA FE                MOV     R6,A
   107: 
 ;---- Variable 'found' assigned to Register 'R5' ----
-001C5A FD                MOV     R5,A
+001BAB FD                MOV     R5,A
   108: 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
-001C5B EF                MOV     A,R7
-001C5C 54F0              ANL     A,#0F0H
-001C5E 64F0              XRL     A,#0F0H
-001C60 6007              JZ      ?C0014?KEYSCAN
-001C62 EF                MOV     A,R7
-001C63 54D0              ANL     A,#0D0H
-001C65 FC                MOV     R4,A
-001C66 BCD00C            CJNE    R4,#0D0H,?C0013?KEYSCAN
-001C69         ?C0014?KEYSCAN:
+001BAC EF                MOV     A,R7
+001BAD 54F0              ANL     A,#0F0H
+001BAF 64F0              XRL     A,#0F0H
+001BB1 6007              JZ      ?C0014?KEYSCAN
+001BB3 EF                MOV     A,R7
+001BB4 54D0              ANL     A,#0D0H
+001BB6 FC                MOV     R4,A
+001BB7 BCD00C            CJNE    R4,#0D0H,?C0013?KEYSCAN
+001BBA         ?C0014?KEYSCAN:
   109: 	{
   110: 		if(mult_key_status == KEY_WAIT_RELEASE)
-001C69 904DE6            MOV     DPTR,#mult_key_status
-001C6C E0                MOVX    A,@DPTR
-001C6D B4020B            CJNE    A,#02H,?C0016?KEYSCAN
+001BBA 904DE6            MOV     DPTR,#mult_key_status
+001BBD E0                MOVX    A,@DPTR
+001BBE B4020B            CJNE    A,#02H,?C0016?KEYSCAN
   111: 		{
   112: 			mult_key_status = KEY_RELEASE;
-001C70 7403              MOV     A,#03H
-001C72 F0                MOVX    @DPTR,A
+001BC1 7403              MOV     A,#03H
+001BC3 F0                MOVX    @DPTR,A
   113: 		}
   114: 	}
-001C73 8006              SJMP    ?C0016?KEYSCAN
-001C75         ?C0013?KEYSCAN:
+001BC4 8006              SJMP    ?C0016?KEYSCAN
+001BC6         ?C0013?KEYSCAN:
   115: 	else
   116: 		standard_key_release_flag = 1;
-001C75 904DD8            MOV     DPTR,#standard_key_release_flag
-001C78 7401              MOV     A,#01H
-001C7A F0                MOVX    @DPTR,A
-001C7B         ?C0016?KEYSCAN:
+001BC6 904DD8            MOV     DPTR,#standard_key_release_flag
+001BC9 7401              MOV     A,#01H
+001BCB F0                MOVX    @DPTR,A
+001BCC         ?C0016?KEYSCAN:
   117: 
   118: 	if(key >= HID_KEY_LEFT_CTL && key <= HID_KEY_RIGHT_GUI)
-001C7B EF                MOV     A,R7
-001C7C C3                CLR     C
-001C7D 94E0              SUBB    A,#0E0H
-001C7F 4021              JC      ?C0017?KEYSCAN
-001C81 EF                MOV     A,R7
-001C82 D3                SETB    C
-001C83 94E7              SUBB    A,#0E7H
-001C85 501B              JNC     ?C0017?KEYSCAN
+001BCC EF                MOV     A,R7
+001BCD C3                CLR     C
+001BCE 94E0              SUBB    A,#0E0H
+001BD0 4021              JC      ?C0017?KEYSCAN
+001BD2 EF                MOV     A,R7
+001BD3 D3                SETB    C
+001BD4 94E7              SUBB    A,#0E7H
+001BD6 501B              JNC     ?C0017?KEYSCAN
   119: 	{
   120: 		ksEvtPool.standardSel  &= ~(0x01 << (key & 0x07));
-001C87 904E41            MOV     DPTR,#ksEvtPool
-001C8A E0                MOVX    A,@DPTR
-001C8B FE                MOV     R6,A
-001C8C EF                MOV     A,R7
-001C8D 5407              ANL     A,#07H
-001C8F FF                MOV     R7,A
-001C90 7401              MOV     A,#01H
-001C92 A807              MOV     R0,AR7
-001C94 08                INC     R0
-001C95 8002              SJMP    ?C0089?KEYSCAN
-001C97         ?C0088?KEYSCAN:
-001C97 C3                CLR     C
-001C98 33                RLC     A
-001C99         ?C0089?KEYSCAN:
-001C99 D8FC              DJNZ    R0,?C0088?KEYSCAN
-001C9B F4                CPL     A
-001C9C 5E                ANL     A,R6
-001C9D 904E41            MOV     DPTR,#ksEvtPool
-001CA0 F0                MOVX    @DPTR,A
-001CA1 22                RET     
+001BD8 904E3F            MOV     DPTR,#ksEvtPool
+001BDB E0                MOVX    A,@DPTR
+001BDC FE                MOV     R6,A
+001BDD EF                MOV     A,R7
+001BDE 5407              ANL     A,#07H
+001BE0 FF                MOV     R7,A
+001BE1 7401              MOV     A,#01H
+001BE3 A807              MOV     R0,AR7
+001BE5 08                INC     R0
+001BE6 8002              SJMP    ?C0095?KEYSCAN
+001BE8         ?C0094?KEYSCAN:
+001BE8 C3                CLR     C
+001BE9 33                RLC     A
+001BEA         ?C0095?KEYSCAN:
+001BEA D8FC              DJNZ    R0,?C0094?KEYSCAN
+001BEC F4                CPL     A
+001BED 5E                ANL     A,R6
+001BEE 904E3F            MOV     DPTR,#ksEvtPool
+001BF1 F0                MOVX    @DPTR,A
+001BF2 22                RET     
   121: 		return;
   122: 	}
-001CA2         ?C0017?KEYSCAN:
+001BF3         ?C0017?KEYSCAN:
   123: 
   124: /*
   125: 	if (key == HID_KEY_RIGHT_GUI ) 
@@ -5202,97 +5025,267 @@
   164: 	}
   165: */	
   166: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
-001CA2 E4                CLR     A
-001CA3 FE                MOV     R6,A
-001CA4         ?C0019?KEYSCAN:
+001BF3 E4                CLR     A
+001BF4 FE                MOV     R6,A
+001BF5         ?C0019?KEYSCAN:
   167: 	{
   168: 		if (found == 0) 
-001CA4 ED                MOV     A,R5
-001CA5 7021              JNZ     ?C0022?KEYSCAN
+001BF5 ED                MOV     A,R5
+001BF6 7021              JNZ     ?C0022?KEYSCAN
   169: 		{
   170: 			if (ksEvtPool.ksPool[i] == key) {
-001CA7 7442              MOV     A,#LOW ksEvtPool+01H
-001CA9 2E                ADD     A,R6
-001CAA F582              MOV     DPL,A
-001CAC E4                CLR     A
-001CAD 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CAF F583              MOV     DPH,A
-001CB1 E0                MOVX    A,@DPTR
-001CB2 6F                XRL     A,R7
-001CB3 7047              JNZ     ?C0021?KEYSCAN
+001BF8 7440              MOV     A,#LOW ksEvtPool+01H
+001BFA 2E                ADD     A,R6
+001BFB F582              MOV     DPL,A
+001BFD E4                CLR     A
+001BFE 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C00 F583              MOV     DPH,A
+001C02 E0                MOVX    A,@DPTR
+001C03 6F                XRL     A,R7
+001C04 7047              JNZ     ?C0021?KEYSCAN
   171: 				if (i == KS_BUFF_POLL_LEN-1) {
-001CB5 EE                MOV     A,R6
-001CB6 B4050B            CJNE    A,#05H,?C0024?KEYSCAN
+001C06 EE                MOV     A,R6
+001C07 B4050B            CJNE    A,#05H,?C0024?KEYSCAN
   172: 					ksEvtPool.ksPool[i] = 0;
-001CB9 2442              ADD     A,#LOW ksEvtPool+01H
-001CBB F582              MOV     DPL,A
-001CBD E4                CLR     A
-001CBE 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CC0 F583              MOV     DPH,A
-001CC2 E4                CLR     A
-001CC3 F0                MOVX    @DPTR,A
+001C0A 2440              ADD     A,#LOW ksEvtPool+01H
+001C0C F582              MOV     DPL,A
+001C0E E4                CLR     A
+001C0F 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C11 F583              MOV     DPH,A
+001C13 E4                CLR     A
+001C14 F0                MOVX    @DPTR,A
   173: 				}
-001CC4         ?C0024?KEYSCAN:
+001C15         ?C0024?KEYSCAN:
   174: 				found = 1;
-001CC4 7D01              MOV     R5,#01H
+001C15 7D01              MOV     R5,#01H
   175: 			}
   176: 		}
-001CC6 8034              SJMP    ?C0021?KEYSCAN
-001CC8         ?C0022?KEYSCAN:
+001C17 8034              SJMP    ?C0021?KEYSCAN
+001C19         ?C0022?KEYSCAN:
   177: 		else 
   178: 		{
   179: 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
-001CC8 7442              MOV     A,#LOW ksEvtPool+01H
-001CCA 2E                ADD     A,R6
-001CCB F582              MOV     DPL,A
-001CCD E4                CLR     A
-001CCE 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CD0 F583              MOV     DPH,A
-001CD2 E0                MOVX    A,@DPTR
-001CD3 FC                MOV     R4,A
-001CD4 7441              MOV     A,#LOW ksEvtPool
-001CD6 2E                ADD     A,R6
-001CD7 F582              MOV     DPL,A
-001CD9 E4                CLR     A
-001CDA 344E              ADDC    A,#HIGH ksEvtPool
-001CDC F583              MOV     DPH,A
-001CDE EC                MOV     A,R4
-001CDF F0                MOVX    @DPTR,A
+001C19 7440              MOV     A,#LOW ksEvtPool+01H
+001C1B 2E                ADD     A,R6
+001C1C F582              MOV     DPL,A
+001C1E E4                CLR     A
+001C1F 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C21 F583              MOV     DPH,A
+001C23 E0                MOVX    A,@DPTR
+001C24 FC                MOV     R4,A
+001C25 743F              MOV     A,#LOW ksEvtPool
+001C27 2E                ADD     A,R6
+001C28 F582              MOV     DPL,A
+001C2A E4                CLR     A
+001C2B 344E              ADDC    A,#HIGH ksEvtPool
+001C2D F583              MOV     DPH,A
+001C2F EC                MOV     A,R4
+001C30 F0                MOVX    @DPTR,A
   180: 			if (ksEvtPool.ksPool[i] == 0)
-001CE0 7442              MOV     A,#LOW ksEvtPool+01H
-001CE2 2E                ADD     A,R6
-001CE3 F582              MOV     DPL,A
-001CE5 E4                CLR     A
-001CE6 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CE8 F583              MOV     DPH,A
-001CEA E0                MOVX    A,@DPTR
-001CEB 6014              JZ      ?C0018?KEYSCAN
+001C31 7440              MOV     A,#LOW ksEvtPool+01H
+001C33 2E                ADD     A,R6
+001C34 F582              MOV     DPL,A
+001C36 E4                CLR     A
+001C37 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C39 F583              MOV     DPH,A
+001C3B E0                MOVX    A,@DPTR
+001C3C 6014              JZ      ?C0018?KEYSCAN
   181: 				break;
-001CED         ?C0026?KEYSCAN:
+001C3E         ?C0026?KEYSCAN:
   182: 			if (i == KS_BUFF_POLL_LEN-1) {
-001CED EE                MOV     A,R6
-001CEE B4050B            CJNE    A,#05H,?C0021?KEYSCAN
+001C3E EE                MOV     A,R6
+001C3F B4050B            CJNE    A,#05H,?C0021?KEYSCAN
   183: 				ksEvtPool.ksPool[i] = 0;
-001CF1 2442              ADD     A,#LOW ksEvtPool+01H
-001CF3 F582              MOV     DPL,A
-001CF5 E4                CLR     A
-001CF6 344E              ADDC    A,#HIGH ksEvtPool+01H
-001CF8 F583              MOV     DPH,A
-001CFA E4                CLR     A
-001CFB F0                MOVX    @DPTR,A
+001C42 2440              ADD     A,#LOW ksEvtPool+01H
+001C44 F582              MOV     DPL,A
+001C46 E4                CLR     A
+001C47 344E              ADDC    A,#HIGH ksEvtPool+01H
+001C49 F583              MOV     DPH,A
+001C4B E4                CLR     A
+001C4C F0                MOVX    @DPTR,A
   184: 			}
   185: 		}
   186: 	}
-001CFC         ?C0021?KEYSCAN:
-001CFC 0E                INC     R6
-001CFD EE                MOV     A,R6
-001CFE B406A3            CJNE    A,#06H,?C0019?KEYSCAN
+001C4D         ?C0021?KEYSCAN:
+001C4D 0E                INC     R6
+001C4E EE                MOV     A,R6
+001C4F B406A3            CJNE    A,#06H,?C0019?KEYSCAN
   187: }
-001D01         ?C0018?KEYSCAN:
-001D01 22                RET     
+001C52         ?C0018?KEYSCAN:
+001C52 22                RET     
 ----- FUNCTION _keyOut (END) -------
 
 
+----- FUNCTION _key_fn_function (BEGIN) -----
+ FILE: 'kb_process.c'
+  395: byte key_fn_function(byte state ,byte key_value)
+  396: {
+;---- Variable 'key_value' assigned to Register 'R5' ----
+;---- Variable 'state' assigned to Register 'R7' ----
+  397: 	byte temp = 0;
+  398: 
+001C53 E4                CLR     A
+001C54 904E98            MOV     DPTR,#temp
+001C57 F0                MOVX    @DPTR,A
+  399: 	if(state & 1)
+001C58 EF                MOV     A,R7
+001C59 30E005            JNB     ACC.0,?C0095?KB_PROCESS
+  400: 		g_variable.one_key_press_wait_release_timer = 0;
+001C5C E4                CLR     A
+001C5D 904CF8            MOV     DPTR,#g_variable+039H
+001C60 F0                MOVX    @DPTR,A
+001C61         ?C0095?KB_PROCESS:
+  401: 
+  402: 	temp = key_value;
+001C61 904E98            MOV     DPTR,#temp
+001C64 ED                MOV     A,R5
+001C65 F0                MOVX    @DPTR,A
+  403: 	if(fn_flag == 1)			// Fn lock
+001C66 904DDB            MOV     DPTR,#fn_flag
+001C69 E0                MOVX    A,@DPTR
+001C6A 6401              XRL     A,#01H
+001C6C 6002              JZ      $ + 4H
+001C6E A10A              AJMP    ?C0096?KB_PROCESS
+  404: 	{
+  405: 		
+  406: 		switch (key_value)
+001C70 ED                MOV     A,R5
+001C71 24C6              ADD     A,#0C6H
+001C73 B40C00            CJNE    A,#0CH,?C0158?KB_PROCESS
+001C76         ?C0158?KB_PROCESS:
+001C76 4002              JC      $ + 4H
+001C78 A10A              AJMP    ?C0096?KB_PROCESS
+001C7A 901C88            MOV     DPTR,#01C88H
+001C7D 75F003            MOV     B,#03H
+001C80 A4                MUL     AB
+001C81 C583              XCH     A,DPH
+001C83 25F0              ADD     A,B
+001C85 C583              XCH     A,DPH
+001C87 73                JMP     @A+DPTR
+001C88         ?C0159?KB_PROCESS:
+001C88 021CAC            LJMP    ?C0098?KB_PROCESS
+001C8B 021CB4            LJMP    ?C0099?KB_PROCESS
+001C8E 021CBC            LJMP    ?C0100?KB_PROCESS
+001C91 021CC4            LJMP    ?C0101?KB_PROCESS
+001C94 021CCC            LJMP    ?C0102?KB_PROCESS
+001C97 021CD4            LJMP    ?C0103?KB_PROCESS
+001C9A 021CDC            LJMP    ?C0104?KB_PROCESS
+001C9D 021CE4            LJMP    ?C0105?KB_PROCESS
+001CA0 021CEC            LJMP    ?C0106?KB_PROCESS
+001CA3 021CF4            LJMP    ?C0107?KB_PROCESS
+001CA6 021CFC            LJMP    ?C0108?KB_PROCESS
+001CA9 021D04            LJMP    ?C0109?KB_PROCESS
+  407: 		{ 
+  408: 			case HID_KEY_F1:
+001CAC         ?C0098?KB_PROCESS:
+  409: 				temp = HID_MULTIKEY_MEDIA;
+001CAC 904E98            MOV     DPTR,#temp
+001CAF 74F1              MOV     A,#0F1H
+001CB1 F0                MOVX    @DPTR,A
+  410: 				break;
+001CB2 8056              SJMP    ?C0096?KB_PROCESS
+  411: 			case HID_KEY_F2:
+001CB4         ?C0099?KB_PROCESS:
+  412: 				temp = HID_MULTIKEY_VOL_DOWN;
+001CB4 904E98            MOV     DPTR,#temp
+001CB7 74F6              MOV     A,#0F6H
+001CB9 F0                MOVX    @DPTR,A
+  413: 				break;
+001CBA 804E              SJMP    ?C0096?KB_PROCESS
+  414: 			case HID_KEY_F3:
+001CBC         ?C0100?KB_PROCESS:
+  415: 				temp = HID_MULTIKEY_VOL_UP;
+001CBC 904E98            MOV     DPTR,#temp
+001CBF 74F7              MOV     A,#0F7H
+001CC1 F0                MOVX    @DPTR,A
+  416: 				break;
+001CC2 8046              SJMP    ?C0096?KB_PROCESS
+  417: 			case HID_KEY_F4:
+001CC4         ?C0101?KB_PROCESS:
+  418: 				temp = HID_MULTIKEY_MUTE;
+001CC4 904E98            MOV     DPTR,#temp
+001CC7 74F8              MOV     A,#0F8H
+001CC9 F0                MOVX    @DPTR,A
+  419: 				break;
+001CCA 803E              SJMP    ?C0096?KB_PROCESS
+  420: 			case HID_KEY_F5:
+001CCC         ?C0102?KB_PROCESS:
+  421: 				temp = HID_MULTIKEY_PRE_TRACK;
+001CCC 904E98            MOV     DPTR,#temp
+001CCF 74F4              MOV     A,#0F4H
+001CD1 F0                MOVX    @DPTR,A
+  422: 				break;
+001CD2 8036              SJMP    ?C0096?KB_PROCESS
+  423: 			case HID_KEY_F6:
+001CD4         ?C0103?KB_PROCESS:
+  424: 				temp = HID_MULTIKEY_NEXT_TRACK;
+001CD4 904E98            MOV     DPTR,#temp
+001CD7 74F5              MOV     A,#0F5H
+001CD9 F0                MOVX    @DPTR,A
+  425: 				break;
+001CDA 802E              SJMP    ?C0096?KB_PROCESS
+  426: 			case HID_KEY_F7:
+001CDC         ?C0104?KB_PROCESS:
+  427: 				temp = HID_MULTIKEY_PALY;
+001CDC 904E98            MOV     DPTR,#temp
+001CDF 74F2              MOV     A,#0F2H
+001CE1 F0                MOVX    @DPTR,A
+  428: 				break;
+001CE2 8026              SJMP    ?C0096?KB_PROCESS
+  429: 			case HID_KEY_F8:
+001CE4         ?C0105?KB_PROCESS:
+  430: 				temp = HID_MULTIKEY_STOP;
+001CE4 904E98            MOV     DPTR,#temp
+001CE7 74F3              MOV     A,#0F3H
+001CE9 F0                MOVX    @DPTR,A
+  431: 				break;
+001CEA 801E              SJMP    ?C0096?KB_PROCESS
+  432: 			case HID_KEY_F9:
+001CEC         ?C0106?KB_PROCESS:
+  433: 				temp = HID_MULTIKEY_AC_HOME;
+001CEC 904E98            MOV     DPTR,#temp
+001CEF 74D6              MOV     A,#0D6H
+001CF1 F0                MOVX    @DPTR,A
+  434: 				break;
+001CF2 8016              SJMP    ?C0096?KB_PROCESS
+  435: 			case HID_KEY_F10:
+001CF4         ?C0107?KB_PROCESS:
+  436: 				temp = HID_MULTIKEY_MAIL;
+001CF4 904E98            MOV     DPTR,#temp
+001CF7 74FA              MOV     A,#0FAH
+001CF9 F0                MOVX    @DPTR,A
+  437: 				break;
+001CFA 800E              SJMP    ?C0096?KB_PROCESS
+  438: 			case HID_KEY_F11:
+001CFC         ?C0108?KB_PROCESS:
+  439: 				temp = HID_MULTIKEY_MY_COMPUTER;
+001CFC 904E98            MOV     DPTR,#temp
+001CFF 74F9              MOV     A,#0F9H
+001D01 F0                MOVX    @DPTR,A
+  440: 				break;
+001D02 8006              SJMP    ?C0096?KB_PROCESS
+  441: 			case HID_KEY_F12:
+001D04         ?C0109?KB_PROCESS:
+  442: 				temp = HID_MULTIKEY_AC_FAVORITES;
+001D04 904E98            MOV     DPTR,#temp
+001D07 74D0              MOV     A,#0D0H
+001D09 F0                MOVX    @DPTR,A
+  443: 				break;
+  444: 			default :
+  445: 				break;
+  446: 		}
+  447: 	}
+001D0A         ?C0096?KB_PROCESS:
+  448: 
+  449: 	return temp;
+001D0A 904E98            MOV     DPTR,#temp
+001D0D E0                MOVX    A,@DPTR
+001D0E FF                MOV     R7,A
+  450: }
+001D0F 22                RET     
+----- FUNCTION _key_fn_function (END) -------
+
+
 ----- FUNCTION KS_ScanMatrix (BEGIN) -----
  FILE: 'keyscan.c'
   260: void KS_ScanMatrix()
@@ -5300,822 +5293,872 @@
   262: 	byte i = 0;
   263: 	byte j = 0;
 ;---- Variable 'i' assigned to Register 'R7' ----
-001D02 E4                CLR     A
-001D03 FF                MOV     R7,A
+001D10 E4                CLR     A
+001D11 FF                MOV     R7,A
   264: 	byte tgroup = 0;
-001D04 904E75            MOV     DPTR,#j
-001D07 F0                MOVX    @DPTR,A
+001D12 904E73            MOV     DPTR,#j
+001D15 F0                MOVX    @DPTR,A
   265: 	byte tgpionum = 0;
 ;---- Variable 'tgroup' assigned to Register 'R6' ----
-001D08 FE                MOV     R6,A
+001D16 FE                MOV     R6,A
   266: 	byte temp = 0;
 ;---- Variable 'tgpionum' assigned to Register 'R5' ----
-001D09 FD                MOV     R5,A
+001D17 FD                MOV     R5,A
   267: 	byte check = 0;
-001D0A A3                INC     DPTR
-001D0B F0                MOVX    @DPTR,A
+001D18 A3                INC     DPTR
+001D19 F0                MOVX    @DPTR,A
   268: 	byte rawSel = 0;
-001D0C A3                INC     DPTR
-001D0D F0                MOVX    @DPTR,A
+001D1A A3                INC     DPTR
+001D1B F0                MOVX    @DPTR,A
   269: 	for (i=0; col[i]!=0; i++) {
-001D0E A3                INC     DPTR
-001D0F F0                MOVX    @DPTR,A
+001D1C A3                INC     DPTR
+001D1D F0                MOVX    @DPTR,A
   270: 		tgroup = col[i]  >> 3;
-001D10         ?C0043?KEYSCAN:
-001D10 EF                MOV     A,R7
-001D11 90060C            MOV     DPTR,#col
-001D14 93                MOVC    A,@A+DPTR
-001D15 607C              JZ      ?C0044?KEYSCAN
+001D1E         ?C0043?KEYSCAN:
+001D1E EF                MOV     A,R7
+001D1F 90060C            MOV     DPTR,#col
+001D22 93                MOVC    A,@A+DPTR
+001D23 607C              JZ      ?C0044?KEYSCAN
   271: 		tgpionum = 1 << (col[i] & 7);
-001D17 EF                MOV     A,R7
-001D18 93                MOVC    A,@A+DPTR
-001D19 FD                MOV     R5,A
-001D1A 13                RRC     A
-001D1B 13                RRC     A
-001D1C 13                RRC     A
-001D1D 541F              ANL     A,#01FH
-001D1F FE                MOV     R6,A
+001D25 EF                MOV     A,R7
+001D26 93                MOVC    A,@A+DPTR
+001D27 FD                MOV     R5,A
+001D28 13                RRC     A
+001D29 13                RRC     A
+001D2A 13                RRC     A
+001D2B 541F              ANL     A,#01FH
+001D2D FE                MOV     R6,A
   272: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
-001D20 ED                MOV     A,R5
-001D21 5407              ANL     A,#07H
-001D23 FD                MOV     R5,A
-001D24 7401              MOV     A,#01H
-001D26 A805              MOV     R0,AR5
-001D28 08                INC     R0
-001D29 8002              SJMP    ?C0093?KEYSCAN
-001D2B         ?C0092?KEYSCAN:
-001D2B C3                CLR     C
-001D2C 33                RLC     A
-001D2D         ?C0093?KEYSCAN:
-001D2D D8FC              DJNZ    R0,?C0092?KEYSCAN
-001D2F FD                MOV     R5,A
+001D2E ED                MOV     A,R5
+001D2F 5407              ANL     A,#07H
+001D31 FD                MOV     R5,A
+001D32 7401              MOV     A,#01H
+001D34 A805              MOV     R0,AR5
+001D36 08                INC     R0
+001D37 8002              SJMP    ?C0099?KEYSCAN
+001D39         ?C0098?KEYSCAN:
+001D39 C3                CLR     C
+001D3A 33                RLC     A
+001D3B         ?C0099?KEYSCAN:
+001D3B D8FC              DJNZ    R0,?C0098?KEYSCAN
+001D3D FD                MOV     R5,A
   273: 	}
-001D30 EE                MOV     A,R6
-001D31 2478              ADD     A,#078H
-001D33 FB                MOV     R3,A
-001D34 E4                CLR     A
-001D35 3480              ADDC    A,#080H
-001D37 8B82              MOV     DPL,R3
-001D39 F583              MOV     DPH,A
-001D3B E0                MOVX    A,@DPTR
-001D3C FC                MOV     R4,A
-001D3D ED                MOV     A,R5
-001D3E F4                CPL     A
-001D3F FB                MOV     R3,A
-001D40 EC                MOV     A,R4
-001D41 5B                ANL     A,R3
-001D42 F0                MOVX    @DPTR,A
-001D43 EE                MOV     A,R6
-001D44 2470              ADD     A,#070H
-001D46 F582              MOV     DPL,A
-001D48 E4                CLR     A
-001D49 3480              ADDC    A,#080H
-001D4B F583              MOV     DPH,A
-001D4D E0                MOVX    A,@DPTR
-001D4E 4D                ORL     A,R5
-001D4F F0                MOVX    @DPTR,A
-001D50 EE                MOV     A,R6
-001D51 2474              ADD     A,#074H
-001D53 F582              MOV     DPL,A
-001D55 E4                CLR     A
-001D56 3480              ADDC    A,#080H
-001D58 F583              MOV     DPH,A
-001D5A E0                MOVX    A,@DPTR
-001D5B 5B                ANL     A,R3
-001D5C F0                MOVX    @DPTR,A
-001D5D 90811C            MOV     DPTR,#0811CH
-001D60 E0                MOVX    A,@DPTR
-001D61 F4                CPL     A
-001D62 FC                MOV     R4,A
-001D63 74BC              MOV     A,#LOW ksSelMapCurr
-001D65 2F                ADD     A,R7
-001D66 F582              MOV     DPL,A
-001D68 E4                CLR     A
-001D69 344D              ADDC    A,#HIGH ksSelMapCurr
-001D6B F583              MOV     DPH,A
-001D6D EC                MOV     A,R4
-001D6E F0                MOVX    @DPTR,A
-001D6F EE                MOV     A,R6
-001D70 2478              ADD     A,#078H
-001D72 FB                MOV     R3,A
-001D73 E4                CLR     A
-001D74 3480              ADDC    A,#080H
-001D76 8B82              MOV     DPL,R3
-001D78 F583              MOV     DPH,A
-001D7A E0                MOVX    A,@DPTR
-001D7B 4D                ORL     A,R5
+001D3E EE                MOV     A,R6
+001D3F 2478              ADD     A,#078H
+001D41 FB                MOV     R3,A
+001D42 E4                CLR     A
+001D43 3480              ADDC    A,#080H
+001D45 8B82              MOV     DPL,R3
+001D47 F583              MOV     DPH,A
+001D49 E0                MOVX    A,@DPTR
+001D4A FC                MOV     R4,A
+001D4B ED                MOV     A,R5
+001D4C F4                CPL     A
+001D4D FB                MOV     R3,A
+001D4E EC                MOV     A,R4
+001D4F 5B                ANL     A,R3
+001D50 F0                MOVX    @DPTR,A
+001D51 EE                MOV     A,R6
+001D52 2470              ADD     A,#070H
+001D54 F582              MOV     DPL,A
+001D56 E4                CLR     A
+001D57 3480              ADDC    A,#080H
+001D59 F583              MOV     DPH,A
+001D5B E0                MOVX    A,@DPTR
+001D5C 4D                ORL     A,R5
+001D5D F0                MOVX    @DPTR,A
+001D5E EE                MOV     A,R6
+001D5F 2474              ADD     A,#074H
+001D61 F582              MOV     DPL,A
+001D63 E4                CLR     A
+001D64 3480              ADDC    A,#080H
+001D66 F583              MOV     DPH,A
+001D68 E0                MOVX    A,@DPTR
+001D69 5B                ANL     A,R3
+001D6A F0                MOVX    @DPTR,A
+001D6B 90811C            MOV     DPTR,#0811CH
+001D6E E0                MOVX    A,@DPTR
+001D6F F4                CPL     A
+001D70 FC                MOV     R4,A
+001D71 74BC              MOV     A,#LOW ksSelMapCurr
+001D73 2F                ADD     A,R7
+001D74 F582              MOV     DPL,A
+001D76 E4                CLR     A
+001D77 344D              ADDC    A,#HIGH ksSelMapCurr
+001D79 F583              MOV     DPH,A
+001D7B EC                MOV     A,R4
 001D7C F0                MOVX    @DPTR,A
 001D7D EE                MOV     A,R6
-001D7E 2470              ADD     A,#070H
+001D7E 2478              ADD     A,#078H
 001D80 FB                MOV     R3,A
 001D81 E4                CLR     A
 001D82 3480              ADDC    A,#080H
 001D84 8B82              MOV     DPL,R3
 001D86 F583              MOV     DPH,A
 001D88 E0                MOVX    A,@DPTR
-001D89 FC                MOV     R4,A
-001D8A ED                MOV     A,R5
-001D8B F4                CPL     A
-001D8C FB                MOV     R3,A
-001D8D EC                MOV     A,R4
-001D8E 5B                ANL     A,R3
-001D8F F0                MOVX    @DPTR,A
+001D89 4D                ORL     A,R5
+001D8A F0                MOVX    @DPTR,A
+001D8B EE                MOV     A,R6
+001D8C 2470              ADD     A,#070H
+001D8E FB                MOV     R3,A
+001D8F E4                CLR     A
+001D90 3480              ADDC    A,#080H
+001D92 8B82              MOV     DPL,R3
+001D94 F583              MOV     DPH,A
+001D96 E0                MOVX    A,@DPTR
+001D97 FC                MOV     R4,A
+001D98 ED                MOV     A,R5
+001D99 F4                CPL     A
+001D9A FB                MOV     R3,A
+001D9B EC                MOV     A,R4
+001D9C 5B                ANL     A,R3
+001D9D F0                MOVX    @DPTR,A
   274: 
-001D90 0F                INC     R7
-001D91 A110              AJMP    ?C0043?KEYSCAN
-001D93         ?C0044?KEYSCAN:
+001D9E 0F                INC     R7
+001D9F A11E              AJMP    ?C0043?KEYSCAN
+001DA1         ?C0044?KEYSCAN:
   275: 	for (i=0; col[i]!=0; i++) {
-001D93 E4                CLR     A
-001D94 FF                MOV     R7,A
-001D95         ?C0046?KEYSCAN:
-001D95 EF                MOV     A,R7
-001D96 90060C            MOV     DPTR,#col
-001D99 93                MOVC    A,@A+DPTR
-001D9A 607C              JZ      ?C0047?KEYSCAN
+001DA1 E4                CLR     A
+001DA2 FF                MOV     R7,A
+001DA3         ?C0046?KEYSCAN:
+001DA3 EF                MOV     A,R7
+001DA4 90060C            MOV     DPTR,#col
+001DA7 93                MOVC    A,@A+DPTR
+001DA8 607C              JZ      ?C0047?KEYSCAN
   276: 		tgroup = col[i]  >> 3;
-001D9C EF                MOV     A,R7
-001D9D 93                MOVC    A,@A+DPTR
-001D9E FD                MOV     R5,A
-001D9F 13                RRC     A
-001DA0 13                RRC     A
-001DA1 13                RRC     A
-001DA2 541F              ANL     A,#01FH
-001DA4 FE                MOV     R6,A
+001DAA EF                MOV     A,R7
+001DAB 93                MOVC    A,@A+DPTR
+001DAC FD                MOV     R5,A
+001DAD 13                RRC     A
+001DAE 13                RRC     A
+001DAF 13                RRC     A
+001DB0 541F              ANL     A,#01FH
+001DB2 FE                MOV     R6,A
   277: 		tgpionum = 1 << (col[i] & 7);
-001DA5 ED                MOV     A,R5
-001DA6 5407              ANL     A,#07H
-001DA8 FD                MOV     R5,A
-001DA9 7401              MOV     A,#01H
-001DAB A805              MOV     R0,AR5
-001DAD 08                INC     R0
-001DAE 8002              SJMP    ?C0095?KEYSCAN
-001DB0         ?C0094?KEYSCAN:
-001DB0 C3                CLR     C
-001DB1 33                RLC     A
-001DB2         ?C0095?KEYSCAN:
-001DB2 D8FC              DJNZ    R0,?C0094?KEYSCAN
-001DB4 FD                MOV     R5,A
+001DB3 ED                MOV     A,R5
+001DB4 5407              ANL     A,#07H
+001DB6 FD                MOV     R5,A
+001DB7 7401              MOV     A,#01H
+001DB9 A805              MOV     R0,AR5
+001DBB 08                INC     R0
+001DBC 8002              SJMP    ?C0101?KEYSCAN
+001DBE         ?C0100?KEYSCAN:
+001DBE C3                CLR     C
+001DBF 33                RLC     A
+001DC0         ?C0101?KEYSCAN:
+001DC0 D8FC              DJNZ    R0,?C0100?KEYSCAN
+001DC2 FD                MOV     R5,A
   278: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
-001DB5 EE                MOV     A,R6
-001DB6 2478              ADD     A,#078H
-001DB8 FB                MOV     R3,A
-001DB9 E4                CLR     A
-001DBA 3480              ADDC    A,#080H
-001DBC 8B82              MOV     DPL,R3
-001DBE F583              MOV     DPH,A
-001DC0 E0                MOVX    A,@DPTR
-001DC1 FC                MOV     R4,A
-001DC2 ED                MOV     A,R5
-001DC3 F4                CPL     A
-001DC4 FB                MOV     R3,A
-001DC5 EC                MOV     A,R4
-001DC6 5B                ANL     A,R3
-001DC7 F0                MOVX    @DPTR,A
-001DC8 EE                MOV     A,R6
-001DC9 2470              ADD     A,#070H
-001DCB F582              MOV     DPL,A
-001DCD E4                CLR     A
-001DCE 3480              ADDC    A,#080H
-001DD0 F583              MOV     DPH,A
-001DD2 E0                MOVX    A,@DPTR
-001DD3 4D                ORL     A,R5
-001DD4 F0                MOVX    @DPTR,A
-001DD5 EE                MOV     A,R6
-001DD6 2474              ADD     A,#074H
-001DD8 F582              MOV     DPL,A
-001DDA E4                CLR     A
-001DDB 3480              ADDC    A,#080H
-001DDD F583              MOV     DPH,A
-001DDF E0                MOVX    A,@DPTR
-001DE0 5B                ANL     A,R3
-001DE1 F0                MOVX    @DPTR,A
-001DE2 90811C            MOV     DPTR,#0811CH
-001DE5 E0                MOVX    A,@DPTR
-001DE6 F4                CPL     A
-001DE7 FC                MOV     R4,A
-001DE8 74A8              MOV     A,#LOW ksSelMapCheck
-001DEA 2F                ADD     A,R7
-001DEB F582              MOV     DPL,A
-001DED E4                CLR     A
-001DEE 344D              ADDC    A,#HIGH ksSelMapCheck
-001DF0 F583              MOV     DPH,A
-001DF2 EC                MOV     A,R4
-001DF3 F0                MOVX    @DPTR,A
-001DF4 EE                MOV     A,R6
-001DF5 2478              ADD     A,#078H
-001DF7 FB                MOV     R3,A
-001DF8 E4                CLR     A
-001DF9 3480              ADDC    A,#080H
-001DFB 8B82              MOV     DPL,R3
-001DFD F583              MOV     DPH,A
-001DFF E0                MOVX    A,@DPTR
-001E00 4D                ORL     A,R5
+001DC3 EE                MOV     A,R6
+001DC4 2478              ADD     A,#078H
+001DC6 FB                MOV     R3,A
+001DC7 E4                CLR     A
+001DC8 3480              ADDC    A,#080H
+001DCA 8B82              MOV     DPL,R3
+001DCC F583              MOV     DPH,A
+001DCE E0                MOVX    A,@DPTR
+001DCF FC                MOV     R4,A
+001DD0 ED                MOV     A,R5
+001DD1 F4                CPL     A
+001DD2 FB                MOV     R3,A
+001DD3 EC                MOV     A,R4
+001DD4 5B                ANL     A,R3
+001DD5 F0                MOVX    @DPTR,A
+001DD6 EE                MOV     A,R6
+001DD7 2470              ADD     A,#070H
+001DD9 F582              MOV     DPL,A
+001DDB E4                CLR     A
+001DDC 3480              ADDC    A,#080H
+001DDE F583              MOV     DPH,A
+001DE0 E0                MOVX    A,@DPTR
+001DE1 4D                ORL     A,R5
+001DE2 F0                MOVX    @DPTR,A
+001DE3 EE                MOV     A,R6
+001DE4 2474              ADD     A,#074H
+001DE6 F582              MOV     DPL,A
+001DE8 E4                CLR     A
+001DE9 3480              ADDC    A,#080H
+001DEB F583              MOV     DPH,A
+001DED E0                MOVX    A,@DPTR
+001DEE 5B                ANL     A,R3
+001DEF F0                MOVX    @DPTR,A
+001DF0 90811C            MOV     DPTR,#0811CH
+001DF3 E0                MOVX    A,@DPTR
+001DF4 F4                CPL     A
+001DF5 FC                MOV     R4,A
+001DF6 74A8              MOV     A,#LOW ksSelMapCheck
+001DF8 2F                ADD     A,R7
+001DF9 F582              MOV     DPL,A
+001DFB E4                CLR     A
+001DFC 344D              ADDC    A,#HIGH ksSelMapCheck
+001DFE F583              MOV     DPH,A
+001E00 EC                MOV     A,R4
 001E01 F0                MOVX    @DPTR,A
 001E02 EE                MOV     A,R6
-001E03 2470              ADD     A,#070H
+001E03 2478              ADD     A,#078H
 001E05 FB                MOV     R3,A
 001E06 E4                CLR     A
 001E07 3480              ADDC    A,#080H
 001E09 8B82              MOV     DPL,R3
 001E0B F583              MOV     DPH,A
 001E0D E0                MOVX    A,@DPTR
-001E0E FC                MOV     R4,A
-001E0F ED                MOV     A,R5
-001E10 F4                CPL     A
-001E11 FB                MOV     R3,A
-001E12 EC                MOV     A,R4
-001E13 5B                ANL     A,R3
-001E14 F0                MOVX    @DPTR,A
+001E0E 4D                ORL     A,R5
+001E0F F0                MOVX    @DPTR,A
+001E10 EE                MOV     A,R6
+001E11 2470              ADD     A,#070H
+001E13 FB                MOV     R3,A
+001E14 E4                CLR     A
+001E15 3480              ADDC    A,#080H
+001E17 8B82              MOV     DPL,R3
+001E19 F583              MOV     DPH,A
+001E1B E0                MOVX    A,@DPTR
+001E1C FC                MOV     R4,A
+001E1D ED                MOV     A,R5
+001E1E F4                CPL     A
+001E1F FB                MOV     R3,A
+001E20 EC                MOV     A,R4
+001E21 5B                ANL     A,R3
+001E22 F0                MOVX    @DPTR,A
   279: 	}
-001E15 0F                INC     R7
-001E16 A195              AJMP    ?C0046?KEYSCAN
-001E18         ?C0047?KEYSCAN:
+001E23 0F                INC     R7
+001E24 A1A3              AJMP    ?C0046?KEYSCAN
+001E26         ?C0047?KEYSCAN:
   280: 
   281: 	for (i=0; col[i]!=0; i++) {
-001E18 E4                CLR     A
-001E19 FF                MOV     R7,A
-001E1A         ?C0049?KEYSCAN:
-001E1A EF                MOV     A,R7
-001E1B 90060C            MOV     DPTR,#col
-001E1E 93                MOVC    A,@A+DPTR
-001E1F 6040              JZ      ?C0053?KEYSCAN
-  282: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
-001E21 74BC              MOV     A,#LOW ksSelMapCurr
-001E23 2F                ADD     A,R7
-001E24 F582              MOV     DPL,A
 001E26 E4                CLR     A
-001E27 344D              ADDC    A,#HIGH ksSelMapCurr
-001E29 F583              MOV     DPH,A
-001E2B E0                MOVX    A,@DPTR
-001E2C FE                MOV     R6,A
-001E2D 74A8              MOV     A,#LOW ksSelMapCheck
-001E2F 2F                ADD     A,R7
-001E30 F582              MOV     DPL,A
-001E32 E4                CLR     A
-001E33 344D              ADDC    A,#HIGH ksSelMapCheck
-001E35 F583              MOV     DPH,A
-001E37 E0                MOVX    A,@DPTR
-001E38 6E                XRL     A,R6
-001E39 6023              JZ      ?C0051?KEYSCAN
-  283: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
-001E3B 74BC              MOV     A,#LOW ksSelMapCurr
+001E27 FF                MOV     R7,A
+001E28         ?C0049?KEYSCAN:
+001E28 EF                MOV     A,R7
+001E29 90060C            MOV     DPTR,#col
+001E2C 93                MOVC    A,@A+DPTR
+001E2D 6040              JZ      ?C0053?KEYSCAN
+  282: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+001E2F 74BC              MOV     A,#LOW ksSelMapCurr
+001E31 2F                ADD     A,R7
+001E32 F582              MOV     DPL,A
+001E34 E4                CLR     A
+001E35 344D              ADDC    A,#HIGH ksSelMapCurr
+001E37 F583              MOV     DPH,A
+001E39 E0                MOVX    A,@DPTR
+001E3A FE                MOV     R6,A
+001E3B 74A8              MOV     A,#LOW ksSelMapCheck
 001E3D 2F                ADD     A,R7
 001E3E F582              MOV     DPL,A
 001E40 E4                CLR     A
-001E41 344D              ADDC    A,#HIGH ksSelMapCurr
+001E41 344D              ADDC    A,#HIGH ksSelMapCheck
 001E43 F583              MOV     DPH,A
-001E45 C083              PUSH    DPH
-001E47 C082              PUSH    DPL
-001E49 E0                MOVX    A,@DPTR
-001E4A FE                MOV     R6,A
-001E4B 74A8              MOV     A,#LOW ksSelMapCheck
-001E4D 2F                ADD     A,R7
-001E4E F582              MOV     DPL,A
-001E50 E4                CLR     A
-001E51 344D              ADDC    A,#HIGH ksSelMapCheck
-001E53 F583              MOV     DPH,A
-001E55 E0                MOVX    A,@DPTR
-001E56 FD                MOV     R5,A
-001E57 EE                MOV     A,R6
-001E58 5D                ANL     A,R5
-001E59 D082              POP     DPL
-001E5B D083              POP     DPH
-001E5D F0                MOVX    @DPTR,A
+001E45 E0                MOVX    A,@DPTR
+001E46 6E                XRL     A,R6
+001E47 6023              JZ      ?C0051?KEYSCAN
+  283: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
+001E49 74BC              MOV     A,#LOW ksSelMapCurr
+001E4B 2F                ADD     A,R7
+001E4C F582              MOV     DPL,A
+001E4E E4                CLR     A
+001E4F 344D              ADDC    A,#HIGH ksSelMapCurr
+001E51 F583              MOV     DPH,A
+001E53 C083              PUSH    DPH
+001E55 C082              PUSH    DPL
+001E57 E0                MOVX    A,@DPTR
+001E58 FE                MOV     R6,A
+001E59 74A8              MOV     A,#LOW ksSelMapCheck
+001E5B 2F                ADD     A,R7
+001E5C F582              MOV     DPL,A
+001E5E E4                CLR     A
+001E5F 344D              ADDC    A,#HIGH ksSelMapCheck
+001E61 F583              MOV     DPH,A
+001E63 E0                MOVX    A,@DPTR
+001E64 FD                MOV     R5,A
+001E65 EE                MOV     A,R6
+001E66 5D                ANL     A,R5
+001E67 D082              POP     DPL
+001E69 D083              POP     DPH
+001E6B F0                MOVX    @DPTR,A
   284: 		}
   285: 	}
-001E5E         ?C0051?KEYSCAN:
-001E5E 0F                INC     R7
-001E5F 80B9              SJMP    ?C0049?KEYSCAN
+001E6C         ?C0051?KEYSCAN:
+001E6C 0F                INC     R7
+001E6D 80B9              SJMP    ?C0049?KEYSCAN
   286: }
-001E61         ?C0053?KEYSCAN:
-001E61 22                RET     
+001E6F         ?C0053?KEYSCAN:
+001E6F 22                RET     
 ----- FUNCTION KS_ScanMatrix (END) -------
 
 
+----- FUNCTION _kb_combination_key_press (BEGIN) -----
+ FILE: 'kb_process.c'
+  373: void kb_combination_key_press(byte press_state,byte special_key,byte standrad_key)
+  374: {
+;---- Variable 'press_state' assigned to Register 'R7' ----
+;---- Variable 'standrad_key' assigned to Register 'R3' ----
+;---- Variable 'special_key' assigned to Register 'R5' ----
+  375: 	g_variable.key_combination_ctrl = special_key;	
+  376: 	g_variable.key_combination_keyvalue = standrad_key;
+001E70 904CF5            MOV     DPTR,#g_variable+036H
+001E73 ED                MOV     A,R5
+001E74 F0                MOVX    @DPTR,A
+  377: 
+001E75 A3                INC     DPTR
+001E76 EB                MOV     A,R3
+001E77 F0                MOVX    @DPTR,A
+  378: 	if(press_state & 1)
+001E78 EF                MOV     A,R7
+001E79 30E012            JNB     ACC.0,?C0090?KB_PROCESS
+  379: 	{
+  380: 		if(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE) 
+001E7C 904CF4            MOV     DPTR,#g_variable+035H
+001E7F E0                MOVX    A,@DPTR
+001E80 B40304            CJNE    A,#03H,?C0091?KB_PROCESS
+  381: 			g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+001E83 7402              MOV     A,#02H
+001E85 F0                MOVX    @DPTR,A
+001E86 22                RET     
+001E87         ?C0091?KB_PROCESS:
+  382: 		else	
+  383: 			g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+001E87 904CF4            MOV     DPTR,#g_variable+035H
+001E8A 7401              MOV     A,#01H
+001E8C F0                MOVX    @DPTR,A
+  384: 	}
+001E8D 22                RET     
+001E8E         ?C0090?KB_PROCESS:
+  385: 	else
+  386: 	{
+  387: 		g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+001E8E 904CF4            MOV     DPTR,#g_variable+035H
+001E91 7404              MOV     A,#04H
+001E93 F0                MOVX    @DPTR,A
+  388: 	}
+  389: 
+  390: }
+001E94 22                RET     
+----- FUNCTION _kb_combination_key_press (END) -------
+
+
 ----- FUNCTION _kb_multikey_setup (BEGIN) -----
  FILE: 'kb_process.c'
-  459: void kb_multikey_setup(tKSEVENT *pEvt)
-  460: {
-001E62 904E71            MOV     DPTR,#pEvt
-001E65 EB                MOV     A,R3
-001E66 F0                MOVX    @DPTR,A
-001E67 A3                INC     DPTR
-001E68 EA                MOV     A,R2
-001E69 F0                MOVX    @DPTR,A
-001E6A A3                INC     DPTR
-001E6B E9                MOV     A,R1
-001E6C F0                MOVX    @DPTR,A
-  461: 	byte i = 0;
-  462: 	
-001E6D E4                CLR     A
-001E6E A3                INC     DPTR
-001E6F F0                MOVX    @DPTR,A
-  463: 	for (i = 0;i < 6;i++)
-001E70 F0                MOVX    @DPTR,A
-001E71         ?C0113?KB_PROCESS:
-001E71 904E74            MOV     DPTR,#i
-001E74 E0                MOVX    A,@DPTR
-001E75 FF                MOV     R7,A
-001E76 C3                CLR     C
-001E77 9406              SUBB    A,#06H
-001E79 4003              JC      $ + 5H
-001E7B 0220E1            LJMP    ?C0158?KB_PROCESS
-  464: 	{		
-  465: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
-001E7E 904E71            MOV     DPTR,#pEvt
-001E81 E0                MOVX    A,@DPTR
-001E82 FB                MOV     R3,A
-001E83 A3                INC     DPTR
-001E84 E0                MOVX    A,@DPTR
-001E85 FA                MOV     R2,A
-001E86 A3                INC     DPTR
-001E87 E0                MOVX    A,@DPTR
-001E88 2401              ADD     A,#01H
-001E8A F9                MOV     R1,A
-001E8B E4                CLR     A
-001E8C 3A                ADDC    A,R2
-001E8D FA                MOV     R2,A
-001E8E 7E00              MOV     R6,#00H
-001E90 E9                MOV     A,R1
-001E91 2F                ADD     A,R7
-001E92 F9                MOV     R1,A
-001E93 EE                MOV     A,R6
-001E94 3A                ADDC    A,R2
-001E95 FA                MOV     R2,A
-001E96 1203B6            LCALL   ?C?CLDPTR
-001E99 FF                MOV     R7,A
-001E9A 54F0              ANL     A,#0F0H
-001E9C 64F0              XRL     A,#0F0H
-001E9E 600A              JZ      ?C0117?KB_PROCESS
-001EA0 EF                MOV     A,R7
-001EA1 54D0              ANL     A,#0D0H
-001EA3 64D0              XRL     A,#0D0H
-001EA5 6003              JZ      $ + 5H
-001EA7 0220D8            LJMP    ?C0115?KB_PROCESS
-001EAA         ?C0117?KB_PROCESS:
-  466: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
-  467: 		{
-  468: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
-001EAA 1203B6            LCALL   ?C?CLDPTR
-001EAD FB                MOV     R3,A
-001EAE B4F10A            CJNE    A,#0F1H,?C0118?KB_PROCESS
-  469: 			{
-  470: 				kb_set_multikey(0x0183); 
-001EB1 7F83              MOV     R7,#083H
-001EB3 7E01              MOV     R6,#01H
-001EB5 1217DC            LCALL   _kb_set_multikey
-  471: 			}
-001EB8 0220AD            LJMP    ?C0119?KB_PROCESS
-001EBB         ?C0118?KB_PROCESS:
-  472: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
-001EBB EB                MOV     A,R3
-001EBC B4F20A            CJNE    A,#0F2H,?C0120?KB_PROCESS
-  473: 			{ 
-  474: 				kb_set_multikey(0x00cd);
-001EBF 7FCD              MOV     R7,#0CDH
+  454: void kb_multikey_setup(tKSEVENT *pEvt)
+  455: {
+001E95 904E6F            MOV     DPTR,#pEvt
+001E98 EB                MOV     A,R3
+001E99 F0                MOVX    @DPTR,A
+001E9A A3                INC     DPTR
+001E9B EA                MOV     A,R2
+001E9C F0                MOVX    @DPTR,A
+001E9D A3                INC     DPTR
+001E9E E9                MOV     A,R1
+001E9F F0                MOVX    @DPTR,A
+  456: 	byte i = 0;
+  457: 	
+001EA0 E4                CLR     A
+001EA1 A3                INC     DPTR
+001EA2 F0                MOVX    @DPTR,A
+  458: 	for (i = 0;i < 6;i++)
+001EA3 F0                MOVX    @DPTR,A
+001EA4         ?C0112?KB_PROCESS:
+001EA4 904E72            MOV     DPTR,#i
+001EA7 E0                MOVX    A,@DPTR
+001EA8 FF                MOV     R7,A
+001EA9 C3                CLR     C
+001EAA 9406              SUBB    A,#06H
+001EAC 4003              JC      $ + 5H
+001EAE 022113            LJMP    ?C0157?KB_PROCESS
+  459: 	{		
+  460: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+001EB1 904E6F            MOV     DPTR,#pEvt
+001EB4 E0                MOVX    A,@DPTR
+001EB5 FB                MOV     R3,A
+001EB6 A3                INC     DPTR
+001EB7 E0                MOVX    A,@DPTR
+001EB8 FA                MOV     R2,A
+001EB9 A3                INC     DPTR
+001EBA E0                MOVX    A,@DPTR
+001EBB 2401              ADD     A,#01H
+001EBD F9                MOV     R1,A
+001EBE E4                CLR     A
+001EBF 3A                ADDC    A,R2
+001EC0 FA                MOV     R2,A
 001EC1 7E00              MOV     R6,#00H
-001EC3 1217DC            LCALL   _kb_set_multikey
-  475: 			}
-001EC6 0220AD            LJMP    ?C0119?KB_PROCESS
-001EC9         ?C0120?KB_PROCESS:
-  476: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
-001EC9 904E71            MOV     DPTR,#pEvt
-001ECC E0                MOVX    A,@DPTR
-001ECD FB                MOV     R3,A
-001ECE A3                INC     DPTR
-001ECF E0                MOVX    A,@DPTR
-001ED0 FA                MOV     R2,A
-001ED1 A3                INC     DPTR
-001ED2 E0                MOVX    A,@DPTR
-001ED3 2401              ADD     A,#01H
-001ED5 F9                MOV     R1,A
-001ED6 E4                CLR     A
-001ED7 3A                ADDC    A,R2
-001ED8 FA                MOV     R2,A
-001ED9 A3                INC     DPTR
-001EDA E0                MOVX    A,@DPTR
-001EDB 7E00              MOV     R6,#00H
-001EDD 29                ADD     A,R1
-001EDE F9                MOV     R1,A
-001EDF EE                MOV     A,R6
-001EE0 3A                ADDC    A,R2
-001EE1 FA                MOV     R2,A
-001EE2 1203B6            LCALL   ?C?CLDPTR
-001EE5 FB                MOV     R3,A
-001EE6 B4F308            CJNE    A,#0F3H,?C0122?KB_PROCESS
-  477: 			{
-  478: 				kb_set_multikey(0x00b7);
-001EE9 7FB7              MOV     R7,#0B7H
-001EEB 1217DC            LCALL   _kb_set_multikey
-  479: 			}
-001EEE 0220AD            LJMP    ?C0119?KB_PROCESS
-001EF1         ?C0122?KB_PROCESS:
-  480: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
-001EF1 EB                MOV     A,R3
-001EF2 B4F40A            CJNE    A,#0F4H,?C0124?KB_PROCESS
-  481: 			{
-  482: 				kb_set_multikey(0x00b6);
-001EF5 7FB6              MOV     R7,#0B6H
-001EF7 7E00              MOV     R6,#00H
-001EF9 1217DC            LCALL   _kb_set_multikey
-  483: 			}
-001EFC 0220AD            LJMP    ?C0119?KB_PROCESS
-001EFF         ?C0124?KB_PROCESS:
-  484: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
-001EFF 904E71            MOV     DPTR,#pEvt
+001EC3 E9                MOV     A,R1
+001EC4 2F                ADD     A,R7
+001EC5 F9                MOV     R1,A
+001EC6 EE                MOV     A,R6
+001EC7 3A                ADDC    A,R2
+001EC8 FA                MOV     R2,A
+001EC9 1203B6            LCALL   ?C?CLDPTR
+001ECC FF                MOV     R7,A
+001ECD 54F0              ANL     A,#0F0H
+001ECF 64F0              XRL     A,#0F0H
+001ED1 600A              JZ      ?C0116?KB_PROCESS
+001ED3 EF                MOV     A,R7
+001ED4 54D0              ANL     A,#0D0H
+001ED6 64D0              XRL     A,#0D0H
+001ED8 6003              JZ      $ + 5H
+001EDA 02210A            LJMP    ?C0114?KB_PROCESS
+001EDD         ?C0116?KB_PROCESS:
+  461: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+  462: 		{
+  463: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+001EDD 1203B6            LCALL   ?C?CLDPTR
+001EE0 FB                MOV     R3,A
+001EE1 B4F10A            CJNE    A,#0F1H,?C0117?KB_PROCESS
+  464: 			{
+  465: 				kb_set_multikey(0x0183); 
+001EE4 7F83              MOV     R7,#083H
+001EE6 7E01              MOV     R6,#01H
+001EE8 1217DC            LCALL   _kb_set_multikey
+  466: 			}
+001EEB 0220DF            LJMP    ?C0118?KB_PROCESS
+001EEE         ?C0117?KB_PROCESS:
+  467: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+001EEE EB                MOV     A,R3
+001EEF B4F20A            CJNE    A,#0F2H,?C0119?KB_PROCESS
+  468: 			{ 
+  469: 				kb_set_multikey(0x00cd);
+001EF2 7FCD              MOV     R7,#0CDH
+001EF4 7E00              MOV     R6,#00H
+001EF6 1217DC            LCALL   _kb_set_multikey
+  470: 			}
+001EF9 0220DF            LJMP    ?C0118?KB_PROCESS
+001EFC         ?C0119?KB_PROCESS:
+  471: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+001EFC 904E6F            MOV     DPTR,#pEvt
+001EFF E0                MOVX    A,@DPTR
+001F00 FB                MOV     R3,A
+001F01 A3                INC     DPTR
 001F02 E0                MOVX    A,@DPTR
-001F03 FB                MOV     R3,A
+001F03 FA                MOV     R2,A
 001F04 A3                INC     DPTR
 001F05 E0                MOVX    A,@DPTR
-001F06 FA                MOV     R2,A
-001F07 A3                INC     DPTR
-001F08 E0                MOVX    A,@DPTR
-001F09 2401              ADD     A,#01H
-001F0B F9                MOV     R1,A
-001F0C E4                CLR     A
-001F0D 3A                ADDC    A,R2
-001F0E FA                MOV     R2,A
-001F0F A3                INC     DPTR
-001F10 E0                MOVX    A,@DPTR
-001F11 7E00              MOV     R6,#00H
-001F13 29                ADD     A,R1
-001F14 F9                MOV     R1,A
-001F15 EE                MOV     A,R6
-001F16 3A                ADDC    A,R2
-001F17 FA                MOV     R2,A
-001F18 1203B6            LCALL   ?C?CLDPTR
-001F1B FB                MOV     R3,A
-001F1C B4F508            CJNE    A,#0F5H,?C0126?KB_PROCESS
-  485: 			{
-  486: 				kb_set_multikey(0x00b5);
-001F1F 7FB5              MOV     R7,#0B5H
-001F21 1217DC            LCALL   _kb_set_multikey
-  487: 			}
-001F24 0220AD            LJMP    ?C0119?KB_PROCESS
-001F27         ?C0126?KB_PROCESS:
-  488: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
-001F27 EB                MOV     A,R3
-001F28 B4F60A            CJNE    A,#0F6H,?C0128?KB_PROCESS
-  489: 			{
-  490: 				kb_set_multikey(0x00ea);
-001F2B 7FEA              MOV     R7,#0EAH
-001F2D 7E00              MOV     R6,#00H
-001F2F 1217DC            LCALL   _kb_set_multikey
-  491: 			}
-001F32 0220AD            LJMP    ?C0119?KB_PROCESS
-001F35         ?C0128?KB_PROCESS:
-  492: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
-001F35 904E71            MOV     DPTR,#pEvt
+001F06 2401              ADD     A,#01H
+001F08 F9                MOV     R1,A
+001F09 E4                CLR     A
+001F0A 3A                ADDC    A,R2
+001F0B FA                MOV     R2,A
+001F0C A3                INC     DPTR
+001F0D E0                MOVX    A,@DPTR
+001F0E 7E00              MOV     R6,#00H
+001F10 29                ADD     A,R1
+001F11 F9                MOV     R1,A
+001F12 EE                MOV     A,R6
+001F13 3A                ADDC    A,R2
+001F14 FA                MOV     R2,A
+001F15 1203B6            LCALL   ?C?CLDPTR
+001F18 FB                MOV     R3,A
+001F19 B4F308            CJNE    A,#0F3H,?C0121?KB_PROCESS
+  472: 			{
+  473: 				kb_set_multikey(0x00b7);
+001F1C 7FB7              MOV     R7,#0B7H
+001F1E 1217DC            LCALL   _kb_set_multikey
+  474: 			}
+001F21 0220DF            LJMP    ?C0118?KB_PROCESS
+001F24         ?C0121?KB_PROCESS:
+  475: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+001F24 EB                MOV     A,R3
+001F25 B4F40A            CJNE    A,#0F4H,?C0123?KB_PROCESS
+  476: 			{
+  477: 				kb_set_multikey(0x00b6);
+001F28 7FB6              MOV     R7,#0B6H
+001F2A 7E00              MOV     R6,#00H
+001F2C 1217DC            LCALL   _kb_set_multikey
+  478: 			}
+001F2F 0220DF            LJMP    ?C0118?KB_PROCESS
+001F32         ?C0123?KB_PROCESS:
+  479: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+001F32 904E6F            MOV     DPTR,#pEvt
+001F35 E0                MOVX    A,@DPTR
+001F36 FB                MOV     R3,A
+001F37 A3                INC     DPTR
 001F38 E0                MOVX    A,@DPTR
-001F39 FB                MOV     R3,A
+001F39 FA                MOV     R2,A
 001F3A A3                INC     DPTR
 001F3B E0                MOVX    A,@DPTR
-001F3C FA                MOV     R2,A
-001F3D A3                INC     DPTR
-001F3E E0                MOVX    A,@DPTR
-001F3F 2401              ADD     A,#01H
-001F41 F9                MOV     R1,A
-001F42 E4                CLR     A
-001F43 3A                ADDC    A,R2
-001F44 FA                MOV     R2,A
-001F45 A3                INC     DPTR
-001F46 E0                MOVX    A,@DPTR
-001F47 7E00              MOV     R6,#00H
-001F49 29                ADD     A,R1
-001F4A F9                MOV     R1,A
-001F4B EE                MOV     A,R6
-001F4C 3A                ADDC    A,R2
-001F4D FA                MOV     R2,A
-001F4E 1203B6            LCALL   ?C?CLDPTR
-001F51 FB                MOV     R3,A
-001F52 B4F708            CJNE    A,#0F7H,?C0130?KB_PROCESS
-  493: 			{
-  494: 				kb_set_multikey(0x00e9);
-001F55 7FE9              MOV     R7,#0E9H
-001F57 1217DC            LCALL   _kb_set_multikey
-  495: 			}
-001F5A 0220AD            LJMP    ?C0119?KB_PROCESS
-001F5D         ?C0130?KB_PROCESS:
-  496: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
-001F5D EB                MOV     A,R3
-001F5E B4F80A            CJNE    A,#0F8H,?C0132?KB_PROCESS
-  497: 			{
-  498: 				kb_set_multikey(0x00e2);
-001F61 7FE2              MOV     R7,#0E2H
-001F63 7E00              MOV     R6,#00H
-001F65 1217DC            LCALL   _kb_set_multikey
-  499: 			}
-001F68 0220AD            LJMP    ?C0119?KB_PROCESS
-001F6B         ?C0132?KB_PROCESS:
-  500: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
-001F6B 904E71            MOV     DPTR,#pEvt
+001F3C 2401              ADD     A,#01H
+001F3E F9                MOV     R1,A
+001F3F E4                CLR     A
+001F40 3A                ADDC    A,R2
+001F41 FA                MOV     R2,A
+001F42 A3                INC     DPTR
+001F43 E0                MOVX    A,@DPTR
+001F44 7E00              MOV     R6,#00H
+001F46 29                ADD     A,R1
+001F47 F9                MOV     R1,A
+001F48 EE                MOV     A,R6
+001F49 3A                ADDC    A,R2
+001F4A FA                MOV     R2,A
+001F4B 1203B6            LCALL   ?C?CLDPTR
+001F4E FB                MOV     R3,A
+001F4F B4F508            CJNE    A,#0F5H,?C0125?KB_PROCESS
+  480: 			{
+  481: 				kb_set_multikey(0x00b5);
+001F52 7FB5              MOV     R7,#0B5H
+001F54 1217DC            LCALL   _kb_set_multikey
+  482: 			}
+001F57 0220DF            LJMP    ?C0118?KB_PROCESS
+001F5A         ?C0125?KB_PROCESS:
+  483: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+001F5A EB                MOV     A,R3
+001F5B B4F60A            CJNE    A,#0F6H,?C0127?KB_PROCESS
+  484: 			{
+  485: 				kb_set_multikey(0x00ea);
+001F5E 7FEA              MOV     R7,#0EAH
+001F60 7E00              MOV     R6,#00H
+001F62 1217DC            LCALL   _kb_set_multikey
+  486: 			}
+001F65 0220DF            LJMP    ?C0118?KB_PROCESS
+001F68         ?C0127?KB_PROCESS:
+  487: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+001F68 904E6F            MOV     DPTR,#pEvt
+001F6B E0                MOVX    A,@DPTR
+001F6C FB                MOV     R3,A
+001F6D A3                INC     DPTR
 001F6E E0                MOVX    A,@DPTR
-001F6F FB                MOV     R3,A
+001F6F FA                MOV     R2,A
 001F70 A3                INC     DPTR
 001F71 E0                MOVX    A,@DPTR
-001F72 FA                MOV     R2,A
-001F73 A3                INC     DPTR
-001F74 E0                MOVX    A,@DPTR
-001F75 2401              ADD     A,#01H
-001F77 F9                MOV     R1,A
-001F78 E4                CLR     A
-001F79 3A                ADDC    A,R2
-001F7A FA                MOV     R2,A
-001F7B A3                INC     DPTR
-001F7C E0                MOVX    A,@DPTR
-001F7D 7E00              MOV     R6,#00H
-001F7F 29                ADD     A,R1
-001F80 F9                MOV     R1,A
-001F81 EE                MOV     A,R6
-001F82 3A                ADDC    A,R2
-001F83 FA                MOV     R2,A
-001F84 1203B6            LCALL   ?C?CLDPTR
-001F87 FB                MOV     R3,A
-001F88 B4F909            CJNE    A,#0F9H,?C0134?KB_PROCESS
-  501: 			{
-  502: 				kb_set_multikey(0x0194);
-001F8B 7F94              MOV     R7,#094H
-001F8D 0E                INC     R6
-001F8E 1217DC            LCALL   _kb_set_multikey
-  503: 			}
-001F91 0220AD            LJMP    ?C0119?KB_PROCESS
-001F94         ?C0134?KB_PROCESS:
-  504: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
-001F94 EB                MOV     A,R3
-001F95 B4FA0A            CJNE    A,#0FAH,?C0136?KB_PROCESS
-  505: 			{
-  506: 				kb_set_multikey(0x018a);//mail
-001F98 7F8A              MOV     R7,#08AH
-001F9A 7E01              MOV     R6,#01H
-001F9C 1217DC            LCALL   _kb_set_multikey
-  507: 			}
-001F9F 0220AD            LJMP    ?C0119?KB_PROCESS
-001FA2         ?C0136?KB_PROCESS:
-  508: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
-001FA2 904E71            MOV     DPTR,#pEvt
-001FA5 E0                MOVX    A,@DPTR
-001FA6 FB                MOV     R3,A
-001FA7 A3                INC     DPTR
-001FA8 E0                MOVX    A,@DPTR
-001FA9 FA                MOV     R2,A
-001FAA A3                INC     DPTR
-001FAB E0                MOVX    A,@DPTR
-001FAC 2401              ADD     A,#01H
-001FAE F9                MOV     R1,A
-001FAF E4                CLR     A
-001FB0 3A                ADDC    A,R2
-001FB1 FA                MOV     R2,A
-001FB2 A3                INC     DPTR
-001FB3 E0                MOVX    A,@DPTR
-001FB4 7E00              MOV     R6,#00H
-001FB6 29                ADD     A,R1
-001FB7 F9                MOV     R1,A
-001FB8 EE                MOV     A,R6
-001FB9 3A                ADDC    A,R2
-001FBA FA                MOV     R2,A
-001FBB 1203B6            LCALL   ?C?CLDPTR
-001FBE FB                MOV     R3,A
-001FBF B4FB09            CJNE    A,#0FBH,?C0138?KB_PROCESS
-  509: 			{
-  510: 				kb_set_multikey(0x0192);
-001FC2 7F92              MOV     R7,#092H
-001FC4 0E                INC     R6
-001FC5 1217DC            LCALL   _kb_set_multikey
-  511: 			}
-001FC8 0220AD            LJMP    ?C0119?KB_PROCESS
-001FCB         ?C0138?KB_PROCESS:
-  512: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
-001FCB EB                MOV     A,R3
-001FCC B4D00A            CJNE    A,#0D0H,?C0140?KB_PROCESS
-  513: 			{
-  514: 				kb_set_multikey(0x022a);//www Favorites
-001FCF 7F2A              MOV     R7,#02AH
-001FD1 7E02              MOV     R6,#02H
-001FD3 1217DC            LCALL   _kb_set_multikey
-  515: 			}
-001FD6 0220AD            LJMP    ?C0119?KB_PROCESS
-001FD9         ?C0140?KB_PROCESS:
-  516: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
-001FD9 904E71            MOV     DPTR,#pEvt
-001FDC E0                MOVX    A,@DPTR
-001FDD FB                MOV     R3,A
-001FDE A3                INC     DPTR
-001FDF E0                MOVX    A,@DPTR
-001FE0 FA                MOV     R2,A
-001FE1 A3                INC     DPTR
-001FE2 E0                MOVX    A,@DPTR
-001FE3 2401              ADD     A,#01H
-001FE5 F9                MOV     R1,A
-001FE6 E4                CLR     A
-001FE7 3A                ADDC    A,R2
-001FE8 FA                MOV     R2,A
-001FE9 A3                INC     DPTR
-001FEA E0                MOVX    A,@DPTR
-001FEB 7E00              MOV     R6,#00H
-001FED 29                ADD     A,R1
-001FEE F9                MOV     R1,A
-001FEF EE                MOV     A,R6
-001FF0 3A                ADDC    A,R2
-001FF1 FA                MOV     R2,A
-001FF2 1203B6            LCALL   ?C?CLDPTR
-001FF5 FB                MOV     R3,A
-001FF6 B4D109            CJNE    A,#0D1H,?C0142?KB_PROCESS
-  517: 			{
-  518: 				kb_set_multikey(0x0225);
-001FF9 7F25              MOV     R7,#025H
-001FFB 7E02              MOV     R6,#02H
-001FFD 1217DC            LCALL   _kb_set_multikey
-  519: 			}
-002000 01AD              AJMP    ?C0119?KB_PROCESS
-002002         ?C0142?KB_PROCESS:
-  520: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
-002002 EB                MOV     A,R3
-002003 B4D309            CJNE    A,#0D3H,?C0144?KB_PROCESS
-  521: 			{
-  522: 				kb_set_multikey(0x0226);
-002006 7F26              MOV     R7,#026H
-002008 7E02              MOV     R6,#02H
-00200A 1217DC            LCALL   _kb_set_multikey
-  523: 			}
-00200D 01AD              AJMP    ?C0119?KB_PROCESS
-00200F         ?C0144?KB_PROCESS:
-  524: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
-00200F 904E71            MOV     DPTR,#pEvt
-002012 E0                MOVX    A,@DPTR
-002013 FB                MOV     R3,A
-002014 A3                INC     DPTR
-002015 E0                MOVX    A,@DPTR
-002016 FA                MOV     R2,A
-002017 A3                INC     DPTR
-002018 E0                MOVX    A,@DPTR
-002019 2401              ADD     A,#01H
-00201B F9                MOV     R1,A
-00201C E4                CLR     A
-00201D 3A                ADDC    A,R2
-00201E FA                MOV     R2,A
-00201F A3                INC     DPTR
-002020 E0                MOVX    A,@DPTR
-002021 7E00              MOV     R6,#00H
-002023 29                ADD     A,R1
-002024 F9                MOV     R1,A
-002025 EE                MOV     A,R6
-002026 3A                ADDC    A,R2
-002027 FA                MOV     R2,A
-002028 1203B6            LCALL   ?C?CLDPTR
-00202B FB                MOV     R3,A
-00202C B4D209            CJNE    A,#0D2H,?C0146?KB_PROCESS
-  525: 			{
-  526: 				kb_set_multikey(0x0224);
-00202F 7F24              MOV     R7,#024H
-002031 7E02              MOV     R6,#02H
-002033 1217DC            LCALL   _kb_set_multikey
-  527: 			}
-002036 8075              SJMP    ?C0119?KB_PROCESS
-002038         ?C0146?KB_PROCESS:
-  528: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
-002038 EB                MOV     A,R3
-002039 B4D409            CJNE    A,#0D4H,?C0148?KB_PROCESS
+001F72 2401              ADD     A,#01H
+001F74 F9                MOV     R1,A
+001F75 E4                CLR     A
+001F76 3A                ADDC    A,R2
+001F77 FA                MOV     R2,A
+001F78 A3                INC     DPTR
+001F79 E0                MOVX    A,@DPTR
+001F7A 7E00              MOV     R6,#00H
+001F7C 29                ADD     A,R1
+001F7D F9                MOV     R1,A
+001F7E EE                MOV     A,R6
+001F7F 3A                ADDC    A,R2
+001F80 FA                MOV     R2,A
+001F81 1203B6            LCALL   ?C?CLDPTR
+001F84 FB                MOV     R3,A
+001F85 B4F708            CJNE    A,#0F7H,?C0129?KB_PROCESS
+  488: 			{
+  489: 				kb_set_multikey(0x00e9);
+001F88 7FE9              MOV     R7,#0E9H
+001F8A 1217DC            LCALL   _kb_set_multikey
+  490: 			}
+001F8D 0220DF            LJMP    ?C0118?KB_PROCESS
+001F90         ?C0129?KB_PROCESS:
+  491: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+001F90 EB                MOV     A,R3
+001F91 B4F80A            CJNE    A,#0F8H,?C0131?KB_PROCESS
+  492: 			{
+  493: 				kb_set_multikey(0x00e2);
+001F94 7FE2              MOV     R7,#0E2H
+001F96 7E00              MOV     R6,#00H
+001F98 1217DC            LCALL   _kb_set_multikey
+  494: 			}
+001F9B 0220DF            LJMP    ?C0118?KB_PROCESS
+001F9E         ?C0131?KB_PROCESS:
+  495: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+001F9E 904E6F            MOV     DPTR,#pEvt
+001FA1 E0                MOVX    A,@DPTR
+001FA2 FB                MOV     R3,A
+001FA3 A3                INC     DPTR
+001FA4 E0                MOVX    A,@DPTR
+001FA5 FA                MOV     R2,A
+001FA6 A3                INC     DPTR
+001FA7 E0                MOVX    A,@DPTR
+001FA8 2401              ADD     A,#01H
+001FAA F9                MOV     R1,A
+001FAB E4                CLR     A
+001FAC 3A                ADDC    A,R2
+001FAD FA                MOV     R2,A
+001FAE A3                INC     DPTR
+001FAF E0                MOVX    A,@DPTR
+001FB0 7E00              MOV     R6,#00H
+001FB2 29                ADD     A,R1
+001FB3 F9                MOV     R1,A
+001FB4 EE                MOV     A,R6
+001FB5 3A                ADDC    A,R2
+001FB6 FA                MOV     R2,A
+001FB7 1203B6            LCALL   ?C?CLDPTR
+001FBA FB                MOV     R3,A
+001FBB B4F909            CJNE    A,#0F9H,?C0133?KB_PROCESS
+  496: 			{
+  497: 				kb_set_multikey(0x0194);
+001FBE 7F94              MOV     R7,#094H
+001FC0 0E                INC     R6
+001FC1 1217DC            LCALL   _kb_set_multikey
+  498: 			}
+001FC4 0220DF            LJMP    ?C0118?KB_PROCESS
+001FC7         ?C0133?KB_PROCESS:
+  499: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+001FC7 EB                MOV     A,R3
+001FC8 B4FA0A            CJNE    A,#0FAH,?C0135?KB_PROCESS
+  500: 			{
+  501: 				kb_set_multikey(0x018a);//mail
+001FCB 7F8A              MOV     R7,#08AH
+001FCD 7E01              MOV     R6,#01H
+001FCF 1217DC            LCALL   _kb_set_multikey
+  502: 			}
+001FD2 0220DF            LJMP    ?C0118?KB_PROCESS
+001FD5         ?C0135?KB_PROCESS:
+  503: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+001FD5 904E6F            MOV     DPTR,#pEvt
+001FD8 E0                MOVX    A,@DPTR
+001FD9 FB                MOV     R3,A
+001FDA A3                INC     DPTR
+001FDB E0                MOVX    A,@DPTR
+001FDC FA                MOV     R2,A
+001FDD A3                INC     DPTR
+001FDE E0                MOVX    A,@DPTR
+001FDF 2401              ADD     A,#01H
+001FE1 F9                MOV     R1,A
+001FE2 E4                CLR     A
+001FE3 3A                ADDC    A,R2
+001FE4 FA                MOV     R2,A
+001FE5 A3                INC     DPTR
+001FE6 E0                MOVX    A,@DPTR
+001FE7 7E00              MOV     R6,#00H
+001FE9 29                ADD     A,R1
+001FEA F9                MOV     R1,A
+001FEB EE                MOV     A,R6
+001FEC 3A                ADDC    A,R2
+001FED FA                MOV     R2,A
+001FEE 1203B6            LCALL   ?C?CLDPTR
+001FF1 FB                MOV     R3,A
+001FF2 B4FB09            CJNE    A,#0FBH,?C0137?KB_PROCESS
+  504: 			{
+  505: 				kb_set_multikey(0x0192);
+001FF5 7F92              MOV     R7,#092H
+001FF7 0E                INC     R6
+001FF8 1217DC            LCALL   _kb_set_multikey
+  506: 			}
+001FFB 0220DF            LJMP    ?C0118?KB_PROCESS
+001FFE         ?C0137?KB_PROCESS:
+  507: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+001FFE EB                MOV     A,R3
+001FFF B4D009            CJNE    A,#0D0H,?C0139?KB_PROCESS
+  508: 			{
+  509: 				kb_set_multikey(0x022a);//www Favorites
+002002 7F2A              MOV     R7,#02AH
+002004 7E02              MOV     R6,#02H
+002006 1217DC            LCALL   _kb_set_multikey
+  510: 			}
+002009 01DF              AJMP    ?C0118?KB_PROCESS
+00200B         ?C0139?KB_PROCESS:
+  511: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+00200B 904E6F            MOV     DPTR,#pEvt
+00200E E0                MOVX    A,@DPTR
+00200F FB                MOV     R3,A
+002010 A3                INC     DPTR
+002011 E0                MOVX    A,@DPTR
+002012 FA                MOV     R2,A
+002013 A3                INC     DPTR
+002014 E0                MOVX    A,@DPTR
+002015 2401              ADD     A,#01H
+002017 F9                MOV     R1,A
+002018 E4                CLR     A
+002019 3A                ADDC    A,R2
+00201A FA                MOV     R2,A
+00201B A3                INC     DPTR
+00201C E0                MOVX    A,@DPTR
+00201D 7E00              MOV     R6,#00H
+00201F 29                ADD     A,R1
+002020 F9                MOV     R1,A
+002021 EE                MOV     A,R6
+002022 3A                ADDC    A,R2
+002023 FA                MOV     R2,A
+002024 1203B6            LCALL   ?C?CLDPTR
+002027 FB                MOV     R3,A
+002028 B4D109            CJNE    A,#0D1H,?C0141?KB_PROCESS
+  512: 			{
+  513: 				kb_set_multikey(0x0225);
+00202B 7F25              MOV     R7,#025H
+00202D 7E02              MOV     R6,#02H
+00202F 1217DC            LCALL   _kb_set_multikey
+  514: 			}
+002032 01DF              AJMP    ?C0118?KB_PROCESS
+002034         ?C0141?KB_PROCESS:
+  515: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+002034 EB                MOV     A,R3
+002035 B4D309            CJNE    A,#0D3H,?C0143?KB_PROCESS
+  516: 			{
+  517: 				kb_set_multikey(0x0226);
+002038 7F26              MOV     R7,#026H
+00203A 7E02              MOV     R6,#02H
+00203C 1217DC            LCALL   _kb_set_multikey
+  518: 			}
+00203F 01DF              AJMP    ?C0118?KB_PROCESS
+002041         ?C0143?KB_PROCESS:
+  519: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+002041 904E6F            MOV     DPTR,#pEvt
+002044 E0                MOVX    A,@DPTR
+002045 FB                MOV     R3,A
+002046 A3                INC     DPTR
+002047 E0                MOVX    A,@DPTR
+002048 FA                MOV     R2,A
+002049 A3                INC     DPTR
+00204A E0                MOVX    A,@DPTR
+00204B 2401              ADD     A,#01H
+00204D F9                MOV     R1,A
+00204E E4                CLR     A
+00204F 3A                ADDC    A,R2
+002050 FA                MOV     R2,A
+002051 A3                INC     DPTR
+002052 E0                MOVX    A,@DPTR
+002053 7E00              MOV     R6,#00H
+002055 29                ADD     A,R1
+002056 F9                MOV     R1,A
+002057 EE                MOV     A,R6
+002058 3A                ADDC    A,R2
+002059 FA                MOV     R2,A
+00205A 1203B6            LCALL   ?C?CLDPTR
+00205D FB                MOV     R3,A
+00205E B4D209            CJNE    A,#0D2H,?C0145?KB_PROCESS
+  520: 			{
+  521: 				kb_set_multikey(0x0224);
+002061 7F24              MOV     R7,#024H
+002063 7E02              MOV     R6,#02H
+002065 1217DC            LCALL   _kb_set_multikey
+  522: 			}
+002068 8075              SJMP    ?C0118?KB_PROCESS
+00206A         ?C0145?KB_PROCESS:
+  523: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+00206A EB                MOV     A,R3
+00206B B4D409            CJNE    A,#0D4H,?C0147?KB_PROCESS
+  524: 			{
+  525: 				kb_set_multikey(0x0227);
+00206E 7F27              MOV     R7,#027H
+002070 7E02              MOV     R6,#02H
+002072 1217DC            LCALL   _kb_set_multikey
+  526: 			}
+002075 8068              SJMP    ?C0118?KB_PROCESS
+002077         ?C0147?KB_PROCESS:
+  527: 			
+  528: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+002077 904E6F            MOV     DPTR,#pEvt
+00207A E0                MOVX    A,@DPTR
+00207B FB                MOV     R3,A
+00207C A3                INC     DPTR
+00207D E0                MOVX    A,@DPTR
+00207E FA                MOV     R2,A
+00207F A3                INC     DPTR
+002080 E0                MOVX    A,@DPTR
+002081 2401              ADD     A,#01H
+002083 F9                MOV     R1,A
+002084 E4                CLR     A
+002085 3A                ADDC    A,R2
+002086 FA                MOV     R2,A
+002087 A3                INC     DPTR
+002088 E0                MOVX    A,@DPTR
+002089 7E00              MOV     R6,#00H
+00208B 29                ADD     A,R1
+00208C F9                MOV     R1,A
+00208D EE                MOV     A,R6
+00208E 3A                ADDC    A,R2
+00208F FA                MOV     R2,A
+002090 1203B6            LCALL   ?C?CLDPTR
+002093 FB                MOV     R3,A
+002094 B4D509            CJNE    A,#0D5H,?C0149?KB_PROCESS
   529: 			{
-  530: 				kb_set_multikey(0x0227);
-00203C 7F27              MOV     R7,#027H
-00203E 7E02              MOV     R6,#02H
-002040 1217DC            LCALL   _kb_set_multikey
+  530: 				kb_set_multikey(0x0221);
+002097 7F21              MOV     R7,#021H
+002099 7E02              MOV     R6,#02H
+00209B 1217DC            LCALL   _kb_set_multikey
   531: 			}
-002043 8068              SJMP    ?C0119?KB_PROCESS
-002045         ?C0148?KB_PROCESS:
-  532: 			
-  533: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
-002045 904E71            MOV     DPTR,#pEvt
-002048 E0                MOVX    A,@DPTR
-002049 FB                MOV     R3,A
-00204A A3                INC     DPTR
-00204B E0                MOVX    A,@DPTR
-00204C FA                MOV     R2,A
-00204D A3                INC     DPTR
-00204E E0                MOVX    A,@DPTR
-00204F 2401              ADD     A,#01H
-002051 F9                MOV     R1,A
-002052 E4                CLR     A
-002053 3A                ADDC    A,R2
-002054 FA                MOV     R2,A
-002055 A3                INC     DPTR
-002056 E0                MOVX    A,@DPTR
-002057 7E00              MOV     R6,#00H
-002059 29                ADD     A,R1
-00205A F9                MOV     R1,A
-00205B EE                MOV     A,R6
-00205C 3A                ADDC    A,R2
-00205D FA                MOV     R2,A
-00205E 1203B6            LCALL   ?C?CLDPTR
-002061 FB                MOV     R3,A
-002062 B4D509            CJNE    A,#0D5H,?C0150?KB_PROCESS
-  534: 			{
-  535: 				kb_set_multikey(0x0221);
-002065 7F21              MOV     R7,#021H
-002067 7E02              MOV     R6,#02H
-002069 1217DC            LCALL   _kb_set_multikey
-  536: 			}
-00206C 803F              SJMP    ?C0119?KB_PROCESS
-00206E         ?C0150?KB_PROCESS:
-  537: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
-00206E EB                MOV     A,R3
-00206F B4D609            CJNE    A,#0D6H,?C0152?KB_PROCESS
-  538: 			{
-  539: 				kb_set_multikey(0x0223);
-002072 7F23              MOV     R7,#023H
-002074 7E02              MOV     R6,#02H
-002076 1217DC            LCALL   _kb_set_multikey
-  540: 			}
-002079 8032              SJMP    ?C0119?KB_PROCESS
-00207B         ?C0152?KB_PROCESS:
-  541: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
-00207B 904E71            MOV     DPTR,#pEvt
-00207E E0                MOVX    A,@DPTR
-00207F FB                MOV     R3,A
-002080 A3                INC     DPTR
-002081 E0                MOVX    A,@DPTR
-002082 FA                MOV     R2,A
-002083 A3                INC     DPTR
-002084 E0                MOVX    A,@DPTR
-002085 2401              ADD     A,#01H
-002087 F9                MOV     R1,A
-002088 E4                CLR     A
-002089 3A                ADDC    A,R2
-00208A FA                MOV     R2,A
-00208B A3                INC     DPTR
-00208C E0                MOVX    A,@DPTR
-00208D 7E00              MOV     R6,#00H
-00208F 29                ADD     A,R1
-002090 F9                MOV     R1,A
-002091 EE                MOV     A,R6
-002092 3A                ADDC    A,R2
-002093 FA                MOV     R2,A
-002094 1203B6            LCALL   ?C?CLDPTR
-002097 FB                MOV     R3,A
-002098 B4D707            CJNE    A,#0D7H,?C0154?KB_PROCESS
-  542: 			{
-  543: 				kb_set_multikey(0x0070);
-00209B 7F70              MOV     R7,#070H
-00209D 1217DC            LCALL   _kb_set_multikey
-  544: 			}
-0020A0 800B              SJMP    ?C0119?KB_PROCESS
-0020A2         ?C0154?KB_PROCESS:
-  545: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
-0020A2 EB                MOV     A,R3
-0020A3 B4D807            CJNE    A,#0D8H,?C0119?KB_PROCESS
-  546: 			{
-  547: 				kb_set_multikey(0x006f);
-0020A6 7F6F              MOV     R7,#06FH
-0020A8 7E00              MOV     R6,#00H
-0020AA 1217DC            LCALL   _kb_set_multikey
-  548: 			}
-0020AD         ?C0119?KB_PROCESS:
-  549: 			
-  550: 			if(mult_key_status == KEY_WAIT_RELEASE)
-0020AD 904DE6            MOV     DPTR,#mult_key_status
+00209E 803F              SJMP    ?C0118?KB_PROCESS
+0020A0         ?C0149?KB_PROCESS:
+  532: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+0020A0 EB                MOV     A,R3
+0020A1 B4D609            CJNE    A,#0D6H,?C0151?KB_PROCESS
+  533: 			{
+  534: 				kb_set_multikey(0x0223);
+0020A4 7F23              MOV     R7,#023H
+0020A6 7E02              MOV     R6,#02H
+0020A8 1217DC            LCALL   _kb_set_multikey
+  535: 			}
+0020AB 8032              SJMP    ?C0118?KB_PROCESS
+0020AD         ?C0151?KB_PROCESS:
+  536: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+0020AD 904E6F            MOV     DPTR,#pEvt
 0020B0 E0                MOVX    A,@DPTR
-0020B1 B40224            CJNE    A,#02H,?C0115?KB_PROCESS
-  551: 			{
-  552: 				mult_key_value = pEvt->ksPool[i];
-0020B4 904E71            MOV     DPTR,#pEvt
-0020B7 E0                MOVX    A,@DPTR
-0020B8 FB                MOV     R3,A
-0020B9 A3                INC     DPTR
-0020BA E0                MOVX    A,@DPTR
-0020BB FA                MOV     R2,A
-0020BC A3                INC     DPTR
-0020BD E0                MOVX    A,@DPTR
-0020BE 2401              ADD     A,#01H
-0020C0 F9                MOV     R1,A
-0020C1 E4                CLR     A
-0020C2 3A                ADDC    A,R2
-0020C3 FA                MOV     R2,A
-0020C4 A3                INC     DPTR
-0020C5 E0                MOVX    A,@DPTR
-0020C6 7E00              MOV     R6,#00H
-0020C8 29                ADD     A,R1
-0020C9 F9                MOV     R1,A
-0020CA EE                MOV     A,R6
-0020CB 3A                ADDC    A,R2
-0020CC FA                MOV     R2,A
-0020CD 1203B6            LCALL   ?C?CLDPTR
-0020D0 904DE5            MOV     DPTR,#mult_key_value
-0020D3 F0                MOVX    @DPTR,A
-  553: 				pEvt->ksPool[i] = 0;
-0020D4 E4                CLR     A
-0020D5 1203FC            LCALL   ?C?CSTPTR
-  554: 			}
-  555: 		}
-  556: 	}
-0020D8         ?C0115?KB_PROCESS:
-0020D8 904E74            MOV     DPTR,#i
-0020DB E0                MOVX    A,@DPTR
-0020DC 04                INC     A
-0020DD F0                MOVX    @DPTR,A
-0020DE 021E71            LJMP    ?C0113?KB_PROCESS
-  557: }
-0020E1         ?C0158?KB_PROCESS:
-0020E1 22                RET     
+0020B1 FB                MOV     R3,A
+0020B2 A3                INC     DPTR
+0020B3 E0                MOVX    A,@DPTR
+0020B4 FA                MOV     R2,A
+0020B5 A3                INC     DPTR
+0020B6 E0                MOVX    A,@DPTR
+0020B7 2401              ADD     A,#01H
+0020B9 F9                MOV     R1,A
+0020BA E4                CLR     A
+0020BB 3A                ADDC    A,R2
+0020BC FA                MOV     R2,A
+0020BD A3                INC     DPTR
+0020BE E0                MOVX    A,@DPTR
+0020BF 7E00              MOV     R6,#00H
+0020C1 29                ADD     A,R1
+0020C2 F9                MOV     R1,A
+0020C3 EE                MOV     A,R6
+0020C4 3A                ADDC    A,R2
+0020C5 FA                MOV     R2,A
+0020C6 1203B6            LCALL   ?C?CLDPTR
+0020C9 FB                MOV     R3,A
+0020CA B4D707            CJNE    A,#0D7H,?C0153?KB_PROCESS
+  537: 			{
+  538: 				kb_set_multikey(0x0070);
+0020CD 7F70              MOV     R7,#070H
+0020CF 1217DC            LCALL   _kb_set_multikey
+  539: 			}
+0020D2 800B              SJMP    ?C0118?KB_PROCESS
+0020D4         ?C0153?KB_PROCESS:
+  540: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+0020D4 EB                MOV     A,R3
+0020D5 B4D807            CJNE    A,#0D8H,?C0118?KB_PROCESS
+  541: 			{
+  542: 				kb_set_multikey(0x006f);
+0020D8 7F6F              MOV     R7,#06FH
+0020DA 7E00              MOV     R6,#00H
+0020DC 1217DC            LCALL   _kb_set_multikey
+  543: 			}
+0020DF         ?C0118?KB_PROCESS:
+  544: 			
+  545: 			if(mult_key_status == KEY_WAIT_RELEASE)
+0020DF 904DE6            MOV     DPTR,#mult_key_status
+0020E2 E0                MOVX    A,@DPTR
+0020E3 B40224            CJNE    A,#02H,?C0114?KB_PROCESS
+  546: 			{
+  547: 				mult_key_value = pEvt->ksPool[i];
+0020E6 904E6F            MOV     DPTR,#pEvt
+0020E9 E0                MOVX    A,@DPTR
+0020EA FB                MOV     R3,A
+0020EB A3                INC     DPTR
+0020EC E0                MOVX    A,@DPTR
+0020ED FA                MOV     R2,A
+0020EE A3                INC     DPTR
+0020EF E0                MOVX    A,@DPTR
+0020F0 2401              ADD     A,#01H
+0020F2 F9                MOV     R1,A
+0020F3 E4                CLR     A
+0020F4 3A                ADDC    A,R2
+0020F5 FA                MOV     R2,A
+0020F6 A3                INC     DPTR
+0020F7 E0                MOVX    A,@DPTR
+0020F8 7E00              MOV     R6,#00H
+0020FA 29                ADD     A,R1
+0020FB F9                MOV     R1,A
+0020FC EE                MOV     A,R6
+0020FD 3A                ADDC    A,R2
+0020FE FA                MOV     R2,A
+0020FF 1203B6            LCALL   ?C?CLDPTR
+002102 904DE5            MOV     DPTR,#mult_key_value
+002105 F0                MOVX    @DPTR,A
+  548: 				pEvt->ksPool[i] = 0;
+002106 E4                CLR     A
+002107 1203FC            LCALL   ?C?CSTPTR
+  549: 			}
+  550: 		}
+  551: 	}
+00210A         ?C0114?KB_PROCESS:
+00210A 904E72            MOV     DPTR,#i
+00210D E0                MOVX    A,@DPTR
+00210E 04                INC     A
+00210F F0                MOVX    @DPTR,A
+002110 021EA4            LJMP    ?C0112?KB_PROCESS
+  552: }
+002113         ?C0157?KB_PROCESS:
+002113 22                RET     
 ----- FUNCTION _kb_multikey_setup (END) -------
 
 
@@ -6125,13 +6168,13 @@
    59: {
    60: 	m_reset_reg = 1;
    61: 	while(1);
-0020E2 908010            MOV     DPTR,#m_reset_reg
-0020E5 7401              MOV     A,#01H
-0020E7 F0                MOVX    @DPTR,A
-0020E8         ?C0004?SYS:
+002114 908010            MOV     DPTR,#m_reset_reg
+002117 7401              MOV     A,#01H
+002119 F0                MOVX    @DPTR,A
+00211A         ?C0004?SYS:
    62: }
-0020E8 80FE              SJMP    ?C0004?SYS
-0020EA 22                RET     
+00211A 80FE              SJMP    ?C0004?SYS
+00211C 22                RET     
 ----- FUNCTION System_Hardware_reset (END) -------
 
 
@@ -6141,7 +6184,7 @@
    76: {
    77: 	System_Hardware_reset();
    78: }
-0020EB 80F5              SJMP    System_Hardware_reset
+00211D 80F5              SJMP    System_Hardware_reset
 ----- FUNCTION System_Reset_Connect (END) -------
 
 
@@ -6149,21 +6192,21 @@
  FILE: 'sys.c'
    85: static void kb_cb_Hid(byte *p,byte len) {
    86: 	//p[0] is hid type,always is 1(kb) now
-0020ED 904E95            MOV     DPTR,#len
-0020F0 ED                MOV     A,R5
-0020F1 F0                MOVX    @DPTR,A
+00211F 904E93            MOV     DPTR,#len
+002122 ED                MOV     A,R5
+002123 F0                MOVX    @DPTR,A
 ;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
    87: 	byte temp = p[1];
-0020F2 900001            MOV     DPTR,#01H
-0020F5 1203CF            LCALL   ?C?CLDOPTR
-0020F8 904E96            MOV     DPTR,#temp
-0020FB F0                MOVX    @DPTR,A
+002124 900001            MOV     DPTR,#01H
+002127 1203CF            LCALL   ?C?CLDOPTR
+00212A 904E94            MOV     DPTR,#temp
+00212D F0                MOVX    @DPTR,A
    88: 
    89: 	if (len<2) {
    90: 		return;
    91: 	}
    92: }
-0020FC 22                RET     
+00212E 22                RET     
 ----- FUNCTION _kb_cb_Hid (END) -------
 
 
@@ -6173,237 +6216,237 @@
   303: {
   304: 	if (g_variable.delay_enter_lpm_timer) 
   305: 	{
-0020FD 904CEA            MOV     DPTR,#g_variable+02BH
-002100 E0                MOVX    A,@DPTR
-002101 6002              JZ      ?C0055?SYS
+00212F 904CEA            MOV     DPTR,#g_variable+02BH
+002132 E0                MOVX    A,@DPTR
+002133 6002              JZ      ?C0055?SYS
   306: 		g_variable.delay_enter_lpm_timer --;
   307: 	}
-002103 14                DEC     A
-002104 F0                MOVX    @DPTR,A
+002135 14                DEC     A
+002136 F0                MOVX    @DPTR,A
   308: 
-002105         ?C0055?SYS:
+002137         ?C0055?SYS:
   309: 	if(g_variable.recon_delay)
-002105 904CEF            MOV     DPTR,#g_variable+030H
-002108 E0                MOVX    A,@DPTR
-002109 6002              JZ      ?C0056?SYS
+002137 904CEF            MOV     DPTR,#g_variable+030H
+00213A E0                MOVX    A,@DPTR
+00213B 6002              JZ      ?C0056?SYS
   310: 		g_variable.recon_delay--;
-00210B 14                DEC     A
-00210C F0                MOVX    @DPTR,A
-00210D         ?C0056?SYS:
+00213D 14                DEC     A
+00213E F0                MOVX    @DPTR,A
+00213F         ?C0056?SYS:
   311: 
   312: 	
   313: 	if(g_variable.one_key_press_wait_release_timer)
-00210D 904CF8            MOV     DPTR,#g_variable+039H
-002110 E0                MOVX    A,@DPTR
-002111 600B              JZ      ?C0057?SYS
+00213F 904CF8            MOV     DPTR,#g_variable+039H
+002142 E0                MOVX    A,@DPTR
+002143 600B              JZ      ?C0057?SYS
   314: 	{
   315: 		g_variable.one_key_press_wait_release_timer--;
-002113 14                DEC     A
-002114 F0                MOVX    @DPTR,A
+002145 14                DEC     A
+002146 F0                MOVX    @DPTR,A
   316: 		if(!g_variable.one_key_press_wait_release_timer)
-002115 E0                MOVX    A,@DPTR
-002116 7006              JNZ     ?C0057?SYS
+002147 E0                MOVX    A,@DPTR
+002148 7006              JNZ     ?C0057?SYS
   317: 			g_variable.key_combination_step = CAMBINATION_KEY_NULL;
-002118 904CF4            MOV     DPTR,#g_variable+035H
-00211B 7406              MOV     A,#06H
-00211D F0                MOVX    @DPTR,A
+00214A 904CF4            MOV     DPTR,#g_variable+035H
+00214D 7406              MOV     A,#06H
+00214F F0                MOVX    @DPTR,A
   318: 	}
-00211E         ?C0057?SYS:
+002150         ?C0057?SYS:
   319: 
   320: 	if (g_variable.powerOn_timer != 0)
-00211E 904CE5            MOV     DPTR,#g_variable+026H
-002121 E0                MOVX    A,@DPTR
-002122 6028              JZ      ?C0059?SYS
+002150 904CE5            MOV     DPTR,#g_variable+026H
+002153 E0                MOVX    A,@DPTR
+002154 6028              JZ      ?C0059?SYS
   321: 	{	
   322: 		if(g_variable.pairing_g24_timeout)
-002124 904CEE            MOV     DPTR,#g_variable+02FH
-002127 E0                MOVX    A,@DPTR
-002128 6006              JZ      ?C0060?SYS
+002156 904CEE            MOV     DPTR,#g_variable+02FH
+002159 E0                MOVX    A,@DPTR
+00215A 6006              JZ      ?C0060?SYS
   323: 		{
   324: 			g_variable.powerOn_timer = 0;
-00212A E4                CLR     A
-00212B 904CE5            MOV     DPTR,#g_variable+026H
-00212E F0                MOVX    @DPTR,A
-00212F 22                RET     
+00215C E4                CLR     A
+00215D 904CE5            MOV     DPTR,#g_variable+026H
+002160 F0                MOVX    @DPTR,A
+002161 22                RET     
   325: 			return;
   326: 		}
-002130         ?C0060?SYS:
+002162         ?C0060?SYS:
   327: 			
   328: 		g_variable.powerOn_timer--;
-002130 904CE5            MOV     DPTR,#g_variable+026H
-002133 E0                MOVX    A,@DPTR
-002134 14                DEC     A
-002135 F0                MOVX    @DPTR,A
+002162 904CE5            MOV     DPTR,#g_variable+026H
+002165 E0                MOVX    A,@DPTR
+002166 14                DEC     A
+002167 F0                MOVX    @DPTR,A
   329: 		GPIO_Setout(G24_LED_GPIO,LED_ON);
-002136 D201              SETB    ?_GPIO_Setout?BIT
-002138 7F1E              MOV     R7,#01EH
-00213A 12079D            LCALL   _GPIO_Setout
+002168 D201              SETB    ?_GPIO_Setout?BIT
+00216A 7F1E              MOV     R7,#01EH
+00216C 12079D            LCALL   _GPIO_Setout
   330: 		if (!g_variable.powerOn_timer)
-00213D 904CE5            MOV     DPTR,#g_variable+026H
-002140 E0                MOVX    A,@DPTR
-002141 705B              JNZ     ?C0063?SYS
+00216F 904CE5            MOV     DPTR,#g_variable+026H
+002172 E0                MOVX    A,@DPTR
+002173 705B              JNZ     ?C0063?SYS
   331: 		{
   332: 			GPIO_Setout(G24_LED_GPIO,LED_OFF);
-002143 C201              CLR     ?_GPIO_Setout?BIT
-002145 7F1E              MOV     R7,#01EH
-002147 12079D            LCALL   _GPIO_Setout
+002175 C201              CLR     ?_GPIO_Setout?BIT
+002177 7F1E              MOV     R7,#01EH
+002179 12079D            LCALL   _GPIO_Setout
   333: 		}
   334: 	}
-00214A 8052              SJMP    ?C0063?SYS
-00214C         ?C0059?SYS:
+00217C 8052              SJMP    ?C0063?SYS
+00217E         ?C0059?SYS:
   335: 	else if (g_variable.pairing_g24_timeout != 0)
-00214C 904CEE            MOV     DPTR,#g_variable+02FH
-00214F E0                MOVX    A,@DPTR
-002150 6011              JZ      ?C0064?SYS
+00217E 904CEE            MOV     DPTR,#g_variable+02FH
+002181 E0                MOVX    A,@DPTR
+002182 6011              JZ      ?C0064?SYS
   336: 	{
   337: 		g_variable.g24_pairing_timer++;
-002152 904CE8            MOV     DPTR,#g_variable+029H
-002155 E0                MOVX    A,@DPTR
-002156 04                INC     A
-002157 F0                MOVX    @DPTR,A
+002184 904CE8            MOV     DPTR,#g_variable+029H
+002187 E0                MOVX    A,@DPTR
+002188 04                INC     A
+002189 F0                MOVX    @DPTR,A
   338: 		if(g_variable.g24_pairing_timer & 0x02)
-002158 E0                MOVX    A,@DPTR
-002159 30E142            JNB     ACC.1,?C0063?SYS
+00218A E0                MOVX    A,@DPTR
+00218B 30E142            JNB     ACC.1,?C0063?SYS
   339: 			GPIO_FlipOutBit(G24_LED_GPIO);
-00215C 7F1E              MOV     R7,#01EH
-00215E 1217C0            LCALL   _GPIO_FlipOutBit
+00218E 7F1E              MOV     R7,#01EH
+002190 1217C0            LCALL   _GPIO_FlipOutBit
   340: 	}
-002161 803B              SJMP    ?C0063?SYS
-002163         ?C0064?SYS:
+002193 803B              SJMP    ?C0063?SYS
+002195         ?C0064?SYS:
   341: 	else	if (g_variable.pairing_g24_timeout == 0) //bt  pairing
-002163 904CEE            MOV     DPTR,#g_variable+02FH
-002166 E0                MOVX    A,@DPTR
-002167 7035              JNZ     ?C0063?SYS
+002195 904CEE            MOV     DPTR,#g_variable+02FH
+002198 E0                MOVX    A,@DPTR
+002199 7035              JNZ     ?C0063?SYS
   342: 	{
   343: 		if(g_variable.battery_low_led_flash_interval)
-002169 904CE2            MOV     DPTR,#g_variable+023H
-00216C E0                MOVX    A,@DPTR
-00216D 602F              JZ      ?C0063?SYS
+00219B 904CE2            MOV     DPTR,#g_variable+023H
+00219E E0                MOVX    A,@DPTR
+00219F 602F              JZ      ?C0063?SYS
   344: 		{
   345: 			g_variable.battery_low_led_flash_interval--;
-00216F 14                DEC     A
-002170 F0                MOVX    @DPTR,A
+0021A1 14                DEC     A
+0021A2 F0                MOVX    @DPTR,A
   346: 			if(g_variable.battery_low_led_flash_interval < 8)
-002171 E0                MOVX    A,@DPTR
-002172 FF                MOV     R7,A
-002173 C3                CLR     C
-002174 9408              SUBB    A,#08H
-002176 5016              JNC     ?C0069?SYS
+0021A3 E0                MOVX    A,@DPTR
+0021A4 FF                MOV     R7,A
+0021A5 C3                CLR     C
+0021A6 9408              SUBB    A,#08H
+0021A8 5016              JNC     ?C0069?SYS
   347: 			{
   348: 				if(g_variable.battery_low_led_flash_interval & 0x02)
-002178 EF                MOV     A,R7
-002179 30E109            JNB     ACC.1,?C0070?SYS
+0021AA EF                MOV     A,R7
+0021AB 30E109            JNB     ACC.1,?C0070?SYS
   349: 				{
   350: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_ON);
-00217C D201              SETB    ?_GPIO_Setout?BIT
-00217E 7F1E              MOV     R7,#01EH
-002180 12079D            LCALL   _GPIO_Setout
+0021AE D201              SETB    ?_GPIO_Setout?BIT
+0021B0 7F1E              MOV     R7,#01EH
+0021B2 12079D            LCALL   _GPIO_Setout
   351: 				}
-002183 8010              SJMP    ?C0072?SYS
-002185         ?C0070?SYS:
+0021B5 8010              SJMP    ?C0072?SYS
+0021B7         ?C0070?SYS:
   352: 				else
   353: 				{
   354: 					GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);	
-002185 C201              CLR     ?_GPIO_Setout?BIT
-002187 7F1E              MOV     R7,#01EH
-002189 12079D            LCALL   _GPIO_Setout
+0021B7 C201              CLR     ?_GPIO_Setout?BIT
+0021B9 7F1E              MOV     R7,#01EH
+0021BB 12079D            LCALL   _GPIO_Setout
   355: 				}	
   356: 			}
-00218C 8007              SJMP    ?C0072?SYS
-00218E         ?C0069?SYS:
+0021BE 8007              SJMP    ?C0072?SYS
+0021C0         ?C0069?SYS:
   357: 			else
   358: 				GPIO_Setout(LOWPOWER_LED_GPIO, LED_OFF);
-00218E C201              CLR     ?_GPIO_Setout?BIT
-002190 7F1E              MOV     R7,#01EH
-002192 12079D            LCALL   _GPIO_Setout
-002195         ?C0072?SYS:
+0021C0 C201              CLR     ?_GPIO_Setout?BIT
+0021C2 7F1E              MOV     R7,#01EH
+0021C4 12079D            LCALL   _GPIO_Setout
+0021C7         ?C0072?SYS:
   359: 			if(!g_variable.battery_low_led_flash_interval)
-002195 904CE2            MOV     DPTR,#g_variable+023H
-002198 E0                MOVX    A,@DPTR
-002199 7003              JNZ     ?C0063?SYS
+0021C7 904CE2            MOV     DPTR,#g_variable+023H
+0021CA E0                MOVX    A,@DPTR
+0021CB 7003              JNZ     ?C0063?SYS
   360: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
-00219B 7414              MOV     A,#014H
-00219D F0                MOVX    @DPTR,A
+0021CD 7414              MOV     A,#014H
+0021CF F0                MOVX    @DPTR,A
   361: 		}
   362: 	}
-00219E         ?C0063?SYS:
+0021D0         ?C0063?SYS:
   363: 	
   364: // The dongle must receive data within 200ms, otherwise it will be forced to lift
   365: 	if(!long_press_flag)
-00219E 904DD5            MOV     DPTR,#long_press_flag
-0021A1 E0                MOVX    A,@DPTR
-0021A2 7036              JNZ     ?C0074?SYS
+0021D0 904DD5            MOV     DPTR,#long_press_flag
+0021D3 E0                MOVX    A,@DPTR
+0021D4 7036              JNZ     ?C0074?SYS
   366: 	{
   367: 		if (repeat_send_24g == 1)
-0021A4 904DD6            MOV     DPTR,#repeat_send_24g
-0021A7 E0                MOVX    A,@DPTR
-0021A8 6401              XRL     A,#01H
-0021AA 702E              JNZ     ?C0074?SYS
+0021D6 904DD6            MOV     DPTR,#repeat_send_24g
+0021D9 E0                MOVX    A,@DPTR
+0021DA 6401              XRL     A,#01H
+0021DC 702E              JNZ     ?C0074?SYS
   368: 		{
   369: 			g_variable.sleepTimer = 0;
-0021AC 904CE3            MOV     DPTR,#g_variable+024H
-0021AF F0                MOVX    @DPTR,A
-0021B0 A3                INC     DPTR
-0021B1 F0                MOVX    @DPTR,A
+0021DE 904CE3            MOV     DPTR,#g_variable+024H
+0021E1 F0                MOVX    @DPTR,A
+0021E2 A3                INC     DPTR
+0021E3 F0                MOVX    @DPTR,A
   370: 			repeat_send_24g = 0;
-0021B2 904DD6            MOV     DPTR,#repeat_send_24g
-0021B5 F0                MOVX    @DPTR,A
+0021E4 904DD6            MOV     DPTR,#repeat_send_24g
+0021E7 F0                MOVX    @DPTR,A
   371: 
   372: 			 if (multikey[0] != 0)
-0021B6 904DE7            MOV     DPTR,#multikey
-0021B9 E0                MOVX    A,@DPTR
-0021BA 600D              JZ      ?C0076?SYS
+0021E8 904DE7            MOV     DPTR,#multikey
+0021EB E0                MOVX    A,@DPTR
+0021EC 600D              JZ      ?C0076?SYS
   373: 			{
   374: 				IPC_TxHidData(multikey, 3);
-0021BC 7B01              MOV     R3,#01H
-0021BE 7A4D              MOV     R2,#HIGH multikey
-0021C0 79E7              MOV     R1,#LOW multikey
-0021C2 7D03              MOV     R5,#03H
-0021C4 120A82            LCALL   _IPC_TxHidData
+0021EE 7B01              MOV     R3,#01H
+0021F0 7A4D              MOV     R2,#HIGH multikey
+0021F2 79E7              MOV     R1,#LOW multikey
+0021F4 7D03              MOV     R5,#03H
+0021F6 120A82            LCALL   _IPC_TxHidData
   375: 			}
-0021C7 8011              SJMP    ?C0074?SYS
-0021C9         ?C0076?SYS:
+0021F9 8011              SJMP    ?C0074?SYS
+0021FB         ?C0076?SYS:
   376: 			else if (hidBuff[0] != 0)
-0021C9 904800            MOV     DPTR,#hidBuff
-0021CC E0                MOVX    A,@DPTR
-0021CD 600B              JZ      ?C0074?SYS
+0021FB 904800            MOV     DPTR,#hidBuff
+0021FE E0                MOVX    A,@DPTR
+0021FF 600B              JZ      ?C0074?SYS
   377: 			{
   378: 
   379: 				IPC_TxHidData(hidBuff,9);
-0021CF 7B01              MOV     R3,#01H
-0021D1 7A48              MOV     R2,#HIGH hidBuff
-0021D3 7900              MOV     R1,#LOW hidBuff
-0021D5 7D09              MOV     R5,#09H
-0021D7 120A82            LCALL   _IPC_TxHidData
+002201 7B01              MOV     R3,#01H
+002203 7A48              MOV     R2,#HIGH hidBuff
+002205 7900              MOV     R1,#LOW hidBuff
+002207 7D09              MOV     R5,#09H
+002209 120A82            LCALL   _IPC_TxHidData
   380: 			}
   381: 		}
   382: 	}
-0021DA         ?C0074?SYS:
+00220C         ?C0074?SYS:
   383: 
   384: 	if (delayChgInvTimer != 0)
-0021DA 904DDF            MOV     DPTR,#delayChgInvTimer
-0021DD E0                MOVX    A,@DPTR
-0021DE 600E              JZ      ?C0061?SYS
+00220C 904DDF            MOV     DPTR,#delayChgInvTimer
+00220F E0                MOVX    A,@DPTR
+002210 600E              JZ      ?C0061?SYS
   385: 	{
   386: 		delayChgInvTimer--;
-0021E0 E0                MOVX    A,@DPTR
-0021E1 14                DEC     A
-0021E2 F0                MOVX    @DPTR,A
+002212 E0                MOVX    A,@DPTR
+002213 14                DEC     A
+002214 F0                MOVX    @DPTR,A
   387: 		if(!delayChgInvTimer && m_24g_led_flag)
-0021E3 E0                MOVX    A,@DPTR
-0021E4 7008              JNZ     ?C0061?SYS
-0021E6 904D47            MOV     DPTR,#m_24g_led_flag
-0021E9 E0                MOVX    A,@DPTR
-0021EA 6002              JZ      ?C0061?SYS
+002215 E0                MOVX    A,@DPTR
+002216 7008              JNZ     ?C0061?SYS
+002218 904D47            MOV     DPTR,#m_24g_led_flag
+00221B E0                MOVX    A,@DPTR
+00221C 6002              JZ      ?C0061?SYS
   388: 		{
   389: 			m_24g_led_flag = 0;
-0021EC E4                CLR     A
-0021ED F0                MOVX    @DPTR,A
+00221E E4                CLR     A
+00221F F0                MOVX    @DPTR,A
   390: 		}
   391: 	}
   392: }
-0021EE         ?C0061?SYS:
-0021EE 22                RET     
+002220         ?C0061?SYS:
+002220 22                RET     
 ----- FUNCTION kb_cb_Timer100ms (END) -------
 
 
@@ -6415,13 +6458,13 @@
     6: 	byte i;
     7: 	
     8: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
-0021EF 904CD3            MOV     DPTR,#g_variable+014H
-0021F2 7405              MOV     A,#05H
-0021F4 F0                MOVX    @DPTR,A
+002221 904CD3            MOV     DPTR,#g_variable+014H
+002224 7405              MOV     A,#05H
+002226 F0                MOVX    @DPTR,A
     9: 	g_variable.battery_value_index = 0;
-0021F5 E4                CLR     A
-0021F6 A3                INC     DPTR
-0021F7 F0                MOVX    @DPTR,A
+002227 E4                CLR     A
+002228 A3                INC     DPTR
+002229 F0                MOVX    @DPTR,A
    10: 
    11: #ifdef ADC_TYPE_HVIN 	
    12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
@@ -6442,131 +6485,131 @@
    27: #endif
    28: #ifdef ADC_TYPE_GPIO
    29: 	m_adc_channel = ADC_CHANNEL;
-0021F8 904C90            MOV     DPTR,#m_adc_channel
-0021FB 7437              MOV     A,#037H
-0021FD F0                MOVX    @DPTR,A
+00222A 904C90            MOV     DPTR,#m_adc_channel
+00222D 7437              MOV     A,#037H
+00222F F0                MOVX    @DPTR,A
    30: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
 ;---- Variable 'i' assigned to Register 'R7' ----
-0021FE E4                CLR     A
-0021FF FF                MOV     R7,A
-002200         ?C0001?ADC:
+002230 E4                CLR     A
+002231 FF                MOV     R7,A
+002232         ?C0001?ADC:
    31: 	{
    32: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE_GPIO;
-002200 EF                MOV     A,R7
-002201 25E0              ADD     A,ACC
-002203 24D6              ADD     A,#LOW g_variable+017H
-002205 F582              MOV     DPL,A
-002207 E4                CLR     A
-002208 344C              ADDC    A,#HIGH g_variable+017H
-00220A F583              MOV     DPH,A
-00220C 7479              MOV     A,#079H
-00220E F0                MOVX    @DPTR,A
-00220F A3                INC     DPTR
-002210 7490              MOV     A,#090H
-002212 F0                MOVX    @DPTR,A
+002232 EF                MOV     A,R7
+002233 25E0              ADD     A,ACC
+002235 24D6              ADD     A,#LOW g_variable+017H
+002237 F582              MOV     DPL,A
+002239 E4                CLR     A
+00223A 344C              ADDC    A,#HIGH g_variable+017H
+00223C F583              MOV     DPH,A
+00223E 7479              MOV     A,#079H
+002240 F0                MOVX    @DPTR,A
+002241 A3                INC     DPTR
+002242 7490              MOV     A,#090H
+002244 F0                MOVX    @DPTR,A
    33: 	}
-002213 0F                INC     R7
-002214 EF                MOV     A,R7
-002215 B404E8            CJNE    A,#04H,?C0001?ADC
-002218         ?C0002?ADC:
+002245 0F                INC     R7
+002246 EF                MOV     A,R7
+002247 B404E8            CJNE    A,#04H,?C0001?ADC
+00224A         ?C0002?ADC:
    34: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V1+m_adc0vBase;
-002218 904C91            MOV     DPTR,#m_adc0vBase
-00221B E0                MOVX    A,@DPTR
-00221C FE                MOV     R6,A
-00221D A3                INC     DPTR
-00221E E0                MOVX    A,@DPTR
-00221F FF                MOV     R7,A
-002220 C3                CLR     C
-002221 904C94            MOV     DPTR,#m_adc3vValue+01H
-002224 E0                MOVX    A,@DPTR
-002225 9F                SUBB    A,R7
-002226 FD                MOV     R5,A
-002227 904C93            MOV     DPTR,#m_adc3vValue
-00222A E0                MOVX    A,@DPTR
-00222B 9E                SUBB    A,R6
-00222C FC                MOV     R4,A
-00222D E4                CLR     A
-00222E 120206            LCALL   ?C?FCASTI
-002231 7BC3              MOV     R3,#0C3H
-002233 7AF5              MOV     R2,#0F5H
-002235 79A8              MOV     R1,#0A8H
-002237 783E              MOV     R0,#03EH
-002239 1200FB            LCALL   ?C?FPMUL
-00223C C004              PUSH    AR4
-00223E C005              PUSH    AR5
-002240 C006              PUSH    AR6
-002242 C007              PUSH    AR7
-002244 904C91            MOV     DPTR,#m_adc0vBase
-002247 E0                MOVX    A,@DPTR
-002248 FC                MOV     R4,A
-002249 A3                INC     DPTR
-00224A E0                MOVX    A,@DPTR
-00224B FD                MOV     R5,A
-00224C E4                CLR     A
-00224D 120206            LCALL   ?C?FCASTI
-002250 D003              POP     AR3
-002252 D002              POP     AR2
-002254 D001              POP     AR1
-002256 D000              POP     AR0
-002258 12000A            LCALL   ?C?FPADD
-00225B 12023F            LCALL   ?C?CASTF
-00225E 904CDE            MOV     DPTR,#g_variable+01FH
-002261 EE                MOV     A,R6
-002262 F0                MOVX    @DPTR,A
-002263 A3                INC     DPTR
-002264 EF                MOV     A,R7
-002265 F0                MOVX    @DPTR,A
-   35: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
-002266 904C91            MOV     DPTR,#m_adc0vBase
-002269 E0                MOVX    A,@DPTR
-00226A FE                MOV     R6,A
-00226B A3                INC     DPTR
-00226C E0                MOVX    A,@DPTR
-00226D FF                MOV     R7,A
-00226E C3                CLR     C
-00226F 904C94            MOV     DPTR,#m_adc3vValue+01H
-002272 E0                MOVX    A,@DPTR
-002273 9F                SUBB    A,R7
-002274 FD                MOV     R5,A
-002275 904C93            MOV     DPTR,#m_adc3vValue
-002278 E0                MOVX    A,@DPTR
-002279 9E                SUBB    A,R6
+00224A 904C91            MOV     DPTR,#m_adc0vBase
+00224D E0                MOVX    A,@DPTR
+00224E FE                MOV     R6,A
+00224F A3                INC     DPTR
+002250 E0                MOVX    A,@DPTR
+002251 FF                MOV     R7,A
+002252 C3                CLR     C
+002253 904C94            MOV     DPTR,#m_adc3vValue+01H
+002256 E0                MOVX    A,@DPTR
+002257 9F                SUBB    A,R7
+002258 FD                MOV     R5,A
+002259 904C93            MOV     DPTR,#m_adc3vValue
+00225C E0                MOVX    A,@DPTR
+00225D 9E                SUBB    A,R6
+00225E FC                MOV     R4,A
+00225F E4                CLR     A
+002260 120206            LCALL   ?C?FCASTI
+002263 7BC3              MOV     R3,#0C3H
+002265 7AF5              MOV     R2,#0F5H
+002267 79A8              MOV     R1,#0A8H
+002269 783E              MOV     R0,#03EH
+00226B 1200FB            LCALL   ?C?FPMUL
+00226E C004              PUSH    AR4
+002270 C005              PUSH    AR5
+002272 C006              PUSH    AR6
+002274 C007              PUSH    AR7
+002276 904C91            MOV     DPTR,#m_adc0vBase
+002279 E0                MOVX    A,@DPTR
 00227A FC                MOV     R4,A
-00227B E4                CLR     A
-00227C 120206            LCALL   ?C?FCASTI
-00227F 7B5C              MOV     R3,#05CH
-002281 7A8F              MOV     R2,#08FH
-002283 7942              MOV     R1,#042H
-002285 783E              MOV     R0,#03EH
-002287 1200FB            LCALL   ?C?FPMUL
-00228A C004              PUSH    AR4
-00228C C005              PUSH    AR5
-00228E C006              PUSH    AR6
-002290 C007              PUSH    AR7
-002292 904C91            MOV     DPTR,#m_adc0vBase
-002295 E0                MOVX    A,@DPTR
-002296 FC                MOV     R4,A
-002297 A3                INC     DPTR
-002298 E0                MOVX    A,@DPTR
-002299 FD                MOV     R5,A
-00229A E4                CLR     A
-00229B 120206            LCALL   ?C?FCASTI
-00229E D003              POP     AR3
-0022A0 D002              POP     AR2
-0022A2 D001              POP     AR1
-0022A4 D000              POP     AR0
-0022A6 12000A            LCALL   ?C?FPADD
-0022A9 12023F            LCALL   ?C?CASTF
-0022AC 904CE0            MOV     DPTR,#g_variable+021H
-0022AF EE                MOV     A,R6
-0022B0 F0                MOVX    @DPTR,A
-0022B1 A3                INC     DPTR
-0022B2 EF                MOV     A,R7
-0022B3 F0                MOVX    @DPTR,A
+00227B A3                INC     DPTR
+00227C E0                MOVX    A,@DPTR
+00227D FD                MOV     R5,A
+00227E E4                CLR     A
+00227F 120206            LCALL   ?C?FCASTI
+002282 D003              POP     AR3
+002284 D002              POP     AR2
+002286 D001              POP     AR1
+002288 D000              POP     AR0
+00228A 12000A            LCALL   ?C?FPADD
+00228D 12023F            LCALL   ?C?CASTF
+002290 904CDE            MOV     DPTR,#g_variable+01FH
+002293 EE                MOV     A,R6
+002294 F0                MOVX    @DPTR,A
+002295 A3                INC     DPTR
+002296 EF                MOV     A,R7
+002297 F0                MOVX    @DPTR,A
+   35: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+002298 904C91            MOV     DPTR,#m_adc0vBase
+00229B E0                MOVX    A,@DPTR
+00229C FE                MOV     R6,A
+00229D A3                INC     DPTR
+00229E E0                MOVX    A,@DPTR
+00229F FF                MOV     R7,A
+0022A0 C3                CLR     C
+0022A1 904C94            MOV     DPTR,#m_adc3vValue+01H
+0022A4 E0                MOVX    A,@DPTR
+0022A5 9F                SUBB    A,R7
+0022A6 FD                MOV     R5,A
+0022A7 904C93            MOV     DPTR,#m_adc3vValue
+0022AA E0                MOVX    A,@DPTR
+0022AB 9E                SUBB    A,R6
+0022AC FC                MOV     R4,A
+0022AD E4                CLR     A
+0022AE 120206            LCALL   ?C?FCASTI
+0022B1 7B5C              MOV     R3,#05CH
+0022B3 7A8F              MOV     R2,#08FH
+0022B5 7942              MOV     R1,#042H
+0022B7 783E              MOV     R0,#03EH
+0022B9 1200FB            LCALL   ?C?FPMUL
+0022BC C004              PUSH    AR4
+0022BE C005              PUSH    AR5
+0022C0 C006              PUSH    AR6
+0022C2 C007              PUSH    AR7
+0022C4 904C91            MOV     DPTR,#m_adc0vBase
+0022C7 E0                MOVX    A,@DPTR
+0022C8 FC                MOV     R4,A
+0022C9 A3                INC     DPTR
+0022CA E0                MOVX    A,@DPTR
+0022CB FD                MOV     R5,A
+0022CC E4                CLR     A
+0022CD 120206            LCALL   ?C?FCASTI
+0022D0 D003              POP     AR3
+0022D2 D002              POP     AR2
+0022D4 D001              POP     AR1
+0022D6 D000              POP     AR0
+0022D8 12000A            LCALL   ?C?FPADD
+0022DB 12023F            LCALL   ?C?CASTF
+0022DE 904CE0            MOV     DPTR,#g_variable+021H
+0022E1 EE                MOV     A,R6
+0022E2 F0                MOVX    @DPTR,A
+0022E3 A3                INC     DPTR
+0022E4 EF                MOV     A,R7
+0022E5 F0                MOVX    @DPTR,A
    36: #endif	
    37: #endif
    38: }
-0022B4 22                RET     
+0022E6 22                RET     
 ----- FUNCTION YC_adc_init (END) -------
 
 
@@ -6577,586 +6620,586 @@
    42: #ifdef  ADC_ENABLE
    43: 	byte i;
    44: 	ulong batValue = 0;
-0022B5 904E68            MOV     DPTR,#batValue
-0022B8 120533            LCALL   ?C?LSTKXDATA
-0022BB 00                DB      00H
-0022BC 00                DB      00H
-0022BD 00                DB      00H
-0022BE 00                DB      00H
+0022E7 904E66            MOV     DPTR,#batValue
+0022EA 120533            LCALL   ?C?LSTKXDATA
+0022ED 00                DB      00H
+0022EE 00                DB      00H
+0022EF 00                DB      00H
+0022F0 00                DB      00H
    45: 
    46: 	if(!m_adcCurrentValue)
-0022BF 904C95            MOV     DPTR,#m_adcCurrentValue
-0022C2 E0                MOVX    A,@DPTR
-0022C3 7002              JNZ     ?C0020?ADC
-0022C5 A3                INC     DPTR
-0022C6 E0                MOVX    A,@DPTR
-0022C7         ?C0020?ADC:
-0022C7 7002              JNZ     $ + 4H
-0022C9 61D4              AJMP    ?C0006?ADC
-0022CB         ?C0005?ADC:
+0022F1 904C95            MOV     DPTR,#m_adcCurrentValue
+0022F4 E0                MOVX    A,@DPTR
+0022F5 7002              JNZ     ?C0020?ADC
+0022F7 A3                INC     DPTR
+0022F8 E0                MOVX    A,@DPTR
+0022F9         ?C0020?ADC:
+0022F9 7002              JNZ     $ + 4H
+0022FB 8106              AJMP    ?C0006?ADC
+0022FD         ?C0005?ADC:
    47: 		return;
    48: 
    49: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
-0022CB 904C95            MOV     DPTR,#m_adcCurrentValue
-0022CE E0                MOVX    A,@DPTR
-0022CF FE                MOV     R6,A
-0022D0 A3                INC     DPTR
-0022D1 E0                MOVX    A,@DPTR
-0022D2 FF                MOV     R7,A
-0022D3 904CD4            MOV     DPTR,#g_variable+015H
-0022D6 E0                MOVX    A,@DPTR
-0022D7 FD                MOV     R5,A
-0022D8 04                INC     A
-0022D9 F0                MOVX    @DPTR,A
-0022DA ED                MOV     A,R5
-0022DB 25E0              ADD     A,ACC
-0022DD 24D6              ADD     A,#LOW g_variable+017H
-0022DF F582              MOV     DPL,A
-0022E1 E4                CLR     A
-0022E2 344C              ADDC    A,#HIGH g_variable+017H
-0022E4 F583              MOV     DPH,A
-0022E6 EE                MOV     A,R6
-0022E7 F0                MOVX    @DPTR,A
-0022E8 A3                INC     DPTR
-0022E9 EF                MOV     A,R7
-0022EA F0                MOVX    @DPTR,A
-   50: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
-0022EB 904CD4            MOV     DPTR,#g_variable+015H
-0022EE E0                MOVX    A,@DPTR
-0022EF C3                CLR     C
-0022F0 9404              SUBB    A,#04H
-0022F2 4002              JC      ?C0007?ADC
-   51: 		g_variable.battery_value_index = 0;
-0022F4 E4                CLR     A
-0022F5 F0                MOVX    @DPTR,A
-0022F6         ?C0007?ADC:
-   52: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
-0022F6 E4                CLR     A
-0022F7 904E67            MOV     DPTR,#i
-0022FA F0                MOVX    @DPTR,A
-0022FB         ?C0008?ADC:
-   53: 	{
-   54: 		batValue += g_variable.battery_value[i];
-0022FB 904E68            MOV     DPTR,#batValue
-0022FE E0                MOVX    A,@DPTR
-0022FF F8                MOV     R0,A
-002300 A3                INC     DPTR
-002301 E0                MOVX    A,@DPTR
-002302 F9                MOV     R1,A
-002303 A3                INC     DPTR
-002304 E0                MOVX    A,@DPTR
-002305 FA                MOV     R2,A
-002306 A3                INC     DPTR
-002307 E0                MOVX    A,@DPTR
-002308 FB                MOV     R3,A
-002309 904E67            MOV     DPTR,#i
-00230C E0                MOVX    A,@DPTR
+0022FD 904C95            MOV     DPTR,#m_adcCurrentValue
+002300 E0                MOVX    A,@DPTR
+002301 FE                MOV     R6,A
+002302 A3                INC     DPTR
+002303 E0                MOVX    A,@DPTR
+002304 FF                MOV     R7,A
+002305 904CD4            MOV     DPTR,#g_variable+015H
+002308 E0                MOVX    A,@DPTR
+002309 FD                MOV     R5,A
+00230A 04                INC     A
+00230B F0                MOVX    @DPTR,A
+00230C ED                MOV     A,R5
 00230D 25E0              ADD     A,ACC
 00230F 24D6              ADD     A,#LOW g_variable+017H
 002311 F582              MOV     DPL,A
 002313 E4                CLR     A
 002314 344C              ADDC    A,#HIGH g_variable+017H
 002316 F583              MOV     DPH,A
-002318 E0                MOVX    A,@DPTR
-002319 FE                MOV     R6,A
+002318 EE                MOV     A,R6
+002319 F0                MOVX    @DPTR,A
 00231A A3                INC     DPTR
-00231B E0                MOVX    A,@DPTR
-00231C FF                MOV     R7,A
-00231D E4                CLR     A
-00231E FC                MOV     R4,A
-00231F FD                MOV     R5,A
-002320 EB                MOV     A,R3
-002321 2F                ADD     A,R7
-002322 FF                MOV     R7,A
-002323 EA                MOV     A,R2
-002324 3E                ADDC    A,R6
-002325 FE                MOV     R6,A
-002326 ED                MOV     A,R5
-002327 39                ADDC    A,R1
-002328 FD                MOV     R5,A
-002329 EC                MOV     A,R4
-00232A 38                ADDC    A,R0
-00232B FC                MOV     R4,A
-00232C 904E68            MOV     DPTR,#batValue
-00232F 120527            LCALL   ?C?LSTXDATA
+00231B EF                MOV     A,R7
+00231C F0                MOVX    @DPTR,A
+   50: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+00231D 904CD4            MOV     DPTR,#g_variable+015H
+002320 E0                MOVX    A,@DPTR
+002321 C3                CLR     C
+002322 9404              SUBB    A,#04H
+002324 4002              JC      ?C0007?ADC
+   51: 		g_variable.battery_value_index = 0;
+002326 E4                CLR     A
+002327 F0                MOVX    @DPTR,A
+002328         ?C0007?ADC:
+   52: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+002328 E4                CLR     A
+002329 904E65            MOV     DPTR,#i
+00232C F0                MOVX    @DPTR,A
+00232D         ?C0008?ADC:
+   53: 	{
+   54: 		batValue += g_variable.battery_value[i];
+00232D 904E66            MOV     DPTR,#batValue
+002330 E0                MOVX    A,@DPTR
+002331 F8                MOV     R0,A
+002332 A3                INC     DPTR
+002333 E0                MOVX    A,@DPTR
+002334 F9                MOV     R1,A
+002335 A3                INC     DPTR
+002336 E0                MOVX    A,@DPTR
+002337 FA                MOV     R2,A
+002338 A3                INC     DPTR
+002339 E0                MOVX    A,@DPTR
+00233A FB                MOV     R3,A
+00233B 904E65            MOV     DPTR,#i
+00233E E0                MOVX    A,@DPTR
+00233F 25E0              ADD     A,ACC
+002341 24D6              ADD     A,#LOW g_variable+017H
+002343 F582              MOV     DPL,A
+002345 E4                CLR     A
+002346 344C              ADDC    A,#HIGH g_variable+017H
+002348 F583              MOV     DPH,A
+00234A E0                MOVX    A,@DPTR
+00234B FE                MOV     R6,A
+00234C A3                INC     DPTR
+00234D E0                MOVX    A,@DPTR
+00234E FF                MOV     R7,A
+00234F E4                CLR     A
+002350 FC                MOV     R4,A
+002351 FD                MOV     R5,A
+002352 EB                MOV     A,R3
+002353 2F                ADD     A,R7
+002354 FF                MOV     R7,A
+002355 EA                MOV     A,R2
+002356 3E                ADDC    A,R6
+002357 FE                MOV     R6,A
+002358 ED                MOV     A,R5
+002359 39                ADDC    A,R1
+00235A FD                MOV     R5,A
+00235B EC                MOV     A,R4
+00235C 38                ADDC    A,R0
+00235D FC                MOV     R4,A
+00235E 904E66            MOV     DPTR,#batValue
+002361 120527            LCALL   ?C?LSTXDATA
    55: 	}
-002332 904E67            MOV     DPTR,#i
-002335 E0                MOVX    A,@DPTR
-002336 04                INC     A
-002337 F0                MOVX    @DPTR,A
-002338 E0                MOVX    A,@DPTR
-002339 B404BF            CJNE    A,#04H,?C0008?ADC
-00233C         ?C0009?ADC:
+002364 904E65            MOV     DPTR,#i
+002367 E0                MOVX    A,@DPTR
+002368 04                INC     A
+002369 F0                MOVX    @DPTR,A
+00236A E0                MOVX    A,@DPTR
+00236B B404BF            CJNE    A,#04H,?C0008?ADC
+00236E         ?C0009?ADC:
    56: 	batValue = batValue/BAT_ARRAY_LEN;
-00233C 904E68            MOV     DPTR,#batValue
-00233F E0                MOVX    A,@DPTR
-002340 FC                MOV     R4,A
-002341 A3                INC     DPTR
-002342 E0                MOVX    A,@DPTR
-002343 FD                MOV     R5,A
-002344 A3                INC     DPTR
-002345 E0                MOVX    A,@DPTR
-002346 FE                MOV     R6,A
-002347 A3                INC     DPTR
-002348 E0                MOVX    A,@DPTR
-002349 FF                MOV     R7,A
-00234A E4                CLR     A
-00234B 7B04              MOV     R3,#04H
-00234D FA                MOV     R2,A
-00234E F9                MOV     R1,A
-00234F F8                MOV     R0,A
-002350 120476            LCALL   ?C?ULDIV
-002353 904E68            MOV     DPTR,#batValue
-002356 120527            LCALL   ?C?LSTXDATA
+00236E 904E66            MOV     DPTR,#batValue
+002371 E0                MOVX    A,@DPTR
+002372 FC                MOV     R4,A
+002373 A3                INC     DPTR
+002374 E0                MOVX    A,@DPTR
+002375 FD                MOV     R5,A
+002376 A3                INC     DPTR
+002377 E0                MOVX    A,@DPTR
+002378 FE                MOV     R6,A
+002379 A3                INC     DPTR
+00237A E0                MOVX    A,@DPTR
+00237B FF                MOV     R7,A
+00237C E4                CLR     A
+00237D 7B04              MOV     R3,#04H
+00237F FA                MOV     R2,A
+002380 F9                MOV     R1,A
+002381 F8                MOV     R0,A
+002382 120476            LCALL   ?C?ULDIV
+002385 904E66            MOV     DPTR,#batValue
+002388 120527            LCALL   ?C?LSTXDATA
    57: 
    58: 	if(batValue < g_variable.battery_level_shutdown)
-002359 904CE0            MOV     DPTR,#g_variable+021H
-00235C E0                MOVX    A,@DPTR
-00235D FE                MOV     R6,A
-00235E A3                INC     DPTR
-00235F E0                MOVX    A,@DPTR
-002360 FF                MOV     R7,A
-002361 E4                CLR     A
-002362 FC                MOV     R4,A
-002363 FD                MOV     R5,A
-002364 904E68            MOV     DPTR,#batValue
-002367 E0                MOVX    A,@DPTR
-002368 F8                MOV     R0,A
-002369 A3                INC     DPTR
-00236A E0                MOVX    A,@DPTR
-00236B F9                MOV     R1,A
-00236C A3                INC     DPTR
-00236D E0                MOVX    A,@DPTR
-00236E FA                MOV     R2,A
-00236F A3                INC     DPTR
-002370 E0                MOVX    A,@DPTR
-002371 FB                MOV     R3,A
-002372 C3                CLR     C
-002373 120516            LCALL   ?C?ULCMP
-002376 5007              JNC     ?C0011?ADC
+00238B 904CE0            MOV     DPTR,#g_variable+021H
+00238E E0                MOVX    A,@DPTR
+00238F FE                MOV     R6,A
+002390 A3                INC     DPTR
+002391 E0                MOVX    A,@DPTR
+002392 FF                MOV     R7,A
+002393 E4                CLR     A
+002394 FC                MOV     R4,A
+002395 FD                MOV     R5,A
+002396 904E66            MOV     DPTR,#batValue
+002399 E0                MOVX    A,@DPTR
+00239A F8                MOV     R0,A
+00239B A3                INC     DPTR
+00239C E0                MOVX    A,@DPTR
+00239D F9                MOV     R1,A
+00239E A3                INC     DPTR
+00239F E0                MOVX    A,@DPTR
+0023A0 FA                MOV     R2,A
+0023A1 A3                INC     DPTR
+0023A2 E0                MOVX    A,@DPTR
+0023A3 FB                MOV     R3,A
+0023A4 C3                CLR     C
+0023A5 120516            LCALL   ?C?ULCMP
+0023A8 5007              JNC     ?C0011?ADC
    59: 	{
    60: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
-002378 904CD5            MOV     DPTR,#g_variable+016H
-00237B 7402              MOV     A,#02H
-00237D F0                MOVX    @DPTR,A
+0023AA 904CD5            MOV     DPTR,#g_variable+016H
+0023AD 7402              MOV     A,#02H
+0023AF F0                MOVX    @DPTR,A
    61: 	}
-00237E 22                RET     
-00237F         ?C0011?ADC:
+0023B0 22                RET     
+0023B1         ?C0011?ADC:
    62: 	else
    63: 	{		
    64: 		if (batValue < g_variable.battery_level_low)
-00237F 904CDE            MOV     DPTR,#g_variable+01FH
-002382 E0                MOVX    A,@DPTR
-002383 FE                MOV     R6,A
-002384 A3                INC     DPTR
-002385 E0                MOVX    A,@DPTR
-002386 FF                MOV     R7,A
-002387 E4                CLR     A
-002388 FC                MOV     R4,A
-002389 FD                MOV     R5,A
-00238A 904E68            MOV     DPTR,#batValue
-00238D E0                MOVX    A,@DPTR
-00238E F8                MOV     R0,A
-00238F A3                INC     DPTR
-002390 E0                MOVX    A,@DPTR
-002391 F9                MOV     R1,A
-002392 A3                INC     DPTR
-002393 E0                MOVX    A,@DPTR
-002394 FA                MOV     R2,A
-002395 A3                INC     DPTR
-002396 E0                MOVX    A,@DPTR
-002397 FB                MOV     R3,A
-002398 C3                CLR     C
-002399 120516            LCALL   ?C?ULCMP
-00239C 501C              JNC     ?C0013?ADC
+0023B1 904CDE            MOV     DPTR,#g_variable+01FH
+0023B4 E0                MOVX    A,@DPTR
+0023B5 FE                MOV     R6,A
+0023B6 A3                INC     DPTR
+0023B7 E0                MOVX    A,@DPTR
+0023B8 FF                MOV     R7,A
+0023B9 E4                CLR     A
+0023BA FC                MOV     R4,A
+0023BB FD                MOV     R5,A
+0023BC 904E66            MOV     DPTR,#batValue
+0023BF E0                MOVX    A,@DPTR
+0023C0 F8                MOV     R0,A
+0023C1 A3                INC     DPTR
+0023C2 E0                MOVX    A,@DPTR
+0023C3 F9                MOV     R1,A
+0023C4 A3                INC     DPTR
+0023C5 E0                MOVX    A,@DPTR
+0023C6 FA                MOV     R2,A
+0023C7 A3                INC     DPTR
+0023C8 E0                MOVX    A,@DPTR
+0023C9 FB                MOV     R3,A
+0023CA C3                CLR     C
+0023CB 120516            LCALL   ?C?ULCMP
+0023CE 501C              JNC     ?C0013?ADC
    65: 		{
    66: 			g_variable.battery_status = BAT_STATUS_LOW;
-00239E 904CD5            MOV     DPTR,#g_variable+016H
-0023A1 7401              MOV     A,#01H
-0023A3 F0                MOVX    @DPTR,A
+0023D0 904CD5            MOV     DPTR,#g_variable+016H
+0023D3 7401              MOV     A,#01H
+0023D5 F0                MOVX    @DPTR,A
    67: 			if(!g_variable.g24_long_sleep_flag)
-0023A4 904CFB            MOV     DPTR,#g_variable+03CH
-0023A7 E0                MOVX    A,@DPTR
-0023A8 702A              JNZ     ?C0006?ADC
+0023D6 904CFB            MOV     DPTR,#g_variable+03CH
+0023D9 E0                MOVX    A,@DPTR
+0023DA 702A              JNZ     ?C0006?ADC
    68: 			{
    69: 			m_24g_enter_hibernate[0]	= 0x00;
-0023AA 904D3D            MOV     DPTR,#m_24g_enter_hibernate
-0023AD F0                MOVX    @DPTR,A
+0023DC 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+0023DF F0                MOVX    @DPTR,A
    70: 			m_24g_enter_hibernate[1]	= 0x48;
-0023AE A3                INC     DPTR
-0023AF 7448              MOV     A,#048H
-0023B1 F0                MOVX    @DPTR,A
+0023E0 A3                INC     DPTR
+0023E1 7448              MOV     A,#048H
+0023E3 F0                MOVX    @DPTR,A
    71: 			m_24g_enter_hibernate[2]	= 0x12;		// 100ms
-0023B2 A3                INC     DPTR
-0023B3 7412              MOV     A,#012H
-0023B5 F0                MOVX    @DPTR,A
+0023E4 A3                INC     DPTR
+0023E5 7412              MOV     A,#012H
+0023E7 F0                MOVX    @DPTR,A
    72: 			m_24g_enter_hibernate[3]	= 0x00;
-0023B6 E4                CLR     A
-0023B7 A3                INC     DPTR
-0023B8 F0                MOVX    @DPTR,A
+0023E8 E4                CLR     A
+0023E9 A3                INC     DPTR
+0023EA F0                MOVX    @DPTR,A
    73: 			}
    74: 		}
-0023B9 22                RET     
-0023BA         ?C0013?ADC:
+0023EB 22                RET     
+0023EC         ?C0013?ADC:
    75: 		else
    76: 		{
    77: 			g_variable.battery_status = BAT_STATUS_NONE;
-0023BA E4                CLR     A
-0023BB 904CD5            MOV     DPTR,#g_variable+016H
-0023BE F0                MOVX    @DPTR,A
+0023EC E4                CLR     A
+0023ED 904CD5            MOV     DPTR,#g_variable+016H
+0023F0 F0                MOVX    @DPTR,A
    78: 			if(!g_variable.g24_long_sleep_flag)
-0023BF 904CFB            MOV     DPTR,#g_variable+03CH
-0023C2 E0                MOVX    A,@DPTR
-0023C3 700F              JNZ     ?C0006?ADC
+0023F1 904CFB            MOV     DPTR,#g_variable+03CH
+0023F4 E0                MOVX    A,@DPTR
+0023F5 700F              JNZ     ?C0006?ADC
    79: 			{
    80: 			m_24g_enter_hibernate[0]	= 0x00;
-0023C5 904D3D            MOV     DPTR,#m_24g_enter_hibernate
-0023C8 F0                MOVX    @DPTR,A
+0023F7 904D3D            MOV     DPTR,#m_24g_enter_hibernate
+0023FA F0                MOVX    @DPTR,A
    81: 			m_24g_enter_hibernate[1]	= 0x48;
-0023C9 A3                INC     DPTR
-0023CA 7448              MOV     A,#048H
-0023CC F0                MOVX    @DPTR,A
+0023FB A3                INC     DPTR
+0023FC 7448              MOV     A,#048H
+0023FE F0                MOVX    @DPTR,A
    82: 			m_24g_enter_hibernate[2]   = 0x5d;		// 510ms
-0023CD A3                INC     DPTR
-0023CE 745D              MOV     A,#05DH
-0023D0 F0                MOVX    @DPTR,A
+0023FF A3                INC     DPTR
+002400 745D              MOV     A,#05DH
+002402 F0                MOVX    @DPTR,A
    83: 			m_24g_enter_hibernate[3]	= 0x00;
-0023D1 E4                CLR     A
-0023D2 A3                INC     DPTR
-0023D3 F0                MOVX    @DPTR,A
+002403 E4                CLR     A
+002404 A3                INC     DPTR
+002405 F0                MOVX    @DPTR,A
    84: 			}
    85: 		}
    86: 	}
    87: #endif	
    88: }
-0023D4         ?C0006?ADC:
-0023D4 22                RET     
+002406         ?C0006?ADC:
+002406 22                RET     
 ----- FUNCTION YC_adc_check (END) -------
 
 
 ----- FUNCTION _bufsize (BEGIN) -----
-0023D5 904E79            MOV     DPTR,#rptr
-0023D8 EE                MOV     A,R6
-0023D9 F0                MOVX    @DPTR,A
-0023DA A3                INC     DPTR
-0023DB EF                MOV     A,R7
-0023DC F0                MOVX    @DPTR,A
-0023DD 904E7B            MOV     DPTR,#wptr
-0023E0 EC                MOV     A,R4
-0023E1 F0                MOVX    @DPTR,A
-0023E2 A3                INC     DPTR
-0023E3 ED                MOV     A,R5
-0023E4 F0                MOVX    @DPTR,A
+002407 904E77            MOV     DPTR,#rptr
+00240A EE                MOV     A,R6
+00240B F0                MOVX    @DPTR,A
+00240C A3                INC     DPTR
+00240D EF                MOV     A,R7
+00240E F0                MOVX    @DPTR,A
+00240F 904E79            MOV     DPTR,#wptr
+002412 EC                MOV     A,R4
+002413 F0                MOVX    @DPTR,A
+002414 A3                INC     DPTR
+002415 ED                MOV     A,R5
+002416 F0                MOVX    @DPTR,A
 ;---- Variable 'buflen' assigned to Register 'R3' ----
-0023E5 904E7B            MOV     DPTR,#wptr
-0023E8 E0                MOVX    A,@DPTR
-0023E9 FE                MOV     R6,A
-0023EA A3                INC     DPTR
-0023EB E0                MOVX    A,@DPTR
-0023EC FF                MOV     R7,A
-0023ED D3                SETB    C
-0023EE 904E7A            MOV     DPTR,#rptr+01H
-0023F1 E0                MOVX    A,@DPTR
-0023F2 9F                SUBB    A,R7
-0023F3 904E79            MOV     DPTR,#rptr
-0023F6 E0                MOVX    A,@DPTR
-0023F7 9E                SUBB    A,R6
-0023F8 4016              JC      ?C0001?IPC
-0023FA 904E7B            MOV     DPTR,#wptr
-0023FD E0                MOVX    A,@DPTR
-0023FE FE                MOV     R6,A
-0023FF A3                INC     DPTR
-002400 E0                MOVX    A,@DPTR
-002401 FF                MOV     R7,A
-002402 904E7A            MOV     DPTR,#rptr+01H
-002405 E0                MOVX    A,@DPTR
-002406 9F                SUBB    A,R7
-002407 FF                MOV     R7,A
-002408 904E79            MOV     DPTR,#rptr
-00240B E0                MOVX    A,@DPTR
-00240C 9E                SUBB    A,R6
-00240D FE                MOV     R6,A
-00240E 801E              SJMP    ?C0002?IPC
-002410         ?C0001?IPC:
-002410 904E79            MOV     DPTR,#rptr
-002413 E0                MOVX    A,@DPTR
-002414 FE                MOV     R6,A
-002415 A3                INC     DPTR
-002416 E0                MOVX    A,@DPTR
-002417 FF                MOV     R7,A
-002418 C3                CLR     C
-002419 904E7C            MOV     DPTR,#wptr+01H
-00241C E0                MOVX    A,@DPTR
-00241D 9F                SUBB    A,R7
+002417 904E79            MOV     DPTR,#wptr
+00241A E0                MOVX    A,@DPTR
+00241B FE                MOV     R6,A
+00241C A3                INC     DPTR
+00241D E0                MOVX    A,@DPTR
 00241E FF                MOV     R7,A
-00241F 904E7B            MOV     DPTR,#wptr
-002422 E0                MOVX    A,@DPTR
-002423 9E                SUBB    A,R6
-002424 FE                MOV     R6,A
-002425 AD03              MOV     R5,AR3
-002427 C3                CLR     C
-002428 EB                MOV     A,R3
-002429 9F                SUBB    A,R7
-00242A FF                MOV     R7,A
-00242B E4                CLR     A
-00242C 9E                SUBB    A,R6
-00242D FE                MOV     R6,A
-00242E         ?C0002?IPC:
-00242E 22                RET     
+00241F D3                SETB    C
+002420 904E78            MOV     DPTR,#rptr+01H
+002423 E0                MOVX    A,@DPTR
+002424 9F                SUBB    A,R7
+002425 904E77            MOV     DPTR,#rptr
+002428 E0                MOVX    A,@DPTR
+002429 9E                SUBB    A,R6
+00242A 4016              JC      ?C0001?IPC
+00242C 904E79            MOV     DPTR,#wptr
+00242F E0                MOVX    A,@DPTR
+002430 FE                MOV     R6,A
+002431 A3                INC     DPTR
+002432 E0                MOVX    A,@DPTR
+002433 FF                MOV     R7,A
+002434 904E78            MOV     DPTR,#rptr+01H
+002437 E0                MOVX    A,@DPTR
+002438 9F                SUBB    A,R7
+002439 FF                MOV     R7,A
+00243A 904E77            MOV     DPTR,#rptr
+00243D E0                MOVX    A,@DPTR
+00243E 9E                SUBB    A,R6
+00243F FE                MOV     R6,A
+002440 801E              SJMP    ?C0002?IPC
+002442         ?C0001?IPC:
+002442 904E77            MOV     DPTR,#rptr
+002445 E0                MOVX    A,@DPTR
+002446 FE                MOV     R6,A
+002447 A3                INC     DPTR
+002448 E0                MOVX    A,@DPTR
+002449 FF                MOV     R7,A
+00244A C3                CLR     C
+00244B 904E7A            MOV     DPTR,#wptr+01H
+00244E E0                MOVX    A,@DPTR
+00244F 9F                SUBB    A,R7
+002450 FF                MOV     R7,A
+002451 904E79            MOV     DPTR,#wptr
+002454 E0                MOVX    A,@DPTR
+002455 9E                SUBB    A,R6
+002456 FE                MOV     R6,A
+002457 AD03              MOV     R5,AR3
+002459 C3                CLR     C
+00245A EB                MOV     A,R3
+00245B 9F                SUBB    A,R7
+00245C FF                MOV     R7,A
+00245D E4                CLR     A
+00245E 9E                SUBB    A,R6
+00245F FE                MOV     R6,A
+002460         ?C0002?IPC:
+002460 22                RET     
 ----- FUNCTION _bufsize (END) -------
 
 
 ----- FUNCTION _ipcRx (BEGIN) -----
-00242F 904E97            MOV     DPTR,#dest
-002432 EE                MOV     A,R6
-002433 F0                MOVX    @DPTR,A
-002434 A3                INC     DPTR
-002435 EF                MOV     A,R7
-002436 F0                MOVX    @DPTR,A
+002461 904E95            MOV     DPTR,#dest
+002464 EE                MOV     A,R6
+002465 F0                MOVX    @DPTR,A
+002466 A3                INC     DPTR
+002467 EF                MOV     A,R7
+002468 F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R1' ----
-002437 A905              MOV     R1,AR5
-002439 904B9E            MOV     DPTR,#ipcRxReadPtr
-00243C E0                MOVX    A,@DPTR
-00243D FE                MOV     R6,A
-00243E A3                INC     DPTR
-00243F E0                MOVX    A,@DPTR
-002440 FF                MOV     R7,A
+002469 A905              MOV     R1,AR5
+00246B 904B9E            MOV     DPTR,#ipcRxReadPtr
+00246E E0                MOVX    A,@DPTR
+00246F FE                MOV     R6,A
+002470 A3                INC     DPTR
+002471 E0                MOVX    A,@DPTR
+002472 FF                MOV     R7,A
 ;---- Variable 'src' assigned to Register 'R6/R7' ----
-002441         ?C0004?IPC:
-002441 AD01              MOV     R5,AR1
-002443 19                DEC     R1
-002444 ED                MOV     A,R5
-002445 602F              JZ      ?C0005?IPC
-002447 0F                INC     R7
-002448 EF                MOV     A,R7
-002449 AC06              MOV     R4,AR6
-00244B 7001              JNZ     ?C0036?IPC
-00244D 0E                INC     R6
-00244E         ?C0036?IPC:
-00244E 14                DEC     A
-00244F F582              MOV     DPL,A
-002451 8C83              MOV     DPH,R4
-002453 E0                MOVX    A,@DPTR
-002454 FD                MOV     R5,A
-002455 904E97            MOV     DPTR,#dest
-002458 E4                CLR     A
-002459 75F001            MOV     B,#01H
-00245C 120424            LCALL   ?C?ILDIX
-00245F 85F082            MOV     DPL,B
-002462 F583              MOV     DPH,A
-002464 ED                MOV     A,R5
-002465 F0                MOVX    @DPTR,A
-002466 AD07              MOV     R5,AR7
-002468 AC06              MOV     R4,AR6
-00246A BC4BD4            CJNE    R4,#04BH,?C0004?IPC
-00246D BD9AD1            CJNE    R5,#09AH,?C0004?IPC
-002470 7E4B              MOV     R6,#04BH
-002472 7F36              MOV     R7,#036H
-002474 80CB              SJMP    ?C0004?IPC
-002476         ?C0005?IPC:
-002476 904B9E            MOV     DPTR,#ipcRxReadPtr
-002479 EE                MOV     A,R6
-00247A F0                MOVX    @DPTR,A
-00247B A3                INC     DPTR
-00247C EF                MOV     A,R7
-00247D F0                MOVX    @DPTR,A
-00247E 22                RET     
+002473         ?C0004?IPC:
+002473 AD01              MOV     R5,AR1
+002475 19                DEC     R1
+002476 ED                MOV     A,R5
+002477 602F              JZ      ?C0005?IPC
+002479 0F                INC     R7
+00247A EF                MOV     A,R7
+00247B AC06              MOV     R4,AR6
+00247D 7001              JNZ     ?C0036?IPC
+00247F 0E                INC     R6
+002480         ?C0036?IPC:
+002480 14                DEC     A
+002481 F582              MOV     DPL,A
+002483 8C83              MOV     DPH,R4
+002485 E0                MOVX    A,@DPTR
+002486 FD                MOV     R5,A
+002487 904E95            MOV     DPTR,#dest
+00248A E4                CLR     A
+00248B 75F001            MOV     B,#01H
+00248E 120424            LCALL   ?C?ILDIX
+002491 85F082            MOV     DPL,B
+002494 F583              MOV     DPH,A
+002496 ED                MOV     A,R5
+002497 F0                MOVX    @DPTR,A
+002498 AD07              MOV     R5,AR7
+00249A AC06              MOV     R4,AR6
+00249C BC4BD4            CJNE    R4,#04BH,?C0004?IPC
+00249F BD9AD1            CJNE    R5,#09AH,?C0004?IPC
+0024A2 7E4B              MOV     R6,#04BH
+0024A4 7F36              MOV     R7,#036H
+0024A6 80CB              SJMP    ?C0004?IPC
+0024A8         ?C0005?IPC:
+0024A8 904B9E            MOV     DPTR,#ipcRxReadPtr
+0024AB EE                MOV     A,R6
+0024AC F0                MOVX    @DPTR,A
+0024AD A3                INC     DPTR
+0024AE EF                MOV     A,R7
+0024AF F0                MOVX    @DPTR,A
+0024B0 22                RET     
 ----- FUNCTION _ipcRx (END) -------
 
 
 ----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
-00247F 900446            MOV     DPTR,#bbDisReason
-002482 E0                MOVX    A,@DPTR
-002483 FF                MOV     R7,A
-002484 22                RET     
+0024B1 900446            MOV     DPTR,#bbDisReason
+0024B4 E0                MOVX    A,@DPTR
+0024B5 FF                MOV     R7,A
+0024B6 22                RET     
 ----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
 
 
 ----- FUNCTION YC_Ice_break (BEGIN) -----
-002485 908280            MOV     DPTR,#08280H
-002488 7401              MOV     A,#01H
-00248A F0                MOVX    @DPTR,A
-00248B 22                RET     
+0024B7 908280            MOV     DPTR,#08280H
+0024BA 7401              MOV     A,#01H
+0024BC F0                MOVX    @DPTR,A
+0024BD 22                RET     
 ----- FUNCTION YC_Ice_break (END) -------
 
 
 ----- FUNCTION _dmemcpy (BEGIN) -----
-00248C 904E39            MOV     DPTR,#dest
-00248F EB                MOV     A,R3
-002490 F0                MOVX    @DPTR,A
-002491 A3                INC     DPTR
-002492 EA                MOV     A,R2
-002493 F0                MOVX    @DPTR,A
-002494 A3                INC     DPTR
-002495 E9                MOV     A,R1
-002496 F0                MOVX    @DPTR,A
-002497         ?C0005?UTILITIES:
-002497 904E3F            MOV     DPTR,#len
-00249A 74FF              MOV     A,#0FFH
-00249C F5F0              MOV     B,A
-00249E 120424            LCALL   ?C?ILDIX
-0024A1 45F0              ORL     A,B
-0024A3 602A              JZ      ?C0007?UTILITIES
-0024A5 904E3C            MOV     DPTR,#src
-0024A8 E0                MOVX    A,@DPTR
-0024A9 FB                MOV     R3,A
-0024AA A3                INC     DPTR
-0024AB E4                CLR     A
-0024AC 75F001            MOV     B,#01H
-0024AF 120424            LCALL   ?C?ILDIX
-0024B2 A9F0              MOV     R1,B
-0024B4 FA                MOV     R2,A
-0024B5 1203B6            LCALL   ?C?CLDPTR
-0024B8 FF                MOV     R7,A
-0024B9 904E39            MOV     DPTR,#dest
-0024BC E0                MOVX    A,@DPTR
-0024BD FB                MOV     R3,A
-0024BE A3                INC     DPTR
-0024BF E4                CLR     A
-0024C0 75F001            MOV     B,#01H
-0024C3 120424            LCALL   ?C?ILDIX
-0024C6 A9F0              MOV     R1,B
-0024C8 FA                MOV     R2,A
-0024C9 EF                MOV     A,R7
-0024CA 1203FC            LCALL   ?C?CSTPTR
-0024CD 80C8              SJMP    ?C0005?UTILITIES
-0024CF         ?C0007?UTILITIES:
-0024CF 22                RET     
+0024BE 904E37            MOV     DPTR,#dest
+0024C1 EB                MOV     A,R3
+0024C2 F0                MOVX    @DPTR,A
+0024C3 A3                INC     DPTR
+0024C4 EA                MOV     A,R2
+0024C5 F0                MOVX    @DPTR,A
+0024C6 A3                INC     DPTR
+0024C7 E9                MOV     A,R1
+0024C8 F0                MOVX    @DPTR,A
+0024C9         ?C0005?UTILITIES:
+0024C9 904E3D            MOV     DPTR,#len
+0024CC 74FF              MOV     A,#0FFH
+0024CE F5F0              MOV     B,A
+0024D0 120424            LCALL   ?C?ILDIX
+0024D3 45F0              ORL     A,B
+0024D5 602A              JZ      ?C0007?UTILITIES
+0024D7 904E3A            MOV     DPTR,#src
+0024DA E0                MOVX    A,@DPTR
+0024DB FB                MOV     R3,A
+0024DC A3                INC     DPTR
+0024DD E4                CLR     A
+0024DE 75F001            MOV     B,#01H
+0024E1 120424            LCALL   ?C?ILDIX
+0024E4 A9F0              MOV     R1,B
+0024E6 FA                MOV     R2,A
+0024E7 1203B6            LCALL   ?C?CLDPTR
+0024EA FF                MOV     R7,A
+0024EB 904E37            MOV     DPTR,#dest
+0024EE E0                MOVX    A,@DPTR
+0024EF FB                MOV     R3,A
+0024F0 A3                INC     DPTR
+0024F1 E4                CLR     A
+0024F2 75F001            MOV     B,#01H
+0024F5 120424            LCALL   ?C?ILDIX
+0024F8 A9F0              MOV     R1,B
+0024FA FA                MOV     R2,A
+0024FB EF                MOV     A,R7
+0024FC 1203FC            LCALL   ?C?CSTPTR
+0024FF 80C8              SJMP    ?C0005?UTILITIES
+002501         ?C0007?UTILITIES:
+002501 22                RET     
 ----- FUNCTION _dmemcpy (END) -------
 
 
 ----- FUNCTION _xmemclear_ff (BEGIN) -----
-0024D0 904E8D            MOV     DPTR,#dest
-0024D3 EB                MOV     A,R3
-0024D4 F0                MOVX    @DPTR,A
-0024D5 A3                INC     DPTR
-0024D6 EA                MOV     A,R2
-0024D7 F0                MOVX    @DPTR,A
-0024D8 A3                INC     DPTR
-0024D9 E9                MOV     A,R1
-0024DA F0                MOVX    @DPTR,A
+002502 904E8B            MOV     DPTR,#dest
+002505 EB                MOV     A,R3
+002506 F0                MOVX    @DPTR,A
+002507 A3                INC     DPTR
+002508 EA                MOV     A,R2
+002509 F0                MOVX    @DPTR,A
+00250A A3                INC     DPTR
+00250B E9                MOV     A,R1
+00250C F0                MOVX    @DPTR,A
 ;---- Variable 'len' assigned to Register 'R4/R5' ----
-0024DB         ?C0011?UTILITIES:
-0024DB ED                MOV     A,R5
-0024DC 1D                DEC     R5
-0024DD AE04              MOV     R6,AR4
-0024DF 7001              JNZ     ?C0027?UTILITIES
-0024E1 1C                DEC     R4
-0024E2         ?C0027?UTILITIES:
-0024E2 4E                ORL     A,R6
-0024E3 6017              JZ      ?C0013?UTILITIES
-0024E5 904E8D            MOV     DPTR,#dest
-0024E8 E0                MOVX    A,@DPTR
-0024E9 FB                MOV     R3,A
-0024EA A3                INC     DPTR
-0024EB E4                CLR     A
-0024EC 75F001            MOV     B,#01H
-0024EF 120424            LCALL   ?C?ILDIX
-0024F2 A9F0              MOV     R1,B
-0024F4 FA                MOV     R2,A
-0024F5 74FF              MOV     A,#0FFH
-0024F7 1203FC            LCALL   ?C?CSTPTR
-0024FA 80DF              SJMP    ?C0011?UTILITIES
-0024FC         ?C0013?UTILITIES:
-0024FC 22                RET     
+00250D         ?C0011?UTILITIES:
+00250D ED                MOV     A,R5
+00250E 1D                DEC     R5
+00250F AE04              MOV     R6,AR4
+002511 7001              JNZ     ?C0027?UTILITIES
+002513 1C                DEC     R4
+002514         ?C0027?UTILITIES:
+002514 4E                ORL     A,R6
+002515 6017              JZ      ?C0013?UTILITIES
+002517 904E8B            MOV     DPTR,#dest
+00251A E0                MOVX    A,@DPTR
+00251B FB                MOV     R3,A
+00251C A3                INC     DPTR
+00251D E4                CLR     A
+00251E 75F001            MOV     B,#01H
+002521 120424            LCALL   ?C?ILDIX
+002524 A9F0              MOV     R1,B
+002526 FA                MOV     R2,A
+002527 74FF              MOV     A,#0FFH
+002529 1203FC            LCALL   ?C?CSTPTR
+00252C 80DF              SJMP    ?C0011?UTILITIES
+00252E         ?C0013?UTILITIES:
+00252E 22                RET     
 ----- FUNCTION _xmemclear_ff (END) -------
 
 
 ----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
 ;---- Variable 'gpio_num' assigned to Register 'R7' ----
-0024FD EF                MOV     A,R7
-0024FE F4                CPL     A
-0024FF 603A              JZ      ?C0023?GPIO
-002501         ?C0022?GPIO:
-002501 EF                MOV     A,R7
-002502 5407              ANL     A,#07H
-002504 FE                MOV     R6,A
+00252F EF                MOV     A,R7
+002530 F4                CPL     A
+002531 603A              JZ      ?C0023?GPIO
+002533         ?C0022?GPIO:
+002533 EF                MOV     A,R7
+002534 5407              ANL     A,#07H
+002536 FE                MOV     R6,A
 ;---- Variable 'queue' assigned to Register 'R6' ----
-002505 EF                MOV     A,R7
-002506 13                RRC     A
-002507 13                RRC     A
-002508 13                RRC     A
-002509 5403              ANL     A,#03H
-00250B FF                MOV     R7,A
+002537 EF                MOV     A,R7
+002538 13                RRC     A
+002539 13                RRC     A
+00253A 13                RRC     A
+00253B 5403              ANL     A,#03H
+00253D FF                MOV     R7,A
 ;---- Variable 'group' assigned to Register 'R7' ----
-00250C 24A3              ADD     A,#LOW YC_GPIOWakeupL
-00250E F582              MOV     DPL,A
-002510 E4                CLR     A
-002511 3400              ADDC    A,#HIGH YC_GPIOWakeupL
-002513 F583              MOV     DPH,A
-002515 C083              PUSH    DPH
-002517 C082              PUSH    DPL
-002519 E0                MOVX    A,@DPTR
-00251A FD                MOV     R5,A
-00251B 7401              MOV     A,#01H
-00251D A806              MOV     R0,AR6
-00251F 08                INC     R0
-002520 8002              SJMP    ?C0043?GPIO
-002522         ?C0042?GPIO:
-002522 C3                CLR     C
-002523 33                RLC     A
-002524         ?C0043?GPIO:
-002524 D8FC              DJNZ    R0,?C0042?GPIO
-002526 F4                CPL     A
-002527 FC                MOV     R4,A
-002528 5D                ANL     A,R5
-002529 D082              POP     DPL
-00252B D083              POP     DPH
-00252D F0                MOVX    @DPTR,A
-00252E 74A7              MOV     A,#LOW YC_GPIOWakeupH
-002530 2F                ADD     A,R7
-002531 F582              MOV     DPL,A
-002533 E4                CLR     A
-002534 3400              ADDC    A,#HIGH YC_GPIOWakeupH
-002536 F583              MOV     DPH,A
-002538 E0                MOVX    A,@DPTR
-002539 5C                ANL     A,R4
-00253A F0                MOVX    @DPTR,A
-00253B         ?C0023?GPIO:
-00253B 22                RET     
+00253E 24A3              ADD     A,#LOW YC_GPIOWakeupL
+002540 F582              MOV     DPL,A
+002542 E4                CLR     A
+002543 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+002545 F583              MOV     DPH,A
+002547 C083              PUSH    DPH
+002549 C082              PUSH    DPL
+00254B E0                MOVX    A,@DPTR
+00254C FD                MOV     R5,A
+00254D 7401              MOV     A,#01H
+00254F A806              MOV     R0,AR6
+002551 08                INC     R0
+002552 8002              SJMP    ?C0043?GPIO
+002554         ?C0042?GPIO:
+002554 C3                CLR     C
+002555 33                RLC     A
+002556         ?C0043?GPIO:
+002556 D8FC              DJNZ    R0,?C0042?GPIO
+002558 F4                CPL     A
+002559 FC                MOV     R4,A
+00255A 5D                ANL     A,R5
+00255B D082              POP     DPL
+00255D D083              POP     DPH
+00255F F0                MOVX    @DPTR,A
+002560 74A7              MOV     A,#LOW YC_GPIOWakeupH
+002562 2F                ADD     A,R7
+002563 F582              MOV     DPL,A
+002565 E4                CLR     A
+002566 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+002568 F583              MOV     DPH,A
+00256A E0                MOVX    A,@DPTR
+00256B 5C                ANL     A,R4
+00256C F0                MOVX    @DPTR,A
+00256D         ?C0023?GPIO:
+00256D 22                RET     
 ----- FUNCTION _GPIO_ClearWakeup (END) -------
 
 
 ----- FUNCTION GPIO_fillpd (BEGIN) -----
 ;---- Variable 'i' assigned to Register 'R7' ----
-00253C E4                CLR     A
-00253D FF                MOV     R7,A
-00253E         ?C0026?GPIO:
-00253E EF                MOV     A,R7
-00253F FD                MOV     R5,A
-002540 7C00              MOV     R4,#00H
-002542 2478              ADD     A,#078H
-002544 FB                MOV     R3,A
-002545 EC                MOV     A,R4
-002546 3480              ADDC    A,#080H
-002548 8B82              MOV     DPL,R3
-00254A F583              MOV     DPH,A
-00254C E0                MOVX    A,@DPTR
-00254D FE                MOV     R6,A
-00254E ED                MOV     A,R5
-00254F 2470              ADD     A,#070H
-002551 FD                MOV     R5,A
-002552 EC                MOV     A,R4
-002553 3480              ADDC    A,#080H
-002555 8D82              MOV     DPL,R5
-002557 F583              MOV     DPH,A
-002559 E0                MOVX    A,@DPTR
-00255A 4E                ORL     A,R6
-00255B F4                CPL     A
-00255C FE                MOV     R6,A
-00255D EF                MOV     A,R7
-00255E 247C              ADD     A,#07CH
-002560 FD                MOV     R5,A
-002561 EC                MOV     A,R4
-002562 3480              ADDC    A,#080H
-002564 8D82              MOV     DPL,R5
-002566 F583              MOV     DPH,A
-002568 EE                MOV     A,R6
-002569 F0                MOVX    @DPTR,A
-00256A 0F                INC     R7
-00256B EF                MOV     A,R7
-00256C B404CF            CJNE    A,#04H,?C0026?GPIO
-00256F 22                RET     
+00256E E4                CLR     A
+00256F FF                MOV     R7,A
+002570         ?C0026?GPIO:
+002570 EF                MOV     A,R7
+002571 FD                MOV     R5,A
+002572 7C00              MOV     R4,#00H
+002574 2478              ADD     A,#078H
+002576 FB                MOV     R3,A
+002577 EC                MOV     A,R4
+002578 3480              ADDC    A,#080H
+00257A 8B82              MOV     DPL,R3
+00257C F583              MOV     DPH,A
+00257E E0                MOVX    A,@DPTR
+00257F FE                MOV     R6,A
+002580 ED                MOV     A,R5
+002581 2470              ADD     A,#070H
+002583 FD                MOV     R5,A
+002584 EC                MOV     A,R4
+002585 3480              ADDC    A,#080H
+002587 8D82              MOV     DPL,R5
+002589 F583              MOV     DPH,A
+00258B E0                MOVX    A,@DPTR
+00258C 4E                ORL     A,R6
+00258D F4                CPL     A
+00258E FE                MOV     R6,A
+00258F EF                MOV     A,R7
+002590 247C              ADD     A,#07CH
+002592 FD                MOV     R5,A
+002593 EC                MOV     A,R4
+002594 3480              ADDC    A,#080H
+002596 8D82              MOV     DPL,R5
+002598 F583              MOV     DPH,A
+00259A EE                MOV     A,R6
+00259B F0                MOVX    @DPTR,A
+00259C 0F                INC     R7
+00259D EF                MOV     A,R7
+00259E B404CF            CJNE    A,#04H,?C0026?GPIO
+0025A1 22                RET     
 ----- FUNCTION GPIO_fillpd (END) -------
 
 
Index: c51/output/FW.HTM
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/FW.HTM	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/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>06/22/2021  21:01:58</b><p>
+Creation time: <b>08/04/2021  19:15:28</b><p>
 
 <hr>
 
@@ -49,19 +49,19 @@
 <li><a href="#S166">?PR?_GPIO_SETINPUT?GPIO</a></li>
 </ul>
 
-<h2><a name="S83"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:0020E2H - C:0020EAH)</h2>
+<h2><a name="S83"></a>?PR?SYSTEM_HARDWARE_RESET?SYS (C:002114H - C:00211CH)</h2>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S85">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
 </ul>
 
-<h2><a name="S85"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:0020EBH - C:0020ECH)</h2>
+<h2><a name="S85"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:00211DH - C:00211EH)</h2>
 <p><br><b>Calls to:</b></p>
 <ul>
 <li><a href="#S83">?PR?SYSTEM_HARDWARE_RESET?SYS</a></li>
 </ul>
 
-<h2><a name="S86"></a>?PR?_KB_CB_HID?SYS (C:0020EDH - C:0020FCH)</h2>
+<h2><a name="S86"></a>?PR?_KB_CB_HID?SYS (C:00211FH - C:00212EH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -102,7 +102,7 @@
 <li><a href="#S91">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S95"></a>?PR?KB_CB_TIMER100MS?SYS (C:0020FDH - C:0021EEH)</h2>
+<h2><a name="S95"></a>?PR?KB_CB_TIMER100MS?SYS (C:00212FH - C:002220H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S45">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -165,7 +165,7 @@
 <li><a href="#S191">?C?LIB_CODE</a></li>
 </ul>
 
-<h2><a name="S147"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:0024D0H - C:0024FCH)</h2>
+<h2><a name="S147"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:002502H - C:00252EH)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -343,26 +343,14 @@
 <li><a href="#S51">?PR?KB_MOTION?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S56"></a>?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS (C:001B4BH - C:001B6FH)</h2>
-<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S57">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a>)<p>
-<p><br><b>Called from:</b></p>
-<ul>
-<li><a href="#S57">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
-</ul>
-
-<h2><a name="S57"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:001A72H - C:001B4AH)</h2>
-<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S56">?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS</a>) Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
-<p><br><b>Calls to:</b></p>
-<ul>
-<li><a href="#S56">?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS</a></li>
-</ul>
-
+<h2><a name="S57"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:001C53H - C:001D0FH)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S59"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:001E62H - C:0020E1H)</h2>
+<h2><a name="S59"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:001E95H - C:002113H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S54">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -375,21 +363,21 @@
 <li><a href="#S54">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S61"></a>?PR?_BIT_COUNT?KEYSCAN (C:001A64H - C:001A71H)</h2>
+<h2><a name="S61"></a>?PR?_BIT_COUNT?KEYSCAN (C:001AB3H - C:001AC0H)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S62"></a>?PR?_KEYIN?KEYSCAN (C:001C02H - C:001C57H)</h2>
+<h2><a name="S62"></a>?PR?_KEYIN?KEYSCAN (C:001B53H - C:001BA8H)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S63"></a>?PR?_KEYOUT?KEYSCAN (C:001C58H - C:001D01H)</h2>
+<h2><a name="S63"></a>?PR?_KEYOUT?KEYSCAN (C:001BA9H - C:001C52H)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
@@ -434,14 +422,14 @@
 <li><a href="#S97">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S71"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001D02H - C:001E61H)</h2>
+<h2><a name="S71"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:001D10H - C:001E6FH)</h2>
 <p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S73"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:001B88H - C:001BB7H)</h2>
+<h2><a name="S73"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:001AD9H - C:001B08H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -453,7 +441,7 @@
 <li><a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
 </ul>
 
-<h2><a name="S75"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:001868H - C:001A63H)</h2>
+<h2><a name="S75"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:001868H - C:001AB2H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S71">?PR?KS_SCANMATRIX?KEYSCAN</a>) Top=4 Bytes (<a href="#S51">?PR?KB_MOTION?KB_PROCESS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -592,7 +580,7 @@
 <li><a href="#S97">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S100"></a>?PR?YC_ADC_INIT?ADC (C:0021EFH - C:0022B4H)</h2>
+<h2><a name="S100"></a>?PR?YC_ADC_INIT?ADC (C:002221H - C:0022E6H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S82">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -604,7 +592,7 @@
 <li><a href="#S82">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
 </ul>
 
-<h2><a name="S101"></a>?PR?YC_ADC_CHECK?ADC (C:0022B5H - C:0023D4H)</h2>
+<h2><a name="S101"></a>?PR?YC_ADC_CHECK?ADC (C:0022E7H - C:002406H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S103">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -628,14 +616,14 @@
 <li><a href="#S94">?PR?KB_CB_TIMER500MS?SYS</a></li>
 </ul>
 
-<h2><a name="S105"></a>?PR?_BUFSIZE?IPC (C:0023D5H - C:00242EH)</h2>
+<h2><a name="S105"></a>?PR?_BUFSIZE?IPC (C:002407H - C:002460H)</h2>
 <p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S109">?PR?_IPCTX?IPC</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
 <li><a href="#S109">?PR?_IPCTX?IPC</a></li>
 </ul>
 
-<h2><a name="S107"></a>?PR?_IPCRX?IPC (C:00242FH - C:00247EH)</h2>
+<h2><a name="S107"></a>?PR?_IPCRX?IPC (C:002461H - C:0024B0H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S121">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -686,7 +674,7 @@
 <li><a href="#S97">?PR?YC_SYSTEM_MAIN?SYS</a></li>
 </ul>
 
-<h2><a name="S120"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:001B70H - C:001B87H)</h2>
+<h2><a name="S120"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:001AC1H - C:001AD8H)</h2>
 <p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S51">?PR?KB_MOTION?KB_PROCESS</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
@@ -720,7 +708,7 @@
 <li><a href="#S54">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
 </ul>
 
-<h2><a name="S143"></a>?PR?_DMEMCPY?UTILITIES (C:00248CH - C:0024CFH)</h2>
+<h2><a name="S143"></a>?PR?_DMEMCPY?UTILITIES (C:0024BEH - C:002501H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=8 Bytes (<a href="#S185">?PR?_IIC_WRITE?IIC</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -761,7 +749,7 @@
 <li><a href="#S7">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
 </ul>
 
-<h2><a name="S150"></a>?PR?_COMPARE_STR?UTILITIES (C:001BB8H - C:001C01H)</h2>
+<h2><a name="S150"></a>?PR?_COMPARE_STR?UTILITIES (C:001B09H - C:001B52H)</h2>
 <p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S191">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S75">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
 <p><br><b>Calls to:</b></p>
 <ul>
@@ -915,7 +903,7 @@
 <li><a href="#S95">?PR?KB_CB_TIMER100MS?SYS</a></li>
 </ul>
 
-<h2><a name="S179"></a>?PR?GPIO_FILLPD?GPIO (C:00253CH - C:00256FH)</h2>
+<h2><a name="S179"></a>?PR?GPIO_FILLPD?GPIO (C:00256EH - C:0025A1H)</h2>
 <p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S69">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
 <p><br><b>Called from:</b></p>
 <ul>
Index: c51/output/FW.MAP
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/FW.MAP	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/c51/output/FW.MAP	(working copy)
@@ -1,4 +1,4 @@
-LX51 LINKER/LOCATER V4.41                                                               06/22/2021  21:01:58  PAGE 1
+LX51 LINKER/LOCATER V4.41                                                               08/04/2021  19:15:28  PAGE 1
 
 
 LX51 LINKER/LOCATER V4.41, INVOKED BY:
@@ -81,8 +81,8 @@
 
 BASE        START       END         USED      MEMORY CLASS
 ==========================================================
-X:000000H   X:004DD0H   X:004F40H   000317H   XDATA
-C:000000H   C:000000H   C:00FFFFH   0024BAH   CODE
+X:000000H   X:004DD0H   X:004F40H   000315H   XDATA
+C:000000H   C:000000H   C:00FFFFH   0024ECH   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
@@ -179,31 +179,31 @@
 0017DCH   0017F6H   00001BH   BYTE   UNIT     CODE           ?PR?_KB_SET_MULTIKEY?KB_PROCESS
 0017F7H   001834H   00003EH   BYTE   UNIT     CODE           ?PR?KB_24G_GET_LED_STATUS?KB_PROCESS
 001835H   001867H   000033H   BYTE   UNIT     CODE           ?PR?KB_MOTION?KB_PROCESS
-001868H   001A63H   0001FCH   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
-001A64H   001A71H   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
-001A72H   001B4AH   0000D9H   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
-001B4BH   001B6FH   000025H   BYTE   UNIT     CODE           ?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS
-001B70H   001B87H   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
-001B88H   001BB7H   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
-001BB8H   001C01H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
-001C02H   001C57H   000056H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
-001C58H   001D01H   0000AAH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
-001D02H   001E61H   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
-001E62H   0020E1H   000280H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
-0020E2H   0020EAH   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
-0020EBH   0020ECH   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
-0020EDH   0020FCH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
-0020FDH   0021EEH   0000F2H   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
-0021EFH   0022B4H   0000C6H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
-0022B5H   0023D4H   000120H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
-0023D5H   00242EH   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
-00242FH   00247EH   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
-00247FH   002484H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
-002485H   00248BH   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
-00248CH   0024CFH   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
-0024D0H   0024FCH   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
-0024FDH   00253BH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
-00253CH   00256FH   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
+001868H   001AB2H   00024BH   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
+001AB3H   001AC0H   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
+001AC1H   001AD8H   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
+001AD9H   001B08H   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
+001B09H   001B52H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
+001B53H   001BA8H   000056H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
+001BA9H   001C52H   0000AAH   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
+001C53H   001D0FH   0000BDH   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
+001D10H   001E6FH   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
+001E70H   001E94H   000025H   BYTE   UNIT     CODE           ?PR?_KB_COMBINATION_KEY_PRESS?KB_PROCESS
+001E95H   002113H   00027FH   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
+002114H   00211CH   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
+00211DH   00211EH   000002H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
+00211FH   00212EH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
+00212FH   002220H   0000F2H   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
+002221H   0022E6H   0000C6H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
+0022E7H   002406H   000120H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
+002407H   002460H   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
+002461H   0024B0H   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+0024B1H   0024B6H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+0024B7H   0024BDH   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+0024BEH   002501H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+002502H   00252EH   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+00252FH   00256DH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+00256EH   0025A1H   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
 
 * * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
 000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?28
@@ -290,41 +290,41 @@
 004DF1H   004E02H   000012H   BYTE   UNIT     XDATA          ?XD?SYS
 004E03H   004E14H   000012H   BYTE   UNIT     XDATA          ?XD?IPC
 004E15H   004E22H   00000EH   BYTE   UNIT     XDATA          ?XD?_IPC_TXHIDDATA?KB_PROCESS
-004E23H   004E2FH   00000DH   BYTE   UNIT     XDATA          ?XD?KS_GETCURRENTEVT?KEYSCAN
-004E30H   004E38H   000009H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITEBLOCK?IIC
-004E39H   004E40H   000008H   BYTE   UNIT     XDATA          ?XD?_DMEMCPY?UTILITIES
-004E41H   004E47H   000007H   BYTE   UNIT     XDATA          ?XD?KEYSCAN
-004E48H   004E4EH   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
-004E4FH   004E55H   000007H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
-004E56H   004E5BH   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
-004E5CH   004E61H   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
-004E62H   004E66H   000005H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
-004E67H   004E6BH   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
-004E6CH   004E70H   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
-004E71H   004E74H   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
-004E75H   004E78H   000004H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
-004E79H   004E7CH   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
-004E7DH   004E80H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
-004E81H   004E83H   000003H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
-004E84H   004E86H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
-004E87H   004E89H   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
-004E8AH   004E8CH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
-004E8DH   004E8FH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
-004E90H   004E92H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
-004E93H   004E94H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
-004E95H   004E96H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
-004E97H   004E98H   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
-004E99H   004E99H   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
-004E9AH   004E9AH   000001H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
-004E9BH   004E9BH   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
-004E9CH   004E9CH   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
-004E9DH   004E9DH   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
-004E9EH   004E9EH   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
-004E9FH   004E9FH   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
-004EA0H   004EA0H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
-004EA1H   004EA1H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
-004EA2H   004EA2H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
-004EA3H   00800FH   00316DH   ---    ---      **GAP**
+004E23H   004E2DH   00000BH   BYTE   UNIT     XDATA          ?XD?KS_GETCURRENTEVT?KEYSCAN
+004E2EH   004E36H   000009H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITEBLOCK?IIC
+004E37H   004E3EH   000008H   BYTE   UNIT     XDATA          ?XD?_DMEMCPY?UTILITIES
+004E3FH   004E45H   000007H   BYTE   UNIT     XDATA          ?XD?KEYSCAN
+004E46H   004E4CH   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
+004E4DH   004E53H   000007H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
+004E54H   004E59H   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
+004E5AH   004E5FH   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
+004E60H   004E64H   000005H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
+004E65H   004E69H   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
+004E6AH   004E6EH   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
+004E6FH   004E72H   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
+004E73H   004E76H   000004H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
+004E77H   004E7AH   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
+004E7BH   004E7EH   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
+004E7FH   004E81H   000003H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
+004E82H   004E84H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
+004E85H   004E87H   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
+004E88H   004E8AH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
+004E8BH   004E8DH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
+004E8EH   004E90H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
+004E91H   004E92H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+004E93H   004E94H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
+004E95H   004E96H   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
+004E97H   004E97H   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+004E98H   004E98H   000001H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
+004E99H   004E99H   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
+004E9AH   004E9AH   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
+004E9BH   004E9BH   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
+004E9CH   004E9CH   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
+004E9DH   004E9DH   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
+004E9EH   004E9EH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+004E9FH   004E9FH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+004EA0H   004EA0H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+004EA1H   00800FH   00316FH   ---    ---      **GAP**
 008010H   008010H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
 
 
@@ -334,8 +334,8 @@
 
       VALUE       CLASS    TYPE      PUBLIC SYMBOL NAME
       =================================================
-      02004E48H   XDATA    BYTE      ?_compare_str?BYTE
-      02004E39H   XDATA    BYTE      ?_dmemcpy?BYTE
+      02004E46H   XDATA    BYTE      ?_compare_str?BYTE
+      02004E37H   XDATA    BYTE      ?_dmemcpy?BYTE
       00000020H.5 BIT      BIT       ?_GPIO_SetInput?BIT
       00000020H.4 BIT      BIT       ?_GPIO_Setoe?BIT
       00000020H.1 BIT      BIT       ?_GPIO_Setout?BIT
@@ -343,7 +343,7 @@
       00000020H.3 BIT      BIT       ?_GPIO_SetPd?BIT
       00000020H.2 BIT      BIT       ?_GPIO_SetPu?BIT
       00000020H.7 BIT      BIT       ?_GPIO_SetWakeup?BIT
-      02004E5CH   XDATA    BYTE      ?_xmemcpy?BYTE
+      02004E5AH   XDATA    BYTE      ?_xmemcpy?BYTE
       0100023FH   CODE     ---       ?C?CASTF
       010003CFH   CODE     ---       ?C?CLDOPTR
       010003B6H   CODE     ---       ?C?CLDPTR
@@ -374,11 +374,11 @@
       00000000H   NUMBER   ---       ?C?XDATASEG
       010005B1H   CODE     ---       ?C_START
       01000000H   CODE     ---       ?C_STARTUP
-      01001B88H   CODE     ---       _array_is_empty
-      01001BB8H   CODE     ---       _compare_str
+      01001AD9H   CODE     ---       _array_is_empty
+      01001B09H   CODE     ---       _compare_str
       01000FD3H   CODE     ---       _Delay1ms
-      0100248CH   CODE     ---       _dmemcpy
-      010024FDH   CODE     ---       _GPIO_ClearWakeup
+      010024BEH   CODE     ---       _dmemcpy
+      0100252FH   CODE     ---       _GPIO_ClearWakeup
       010017C0H   CODE     ---       _GPIO_FlipOutBit
       01001520H   CODE     ---       _GPIO_GetInputStatus
       01000818H   CODE     ---       _GPIO_SetInput
@@ -397,14 +397,14 @@
       010009C5H   CODE     ---       _IPC_TxControlCmd
       01000FF1H   CODE     ---       _IPC_TxData
       01000A82H   CODE     ---       _IPC_TxHidData
-      01001B4BH   CODE     ---       _kb_combination_key_press
+      01001E70H   CODE     ---       _kb_combination_key_press
       01000B35H   CODE     ---       _kb_motion_keyscan
-      01001E62H   CODE     ---       _kb_multikey_setup
+      01001E95H   CODE     ---       _kb_multikey_setup
       01000EFEH   CODE     ---       _kb_send_combination_key
       010017DCH   CODE     ---       _kb_set_multikey
-      01001A72H   CODE     ---       _key_fn_function
+      01001C53H   CODE     ---       _key_fn_function
       01000E48H   CODE     ---       _xmemclear
-      010024D0H   CODE     ---       _xmemclear_ff
+      01002502H   CODE     ---       _xmemclear_ff
       01001017H   CODE     ---       _xmemcpy
       0100091CH   CODE     ---       _YC_key_action_handle
       02004DE4H   XDATA    BYTE      action_timeout
@@ -423,13 +423,13 @@
       02004DD3H   XDATA    BYTE      fn_tx_flag
       02004CBFH   XDATA    ---       g_variable
       02004DD0H   XDATA    BYTE      get_24g_led_send
-      0100253CH   CODE     ---       GPIO_fillpd
+      0100256EH   CODE     ---       GPIO_fillpd
       02004800H   XDATA    ---       hidBuff
       02004DDAH   XDATA    BYTE      iOS_rec_pinCode
       010016DAH   CODE     ---       IPC_AbandonLpm
       01001606H   CODE     ---       IPC_DealSingleStep
-      0100247FH   CODE     ---       IPC_GetBBDIsconnectReason
-      01001B70H   CODE     ---       IPC_IsTxBuffEmpty
+      010024B1H   CODE     ---       IPC_GetBBDIsconnectReason
+      01001AC1H   CODE     ---       IPC_IsTxBuffEmpty
       010014FFH   CODE     ---       IPC_WaitLpm
       02000550H   XDATA    ---       ipcPin
       0200054FH   XDATA    BYTE      ipcPinlen
@@ -442,10 +442,10 @@
       02004DDDH   XDATA    BYTE      keyCount
       01001868H   CODE     ---       KS_GetCurrentEvt
       010007EEH   CODE     ---       KS_Initialize
-      01001D02H   CODE     ---       KS_ScanMatrix
+      01001D10H   CODE     ---       KS_ScanMatrix
       010013C7H   CODE     ---       KS_Unistall
       02004213H   XDATA    BYTE      kscurrmult
-      02004E41H   XDATA    ---       ksEvtPool
+      02004E3FH   XDATA    ---       ksEvtPool
       01000621H   CONST    ---       ksMap
       02004DA8H   XDATA    ---       ksSelMapCheck
       02004DBCH   XDATA    ---       ksSelMapCurr
@@ -496,11 +496,11 @@
       02004DD8H   XDATA    BYTE      standard_key_release_flag
       02004DD4H   XDATA    BYTE      switch_role_timer
       0100121BH   CODE     ---       System_long_sleep
-      010020EBH   CODE     ---       System_Reset_Connect
+      0100211DH   CODE     ---       System_Reset_Connect
       01001272H   CODE     ---       System_Software_init
-      010022B5H   CODE     ---       YC_adc_check
+      010022E7H   CODE     ---       YC_adc_check
       0100171AH   CODE     ---       YC_adc_check_timer500ms
-      010021EFH   CODE     ---       YC_adc_init
+      01002221H   CODE     ---       YC_adc_init
       010006C2H   CODE     ---       YC_check_is_connected
       010008E7H   CODE     ---       YC_check_need_reconnected
       01001215H   CODE     ---       YC_clear_reconnect_flag
@@ -508,7 +508,7 @@
       01000FBCH   CODE     ---       YC_disconnect_all_link
       020000A7H   XDATA    ---       YC_GPIOWakeupH
       020000A3H   XDATA    ---       YC_GPIOWakeupL
-      01002485H   CODE     ---       YC_Ice_break
+      010024B7H   CODE     ---       YC_Ice_break
       010016FCH   CODE     ---       YC_pairing_timerout_500ms
       010016CFH   CODE     ---       YC_start_reconnect
       01001382H   CODE     ---       YC_System_Main
@@ -673,9 +673,9 @@
       0100060CH   PUBLIC    CONST    ---       col
 
       ---         MODULE    ---      ---       KB_PROCESS
-      01001E62H   PUBLIC    CODE     ---       _kb_multikey_setup
-      01001A72H   PUBLIC    CODE     ---       _key_fn_function
-      01001B4BH   PUBLIC    CODE     ---       _kb_combination_key_press
+      01001E95H   PUBLIC    CODE     ---       _kb_multikey_setup
+      01001C53H   PUBLIC    CODE     ---       _key_fn_function
+      01001E70H   PUBLIC    CODE     ---       _kb_combination_key_press
       01000B35H   PUBLIC    CODE     ---       _kb_motion_keyscan
       01000F38H   PUBLIC    CODE     ---       kb_need_keyscan
       010017F7H   PUBLIC    CODE     ---       kb_24g_get_led_status
@@ -830,7 +830,7 @@
       01001859H   LINE      ---      ---       #172
       01001859H   LINE      ---      ---       #173
       01001867H   LINE      ---      ---       #174
-      02004E81H   SYMBOL    XDATA    VOID      pEvt
+      02004E7FH   SYMBOL    XDATA    VOID      pEvt
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -987,277 +987,272 @@
       01000E3DH   LINE      ---      ---       #366
       01000E47H   LINE      ---      ---       #367
       01000E47H   LINE      ---      ---       #369
-      02004E65H   SYMBOL    XDATA    VOID      temp
-      02004E66H   SYMBOL    XDATA    VOID      i
+      02004E63H   SYMBOL    XDATA    VOID      temp
+      02004E64H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001B4BH   BLOCK     CODE     ---       LVL=0
-      01001B4BH   LINE      ---      ---       #373
-      01001B4BH   LINE      ---      ---       #374
-      01001B4BH   LINE      ---      ---       #375
-      01001B50H   LINE      ---      ---       #376
-      01001B53H   LINE      ---      ---       #378
-      01001B57H   LINE      ---      ---       #379
-      01001B57H   LINE      ---      ---       #380
-      01001B5EH   LINE      ---      ---       #381
-      01001B62H   LINE      ---      ---       #383
-      01001B68H   LINE      ---      ---       #384
-      01001B69H   LINE      ---      ---       #386
-      01001B69H   LINE      ---      ---       #387
-      01001B6FH   LINE      ---      ---       #388
-      01001B6FH   LINE      ---      ---       #390
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      01001A72H   BLOCK     CODE     ---       LVL=0
-      01001A72H   LINE      ---      ---       #395
-      01001A74H   LINE      ---      ---       #396
-      01001A74H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001A74H   LINE      ---      ---       #397
-      01001A79H   LINE      ---      ---       #399
-      01001A7DH   LINE      ---      ---       #400
-      01001A82H   LINE      ---      ---       #402
-      01001A87H   LINE      ---      ---       #403
-      01001A91H   LINE      ---      ---       #404
-      01001A91H   LINE      ---      ---       #406
-      01001AD1H   LINE      ---      ---       #407
-      01001AD1H   LINE      ---      ---       #408
-      01001AD1H   LINE      ---      ---       #409
-      01001AD7H   LINE      ---      ---       #410
-      01001AD9H   LINE      ---      ---       #411
-      01001AD9H   LINE      ---      ---       #412
-      01001ADFH   LINE      ---      ---       #413
-      01001AE1H   LINE      ---      ---       #414
-      01001AE1H   LINE      ---      ---       #415
-      01001AE7H   LINE      ---      ---       #416
-      01001AE9H   LINE      ---      ---       #417
-      01001AE9H   LINE      ---      ---       #418
-      01001AEFH   LINE      ---      ---       #419
-      01001AF1H   LINE      ---      ---       #420
-      01001AF1H   LINE      ---      ---       #421
-      01001AF7H   LINE      ---      ---       #422
-      01001AF9H   LINE      ---      ---       #423
-      01001AF9H   LINE      ---      ---       #424
-      01001AFFH   LINE      ---      ---       #425
-      01001B01H   LINE      ---      ---       #426
-      01001B01H   LINE      ---      ---       #427
-      01001B07H   LINE      ---      ---       #428
-      01001B09H   LINE      ---      ---       #429
-      01001B09H   LINE      ---      ---       #430
-      01001B0FH   LINE      ---      ---       #431
-      01001B11H   LINE      ---      ---       #432
-      01001B11H   LINE      ---      ---       #433
-      01001B17H   LINE      ---      ---       #434
-      01001B19H   LINE      ---      ---       #435
-      01001B19H   LINE      ---      ---       #436
-      01001B21H   LINE      ---      ---       #437
-      01001B26H   LINE      ---      ---       #438
-      01001B28H   LINE      ---      ---       #439
-      01001B28H   LINE      ---      ---       #440
-      01001B30H   LINE      ---      ---       #441
-      01001B35H   LINE      ---      ---       #442
-      01001B37H   LINE      ---      ---       #443
-      01001B37H   LINE      ---      ---       #444
-      01001B3DH   LINE      ---      ---       #445
-      01001B3FH   LINE      ---      ---       #446
-      01001B3FH   LINE      ---      ---       #447
-      01001B45H   LINE      ---      ---       #448
-      01001B45H   LINE      ---      ---       #449
-      01001B45H   LINE      ---      ---       #450
-      01001B45H   LINE      ---      ---       #451
-      01001B45H   LINE      ---      ---       #452
-      01001B45H   LINE      ---      ---       #454
-      01001B4AH   LINE      ---      ---       #455
-      02004E9AH   SYMBOL    XDATA    VOID      temp
-      ---         BLOCKEND  CODE     ---       LVL=1
-      ---         BLOCKEND  CODE     ---       LVL=0
-
-      01001E62H   BLOCK     CODE     ---       LVL=0
-      01001E62H   LINE      ---      ---       #459
-      01001E6DH   LINE      ---      ---       #460
-      01001E6DH   BLOCK     CODE     NEAR LAB  LVL=1
-      01001E6DH   LINE      ---      ---       #461
-      01001E70H   LINE      ---      ---       #463
-      01001E7EH   LINE      ---      ---       #464
-      01001E7EH   LINE      ---      ---       #465
-      01001EAAH   LINE      ---      ---       #467
-      01001EAAH   LINE      ---      ---       #468
-      01001EB1H   LINE      ---      ---       #469
-      01001EB1H   LINE      ---      ---       #470
-      01001EB8H   LINE      ---      ---       #471
-      01001EBBH   LINE      ---      ---       #472
-      01001EBFH   LINE      ---      ---       #473
-      01001EBFH   LINE      ---      ---       #474
-      01001EC6H   LINE      ---      ---       #475
-      01001EC9H   LINE      ---      ---       #476
-      01001EE9H   LINE      ---      ---       #477
-      01001EE9H   LINE      ---      ---       #478
-      01001EEEH   LINE      ---      ---       #479
-      01001EF1H   LINE      ---      ---       #480
-      01001EF5H   LINE      ---      ---       #481
-      01001EF5H   LINE      ---      ---       #482
-      01001EFCH   LINE      ---      ---       #483
-      01001EFFH   LINE      ---      ---       #484
-      01001F1FH   LINE      ---      ---       #485
-      01001F1FH   LINE      ---      ---       #486
-      01001F24H   LINE      ---      ---       #487
-      01001F27H   LINE      ---      ---       #488
-      01001F2BH   LINE      ---      ---       #489
-      01001F2BH   LINE      ---      ---       #490
-      01001F32H   LINE      ---      ---       #491
-      01001F35H   LINE      ---      ---       #492
-      01001F55H   LINE      ---      ---       #493
-      01001F55H   LINE      ---      ---       #494
-      01001F5AH   LINE      ---      ---       #495
-      01001F5DH   LINE      ---      ---       #496
-      01001F61H   LINE      ---      ---       #497
-      01001F61H   LINE      ---      ---       #498
-      01001F68H   LINE      ---      ---       #499
-      01001F6BH   LINE      ---      ---       #500
-      01001F8BH   LINE      ---      ---       #501
-      01001F8BH   LINE      ---      ---       #502
-      01001F91H   LINE      ---      ---       #503
-      01001F94H   LINE      ---      ---       #504
-      01001F98H   LINE      ---      ---       #505
-      01001F98H   LINE      ---      ---       #506
-      01001F9FH   LINE      ---      ---       #507
-      01001FA2H   LINE      ---      ---       #508
-      01001FC2H   LINE      ---      ---       #509
-      01001FC2H   LINE      ---      ---       #510
-      01001FC8H   LINE      ---      ---       #511
-      01001FCBH   LINE      ---      ---       #512
-      01001FCFH   LINE      ---      ---       #513
-      01001FCFH   LINE      ---      ---       #514
-      01001FD6H   LINE      ---      ---       #515
-      01001FD9H   LINE      ---      ---       #516
-      01001FF9H   LINE      ---      ---       #517
-      01001FF9H   LINE      ---      ---       #518
-      01002000H   LINE      ---      ---       #519
-      01002002H   LINE      ---      ---       #520
-      01002006H   LINE      ---      ---       #521
-      01002006H   LINE      ---      ---       #522
-      0100200DH   LINE      ---      ---       #523
-      0100200FH   LINE      ---      ---       #524
-      0100202FH   LINE      ---      ---       #525
-      0100202FH   LINE      ---      ---       #526
-      01002036H   LINE      ---      ---       #527
-      01002038H   LINE      ---      ---       #528
-      0100203CH   LINE      ---      ---       #529
-      0100203CH   LINE      ---      ---       #530
-      01002043H   LINE      ---      ---       #531
-      01002045H   LINE      ---      ---       #533
-      01002065H   LINE      ---      ---       #534
-      01002065H   LINE      ---      ---       #535
-      0100206CH   LINE      ---      ---       #536
-      0100206EH   LINE      ---      ---       #537
-      01002072H   LINE      ---      ---       #538
-      01002072H   LINE      ---      ---       #539
-      01002079H   LINE      ---      ---       #540
-      0100207BH   LINE      ---      ---       #541
-      0100209BH   LINE      ---      ---       #542
-      0100209BH   LINE      ---      ---       #543
-      010020A0H   LINE      ---      ---       #544
-      010020A2H   LINE      ---      ---       #545
-      010020A6H   LINE      ---      ---       #546
-      010020A6H   LINE      ---      ---       #547
-      010020ADH   LINE      ---      ---       #548
-      010020ADH   LINE      ---      ---       #550
-      010020B4H   LINE      ---      ---       #551
-      010020B4H   LINE      ---      ---       #552
-      010020D4H   LINE      ---      ---       #553
-      010020D8H   LINE      ---      ---       #554
-      010020D8H   LINE      ---      ---       #555
-      010020D8H   LINE      ---      ---       #556
-      010020E1H   LINE      ---      ---       #557
-      02004E74H   SYMBOL    XDATA    VOID      i
+      01001E70H   BLOCK     CODE     ---       LVL=0
+      01001E70H   LINE      ---      ---       #373
+      01001E70H   LINE      ---      ---       #374
+      01001E70H   LINE      ---      ---       #375
+      01001E75H   LINE      ---      ---       #376
+      01001E78H   LINE      ---      ---       #378
+      01001E7CH   LINE      ---      ---       #379
+      01001E7CH   LINE      ---      ---       #380
+      01001E83H   LINE      ---      ---       #381
+      01001E87H   LINE      ---      ---       #383
+      01001E8DH   LINE      ---      ---       #384
+      01001E8EH   LINE      ---      ---       #386
+      01001E8EH   LINE      ---      ---       #387
+      01001E94H   LINE      ---      ---       #388
+      01001E94H   LINE      ---      ---       #390
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C53H   BLOCK     CODE     ---       LVL=0
+      01001C53H   LINE      ---      ---       #395
+      01001C53H   LINE      ---      ---       #396
+      01001C53H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C53H   LINE      ---      ---       #397
+      01001C58H   LINE      ---      ---       #399
+      01001C5CH   LINE      ---      ---       #400
+      01001C61H   LINE      ---      ---       #402
+      01001C66H   LINE      ---      ---       #403
+      01001C70H   LINE      ---      ---       #404
+      01001C70H   LINE      ---      ---       #406
+      01001CACH   LINE      ---      ---       #407
+      01001CACH   LINE      ---      ---       #408
+      01001CACH   LINE      ---      ---       #409
+      01001CB2H   LINE      ---      ---       #410
+      01001CB4H   LINE      ---      ---       #411
+      01001CB4H   LINE      ---      ---       #412
+      01001CBAH   LINE      ---      ---       #413
+      01001CBCH   LINE      ---      ---       #414
+      01001CBCH   LINE      ---      ---       #415
+      01001CC2H   LINE      ---      ---       #416
+      01001CC4H   LINE      ---      ---       #417
+      01001CC4H   LINE      ---      ---       #418
+      01001CCAH   LINE      ---      ---       #419
+      01001CCCH   LINE      ---      ---       #420
+      01001CCCH   LINE      ---      ---       #421
+      01001CD2H   LINE      ---      ---       #422
+      01001CD4H   LINE      ---      ---       #423
+      01001CD4H   LINE      ---      ---       #424
+      01001CDAH   LINE      ---      ---       #425
+      01001CDCH   LINE      ---      ---       #426
+      01001CDCH   LINE      ---      ---       #427
+      01001CE2H   LINE      ---      ---       #428
+      01001CE4H   LINE      ---      ---       #429
+      01001CE4H   LINE      ---      ---       #430
+      01001CEAH   LINE      ---      ---       #431
+      01001CECH   LINE      ---      ---       #432
+      01001CECH   LINE      ---      ---       #433
+      01001CF2H   LINE      ---      ---       #434
+      01001CF4H   LINE      ---      ---       #435
+      01001CF4H   LINE      ---      ---       #436
+      01001CFAH   LINE      ---      ---       #437
+      01001CFCH   LINE      ---      ---       #438
+      01001CFCH   LINE      ---      ---       #439
+      01001D02H   LINE      ---      ---       #440
+      01001D04H   LINE      ---      ---       #441
+      01001D04H   LINE      ---      ---       #442
+      01001D0AH   LINE      ---      ---       #443
+      01001D0AH   LINE      ---      ---       #444
+      01001D0AH   LINE      ---      ---       #445
+      01001D0AH   LINE      ---      ---       #446
+      01001D0AH   LINE      ---      ---       #447
+      01001D0AH   LINE      ---      ---       #449
+      01001D0FH   LINE      ---      ---       #450
+      02004E98H   SYMBOL    XDATA    VOID      temp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001E95H   BLOCK     CODE     ---       LVL=0
+      01001E95H   LINE      ---      ---       #454
+      01001EA0H   LINE      ---      ---       #455
+      01001EA0H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001EA0H   LINE      ---      ---       #456
+      01001EA3H   LINE      ---      ---       #458
+      01001EB1H   LINE      ---      ---       #459
+      01001EB1H   LINE      ---      ---       #460
+      01001EDDH   LINE      ---      ---       #462
+      01001EDDH   LINE      ---      ---       #463
+      01001EE4H   LINE      ---      ---       #464
+      01001EE4H   LINE      ---      ---       #465
+      01001EEBH   LINE      ---      ---       #466
+      01001EEEH   LINE      ---      ---       #467
+      01001EF2H   LINE      ---      ---       #468
+      01001EF2H   LINE      ---      ---       #469
+      01001EF9H   LINE      ---      ---       #470
+      01001EFCH   LINE      ---      ---       #471
+      01001F1CH   LINE      ---      ---       #472
+      01001F1CH   LINE      ---      ---       #473
+      01001F21H   LINE      ---      ---       #474
+      01001F24H   LINE      ---      ---       #475
+      01001F28H   LINE      ---      ---       #476
+      01001F28H   LINE      ---      ---       #477
+      01001F2FH   LINE      ---      ---       #478
+      01001F32H   LINE      ---      ---       #479
+      01001F52H   LINE      ---      ---       #480
+      01001F52H   LINE      ---      ---       #481
+      01001F57H   LINE      ---      ---       #482
+      01001F5AH   LINE      ---      ---       #483
+      01001F5EH   LINE      ---      ---       #484
+      01001F5EH   LINE      ---      ---       #485
+      01001F65H   LINE      ---      ---       #486
+      01001F68H   LINE      ---      ---       #487
+      01001F88H   LINE      ---      ---       #488
+      01001F88H   LINE      ---      ---       #489
+      01001F8DH   LINE      ---      ---       #490
+      01001F90H   LINE      ---      ---       #491
+      01001F94H   LINE      ---      ---       #492
+      01001F94H   LINE      ---      ---       #493
+      01001F9BH   LINE      ---      ---       #494
+      01001F9EH   LINE      ---      ---       #495
+      01001FBEH   LINE      ---      ---       #496
+      01001FBEH   LINE      ---      ---       #497
+      01001FC4H   LINE      ---      ---       #498
+      01001FC7H   LINE      ---      ---       #499
+      01001FCBH   LINE      ---      ---       #500
+      01001FCBH   LINE      ---      ---       #501
+      01001FD2H   LINE      ---      ---       #502
+      01001FD5H   LINE      ---      ---       #503
+      01001FF5H   LINE      ---      ---       #504
+      01001FF5H   LINE      ---      ---       #505
+      01001FFBH   LINE      ---      ---       #506
+      01001FFEH   LINE      ---      ---       #507
+      01002002H   LINE      ---      ---       #508
+      01002002H   LINE      ---      ---       #509
+      01002009H   LINE      ---      ---       #510
+      0100200BH   LINE      ---      ---       #511
+      0100202BH   LINE      ---      ---       #512
+      0100202BH   LINE      ---      ---       #513
+      01002032H   LINE      ---      ---       #514
+      01002034H   LINE      ---      ---       #515
+      01002038H   LINE      ---      ---       #516
+      01002038H   LINE      ---      ---       #517
+      0100203FH   LINE      ---      ---       #518
+      01002041H   LINE      ---      ---       #519
+      01002061H   LINE      ---      ---       #520
+      01002061H   LINE      ---      ---       #521
+      01002068H   LINE      ---      ---       #522
+      0100206AH   LINE      ---      ---       #523
+      0100206EH   LINE      ---      ---       #524
+      0100206EH   LINE      ---      ---       #525
+      01002075H   LINE      ---      ---       #526
+      01002077H   LINE      ---      ---       #528
+      01002097H   LINE      ---      ---       #529
+      01002097H   LINE      ---      ---       #530
+      0100209EH   LINE      ---      ---       #531
+      010020A0H   LINE      ---      ---       #532
+      010020A4H   LINE      ---      ---       #533
+      010020A4H   LINE      ---      ---       #534
+      010020ABH   LINE      ---      ---       #535
+      010020ADH   LINE      ---      ---       #536
+      010020CDH   LINE      ---      ---       #537
+      010020CDH   LINE      ---      ---       #538
+      010020D2H   LINE      ---      ---       #539
+      010020D4H   LINE      ---      ---       #540
+      010020D8H   LINE      ---      ---       #541
+      010020D8H   LINE      ---      ---       #542
+      010020DFH   LINE      ---      ---       #543
+      010020DFH   LINE      ---      ---       #545
+      010020E6H   LINE      ---      ---       #546
+      010020E6H   LINE      ---      ---       #547
+      01002106H   LINE      ---      ---       #548
+      0100210AH   LINE      ---      ---       #549
+      0100210AH   LINE      ---      ---       #550
+      0100210AH   LINE      ---      ---       #551
+      01002113H   LINE      ---      ---       #552
+      02004E72H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       KEYSCAN
-      02004E41H   PUBLIC    XDATA    ---       ksEvtPool
+      02004E3FH   PUBLIC    XDATA    ---       ksEvtPool
       01001868H   PUBLIC    CODE     ---       KS_GetCurrentEvt
-      01001B88H   PUBLIC    CODE     ---       _array_is_empty
-      01001D02H   PUBLIC    CODE     ---       KS_ScanMatrix
+      01001AD9H   PUBLIC    CODE     ---       _array_is_empty
+      01001D10H   PUBLIC    CODE     ---       KS_ScanMatrix
       010013C7H   PUBLIC    CODE     ---       KS_Unistall
       010007EEH   PUBLIC    CODE     ---       KS_Initialize
 
-      01001A64H   BLOCK     CODE     ---       LVL=0
-      01001A64H   LINE      ---      ---       #24
-      01001A64H   LINE      ---      ---       #25
-      01001A64H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001A64H   LINE      ---      ---       #27
-      01001A69H   LINE      ---      ---       #28
-      01001A6CH   LINE      ---      ---       #29
-      01001A6FH   LINE      ---      ---       #30
-      01001A71H   LINE      ---      ---       #31
+      01001AB3H   BLOCK     CODE     ---       LVL=0
+      01001AB3H   LINE      ---      ---       #24
+      01001AB3H   LINE      ---      ---       #25
+      01001AB3H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001AB3H   LINE      ---      ---       #27
+      01001AB8H   LINE      ---      ---       #28
+      01001ABBH   LINE      ---      ---       #29
+      01001ABEH   LINE      ---      ---       #30
+      01001AC0H   LINE      ---      ---       #31
       00000006H   SYMBOL    DATA     VOID      c
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001C02H   BLOCK     CODE     ---       LVL=0
-      01001C02H   LINE      ---      ---       #35
-      01001C02H   LINE      ---      ---       #36
-      01001C02H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001C02H   LINE      ---      ---       #37
-      01001C04H   LINE      ---      ---       #39
-      01001C10H   LINE      ---      ---       #40
-      01001C10H   LINE      ---      ---       #41
-      01001C2AH   LINE      ---      ---       #43
-      01001C2AH   LINE      ---      ---       #90
-      01001C2CH   LINE      ---      ---       #91
-      01001C2CH   LINE      ---      ---       #92
-      01001C3BH   LINE      ---      ---       #93
-      01001C3BH   LINE      ---      ---       #94
-      01001C3EH   LINE      ---      ---       #95
-      01001C3EH   LINE      ---      ---       #96
-      01001C45H   LINE      ---      ---       #97
-      01001C51H   LINE      ---      ---       #98
-      01001C52H   LINE      ---      ---       #99
-      01001C52H   LINE      ---      ---       #100
-      01001C57H   LINE      ---      ---       #101
+      01001B53H   BLOCK     CODE     ---       LVL=0
+      01001B53H   LINE      ---      ---       #35
+      01001B53H   LINE      ---      ---       #36
+      01001B53H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001B53H   LINE      ---      ---       #37
+      01001B55H   LINE      ---      ---       #39
+      01001B61H   LINE      ---      ---       #40
+      01001B61H   LINE      ---      ---       #41
+      01001B7BH   LINE      ---      ---       #43
+      01001B7BH   LINE      ---      ---       #90
+      01001B7DH   LINE      ---      ---       #91
+      01001B7DH   LINE      ---      ---       #92
+      01001B8CH   LINE      ---      ---       #93
+      01001B8CH   LINE      ---      ---       #94
+      01001B8FH   LINE      ---      ---       #95
+      01001B8FH   LINE      ---      ---       #96
+      01001B96H   LINE      ---      ---       #97
+      01001BA2H   LINE      ---      ---       #98
+      01001BA3H   LINE      ---      ---       #99
+      01001BA3H   LINE      ---      ---       #100
+      01001BA8H   LINE      ---      ---       #101
       00000006H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001C58H   BLOCK     CODE     ---       LVL=0
-      01001C58H   LINE      ---      ---       #103
-      01001C58H   LINE      ---      ---       #104
-      01001C58H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001C58H   LINE      ---      ---       #105
-      01001C5AH   LINE      ---      ---       #106
-      01001C5BH   LINE      ---      ---       #108
-      01001C69H   LINE      ---      ---       #109
-      01001C69H   LINE      ---      ---       #110
-      01001C70H   LINE      ---      ---       #111
-      01001C70H   LINE      ---      ---       #112
-      01001C73H   LINE      ---      ---       #113
-      01001C73H   LINE      ---      ---       #114
-      01001C75H   LINE      ---      ---       #116
-      01001C7BH   LINE      ---      ---       #118
-      01001C87H   LINE      ---      ---       #119
-      01001C87H   LINE      ---      ---       #120
-      01001CA2H   LINE      ---      ---       #122
-      01001CA2H   LINE      ---      ---       #166
-      01001CA4H   LINE      ---      ---       #167
-      01001CA4H   LINE      ---      ---       #168
-      01001CA7H   LINE      ---      ---       #169
-      01001CA7H   LINE      ---      ---       #170
-      01001CB5H   LINE      ---      ---       #171
-      01001CB9H   LINE      ---      ---       #172
-      01001CC4H   LINE      ---      ---       #173
-      01001CC4H   LINE      ---      ---       #174
-      01001CC6H   LINE      ---      ---       #175
-      01001CC6H   LINE      ---      ---       #176
-      01001CC8H   LINE      ---      ---       #178
-      01001CC8H   LINE      ---      ---       #179
-      01001CE0H   LINE      ---      ---       #180
-      01001CEDH   LINE      ---      ---       #181
-      01001CEDH   LINE      ---      ---       #182
-      01001CF1H   LINE      ---      ---       #183
-      01001CFCH   LINE      ---      ---       #184
-      01001CFCH   LINE      ---      ---       #185
-      01001CFCH   LINE      ---      ---       #186
-      01001D01H   LINE      ---      ---       #187
+      01001BA9H   BLOCK     CODE     ---       LVL=0
+      01001BA9H   LINE      ---      ---       #103
+      01001BA9H   LINE      ---      ---       #104
+      01001BA9H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001BA9H   LINE      ---      ---       #105
+      01001BABH   LINE      ---      ---       #106
+      01001BACH   LINE      ---      ---       #108
+      01001BBAH   LINE      ---      ---       #109
+      01001BBAH   LINE      ---      ---       #110
+      01001BC1H   LINE      ---      ---       #111
+      01001BC1H   LINE      ---      ---       #112
+      01001BC4H   LINE      ---      ---       #113
+      01001BC4H   LINE      ---      ---       #114
+      01001BC6H   LINE      ---      ---       #116
+      01001BCCH   LINE      ---      ---       #118
+      01001BD8H   LINE      ---      ---       #119
+      01001BD8H   LINE      ---      ---       #120
+      01001BF3H   LINE      ---      ---       #122
+      01001BF3H   LINE      ---      ---       #166
+      01001BF5H   LINE      ---      ---       #167
+      01001BF5H   LINE      ---      ---       #168
+      01001BF8H   LINE      ---      ---       #169
+      01001BF8H   LINE      ---      ---       #170
+      01001C06H   LINE      ---      ---       #171
+      01001C0AH   LINE      ---      ---       #172
+      01001C15H   LINE      ---      ---       #173
+      01001C15H   LINE      ---      ---       #174
+      01001C17H   LINE      ---      ---       #175
+      01001C17H   LINE      ---      ---       #176
+      01001C19H   LINE      ---      ---       #178
+      01001C19H   LINE      ---      ---       #179
+      01001C31H   LINE      ---      ---       #180
+      01001C3EH   LINE      ---      ---       #181
+      01001C3EH   LINE      ---      ---       #182
+      01001C42H   LINE      ---      ---       #183
+      01001C4DH   LINE      ---      ---       #184
+      01001C4DH   LINE      ---      ---       #185
+      01001C4DH   LINE      ---      ---       #186
+      01001C52H   LINE      ---      ---       #187
       00000006H   SYMBOL    DATA     VOID      i
       00000005H   SYMBOL    DATA     VOID      found
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -1272,7 +1267,7 @@
       010008DAH   LINE      ---      ---       #194
       010008DEH   LINE      ---      ---       #195
       010008E6H   LINE      ---      ---       #196
-      02004E9BH   SYMBOL    XDATA    VOID      i
+      02004E99H   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1285,7 +1280,7 @@
       0100080BH   LINE      ---      ---       #202
       0100080FH   LINE      ---      ---       #203
       01000817H   LINE      ---      ---       #204
-      02004E9CH   SYMBOL    XDATA    VOID      i
+      02004E9AH   SYMBOL    XDATA    VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1334,60 +1329,60 @@
       0100145FH   LINE      ---      ---       #251
       0100145FH   LINE      ---      ---       #257
       00000007H   SYMBOL    DATA     VOID      i
-      02004E9DH   SYMBOL    XDATA    VOID      temp
+      02004E9BH   SYMBOL    XDATA    VOID      temp
       00000006H   SYMBOL    DATA     VOID      tgroup
       00000005H   SYMBOL    DATA     VOID      tgpionum
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001D02H   BLOCK     CODE     ---       LVL=0
-      01001D02H   LINE      ---      ---       #260
-      01001D02H   LINE      ---      ---       #261
-      01001D02H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001D02H   LINE      ---      ---       #262
-      01001D04H   LINE      ---      ---       #263
-      01001D08H   LINE      ---      ---       #264
-      01001D09H   LINE      ---      ---       #265
-      01001D0AH   LINE      ---      ---       #266
-      01001D0CH   LINE      ---      ---       #267
-      01001D0EH   LINE      ---      ---       #268
-      01001D10H   LINE      ---      ---       #269
-      01001D17H   LINE      ---      ---       #270
-      01001D20H   LINE      ---      ---       #271
-      01001D30H   LINE      ---      ---       #272
-      01001D90H   LINE      ---      ---       #273
-      01001D93H   LINE      ---      ---       #275
-      01001D9CH   LINE      ---      ---       #276
-      01001DA5H   LINE      ---      ---       #277
-      01001DB5H   LINE      ---      ---       #278
-      01001E15H   LINE      ---      ---       #279
-      01001E18H   LINE      ---      ---       #281
-      01001E21H   LINE      ---      ---       #282
-      01001E3BH   LINE      ---      ---       #283
-      01001E5EH   LINE      ---      ---       #284
-      01001E5EH   LINE      ---      ---       #285
-      01001E61H   LINE      ---      ---       #286
+      01001D10H   BLOCK     CODE     ---       LVL=0
+      01001D10H   LINE      ---      ---       #260
+      01001D10H   LINE      ---      ---       #261
+      01001D10H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001D10H   LINE      ---      ---       #262
+      01001D12H   LINE      ---      ---       #263
+      01001D16H   LINE      ---      ---       #264
+      01001D17H   LINE      ---      ---       #265
+      01001D18H   LINE      ---      ---       #266
+      01001D1AH   LINE      ---      ---       #267
+      01001D1CH   LINE      ---      ---       #268
+      01001D1EH   LINE      ---      ---       #269
+      01001D25H   LINE      ---      ---       #270
+      01001D2EH   LINE      ---      ---       #271
+      01001D3EH   LINE      ---      ---       #272
+      01001D9EH   LINE      ---      ---       #273
+      01001DA1H   LINE      ---      ---       #275
+      01001DAAH   LINE      ---      ---       #276
+      01001DB3H   LINE      ---      ---       #277
+      01001DC3H   LINE      ---      ---       #278
+      01001E23H   LINE      ---      ---       #279
+      01001E26H   LINE      ---      ---       #281
+      01001E2FH   LINE      ---      ---       #282
+      01001E49H   LINE      ---      ---       #283
+      01001E6CH   LINE      ---      ---       #284
+      01001E6CH   LINE      ---      ---       #285
+      01001E6FH   LINE      ---      ---       #286
       00000007H   SYMBOL    DATA     VOID      i
-      02004E75H   SYMBOL    XDATA    VOID      j
+      02004E73H   SYMBOL    XDATA    VOID      j
       00000006H   SYMBOL    DATA     VOID      tgroup
       00000005H   SYMBOL    DATA     VOID      tgpionum
-      02004E76H   SYMBOL    XDATA    VOID      temp
-      02004E77H   SYMBOL    XDATA    VOID      check
-      02004E78H   SYMBOL    XDATA    VOID      rawSel
+      02004E74H   SYMBOL    XDATA    VOID      temp
+      02004E75H   SYMBOL    XDATA    VOID      check
+      02004E76H   SYMBOL    XDATA    VOID      rawSel
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001B88H   BLOCK     CODE     ---       LVL=0
-      01001B88H   LINE      ---      ---       #288
-      01001B93H   LINE      ---      ---       #289
-      01001B93H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001B93H   LINE      ---      ---       #291
-      01001B9AH   LINE      ---      ---       #292
-      01001B9AH   LINE      ---      ---       #293
-      01001BAFH   LINE      ---      ---       #294
-      01001BB2H   LINE      ---      ---       #295
-      01001BB5H   LINE      ---      ---       #296
-      01001BB7H   LINE      ---      ---       #297
+      01001AD9H   BLOCK     CODE     ---       LVL=0
+      01001AD9H   LINE      ---      ---       #288
+      01001AE4H   LINE      ---      ---       #289
+      01001AE4H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001AE4H   LINE      ---      ---       #291
+      01001AEBH   LINE      ---      ---       #292
+      01001AEBH   LINE      ---      ---       #293
+      01001B00H   LINE      ---      ---       #294
+      01001B03H   LINE      ---      ---       #295
+      01001B06H   LINE      ---      ---       #296
+      01001B08H   LINE      ---      ---       #297
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -1407,91 +1402,100 @@
       0100187BH   LINE      ---      ---       #311
       0100187DH   LINE      ---      ---       #312
       0100187FH   LINE      ---      ---       #313
-      01001881H   LINE      ---      ---       #314
-      01001883H   LINE      ---      ---       #315
-      01001885H   LINE      ---      ---       #318
-      01001887H   LINE      ---      ---       #320
-      010018B5H   LINE      ---      ---       #322
-      010018B5H   LINE      ---      ---       #323
-      010018BCH   LINE      ---      ---       #324
-      010018BEH   LINE      ---      ---       #326
-      010018BEH   LINE      ---      ---       #327
-      010018C5H   LINE      ---      ---       #328
-      010018CAH   LINE      ---      ---       #329
-      010018CAH   LINE      ---      ---       #331
-      010018DAH   LINE      ---      ---       #332
-      010018E9H   LINE      ---      ---       #333
-      010018EDH   LINE      ---      ---       #334
-      010018F3H   LINE      ---      ---       #335
-      010018F9H   LINE      ---      ---       #336
-      01001901H   LINE      ---      ---       #337
-      01001901H   LINE      ---      ---       #338
-      01001909H   LINE      ---      ---       #339
-      01001911H   LINE      ---      ---       #340
-      01001919H   LINE      ---      ---       #341
-      01001925H   LINE      ---      ---       #342
-      01001946H   LINE      ---      ---       #343
-      0100194CH   LINE      ---      ---       #344
-      0100194EH   LINE      ---      ---       #345
-      0100194EH   LINE      ---      ---       #346
-      01001953H   LINE      ---      ---       #347
-      01001953H   LINE      ---      ---       #349
-      01001965H   LINE      ---      ---       #350
-      01001965H   LINE      ---      ---       #351
-      01001981H   LINE      ---      ---       #352
-      01001994H   LINE      ---      ---       #353
-      0100199AH   LINE      ---      ---       #354
-      0100199AH   LINE      ---      ---       #355
-      0100199CH   LINE      ---      ---       #356
-      0100199EH   LINE      ---      ---       #358
-      0100199EH   LINE      ---      ---       #360
-      010019A4H   LINE      ---      ---       #361
-      010019ABH   LINE      ---      ---       #362
-      010019C3H   LINE      ---      ---       #363
-      010019D2H   LINE      ---      ---       #364
-      010019D2H   LINE      ---      ---       #365
-      010019D7H   LINE      ---      ---       #366
-      010019D7H   LINE      ---      ---       #367
-      010019E8H   LINE      ---      ---       #368
-      010019FBH   LINE      ---      ---       #369
-      01001A02H   LINE      ---      ---       #370
-      01001A02H   LINE      ---      ---       #371
-      01001A09H   LINE      ---      ---       #372
-      01001A0BH   LINE      ---      ---       #374
-      01001A0BH   LINE      ---      ---       #375
-      01001A12H   LINE      ---      ---       #376
-      01001A12H   LINE      ---      ---       #377
-      01001A12H   LINE      ---      ---       #378
-      01001A1AH   LINE      ---      ---       #379
-      01001A22H   LINE      ---      ---       #380
-      01001A2AH   LINE      ---      ---       #381
-      01001A30H   LINE      ---      ---       #382
-      01001A30H   LINE      ---      ---       #383
-      01001A38H   LINE      ---      ---       #385
-      01001A46H   LINE      ---      ---       #386
-      01001A46H   LINE      ---      ---       #387
-      01001A49H   LINE      ---      ---       #388
-      01001A49H   LINE      ---      ---       #391
-      01001A56H   LINE      ---      ---       #392
-      01001A56H   LINE      ---      ---       #393
-      01001A5DH   LINE      ---      ---       #394
-      01001A5DH   LINE      ---      ---       #396
-      01001A5DH   LINE      ---      ---       #397
-      01001A63H   LINE      ---      ---       #398
-      01001A63H   LINE      ---      ---       #401
+      01001881H   LINE      ---      ---       #315
+      01001883H   LINE      ---      ---       #317
+      010018B1H   LINE      ---      ---       #319
+      010018B1H   LINE      ---      ---       #320
+      010018B8H   LINE      ---      ---       #321
+      010018BAH   LINE      ---      ---       #323
+      010018BAH   LINE      ---      ---       #324
+      010018C1H   LINE      ---      ---       #325
+      010018C6H   LINE      ---      ---       #326
+      010018C6H   LINE      ---      ---       #328
+      010018D8H   LINE      ---      ---       #329
+      010018D8H   LINE      ---      ---       #330
+      010018E7H   LINE      ---      ---       #331
+      010018F0H   LINE      ---      ---       #332
+      010018F7H   LINE      ---      ---       #333
+      010018F7H   LINE      ---      ---       #334
+      01001906H   LINE      ---      ---       #335
+      01001906H   LINE      ---      ---       #336
+      01001921H   LINE      ---      ---       #337
+      01001921H   LINE      ---      ---       #338
+      01001931H   LINE      ---      ---       #339
+      01001931H   LINE      ---      ---       #340
+      0100193AH   LINE      ---      ---       #341
+      0100193AH   LINE      ---      ---       #342
+      01001969H   LINE      ---      ---       #343
+      01001969H   LINE      ---      ---       #344
+      0100196FH   LINE      ---      ---       #345
+      01001971H   LINE      ---      ---       #346
+      01001971H   LINE      ---      ---       #347
+      01001971H   LINE      ---      ---       #348
+      01001979H   LINE      ---      ---       #349
+      01001979H   LINE      ---      ---       #350
+      01001981H   LINE      ---      ---       #351
+      01001981H   LINE      ---      ---       #353
+      01001988H   LINE      ---      ---       #354
+      01001988H   LINE      ---      ---       #355
+      01001990H   LINE      ---      ---       #356
+      01001990H   LINE      ---      ---       #357
+      01001998H   LINE      ---      ---       #358
+      010019A0H   LINE      ---      ---       #361
+      010019B2H   LINE      ---      ---       #362
+      010019B2H   LINE      ---      ---       #363
+      010019CEH   LINE      ---      ---       #364
+      010019E1H   LINE      ---      ---       #365
+      010019E7H   LINE      ---      ---       #366
+      010019E7H   LINE      ---      ---       #367
+      010019E9H   LINE      ---      ---       #368
+      010019EBH   LINE      ---      ---       #370
+      010019EBH   LINE      ---      ---       #372
+      010019F1H   LINE      ---      ---       #373
+      010019F8H   LINE      ---      ---       #374
+      01001A10H   LINE      ---      ---       #375
+      01001A1FH   LINE      ---      ---       #376
+      01001A1FH   LINE      ---      ---       #377
+      01001A26H   LINE      ---      ---       #378
+      01001A26H   LINE      ---      ---       #379
+      01001A37H   LINE      ---      ---       #380
+      01001A4AH   LINE      ---      ---       #381
+      01001A51H   LINE      ---      ---       #382
+      01001A51H   LINE      ---      ---       #383
+      01001A58H   LINE      ---      ---       #384
+      01001A5AH   LINE      ---      ---       #386
+      01001A5AH   LINE      ---      ---       #387
+      01001A61H   LINE      ---      ---       #388
+      01001A61H   LINE      ---      ---       #389
+      01001A61H   LINE      ---      ---       #390
+      01001A69H   LINE      ---      ---       #391
+      01001A71H   LINE      ---      ---       #392
+      01001A79H   LINE      ---      ---       #393
+      01001A7FH   LINE      ---      ---       #394
+      01001A7FH   LINE      ---      ---       #395
+      01001A87H   LINE      ---      ---       #397
+      01001A95H   LINE      ---      ---       #398
+      01001A95H   LINE      ---      ---       #399
+      01001A98H   LINE      ---      ---       #400
+      01001A98H   LINE      ---      ---       #403
+      01001AA5H   LINE      ---      ---       #404
+      01001AA5H   LINE      ---      ---       #405
+      01001AACH   LINE      ---      ---       #406
+      01001AACH   LINE      ---      ---       #408
+      01001AACH   LINE      ---      ---       #409
+      01001AB2H   LINE      ---      ---       #410
+      01001AB2H   LINE      ---      ---       #413
       02004E23H   SYMBOL    XDATA    VOID      i
       02004E24H   SYMBOL    XDATA    VOID      j
-      02004E25H   SYMBOL    XDATA    VOID      temp
-      02004E26H   SYMBOL    XDATA    VOID      flag
-      02004E27H   SYMBOL    XDATA    VOID      offset
-      02004E28H   SYMBOL    XDATA    VOID      state
-      02004E29H   SYMBOL    XDATA    VOID      colCounttemp
-      02004E2AH   SYMBOL    XDATA    VOID      rawSel
-      02004E2BH   SYMBOL    XDATA    VOID      keyCounttemp
-      02004E2CH   SYMBOL    XDATA    VOID      key_value_temp
-      02004E2DH   SYMBOL    XDATA    VOID      ghost
-      02004E2EH   SYMBOL    XDATA    VOID      rawCount
-      02004E2FH   SYMBOL    XDATA    VOID      colCount
+      02004E25H   SYMBOL    XDATA    VOID      k
+      02004E26H   SYMBOL    XDATA    VOID      temp
+      02004E27H   SYMBOL    XDATA    VOID      flag
+      02004E28H   SYMBOL    XDATA    VOID      offset
+      02004E29H   SYMBOL    XDATA    VOID      state
+      02004E2AH   SYMBOL    XDATA    VOID      keyCounttemp
+      02004E2BH   SYMBOL    XDATA    VOID      key_value_temp
+      02004E2CH   SYMBOL    XDATA    VOID      ghost
+      02004E2DH   SYMBOL    XDATA    VOID      rawCount
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1586,7 +1590,7 @@
       010016FCH   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
       01001237H   PUBLIC    CODE     ---       YC_connect_timeout_500ms
       010017BAH   PUBLIC    CODE     ---       LED_timer500ms
-      010020EBH   PUBLIC    CODE     ---       System_Reset_Connect
+      0100211DH   PUBLIC    CODE     ---       System_Reset_Connect
       0100121BH   PUBLIC    CODE     ---       System_long_sleep
       01001272H   PUBLIC    CODE     ---       System_Software_init
 
@@ -1637,11 +1641,11 @@
       0100128FH   LINE      ---      ---       #56
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010020E2H   BLOCK     CODE     ---       LVL=0
-      010020E2H   LINE      ---      ---       #58
-      010020E2H   LINE      ---      ---       #59
-      010020E2H   LINE      ---      ---       #60
-      010020E8H   LINE      ---      ---       #61
+      01002114H   BLOCK     CODE     ---       LVL=0
+      01002114H   LINE      ---      ---       #58
+      01002114H   LINE      ---      ---       #59
+      01002114H   LINE      ---      ---       #60
+      0100211AH   LINE      ---      ---       #61
       ---         BLOCKEND  ---      ---       LVL=0
 
       0100121BH   BLOCK     CODE     ---       LVL=0
@@ -1657,20 +1661,20 @@
       01001236H   LINE      ---      ---       #73
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010020EBH   BLOCK     CODE     ---       LVL=0
-      010020EBH   LINE      ---      ---       #75
-      010020EBH   LINE      ---      ---       #76
-      010020EBH   LINE      ---      ---       #77
+      0100211DH   BLOCK     CODE     ---       LVL=0
+      0100211DH   LINE      ---      ---       #75
+      0100211DH   LINE      ---      ---       #76
+      0100211DH   LINE      ---      ---       #77
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010020EDH   BLOCK     CODE     ---       LVL=0
-      010020EDH   LINE      ---      ---       #85
-      010020F2H   BLOCK     CODE     NEAR LAB  LVL=1
-      010020F2H   LINE      ---      ---       #87
-      010020FCH   LINE      ---      ---       #89
-      010020FCH   LINE      ---      ---       #91
-      010020FCH   LINE      ---      ---       #92
-      02004E96H   SYMBOL    XDATA    VOID      temp
+      0100211FH   BLOCK     CODE     ---       LVL=0
+      0100211FH   LINE      ---      ---       #85
+      01002124H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002124H   LINE      ---      ---       #87
+      0100212EH   LINE      ---      ---       #89
+      0100212EH   LINE      ---      ---       #91
+      0100212EH   LINE      ---      ---       #92
+      02004E94H   SYMBOL    XDATA    VOID      temp
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -1847,85 +1851,85 @@
       010016FAH   LINE      ---      ---       #295
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010020FDH   BLOCK     CODE     ---       LVL=0
-      010020FDH   LINE      ---      ---       #302
-      010020FDH   LINE      ---      ---       #303
-      010020FDH   LINE      ---      ---       #304
-      01002103H   LINE      ---      ---       #305
-      01002103H   LINE      ---      ---       #306
-      01002105H   LINE      ---      ---       #307
-      01002105H   LINE      ---      ---       #309
-      0100210BH   LINE      ---      ---       #310
-      0100210DH   LINE      ---      ---       #313
-      01002113H   LINE      ---      ---       #314
-      01002113H   LINE      ---      ---       #315
-      01002115H   LINE      ---      ---       #316
-      01002118H   LINE      ---      ---       #317
-      0100211EH   LINE      ---      ---       #318
-      0100211EH   LINE      ---      ---       #320
-      01002124H   LINE      ---      ---       #321
-      01002124H   LINE      ---      ---       #322
-      0100212AH   LINE      ---      ---       #323
-      0100212AH   LINE      ---      ---       #324
-      01002130H   LINE      ---      ---       #326
-      01002130H   LINE      ---      ---       #328
-      01002136H   LINE      ---      ---       #329
-      0100213DH   LINE      ---      ---       #330
-      01002143H   LINE      ---      ---       #331
-      01002143H   LINE      ---      ---       #332
-      0100214AH   LINE      ---      ---       #333
-      0100214AH   LINE      ---      ---       #334
-      0100214CH   LINE      ---      ---       #335
-      01002152H   LINE      ---      ---       #336
-      01002152H   LINE      ---      ---       #337
-      01002158H   LINE      ---      ---       #338
-      0100215CH   LINE      ---      ---       #339
-      01002161H   LINE      ---      ---       #340
-      01002163H   LINE      ---      ---       #341
-      01002169H   LINE      ---      ---       #342
-      01002169H   LINE      ---      ---       #343
-      0100216FH   LINE      ---      ---       #344
-      0100216FH   LINE      ---      ---       #345
-      01002171H   LINE      ---      ---       #346
-      01002178H   LINE      ---      ---       #347
-      01002178H   LINE      ---      ---       #348
-      0100217CH   LINE      ---      ---       #349
-      0100217CH   LINE      ---      ---       #350
-      01002183H   LINE      ---      ---       #351
-      01002185H   LINE      ---      ---       #353
-      01002185H   LINE      ---      ---       #354
-      0100218CH   LINE      ---      ---       #355
-      0100218CH   LINE      ---      ---       #356
-      0100218EH   LINE      ---      ---       #358
-      01002195H   LINE      ---      ---       #359
-      0100219BH   LINE      ---      ---       #360
-      0100219EH   LINE      ---      ---       #361
-      0100219EH   LINE      ---      ---       #362
-      0100219EH   LINE      ---      ---       #365
-      010021A4H   LINE      ---      ---       #366
-      010021A4H   LINE      ---      ---       #367
-      010021ACH   LINE      ---      ---       #368
-      010021ACH   LINE      ---      ---       #369
-      010021B2H   LINE      ---      ---       #370
-      010021B6H   LINE      ---      ---       #372
-      010021BCH   LINE      ---      ---       #373
-      010021BCH   LINE      ---      ---       #374
-      010021C7H   LINE      ---      ---       #375
-      010021C9H   LINE      ---      ---       #376
-      010021CFH   LINE      ---      ---       #377
-      010021CFH   LINE      ---      ---       #379
-      010021DAH   LINE      ---      ---       #380
-      010021DAH   LINE      ---      ---       #381
-      010021DAH   LINE      ---      ---       #382
-      010021DAH   LINE      ---      ---       #384
-      010021E0H   LINE      ---      ---       #385
-      010021E0H   LINE      ---      ---       #386
-      010021E3H   LINE      ---      ---       #387
-      010021ECH   LINE      ---      ---       #388
-      010021ECH   LINE      ---      ---       #389
-      010021EEH   LINE      ---      ---       #390
-      010021EEH   LINE      ---      ---       #391
-      010021EEH   LINE      ---      ---       #392
+      0100212FH   BLOCK     CODE     ---       LVL=0
+      0100212FH   LINE      ---      ---       #302
+      0100212FH   LINE      ---      ---       #303
+      0100212FH   LINE      ---      ---       #304
+      01002135H   LINE      ---      ---       #305
+      01002135H   LINE      ---      ---       #306
+      01002137H   LINE      ---      ---       #307
+      01002137H   LINE      ---      ---       #309
+      0100213DH   LINE      ---      ---       #310
+      0100213FH   LINE      ---      ---       #313
+      01002145H   LINE      ---      ---       #314
+      01002145H   LINE      ---      ---       #315
+      01002147H   LINE      ---      ---       #316
+      0100214AH   LINE      ---      ---       #317
+      01002150H   LINE      ---      ---       #318
+      01002150H   LINE      ---      ---       #320
+      01002156H   LINE      ---      ---       #321
+      01002156H   LINE      ---      ---       #322
+      0100215CH   LINE      ---      ---       #323
+      0100215CH   LINE      ---      ---       #324
+      01002162H   LINE      ---      ---       #326
+      01002162H   LINE      ---      ---       #328
+      01002168H   LINE      ---      ---       #329
+      0100216FH   LINE      ---      ---       #330
+      01002175H   LINE      ---      ---       #331
+      01002175H   LINE      ---      ---       #332
+      0100217CH   LINE      ---      ---       #333
+      0100217CH   LINE      ---      ---       #334
+      0100217EH   LINE      ---      ---       #335
+      01002184H   LINE      ---      ---       #336
+      01002184H   LINE      ---      ---       #337
+      0100218AH   LINE      ---      ---       #338
+      0100218EH   LINE      ---      ---       #339
+      01002193H   LINE      ---      ---       #340
+      01002195H   LINE      ---      ---       #341
+      0100219BH   LINE      ---      ---       #342
+      0100219BH   LINE      ---      ---       #343
+      010021A1H   LINE      ---      ---       #344
+      010021A1H   LINE      ---      ---       #345
+      010021A3H   LINE      ---      ---       #346
+      010021AAH   LINE      ---      ---       #347
+      010021AAH   LINE      ---      ---       #348
+      010021AEH   LINE      ---      ---       #349
+      010021AEH   LINE      ---      ---       #350
+      010021B5H   LINE      ---      ---       #351
+      010021B7H   LINE      ---      ---       #353
+      010021B7H   LINE      ---      ---       #354
+      010021BEH   LINE      ---      ---       #355
+      010021BEH   LINE      ---      ---       #356
+      010021C0H   LINE      ---      ---       #358
+      010021C7H   LINE      ---      ---       #359
+      010021CDH   LINE      ---      ---       #360
+      010021D0H   LINE      ---      ---       #361
+      010021D0H   LINE      ---      ---       #362
+      010021D0H   LINE      ---      ---       #365
+      010021D6H   LINE      ---      ---       #366
+      010021D6H   LINE      ---      ---       #367
+      010021DEH   LINE      ---      ---       #368
+      010021DEH   LINE      ---      ---       #369
+      010021E4H   LINE      ---      ---       #370
+      010021E8H   LINE      ---      ---       #372
+      010021EEH   LINE      ---      ---       #373
+      010021EEH   LINE      ---      ---       #374
+      010021F9H   LINE      ---      ---       #375
+      010021FBH   LINE      ---      ---       #376
+      01002201H   LINE      ---      ---       #377
+      01002201H   LINE      ---      ---       #379
+      0100220CH   LINE      ---      ---       #380
+      0100220CH   LINE      ---      ---       #381
+      0100220CH   LINE      ---      ---       #382
+      0100220CH   LINE      ---      ---       #384
+      01002212H   LINE      ---      ---       #385
+      01002212H   LINE      ---      ---       #386
+      01002215H   LINE      ---      ---       #387
+      0100221EH   LINE      ---      ---       #388
+      0100221EH   LINE      ---      ---       #389
+      01002220H   LINE      ---      ---       #390
+      01002220H   LINE      ---      ---       #391
+      01002220H   LINE      ---      ---       #392
       ---         BLOCKEND  ---      ---       LVL=0
 
       0100150DH   BLOCK     CODE     ---       LVL=0
@@ -1967,71 +1971,71 @@
 
       ---         MODULE    ---      ---       ADC
       0100171AH   PUBLIC    CODE     ---       YC_adc_check_timer500ms
-      010022B5H   PUBLIC    CODE     ---       YC_adc_check
-      010021EFH   PUBLIC    CODE     ---       YC_adc_init
+      010022E7H   PUBLIC    CODE     ---       YC_adc_check
+      01002221H   PUBLIC    CODE     ---       YC_adc_init
 
-      010021EFH   BLOCK     CODE     ---       LVL=0
-      010021EFH   LINE      ---      ---       #3
-      010021EFH   LINE      ---      ---       #4
-      010021EFH   BLOCK     CODE     NEAR LAB  LVL=1
-      010021EFH   LINE      ---      ---       #8
-      010021F5H   LINE      ---      ---       #9
-      010021F8H   LINE      ---      ---       #29
-      010021FEH   LINE      ---      ---       #30
-      01002200H   LINE      ---      ---       #31
-      01002200H   LINE      ---      ---       #32
-      01002213H   LINE      ---      ---       #33
-      01002218H   LINE      ---      ---       #34
-      01002266H   LINE      ---      ---       #35
-      010022B4H   LINE      ---      ---       #38
+      01002221H   BLOCK     CODE     ---       LVL=0
+      01002221H   LINE      ---      ---       #3
+      01002221H   LINE      ---      ---       #4
+      01002221H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002221H   LINE      ---      ---       #8
+      01002227H   LINE      ---      ---       #9
+      0100222AH   LINE      ---      ---       #29
+      01002230H   LINE      ---      ---       #30
+      01002232H   LINE      ---      ---       #31
+      01002232H   LINE      ---      ---       #32
+      01002245H   LINE      ---      ---       #33
+      0100224AH   LINE      ---      ---       #34
+      01002298H   LINE      ---      ---       #35
+      010022E6H   LINE      ---      ---       #38
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010022B5H   BLOCK     CODE     ---       LVL=0
-      010022B5H   LINE      ---      ---       #40
-      010022B5H   LINE      ---      ---       #41
-      010022B5H   BLOCK     CODE     NEAR LAB  LVL=1
-      010022B5H   LINE      ---      ---       #44
-      010022BFH   LINE      ---      ---       #46
-      010022CBH   LINE      ---      ---       #49
-      010022EBH   LINE      ---      ---       #50
-      010022F4H   LINE      ---      ---       #51
-      010022F6H   LINE      ---      ---       #52
-      010022FBH   LINE      ---      ---       #53
-      010022FBH   LINE      ---      ---       #54
-      01002332H   LINE      ---      ---       #55
-      0100233CH   LINE      ---      ---       #56
-      01002359H   LINE      ---      ---       #58
-      01002378H   LINE      ---      ---       #59
-      01002378H   LINE      ---      ---       #60
-      0100237EH   LINE      ---      ---       #61
-      0100237FH   LINE      ---      ---       #63
-      0100237FH   LINE      ---      ---       #64
-      0100239EH   LINE      ---      ---       #65
-      0100239EH   LINE      ---      ---       #66
-      010023A4H   LINE      ---      ---       #67
-      010023AAH   LINE      ---      ---       #68
-      010023AAH   LINE      ---      ---       #69
-      010023AEH   LINE      ---      ---       #70
-      010023B2H   LINE      ---      ---       #71
-      010023B6H   LINE      ---      ---       #72
-      010023B9H   LINE      ---      ---       #73
-      010023B9H   LINE      ---      ---       #74
-      010023BAH   LINE      ---      ---       #76
-      010023BAH   LINE      ---      ---       #77
-      010023BFH   LINE      ---      ---       #78
-      010023C5H   LINE      ---      ---       #79
-      010023C5H   LINE      ---      ---       #80
-      010023C9H   LINE      ---      ---       #81
-      010023CDH   LINE      ---      ---       #82
-      010023D1H   LINE      ---      ---       #83
-      010023D4H   LINE      ---      ---       #84
-      010023D4H   LINE      ---      ---       #85
-      010023D4H   LINE      ---      ---       #86
-      010023D4H   LINE      ---      ---       #88
-      02004E67H   SYMBOL    XDATA    VOID      i
-      02004E68H   SYMBOL    XDATA    VOID      batValue
+      010022E7H   BLOCK     CODE     ---       LVL=0
+      010022E7H   LINE      ---      ---       #40
+      010022E7H   LINE      ---      ---       #41
+      010022E7H   BLOCK     CODE     NEAR LAB  LVL=1
+      010022E7H   LINE      ---      ---       #44
+      010022F1H   LINE      ---      ---       #46
+      010022FDH   LINE      ---      ---       #49
+      0100231DH   LINE      ---      ---       #50
+      01002326H   LINE      ---      ---       #51
+      01002328H   LINE      ---      ---       #52
+      0100232DH   LINE      ---      ---       #53
+      0100232DH   LINE      ---      ---       #54
+      01002364H   LINE      ---      ---       #55
+      0100236EH   LINE      ---      ---       #56
+      0100238BH   LINE      ---      ---       #58
+      010023AAH   LINE      ---      ---       #59
+      010023AAH   LINE      ---      ---       #60
+      010023B0H   LINE      ---      ---       #61
+      010023B1H   LINE      ---      ---       #63
+      010023B1H   LINE      ---      ---       #64
+      010023D0H   LINE      ---      ---       #65
+      010023D0H   LINE      ---      ---       #66
+      010023D6H   LINE      ---      ---       #67
+      010023DCH   LINE      ---      ---       #68
+      010023DCH   LINE      ---      ---       #69
+      010023E0H   LINE      ---      ---       #70
+      010023E4H   LINE      ---      ---       #71
+      010023E8H   LINE      ---      ---       #72
+      010023EBH   LINE      ---      ---       #73
+      010023EBH   LINE      ---      ---       #74
+      010023ECH   LINE      ---      ---       #76
+      010023ECH   LINE      ---      ---       #77
+      010023F1H   LINE      ---      ---       #78
+      010023F7H   LINE      ---      ---       #79
+      010023F7H   LINE      ---      ---       #80
+      010023FBH   LINE      ---      ---       #81
+      010023FFH   LINE      ---      ---       #82
+      01002403H   LINE      ---      ---       #83
+      01002406H   LINE      ---      ---       #84
+      01002406H   LINE      ---      ---       #85
+      01002406H   LINE      ---      ---       #86
+      01002406H   LINE      ---      ---       #88
+      02004E65H   SYMBOL    XDATA    VOID      i
+      02004E66H   SYMBOL    XDATA    VOID      batValue
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2071,35 +2075,35 @@
       0200054FH   PUBLIC    XDATA    BYTE      ipcPinlen
       02000B7EH   PUBLIC    XDATA    BYTE      current_task
       01001606H   PUBLIC    CODE     ---       IPC_DealSingleStep
-      01001B70H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
+      01001AC1H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
       010016DAH   PUBLIC    CODE     ---       IPC_AbandonLpm
       010014FFH   PUBLIC    CODE     ---       IPC_WaitLpm
       01001513H   PUBLIC    CODE     ---       _IPC_Initialize
-      0100247FH   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      010024B1H   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
       01000FEBH   PUBLIC    CODE     ---       _IPC_Tx24GData
       01000FF1H   PUBLIC    CODE     ---       _IPC_TxData
       010009C5H   PUBLIC    CODE     ---       _IPC_TxControlCmd
 
-      010023D5H   BLOCK     CODE     ---       LVL=0
-      010023D5H   LINE      ---      ---       #44
-      010023E5H   LINE      ---      ---       #45
-      010023E5H   LINE      ---      ---       #46
-      0100242EH   LINE      ---      ---       #47
-      ---         BLOCKEND  ---      ---       LVL=0
-
-      0100242FH   BLOCK     CODE     ---       LVL=0
-      0100242FH   LINE      ---      ---       #49
-      01002439H   LINE      ---      ---       #50
-      01002439H   BLOCK     CODE     NEAR LAB  LVL=1
-      01002439H   LINE      ---      ---       #51
-      01002441H   LINE      ---      ---       #52
-      01002447H   LINE      ---      ---       #53
-      01002466H   LINE      ---      ---       #54
-      01002470H   LINE      ---      ---       #55
-      01002474H   LINE      ---      ---       #56
-      01002474H   LINE      ---      ---       #57
-      01002476H   LINE      ---      ---       #58
-      0100247EH   LINE      ---      ---       #59
+      01002407H   BLOCK     CODE     ---       LVL=0
+      01002407H   LINE      ---      ---       #44
+      01002417H   LINE      ---      ---       #45
+      01002417H   LINE      ---      ---       #46
+      01002460H   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002461H   BLOCK     CODE     ---       LVL=0
+      01002461H   LINE      ---      ---       #49
+      0100246BH   LINE      ---      ---       #50
+      0100246BH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100246BH   LINE      ---      ---       #51
+      01002473H   LINE      ---      ---       #52
+      01002479H   LINE      ---      ---       #53
+      01002498H   LINE      ---      ---       #54
+      010024A2H   LINE      ---      ---       #55
+      010024A6H   LINE      ---      ---       #56
+      010024A6H   LINE      ---      ---       #57
+      010024A8H   LINE      ---      ---       #58
+      010024B0H   LINE      ---      ---       #59
       00000006H   SYMBOL    DATA     VOID      src
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2118,7 +2122,7 @@
       01000A70H   LINE      ---      ---       #70
       01000A72H   LINE      ---      ---       #71
       01000A81H   LINE      ---      ---       #72
-      02004E5AH   SYMBOL    XDATA    VOID      dest
+      02004E58H   SYMBOL    XDATA    VOID      dest
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2129,7 +2133,7 @@
       010009CAH   LINE      ---      ---       #76
       010009DDH   LINE      ---      ---       #79
       010009E5H   LINE      ---      ---       #80
-      02004E7EH   SYMBOL    XDATA    VOID      cmdBuff
+      02004E7CH   SYMBOL    XDATA    VOID      cmdBuff
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2147,11 +2151,11 @@
       01000FEBH   LINE      ---      ---       #92
       ---         BLOCKEND  ---      ---       LVL=0
 
-      0100247FH   BLOCK     CODE     ---       LVL=0
-      0100247FH   LINE      ---      ---       #98
-      0100247FH   LINE      ---      ---       #99
-      0100247FH   LINE      ---      ---       #100
-      01002484H   LINE      ---      ---       #101
+      010024B1H   BLOCK     CODE     ---       LVL=0
+      010024B1H   LINE      ---      ---       #98
+      010024B1H   LINE      ---      ---       #99
+      010024B1H   LINE      ---      ---       #100
+      010024B6H   LINE      ---      ---       #101
       ---         BLOCKEND  ---      ---       LVL=0
 
       01001513H   BLOCK     CODE     ---       LVL=0
@@ -2176,13 +2180,13 @@
       010016E5H   LINE      ---      ---       #119
       ---         BLOCKEND  ---      ---       LVL=0
 
-      01001B70H   BLOCK     CODE     ---       LVL=0
-      01001B70H   LINE      ---      ---       #121
-      01001B70H   LINE      ---      ---       #122
-      01001B70H   LINE      ---      ---       #123
-      01001B84H   LINE      ---      ---       #124
-      01001B86H   LINE      ---      ---       #125
-      01001B87H   LINE      ---      ---       #126
+      01001AC1H   BLOCK     CODE     ---       LVL=0
+      01001AC1H   LINE      ---      ---       #121
+      01001AC1H   LINE      ---      ---       #122
+      01001AC1H   LINE      ---      ---       #123
+      01001AD5H   LINE      ---      ---       #124
+      01001AD7H   LINE      ---      ---       #125
+      01001AD8H   LINE      ---      ---       #126
       ---         BLOCKEND  ---      ---       LVL=0
 
       01001606H   BLOCK     CODE     ---       LVL=0
@@ -2213,27 +2217,27 @@
       010016CAH   LINE      ---      ---       #156
       010016CCH   LINE      ---      ---       #158
       01001673H   SYMBOL    ---      ---       IPC_TIMERingleStep
-      02004E87H   SYMBOL    XDATA    VOID      pbuff
+      02004E85H   SYMBOL    XDATA    VOID      pbuff
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
       ---         MODULE    ---      ---       UTILITIES
-      02004E48H   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
-      01001BB8H   PUBLIC    CODE     ---       _compare_str
+      02004E46H   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
+      01001B09H   PUBLIC    CODE     ---       _compare_str
       01000FD3H   PUBLIC    CODE     ---       _Delay1ms
-      010024D0H   PUBLIC    CODE     ---       _xmemclear_ff
+      01002502H   PUBLIC    CODE     ---       _xmemclear_ff
       01000E48H   PUBLIC    CODE     ---       _xmemclear
-      02004E39H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
-      0100248CH   PUBLIC    CODE     ---       _dmemcpy
-      02004E5CH   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
+      02004E37H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
+      010024BEH   PUBLIC    CODE     ---       _dmemcpy
+      02004E5AH   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
       01001017H   PUBLIC    CODE     ---       _xmemcpy
-      01002485H   PUBLIC    CODE     ---       YC_Ice_break
+      010024B7H   PUBLIC    CODE     ---       YC_Ice_break
 
-      01002485H   BLOCK     CODE     ---       LVL=0
-      01002485H   LINE      ---      ---       #3
-      01002485H   LINE      ---      ---       #4
-      01002485H   LINE      ---      ---       #5
-      0100248BH   LINE      ---      ---       #7
+      010024B7H   BLOCK     CODE     ---       LVL=0
+      010024B7H   LINE      ---      ---       #3
+      010024B7H   LINE      ---      ---       #4
+      010024B7H   LINE      ---      ---       #5
+      010024BDH   LINE      ---      ---       #7
       ---         BLOCKEND  ---      ---       LVL=0
 
       01001017H   BLOCK     CODE     ---       LVL=0
@@ -2244,12 +2248,12 @@
       01001059H   LINE      ---      ---       #14
       ---         BLOCKEND  ---      ---       LVL=0
 
-      0100248CH   BLOCK     CODE     ---       LVL=0
-      0100248CH   LINE      ---      ---       #16
-      01002497H   LINE      ---      ---       #17
-      01002497H   LINE      ---      ---       #18
-      010024A5H   LINE      ---      ---       #19
-      010024CFH   LINE      ---      ---       #21
+      010024BEH   BLOCK     CODE     ---       LVL=0
+      010024BEH   LINE      ---      ---       #16
+      010024C9H   LINE      ---      ---       #17
+      010024C9H   LINE      ---      ---       #18
+      010024D7H   LINE      ---      ---       #19
+      01002501H   LINE      ---      ---       #21
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000E48H   BLOCK     CODE     ---       LVL=0
@@ -2260,12 +2264,12 @@
       01000E73H   LINE      ---      ---       #28
       ---         BLOCKEND  ---      ---       LVL=0
 
-      010024D0H   BLOCK     CODE     ---       LVL=0
-      010024D0H   LINE      ---      ---       #30
-      010024DBH   LINE      ---      ---       #31
-      010024DBH   LINE      ---      ---       #32
-      010024E5H   LINE      ---      ---       #33
-      010024FCH   LINE      ---      ---       #35
+      01002502H   BLOCK     CODE     ---       LVL=0
+      01002502H   LINE      ---      ---       #30
+      0100250DH   LINE      ---      ---       #31
+      0100250DH   LINE      ---      ---       #32
+      01002517H   LINE      ---      ---       #33
+      0100252EH   LINE      ---      ---       #35
       ---         BLOCKEND  ---      ---       LVL=0
 
       01000FD3H   BLOCK     CODE     ---       LVL=0
@@ -2280,16 +2284,16 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      01001BB8H   BLOCK     CODE     ---       LVL=0
-      01001BB8H   LINE      ---      ---       #54
-      01001BC3H   LINE      ---      ---       #55
-      01001BC3H   BLOCK     CODE     NEAR LAB  LVL=1
-      01001BC3H   LINE      ---      ---       #57
-      01001BCFH   LINE      ---      ---       #58
-      01001BF9H   LINE      ---      ---       #59
-      01001BFCH   LINE      ---      ---       #60
-      01001BFFH   LINE      ---      ---       #61
-      01001C01H   LINE      ---      ---       #62
+      01001B09H   BLOCK     CODE     ---       LVL=0
+      01001B09H   LINE      ---      ---       #54
+      01001B14H   LINE      ---      ---       #55
+      01001B14H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001B14H   LINE      ---      ---       #57
+      01001B20H   LINE      ---      ---       #58
+      01001B4AH   LINE      ---      ---       #59
+      01001B4DH   LINE      ---      ---       #60
+      01001B50H   LINE      ---      ---       #61
+      01001B52H   LINE      ---      ---       #62
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2297,10 +2301,10 @@
       ---         MODULE    ---      ---       GPIO
       020000A3H   PUBLIC    XDATA    ---       YC_GPIOWakeupL
       020000A7H   PUBLIC    XDATA    ---       YC_GPIOWakeupH
-      0100253CH   PUBLIC    CODE     ---       GPIO_fillpd
+      0100256EH   PUBLIC    CODE     ---       GPIO_fillpd
       010017C0H   PUBLIC    CODE     ---       _GPIO_FlipOutBit
       01001460H   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
-      010024FDH   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      0100252FH   PUBLIC    CODE     ---       _GPIO_ClearWakeup
       00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
       01001473H   PUBLIC    CODE     ---       _GPIO_SetWakeup
       00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
@@ -2345,7 +2349,7 @@
       01001532H   LINE      ---      ---       #32
       01001539H   LINE      ---      ---       #33
       01001564H   LINE      ---      ---       #35
-      02004EA0H   SYMBOL    XDATA    VOID      queue
+      02004E9EH   SYMBOL    XDATA    VOID      queue
       00000006H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2429,16 +2433,16 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      010024FDH   BLOCK     CODE     ---       LVL=0
-      010024FDH   LINE      ---      ---       #107
-      010024FDH   LINE      ---      ---       #108
-      010024FDH   BLOCK     CODE     NEAR LAB  LVL=1
-      010024FDH   LINE      ---      ---       #111
-      01002501H   LINE      ---      ---       #113
-      01002505H   LINE      ---      ---       #114
-      0100250CH   LINE      ---      ---       #115
-      0100252EH   LINE      ---      ---       #116
-      0100253BH   LINE      ---      ---       #117
+      0100252FH   BLOCK     CODE     ---       LVL=0
+      0100252FH   LINE      ---      ---       #107
+      0100252FH   LINE      ---      ---       #108
+      0100252FH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100252FH   LINE      ---      ---       #111
+      01002533H   LINE      ---      ---       #113
+      01002537H   LINE      ---      ---       #114
+      0100253EH   LINE      ---      ---       #115
+      01002560H   LINE      ---      ---       #116
+      0100256DH   LINE      ---      ---       #117
       00000006H   SYMBOL    DATA     VOID      queue
       00000007H   SYMBOL    DATA     VOID      group
       ---         BLOCKEND  CODE     ---       LVL=1
@@ -2464,13 +2468,13 @@
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
-      0100253CH   BLOCK     CODE     ---       LVL=0
-      0100253CH   LINE      ---      ---       #131
-      0100253CH   LINE      ---      ---       #132
-      0100253CH   BLOCK     CODE     NEAR LAB  LVL=1
-      0100253CH   LINE      ---      ---       #134
-      0100253EH   LINE      ---      ---       #135
-      0100256FH   LINE      ---      ---       #136
+      0100256EH   BLOCK     CODE     ---       LVL=0
+      0100256EH   LINE      ---      ---       #131
+      0100256EH   LINE      ---      ---       #132
+      0100256EH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100256EH   LINE      ---      ---       #134
+      01002570H   LINE      ---      ---       #135
+      010025A1H   LINE      ---      ---       #136
       00000007H   SYMBOL    DATA     VOID      i
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
@@ -2539,7 +2543,7 @@
       0100137FH   LINE      ---      ---       #60
       01001381H   LINE      ---      ---       #61
       00000004H   SYMBOL    DATA     VOID      cris
-      02004E37H   SYMBOL    XDATA    VOID      curr_len
+      02004E35H   SYMBOL    XDATA    VOID      curr_len
       ---         BLOCKEND  CODE     ---       LVL=1
       ---         BLOCKEND  CODE     ---       LVL=0
 
@@ -2609,5 +2613,5 @@
       ---         MODULE    ---      ---       ?C_INIT
       010005B1H   PUBLIC    CODE     ---       ?C_START
 
-Program Size: data=10.2 xdata=791 const=182 code=9402
+Program Size: data=10.2 xdata=789 const=182 code=9452
 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
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/eeprom.dat	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/c51/output/eeprom.dat	(working copy)
@@ -3940,7 +3940,7 @@
 26
 aa
 55
-72
+a4
 25
 02
 05
@@ -5481,14 +5481,14 @@
 16
 e6
 ff
-20
-fd
+21
+2f
 00
 00
 00
 ff
-20
-ed
+21
+1f
 00
 1a
 08
@@ -5987,12 +5987,12 @@
 e4
 90
 4e
-9c
+9a
 f0
 f0
 90
 4e
-9c
+9a
 e0
 90
 06
@@ -6007,7 +6007,7 @@
 18
 90
 4e
-9c
+9a
 e0
 04
 f0
@@ -6097,7 +6097,7 @@
 22
 90
 4e
-90
+8e
 eb
 f0
 a3
@@ -6125,7 +6125,7 @@
 22
 90
 4e
-90
+8e
 e0
 fb
 a3
@@ -6159,7 +6159,7 @@
 fc
 90
 4e
-90
+8e
 e0
 fb
 a3
@@ -6195,12 +6195,12 @@
 e4
 90
 4e
-9b
+99
 f0
 f0
 90
 4e
-9b
+99
 e0
 ff
 c3
@@ -6214,7 +6214,7 @@
 18
 90
 4e
-9b
+99
 e0
 04
 f0
@@ -6276,7 +6276,7 @@
 22
 90
 4e
-99
+97
 ef
 f0
 24
@@ -6392,7 +6392,7 @@
 09
 90
 4e
-99
+97
 e0
 90
 4c
@@ -6445,11 +6445,11 @@
 22
 90
 4e
-7d
+7b
 ef
 f0
 78
-7e
+7c
 7c
 4e
 7d
@@ -6469,23 +6469,23 @@
 90
 90
 4e
-7d
+7b
 e0
 90
 4e
-80
+7e
 f0
 7b
 01
 7a
 4e
 79
-7e
+7c
 7d
 03
 90
 4e
-56
+54
 eb
 f0
 a3
@@ -6506,7 +6506,7 @@
 e0
 90
 4e
-5a
+58
 cf
 f0
 a3
@@ -6531,11 +6531,11 @@
 7b
 64
 12
-23
-d5
+24
+07
 90
 4e
-59
+57
 e0
 fe
 ef
@@ -6545,7 +6545,7 @@
 e1
 90
 4e
-59
+57
 e0
 ff
 14
@@ -6555,7 +6555,7 @@
 3f
 90
 4e
-56
+54
 e0
 fb
 a3
@@ -6575,7 +6575,7 @@
 ff
 90
 4e
-5a
+58
 e4
 75
 f0
@@ -6592,7 +6592,7 @@
 f0
 90
 4e
-5a
+58
 e0
 fe
 a3
@@ -6606,7 +6606,7 @@
 c3
 90
 4e
-5a
+58
 74
 4a
 f0
@@ -6618,7 +6618,7 @@
 b7
 90
 4e
-5a
+58
 e0
 ff
 a3
@@ -6813,7 +6813,7 @@
 22
 90
 4e
-62
+60
 eb
 f0
 a3
@@ -6833,11 +6833,11 @@
 f0
 90
 4e
-66
+64
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -6847,7 +6847,7 @@
 2c
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -6883,7 +6883,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -6899,7 +6899,7 @@
 f0
 90
 4e
-62
+60
 e0
 a3
 e0
@@ -6991,7 +6991,7 @@
 48
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7061,7 +7061,7 @@
 82
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7212,11 +7212,11 @@
 45
 90
 4e
-66
+64
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -7226,7 +7226,7 @@
 37
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7273,7 +7273,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -7281,7 +7281,7 @@
 bf
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7292,7 +7292,7 @@
 f9
 12
 1e
-62
+95
 90
 4d
 e6
@@ -7368,7 +7368,7 @@
 16
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7396,7 +7396,7 @@
 f0
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7467,7 +7467,7 @@
 fa
 90
 4e
-61
+5f
 74
 05
 f0
@@ -7482,7 +7482,7 @@
 03
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7498,7 +7498,7 @@
 fa
 90
 4e
-61
+5f
 74
 06
 f0
@@ -7507,13 +7507,13 @@
 17
 90
 4e
-66
+64
 74
 03
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -7537,7 +7537,7 @@
 0f
 90
 4e
-66
+64
 e0
 24
 00
@@ -7552,7 +7552,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -7564,7 +7564,7 @@
 03
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -7580,7 +7580,7 @@
 fa
 90
 4e
-61
+5f
 74
 06
 f0
@@ -7600,7 +7600,7 @@
 22
 90
 4e
-8a
+88
 eb
 f0
 a3
@@ -7621,7 +7621,7 @@
 16
 90
 4e
-8a
+88
 e0
 fb
 a3
@@ -7782,7 +7782,7 @@
 22
 90
 4e
-93
+91
 ef
 f0
 a3
@@ -7811,7 +7811,7 @@
 ff
 90
 4e
-93
+91
 e0
 fe
 ef
@@ -7822,7 +7822,7 @@
 f0
 90
 4e
-94
+92
 e0
 90
 48
@@ -8025,7 +8025,7 @@
 f0
 90
 4e
-9f
+9d
 ed
 f0
 e0
@@ -8040,7 +8040,7 @@
 e9
 90
 4e
-61
+5f
 ed
 f0
 11
@@ -8053,7 +8053,7 @@
 e7
 90
 4e
-9f
+9d
 e0
 24
 02
@@ -8063,7 +8063,7 @@
 ed
 90
 4e
-5c
+5a
 ee
 f0
 a3
@@ -8080,7 +8080,7 @@
 f0
 90
 4e
-61
+5f
 e0
 ff
 14
@@ -8090,7 +8090,7 @@
 27
 90
 4e
-5e
+5c
 e0
 fb
 a3
@@ -8110,7 +8110,7 @@
 ff
 90
 4e
-5c
+5a
 e4
 75
 f0
@@ -8130,7 +8130,7 @@
 22
 90
 4e
-6c
+6a
 ec
 f0
 a3
@@ -8199,7 +8199,7 @@
 f0
 90
 4e
-6c
+6a
 e0
 fc
 a3
@@ -8275,7 +8275,7 @@
 fe
 90
 4e
-6e
+6c
 e0
 a3
 e0
@@ -8293,19 +8293,19 @@
 83
 90
 4e
-6c
+6a
 e0
 a3
 e0
 90
 4e
-61
+5f
 f0
 01
 17
 90
 4e
-9e
+9c
 ef
 f0
 24
@@ -8444,7 +8444,7 @@
 f0
 90
 4e
-9e
+9c
 e0
 64
 31
@@ -8668,8 +8668,8 @@
 0e
 74
 12
+22
 21
-ef
 90
 4c
 eb
@@ -8764,7 +8764,7 @@
 22
 90
 4e
-30
+2e
 ee
 f0
 a3
@@ -8787,7 +8787,7 @@
 f0
 90
 4e
-32
+30
 e0
 70
 02
@@ -8799,7 +8799,7 @@
 81
 90
 4e
-30
+2e
 e0
 fe
 a3
@@ -8822,14 +8822,14 @@
 fe
 90
 4e
-37
+35
 f0
 a3
 ef
 f0
 90
 4e
-32
+30
 e0
 fc
 a3
@@ -8843,7 +8843,7 @@
 0a
 90
 4e
-37
+35
 e0
 fe
 a3
@@ -8857,7 +8857,7 @@
 05
 90
 4e
-37
+35
 ee
 f0
 fc
@@ -8868,19 +8868,19 @@
 c3
 90
 4e
-33
+31
 e0
 9d
 f0
 90
 4e
-32
+30
 e0
 9c
 f0
 90
 4e
-30
+2e
 e0
 fe
 a3
@@ -8888,7 +8888,7 @@
 ff
 90
 4e
-34
+32
 e0
 fb
 a3
@@ -8906,7 +8906,7 @@
 d3
 90
 4e
-37
+35
 e0
 fe
 a3
@@ -8914,7 +8914,7 @@
 ff
 90
 4e
-35
+33
 ee
 8f
 f0
@@ -8923,13 +8923,13 @@
 0e
 90
 4e
-31
+2f
 e0
 2f
 f0
 90
 4e
-30
+2e
 e0
 3e
 f0
@@ -9009,7 +9009,7 @@
 ff
 90
 4e
-9d
+9b
 f0
 fe
 fd
@@ -9095,14 +9095,14 @@
 b0
 12
 25
-3c
+6e
 90
 81
 1c
 e0
 90
 4e
-9d
+9b
 f0
 90
 4d
@@ -9144,7 +9144,7 @@
 10
 90
 4e
-9d
+9b
 e0
 ff
 90
@@ -9160,7 +9160,7 @@
 22
 90
 4e
-a1
+9f
 ef
 f0
 b1
@@ -9169,7 +9169,7 @@
 08
 90
 4e
-a1
+9f
 e0
 ff
 a2
@@ -9361,7 +9361,7 @@
 e4
 90
 4e
-a0
+9e
 f0
 fe
 ef
@@ -9390,7 +9390,7 @@
 fc
 90
 4e
-a0
+9e
 e0
 ff
 74
@@ -9421,7 +9421,7 @@
 22
 90
 4e
-4f
+4d
 ee
 f0
 a3
@@ -9429,7 +9429,7 @@
 f0
 90
 4e
-53
+51
 eb
 f0
 a3
@@ -9440,7 +9440,7 @@
 f0
 90
 4e
-51
+4f
 ec
 f0
 a3
@@ -9456,7 +9456,7 @@
 e0
 90
 4e
-3c
+3a
 c9
 f0
 a3
@@ -9479,7 +9479,7 @@
 86
 12
 24
-8c
+be
 90
 0b
 83
@@ -9488,7 +9488,7 @@
 f0
 90
 4e
-4f
+4d
 e0
 ff
 a3
@@ -9503,14 +9503,14 @@
 f0
 90
 4e
-52
+50
 e0
 24
 03
 fd
 90
 4e
-51
+4f
 e0
 34
 00
@@ -9586,7 +9586,7 @@
 4b
 90
 4e
-87
+85
 74
 01
 f0
@@ -9626,10 +9626,10 @@
 03
 12
 24
-2f
+61
 90
 4e
-87
+85
 e0
 fb
 a3
@@ -9646,7 +9646,7 @@
 2b
 90
 4e
-88
+86
 e4
 75
 f0
@@ -9656,7 +9656,7 @@
 0e
 90
 4e
-87
+85
 e0
 fb
 a3
@@ -9872,7 +9872,7 @@
 f0
 12
 22
-b5
+e7
 22
 90
 4c
@@ -10024,7 +10024,7 @@
 22
 90
 4e
-a2
+a0
 ef
 f0
 7b
@@ -10039,7 +10039,7 @@
 09
 90
 4e
-a2
+a0
 e0
 ff
 a2
@@ -10141,22 +10141,22 @@
 22
 90
 4e
-81
+7f
 e4
 f0
 a3
 f0
 a3
 f0
-71
-70
+51
+c1
 50
 25
 11
 68
 90
 4e
-81
+7f
 eb
 f0
 a3
@@ -10177,7 +10177,7 @@
 9e
 90
 4e
-81
+7f
 e0
 fb
 a3
@@ -10215,19 +10215,15 @@
 f0
 a3
 f0
-a3
-f0
-a3
-f0
 b1
-02
+10
 7a
 4d
 79
 a8
 90
 4e
-4b
+49
 74
 01
 f0
@@ -10250,7 +10246,7 @@
 79
 bc
 71
-b8
+09
 ef
 60
 16
@@ -10262,8 +10258,8 @@
 bc
 7d
 14
-71
-88
+51
+d9
 ef
 70
 09
@@ -10302,9 +10298,11 @@
 06
 0c
 93
-60
-2f
-74
+70
+02
+21
+98
+74
 bc
 2f
 f5
@@ -10317,113 +10315,192 @@
 e0
 90
 4e
-25
+26
 f0
 e0
-fd
-60
-14
+ff
+51
+b3
 90
 4e
-29
-e0
-04
-f0
-a3
-e0
-fe
-ed
-4e
-f0
-af
-05
-51
-64
-a3
-e0
-2f
+2d
+ef
 f0
+c3
+94
+02
+50
+02
+21
+81
+e4
 90
 4e
-23
-e0
-04
+24
 f0
-80
-c6
 90
 4e
-2b
+24
 e0
-90
-4d
-dd
-f0
+ff
+c3
+94
+08
+50
+7b
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
 90
 4e
-29
+26
 e0
+fd
+e4
+ef
+5d
+60
+58
+e4
 90
 4e
-2f
+25
 f0
 90
 4e
-2a
+25
 e0
 ff
-51
-64
+90
+06
+0c
+93
+60
+48
 90
 4e
-2e
+23
+e0
+fe
 ef
-f0
+6e
+60
+37
 90
+4e
+25
+e0
+24
+bc
+f5
+82
+e4
+34
 4d
-dd
+f5
+83
 e0
-d3
-94
-02
-40
-20
+fd
+7c
+00
 90
 4e
-2e
+24
 e0
 ff
-a3
-e0
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
 fe
-d3
-9f
-40
+ef
+5d
+4e
+60
+08
+90
+4e
+2c
+74
+01
+f0
+80
+08
+90
+4e
+25
+e0
 04
-af
-06
+f0
 80
-00
+ad
 90
-4d
-dd
+4e
+24
 e0
-d3
-9f
-40
+04
+f0
+01
+fc
+90
+4e
+26
+e0
+ff
+60
 08
+51
+b3
 90
 4e
-2d
-74
-01
+2a
+e0
+2f
 f0
-80
-05
-e4
 90
 4e
-2d
+23
+e0
+04
+f0
+01
+cb
+90
+4e
+2a
+e0
+90
+4d
+dd
 f0
 e4
 90
@@ -10442,7 +10519,7 @@
 70
 02
 41
-38
+87
 74
 93
 2f
@@ -10469,7 +10546,7 @@
 6e
 90
 4e
-25
+26
 f0
 90
 4e
@@ -10488,21 +10565,21 @@
 e0
 90
 4e
-28
+29
 f0
 90
 4e
-25
+26
 e0
 70
 04
 41
-30
+7f
 41
-30
+7f
 90
 4e
-2d
+2c
 e0
 60
 07
@@ -10551,8 +10628,10 @@
 94
 08
 50
-58
-a3
+5a
+90
+4e
+26
 e0
 30
 e0
@@ -10572,53 +10651,53 @@
 4e
 90
 4e
-27
+28
 f0
 a3
 e0
 ff
 90
 4e
-27
+28
 e0
 90
 06
 21
 93
 fd
-51
-72
+91
+53
 90
 4e
-2c
+2b
 ef
 f0
 90
 4e
-28
+29
 e0
 30
 e0
 09
 90
 4e
-2c
+2b
 e0
 ff
-91
-02
+71
+53
 80
 07
 90
 4e
-2c
+2b
 e0
 ff
-91
-58
+71
+a9
 90
 4e
-25
+26
 e0
 ff
 c3
@@ -10626,7 +10705,7 @@
 f0
 90
 4e
-28
+29
 e0
 ff
 c3
@@ -10639,10 +10718,10 @@
 04
 f0
 80
-9e
+9c
 90
 4e
-26
+27
 74
 01
 f0
@@ -10653,7 +10732,7 @@
 04
 f0
 21
-58
+a5
 90
 4d
 e6
@@ -10673,298 +10752,44 @@
 f0
 90
 4e
-26
+27
 e0
 70
 07
 90
-4d
-d8
-e0
-b4
-02
-07
-7b
-01
-7a
-4e
-79
-41
-22
-7b
-00
-7a
-00
-79
-00
-22
-e4
-fe
-ef
-60
-06
-14
-5f
-ff
-0e
-80
-f7
-af
-06
-22
-ae
-07
-e4
-90
-4e
-9a
-f0
-ee
-30
-e0
-05
-e4
-90
-4c
-f8
-f0
-90
-4e
-9a
-ed
-f0
-90
-4d
-db
-e0
-64
-01
-60
-02
-61
-45
-ed
-24
-d7
-60
-3b
-24
-ef
-b4
-0c
-00
-40
-02
-61
-45
-90
-1a
-ad
-75
-f0
-03
-a4
-c5
-83
-25
-f0
-c5
-83
-73
-02
-1a
-d9
-02
-1a
-e1
-02
-1a
-e9
-02
-1a
-f1
-02
-1a
-f9
-02
-1b
-01
-02
-1b
-09
-02
-1b
-11
-02
-1b
-19
-02
-1b
-28
-02
-1b
-37
-02
-1b
-3f
-90
-4e
-9a
-74
-f1
-f0
-80
-6c
-90
-4e
-9a
-74
-f2
-f0
-80
-64
-90
-4e
-9a
-74
-f4
-f0
-80
-5c
-90
-4e
-9a
-74
-f5
-f0
-80
-54
-90
-4e
-9a
-74
-f6
-f0
-80
-4c
-90
-4e
-9a
-74
-f7
-f0
-80
-44
-90
-4e
-9a
-74
-f8
-f0
-80
-3c
-90
-4e
-9a
-74
-d6
-f0
-80
-34
-90
-4e
-9a
-74
-d5
-f0
-80
-2c
-af
-06
-7b
-0c
-7d
-08
-71
-4b
-e4
-90
-4e
-9a
-f0
-80
-1d
-af
-06
-7b
-0f
-7d
-08
-71
-4b
-e4
-90
-4e
-9a
-f0
-80
-0e
-90
-4e
-9a
-74
-fb
-f0
-80
-06
-90
-4e
-9a
-74
-d0
-f0
-90
-4e
-9a
-e0
-ff
-22
-90
-4c
-f5
-ed
-f0
-a3
-eb
-f0
-ef
-30
-e0
-12
-90
-4c
-f4
+4d
+d8
 e0
 b4
-03
-04
-74
 02
-f0
-22
-90
-4c
-f4
-74
+07
+7b
 01
-f0
+7a
+4e
+79
+3f
 22
-90
-4c
-f4
-74
-04
-f0
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
 22
 90
 4b
@@ -10992,7 +10817,7 @@
 22
 90
 4e
-84
+82
 eb
 f0
 a3
@@ -11010,7 +10835,7 @@
 1b
 90
 4e
-84
+82
 e0
 fb
 a3
@@ -11040,7 +10865,7 @@
 22
 90
 4e
-48
+46
 eb
 f0
 a3
@@ -11053,7 +10878,7 @@
 ff
 90
 4e
-4e
+4c
 e0
 fe
 ef
@@ -11063,7 +10888,7 @@
 30
 90
 4e
-4b
+49
 e0
 fb
 a3
@@ -11083,7 +10908,7 @@
 fe
 90
 4e
-48
+46
 e0
 fb
 a3
@@ -11128,7 +10953,7 @@
 1a
 90
 4e
-41
+3f
 e0
 fe
 ef
@@ -11149,13 +10974,13 @@
 4e
 90
 4e
-41
+3f
 f0
 22
 e4
 fe
 74
-42
+40
 2e
 f5
 82
@@ -11180,7 +11005,7 @@
 60
 12
 74
-42
+40
 2e
 f5
 82
@@ -11247,7 +11072,7 @@
 1b
 90
 4e
-41
+3f
 e0
 fe
 ef
@@ -11269,7 +11094,7 @@
 5e
 90
 4e
-41
+3f
 f0
 22
 e4
@@ -11278,7 +11103,7 @@
 70
 21
 74
-42
+40
 2e
 f5
 82
@@ -11296,7 +11121,7 @@
 05
 0b
 24
-42
+40
 f5
 82
 e4
@@ -11311,7 +11136,7 @@
 80
 34
 74
-42
+40
 2e
 f5
 82
@@ -11323,7 +11148,7 @@
 e0
 fc
 74
-41
+3f
 2e
 f5
 82
@@ -11335,7 +11160,7 @@
 ec
 f0
 74
-42
+40
 2e
 f5
 82
@@ -11352,7 +11177,7 @@
 05
 0b
 24
-42
+40
 f5
 82
 e4
@@ -11366,13 +11191,202 @@
 ee
 b4
 06
-a3
+a3
+22
+e4
+90
+4e
+98
+f0
+ef
+30
+e0
+05
+e4
+90
+4c
+f8
+f0
+90
+4e
+98
+ed
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+a1
+0a
+ed
+24
+c6
+b4
+0c
+00
+40
+02
+a1
+0a
+90
+1c
+88
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+1c
+ac
+02
+1c
+b4
+02
+1c
+bc
+02
+1c
+c4
+02
+1c
+cc
+02
+1c
+d4
+02
+1c
+dc
+02
+1c
+e4
+02
+1c
+ec
+02
+1c
+f4
+02
+1c
+fc
+02
+1d
+04
+90
+4e
+98
+74
+f1
+f0
+80
+56
+90
+4e
+98
+74
+f6
+f0
+80
+4e
+90
+4e
+98
+74
+f7
+f0
+80
+46
+90
+4e
+98
+74
+f8
+f0
+80
+3e
+90
+4e
+98
+74
+f4
+f0
+80
+36
+90
+4e
+98
+74
+f5
+f0
+80
+2e
+90
+4e
+98
+74
+f2
+f0
+80
+26
+90
+4e
+98
+74
+f3
+f0
+80
+1e
+90
+4e
+98
+74
+d6
+f0
+80
+16
+90
+4e
+98
+74
+fa
+f0
+80
+0e
+90
+4e
+98
+74
+f9
+f0
+80
+06
+90
+4e
+98
+74
+d0
+f0
+90
+4e
+98
+e0
+ff
 22
 e4
 ff
 90
 4e
-75
+73
 f0
 fe
 fd
@@ -11512,7 +11526,7 @@
 f0
 0f
 a1
-10
+1e
 e4
 ff
 ef
@@ -11645,7 +11659,7 @@
 f0
 0f
 a1
-95
+a3
 e4
 ff
 ef
@@ -11721,8 +11735,45 @@
 b9
 22
 90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
+ef
+30
+e0
+12
+90
+4c
+f4
+e0
+b4
+03
+04
+74
+02
+f0
+22
+90
+4c
+f4
+74
+01
+f0
+22
+90
+4c
+f4
+74
+04
+f0
+22
+90
 4e
-71
+6f
 eb
 f0
 a3
@@ -11737,7 +11788,7 @@
 f0
 90
 4e
-74
+72
 e0
 ff
 c3
@@ -11746,11 +11797,11 @@
 40
 03
 02
-20
-e1
+21
+13
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -11790,8 +11841,8 @@
 60
 03
 02
-20
-d8
+21
+0a
 12
 03
 b6
@@ -11808,7 +11859,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f2
@@ -11822,10 +11873,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -11862,7 +11913,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f4
@@ -11876,10 +11927,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -11916,7 +11967,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f6
@@ -11930,10 +11981,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -11970,7 +12021,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f8
@@ -11984,10 +12035,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12025,7 +12076,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 fa
@@ -12039,10 +12090,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12080,11 +12131,11 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 d0
-0a
+09
 7f
 2a
 7e
@@ -12092,12 +12143,11 @@
 12
 17
 dc
-02
-20
-ad
+01
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12135,7 +12185,7 @@
 17
 dc
 01
-ad
+df
 eb
 b4
 d3
@@ -12148,10 +12198,10 @@
 17
 dc
 01
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12205,7 +12255,7 @@
 68
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12259,7 +12309,7 @@
 32
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12316,7 +12366,7 @@
 24
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -12352,13 +12402,13 @@
 fc
 90
 4e
-74
+72
 e0
 04
 f0
 02
 1e
-71
+a4
 22
 90
 80
@@ -12373,7 +12423,7 @@
 f5
 90
 4e
-95
+93
 ed
 f0
 90
@@ -12384,7 +12434,7 @@
 cf
 90
 4e
-96
+94
 f0
 22
 90
@@ -12829,7 +12879,7 @@
 22
 90
 4e
-68
+66
 12
 05
 33
@@ -12847,8 +12897,8 @@
 e0
 70
 02
-61
-d4
+81
+06
 90
 4c
 95
@@ -12895,11 +12945,11 @@
 e4
 90
 4e
-67
+65
 f0
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -12913,7 +12963,7 @@
 fb
 90
 4e
-67
+65
 e0
 25
 e0
@@ -12948,13 +12998,13 @@
 fc
 90
 4e
-68
+66
 12
 05
 27
 90
 4e
-67
+65
 e0
 04
 f0
@@ -12964,7 +13014,7 @@
 bf
 90
 4e
-68
+66
 e0
 fc
 a3
@@ -12987,7 +13037,7 @@
 76
 90
 4e
-68
+66
 12
 05
 27
@@ -13004,7 +13054,7 @@
 fd
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -13042,7 +13092,7 @@
 fd
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -13117,7 +13167,7 @@
 22
 90
 4e
-79
+77
 ee
 f0
 a3
@@ -13125,7 +13175,7 @@
 f0
 90
 4e
-7b
+79
 ec
 f0
 a3
@@ -13133,7 +13183,7 @@
 f0
 90
 4e
-7b
+79
 e0
 fe
 a3
@@ -13142,19 +13192,19 @@
 d3
 90
 4e
-7a
+78
 e0
 9f
 90
 4e
-79
+77
 e0
 9e
 40
 16
 90
 4e
-7b
+79
 e0
 fe
 a3
@@ -13162,13 +13212,13 @@
 ff
 90
 4e
-7a
+78
 e0
 9f
 ff
 90
 4e
-79
+77
 e0
 9e
 fe
@@ -13176,7 +13226,7 @@
 1e
 90
 4e
-79
+77
 e0
 fe
 a3
@@ -13185,13 +13235,13 @@
 c3
 90
 4e
-7c
+7a
 e0
 9f
 ff
 90
 4e
-7b
+79
 e0
 9e
 fe
@@ -13207,7 +13257,7 @@
 22
 90
 4e
-97
+95
 ee
 f0
 a3
@@ -13245,7 +13295,7 @@
 fd
 90
 4e
-97
+95
 e4
 75
 f0
@@ -13300,7 +13350,7 @@
 22
 90
 4e
-39
+37
 eb
 f0
 a3
@@ -13311,7 +13361,7 @@
 f0
 90
 4e
-3f
+3d
 74
 ff
 f5
@@ -13325,7 +13375,7 @@
 2a
 90
 4e
-3c
+3a
 e0
 fb
 a3
@@ -13345,7 +13395,7 @@
 ff
 90
 4e
-39
+37
 e0
 fb
 a3
@@ -13368,7 +13418,7 @@
 22
 90
 4e
-8d
+8b
 eb
 f0
 a3
@@ -13389,7 +13439,7 @@
 17
 90
 4e
-8d
+8b
 e0
 fb
 a3
@@ -13526,8 +13576,8 @@
 04
 cf
 22
-c7
-bc
+e5
+55
 aa
 55
 40
@@ -15581,58 +15631,8 @@
 6c
 59
 50
-ca
-07
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+b5
+8c
 ff
 ff
 ff
@@ -16380,5 +16380,5 @@
 ff
 ff
 ff
-46
-e6
+c4
+94
Index: c51/output/fw.hex
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/fw.hex	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/c51/output/fw.hex	(working copy)
@@ -94,7 +94,7 @@
 :1005D000A840B8E493A3FAE493A3F8E493A3C8C5AE
 :1005E00082C8CAC583CAF0A3C8C582C8CAC583CA9F
 :1005F000DFE9DEE780BE524DF1FF1109000000FF88
-:1006000016E6FF20FD000000FF20ED001A08090A91
+:1006000016E6FF212F000000FF211F001A08090A2B
 :100610000B0C0D0E18191714131211151B1C0000CA
 :10062000004800A500E400E03E142B04291D8B3592
 :100630001E1A3916641B8A3A1F083C073D06883B80
@@ -125,25 +125,25 @@
 :1007C0009201F19DAF04C20212083622C2067F1FB9
 :1007D000F1AFC2067F1DF1AFC2067F10F1AFC206B6
 :1007E0007F1EF1AFC2067F1E80C5F1EE80DE9080D5
-:1007F00080E4F0A3F0A3F01208CAE4904E9CF0F05D
-:10080000904E9CE090060C93FF600CC2051118906E
-:100810004E9CE004F080E922AC07ECF46017AF04D2
+:1007F00080E4F0A3F0A3F01208CAE4904E9AF0F05F
+:10080000904E9AE090060C93FF600CC20511189070
+:100810004E9AE004F080E922AC07ECF46017AF04D4
 :10082000A20592031147AF04A205B392021136AF9D
 :1008300004C204115822EFF4600C7B017A807978AD
 :10084000A2029200116922EFF4600C7B017A807998
 :100850007CA2039200116922EFF4600C7B017A8084
-:100860007970A2049200116922904E90EBF0A3EAF5
+:100860007970A2049200116922904E8EEBF0A3EAF7
 :10087000F0A3E9F0E4FEFDEF5407FEEF1313135469
-:1008800003FD300022904E90E0FBA3E0FAA3E02DA0
+:1008800003FD300022904E8EE0FBA3E0FAA3E02DA2
 :10089000F9E43AFA1203B6FF7401A806088002C30D
-:1008A00033D8FC4F0203FC904E90E0FBA3E0FAA388
+:1008A00033D8FC4F0203FC904E8EE0FBA3E0FAA38A
 :1008B000E02DF9E43AFA1203B6FF7401A8060880A5
-:1008C00002C333D8FCF45F0203FCE4904E9BF0F0CB
-:1008D000904E9BE0FFC39408500CC2051118904E37
-:1008E0009BE004F080EA22E4FF904CEEE0600122FD
+:1008C00002C333D8FCF45F0203FCE4904E99F0F0CD
+:1008D000904E99E0FFC39408500CC2051118904E39
+:1008E00099E004F080EA22E4FF904CEEE0600122FF
 :1008F000904CC5E06403601C904CEFE0701D740ADE
 :10090000F0A3E07016904DE3E0B4020F7F09311CB4
-:100910007F018007E4904CEBF07F0122904E99EF2D
+:100910007F018007E4904CEBF07F0122904E97EF2F
 :10092000F024F7600914605E2402600221BFE490A5
 :100930004CF0F07B017A4C79007D04FC7FF27E3F25
 :1009400012105A7F0AF1D3E4904DF0F0904C00E081
@@ -151,21 +151,21 @@
 :10096000FF12904C00740FF0A3F0A3F0A3F0904D91
 :10097000F07401F07F2131C5904CC57402F0E4A3FE
 :10098000F0904CEDF022E4904CF0F0F1BCEF6009F7
-:10099000904E99E0904CEDF022904CC5E0640160DF
+:10099000904E97E0904CEDF022904CC5E0640160E1
 :1009A000187F2331C5904CC57401F0E4A3F0904C3E
 :1009B000EE7414F0E4904CE9F0E4904CEDF022E495
-:1009C000904CEDF022904E7DEFF0787E7C4E7D01D4
-:1009D0007BFF7A0679BF7E007F03120390904E7DE5
-:1009E000E0904E80F07B017A4E797E7D03904E56EA
+:1009C000904CEDF022904E7BEFF0787C7C4E7D01D8
+:1009D0007BFF7A0679BF7E007F03120390904E7BE7
+:1009E000E0904E7EF07B017A4E797C7D03904E54F0
 :1009F000EBF0A3EAF0A3E9F0A3EDF0904B9CE0FF4D
-:100A0000A3E0904E5ACFF0A3EFF0904B9AE0FEA3F4
-:100A1000E0FF904B9CE0FCA3E0FD7B641223D590AB
-:100A20004E59E0FEEFC39E40E1904E59E0FF14F0B6
-:100A3000EF603F904E56E0FBA3E475F001120424F2
-:100A4000A9F0FA1203B6FF904E5AE475F0011204B1
-:100A50002485F082F583EFF0904E5AE0FEA3E0FF8C
-:100A6000BE4BC6BF36C3904E5A744AF0A374A0F072
-:100A700080B7904E5AE0FFA3E0904B9CCFF0A3EFDD
+:100A0000A3E0904E58CFF0A3EFF0904B9AE0FEA3F6
+:100A1000E0FF904B9CE0FCA3E0FD7B641224079078
+:100A20004E57E0FEEFC39E40E1904E57E0FF14F0BA
+:100A3000EF603F904E54E0FBA3E475F001120424F4
+:100A4000A9F0FA1203B6FF904E58E475F0011204B3
+:100A50002485F082F583EFF0904E58E0FEA3E0FF8E
+:100A6000BE4BC6BF36C3904E58744AF0A374A0F074
+:100A700080B7904E58E0FFA3E0904B9CCFF0A3EFDF
 :100A8000F022904E15EBF0A3EAF0A3E9F0A3EDF00D
 :100A9000E4FF904E18E0FEEFC39E5023904E15E009
 :100AA000FBA3E0FAA3E0F98F827583001203CFFE67
@@ -177,22 +177,22 @@
 :100B0000E0B402197405F0A3E0700AA3E070069047
 :100B10004DD6F08012904DD67401F0800A904E1997
 :100B2000E0B403037407F07B017A4E7919904E18F4
-:100B3000E0FDF1EB22904E62EBF0A3EAF0A3E9F0C6
-:100B4000E4A3F0A3F0904DDBF0904E66F0904E667B
-:100B5000E0FFC39405502C904E62E0FBA3E0FAA3A3
+:100B3000E0FDF1EB22904E60EBF0A3EAF0A3E9F0C8
+:100B4000E4A3F0A3F0904DDBF0904E64F0904E647F
+:100B5000E0FFC39405502C904E60E0FBA3E0FAA3A5
 :100B6000E02401F9E43AFA7E00E92FF9EE3AFA12AC
-:100B700003B6B4AF06904DDB7401F0904E66E0040E
-:100B8000F080CA904DDBE0904DE2F0904E62E0A321
+:100B700003B6B4AF06904DDB7401F0904E64E00410
+:100B8000F080CA904DDBE0904DE2F0904E60E0A323
 :100B9000E0FAA3E04A7002C147904DDF740AF0E426
 :100BA000904CE3F0A3F0904CD5E0B40112E4904DEA
 :100BB0003DF0A37448F0A37412F0E4A3F08010E4B5
 :100BC000904D3DF0A37448F0A3745DF0E4A3F07B76
 :100BD000017A4879007D097C00D1487B017A4D7902
-:100BE000E77D097C00D148904E62E0FBA3E0FAA3C8
+:100BE000E77D097C00D148904E60E0FBA3E0FAA3CA
 :100BF000E0F99000011203CF64A570317B017A48BF
 :100C000079007D09FCD1489048007401F0904803B8
 :100C1000E044E2F0A3E04459F0A3E0445AF0A3E03A
-:100C20004460F07B017A4879007D094182904E62F0
+:100C20004460F07B017A4879007D094182904E60F2
 :100C3000E0FBA3E0FAA3E0F99000011203CFB414A3
 :100C40000A9000021203CF6429601490000112037D
 :100C5000CF642970419000021203CF641470379062
@@ -202,32 +202,32 @@
 :100C9000E054EFF08007904CCEE054EFF0904CB66B
 :100CA0007401F0904CF4E0FF64017002C147EF64FE
 :100CB000047002C147EF64027002C147904CC5E066
-:100CC00064037045904E66F0904E66E0FFC3940555
-:100CD0005037904E62E0FBA3E0FAA3E02401F9E470
+:100CC00064037045904E64F0904E64E0FFC3940559
+:100CD0005037904E60E0FBA3E0FAA3E02401F9E472
 :100CE0003AFA7E00E92FF9EE3AFA1203B6FF6439B8
 :100CF0006009EF64536004EFB44706904D477403F6
-:100D0000F0904E66E004F080BF904E62E0FBA3E0FE
-:100D1000FAA3E0F9121E62904DE6E0B401117402EC
+:100D0000F0904E64E004F080BF904E60E0FBA3E002
+:100D1000FAA3E0F9121E95904DE6E0B401117402B9
 :100D2000F0904DE7F07B017A4D79E77D03418290A9
 :100D30004DE6E06403600AE0B4021F904DDDE07010
 :100D400019E4904DE6F0904DE5F0904DE77402F017
 :100D50007B017A4D79E77D034182904DDDE070168D
-:100D6000904E62E0FBA3E0FAA3E02401F9E43AFA32
-:100D70007D067C00D1489048007401F0904E62E0FE
+:100D6000904E60E0FBA3E0FAA3E02401F9E43AFA34
+:100D70007D067C00D1489048007401F0904E60E000
 :100D8000FBA3E0FAA3E0F91203B6904801F0904CFF
 :100D9000C5E0B4030A904D47E0904802F08005E4B6
 :100DA000904802F0E4904DD8F0904DF0E0707190D2
 :100DB00000011203CFB4AF167E487F03E92402F985
-:100DC000E43AFA904E617405F0121017801D7E48C7
-:100DD0007F03904E62E0FBA3E0FAA3E02401F9E474
-:100DE0003AFA904E617406F0121017904E66740332
-:100DF000F0904E66E0FFC39409504274002FF582D4
-:100E0000E43448F583E0B4AF0F904E66E02400F57B
-:100E100082E43448F583E4F0904E66E004F080D13B
-:100E20007E487F03904E62E0FBA3E0FAA3E024013A
-:100E3000F9E43AFA904E617406F01210177B017AC9
-:100E40004879007D09518222904E8AEBF0A3EAF0A6
-:100E5000A3E9F0ED1DAE0470011C4E6016904E8AA1
+:100DC000E43AFA904E5F7405F0121017801D7E48C9
+:100DD0007F03904E60E0FBA3E0FAA3E02401F9E476
+:100DE0003AFA904E5F7406F0121017904E64740336
+:100DF000F0904E64E0FFC39409504274002FF582D6
+:100E0000E43448F583E0B4AF0F904E64E02400F57D
+:100E100082E43448F583E4F0904E64E004F080D13D
+:100E20007E487F03904E60E0FBA3E0FAA3E024013C
+:100E3000F9E43AFA904E5F7406F01210177B017ACB
+:100E40004879007D09518222904E88EBF0A3EAF0A8
+:100E5000A3E9F0ED1DAE0470011C4E6016904E88A3
 :100E6000E0FBA3E475F001120424A9F0FAE41203F4
 :100E7000FC80E0227B017A4C79BF7D467C00D14822
 :100E80007B017A4D79937D147C00D1487B017A4DAA
@@ -238,9 +238,9 @@
 :100ED000F0904DDCF0904DE6F0904DD5F0904DD86F
 :100EE000F0904DDBF0904DE2F0904DD3F0904DE05E
 :100EF000F0904DE5F0904DD9F0904D38F022904EA5
-:100F000093EFF0A3EDF07B017A4879007D097C0036
-:100F1000D1489048007401F0A3E0FF904E93E0FEAA
-:100F2000EF4E904801F0904E94E0904803F07B0122
+:100F000091EFF0A3EDF07B017A4879007D097C0038
+:100F1000D1489048007401F0A3E0FF904E91E0FEAC
+:100F2000EF4E904801F0904E92E0904803F07B0124
 :100F30007A4879007D094182904CF4E0FF600864B2
 :100F4000036004EFB40503021835904CF4E0B401DB
 :100F50000EA3E0FFE4FDD1FE904CF47402F0229069
@@ -253,24 +253,24 @@
 :100FC000FF64036004EFB402077F2231C57F012272
 :100FD0007F0022EFD394004011E4FDFC0DBD000121
 :100FE0000CBC04F8BDA6F51F80E922900BE774063F
-:100FF000F0904E9FEDF0E0FD900BE8F07E0B7FE966
-:10100000904E61EDF011177B017A0B79E7904E9FBE
-:10101000E02402FD0209ED904E5CEEF0A3EFF0A398
-:10102000EBF0A3EAF0A3E9F0904E61E0FF14F0EFDB
-:101030006027904E5EE0FBA3E475F001120424A942
-:10104000F0FA1203B6FF904E5CE475F0011204242E
-:1010500085F082F583EFF080CF22904E6CECF0A308
+:100FF000F0904E9DEDF0E0FD900BE8F07E0B7FE968
+:10100000904E5FEDF011177B017A0B79E7904E9DC2
+:10101000E02402FD0209ED904E5AEEF0A3EFF0A39A
+:10102000EBF0A3EAF0A3E9F0904E5FE0FF14F0EFDD
+:101030006027904E5CE0FBA3E475F001120424A944
+:10104000F0FA1203B6FF904E5AE475F00112042430
+:1010500085F082F583EFF080CF22904E6AECF0A30A
 :10106000EDF0A3EBF0A3EAF0A3E9F090809874040C
 :10107000F0A3E4F0900CAF74A0F0A3EEF0A3EFF0B7
 :10108000900CB274A1F07A0C79AF7E0C7FAF74AF84
 :10109000FC740CFFECFEEF90809AEEF0A3EFF09062
-:1010A0004E6CE0FCA3E0FAECFFEAFEEF90809EEECF
+:1010A0004E6AE0FCA3E0FAECFFEAFEEF90809EEED1
 :1010B000F0A3EFF07A0B79837E0B7F837483FC744B
 :1010C0000BFFECFEEF90809CEEF0A3EFF090809091
 :1010D0007402F090809CA3E020E707908090E044A9
-:1010E00001F0908006E04404F0B1FE904E6EE0A363
-:1010F000E0FAA3E0AE02FF7B017A0B7983904E6C9D
-:10110000E0A3E0904E61F00117904E9EEFF024D0E6
+:1010E00001F0908006E04404F0B1FE904E6CE0A365
+:1010F000E0FAA3E0AE02FF7B017A0B7983904E6A9F
+:10110000E0A3E0904E5FF00117904E9CEFF024D0EA
 :10111000604914604F14700221CC14600A24F760F7
 :1011200043240D600241141207EA51727B017A4C8C
 :1011300079007D047C007FF27E3F115A7F0A120FF6
@@ -279,7 +279,7 @@
 :101160004CFBF022904CC57403F0E4A3F05115E45D
 :10117000904CEEF0904CE3F0A3F0904CEBF0904CE0
 :10118000C074FEF0904CC3F0904D477403F0904D46
-:10119000DF740AF0904E9EE064317029904DF0F0BB
+:10119000DF740AF0904E9CE064317029904DF0F0BD
 :1011A000904CE57406F0904BEBE0B40F10A3E0B464
 :1011B0000F0BA3E0B40F06A3E0640F6006904CBFD2
 :1011C0007401F04190904CE5E0704922E4904CC5E8
@@ -293,38 +293,38 @@
 :10124000E3E0640E7004A3E06410702580CD904C40
 :10125000C5E0B4010E904CE3E07004A3E0641470A8
 :101260001080B8904CE3E07004A3E0641470025165
-:101270001B22120E741221EF904CEB7401F0904C73
+:101270001B22120E74122221904CEB7401F0904C40
 :10128000E57406F0E4904CF0F0904D0474FFF02209
 :10129000904CBFE0603D7FC8120FD3C2017FFF12A8
 :1012A000079D7B017A4C79007D047C007FF27E3FB4
 :1012B00051D47B017A4C79C17D017C007FF87E3F5F
 :1012C00051D4D2017FFF12079D7F0A120FD3E49001
-:1012D0004CBFF022904E30EEF0A3EFF0A3ECF0A361
-:1012E000EDF0A3EBF0A3EAF0A3E9F0904E32E0704A
-:1012F00002A3E070026181904E30E0FEA3E0FF4463
+:1012D0004CBFF022904E2EEEF0A3EFF0A3ECF0A363
+:1012E000EDF0A3EBF0A3EAF0A3E9F0904E30E0704C
+:1012F00002A3E070026181904E2EE0FEA3E0FF4465
 :101300000F2401FDE43EFCC3ED9FFFEC9EFE904EDA
-:1013100037F0A3EFF0904E32E0FCA3E0FDD39FEC5A
-:101320009E400A904E37E0FEA3E0FF8004AE04AF7B
-:1013300005904E37EEF0FCA3EFF0FDC3904E33E086
-:101340009DF0904E32E09CF0904E30E0FEA3E0FF26
-:10135000904E34E0FBA3E0FAA3E0F9B1657F0A12F6
-:101360000FD3904E37E0FEA3E0FF904E35EE8FF0A6
-:1013700012040E904E31E02FF0904E30E03EF041DE
+:1013100035F0A3EFF0904E30E0FCA3E0FDD39FEC5E
+:101320009E400A904E35E0FEA3E0FF8004AE04AF7D
+:1013300005904E35EEF0FCA3EFF0FDC3904E31E08A
+:101340009DF0904E30E09CF0904E2EE0FEA3E0FF2A
+:10135000904E32E0FBA3E0FAA3E0F9B1657F0A12F8
+:101360000FD3904E35E0FEA3E0FF904E33EE8FF0AA
+:1013700012040E904E2FE02FF0904E2EE03EF041E2
 :10138000EB22B10DD106120F3851901206CF900BFF
 :101390007EE014600D24FE70EB71C71207CC91FF44
 :1013A00080FE904CEAE07012904CECE0700C904C97
 :1013B000E5E07006904CF8E06004D1DA80C671C7B1
-:1013C00091FF80C080BE22E4FF904E9DF0FEFDEFB5
+:1013C00091FF80C080BE22E4FF904E9BF0FEFDEFB7
 :1013D00090060C936049EF93FD131313541FFEED19
 :1013E0005407FD7401A805088002C333D8FCFDEE44
 :1013F0002478FBE434808B82F583E0FCEDF4FBEC95
 :101400005BF0EE2470F582E43480F583E04DF0EE7D
 :101410002474F582E43480F583E05BF00F80B01231
-:10142000253C90811CE0904E9DF0904DD5E06020D1
+:10142000256E90811CE0904E9BF0904DD5E06020A1
 :10143000E4FF91607F0191607F0291607F03916082
 :101440007F0491607F0591607F0691607F07801027
-:10145000904E9DE0FF9000A3F0EFF49000A7F022E3
-:10146000904EA1EFF0B1209208904EA1E0FFA208AB
+:10145000904E9BE0FF9000A3F0EFF49000A7F022E5
+:10146000904E9FEFF0B1209208904E9FE0FFA208AF
 :10147000B39207EFF4700281FEEF5407FEEF1313EF
 :10148000135403FF30074324A3F582E43400F583AB
 :10149000C083C082E0FD7401A806088002C333D86F
@@ -336,26 +336,26 @@
 :1014F00082E43400F583E0FFECF4FEEF5EF022E4DA
 :10150000900B7FF0900B7EF07F01020FD37B017A6E
 :101510004D79F178037C4E7D017E007F12020390AD
-:101520007B017A81791CAD07E4904EA0F0FEEF5468
+:101520007B017A81791CAD07E4904E9EF0FEEF546A
 :1015300007F0EF1313135403FEF5827583001203B3
-:10154000CFFD3395E0FC904EA0E0FF74017E00A833
+:10154000CFFD3395E0FC904E9EE0FF74017E00A835
 :1015500007088005C333CE33CED8F9FFEE5CFEEF2B
-:101560005D4E24FF22904E4FEEF0A3EFF0904E53CD
-:10157000EBF0A3EAF0A3E9F0904E51ECF0A3EDF00C
-:10158000A3E0F9A3E0FAA3E0904E3CC9F0A3EAF08F
+:101560005D4E24FF22904E4DEEF0A3EFF0904E51D1
+:10157000EBF0A3EAF0A3E9F0904E4FECF0A3EDF00E
+:10158000A3E0F9A3E0FAA3E0904E3AC9F0A3EAF091
 :10159000A3E9F0A3ECF0A3EDF07B017A0B798612BE
-:1015A000248C900B8374A0F0904E4FE0FFA3E0904A
-:1015B0000B84CFF0A3EFF0904E52E02403FD904E49
-:1015C00051E03400FCEDFAECFFEAFEEF908098EE7B
+:1015A00024BE900B8374A0F0904E4DE0FFA3E0901A
+:1015B0000B84CFF0A3EFF0904E50E02403FD904E4B
+:1015C0004FE03400FCEDFAECFFEAFEEF908098EE7D
 :1015D000F0A3EFF07A0B79837E0B7F837483FC7426
 :1015E0000BFFECFEEFA3EEF0A3EFF090809EE4F093
 :1015F000A3F090809004F0908006E04404F0908185
-:101600002CE030E5F9227A0C794B904E877401F08A
+:101600002CE030E5F9227A0C794B904E857401F08C
 :10161000A3740CF0A3744BF0904BA0E0FEA3E0FF8A
 :10162000904B9EE06E7003A3E06F60477E0C7F4B93
-:101630007D0312242F904E87E0FBA3E0FAA3E0F98C
-:101640001203B6B4022B904E88E475F00212040E19
-:10165000904E87E0FBA3E0FAA3E0F91203B6FF90F7
+:101630007D03122461904E85E0FBA3E0FAA3E0F95C
+:101640001203B6B4022B904E86E475F00212040E1B
+:10165000904E85E0FBA3E0FAA3E0F91203B6FF90F9
 :101660004E03E0A3E0FAA3E0F5828A8312056880C6
 :101670000280FE904BA5E0FEA3E0FF904C5EE06E82
 :101680007003A3E06F6022904E09E0FBA3E0FAA391
@@ -368,7 +368,7 @@
 :1016F000904CE3E004F0F11A5137F12C904CEEE0FD
 :101700006017E4904CE3F0A3F0904CEEE014F0E0AE
 :1017100070077F0A120FD3511B22904CD3E0600B4D
-:1017200014F0E070067405F01222B522904CCEE061
+:1017200014F0E070067405F01222E722904CCEE02F
 :1017300030E13D904CD0E0C394FA5003E004F090C7
 :101740004CD0E064B47036904DDCE004F0E0D3940B
 :10175000025007E4904CD0F08023904DDCE0B403BD
@@ -378,223 +378,227 @@
 :10179000FA5003E004F0904CD1E0B4061C904CC326
 :1017A000E0FF6003B4FE12120FBC7F0A120FD37F5A
 :1017B0000A02091CE4904CD1F022904DE3E0FF2294
-:1017C000904EA2EFF07B017A807974B12692099055
-:1017D0004EA2E0FFA209B3920102079DAD07AC063D
+:1017C000904EA0EFF07B017A807974B12692099057
+:1017D0004EA0E0FFA209B3920102079DAD07AC063F
 :1017E000904DE6E06402600E7401F0904DE704F065
 :1017F000EFA3F0EEA3F022904D47E06037904DD676
 :10180000E07031904CC5E0B4032A7B017A4879003E
 :101810007D097C00120E48E4904DE6F090480004EB
 :10182000F0904D47E0904802F07B017A4879007DC6
-:1018300009120A8222904E81E4F0A3F0A3F07170A5
-:1018400050251168904E81EBF0A3EAF0A3E9F04A2D
-:101850007007904CB604F0809E904E81E0FBA3E0B0
+:1018300009120A8222904E7FE4F0A3F0A3F051C176
+:1018400050251168904E7FEBF0A3EAF0A3E9F04A2F
+:101850007007904CB604F0809E904E7FE0FBA3E0B2
 :10186000FAA3E0F9120B3522E4904E23F0A3F0A383
 :10187000F0A3F0A3F0A3F0A3F0A3F0A3F0A3F0A3D0
-:10188000F0A3F0A3F0B1027A4D79A8904E4B740109
-:10189000F0A3744DF0A374A8F0A37414F07B017A44
-:1018A0004D79BC71B8EF60167B017A4D79BC7D141F
-:1018B0007188EF7009904CCEE04402F0800C904C9F
-:1018C000CEE054FDF0E4904CD0F0E4904E23F09044
-:1018D0004E23E0FF90060C93602F74BC2FF582E43A
-:1018E000344DF583E0904E25F0E0FD6014904E29D4
-:1018F000E004F0A3E0FEED4EF0AF055164A3E02F4D
-:10190000F0904E23E004F080C6904E2BE0904DDD29
-:10191000F0904E29E0904E2FF0904E2AE0FF516457
-:10192000904E2EEFF0904DDDE0D394024020904E8B
-:101930002EE0FFA3E0FED39F4004AF068000904D51
-:10194000DDE0D39F4008904E2D7401F08005E490B7
-:101950004E2DF0E4904E23F0904E23E0FF90060CC5
-:10196000937002413874932FF582E4344DF583E08F
-:10197000FE74BC2FF582E4344DF583E06E904E2565
-:10198000F0904E23E0FF24BCF582E4344DF583E073
-:10199000904E28F0904E25E0700441304130904E3A
-:1019A0002DE060077B007A0079002274BC2FF5825D
-:1019B000E4344DF583E0FE74932FF582E4344DF565
-:1019C00083EEF0E4904E24F0904E24E0FFC39408A0
-:1019D0005058A3E030E03B904E23E0FE33333354C5
-:1019E000F8FEEF4E904E27F0A3E0FF904E27E090D8
-:1019F000062193FD5172904E2CEFF0904E28E0306E
-:101A0000E009904E2CE0FF91028007904E2CE0FF01
-:101A10009158904E25E0FFC313F0904E28E0FFC38D
-:101A200013F0904E24E004F0809E904E267401F056
-:101A3000904E23E004F02158904DE6E0B4030A9064
-:101A40004DD8E0B401037402F0904E26E070079088
-:101A50004DD8E0B402077B017A4E7941227B007AAF
-:101A600000790022E4FEEF6006145FFF0E80F7AFFE
-:101A70000622AE07E4904E9AF0EE30E005E4904C7A
-:101A8000F8F0904E9AEDF0904DDBE0640160026159
-:101A900045ED24D7603B24EFB40C00400261459033
-:101AA0001AAD75F003A4C58325F0C58373021AD956
-:101AB000021AE1021AE9021AF1021AF9021B0102E2
-:101AC0001B09021B11021B19021B28021B37021BD8
-:101AD0003F904E9A74F1F0806C904E9A74F2F080C0
-:101AE00064904E9A74F4F0805C904E9A74F5F08095
-:101AF00054904E9A74F6F0804C904E9A74F7F080A1
-:101B000044904E9A74F8F0803C904E9A74D6F080CF
-:101B100034904E9A74D5F0802CAF067B0C7D087102
-:101B20004BE4904E9AF0801DAF067B0F7D08714B01
-:101B3000E4904E9AF0800E904E9A74FBF0800690DE
-:101B40004E9A74D0F0904E9AE0FF22904CF5EDF052
-:101B5000A3EBF0EF30E012904CF4E0B40304740215
-:101B6000F022904CF47401F022904CF47404F022B2
-:101B7000904B9CE0FEA3E0FF904B9AE0B50607A3D4
-:101B8000E0B50702D322C322904E84EBF0A3EAF023
-:101B9000A3E9F0E4FFEFC39D501B904E84E0FBA34C
-:101BA000E0FAA3E0F98F827583001203CF60037F10
-:101BB00000220F80E07F0122904E48EBF0A3EAF074
-:101BC000A3E9F0E4FF904E4EE0FEEFC39E5030904C
-:101BD0004E4BE0FBA3E0FAA3E0F98F82758300127D
-:101BE00003CFFE904E48E0FBA3E0FAA3E0F98F821A
-:101BF0007583001203CF6E60037F00220F80C67FC3
-:101C00000122E4FEEFC394E04020EFD394E7501AA2
-:101C1000904E41E0FEEF5407FF7401A807088002D0
-:101C2000C333D8FC4E904E41F022E4FE74422EF5B0
-:101C300082E4344EF583E0FD6F601CED7014904D2E
-:101C4000E5E06F601274422EF582E4344EF583EFC6
-:101C5000F0220EEEB406D522E4FEFDEF54F064F05F
-:101C60006007EF54D0FCBCD00C904DE6E0B4020B02
-:101C70007403F08006904DD87401F0EFC394E040F7
-:101C800021EFD394E7501B904E41E0FEEF5407FF45
-:101C90007401A807088002C333D8FCF45E904E415B
-:101CA000F022E4FEED702174422EF582E4344EF50C
-:101CB00083E06F7047EEB4050B2442F582E4344EA6
-:101CC000F583E4F07D01803474422EF582E4344ED5
-:101CD000F583E0FC74412EF582E4344EF583ECF09C
-:101CE00074422EF582E4344EF583E06014EEB405C0
-:101CF0000B2442F582E4344EF583E4F00EEEB40694
-:101D0000A322E4FF904E75F0FEFDA3F0A3F0A3F034
-:101D1000EF90060C93607CEF93FD131313541FFE9A
-:101D2000ED5407FD7401A805088002C333D8FCFDFB
-:101D3000EE2478FBE434808B82F583E0FCEDF4FB49
-:101D4000EC5BF0EE2470F582E43480F583E04DF036
-:101D5000EE2474F582E43480F583E05BF090811C1E
-:101D6000E0F4FC74BC2FF582E4344DF583ECF0EE26
-:101D70002478FBE434808B82F583E04DF0EE247010
-:101D8000FBE434808B82F583E0FCEDF4FBEC5BF04C
-:101D90000FA110E4FFEF90060C93607CEF93FD130E
-:101DA0001313541FFEED5407FD7401A805088002AB
-:101DB000C333D8FCFDEE2478FBE434808B82F583BA
-:101DC000E0FCEDF4FBEC5BF0EE2470F582E4348093
-:101DD000F583E04DF0EE2474F582E43480F583E081
-:101DE0005BF090811CE0F4FC74A82FF582E4344D84
-:101DF000F583ECF0EE2478FBE434808B82F583E00D
-:101E00004DF0EE2470FBE434808B82F583E0FCED32
-:101E1000F4FBEC5BF00FA195E4FFEF90060C9360F0
-:101E20004074BC2FF582E4344DF583E0FE74A82F96
-:101E3000F582E4344DF583E06E602374BC2FF582A7
-:101E4000E4344DF583C083C082E0FE74A82FF58290
-:101E5000E4344DF583E0FDEE5DD082D083F00F8059
-:101E6000B922904E71EBF0A3EAF0A3E9F0E4A3F0FD
-:101E7000F0904E74E0FFC3940640030220E1904EC0
-:101E800071E0FBA3E0FAA3E02401F9E43AFA7E0052
-:101E9000E92FF9EE3AFA1203B6FF54F064F0600A43
-:101EA000EF54D064D060030220D81203B6FBB4F123
-:101EB0000A7F837E011217DC0220ADEBB4F20A7FA9
-:101EC000CD7E001217DC0220AD904E71E0FBA3E046
-:101ED000FAA3E02401F9E43AFAA3E07E0029F9EE3E
-:101EE0003AFA1203B6FBB4F3087FB71217DC0220EC
-:101EF000ADEBB4F40A7FB67E001217DC0220AD9081
-:101F00004E71E0FBA3E0FAA3E02401F9E43AFAA35E
-:101F1000E07E0029F9EE3AFA1203B6FBB4F5087F29
-:101F2000B51217DC0220ADEBB4F60A7FEA7E001290
-:101F300017DC0220AD904E71E0FBA3E0FAA3E02491
-:101F400001F9E43AFAA3E07E0029F9EE3AFA120325
-:101F5000B6FBB4F7087FE91217DC0220ADEBB4F84A
-:101F60000A7FE27E001217DC0220AD904E71E0FB8A
-:101F7000A3E0FAA3E02401F9E43AFAA3E07E002901
-:101F8000F9EE3AFA1203B6FBB4F9097F940E121770
-:101F9000DC0220ADEBB4FA0A7F8A7E011217DC0264
-:101FA00020AD904E71E0FBA3E0FAA3E02401F9E438
-:101FB0003AFAA3E07E0029F9EE3AFA1203B6FBB42E
-:101FC000FB097F920E1217DC0220ADEBB4D00A7F22
-:101FD0002A7E021217DC0220AD904E71E0FBA3E0D6
-:101FE000FAA3E02401F9E43AFAA3E07E0029F9EE2D
-:101FF0003AFA1203B6FBB4D1097F257E021217DC30
-:1020000001ADEBB4D3097F267E021217DC01AD903F
-:102010004E71E0FBA3E0FAA3E02401F9E43AFAA34D
-:10202000E07E0029F9EE3AFA1203B6FBB4D2097F3A
-:10203000247E021217DC8075EBB4D4097F277E0260
-:102040001217DC8068904E71E0FBA3E0FAA3E02455
-:1020500001F9E43AFAA3E07E0029F9EE3AFA120314
-:10206000B6FBB4D5097F217E021217DC803FEBB4AA
-:10207000D6097F237E021217DC8032904E71E0FB7E
-:10208000A3E0FAA3E02401F9E43AFAA3E07E0029F0
-:10209000F9EE3AFA1203B6FBB4D7077F701217DCD9
-:1020A000800BEBB4D8077F6F7E001217DC904DE6F3
-:1020B000E0B40224904E71E0FBA3E0FAA3E0240117
-:1020C000F9E43AFAA3E07E0029F9EE3AFA1203B6EF
-:1020D000904DE5F0E41203FC904E74E004F0021E13
-:1020E00071229080107401F080FE2280F5904E9550
-:1020F000EDF09000011203CF904E96F022904CEA42
-:10210000E0600214F0904CEFE0600214F0904CF8A4
-:10211000E0600B14F0E07006904CF47406F0904C04
-:10212000E5E06028904CEEE06006E4904CE5F0229B
-:10213000904CE5E014F0D2017F1E12079D904CE513
-:10214000E0705BC2017F1E12079D8052904CEEE052
-:102150006011904CE8E004F0E030E1427F1E12177D
-:10216000C0803B904CEEE07035904CE2E0602F1464
-:10217000F0E0FFC394085016EF30E109D2017F1E52
-:1021800012079D8010C2017F1E12079D8007C201A9
-:102190007F1E12079D904CE2E070037414F0904D86
-:1021A000D5E07036904DD6E06401702E904CE3F08F
-:1021B000A3F0904DD6F0904DE7E0600D7B017A4D95
-:1021C00079E77D03120A828011904800E0600B7B62
-:1021D000017A4879007D09120A82904DDFE0600E95
-:1021E000E014F0E07008904D47E06002E4F02290C7
-:1021F0004CD37405F0E4A3F0904C907437F0E4FFF6
-:10220000EF25E024D6F582E4344CF5837479F0A30D
-:102210007490F00FEFB404E8904C91E0FEA3E0FF5F
-:10222000C3904C94E09FFD904C93E09EFCE412021E
-:10223000067BC37AF579A8783E1200FBC004C0057E
-:10224000C006C007904C91E0FCA3E0FDE41202063A
-:10225000D003D002D001D00012000A12023F904CED
-:10226000DEEEF0A3EFF0904C91E0FEA3E0FFC39010
-:102270004C94E09FFD904C93E09EFCE41202067BA0
-:102280005C7A8F7942783E1200FBC004C005C0061C
-:10229000C007904C91E0FCA3E0FDE4120206D003DD
-:1022A000D002D001D00012000A12023F904CE0EEA2
-:1022B000F0A3EFF022904E6812053300000000906A
-:1022C0004C95E07002A3E0700261D4904C95E0FE62
-:1022D000A3E0FF904CD4E0FD04F0ED25E024D6F51A
-:1022E00082E4344CF583EEF0A3EFF0904CD4E0C3DD
-:1022F00094044002E4F0E4904E67F0904E68E0F8F9
-:10230000A3E0F9A3E0FAA3E0FB904E67E025E02408
-:10231000D6F582E4344CF583E0FEA3E0FFE4FCFD57
-:10232000EB2FFFEA3EFEED39FDEC38FC904E6812D3
-:102330000527904E67E004F0E0B404BF904E68E0DB
-:10234000FCA3E0FDA3E0FEA3E0FFE47B04FAF9F8C0
-:10235000120476904E68120527904CE0E0FEA3E050
-:10236000FFE4FCFD904E68E0F8A3E0F9A3E0FAA3D7
-:10237000E0FBC31205165007904CD57402F0229072
-:102380004CDEE0FEA3E0FFE4FCFD904E68E0F8A325
-:10239000E0F9A3E0FAA3E0FBC3120516501C904C31
-:1023A000D57401F0904CFBE0702A904D3DF0A37481
-:1023B00048F0A37412F0E4A3F022E4904CD5F0901E
-:1023C0004CFBE0700F904D3DF0A37448F0A3745D9A
-:1023D000F0E4A3F022904E79EEF0A3EFF0904E7B64
-:1023E000ECF0A3EDF0904E7BE0FEA3E0FFD3904E27
-:1023F0007AE09F904E79E09E4016904E7BE0FEA3DF
-:10240000E0FF904E7AE09FFF904E79E09EFE801EA6
-:10241000904E79E0FEA3E0FFC3904E7CE09FFF90DA
-:102420004E7BE09EFEAD03C3EB9FFFE49EFE229039
-:102430004E97EEF0A3EFF0A905904B9EE0FEA3E0CF
-:10244000FFAD0119ED602F0FEFAC0670010E14F512
-:10245000828C83E0FD904E97E475F0011204248590
-:10246000F082F583EDF0AD07AC06BC4BD4BD9AD13C
-:102470007E4B7F3680CB904B9EEEF0A3EFF0229008
-:102480000446E0FF229082807401F022904E39EBE6
-:10249000F0A3EAF0A3E9F0904E3F74FFF5F01204C8
-:1024A0002445F0602A904E3CE0FBA3E475F0011255
-:1024B0000424A9F0FA1203B6FF904E39E0FBA3E41E
-:1024C00075F001120424A9F0FAEF1203FC80C8226F
-:1024D000904E8DEBF0A3EAF0A3E9F0ED1DAE047091
-:1024E000011C4E6017904E8DE0FBA3E475F00112C5
-:1024F0000424A9F0FA74FF1203FC80DF22EFF460D9
-:102500003AEF5407FEEF1313135403FF24A3F5828D
-:10251000E43400F583C083C082E0FD7401A806089E
-:102520008002C333D8FCF4FC5DD082D083F074A762
-:102530002FF582E43400F583E05CF022E4FFEFFD48
-:102540007C002478FBEC34808B82F583E0FEED2464
-:1025500070FDEC34808D82F583E04EF4FEEF247C38
-:10256000FDEC34808D82F583EEF00FEFB404CF22C2
+:10188000F0B1107A4D79A8904E497401F0A3744DCF
+:10189000F0A374A8F0A37414F07B017A4D79BC71A5
+:1018A00009EF60167B017A4D79BC7D1451D9EF7038
+:1018B00009904CCEE04402F0800C904CCEE054FDF8
+:1018C000F0E4904CD0F0E4904E23F0904E23E0FFF3
+:1018D00090060C937002219874BC2FF582E4344D6D
+:1018E000F583E0904E26F0E0FF51B3904E2DEFF0DF
+:1018F000C3940250022181E4904E24F0904E24E0E3
+:10190000FFC39408507B74017E00A807088005C3BC
+:1019100033CE33CED8F9FF904E26E0FDE4EF5D6084
+:1019200058E4904E25F0904E25E0FF90060C936011
+:1019300048904E23E0FEEF6E6037904E25E024BCC9
+:10194000F582E4344DF583E0FD7C00904E24E0FF09
+:1019500074017E00A807088005C333CE33CED8F9C2
+:10196000FFEE5CFEEF5D4E6008904E2C7401F0803F
+:1019700008904E25E004F080AD904E24E004F00184
+:10198000FC904E26E0FF600851B3904E2AE02FF005
+:10199000904E23E004F001CB904E2AE0904DDDF014
+:1019A000E4904E23F0904E23E0FF90060C937002DB
+:1019B000418774932FF582E4344DF583E0FE74BCC7
+:1019C0002FF582E4344DF583E06E904E26F0904E74
+:1019D00023E0FF24BCF582E4344DF583E0904E29EA
+:1019E000F0904E26E07004417F417F904E2CE060E5
+:1019F000077B007A0079002274BC2FF582E4344D15
+:101A0000F583E0FE74932FF582E4344DF583EEF018
+:101A1000E4904E24F0904E24E0FFC39408505A9076
+:101A20004E26E030E03B904E23E0FE33333354F853
+:101A3000FEEF4E904E28F0A3E0FF904E28E0900677
+:101A40002193FD9153904E2BEFF0904E29E030E022
+:101A500009904E2BE0FF71538007904E2BE0FF71F1
+:101A6000A9904E26E0FFC313F0904E29E0FFC31368
+:101A7000F0904E24E004F0809C904E277401F0908A
+:101A80004E23E004F021A5904DE6E0B4030A904D0A
+:101A9000D8E0B401037402F0904E27E07007904D37
+:101AA000D8E0B402077B017A4E793F227B007A00AE
+:101AB000790022E4FEEF6006145FFF0E80F7AF06A8
+:101AC00022904B9CE0FEA3E0FF904B9AE0B5060706
+:101AD000A3E0B50702D322C322904E82EBF0A3EA23
+:101AE000F0A3E9F0E4FFEFC39D501B904E82E0FBB2
+:101AF000A3E0FAA3E0F98F827583001203CF60039D
+:101B00007F00220F80E07F0122904E46EBF0A3EA97
+:101B1000F0A3E9F0E4FF904E4CE0FEEFC39E50309E
+:101B2000904E49E0FBA3E0FAA3E0F98F82758300B1
+:101B30001203CFFE904E46E0FBA3E0FAA3E0F98F3C
+:101B4000827583001203CF6E60037F00220F80C670
+:101B50007F0122E4FEEFC394E04020EFD394E750EE
+:101B60001A904E3FE0FEEF5407FF7401A80708806B
+:101B700002C333D8FC4E904E3FF022E4FE74402E58
+:101B8000F582E4344EF583E0FD6F601CED70149037
+:101B90004DE5E06F601274402EF582E4344EF5831B
+:101BA000EFF0220EEEB406D522E4FEFDEF54F06411
+:101BB000F06007EF54D0FCBCD00C904DE6E0B402CE
+:101BC0000B7403F08006904DD87401F0EFC394E0DD
+:101BD0004021EFD394E7501B904E3FE0FEEF5407B7
+:101BE000FF7401A807088002C333D8FCF45E904E4E
+:101BF0003FF022E4FEED702174402EF582E4344E75
+:101C0000F583E06F7047EEB4050B2440F582E434B1
+:101C10004EF583E4F07D01803474402EF582E43487
+:101C20004EF583E0FC743F2EF582E4344EF583ECF0
+:101C3000F074402EF582E4344EF583E06014EEB487
+:101C4000050B2440F582E4344EF583E4F00EEEB447
+:101C500006A322E4904E98F0EF30E005E4904CF8B3
+:101C6000F0904E98EDF0904DDBE064016002A10A27
+:101C7000ED24C6B40C004002A10A901C8875F00344
+:101C8000A4C58325F0C58373021CAC021CB4021CDE
+:101C9000BC021CC4021CCC021CD4021CDC021CE4CE
+:101CA000021CEC021CF4021CFC021D04904E9874F1
+:101CB000F1F08056904E9874F6F0804E904E9874E5
+:101CC000F7F08046904E9874F8F0803E904E9874ED
+:101CD000F4F08036904E9874F5F0802E904E987403
+:101CE000F2F08026904E9874F3F0801E904E987417
+:101CF000D6F08016904E9874FAF0800E904E98743C
+:101D0000F9F08006904E9874D0F0904E98E0FF2243
+:101D1000E4FF904E73F0FEFDA3F0A3F0A3F0EF906C
+:101D2000060C93607CEF93FD131313541FFEED54C8
+:101D300007FD7401A805088002C333D8FCFDEE241A
+:101D400078FBE434808B82F583E0FCEDF4FBEC5B04
+:101D5000F0EE2470F582E43480F583E04DF0EE245B
+:101D600074F582E43480F583E05BF090811CE0F44C
+:101D7000FC74BC2FF582E4344DF583ECF0EE24784E
+:101D8000FBE434808B82F583E04DF0EE2470FBE4BD
+:101D900034808B82F583E0FCEDF4FBEC5BF00FA16B
+:101DA0001EE4FFEF90060C93607CEF93FD1313137A
+:101DB000541FFEED5407FD7401A805088002C333CB
+:101DC000D8FCFDEE2478FBE434808B82F583E0FCC4
+:101DD000EDF4FBEC5BF0EE2470F582E43480F583E7
+:101DE000E04DF0EE2474F582E43480F583E05BF09E
+:101DF00090811CE0F4FC74A82FF582E4344DF58347
+:101E0000ECF0EE2478FBE434808B82F583E04DF037
+:101E1000EE2470FBE434808B82F583E0FCEDF4FB70
+:101E2000EC5BF00FA1A3E4FFEF90060C936040740D
+:101E3000BC2FF582E4344DF583E0FE74A82FF582C3
+:101E4000E4344DF583E06E602374BC2FF582E434F6
+:101E50004DF583C083C082E0FE74A82FF582E43480
+:101E60004DF583E0FDEE5DD082D083F00F80B92286
+:101E7000904CF5EDF0A3EBF0EF30E012904CF4E075
+:101E8000B403047402F022904CF47401F022904CDC
+:101E9000F47404F022904E6FEBF0A3EAF0A3E9F0A3
+:101EA000E4A3F0F0904E72E0FFC3940640030221D9
+:101EB00013904E6FE0FBA3E0FAA3E02401F9E43AAB
+:101EC000FA7E00E92FF9EE3AFA1203B6FF54F064F5
+:101ED000F0600AEF54D064D0600302210A1203B606
+:101EE000FBB4F10A7F837E011217DC0220DFEBB422
+:101EF000F20A7FCD7E001217DC0220DF904E6FE0E9
+:101F0000FBA3E0FAA3E02401F9E43AFAA3E07E009F
+:101F100029F9EE3AFA1203B6FBB4F3087FB71217A9
+:101F2000DC0220DFEBB4F40A7FB67E001217DC027D
+:101F300020DF904E6FE0FBA3E0FAA3E02401F9E478
+:101F40003AFAA3E07E0029F9EE3AFA1203B6FBB49E
+:101F5000F5087FB51217DC0220DFEBB4F60A7FEA42
+:101F60007E001217DC0220DF904E6FE0FBA3E0FA48
+:101F7000A3E02401F9E43AFAA3E07E0029F9EE3A5D
+:101F8000FA1203B6FBB4F7087FE91217DC0220DF70
+:101F9000EBB4F80A7FE27E001217DC0220DF904EDD
+:101FA0006FE0FBA3E0FAA3E02401F9E43AFAA3E02E
+:101FB0007E0029F9EE3AFA1203B6FBB4F9097F94D0
+:101FC0000E1217DC0220DFEBB4FA0A7F8A7E0112C0
+:101FD00017DC0220DF904E6FE0FBA3E0FAA3E024C1
+:101FE00001F9E43AFAA3E07E0029F9EE3AFA120385
+:101FF000B6FBB4FB097F920E1217DC0220DFEBB4B4
+:10200000D0097F2A7E021217DC01DF904E6FE0FBC1
+:10201000A3E0FAA3E02401F9E43AFAA3E07E002960
+:10202000F9EE3AFA1203B6FBB4D1097F257E02120B
+:1020300017DC01DFEBB4D3097F267E021217DC0127
+:10204000DF904E6FE0FBA3E0FAA3E02401F9E43A4D
+:10205000FAA3E07E0029F9EE3AFA1203B6FBB4D2F5
+:10206000097F247E021217DC8075EBB4D4097F2728
+:102070007E021217DC8068904E6FE0FBA3E0FAA3AB
+:10208000E02401F9E43AFAA3E07E0029F9EE3AFAF5
+:102090001203B6FBB4D5097F217E021217DC803F04
+:1020A000EBB4D6097F237E021217DC8032904E6F8C
+:1020B000E0FBA3E0FAA3E02401F9E43AFAA3E07E0E
+:1020C0000029F9EE3AFA1203B6FBB4D7077F701273
+:1020D00017DC800BEBB4D8077F6F7E001217DC9003
+:1020E0004DE6E0B40224904E6FE0FBA3E0FAA3E0DB
+:1020F0002401F9E43AFAA3E07E0029F9EE3AFA1253
+:1021000003B6904DE5F0E41203FC904E72E004F04B
+:10211000021EA4229080107401F080FE2280F590AF
+:102120004E93EDF09000011203CF904E94F0229068
+:102130004CEAE0600214F0904CEFE0600214F09082
+:102140004CF8E0600B14F0E07006904CF47406F06C
+:10215000904CE5E06028904CEEE06006E4904CE5A1
+:10216000F022904CE5E014F0D2017F1E12079D9002
+:102170004CE5E0705BC2017F1E12079D8052904CBF
+:10218000EEE06011904CE8E004F0E030E1427F1EA8
+:102190001217C0803B904CEEE07035904CE2E0604E
+:1021A0002F14F0E0FFC394085016EF30E109D2017C
+:1021B0007F1E12079D8010C2017F1E12079D80079F
+:1021C000C2017F1E12079D904CE2E070037414F070
+:1021D000904DD5E07036904DD6E06401702E904C55
+:1021E000E3F0A3F0904DD6F0904DE7E0600D7B0159
+:1021F0007A4D79E77D03120A828011904800E060F1
+:102200000B7B017A4879007D09120A82904DDFE04C
+:10221000600EE014F0E07008904D47E06002E4F0DA
+:1022200022904CD37405F0E4A3F0904C907437F0F6
+:10223000E4FFEF25E024D6F582E4344CF58374798D
+:10224000F0A37490F00FEFB404E8904C91E0FEA37B
+:10225000E0FFC3904C94E09FFD904C93E09EFCE423
+:102260001202067BC37AF579A8783E1200FBC004FF
+:10227000C005C006C007904C91E0FCA3E0FDE4124D
+:102280000206D003D002D001D00012000A12023F91
+:10229000904CDEEEF0A3EFF0904C91E0FEA3E0FF57
+:1022A000C3904C94E09FFD904C93E09EFCE412029E
+:1022B000067B5C7A8F7942783E1200FBC004C00531
+:1022C000C006C007904C91E0FCA3E0FDE4120206BA
+:1022D000D003D002D001D00012000A12023F904C6D
+:1022E000E0EEF0A3EFF022904E66120533000000FE
+:1022F00000904C95E07002A3E070028106904C952E
+:10230000E0FEA3E0FF904CD4E0FD04F0ED25E024D6
+:10231000D6F582E4344CF583EEF0A3EFF0904CD484
+:10232000E0C394044002E4F0E4904E65F0904E6601
+:10233000E0F8A3E0F9A3E0FAA3E0FB904E65E02506
+:10234000E024D6F582E4344CF583E0FEA3E0FFE41C
+:10235000FCFDEB2FFFEA3EFEED39FDEC38FC904E24
+:1023600066120527904E65E004F0E0B404BF904E7D
+:1023700066E0FCA3E0FDA3E0FEA3E0FFE47B04FA3B
+:10238000F9F8120476904E66120527904CE0E0FEB4
+:10239000A3E0FFE4FCFD904E66E0F8A3E0F9A3E0C3
+:1023A000FAA3E0FBC31205165007904CD57402F057
+:1023B00022904CDEE0FEA3E0FFE4FCFD904E66E0E0
+:1023C000F8A3E0F9A3E0FAA3E0FBC3120516501C42
+:1023D000904CD57401F0904CFBE0702A904D3DF08C
+:1023E000A37448F0A37412F0E4A3F022E4904CD557
+:1023F000F0904CFBE0700F904D3DF0A37448F0A3BB
+:10240000745DF0E4A3F022904E77EEF0A3EFF0902D
+:102410004E79ECF0A3EDF0904E79E0FEA3E0FFD30F
+:10242000904E78E09F904E77E09E4016904E79E077
+:10243000FEA3E0FF904E78E09FFF904E77E09EFE77
+:10244000801E904E77E0FEA3E0FFC3904E7AE09F9F
+:10245000FF904E79E09EFEAD03C3EB9FFFE49EFE2E
+:1024600022904E95EEF0A3EFF0A905904B9EE0FE72
+:10247000A3E0FFAD0119ED602F0FEFAC0670010E68
+:1024800014F5828C83E0FD904E95E475F001120402
+:102490002485F082F583EDF0AD07AC06BC4BD4BDCE
+:1024A0009AD17E4B7F3680CB904B9EEEF0A3EFF01F
+:1024B00022900446E0FF229082807401F022904E28
+:1024C00037EBF0A3EAF0A3E9F0904E3D74FFF5F08E
+:1024D00012042445F0602A904E3AE0FBA3E475F024
+:1024E00001120424A9F0FA1203B6FF904E37E0FB64
+:1024F000A3E475F001120424A9F0FAEF1203FC80A2
+:10250000C822904E8BEBF0A3EAF0A3E9F0ED1DAEEC
+:102510000470011C4E6017904E8BE0FBA3E475F035
+:1025200001120424A9F0FA74FF1203FC80DF22EFE9
+:10253000F4603AEF5407FEEF1313135403FF24A380
+:10254000F582E43400F583C083C082E0FD7401A805
+:1025500006088002C333D8FCF4FC5DD082D083F03F
+:1025600074A72FF582E43400F583E05CF022E4FFE9
+:10257000EFFD7C002478FBEC34808B82F583E0FE59
+:10258000ED2470FDEC34808D82F583E04EF4FEEF97
+:10259000247CFDEC34808D82F583EEF00FEFB404E3
+:0225A000CF2248
 :00000001FF
Index: c51/output/fwram.rom
===================================================================
--- /YJX_KB_Project/1026_KB/630/c51/output/fwram.rom	(revision 274)
+++ /YJX_KB_Project/1026_KB/630/c51/output/fwram.rom	(working copy)
@@ -1537,14 +1537,14 @@
 16
 e6
 ff
-20
-fd
+21
+2f
 00
 00
 00
 ff
-20
-ed
+21
+1f
 00
 1a
 08
@@ -2043,12 +2043,12 @@
 e4
 90
 4e
-9c
+9a
 f0
 f0
 90
 4e
-9c
+9a
 e0
 90
 06
@@ -2063,7 +2063,7 @@
 18
 90
 4e
-9c
+9a
 e0
 04
 f0
@@ -2153,7 +2153,7 @@
 22
 90
 4e
-90
+8e
 eb
 f0
 a3
@@ -2181,7 +2181,7 @@
 22
 90
 4e
-90
+8e
 e0
 fb
 a3
@@ -2215,7 +2215,7 @@
 fc
 90
 4e
-90
+8e
 e0
 fb
 a3
@@ -2251,12 +2251,12 @@
 e4
 90
 4e
-9b
+99
 f0
 f0
 90
 4e
-9b
+99
 e0
 ff
 c3
@@ -2270,7 +2270,7 @@
 18
 90
 4e
-9b
+99
 e0
 04
 f0
@@ -2332,7 +2332,7 @@
 22
 90
 4e
-99
+97
 ef
 f0
 24
@@ -2448,7 +2448,7 @@
 09
 90
 4e
-99
+97
 e0
 90
 4c
@@ -2501,11 +2501,11 @@
 22
 90
 4e
-7d
+7b
 ef
 f0
 78
-7e
+7c
 7c
 4e
 7d
@@ -2525,23 +2525,23 @@
 90
 90
 4e
-7d
+7b
 e0
 90
 4e
-80
+7e
 f0
 7b
 01
 7a
 4e
 79
-7e
+7c
 7d
 03
 90
 4e
-56
+54
 eb
 f0
 a3
@@ -2562,7 +2562,7 @@
 e0
 90
 4e
-5a
+58
 cf
 f0
 a3
@@ -2587,11 +2587,11 @@
 7b
 64
 12
-23
-d5
+24
+07
 90
 4e
-59
+57
 e0
 fe
 ef
@@ -2601,7 +2601,7 @@
 e1
 90
 4e
-59
+57
 e0
 ff
 14
@@ -2611,7 +2611,7 @@
 3f
 90
 4e
-56
+54
 e0
 fb
 a3
@@ -2631,7 +2631,7 @@
 ff
 90
 4e
-5a
+58
 e4
 75
 f0
@@ -2648,7 +2648,7 @@
 f0
 90
 4e
-5a
+58
 e0
 fe
 a3
@@ -2662,7 +2662,7 @@
 c3
 90
 4e
-5a
+58
 74
 4a
 f0
@@ -2674,7 +2674,7 @@
 b7
 90
 4e
-5a
+58
 e0
 ff
 a3
@@ -2869,7 +2869,7 @@
 22
 90
 4e
-62
+60
 eb
 f0
 a3
@@ -2889,11 +2889,11 @@
 f0
 90
 4e
-66
+64
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -2903,7 +2903,7 @@
 2c
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -2939,7 +2939,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -2955,7 +2955,7 @@
 f0
 90
 4e
-62
+60
 e0
 a3
 e0
@@ -3047,7 +3047,7 @@
 48
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3117,7 +3117,7 @@
 82
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3268,11 +3268,11 @@
 45
 90
 4e
-66
+64
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -3282,7 +3282,7 @@
 37
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3329,7 +3329,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -3337,7 +3337,7 @@
 bf
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3348,7 +3348,7 @@
 f9
 12
 1e
-62
+95
 90
 4d
 e6
@@ -3424,7 +3424,7 @@
 16
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3452,7 +3452,7 @@
 f0
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3523,7 +3523,7 @@
 fa
 90
 4e
-61
+5f
 74
 05
 f0
@@ -3538,7 +3538,7 @@
 03
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3554,7 +3554,7 @@
 fa
 90
 4e
-61
+5f
 74
 06
 f0
@@ -3563,13 +3563,13 @@
 17
 90
 4e
-66
+64
 74
 03
 f0
 90
 4e
-66
+64
 e0
 ff
 c3
@@ -3593,7 +3593,7 @@
 0f
 90
 4e
-66
+64
 e0
 24
 00
@@ -3608,7 +3608,7 @@
 f0
 90
 4e
-66
+64
 e0
 04
 f0
@@ -3620,7 +3620,7 @@
 03
 90
 4e
-62
+60
 e0
 fb
 a3
@@ -3636,7 +3636,7 @@
 fa
 90
 4e
-61
+5f
 74
 06
 f0
@@ -3656,7 +3656,7 @@
 22
 90
 4e
-8a
+88
 eb
 f0
 a3
@@ -3677,7 +3677,7 @@
 16
 90
 4e
-8a
+88
 e0
 fb
 a3
@@ -3838,7 +3838,7 @@
 22
 90
 4e
-93
+91
 ef
 f0
 a3
@@ -3867,7 +3867,7 @@
 ff
 90
 4e
-93
+91
 e0
 fe
 ef
@@ -3878,7 +3878,7 @@
 f0
 90
 4e
-94
+92
 e0
 90
 48
@@ -4081,7 +4081,7 @@
 f0
 90
 4e
-9f
+9d
 ed
 f0
 e0
@@ -4096,7 +4096,7 @@
 e9
 90
 4e
-61
+5f
 ed
 f0
 11
@@ -4109,7 +4109,7 @@
 e7
 90
 4e
-9f
+9d
 e0
 24
 02
@@ -4119,7 +4119,7 @@
 ed
 90
 4e
-5c
+5a
 ee
 f0
 a3
@@ -4136,7 +4136,7 @@
 f0
 90
 4e
-61
+5f
 e0
 ff
 14
@@ -4146,7 +4146,7 @@
 27
 90
 4e
-5e
+5c
 e0
 fb
 a3
@@ -4166,7 +4166,7 @@
 ff
 90
 4e
-5c
+5a
 e4
 75
 f0
@@ -4186,7 +4186,7 @@
 22
 90
 4e
-6c
+6a
 ec
 f0
 a3
@@ -4255,7 +4255,7 @@
 f0
 90
 4e
-6c
+6a
 e0
 fc
 a3
@@ -4331,7 +4331,7 @@
 fe
 90
 4e
-6e
+6c
 e0
 a3
 e0
@@ -4349,19 +4349,19 @@
 83
 90
 4e
-6c
+6a
 e0
 a3
 e0
 90
 4e
-61
+5f
 f0
 01
 17
 90
 4e
-9e
+9c
 ef
 f0
 24
@@ -4500,7 +4500,7 @@
 f0
 90
 4e
-9e
+9c
 e0
 64
 31
@@ -4724,8 +4724,8 @@
 0e
 74
 12
+22
 21
-ef
 90
 4c
 eb
@@ -4820,7 +4820,7 @@
 22
 90
 4e
-30
+2e
 ee
 f0
 a3
@@ -4843,7 +4843,7 @@
 f0
 90
 4e
-32
+30
 e0
 70
 02
@@ -4855,7 +4855,7 @@
 81
 90
 4e
-30
+2e
 e0
 fe
 a3
@@ -4878,14 +4878,14 @@
 fe
 90
 4e
-37
+35
 f0
 a3
 ef
 f0
 90
 4e
-32
+30
 e0
 fc
 a3
@@ -4899,7 +4899,7 @@
 0a
 90
 4e
-37
+35
 e0
 fe
 a3
@@ -4913,7 +4913,7 @@
 05
 90
 4e
-37
+35
 ee
 f0
 fc
@@ -4924,19 +4924,19 @@
 c3
 90
 4e
-33
+31
 e0
 9d
 f0
 90
 4e
-32
+30
 e0
 9c
 f0
 90
 4e
-30
+2e
 e0
 fe
 a3
@@ -4944,7 +4944,7 @@
 ff
 90
 4e
-34
+32
 e0
 fb
 a3
@@ -4962,7 +4962,7 @@
 d3
 90
 4e
-37
+35
 e0
 fe
 a3
@@ -4970,7 +4970,7 @@
 ff
 90
 4e
-35
+33
 ee
 8f
 f0
@@ -4979,13 +4979,13 @@
 0e
 90
 4e
-31
+2f
 e0
 2f
 f0
 90
 4e
-30
+2e
 e0
 3e
 f0
@@ -5065,7 +5065,7 @@
 ff
 90
 4e
-9d
+9b
 f0
 fe
 fd
@@ -5151,14 +5151,14 @@
 b0
 12
 25
-3c
+6e
 90
 81
 1c
 e0
 90
 4e
-9d
+9b
 f0
 90
 4d
@@ -5200,7 +5200,7 @@
 10
 90
 4e
-9d
+9b
 e0
 ff
 90
@@ -5216,7 +5216,7 @@
 22
 90
 4e
-a1
+9f
 ef
 f0
 b1
@@ -5225,7 +5225,7 @@
 08
 90
 4e
-a1
+9f
 e0
 ff
 a2
@@ -5417,7 +5417,7 @@
 e4
 90
 4e
-a0
+9e
 f0
 fe
 ef
@@ -5446,7 +5446,7 @@
 fc
 90
 4e
-a0
+9e
 e0
 ff
 74
@@ -5477,7 +5477,7 @@
 22
 90
 4e
-4f
+4d
 ee
 f0
 a3
@@ -5485,7 +5485,7 @@
 f0
 90
 4e
-53
+51
 eb
 f0
 a3
@@ -5496,7 +5496,7 @@
 f0
 90
 4e
-51
+4f
 ec
 f0
 a3
@@ -5512,7 +5512,7 @@
 e0
 90
 4e
-3c
+3a
 c9
 f0
 a3
@@ -5535,7 +5535,7 @@
 86
 12
 24
-8c
+be
 90
 0b
 83
@@ -5544,7 +5544,7 @@
 f0
 90
 4e
-4f
+4d
 e0
 ff
 a3
@@ -5559,14 +5559,14 @@
 f0
 90
 4e
-52
+50
 e0
 24
 03
 fd
 90
 4e
-51
+4f
 e0
 34
 00
@@ -5642,7 +5642,7 @@
 4b
 90
 4e
-87
+85
 74
 01
 f0
@@ -5682,10 +5682,10 @@
 03
 12
 24
-2f
+61
 90
 4e
-87
+85
 e0
 fb
 a3
@@ -5702,7 +5702,7 @@
 2b
 90
 4e
-88
+86
 e4
 75
 f0
@@ -5712,7 +5712,7 @@
 0e
 90
 4e
-87
+85
 e0
 fb
 a3
@@ -5928,7 +5928,7 @@
 f0
 12
 22
-b5
+e7
 22
 90
 4c
@@ -6080,7 +6080,7 @@
 22
 90
 4e
-a2
+a0
 ef
 f0
 7b
@@ -6095,7 +6095,7 @@
 09
 90
 4e
-a2
+a0
 e0
 ff
 a2
@@ -6197,22 +6197,22 @@
 22
 90
 4e
-81
+7f
 e4
 f0
 a3
 f0
 a3
 f0
-71
-70
+51
+c1
 50
 25
 11
 68
 90
 4e
-81
+7f
 eb
 f0
 a3
@@ -6233,7 +6233,7 @@
 9e
 90
 4e
-81
+7f
 e0
 fb
 a3
@@ -6271,19 +6271,15 @@
 f0
 a3
 f0
-a3
-f0
-a3
-f0
 b1
-02
+10
 7a
 4d
 79
 a8
 90
 4e
-4b
+49
 74
 01
 f0
@@ -6306,7 +6302,7 @@
 79
 bc
 71
-b8
+09
 ef
 60
 16
@@ -6318,8 +6314,8 @@
 bc
 7d
 14
-71
-88
+51
+d9
 ef
 70
 09
@@ -6358,11 +6354,13 @@
 06
 0c
 93
-60
-2f
-74
-bc
-2f
+70
+02
+21
+98
+74
+bc
+2f
 f5
 82
 e4
@@ -6373,113 +6371,192 @@
 e0
 90
 4e
-25
+26
 f0
 e0
-fd
-60
-14
+ff
+51
+b3
 90
 4e
-29
-e0
-04
-f0
-a3
-e0
-fe
-ed
-4e
-f0
-af
-05
-51
-64
-a3
-e0
-2f
+2d
+ef
 f0
+c3
+94
+02
+50
+02
+21
+81
+e4
 90
 4e
-23
-e0
-04
+24
 f0
-80
-c6
 90
 4e
-2b
+24
 e0
-90
-4d
-dd
-f0
+ff
+c3
+94
+08
+50
+7b
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
 90
 4e
-29
+26
 e0
+fd
+e4
+ef
+5d
+60
+58
+e4
 90
 4e
-2f
+25
 f0
 90
 4e
-2a
+25
 e0
 ff
-51
-64
+90
+06
+0c
+93
+60
+48
 90
 4e
-2e
+23
+e0
+fe
 ef
-f0
+6e
+60
+37
 90
+4e
+25
+e0
+24
+bc
+f5
+82
+e4
+34
 4d
-dd
+f5
+83
 e0
-d3
-94
-02
-40
-20
+fd
+7c
+00
 90
 4e
-2e
+24
 e0
 ff
-a3
-e0
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
 fe
-d3
-9f
-40
+ef
+5d
+4e
+60
+08
+90
+4e
+2c
+74
+01
+f0
+80
+08
+90
+4e
+25
+e0
 04
-af
-06
+f0
 80
-00
+ad
 90
-4d
-dd
+4e
+24
 e0
-d3
-9f
-40
+04
+f0
+01
+fc
+90
+4e
+26
+e0
+ff
+60
 08
+51
+b3
 90
 4e
-2d
-74
-01
+2a
+e0
+2f
 f0
-80
-05
-e4
 90
 4e
-2d
+23
+e0
+04
+f0
+01
+cb
+90
+4e
+2a
+e0
+90
+4d
+dd
 f0
 e4
 90
@@ -6498,7 +6575,7 @@
 70
 02
 41
-38
+87
 74
 93
 2f
@@ -6525,7 +6602,7 @@
 6e
 90
 4e
-25
+26
 f0
 90
 4e
@@ -6544,21 +6621,21 @@
 e0
 90
 4e
-28
+29
 f0
 90
 4e
-25
+26
 e0
 70
 04
 41
-30
+7f
 41
-30
+7f
 90
 4e
-2d
+2c
 e0
 60
 07
@@ -6607,8 +6684,10 @@
 94
 08
 50
-58
-a3
+5a
+90
+4e
+26
 e0
 30
 e0
@@ -6628,53 +6707,53 @@
 4e
 90
 4e
-27
+28
 f0
 a3
 e0
 ff
 90
 4e
-27
+28
 e0
 90
 06
 21
 93
 fd
-51
-72
+91
+53
 90
 4e
-2c
+2b
 ef
 f0
 90
 4e
-28
+29
 e0
 30
 e0
 09
 90
 4e
-2c
+2b
 e0
 ff
-91
-02
+71
+53
 80
 07
 90
 4e
-2c
+2b
 e0
 ff
-91
-58
+71
+a9
 90
 4e
-25
+26
 e0
 ff
 c3
@@ -6682,7 +6761,7 @@
 f0
 90
 4e
-28
+29
 e0
 ff
 c3
@@ -6695,10 +6774,10 @@
 04
 f0
 80
-9e
+9c
 90
 4e
-26
+27
 74
 01
 f0
@@ -6709,7 +6788,7 @@
 04
 f0
 21
-58
+a5
 90
 4d
 e6
@@ -6718,309 +6797,55 @@
 03
 0a
 90
-4d
-d8
-e0
-b4
-01
-03
-74
-02
-f0
-90
-4e
-26
-e0
-70
-07
-90
-4d
-d8
-e0
-b4
-02
-07
-7b
-01
-7a
-4e
-79
-41
-22
-7b
-00
-7a
-00
-79
-00
-22
-e4
-fe
-ef
-60
-06
-14
-5f
-ff
-0e
-80
-f7
-af
-06
-22
-ae
-07
-e4
-90
-4e
-9a
-f0
-ee
-30
-e0
-05
-e4
-90
-4c
-f8
-f0
-90
-4e
-9a
-ed
-f0
-90
-4d
-db
-e0
-64
-01
-60
-02
-61
-45
-ed
-24
-d7
-60
-3b
-24
-ef
-b4
-0c
-00
-40
-02
-61
-45
-90
-1a
-ad
-75
-f0
-03
-a4
-c5
-83
-25
-f0
-c5
-83
-73
-02
-1a
-d9
-02
-1a
-e1
-02
-1a
-e9
-02
-1a
-f1
-02
-1a
-f9
-02
-1b
-01
-02
-1b
-09
-02
-1b
-11
-02
-1b
-19
-02
-1b
-28
-02
-1b
-37
-02
-1b
-3f
-90
-4e
-9a
-74
-f1
-f0
-80
-6c
-90
-4e
-9a
-74
-f2
-f0
-80
-64
-90
-4e
-9a
-74
-f4
-f0
-80
-5c
-90
-4e
-9a
-74
-f5
-f0
-80
-54
-90
-4e
-9a
-74
-f6
-f0
-80
-4c
-90
-4e
-9a
-74
-f7
-f0
-80
-44
-90
-4e
-9a
-74
-f8
-f0
-80
-3c
-90
-4e
-9a
-74
-d6
-f0
-80
-34
-90
-4e
-9a
-74
-d5
-f0
-80
-2c
-af
-06
-7b
-0c
-7d
-08
-71
-4b
-e4
-90
-4e
-9a
-f0
-80
-1d
-af
-06
-7b
-0f
-7d
-08
-71
-4b
-e4
-90
-4e
-9a
-f0
-80
-0e
-90
-4e
-9a
-74
-fb
-f0
-80
-06
-90
-4e
-9a
-74
-d0
-f0
-90
-4e
-9a
-e0
-ff
-22
-90
-4c
-f5
-ed
-f0
-a3
-eb
-f0
-ef
-30
-e0
-12
-90
-4c
-f4
+4d
+d8
 e0
 b4
+01
 03
-04
 74
 02
 f0
-22
 90
-4c
-f4
-74
+4e
+27
+e0
+70
+07
+90
+4d
+d8
+e0
+b4
+02
+07
+7b
 01
-f0
+7a
+4e
+79
+3f
 22
-90
-4c
-f4
-74
-04
-f0
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
 22
 90
 4b
@@ -7048,7 +6873,7 @@
 22
 90
 4e
-84
+82
 eb
 f0
 a3
@@ -7066,7 +6891,7 @@
 1b
 90
 4e
-84
+82
 e0
 fb
 a3
@@ -7096,7 +6921,7 @@
 22
 90
 4e
-48
+46
 eb
 f0
 a3
@@ -7109,7 +6934,7 @@
 ff
 90
 4e
-4e
+4c
 e0
 fe
 ef
@@ -7119,7 +6944,7 @@
 30
 90
 4e
-4b
+49
 e0
 fb
 a3
@@ -7139,7 +6964,7 @@
 fe
 90
 4e
-48
+46
 e0
 fb
 a3
@@ -7184,7 +7009,7 @@
 1a
 90
 4e
-41
+3f
 e0
 fe
 ef
@@ -7205,13 +7030,13 @@
 4e
 90
 4e
-41
+3f
 f0
 22
 e4
 fe
 74
-42
+40
 2e
 f5
 82
@@ -7236,7 +7061,7 @@
 60
 12
 74
-42
+40
 2e
 f5
 82
@@ -7303,7 +7128,7 @@
 1b
 90
 4e
-41
+3f
 e0
 fe
 ef
@@ -7325,7 +7150,7 @@
 5e
 90
 4e
-41
+3f
 f0
 22
 e4
@@ -7334,7 +7159,7 @@
 70
 21
 74
-42
+40
 2e
 f5
 82
@@ -7352,7 +7177,7 @@
 05
 0b
 24
-42
+40
 f5
 82
 e4
@@ -7367,7 +7192,31 @@
 80
 34
 74
-42
+40
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fc
+74
+3f
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ec
+f0
+74
+40
 2e
 f5
 82
@@ -7377,58 +7226,223 @@
 f5
 83
 e0
+60
+14
+ee
+b4
+05
+0b
+24
+40
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+0e
+ee
+b4
+06
+a3
+22
+e4
+90
+4e
+98
+f0
+ef
+30
+e0
+05
+e4
+90
+4c
+f8
+f0
+90
+4e
+98
+ed
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+a1
+0a
+ed
+24
+c6
+b4
+0c
+00
+40
+02
+a1
+0a
+90
+1c
+88
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+1c
+ac
+02
+1c
+b4
+02
+1c
+bc
+02
+1c
+c4
+02
+1c
+cc
+02
+1c
+d4
+02
+1c
+dc
+02
+1c
+e4
+02
+1c
+ec
+02
+1c
+f4
+02
+1c
 fc
+02
+1d
+04
+90
+4e
+98
+74
+f1
+f0
+80
+56
+90
+4e
+98
+74
+f6
+f0
+80
+4e
+90
+4e
+98
+74
+f7
+f0
+80
+46
+90
+4e
+98
+74
+f8
+f0
+80
+3e
+90
+4e
+98
+74
+f4
+f0
+80
+36
+90
+4e
+98
 74
-41
-2e
 f5
-82
-e4
-34
+f0
+80
+2e
+90
 4e
-f5
-83
-ec
+98
+74
+f2
 f0
+80
+26
+90
+4e
+98
 74
-42
-2e
-f5
-82
-e4
-34
+f3
+f0
+80
+1e
+90
 4e
-f5
-83
-e0
-60
-14
-ee
-b4
-05
-0b
-24
-42
-f5
-82
-e4
-34
+98
+74
+d6
+f0
+80
+16
+90
 4e
-f5
-83
-e4
+98
+74
+fa
 f0
+80
 0e
-ee
-b4
+90
+4e
+98
+74
+f9
+f0
+80
 06
-a3
+90
+4e
+98
+74
+d0
+f0
+90
+4e
+98
+e0
+ff
 22
 e4
 ff
 90
 4e
-75
+73
 f0
 fe
 fd
@@ -7568,7 +7582,7 @@
 f0
 0f
 a1
-10
+1e
 e4
 ff
 ef
@@ -7701,7 +7715,7 @@
 f0
 0f
 a1
-95
+a3
 e4
 ff
 ef
@@ -7777,8 +7791,45 @@
 b9
 22
 90
+4c
+f5
+ed
+f0
+a3
+eb
+f0
+ef
+30
+e0
+12
+90
+4c
+f4
+e0
+b4
+03
+04
+74
+02
+f0
+22
+90
+4c
+f4
+74
+01
+f0
+22
+90
+4c
+f4
+74
+04
+f0
+22
+90
 4e
-71
+6f
 eb
 f0
 a3
@@ -7793,7 +7844,7 @@
 f0
 90
 4e
-74
+72
 e0
 ff
 c3
@@ -7802,11 +7853,11 @@
 40
 03
 02
-20
-e1
+21
+13
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -7846,8 +7897,8 @@
 60
 03
 02
-20
-d8
+21
+0a
 12
 03
 b6
@@ -7864,7 +7915,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f2
@@ -7878,10 +7929,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -7918,7 +7969,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f4
@@ -7932,10 +7983,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -7972,7 +8023,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f6
@@ -7986,10 +8037,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8026,7 +8077,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 f8
@@ -8040,10 +8091,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8081,7 +8132,7 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 fa
@@ -8095,10 +8146,10 @@
 dc
 02
 20
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8136,11 +8187,11 @@
 dc
 02
 20
-ad
+df
 eb
 b4
 d0
-0a
+09
 7f
 2a
 7e
@@ -8148,12 +8199,11 @@
 12
 17
 dc
-02
-20
-ad
+01
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8191,7 +8241,7 @@
 17
 dc
 01
-ad
+df
 eb
 b4
 d3
@@ -8204,10 +8254,10 @@
 17
 dc
 01
-ad
+df
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8261,7 +8311,7 @@
 68
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8315,7 +8365,7 @@
 32
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8372,7 +8422,7 @@
 24
 90
 4e
-71
+6f
 e0
 fb
 a3
@@ -8408,13 +8458,13 @@
 fc
 90
 4e
-74
+72
 e0
 04
 f0
 02
 1e
-71
+a4
 22
 90
 80
@@ -8429,7 +8479,7 @@
 f5
 90
 4e
-95
+93
 ed
 f0
 90
@@ -8440,7 +8490,7 @@
 cf
 90
 4e
-96
+94
 f0
 22
 90
@@ -8885,7 +8935,7 @@
 22
 90
 4e
-68
+66
 12
 05
 33
@@ -8903,8 +8953,8 @@
 e0
 70
 02
-61
-d4
+81
+06
 90
 4c
 95
@@ -8951,11 +9001,11 @@
 e4
 90
 4e
-67
+65
 f0
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -8969,7 +9019,7 @@
 fb
 90
 4e
-67
+65
 e0
 25
 e0
@@ -9004,13 +9054,13 @@
 fc
 90
 4e
-68
+66
 12
 05
 27
 90
 4e
-67
+65
 e0
 04
 f0
@@ -9020,7 +9070,7 @@
 bf
 90
 4e
-68
+66
 e0
 fc
 a3
@@ -9043,7 +9093,7 @@
 76
 90
 4e
-68
+66
 12
 05
 27
@@ -9060,7 +9110,7 @@
 fd
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -9098,7 +9148,7 @@
 fd
 90
 4e
-68
+66
 e0
 f8
 a3
@@ -9173,7 +9223,7 @@
 22
 90
 4e
-79
+77
 ee
 f0
 a3
@@ -9181,7 +9231,7 @@
 f0
 90
 4e
-7b
+79
 ec
 f0
 a3
@@ -9189,7 +9239,7 @@
 f0
 90
 4e
-7b
+79
 e0
 fe
 a3
@@ -9198,19 +9248,19 @@
 d3
 90
 4e
-7a
+78
 e0
 9f
 90
 4e
-79
+77
 e0
 9e
 40
 16
 90
 4e
-7b
+79
 e0
 fe
 a3
@@ -9218,13 +9268,13 @@
 ff
 90
 4e
-7a
+78
 e0
 9f
 ff
 90
 4e
-79
+77
 e0
 9e
 fe
@@ -9232,7 +9282,7 @@
 1e
 90
 4e
-79
+77
 e0
 fe
 a3
@@ -9241,13 +9291,13 @@
 c3
 90
 4e
-7c
+7a
 e0
 9f
 ff
 90
 4e
-7b
+79
 e0
 9e
 fe
@@ -9263,7 +9313,7 @@
 22
 90
 4e
-97
+95
 ee
 f0
 a3
@@ -9301,7 +9351,7 @@
 fd
 90
 4e
-97
+95
 e4
 75
 f0
@@ -9356,7 +9406,7 @@
 22
 90
 4e
-39
+37
 eb
 f0
 a3
@@ -9367,7 +9417,7 @@
 f0
 90
 4e
-3f
+3d
 74
 ff
 f5
@@ -9381,7 +9431,7 @@
 2a
 90
 4e
-3c
+3a
 e0
 fb
 a3
@@ -9401,7 +9451,7 @@
 ff
 90
 4e
-39
+37
 e0
 fb
 a3
@@ -9424,7 +9474,7 @@
 22
 90
 4e
-8d
+8b
 eb
 f0
 a3
@@ -9445,7 +9495,7 @@
 17
 90
 4e
-8d
+8b
 e0
 fb
 a3
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
