Index: output/eeprom.dat
===================================================================
--- /branch/usb/usb_public_125K/output/eeprom.dat	(revision 322)
+++ /branch/usb/usb_public_125K/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-a2
+e6
 03
 c2
 84
@@ -15,11 +15,11 @@
 c0
 0a
 80
-43
+54
 c0
 0b
 80
-49
+5a
 c0
 1b
 00
@@ -27,11 +27,11 @@
 c0
 5c
 80
-2d
+3e
 c0
 6a
 80
-3e
+4f
 20
 20
 3a
@@ -43,27 +43,27 @@
 c0
 14
 00
-4c
+5d
 c0
 1d
 00
-6f
+80
 c0
 1d
 80
-83
+94
 c0
 1e
 80
-d0
+e1
 c0
 20
 80
-55
+66
 c0
 22
 00
-c5
+d6
 c0
 40
 00
@@ -171,11 +171,79 @@
 20
 40
 00
-2b
+3c
+6f
+e0
+87
+55
+20
+5a
+53
+3b
+20
+40
+71
+76
+6f
+e0
+87
+4b
+20
+7a
+00
+00
+70
+07
+4b
+00
+6f
+e1
+07
+49
+d8
+40
+02
+ba
+98
+46
+7c
+00
+24
+62
+80
+00
+6f
+e0
+86
+c9
+c1
+dd
+00
+00
+6f
+e0
+86
+ca
+c0
+50
+53
+02
+c0
+50
+80
+3a
 20
 20
 52
-ee
+fd
+70
+45
+d8
+00
+20
+20
+53
+08
 58
 00
 00
@@ -259,7 +327,7 @@
 c2
 80
 80
-41
+52
 20
 20
 3d
@@ -467,7 +535,7 @@
 20
 40
 00
-7b
+8c
 20
 40
 4a
@@ -535,19 +603,19 @@
 c0
 55
 00
-89
+9a
 c0
 2a
 80
-93
+a4
 c0
 11
 00
-a3
+b4
 c0
 7f
 80
-bb
+cc
 20
 60
 00
@@ -559,11 +627,11 @@
 c0
 00
 80
-8d
+9e
 c0
 01
 00
-90
+a1
 20
 60
 00
@@ -599,7 +667,7 @@
 20
 3a
 00
-99
+aa
 6f
 e2
 45
@@ -623,11 +691,11 @@
 c0
 00
 80
-9d
+ae
 c0
 01
 00
-a0
+b1
 20
 60
 00
@@ -663,7 +731,7 @@
 20
 3a
 00
-a9
+ba
 6f
 e2
 45
@@ -687,11 +755,11 @@
 c0
 00
 80
-ad
+be
 c0
 01
 00
-b4
+c5
 20
 60
 00
@@ -711,7 +779,7 @@
 c0
 01
 00
-b2
+c3
 20
 60
 00
@@ -739,7 +807,7 @@
 c0
 80
 00
-b9
+ca
 20
 60
 00
@@ -759,11 +827,11 @@
 c0
 00
 80
-bf
+d0
 c0
 01
 00
-c2
+d3
 20
 60
 00
@@ -803,7 +871,7 @@
 20
 40
 00
-c9
+da
 20
 20
 4b
@@ -843,7 +911,7 @@
 c0
 00
 80
-d5
+e6
 c0
 01
 4a
@@ -851,7 +919,7 @@
 c0
 7f
 80
-e6
+f7
 20
 20
 4a
@@ -887,7 +955,7 @@
 c0
 00
 80
-de
+ef
 20
 20
 4a
@@ -931,9 +999,9 @@
 20
 20
 00
-bb
-9f
-2b
+cc
+41
+a6
 aa
 55
 40
@@ -1194,5 +1262,5 @@
 55
 35
 38
-93
-eb
+f5
+aa
Index: output/program.lis
===================================================================
--- /branch/usb/usb_public_125K/output/program.lis	(revision 322)
+++ /branch/usb/usb_public_125K/output/program.lis	(working copy)
@@ -2,21 +2,21 @@
               org 0x0000
 0000 c2840008 bbit1 8 ,pf_patch_ext 
 0001 c0000011 beq patch00_0 ,p_soft_reset 
