Index: output/eeprom.dat
===================================================================
--- /branch/usb/usb_public/output/eeprom.dat	(revision 264)
+++ /branch/usb/usb_public/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-fe
-02
+66
+03
 c2
 84
 00
@@ -11,23 +11,23 @@
 c0
 00
 00
-0f
+10
 c0
 0a
 80
-35
+36
 c0
 1b
 00
-1b
+1c
 c0
 5c
 80
-1f
+20
 c0
 6a
 80
-30
+31
 20
 20
 3a
@@ -39,27 +39,31 @@
 c0
 14
 00
-3b
+3c
 c0
 1d
 00
-5e
+5f
 c0
 1d
 80
-72
+73
+c0
+1e
+80
+c0
 c0
 20
 80
-44
+45
 c0
 22
 00
-b4
+b5
 c0
 40
 00
-14
+15
 20
 20
 3a
@@ -115,7 +119,7 @@
 20
 40
 00
-1d
+1e
 20
 20
 52
@@ -203,7 +207,7 @@
 c2
 80
 80
-33
+34
 20
 20
 3d
@@ -399,7 +403,7 @@
 20
 40
 00
-6a
+6b
 20
 40
 4a
@@ -467,19 +471,19 @@
 c0
 55
 00
-78
+79
 c0
 2a
 80
-82
+83
 c0
 11
 00
-92
+93
 c0
 7f
 80
-aa
+ab
 20
 60
 00
@@ -491,11 +495,11 @@
 c0
 00
 80
-7c
+7d
 c0
 01
 00
-7f
+80
 20
 60
 00
@@ -531,7 +535,7 @@
 20
 3a
 00
-88
+89
 6f
 e2
 45
@@ -555,11 +559,11 @@
 c0
 00
 80
-8c
+8d
 c0
 01
 00
-8f
+90
 20
 60
 00
@@ -595,7 +599,7 @@
 20
 3a
 00
-98
+99
 6f
 e2
 45
@@ -619,11 +623,11 @@
 c0
 00
 80
-9c
+9d
 c0
 01
 00
-a3
+a4
 20
 60
 00
@@ -643,7 +647,7 @@
 c0
 01
 00
-a1
+a2
 20
 60
 00
@@ -671,7 +675,7 @@
 c0
 80
 00
-a8
+a9
 20
 60
 00
@@ -691,11 +695,11 @@
 c0
 00
 80
-ae
+af
 c0
 01
 00
-b1
+b2
 20
 60
 00
@@ -735,7 +739,7 @@
 20
 40
 00
-b8
+b9
 20
 20
 4b
@@ -768,8 +772,108 @@
 20
 4b
 0b
-7e
+6f
+e0
+c5
+2d
+c0
+00
+80
+c5
+c0
+01
+4a
+69
+c0
+7f
+ca
+58
+20
+20
+4a
+54
+20
+40
+4a
+22
+20
+40
+4b
+bd
+6f
+e0
+c5
+4d
+68
+48
+c5
+2b
+28
+4f
+fe
+03
+79
+20
+fe
+00
+67
+e0
+c5
+4d
+c0
+00
+80
+ce
+20
+20
+4a
+62
+6f
+e0
+c0
+95
+1f
+e6
+7c
 0e
+20
+42
+cf
+01
+6f
+e0
+c5
+d7
+24
+7a
+00
+00
+70
+45
+d7
+01
+70
+45
+6d
+01
+6f
+e2
+45
+35
+20
+20
+4c
+26
+20
+40
+4a
+30
+20
+20
+00
+ab
+08
+da
 aa
 55
 40
@@ -815,7 +919,7 @@
 00
 01
 00
-0c
+2c
 12
 00
 00
@@ -1028,7 +1132,7 @@
 aa
 aa
 55
-63
+83
 37
