Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/eeprom.dat	(revision 3059)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-ae
-03
+02
+04
 c2
 84
 00
@@ -27,7 +27,7 @@
 c0
 46
 00
-6e
+83
 c0
 56
 80
@@ -47,27 +47,27 @@
 c0
 46
 00
-89
+9e
 c0
 47
 00
-8d
+a2
 c0
 49
 80
-9d
+b2
 c0
 53
 80
-83
+98
 c0
 70
 00
-a3
+b8
 c0
 72
 00
-b4
+c9
 20
 20
 13
@@ -91,7 +91,7 @@
 c0
 07
 80
-5f
+74
 20
 20
 36
@@ -231,7 +231,7 @@
 20
 40
 00
-63
+78
 20
 40
 62
@@ -262,16 +262,100 @@
 00
 20
 40
-24
-97
+00
+43
 20
 40
 00
-43
+58
 20
 20
 37
 70
+6f
+e0
+c8
+c3
+c1
+80
+00
+00
+20
+40
+00
+48
+20
+40
+25
+47
+20
+20
+23
+e8
+6f
+e0
+c8
+c2
+c3
+80
+00
+00
+79
+20
+7e
+00
+67
+e0
+c8
+c2
+6f
+e0
+c8
+d0
+67
+e0
+c1
+e8
+70
+48
+be
+00
+70
+0b
+f9
+00
+70
+48
+b7
+01
+70
+48
+2e
+00
+58
+00
+0f
+0f
+67
+e1
+48
+3f
+67
+e1
+48
+41
+20
+40
+22
+93
+20
+40
+22
+81
+20
+20
+23
+fa
 20
 40
 37
@@ -279,11 +363,11 @@
 20
 40
 00
-46
+5b
 20
 20
 00
-52
+67
 6f
 e0
 c9
@@ -399,7 +483,7 @@
 20
 20
 00
-60
+75
 6f
 e0
 c8
@@ -407,7 +491,7 @@
 c0
 07
 80
-67
+7c
 70
 49
 40
@@ -491,7 +575,7 @@
 20
 40
 00
-69
+7e
 1f
 e6
 7e
@@ -515,7 +599,7 @@
 24
 20
 80
-81
+96
 58
 00
 00
@@ -583,7 +667,7 @@
 c0
 00
 00
-92
+a7
 20
 20
 7a
@@ -607,7 +691,7 @@
 c0
 00
 80
-98
+ad
 20
 20
 7a
@@ -619,7 +703,7 @@
 c0
 04
 80
-9b
+b0
 20
 20
 7a
@@ -731,15 +815,15 @@
 c0
 55
 00
-b9
+ce
 c0
 2a
 80
-c3
+d8
 c0
 11
 00
-d3
+e8
 20
 20
 23
@@ -751,11 +835,11 @@
 c0
 00
 80
-bd
+d2
 c0
 01
 00
-c0
+d5
 20
 60
 00
@@ -791,7 +875,7 @@
 20
 3a
 00
-c9
+de
 6f
 e2
 48
@@ -815,11 +899,11 @@
 c0
 00
 80
-cd
+e2
 c0
 01
 00
-d0
+e5
 20
 60
 00
@@ -855,7 +939,7 @@
 20
 3a
 00
-d9
+ee
 6f
 e2
 48
@@ -879,11 +963,11 @@
 c0
 00
 80
-dd
+f2
 c0
 01
 00
-e4
+f9
 20
 60
 00
@@ -903,7 +987,7 @@
 c0
 01
 00
-e2
+f7
 20
 60
 00
@@ -931,7 +1015,7 @@
 c0
 80
 00
-e9
+fe
 20
 60
 00
@@ -944,8 +1028,8 @@
 20
 23
 b4
-78
-03
+ea
+e7
 aa
 55
 40
@@ -1070,92 +1154,8 @@
 55
 8d
 0e
-3c
-7f
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+26
+cb
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-7f
-9e
+6e
+c8
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/program.lis	(revision 3059)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/program.lis	(working copy)
@@ -5,19 +5,19 @@
 0002 c042801e beq patch10_5 ,p_rf_rx_enable 
 0003 c045002c beq patch11_2 ,p_txon_next 
 0004 c0458030 beq patch11_3 ,p_initialize_radio_cont 
-0005 c046006e beq patch11_4 ,p_save_rssi 
+0005 c0460083 beq patch11_4 ,p_save_rssi 
 0006 c0568011 beq patch15_5 ,p_app_init 
 0007 c05d003c beq patch17_2 ,p_dongle_usb_dispatch 
 0008 c05d803e beq patch17_3 ,p_dongle_work_mode_auto 
 0009 2020137e branch loop 
 
 pf_patch_ext:
-000a c0460089 beq patch31_4 ,p_usb_init 
-000b c047008d beq patch31_6 ,p_usb_class_type 
-000c c049809d beq patch32_3 ,p_usb_tx 
-000d c0538083 beq patch34_7 ,p_le_enable 
-000e c07000a3 beq patch3c_0 ,p_g24_receive_skip_end 
-000f c07200b4 beq patch3c_4 ,p_g24_bind_data_parse_next 
+000a c046009e beq patch31_4 ,p_usb_init 
+000b c04700a2 beq patch31_6 ,p_usb_class_type 
+000c c04980b2 beq patch32_3 ,p_usb_tx 
+000d c0538098 beq patch34_7 ,p_le_enable 
+000e c07000b8 beq patch3c_0 ,p_g24_receive_skip_end 
+000f c07200c9 beq patch3c_4 ,p_g24_bind_data_parse_next 
 0010 2020137e branch loop 
 
 p_app_init:
@@ -29,7 +29,7 @@
 
 p_dongle_dispatch:
 0014 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
-0015 c007805f beq 0x0f ,p_dongle_all_powerful 
+0015 c0078074 beq 0x0f ,p_dongle_all_powerful 
 0016 202036cd branch dongle_dispatch + 1 
 
 p_set_sync_on:
@@ -78,7 +78,7 @@
 0035 70487a01 jam 0x01 ,mem_24g_disable_fec1 
 0036 7048bc1e jam 0x1e ,mem_24g_hop_interval 
 0037 20401252 call initialize_radio_cont + 1 
-0038 20400063 call p_g24_fast_conn_mode_check 
+0038 20400078 call p_g24_fast_conn_mode_check 
 0039 204062a4 call wdt_set_enable 
 
 p_wdt_kick:
@@ -92,243 +92,268 @@
 p_dongle_work_mode_auto:
 003e 6fe0c8c3 fetch 1 ,mem_24g_work_mode 
 003f c1800000 rtnne dongle_work 
-0040 20402497 call g24_work_mode_start 
-0041 20400043 call p_dongle_g24_blank_data_process 
+0040 20400043 call p_g24_work_mode_start 
+0041 20400058 call p_dongle_g24_blank_data_process 
 0042 20203770 branch dongle_work_mode_auto + 5 
 
+p_g24_work_mode_start:
+0043 6fe0c8c3 fetch 1 ,mem_24g_work_mode 
+0044 c1800000 rtnne dongle_work 
+0045 20400048 call p_g24_work_init 
+0046 20402547 call g24_ch_process 
+0047 202023e8 branch g24_receive_packet_start 
+
+p_g24_work_init:
+0048 6fe0c8c2 fetch 1 ,mem_24g_mode_init 
+0049 c3800000 rtnbit1 dongle_work 
+004a 79207e00 set1 dongle_work ,pdata 
+004b 67e0c8c2 store 1 ,mem_24g_mode_init 
+004c 6fe0c8d0 fetch 1 ,mem_tx_power_temp 
+004d 67e0c1e8 store 1 ,mem_tx_power 
+004e 7048be00 jam 0 ,mem_24g_ackpayload_enable 
+004f 700bf900 jam 0 ,mem_usb_tx_enable 
+0050 7048b701 jam 1 ,mem_24g_abort_packet 
+0051 70482e00 jam 0 ,mem_24g_pid 
+0052 58000f0f setarg 0x0f0f 
+0053 67e1483f store 2 ,mem_24g_addr 
+0054 67e14841 store 2 ,mem_24g_addr + 2 
+0055 20402293 call g24_syncword_crc8 
+0056 20402281 call g24_ch 
+0057 202023fa branch g24_rx_interrupt_clear 
+
 p_dongle_g24_blank_data_process:
-0043 20403705 call dongle_g24_ms_blank_data 
-0044 20400046 call p_dongle_g24_kb_blank_data 
-0045 20200052 branch p_dongle_g24_kb_mul_blank_data 
+0058 20403705 call dongle_g24_ms_blank_data 
+0059 2040005b call p_dongle_g24_kb_blank_data 
+005a 20200067 branch p_dongle_g24_kb_mul_blank_data 
 
 p_dongle_g24_kb_blank_data:
-0046 6fe0c912 fetch 1 ,mem_dg_kb_blank_data_enable 
-0047 207a0000 rtn blank 
-0048 d8e0000e arg timer_kb_blank ,queue 
-0049 20407de9 call timer_check 
-004a 247a0000 nrtn blank 
-004b 70491200 jam 0 ,mem_dg_kb_blank_data_enable 
-004c d8a00c0f arg mem_usb_kb_data ,contw 
-004d df200002 arg 2 ,loopcnt 
-004e 20407d8c call memset0 
-004f 6fe40c0f fetch 8 ,mem_usb_kb_data 
-0050 67e448fe store 8 ,mem_dg_kb_data_last_data 
-0051 2020371d branch dongle_usb_tx_kb_data 
+005b 6fe0c912 fetch 1 ,mem_dg_kb_blank_data_enable 
+005c 207a0000 rtn blank 
+005d d8e0000e arg timer_kb_blank ,queue 
+005e 20407de9 call timer_check 
+005f 247a0000 nrtn blank 
+0060 70491200 jam 0 ,mem_dg_kb_blank_data_enable 
+0061 d8a00c0f arg mem_usb_kb_data ,contw 
+0062 df200002 arg 2 ,loopcnt 
+0063 20407d8c call memset0 
+0064 6fe40c0f fetch 8 ,mem_usb_kb_data 
+0065 67e448fe store 8 ,mem_dg_kb_data_last_data 
+0066 2020371d branch dongle_usb_tx_kb_data 
 
 p_dongle_g24_kb_mul_blank_data:
-0052 6fe0c913 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
-0053 207a0000 rtn blank 
-0054 d8e0000c arg timer_kb_mul_blank ,queue 
-0055 20407de9 call timer_check 
-0056 247a0000 nrtn blank 
-0057 70491300 jam 0 ,mem_dg_kb_mul_blank_data_enable 
-0058 d8a00c1f arg mem_usb_kb_multikey ,contw 
-0059 df200002 arg 2 ,loopcnt 
-005a 20407d8c call memset0 
-005b 700c1f03 jam kb_multikey_report_id ,mem_usb_kb_multikey 
-005c 6fe18c1f fetch 3 ,mem_usb_kb_multikey 
-005d 67e1c909 store 3 ,mem_dg_kb_multikey_last_data 
-005e 2020372d branch dongle_usb_tx_multikey_data 
+0067 6fe0c913 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+0068 207a0000 rtn blank 
+0069 d8e0000c arg timer_kb_mul_blank ,queue 
+006a 20407de9 call timer_check 
+006b 247a0000 nrtn blank 
+006c 70491300 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+006d d8a00c1f arg mem_usb_kb_multikey ,contw 
+006e df200002 arg 2 ,loopcnt 
+006f 20407d8c call memset0 
+0070 700c1f03 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0071 6fe18c1f fetch 3 ,mem_usb_kb_multikey 
+0072 67e1c909 store 3 ,mem_dg_kb_multikey_last_data 
+0073 2020372d branch dongle_usb_tx_multikey_data 
 
 p_dongle_all_powerful:
-005f 20402493 call g24_switch_work_mode 
+0074 20402493 call g24_switch_work_mode 
 
 p_dongle_all_powerful_loop:
-0060 2040376b call dongle_work_mode_auto 
-0061 2040372f call dongle_usb_dispatch 
-0062 20200060 branch p_dongle_all_powerful_loop 
+0075 2040376b call dongle_work_mode_auto 
+0076 2040372f call dongle_usb_dispatch 
+0077 20200075 branch p_dongle_all_powerful_loop 
 
 p_g24_fast_conn_mode_check:
-0063 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
-0064 c0078067 beq 0x0f ,p_soft_agc_en_true 
+0078 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
+0079 c007807c beq 0x0f ,p_soft_agc_en_true 
 
 p_soft_agc_en_false:
-0065 70494000 jam 0 ,mem_soft_agc_en 
-0066 20600000 rtn 
+007a 70494000 jam 0 ,mem_soft_agc_en 
+007b 20600000 rtn 
 
 p_soft_agc_en_true:
-0067 70494001 jam 1 ,mem_soft_agc_en 
-0068 20600000 rtn 
+007c 70494001 jam 1 ,mem_soft_agc_en 
+007d 20600000 rtn 
 
 p_byte_sign_extern:
-0069 2feffe07 isolate1 7 ,pdata 
-006a 24608000 nrtn true 
-006b d840ff00 arg 0xff00 ,temp 
-006c 9841fe00 ior temp ,pdata 
-006d 20600000 rtn 
+007e 2feffe07 isolate1 7 ,pdata 
+007f 24608000 nrtn true 
+0080 d840ff00 arg 0xff00 ,temp 
+0081 9841fe00 ior temp ,pdata 
+0082 20600000 rtn 
 
 p_save_rssi:
-006e 6ff089a2 fetch 1 ,modem_nb_pow 
-006f 2feffe06 isolate1 6 ,pdata 
-0070 7920fe07 setflag true ,7 ,pdata 
-0071 67e0c1e9 store 1 ,mem_modem_rssi 
-0072 6ff089a3 fetch 1 ,modem_gain 
-0073 1fe1040f and pdata ,0x0f ,temp 
-0074 18438400 lshift temp ,temp 
-0075 1ff1fe00 rshift4 pdata ,pdata 
-0076 98408400 iadd temp ,temp 
-0077 184fa203 mul32 temp ,3 ,rega 
-0078 6fe0c1e9 fetch 1 ,mem_modem_rssi 
-0079 20400069 call p_byte_sign_extern 
-007a 1fe67e00 sub pdata ,0 ,pdata 
-007b 9a20fe00 iadd rega ,pdata 
-007c 1fe0fff7 increase -9 ,pdata 
-007d 1fe17fff and pdata ,0x1ff ,pdata 
-007e 2feffe08 isolate1 8 ,pdata 
-007f 24208081 nbranch p_save_rssi_store ,true 
-0080 58000000 setarg 0 
+0083 6ff089a2 fetch 1 ,modem_nb_pow 
+0084 2feffe06 isolate1 6 ,pdata 
+0085 7920fe07 setflag true ,7 ,pdata 
+0086 67e0c1e9 store 1 ,mem_modem_rssi 
+0087 6ff089a3 fetch 1 ,modem_gain 
+0088 1fe1040f and pdata ,0x0f ,temp 
+0089 18438400 lshift temp ,temp 
+008a 1ff1fe00 rshift4 pdata ,pdata 
+008b 98408400 iadd temp ,temp 
+008c 184fa203 mul32 temp ,3 ,rega 
+008d 6fe0c1e9 fetch 1 ,mem_modem_rssi 
+008e 2040007e call p_byte_sign_extern 
+008f 1fe67e00 sub pdata ,0 ,pdata 
+0090 9a20fe00 iadd rega ,pdata 
+0091 1fe0fff7 increase -9 ,pdata 
+0092 1fe17fff and pdata ,0x1ff ,pdata 
+0093 2feffe08 isolate1 8 ,pdata 
+0094 24208096 nbranch p_save_rssi_store ,true 
+0095 58000000 setarg 0 
 
 p_save_rssi_store:
-0081 67e08154 store 1 ,mem_rssi_hex 
-0082 20201293 branch rssi_hex2dec 
+0096 67e08154 store 1 ,mem_rssi_hex 
+0097 20201293 branch rssi_hex2dec 
 
 p_le_enable:
-0083 20401652 call le_enable + 1 
-0084 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
-0085 6ff08a43 fetch 1 ,core_syn_cal_ctrl 
-0086 1fe1fe0f or pdata ,0x0f ,pdata 
-0087 67f08a43 store 1 ,core_syn_cal_ctrl 
-0088 20600000 rtn 
+0098 20401652 call le_enable + 1 
+0099 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
+009a 6ff08a43 fetch 1 ,core_syn_cal_ctrl 
+009b 1fe1fe0f or pdata ,0x0f ,pdata 
+009c 67f08a43 store 1 ,core_syn_cal_ctrl 
+009d 20600000 rtn 
 
 p_usb_init:
-0089 20406e5e call enable_authrom 
-008a 20407a27 call usb_init_param 
-008b 700aa803 jam 0x03 ,mem_devicedesc + 17 
-008c 20207a0b branch usb_init_next 
+009e 20406e5e call enable_authrom 
+009f 20407a27 call usb_init_param 
+00a0 700aa803 jam 0x03 ,mem_devicedesc + 17 
+00a1 20207a0b branch usb_init_next 
 
 p_usb_class_type:
-008d 793f8023 set0 mark_isstr ,mark 
-008e 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-008f 1fe17e80 and_into 0x80 ,pdata 
-0090 c0000092 beq out_device ,p_usb_out_device 
-0091 20207aa1 branch usb_class_type + 4 
+00a2 793f8023 set0 mark_isstr ,mark 
+00a3 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+00a4 1fe17e80 and_into 0x80 ,pdata 
+00a5 c00000a7 beq out_device ,p_usb_out_device 
+00a6 20207aa1 branch usb_class_type + 4 
 
 p_usb_out_device:
-0092 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-0093 1ff1fe00 rshift4 pdata ,pdata 
-0094 1fe37e00 rshift pdata ,pdata 
-0095 1fe17e03 and_into 0x03 ,pdata 
-0096 c0008098 beq class_req ,p_usb_out_class_req 
-0097 20207ab4 branch usb_out_device + 4 
+00a7 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+00a8 1ff1fe00 rshift4 pdata ,pdata 
+00a9 1fe37e00 rshift pdata ,pdata 
+00aa 1fe17e03 and_into 0x03 ,pdata 
+00ab c00080ad beq class_req ,p_usb_out_class_req 
+00ac 20207ab4 branch usb_out_device + 4 
 
 p_usb_out_class_req:
-0098 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
-0099 c004809b beq set_report ,p_usb_set_report 
-009a 20207acd branch usb_out_class_req + 1 
+00ad 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
+00ae c00480b0 beq set_report ,p_usb_set_report 
+00af 20207acd branch usb_out_class_req + 1 
 
 p_usb_set_report:
-009b 20003a98 nop 15000 
-009c 20207c4a branch usb_set_report 
+00b0 20003a98 nop 15000 
+00b1 20207c4a branch usb_set_report 
 
 p_usb_tx:
-009d 6fe08bf9 fetch 1 ,mem_usb_tx_enable 
-009e 207a0000 rtn blank 
-009f 6ff08c24 fetch 1 ,core_usb_txbusy 
-00a0 1fe17e0f and_into 0x0f ,pdata 
-00a1 243a7d17 nbranch usb_inwake_state_tx_dispose ,blank 
-00a2 20207ccc branch usb_tx + 3 
+00b2 6fe08bf9 fetch 1 ,mem_usb_tx_enable 
+00b3 207a0000 rtn blank 
+00b4 6ff08c24 fetch 1 ,core_usb_txbusy 
+00b5 1fe17e0f and_into 0x0f ,pdata 
+00b6 243a7d17 nbranch usb_inwake_state_tx_dispose ,blank 
+00b7 20207ccc branch usb_tx + 3 
 
 p_g24_receive_skip_end:
-00a3 6fe0c868 fetch 1 ,mem_24g_tx_phy 
-00a4 20401637 call le_enable_phy_by_pdata 
-00a5 6fe2483f fetch 4 ,mem_24g_addr 
-00a6 98001200 iforce access 
-00a7 20402181 call g24_prep 
-00a8 2040115d call set_sync_on 
-00a9 6848c83d fetcht 1 ,mem_24g_ch 
-00aa 708a3d12 jam 0x12 ,core_syn_top_ctrl 
-00ab 60488017 storet 1 ,mem_last_freq 
-00ac 1840a202 add temp ,2 ,rega 
-00ad 204011c6 call rf_tx_write_freq 
-00ae 20401207 call txon 
-00af 20000064 nop 100 
-00b0 204023e3 call g24_ackpayload_prep 
-00b1 20402247 call g24_transmit_prep 
-00b2 204021ff call g24_transmit + 7 
-00b3 202021d6 branch g24_receive_skip_end 
+00b8 6fe0c868 fetch 1 ,mem_24g_tx_phy 
+00b9 20401637 call le_enable_phy_by_pdata 
+00ba 6fe2483f fetch 4 ,mem_24g_addr 
+00bb 98001200 iforce access 
+00bc 20402181 call g24_prep 
+00bd 2040115d call set_sync_on 
+00be 6848c83d fetcht 1 ,mem_24g_ch 
+00bf 708a3d12 jam 0x12 ,core_syn_top_ctrl 
+00c0 60488017 storet 1 ,mem_last_freq 
+00c1 1840a202 add temp ,2 ,rega 
+00c2 204011c6 call rf_tx_write_freq 
+00c3 20401207 call txon 
+00c4 20000064 nop 100 
+00c5 204023e3 call g24_ackpayload_prep 
+00c6 20402247 call g24_transmit_prep 
+00c7 204021ff call g24_transmit + 7 
+00c8 202021d6 branch g24_receive_skip_end 
 
 p_g24_bind_data_parse_next:
-00b4 6fe0c897 fetch 1 ,mem_24g_rxdata_temp + 2 
-00b5 c05500b9 beq datatype_bind ,p_g24_bind_first_step 
-00b6 c02a80c3 beq datatype_config ,p_g24_bind_second_step 
-00b7 c01100d3 beq datatype_ok ,p_g24_bind_third_step 
-00b8 20202370 branch g24_bind_data_parse_next + 4 
+00c9 6fe0c897 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ca c05500ce beq datatype_bind ,p_g24_bind_first_step 
+00cb c02a80d8 beq datatype_config ,p_g24_bind_second_step 
+00cc c01100e8 beq datatype_ok ,p_g24_bind_third_step 
+00cd 20202370 branch g24_bind_data_parse_next + 4 
 
 p_g24_bind_first_step:
-00b9 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00ba c00080bd beq datatype_device1 ,p_g24_bind_first_step_device1 
-00bb c00100c0 beq datatype_device2 ,p_g24_bind_first_step_device2 
-00bc 20600000 rtn 
+00ce 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00cf c00080d2 beq datatype_device1 ,p_g24_bind_first_step_device1 
+00d0 c00100d5 beq datatype_device2 ,p_g24_bind_first_step_device2 
+00d1 20600000 rtn 
 
 p_g24_bind_first_step_device1:
-00bd 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00be 247a0000 nrtn blank 
-00bf 20202376 branch g24_bind_first_step_device1 
+00d2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00d3 247a0000 nrtn blank 
+00d4 20202376 branch g24_bind_first_step_device1 
 
 p_g24_bind_first_step_device2:
-00c0 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00c1 247a0000 nrtn blank 
-00c2 2020237c branch g24_bind_first_step_device2 
+00d5 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00d6 247a0000 nrtn blank 
+00d7 2020237c branch g24_bind_first_step_device2 
 
 p_g24_bind_second_step:
-00c3 6fe0c85e fetch 1 ,mem_24g_pair_switch 
-00c4 203a00c9 branch p_g24_bind_second_step_skip ,blank 
-00c5 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
-00c6 684a40a8 fetcht 4 ,mem_lap 
-00c7 98467c00 isub temp ,null 
-00c8 24628000 nrtn zero 
+00d8 6fe0c85e fetch 1 ,mem_24g_pair_switch 
+00d9 203a00de branch p_g24_bind_second_step_skip ,blank 
+00da 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
+00db 684a40a8 fetcht 4 ,mem_lap 
+00dc 98467c00 isub temp ,null 
+00dd 24628000 nrtn zero 
 
 p_g24_bind_second_step_skip:
-00c9 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00ca c00080cd beq datatype_device1 ,p_g24_bind_second_step_device1 
-00cb c00100d0 beq datatype_device2 ,p_g24_bind_second_step_device2 
-00cc 20600000 rtn 
+00de 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00df c00080e2 beq datatype_device1 ,p_g24_bind_second_step_device1 
+00e0 c00100e5 beq datatype_device2 ,p_g24_bind_second_step_device2 
+00e1 20600000 rtn 
 
 p_g24_bind_second_step_device1:
-00cd 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00ce 247a0000 nrtn blank 
-00cf 20202389 branch g24_bind_second_step_device1 
+00e2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00e3 247a0000 nrtn blank 
+00e4 20202389 branch g24_bind_second_step_device1 
 
 p_g24_bind_second_step_device2:
-00d0 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00d1 247a0000 nrtn blank 
-00d2 20202394 branch g24_bind_second_step_device2 
+00e5 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00e6 247a0000 nrtn blank 
+00e7 20202394 branch g24_bind_second_step_device2 
 
 p_g24_bind_third_step:
-00d3 6fe0c85e fetch 1 ,mem_24g_pair_switch 
-00d4 203a00d9 branch p_g24_bind_third_step_skip ,blank 
-00d5 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
-00d6 684a48d9 fetcht 4 ,mem_24g_transmitter_addr 
-00d7 98467c00 isub temp ,null 
-00d8 24628000 nrtn zero 
+00e8 6fe0c85e fetch 1 ,mem_24g_pair_switch 
+00e9 203a00ee branch p_g24_bind_third_step_skip ,blank 
+00ea 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
+00eb 684a48d9 fetcht 4 ,mem_24g_transmitter_addr 
+00ec 98467c00 isub temp ,null 
+00ed 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-00d9 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00da c00080dd beq datatype_device1 ,p_g24_bind_third_step_device1 
-00db c00100e4 beq datatype_device2 ,p_g24_bind_third_step_device2 
-00dc 20600000 rtn 
+00ee 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00ef c00080f2 beq datatype_device1 ,p_g24_bind_third_step_device1 
+00f0 c00100f9 beq datatype_device2 ,p_g24_bind_third_step_device2 
+00f1 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-00dd 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00de 247a0000 nrtn blank 
-00df 6fe0c882 fetch 1 ,mem_24g_device1_bind_step 
-00e0 c00100e2 beq 2 ,p_g24_bind_dvc1_step_success 
-00e1 20600000 rtn 
+00f2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00f3 247a0000 nrtn blank 
+00f4 6fe0c882 fetch 1 ,mem_24g_device1_bind_step 
+00f5 c00100f7 beq 2 ,p_g24_bind_dvc1_step_success 
+00f6 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-00e2 70494101 jam 1 ,mem_24g_mouse_bind_enable 
-00e3 202023a9 branch g24_bind_dvc1_step_success 
+00f7 70494101 jam 1 ,mem_24g_mouse_bind_enable 
+00f8 202023a9 branch g24_bind_dvc1_step_success 
 
 p_g24_bind_third_step_device2:
-00e4 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00e5 247a0000 nrtn blank 
-00e6 6fe0c883 fetch 1 ,mem_24g_device2_bind_step 
-00e7 c08000e9 bne 0 ,p_g24_bind_dvc2_step_success 
-00e8 20600000 rtn 
+00f9 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00fa 247a0000 nrtn blank 
+00fb 6fe0c883 fetch 1 ,mem_24g_device2_bind_step 
+00fc c08000fe bne 0 ,p_g24_bind_dvc2_step_success 
+00fd 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-00e9 70494201 jam 1 ,mem_24g_keyboard_bind_enable 
-00ea 202023b4 branch g24_bind_dvc2_step_success 
+00fe 70494201 jam 1 ,mem_24g_keyboard_bind_enable 
+00ff 202023b4 branch g24_bind_dvc2_step_success 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/program/patch.prog	(revision 3059)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/program/patch.prog	(working copy)
@@ -123,10 +123,35 @@
 p_dongle_work_mode_auto:
 	fetch 1,mem_24g_work_mode
 	rtnne DONGLE_WORK
-	call g24_work_mode_start
+	call p_g24_work_mode_start
 	call p_dongle_g24_blank_data_process
 	branch dongle_work_mode_auto+5
 
+p_g24_work_mode_start:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call p_g24_work_init
+	call g24_ch_process
+	branch g24_receive_packet_start
+
+p_g24_work_init:
+	fetch 1,mem_24g_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_24g_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	setarg 0x0f0f
+	store 2,mem_24g_addr
+	store 2,mem_24g_addr+2
+	call g24_syncword_crc8
+	call g24_ch
+	branch g24_rx_interrupt_clear
+
 p_dongle_g24_blank_data_process:
 	call dongle_g24_ms_blank_data
 	call p_dongle_g24_kb_blank_data