-0002 c00a8043 beq patch02_5 ,p_set_freq_tx 
-0003 c00b8049 beq patch02_7 ,p_set_tx_power_8db 
+0002 c00a8054 beq patch02_5 ,p_set_freq_tx 
+0003 c00b805a beq patch02_7 ,p_set_tx_power_8db 
 0004 c01b0029 beq patch06_6 ,p_dongle_usb_dispatch 
-0005 c05c802d beq patch17_1 ,p_usb_init 
-0006 c06a803e beq patch1a_5 ,p_le_enable_phy_by_pdata 
+0005 c05c803e beq patch17_1 ,p_usb_init 
+0006 c06a804f beq patch1a_5 ,p_le_enable_phy_by_pdata 
 0007 20203aba branch assert 
 
 pf_patch_ext:
 0008 c17f8000 rtneq patch3f_7 
-0009 c014004c beq patch25_0 ,p_g24_receive_skip_end 
-000a c01d006f beq patch27_2 ,p_g24_bind_data_process 
-000b c01d8083 beq patch27_3 ,p_g24_bind_data_parse_next 
-000c c01e80d0 beq patch27_5 ,p_g24_receive_packet_start_next 
-000d c0208055 beq patch28_1 ,p_g24_mode_switch_bind_search 
-000e c02200c5 beq patch28_4 ,p_g24_search_mode_auto 
+0009 c014005d beq patch25_0 ,p_g24_receive_skip_end 
+000a c01d0080 beq patch27_2 ,p_g24_bind_data_process 
+000b c01d8094 beq patch27_3 ,p_g24_bind_data_parse_next 
+000c c01e80e1 beq patch27_5 ,p_g24_receive_packet_start_next 
+000d c0208066 beq patch28_1 ,p_g24_mode_switch_bind_search 
+000e c02200d6 beq patch28_4 ,p_g24_search_mode_auto 
 000f c040001e beq patch30_0 ,p_dongle_default_init 
 0010 20203aba branch assert 
 
@@ -53,263 +53,282 @@
 0028 20600000 rtn 
 
 p_dongle_usb_dispatch:
-0029 2040002b call p_wdt_kick 
-002a 202052ee branch dongle_usb_dispatch + 1 
+0029 2040003c call p_wdt_kick 
+002a 6fe08755 fetch 1 ,mem_usb_remote_wakeup 
+002b 205a533b call dongle_clear_pc_sleep_flag ,blank 
+002c 20407176 call usb_isr 
+002d 6fe0874b fetch 1 ,mem_usb0_get_set_report 
+002e 207a0000 rtn blank 
+002f 70074b00 jam 0 ,mem_usb0_get_set_report 
+0030 6fe10749 fetch 2 ,mem_usb_setup_bvalue_temp 
+0031 d84002ba arg pc_set_report ,temp 
+0032 98467c00 isub temp ,null 
+0033 24628000 nrtn zero 
+0034 6fe086c9 fetch 1 ,mem_usb0_set_report_data 
+0035 c1dd0000 rtnne pc_report_id 
+0036 6fe086ca fetch 1 ,mem_usb0_set_report_data + 1 
+0037 c0505302 beq command_mode ,dongle_dispose_cmd_mode 
+0038 c050803a beq command_bind ,p_dongle_dispose_cmd_bind 
+0039 202052fd branch dongle_usb_dispatch_check_cmd + 3 
+
+p_dongle_dispose_cmd_bind:
+003a 7045d800 jam 0 ,mem_24g_device2_bind_disable 
+003b 20205308 branch dongle_dispose_cmd_bind 
 
 p_wdt_kick:
-002b 58000010 setarg 16 
-002c 20206de1 branch wdt_init_config 
+003c 58000010 setarg 16 
+003d 20206de1 branch wdt_init_config 
 
 p_usb_init:
-002d 20406fd3 call enable_authrom 
-002e 204071a1 call usb_init_param 
-002f 70061003 jam 0x03 ,mem_devicedesc + 17 
-0030 708c0000 jam 0x00 ,core_usb_config 
-0031 20002710 nop 10000 
-0032 708c1800 jam 0x00 ,core_usb_trig 
-0033 6ff10050 fetch 2 ,core_clkoff 
-0034 793ffe0a set0 clock_off_usb ,pdata 
-0035 67f10050 store 2 ,core_clkoff 
-0036 708c1100 jam 0x0 ,core_usb_hmode 
-0037 708c003c jam 0x3c ,core_usb_config 
-0038 58000bb3 setarg mem_usb_rxbuf_new 
-0039 67f10c03 store 2 ,core_usb_rx_saddr 
-003a 67f10c07 store 2 ,core_usb_rxptr 
-003b 58000bf7 setarg mem_usb_rxbuf_new_end 
-003c 67f10c05 store 2 ,core_usb_rx_eaddr 
-003d 20207192 branch usb_init + 16 
+003e 20406fd3 call enable_authrom 
+003f 204071a1 call usb_init_param 
+0040 70061003 jam 0x03 ,mem_devicedesc + 17 
+0041 708c0000 jam 0x00 ,core_usb_config 
+0042 20002710 nop 10000 
+0043 708c1800 jam 0x00 ,core_usb_trig 
+0044 6ff10050 fetch 2 ,core_clkoff 
+0045 793ffe0a set0 clock_off_usb ,pdata 
+0046 67f10050 store 2 ,core_clkoff 
+0047 708c1100 jam 0x0 ,core_usb_hmode 
+0048 708c003c jam 0x3c ,core_usb_config 
+0049 58000bb3 setarg mem_usb_rxbuf_new 
+004a 67f10c03 store 2 ,core_usb_rx_saddr 
+004b 67f10c07 store 2 ,core_usb_rxptr 
+004c 58000bf7 setarg mem_usb_rxbuf_new_end 
+004d 67f10c05 store 2 ,core_usb_rx_eaddr 
+004e 20207192 branch usb_init + 16 
 
 p_le_enable_phy_by_pdata:
-003e 18427e00 copy temp ,pdata 
-003f c2808041 bbit1 bit_le_2m_phy ,p_le_enable_2m 
-0040 20203d19 branch le_enable_phy_by_pdata + 3 
+004f 18427e00 copy temp ,pdata 
+0050 c2808052 bbit1 bit_le_2m_phy ,p_le_enable_2m 
+0051 20203d19 branch le_enable_phy_by_pdata + 3 
 
 p_le_enable_2m:
-0041 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
-0042 20203d1f branch le_enable_2m 
+0052 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
+0053 20203d1f branch le_enable_2m 
 
 p_set_freq_tx:
-0043 708a3d12 jam 0x12 ,core_syn_top_ctrl 
-0044 60488008 storet 1 ,mem_last_freq 
-0045 1840a202 add temp ,2 ,rega 
-0046 2040398e call rf_tx_write_freq 
-0047 200003c0 nop 0x3c0 
-0048 202039cf branch txon 
+0054 708a3d12 jam 0x12 ,core_syn_top_ctrl 
+0055 60488008 storet 1 ,mem_last_freq 
+0056 1840a202 add temp ,2 ,rega 
+0057 2040398e call rf_tx_write_freq 
+0058 200003c0 nop 0x3c0 
+0059 202039cf branch txon 
 
 p_set_tx_power_8db:
-0049 708a39ab jam 0xab ,core_tx_pwr_ctrl0 
-004a 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
-004b 202039f3 branch set_rf_ldo_cfg89_2 
+005a 708a39ab jam 0xab ,core_tx_pwr_ctrl0 
+005b 708a3a0f jam 0x0f ,core_tx_pwr_ctrl1 
+005c 202039f3 branch set_rf_ldo_cfg89_2 
 
 p_g24_receive_skip_end:
-004c 6fe0c5ab fetch 1 ,mem_dg_sys_config 
-004d c300481c bbit0 dg_enable_new_revision ,g24_receive_skip_end 
-004e 2000012c nop 300 
-004f 6fe0c43e fetch 1 ,mem_24g_rxbuf + 1 
-0050 79207e00 set1 bit_ack_24g ,pdata 
-0051 67e0c43e store 1 ,mem_24g_rxbuf + 1 
-0052 20404a3b call g24_ackpayload_prep 
-0053 2040488f call g24_transmit_prep 
-0054 2020483f branch g24_transmit 
+005d 6fe0c5ab fetch 1 ,mem_dg_sys_config 
+005e c300481c bbit0 dg_enable_new_revision ,g24_receive_skip_end 
+005f 2000012c nop 300 
+0060 6fe0c43e fetch 1 ,mem_24g_rxbuf + 1 
+0061 79207e00 set1 bit_ack_24g ,pdata 
+0062 67e0c43e store 1 ,mem_24g_rxbuf + 1 
+0063 20404a3b call g24_ackpayload_prep 
+0064 2040488f call g24_transmit_prep 
+0065 2020483f branch g24_transmit 
 
 p_g24_mode_switch_bind_search:
-0055 6fe0c559 fetch 1 ,mem_24g_work_mode 
-0056 c1000000 rtneq dongle_work 
-0057 6fe0c56d fetch 1 ,mem_24g_b_s_mode_switch_disable 
-0058 247a0000 nrtn blank 
-0059 6fe0c56b fetch 1 ,mem_24g_mode_b_s_switch_exit 
-005a 247a0000 nrtn blank 
-005b 6fe0c567 fetch 1 ,mem_24g_mode_b_s_switch 
-005c 207a0000 rtn blank 
-005d 6fe0c56e fetch 1 ,mem_24g_bind_device_living 
-005e 2fe00603 compare 3 ,pdata ,3 
-005f 2020cadc branch g24_mode_b_s_switch_exit ,true 
-0060 204048ef call g24_timer_check 
-0061 24740000 nrtn user 
-0062 6fe14569 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-0063 1fe0fe01 increase 1 ,pdata 
-0064 67e14569 store 2 ,mem_24g_mode_b_s_switch_cnt 
-0065 d84007d0 arg 0x7d0 ,temp 
-0066 98467c00 isub temp ,null 
-0067 20214adc branch g24_mode_b_s_switch_exit ,positive 
-0068 6fe0c56c fetch 1 ,mem_24g_b_s_time_slice 
-0069 1fe0fe01 increase 1 ,pdata 
-006a 1fe17e01 and_into 1 ,pdata 
-006b 67e0c56c store 1 ,mem_24g_b_s_time_slice 
-006c c0004ba3 beq 0 ,g24_search_mode_enable 
-006d c000c99f beq 1 ,g24_bind_mode_enable 
-006e 20600000 rtn 
+0066 6fe0c559 fetch 1 ,mem_24g_work_mode 
+0067 c1000000 rtneq dongle_work 
+0068 6fe0c56d fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0069 247a0000 nrtn blank 
+006a 6fe0c56b fetch 1 ,mem_24g_mode_b_s_switch_exit 
+006b 247a0000 nrtn blank 
+006c 6fe0c567 fetch 1 ,mem_24g_mode_b_s_switch 
+006d 207a0000 rtn blank 
+006e 6fe0c56e fetch 1 ,mem_24g_bind_device_living 
+006f 2fe00603 compare 3 ,pdata ,3 
+0070 2020cadc branch g24_mode_b_s_switch_exit ,true 
+0071 204048ef call g24_timer_check 
+0072 24740000 nrtn user 
+0073 6fe14569 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0074 1fe0fe01 increase 1 ,pdata 
+0075 67e14569 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0076 d84007d0 arg 0x7d0 ,temp 
+0077 98467c00 isub temp ,null 
+0078 20214adc branch g24_mode_b_s_switch_exit ,positive 
+0079 6fe0c56c fetch 1 ,mem_24g_b_s_time_slice 
+007a 1fe0fe01 increase 1 ,pdata 
+007b 1fe17e01 and_into 1 ,pdata 
+007c 67e0c56c store 1 ,mem_24g_b_s_time_slice 
+007d c0004ba3 beq 0 ,g24_search_mode_enable 
+007e c000c99f beq 1 ,g24_bind_mode_enable 
+007f 20600000 rtn 
 
 p_g24_bind_data_process:
-006f 20404a54 call g24_rx_interrupt_clear 
-0070 204047ce call g24_receive_packet 
-0071 2437ca54 nbranch g24_rx_interrupt_clear ,user3 
-0072 204049bf call g24_bind_data_parse 
-0073 2040007b call p_g24_bind_transmit_ack 
-0074 20404a2e call g24_bind_device_status_check 
-0075 204053c3 call dongle_kb_bind_soft_reset 
-0076 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-0077 207a0000 rtn blank 
-0078 6fe2456f fetch 4 ,mem_24g_transmitter_addr 
-0079 207a0000 rtn blank 
-007a 202048e0 branch g24_update_addr_and_synccrc8 
+0080 20404a54 call g24_rx_interrupt_clear 
+0081 204047ce call g24_receive_packet 
+0082 2437ca54 nbranch g24_rx_interrupt_clear ,user3 
+0083 204049bf call g24_bind_data_parse 
+0084 2040008c call p_g24_bind_transmit_ack 
+0085 20404a2e call g24_bind_device_status_check 
+0086 204053c3 call dongle_kb_bind_soft_reset 
+0087 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+0088 207a0000 rtn blank 
+0089 6fe2456f fetch 4 ,mem_24g_transmitter_addr 
+008a 207a0000 rtn blank 
+008b 202048e0 branch g24_update_addr_and_synccrc8 
 
 p_g24_bind_transmit_ack:
-007b 6fe0c43d fetch 1 ,mem_24g_rxbuf 
-007c 67e0c4cf store 1 ,mem_24g_data_type 
-007d 204048be call g24_read_len_pid_crc 
-007e 20404a3b call g24_ackpayload_prep 
-007f 2437c837 nbranch g24_end_of_packet ,user3 
-0080 2040488f call g24_transmit_prep 
-0081 2040483f call g24_transmit 
-0082 20204837 branch g24_end_of_packet 
+008c 6fe0c43d fetch 1 ,mem_24g_rxbuf 
+008d 67e0c4cf store 1 ,mem_24g_data_type 
+008e 204048be call g24_read_len_pid_crc 
+008f 20404a3b call g24_ackpayload_prep 
+0090 2437c837 nbranch g24_end_of_packet ,user3 
+0091 2040488f call g24_transmit_prep 
+0092 2040483f call g24_transmit 
+0093 20204837 branch g24_end_of_packet 
 
 p_g24_bind_data_parse_next:
-0083 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
-0084 c0550089 beq datatype_bind ,p_g24_bind_first_step 
-0085 c02a8093 beq datatype_config ,p_g24_bind_second_step 
-0086 c01100a3 beq datatype_ok ,p_g24_bind_third_step 
-0087 c07f80bb beq datatype_attemp ,p_g24_data_attemp 
-0088 20600000 rtn 
+0094 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
+0095 c055009a beq datatype_bind ,p_g24_bind_first_step 
+0096 c02a80a4 beq datatype_config ,p_g24_bind_second_step 
+0097 c01100b4 beq datatype_ok ,p_g24_bind_third_step 
+0098 c07f80cc beq datatype_attemp ,p_g24_data_attemp 
+0099 20600000 rtn 
 
 p_g24_bind_first_step:
-0089 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-008a c000808d beq datatype_device1 ,p_g24_bind_first_step_device1 
-008b c0010090 beq datatype_device2 ,p_g24_bind_first_step_device2 
-008c 20600000 rtn 
+009a 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+009b c000809e beq datatype_device1 ,p_g24_bind_first_step_device1 
+009c c00100a1 beq datatype_device2 ,p_g24_bind_first_step_device2 
+009d 20600000 rtn 
 
 p_g24_bind_first_step_device1:
-008d 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-008e 247a0000 nrtn blank 
-008f 202049ce branch g24_bind_first_step_device1 
+009e 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+009f 247a0000 nrtn blank 
+00a0 202049ce branch g24_bind_first_step_device1 
 
 p_g24_bind_first_step_device2:
-0090 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-0091 247a0000 nrtn blank 
-0092 202049d4 branch g24_bind_first_step_device2 
+00a1 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00a2 247a0000 nrtn blank 
+00a3 202049d4 branch g24_bind_first_step_device2 
 
 p_g24_bind_second_step:
-0093 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-0094 203a0099 branch p_g24_bind_second_step_skip ,blank 
-0095 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
-0096 684a4437 fetcht 4 ,mem_24g_lap 
-0097 98467c00 isub temp ,null 
-0098 24628000 nrtn zero 
+00a4 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+00a5 203a00aa branch p_g24_bind_second_step_skip ,blank 
+00a6 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
+00a7 684a4437 fetcht 4 ,mem_24g_lap 
+00a8 98467c00 isub temp ,null 
+00a9 24628000 nrtn zero 
 
 p_g24_bind_second_step_skip:
-0099 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-009a c000809d beq datatype_device1 ,p_g24_bind_second_step_device1 
-009b c00100a0 beq datatype_device2 ,p_g24_bind_second_step_device2 
-009c 20600000 rtn 
+00aa 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+00ab c00080ae beq datatype_device1 ,p_g24_bind_second_step_device1 
+00ac c00100b1 beq datatype_device2 ,p_g24_bind_second_step_device2 
+00ad 20600000 rtn 
 
 p_g24_bind_second_step_device1:
-009d 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-009e 247a0000 nrtn blank 
-009f 202049e1 branch g24_bind_second_step_device1 
+00ae 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00af 247a0000 nrtn blank 
+00b0 202049e1 branch g24_bind_second_step_device1 
 
 p_g24_bind_second_step_device2:
-00a0 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-00a1 247a0000 nrtn blank 
-00a2 202049ec branch g24_bind_second_step_device2 
+00b1 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00b2 247a0000 nrtn blank 
+00b3 202049ec branch g24_bind_second_step_device2 
 
 p_g24_bind_third_step:
-00a3 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
-00a4 203a00a9 branch p_g24_bind_third_step_skip ,blank 
-00a5 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
-00a6 684a456f fetcht 4 ,mem_24g_transmitter_addr 
-00a7 98467c00 isub temp ,null 
-00a8 24628000 nrtn zero 
+00b4 6fe0c4f4 fetch 1 ,mem_24g_pair_switch 
+00b5 203a00ba branch p_g24_bind_third_step_skip ,blank 
+00b6 6fe2452f fetch 4 ,mem_24g_rxdata_temp + 4 
+00b7 684a456f fetcht 4 ,mem_24g_transmitter_addr 
+00b8 98467c00 isub temp ,null 
+00b9 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-00a9 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-00aa c00080ad beq datatype_device1 ,p_g24_bind_third_step_device1 
-00ab c00100b4 beq datatype_device2 ,p_g24_bind_third_step_device2 
-00ac 20600000 rtn 
+00ba 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+00bb c00080be beq datatype_device1 ,p_g24_bind_third_step_device1 
+00bc c00100c5 beq datatype_device2 ,p_g24_bind_third_step_device2 
+00bd 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-00ad 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-00ae 247a0000 nrtn blank 
-00af 6fe0c518 fetch 1 ,mem_24g_device1_bind_step 
-00b0 c00100b2 beq 2 ,p_g24_bind_dvc1_step_success 
-00b1 20600000 rtn 
+00be 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00bf 247a0000 nrtn blank 
+00c0 6fe0c518 fetch 1 ,mem_24g_device1_bind_step 
+00c1 c00100c3 beq 2 ,p_g24_bind_dvc1_step_success 
+00c2 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-00b2 7045d701 jam 1 ,mem_24g_device1_bind_disable 
-00b3 20204a02 branch g24_bind_dvc1_step_success + 1 
+00c3 7045d701 jam 1 ,mem_24g_device1_bind_disable 
+00c4 20204a02 branch g24_bind_dvc1_step_success + 1 
 
 p_g24_bind_third_step_device2:
-00b4 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-00b5 247a0000 nrtn blank 
-00b6 6fe0c519 fetch 1 ,mem_24g_device2_bind_step 
-00b7 c08000b9 bne 0 ,p_g24_bind_dvc2_step_success 
-00b8 20600000 rtn 
+00c5 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00c6 247a0000 nrtn blank 
+00c7 6fe0c519 fetch 1 ,mem_24g_device2_bind_step 
+00c8 c08000ca bne 0 ,p_g24_bind_dvc2_step_success 
+00c9 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-00b9 7045d801 jam 1 ,mem_24g_device2_bind_disable 
-00ba 20204a0d branch g24_bind_dvc2_step_success + 1 
+00ca 7045d801 jam 1 ,mem_24g_device2_bind_disable 
+00cb 20204a0d branch g24_bind_dvc2_step_success + 1 
 
 p_g24_data_attemp:
-00bb 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
-00bc c00080bf beq datatype_device1 ,p_g24_data_attemp_device1 
-00bd c00100c2 beq datatype_device2 ,p_g24_data_attemp_device2 
-00be 20600000 rtn 
+00cc 6fe0c52e fetch 1 ,mem_24g_rxdata_temp + 3 
+00cd c00080d0 beq datatype_device1 ,p_g24_data_attemp_device1 
+00ce c00100d3 beq datatype_device2 ,p_g24_data_attemp_device2 
+00cf 20600000 rtn 
 
 p_g24_data_attemp_device1:
-00bf 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-00c0 247a0000 nrtn blank 
-00c1 20204c24 branch g24_data_attemp_device1 
+00d0 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00d1 247a0000 nrtn blank 
+00d2 20204c24 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-00c2 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
-00c3 247a0000 nrtn blank 
-00c4 20204c28 branch g24_data_attemp_device2 
+00d3 6fe0c5d8 fetch 1 ,mem_24g_device2_bind_disable 
+00d4 247a0000 nrtn blank 
+00d5 20204c28 branch g24_data_attemp_device2 
 
 p_g24_search_mode_auto:
-00c5 6fe0c559 fetch 1 ,mem_24g_work_mode 
-00c6 c1838000 rtnne dongle_search 
-00c7 204000c9 call p_g24_search_mode_init 
-00c8 20204b1b branch g24_search_mode_auto + 4 
+00d6 6fe0c559 fetch 1 ,mem_24g_work_mode 
+00d7 c1838000 rtnne dongle_search 
+00d8 204000da call p_g24_search_mode_init 
+00d9 20204b1b branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00c9 6fe0c558 fetch 1 ,mem_24g_mode_init 
-00ca c3838000 rtnbit1 dongle_search 
-00cb 79207e07 set1 dongle_search ,pdata 
-00cc 67e0c558 store 1 ,mem_24g_mode_init 
-00cd 6fe0c566 fetch 1 ,mem_tx_power_temp 
-00ce 67e0c116 store 1 ,mem_tx_power 
-00cf 20204b0b branch g24_search_mode_init + 4 
+00da 6fe0c558 fetch 1 ,mem_24g_mode_init 
+00db c3838000 rtnbit1 dongle_search 
+00dc 79207e07 set1 dongle_search ,pdata 
+00dd 67e0c558 store 1 ,mem_24g_mode_init 
+00de 6fe0c566 fetch 1 ,mem_tx_power_temp 
+00df 67e0c116 store 1 ,mem_tx_power 
+00e0 20204b0b branch g24_search_mode_init + 4 
 
 p_g24_receive_packet_start_next:
-00d0 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
-00d1 c00080d5 beq datatype_device1 ,p_g24_data_device1 
-00d2 c0014a69 beq datatype_device2 ,g24_data_device2 
-00d3 c07f80e6 beq datatype_attemp ,p_g24_data_receive_attemp 
-00d4 20204a54 branch g24_rx_interrupt_clear 
+00e1 6fe0c52d fetch 1 ,mem_24g_rxdata_temp + 2 
+00e2 c00080e6 beq datatype_device1 ,p_g24_data_device1 
+00e3 c0014a69 beq datatype_device2 ,g24_data_device2 
+00e4 c07f80f7 beq datatype_attemp ,p_g24_data_receive_attemp 
+00e5 20204a54 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-00d5 20404a22 call g24_binding_dvc1_living 
-00d6 20404bbd call g24_ch_timer_reinit 
-00d7 6fe0c54d fetch 1 ,mem_24g_abort_packet 
-00d8 6848c52b fetcht 1 ,mem_24g_rxdata_temp 
-00d9 284ffe03 isolate1 bit_abort ,temp 
-00da 7920fe00 setflag true ,0 ,pdata 
-00db 67e0c54d store 1 ,mem_24g_abort_packet 
-00dc c00080de beq 1 ,p_g24_data_attemp_device1_abort 
-00dd 20204a62 branch g24_data_device1 + 8 
+00e6 20404a22 call g24_binding_dvc1_living 
+00e7 20404bbd call g24_ch_timer_reinit 
+00e8 6fe0c54d fetch 1 ,mem_24g_abort_packet 
+00e9 6848c52b fetcht 1 ,mem_24g_rxdata_temp 
+00ea 284ffe03 isolate1 bit_abort ,temp 
+00eb 7920fe00 setflag true ,0 ,pdata 
+00ec 67e0c54d store 1 ,mem_24g_abort_packet 
+00ed c00080ef beq 1 ,p_g24_data_attemp_device1_abort 
+00ee 20204a62 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-00de 6fe0c095 fetch 1 ,mem_device_option 
-00df 1fe67c0e sub pdata ,dvc_op_car ,null 
-00e0 2042cf01 call car_stop_blink ,zero 
-00e1 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
-00e2 247a0000 nrtn blank 
-00e3 7045d701 jam 1 ,mem_24g_device1_bind_disable 
-00e4 6fe24535 fetch 4 ,mem_24g_rxdata_temp + 10 
-00e5 20204c26 branch g24_store_device1_addr 
+00ef 6fe0c095 fetch 1 ,mem_device_option 
+00f0 1fe67c0e sub pdata ,dvc_op_car ,null 
+00f1 2042cf01 call car_stop_blink ,zero 
+00f2 6fe0c5d7 fetch 1 ,mem_24g_device1_bind_disable 
+00f3 247a0000 nrtn blank 
+00f4 7045d701 jam 1 ,mem_24g_device1_bind_disable 
+00f5 6fe24535 fetch 4 ,mem_24g_rxdata_temp + 10 
+00f6 20204c26 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-00e6 20404a30 call g24_bind_device_status 
-00e7 202000bb branch p_g24_data_attemp 
+00f7 20404a30 call g24_bind_device_status 
+00f8 202000cc branch p_g24_data_attemp 
               org 0x3800
 
 start:
@@ -9531,6 +9550,8 @@
 52f7 24628000 nrtn zero 
 52f8 6fe086c9 fetch 1 ,mem_usb0_set_report_data 
 52f9 c1dd0000 rtnne pc_report_id 
+
+dongle_usb_dispatch_check_cmd:
 52fa 6fe086ca fetch 1 ,mem_usb0_set_report_data + 1 
 52fb c0505302 beq command_mode ,dongle_dispose_cmd_mode 
 52fc c050d308 beq command_bind ,dongle_dispose_cmd_bind 
Index: program/app_dongle.prog
===================================================================
--- /branch/usb/usb_public_125K/program/app_dongle.prog	(revision 322)
+++ /branch/usb/usb_public_125K/program/app_dongle.prog	(working copy)
@@ -231,6 +231,7 @@
 	//get usb host command
 	fetch 1,mem_usb0_set_report_data
 	rtnne PC_REPORT_ID
+dongle_usb_dispatch_check_cmd:
 	fetch 1,mem_usb0_set_report_data+1
 	beq COMMAND_MODE,dongle_dispose_cmd_mode
 	beq COMMAND_BIND,dongle_dispose_cmd_bind
Index: program/patch.prog
===================================================================
--- /branch/usb/usb_public_125K/program/patch.prog	(revision 322)
+++ /branch/usb/usb_public_125K/program/patch.prog	(working copy)
@@ -60,7 +60,27 @@
 
 p_dongle_usb_dispatch:
 	call p_wdt_kick
-	branch dongle_usb_dispatch+1
+	fetch 1,mem_usb_remote_wakeup
+	call dongle_clear_pc_sleep_flag,blank
+	call usb_isr
+	fetch 1,mem_usb0_get_set_report
+	rtn blank
+	jam 0,mem_usb0_get_set_report
+	fetch 2,mem_usb_setup_bValue_temp
+	arg PC_SET_REPORT,temp
+	isub temp,null
+	nrtn zero
+	//get usb host command
+	fetch 1,mem_usb0_set_report_data
+	rtnne PC_REPORT_ID
+	fetch 1,mem_usb0_set_report_data+1
+	beq COMMAND_MODE,dongle_dispose_cmd_mode
+	beq COMMAND_BIND,p_dongle_dispose_cmd_bind
+	branch dongle_usb_dispatch_check_cmd+3
+
+p_dongle_dispose_cmd_bind:
+	jam 0,mem_24g_device2_bind_disable
+	branch dongle_dispose_cmd_bind
 
 p_wdt_kick:
 	setarg 16	//about 148ms