-f3
-cc
+1a
+02
Index: output/program.lis
===================================================================
--- /branch/usb/usb_public/output/program.lis	(revision 263)
+++ /branch/usb/usb_public/output/program.lis	(working copy)
@@ -1,260 +1,294 @@
               include "bt_format "
               org 0x0000
 0000 c2840007 bbit1 8 ,pf_patch_ext 
-0001 c000000f beq patch00_0 ,p_soft_reset 
-0002 c00a8035 beq patch02_5 ,p_set_freq_tx 
-0003 c01b001b beq patch06_6 ,p_dongle_usb_dispatch 
-0004 c05c801f beq patch17_1 ,p_usb_init 
-0005 c06a8030 beq patch1a_5 ,p_le_enable_phy_by_pdata 
+0001 c0000010 beq patch00_0 ,p_soft_reset 
+0002 c00a8036 beq patch02_5 ,p_set_freq_tx 
+0003 c01b001c beq patch06_6 ,p_dongle_usb_dispatch 
+0004 c05c8020 beq patch17_1 ,p_usb_init 
+0005 c06a8031 beq patch1a_5 ,p_le_enable_phy_by_pdata 
 0006 20203aba branch assert 
 
 pf_patch_ext:
 0007 c17f8000 rtneq patch3f_7 
-0008 c014003b beq patch25_0 ,p_g24_receive_skip_end 
-0009 c01d005e beq patch27_2 ,p_g24_bind_data_process 
-000a c01d8072 beq patch27_3 ,p_g24_bind_data_parse_next 
-000b c0208044 beq patch28_1 ,p_g24_mode_switch_bind_search 
-000c c02200b4 beq patch28_4 ,p_g24_search_mode_auto 
-000d c0400014 beq patch30_0 ,p_dongle_default_init 
-000e 20203aba branch assert 
+0008 c014003c beq patch25_0 ,p_g24_receive_skip_end 
+0009 c01d005f beq patch27_2 ,p_g24_bind_data_process 
+000a c01d8073 beq patch27_3 ,p_g24_bind_data_parse_next 
+000b c01e80c0 beq patch27_5 ,p_g24_receive_packet_start_next 
+000c c0208045 beq patch28_1 ,p_g24_mode_switch_bind_search 
+000d c02200b5 beq patch28_4 ,p_g24_search_mode_auto 
+000e c0400015 beq patch30_0 ,p_dongle_default_init 
+000f 20203aba branch assert 
 
 p_soft_reset:
-000f 20800000 clear_stack 
-0010 6fe240cc fetch 4 ,mem_lpm_ctrl3 
-0011 67f2004c store 4 ,core_lpm_reg 
-0012 20403c49 call lpm_write_ctrl3 
-0013 20203803 branch soft_reset + 2 
+0010 20800000 clear_stack 
+0011 6fe240cc fetch 4 ,mem_lpm_ctrl3 
+0012 67f2004c store 4 ,core_lpm_reg 
+0013 20403c49 call lpm_write_ctrl3 
+0014 20203803 branch soft_reset + 2 
 
 p_dongle_default_init:
-0014 20405255 call dongle_default_init + 1 
-0015 70451000 jam off ,mem_24g_disable_fec1 
-0016 2040492b call g24_enable_1m 
-0017 6fe0c5ab fetch 1 ,mem_dg_sys_config 
-0018 c4000000 rtnbit0 dg_enable_new_revision 
-0019 70451001 jam on ,mem_24g_disable_fec1 
-001a 2020492e branch g24_enable_2m 
+0015 20405255 call dongle_default_init + 1 
+0016 70451000 jam off ,mem_24g_disable_fec1 
+0017 2040492b call g24_enable_1m 
+0018 6fe0c5ab fetch 1 ,mem_dg_sys_config 
+0019 c4000000 rtnbit0 dg_enable_new_revision 
+001a 70451001 jam on ,mem_24g_disable_fec1 
+001b 2020492e branch g24_enable_2m 
 
 p_dongle_usb_dispatch:
-001b 2040001d call p_wdt_kick 
-001c 202052ee branch dongle_usb_dispatch + 1 
+001c 2040001e call p_wdt_kick 
+001d 202052ee branch dongle_usb_dispatch + 1 
 
 p_wdt_kick:
-001d 58000010 setarg 16 
-001e 20206de1 branch wdt_init_config 
+001e 58000010 setarg 16 
+001f 20206de1 branch wdt_init_config 
 
 p_usb_init:
-001f 20406fd3 call enable_authrom 
-0020 204071a1 call usb_init_param 
-0021 70061003 jam 0x03 ,mem_devicedesc + 17 
-0022 708c0000 jam 0x00 ,core_usb_config 
-0023 20002710 nop 10000 
-0024 708c1800 jam 0x00 ,core_usb_trig 
-0025 6ff10050 fetch 2 ,core_clkoff 
-0026 793ffe0a set0 clock_off_usb ,pdata 
-0027 67f10050 store 2 ,core_clkoff 
-0028 708c1100 jam 0x0 ,core_usb_hmode 
-0029 708c003c jam 0x3c ,core_usb_config 
-002a 58000bb3 setarg mem_usb_rxbuf_new 
-002b 67f10c03 store 2 ,core_usb_rx_saddr 
-002c 67f10c07 store 2 ,core_usb_rxptr 
-002d 58000bf7 setarg mem_usb_rxbuf_new_end 
-002e 67f10c05 store 2 ,core_usb_rx_eaddr 
-002f 20207192 branch usb_init + 16 
+0020 20406fd3 call enable_authrom 
+0021 204071a1 call usb_init_param 
+0022 70061003 jam 0x03 ,mem_devicedesc + 17 
+0023 708c0000 jam 0x00 ,core_usb_config 
+0024 20002710 nop 10000 
+0025 708c1800 jam 0x00 ,core_usb_trig 
+0026 6ff10050 fetch 2 ,core_clkoff 
+0027 793ffe0a set0 clock_off_usb ,pdata 
+0028 67f10050 store 2 ,core_clkoff 
+0029 708c1100 jam 0x0 ,core_usb_hmode 
+002a 708c003c jam 0x3c ,core_usb_config 
+002b 58000bb3 setarg mem_usb_rxbuf_new 
+002c 67f10c03 store 2 ,core_usb_rx_saddr 
+002d 67f10c07 store 2 ,core_usb_rxptr 
+002e 58000bf7 setarg mem_usb_rxbuf_new_end 
+002f 67f10c05 store 2 ,core_usb_rx_eaddr 
+0030 20207192 branch usb_init + 16 
 
 p_le_enable_phy_by_pdata:
-0030 18427e00 copy temp ,pdata 
-0031 c2808033 bbit1 bit_le_2m_phy ,p_le_enable_2m 
-0032 20203d19 branch le_enable_phy_by_pdata + 3 
+0031 18427e00 copy temp ,pdata 
+0032 c2808034 bbit1 bit_le_2m_phy ,p_le_enable_2m 
+0033 20203d19 branch le_enable_phy_by_pdata + 3 
 
 p_le_enable_2m:
-0033 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
-0034 20203d1f branch le_enable_2m 
+0034 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
+0035 20203d1f branch le_enable_2m 
 
 p_set_freq_tx:
-0035 708a3d12 jam 0x12 ,core_syn_top_ctrl 
-0036 60488008 storet 1 ,mem_last_freq 
-0037 1840a202 add temp ,2 ,rega 
-0038 2040398e call rf_tx_write_freq 
-0039 200003c0 nop 0x3c0 
-003a 202039cf branch txon 
+0036 708a3d12 jam 0x12 ,core_syn_top_ctrl 
+0037 60488008 storet 1 ,mem_last_freq 
+0038 1840a202 add temp ,2 ,rega 
+0039 2040398e call rf_tx_write_freq 
+003a 200003c0 nop 0x3c0 
+003b 202039cf branch txon 
 
 p_g24_receive_skip_end:
-003b 6fe0c5ab fetch 1 ,mem_dg_sys_config 
-003c c300481c bbit0 dg_enable_new_revision ,g24_receive_skip_end 
-003d 2000012c nop 300 
-003e 6fe0c43e fetch 1 ,mem_24g_rxbuf + 1 
-003f 79207e00 set1 bit_ack_24g ,pdata 
-0040 67e0c43e store 1 ,mem_24g_rxbuf + 1 
-0041 20404a3b call g24_ackpayload_prep 
-0042 2040488f call g24_transmit_prep 
-0043 2020483f branch g24_transmit 
+003c 6fe0c5ab fetch 1 ,mem_dg_sys_config 
+003d c300481c bbit0 dg_enable_new_revision ,g24_receive_skip_end 
+003e 2000012c nop 300 
+003f 6fe0c43e fetch 1 ,mem_24g_rxbuf + 1 
+0040 79207e00 set1 bit_ack_24g ,pdata 
+0041 67e0c43e store 1 ,mem_24g_rxbuf + 1 
+0042 20404a3b call g24_ackpayload_prep 
+0043 2040488f call g24_transmit_prep 
+0044 2020483f branch g24_transmit 
 
 p_g24_mode_switch_bind_search:
-0044 6fe0c559 fetch 1 ,mem_24g_work_mode 
-0045 c1000000 rtneq dongle_work 
-0046 6fe0c56d fetch 1 ,mem_24g_b_s_mode_switch_disable 
-0047 247a0000 nrtn blank 
-0048 6fe0c56b fetch 1 ,mem_24g_mode_b_s_switch_exit 
-0049 247a0000 nrtn blank 
-004a 6fe0c567 fetch 1 ,mem_24g_mode_b_s_switch 
-004b 207a0000 rtn blank 
-004c 6fe0c56e fetch 1 ,mem_24g_bind_device_living 
-004d 2fe00603 compare 3 ,pdata ,3 
-004e 2020cadc branch g24_mode_b_s_switch_exit ,true 
-004f 204048ef call g24_timer_check 
-0050 24740000 nrtn user 
-0051 6fe14569 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-0052 1fe0fe01 increase 1 ,pdata 
-0053 67e14569 store 2 ,mem_24g_mode_b_s_switch_cnt 
-0054 d84007d0 arg 0x7d0 ,temp 
-0055 98467c00 isub temp ,null 
-0056 20214adc branch g24_mode_b_s_switch_exit ,positive 
-0057 6fe0c56c fetch 1 ,mem_24g_b_s_time_slice 
-0058 1fe0fe01 increase 1 ,pdata 
-0059 1fe17e01 and_into 1 ,pdata 
-005a 67e0c56c store 1 ,mem_24g_b_s_time_slice 
-005b c0004ba3 beq 0 ,g24_search_mode_enable 
-005c c000c99f beq 1 ,g24_bind_mode_enable 
-005d 20600000 rtn 
+0045 6fe0c559 fetch 1 ,mem_24g_work_mode 
+0046 c1000000 rtneq dongle_work 
+0047 6fe0c56d fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0048 247a0000 nrtn blank 
+0049 6fe0c56b fetch 1 ,mem_24g_mode_b_s_switch_exit 
+004a 247a0000 nrtn blank 
+004b 6fe0c567 fetch 1 ,mem_24g_mode_b_s_switch 
+004c 207a0000 rtn blank 
+004d 6fe0c56e fetch 1 ,mem_24g_bind_device_living 
+004e 2fe00603 compare 3 ,pdata ,3 
+004f 2020cadc branch g24_mode_b_s_switch_exit ,true 
+0050 204048ef call g24_timer_check 
+0051 24740000 nrtn user 
+0052 6fe14569 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0053 1fe0fe01 increase 1 ,pdata 
+0054 67e14569 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0055 d84007d0 arg 0x7d0 ,temp 
+0056 98467c00 isub temp ,null 
+0057 20214adc branch g24_mode_b_s_switch_exit ,positive 
+0058 6fe0c56c fetch 1 ,mem_24g_b_s_time_slice 
+0059 1fe0fe01 increase 1 ,pdata 
+005a 1fe17e01 and_into 1 ,pdata 
+005b 67e0c56c store 1 ,mem_24g_b_s_time_slice 
+005c c0004ba3 beq 0 ,g24_search_mode_enable 
+005d c000c99f beq 1 ,g24_bind_mode_enable 
+005e 20600000 rtn 
 
 p_g24_bind_data_process:
-005e 20404a54 call g24_rx_interrupt_clear 
-005f 204047ce call g24_receive_packet 
-0060 2437ca54 nbranch g24_rx_interrupt_clear ,user3 
-0061 204049bf call g24_bind_data_parse 
-0062 2040006a call p_g24_bind_transmit_ack 
-0063 20404a2e call g24_bind_device_status_check 
-0064 204053c3 call dongle_kb_bind_soft_reset 
-0065 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-0066 207a0000 rtn blank 
-0067 6fe2456f fetch 4 ,mem_24g_transmitter_addr 
-0068 207a0000 rtn blank 
-0069 202048e0 branch g24_update_addr_and_synccrc8 
+005f 20404a54 call g24_rx_interrupt_clear 
+0060 204047ce call g24_receive_packet 
+0061 2437ca54 nbranch g24_rx_interrupt_clear ,user3 
+0062 204049bf call g24_bind_data_parse 
+0063 2040006b call p_g24_bind_transmit_ack 
+0064 20404a2e call g24_bind_device_status_check 
+0065 204053c3 call dongle_kb_bind_soft_reset 
+0066 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+0067 207a0000 rtn blank 
+0068 6fe2456f fetch 4 ,mem_24g_transmitter_addr 
+0069 207a0000 rtn blank 
+006a 202048e0 branch g24_update_addr_and_synccrc8 
 
 p_g24_bind_transmit_ack:
-006a 6fe0c43d fetch 1 ,mem_24g_rxbuf 
-006b 67e0c4cf store 1 ,mem_24g_data_type 
-006c 204048be call g24_read_len_pid_crc 
-006d 20404a3b call g24_ackpayload_prep 
-006e 2437c837 nbranch g24_end_of_packet ,user3 
-006f 2040488f call g24_transmit_prep 
-0070 2040483f call g24_transmit 
-0071 20204837 branch g24_end_of_packet 
+006b 6fe0c43d fetch 1 ,mem_24g_rxbuf 
+006c 67e0c4cf store 1 ,mem_24g_data_type 
+006d 204048be call g24_read_len_pid_crc 
+006e 20404a3b call g24_ackpayload_prep 
+006f 2437c837 nbranch g24_end_of_packet ,user3 
+0070 2040488f call g24_transmit_prep 
+0071 2040483f call g24_transmit 
+0072 20204837 branch g24_end_of_packet 
 
 p_g24_bind_data_parse_next:
-0072 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
-0073 c0550078 beq datatype_bind ,p_g24_bind_first_step 
-0074 c02a8082 beq datatype_config ,p_g24_bind_second_step 
-0075 c0110092 beq datatype_ok ,p_g24_bind_third_step 
-0076 c07f80aa beq datatype_attemp ,p_g24_data_attemp 
-0077 20600000 rtn 
+0073 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
+0074 c0550079 beq datatype_bind ,p_g24_bind_first_step 
+0075 c02a8083 beq datatype_config ,p_g24_bind_second_step 
+0076 c0110093 beq datatype_ok ,p_g24_bind_third_step 
+0077 c07f80ab beq datatype_attemp ,p_g24_data_attemp 
+0078 20600000 rtn 
 
 p_g24_bind_first_step:
-0078 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-0079 c000807c beq datatype_device1 ,p_g24_bind_first_step_device1 
-007a c001007f beq datatype_device2 ,p_g24_bind_first_step_device2 
-007b 20600000 rtn 
+0079 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+007a c000807d beq datatype_device1 ,p_g24_bind_first_step_device1 
+007b c0010080 beq datatype_device2 ,p_g24_bind_first_step_device2 
+007c 20600000 rtn 
 
 p_g24_bind_first_step_device1:
-007c 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-007d 247a0000 nrtn blank 
-007e 202049ce branch g24_bind_first_step_device1 
+007d 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+007e 247a0000 nrtn blank 
+007f 202049ce branch g24_bind_first_step_device1 
 
 p_g24_bind_first_step_device2:
-007f 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-0080 247a0000 nrtn blank 
-0081 202049d4 branch g24_bind_first_step_device2 
+0080 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+0081 247a0000 nrtn blank 
+0082 202049d4 branch g24_bind_first_step_device2 
 
 p_g24_bind_second_step:
-0082 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-0083 203a0088 branch p_g24_bind_second_step_skip ,blank 
-0084 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
-0085 684a4437 fetcht 4 ,mem_24g_lap 
-0086 98467c00 isub temp ,null 
-0087 24628000 nrtn zero 
+0083 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+0084 203a0089 branch p_g24_bind_second_step_skip ,blank 
+0085 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
+0086 684a4437 fetcht 4 ,mem_24g_lap 
+0087 98467c00 isub temp ,null 
+0088 24628000 nrtn zero 
 
 p_g24_bind_second_step_skip:
-0088 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-0089 c000808c beq datatype_device1 ,p_g24_bind_second_step_device1 
-008a c001008f beq datatype_device2 ,p_g24_bind_second_step_device2 
-008b 20600000 rtn 
+0089 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+008a c000808d beq datatype_device1 ,p_g24_bind_second_step_device1 
+008b c0010090 beq datatype_device2 ,p_g24_bind_second_step_device2 
+008c 20600000 rtn 
 
 p_g24_bind_second_step_device1:
-008c 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-008d 247a0000 nrtn blank 
-008e 202049e1 branch g24_bind_second_step_device1 
+008d 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+008e 247a0000 nrtn blank 
+008f 202049e1 branch g24_bind_second_step_device1 
 
 p_g24_bind_second_step_device2:
-008f 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-0090 247a0000 nrtn blank 
-0091 202049ec branch g24_bind_second_step_device2 
+0090 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+0091 247a0000 nrtn blank 
+0092 202049ec branch g24_bind_second_step_device2 
 
 p_g24_bind_third_step:
-0092 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-0093 203a0098 branch p_g24_bind_third_step_skip ,blank 
-0094 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
-0095 684a456f fetcht 4 ,mem_24g_transmitter_addr 
-0096 98467c00 isub temp ,null 
-0097 24628000 nrtn zero 
+0093 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+0094 203a0099 branch p_g24_bind_third_step_skip ,blank 
+0095 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
+0096 684a456f fetcht 4 ,mem_24g_transmitter_addr 
+0097 98467c00 isub temp ,null 
+0098 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-0098 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-0099 c000809c beq datatype_device1 ,p_g24_bind_third_step_device1 
-009a c00100a3 beq datatype_device2 ,p_g24_bind_third_step_device2 
-009b 20600000 rtn 
+0099 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+009a c000809d beq datatype_device1 ,p_g24_bind_third_step_device1 
+009b c00100a4 beq datatype_device2 ,p_g24_bind_third_step_device2 
+009c 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-009c 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-009d 247a0000 nrtn blank 
-009e 6fe0c518 fetch 1 ,mem_24g_device1_bind_step 
-009f c00100a1 beq 2 ,p_g24_bind_dvc1_step_success 
-00a0 20600000 rtn 
+009d 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+009e 247a0000 nrtn blank 
+009f 6fe0c518 fetch 1 ,mem_24g_device1_bind_step 
+00a0 c00100a2 beq 2 ,p_g24_bind_dvc1_step_success 
+00a1 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-00a1 7045d701 jam 1 ,mem_24g_device1_bind_disable 
-00a2 20204a02 branch g24_bind_dvc1_step_success + 1 
+00a2 7045d701 jam 1 ,mem_24g_device1_bind_disable 
+00a3 20204a02 branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-00a3 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-00a4 247a0000 nrtn blank 
-00a5 6fe0c519 fetch 1 ,mem_24g_device2_bind_step 
-00a6 c08000a8 bne 0 ,p_g24_bind_dvc2_step_success 
-00a7 20600000 rtn 
+00a4 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00a5 247a0000 nrtn blank 
+00a6 6fe0c519 fetch 1 ,mem_24g_device2_bind_step 
+00a7 c08000a9 bne 0 ,p_g24_bind_dvc2_step_success 
+00a8 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-00a8 7045d801 jam 1 ,mem_24g_device2_bind_disable 
-00a9 20204a0d branch g24_bind_dvc2_step_success + 1 
+00a9 7045d801 jam 1 ,mem_24g_device2_bind_disable 
+00aa 20204a0d branch g24_bind_dvc2_step_success + 1 
 
 p_g24_data_attemp:
-00aa 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-00ab c00080ae beq datatype_device1 ,p_g24_data_attemp_device1 
-00ac c00100b1 beq datatype_device2 ,p_g24_data_attemp_device2 
-00ad 20600000 rtn 
+00ab 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+00ac c00080af beq datatype_device1 ,p_g24_data_attemp_device1 
+00ad c00100b2 beq datatype_device2 ,p_g24_data_attemp_device2 
+00ae 20600000 rtn 
 
 p_g24_data_attemp_device1:
-00ae 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-00af 247a0000 nrtn blank 
-00b0 20204c24 branch g24_data_attemp_device1 
+00af 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00b0 247a0000 nrtn blank 
+00b1 20204c24 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-00b1 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-00b2 247a0000 nrtn blank 
-00b3 20204c28 branch g24_data_attemp_device2 
+00b2 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00b3 247a0000 nrtn blank 
+00b4 20204c28 branch g24_data_attemp_device2 
 
 p_g24_search_mode_auto:
-00b4 6fe0c559 fetch 1 ,mem_24g_work_mode 
-00b5 c1838000 rtnne dongle_search 
-00b6 204000b8 call p_g24_search_mode_init 
-00b7 20204b1b branch g24_search_mode_auto + 4 
+00b5 6fe0c559 fetch 1 ,mem_24g_work_mode 
+00b6 c1838000 rtnne dongle_search 
+00b7 204000b9 call p_g24_search_mode_init 
+00b8 20204b1b branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00b8 6fe0c558 fetch 1 ,mem_24g_mode_init 
-00b9 c3838000 rtnbit1 dongle_search 
-00ba 79207e07 set1 dongle_search ,pdata 
-00bb 67e0c558 store 1 ,mem_24g_mode_init 
-00bc 6fe0c566 fetch 1 ,mem_tx_power_temp 
-00bd 67e0c116 store 1 ,mem_tx_power 
-00be 20204b0b branch g24_search_mode_init + 4 
+00b9 6fe0c558 fetch 1 ,mem_24g_mode_init 
+00ba c3838000 rtnbit1 dongle_search 
+00bb 79207e07 set1 dongle_search ,pdata 
+00bc 67e0c558 store 1 ,mem_24g_mode_init 
+00bd 6fe0c566 fetch 1 ,mem_tx_power_temp 
+00be 67e0c116 store 1 ,mem_tx_power 
+00bf 20204b0b branch g24_search_mode_init + 4 
+
+p_g24_receive_packet_start_next:
+00c0 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
+00c1 c00080c5 beq datatype_device1 ,p_g24_data_device1 
+00c2 c0014a69 beq datatype_device2 ,g24_data_device2 
+00c3 c07fca58 beq datatype_attemp ,g24_data_receive_attemp 
+00c4 20204a54 branch g24_rx_interrupt_clear 
+
+p_g24_data_device1:
+00c5 20404a22 call g24_binding_dvc1_living 
+00c6 20404bbd call g24_ch_timer_reinit 
+00c7 6fe0c54d fetch 1 ,mem_24g_abort_packet 
+00c8 6848c52b fetcht 1 ,mem_24g_rxdata_temp 
+00c9 284ffe03 isolate1 bit_abort ,temp 
+00ca 7920fe00 setflag true ,0 ,pdata 
+00cb 67e0c54d store 1 ,mem_24g_abort_packet 
+00cc c00080ce beq 1 ,p_g24_data_attemp_device1_abort 
+00cd 20204a62 branch g24_data_device1 + 8 
+
+p_g24_data_attemp_device1_abort:
+00ce 6fe0c095 fetch 1 ,mem_device_option 
+00cf 1fe67c0e sub pdata ,dvc_op_car ,null 
+00d0 2042cf01 call car_stop_blink ,zero 
+00d1 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00d2 247a0000 nrtn blank 
+00d3 7045d701 jam 1 ,mem_24g_device1_bind_disable 
+00d4 70456d01 jam 1 ,mem_24g_b_s_mode_switch_disable 
+00d5 6fe24535 fetch 4 ,mem_24g_rxdata_temp + 10 
+00d6 20204c26 branch g24_store_device1_addr 
+
+p_g24_data_receive_attemp:
+00d7 20404a30 call g24_bind_device_status 
+00d8 202000ab branch p_g24_data_attemp 
               org 0x3800
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/usb/usb_public/program/patch.prog	(revision 263)
+++ /branch/usb/usb_public/program/patch.prog	(working copy)
@@ -14,6 +14,7 @@
 	beq patch25_0,p_g24_receive_skip_end
 	beq patch27_2,p_g24_bind_data_process
 	beq patch27_3,p_g24_bind_data_parse_next
+	beq patch27_5,p_g24_receive_packet_start_next
 	beq patch28_1,p_g24_mode_switch_bind_search
 	beq patch28_4,p_g24_search_mode_auto
 	beq patch30_0,p_dongle_default_init
@@ -273,9 +274,39 @@
 	store 1,mem_tx_power
 	branch g24_search_mode_init+4
 
-
-
-
+p_g24_receive_packet_start_next:
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_DEVICE1,p_g24_data_device1	//mouse
+	beq DATATYPE_DEVICE2,g24_data_device2	//keyboard
+	beq DATATYPE_ATTEMP,g24_data_receive_attemp	//reconn packet
+	branch g24_rx_interrupt_clear
+	
+p_g24_data_device1:
+	call g24_binding_dvc1_living	//works on auto pair only
+	call g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,p_g24_data_attemp_device1_abort
+	branch g24_data_device1+8
+
+p_g24_data_attemp_device1_abort:
+	fetch 1,mem_device_option
+	sub pdata,dvc_op_car,null
+	call car_stop_blink,zero
+	fetch 1,mem_24g_device1_bind_disable
+	nrtn blank
+	jam 1,mem_24g_device1_bind_disable
+	jam 1,mem_24g_B_S_mode_switch_disable
+	fetch 4,mem_24g_rxdata_temp+10
+	branch g24_store_device1_addr
+
+p_g24_data_receive_attemp:
+	call g24_bind_device_status		//works on auto pair only
+	branch p_g24_data_attemp
+	
 
 ifdef UART_LOG
 p_device_hardware_init:
