Index: format/usb.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/format/usb.format	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/format/usb.format	(working copy)
@@ -85,7 +85,7 @@
 64 mem_usb_ep3_in_data
 64 mem_usb_ep3_out_data
 0 mem_usb_clear_mem_end
-
+64 mem_config_new
 )
 
 //class type
Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(revision 1067)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-b6
+c6
 04
 c2
 84
@@ -43,11 +43,11 @@
 c0
 65
 80
-bd
+c6
 c0
 67
 80
-9c
+a1
 20
 20
 3a
@@ -59,15 +59,15 @@
 c0
 23
 80
-f4
+f8
 c0
 24
 80
-fa
+fe
 c0
 26
 80
-d7
+db
 c0
 27
 80
@@ -75,7 +75,7 @@
 c0
 28
 00
-cc
+d0
 20
 20
 3a
@@ -551,7 +551,7 @@
 58
 00
 01
-19
+1d
 67
 e1
 45
@@ -568,10 +568,30 @@
 06
 2e
 00
-70
+6f
+e0
+89
+00
+67
+e0
+86
+30
+1f
+e2
+72
+00
+d8
+c0
+09
+01
+d8
+a0
 06
-4a
-a3
+31
+20
+40
+74
+19
 70
 8c
 00
@@ -607,7 +627,7 @@
 58
 00
 0d
-00
+40
 67
 f1
 0c
@@ -619,7 +639,7 @@
 58
 00
 0d
-44
+84
 67
 f1
 0c
@@ -683,7 +703,7 @@
 20
 40
 00
-ab
+b0
 20
 20
 73
@@ -693,8 +713,8 @@
 8c
 24
 c3
-81
-00
+80
+80
 00
 6f
 e0
@@ -727,7 +747,7 @@
 c0
 10
 00
-b8
+bd
 c0
 10
 f3
@@ -746,8 +766,8 @@
 9b
 20
 3a
-73
-73
+00
+c2
 6f
 e0
 87
@@ -758,8 +778,24 @@
 64
 20
 20
+00
+c2
+70
+07
+aa
+00
+df
+20
+00
+08
+d8
+c0
+07
+b1
+20
+20
 73
-73
+0a
 6f
 e0
 87
@@ -770,12 +806,12 @@
 45
 c0
 10
-80
-c7
+f1
+37
 c0
 11
 00
-c2
+cb
 20
 20
 71
@@ -802,26 +838,6 @@
 11
 6f
 e0
-87
-0f
-c0
-00
-71
-3f
-c0
-00
-f1
-3f
-c0
-01
-71
-42
-20
-20
-71
-11
-6f
-e0
 c5
 61
 c1
@@ -831,7 +847,7 @@
 20
 40
 00
-d0
+d4
 20
 20
 4b
@@ -999,7 +1015,7 @@
 c0
 7f
 81
-0f
+13
 20
 60
 00
@@ -1010,8 +1026,8 @@
 35
 c0
 00
-80
-ff
+81
+03
 c0
 01
 4a
@@ -1019,7 +1035,7 @@
 c0
 7f
 81
-0d
+11
 20
 20
 4a
@@ -1055,7 +1071,7 @@
 c0
 00
 81
-08
+0c
 20
 20
 4a
@@ -1087,7 +1103,7 @@
 20
 20
 01
-0f
+13
 6f
 e0
 c5
@@ -1095,11 +1111,11 @@
 c0
 00
 81
-13
+17
 c0
 01
 01
-16
+1a
 20
 60
 00
@@ -1135,11 +1151,11 @@
 c0
 00
 81
-1c
+20
 c0
 01
 01
-1f
+23
 6f
 e0
 c5
@@ -1151,7 +1167,7 @@
 20
 20
 01
-21
+25
 6f
 e0
 c5
@@ -1167,11 +1183,11 @@
 c0
 00
 81
-25
+29
 c0
 01
 81
-29
+2d
 20
 60
 00
@@ -1199,17 +1215,17 @@
 c0
 00
 81
-25
+29
 c0
 7f
 81
-25
+29
 20
 20
 51
 af
-aa
-2b
+ab
+e8
 aa
 55
 40
@@ -1359,6 +1375,47 @@
 00
 aa
 55
+23
+00
+00
+09
+22
+09
+02
+22
+00
+01
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+a3
+00
+07
+05
+81
+03
+40
+00
+02
+aa
+55
 09
 00
 f9
@@ -1515,7 +1572,7 @@
 aa
 aa
 55
-43
-48
-2d
-a7
+69
+4c
+db
+aa
Index: output/memmap.format
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/memmap.format	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/memmap.format	(working copy)
@@ -316,17 +316,18 @@
 0x0880 mem_usb_ep3_in_data
 0x08c0 mem_usb_ep3_out_data
 0x0900 mem_usb_clear_mem_end
-0x0900 mem_dg_rssi_noise_buffer
-0x0a00 mem_dg_rssi_noise_dg_buffer
-0x0b00 mem_dg_rssi_noise_ms_buffer
-0x0c00 mem_dg_rssi_noise_kb_buffer
-0x0d00 mem_usb_rxbuf_new//at least 68B
-0x0d44 mem_usb_rxbuf_new_end
-0x0900 mem_init_cnt
-0x0902 mem_data_pre
-0x0904 mem_data_current
-0x0906 mem_data_sum
-0x0909 mem_data_value
+0x0900 mem_config_new
+0x0940 mem_dg_rssi_noise_buffer
+0x0a40 mem_dg_rssi_noise_dg_buffer
+0x0b40 mem_dg_rssi_noise_ms_buffer
+0x0c40 mem_dg_rssi_noise_kb_buffer
+0x0d40 mem_usb_rxbuf_new//at least 68B
+0x0d84 mem_usb_rxbuf_new_end
+0x0940 mem_init_cnt
+0x0942 mem_data_pre
+0x0944 mem_data_current
+0x0946 mem_data_sum
+0x0949 mem_data_value
 
 0x019a mem_le_new_param
 0x019a mem_le_new_transmitwindowsize
Index: output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(revision 1067)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(working copy)
@@ -9,17 +9,17 @@
 0006 c0188033 beq patch06_1 ,p_dongle_write_kb_bind_status 
 0007 c0380070 beq patch0e_0 ,p_dongle_init 
 0008 c0618088 beq patch18_3 ,p_usb_init 
-0009 c06580bd beq patch19_3 ,p_usb0_request_get_descriptor 
-000a c067809c beq patch19_7 ,p_usb_tx 
+0009 c06580c6 beq patch19_3 ,p_usb0_request_get_descriptor 
+000a c06780a1 beq patch19_7 ,p_usb_tx 
 000b 20203a8a branch assert 
 
 pf_patch_ext:
 000c c17f8000 rtneq patch3f_7 
-000d c02380f4 beq patch28_7 ,p_g24_bind_data_parse_next 
-000e c02480fa beq patch29_1 ,p_g24_receive_packet_start_next 
-000f c02680d7 beq patch29_5 ,p_g24_mode_switch_bind_search 
+000d c02380f8 beq patch28_7 ,p_g24_bind_data_parse_next 
+000e c02480fe beq patch29_1 ,p_g24_receive_packet_start_next 
+000f c02680db beq patch29_5 ,p_g24_mode_switch_bind_search 
 0010 c027803b beq patch29_7 ,p_g24_bind_mode_auto 
-0011 c02800cc beq patch2a_0 ,p_g24_search_mode_auto 
+0011 c02800d0 beq patch2a_0 ,p_g24_search_mode_auto 
 0012 20203a8a branch assert 
 
 p_initialize_radio_cont:
@@ -184,217 +184,223 @@
 0087 20600000 rtn 
 
 p_usb_init:
-0088 58000119 setarg p_dongle_ackpayload_prep 
+0088 5800011d setarg p_dongle_ackpayload_prep 
 0089 67e1452d store 2 ,mem_cb_24g_ackpayload 
 008a 20406eb3 call enable_authrom 
 008b 20407056 call usb_init_param 
 008c 70062e00 jam 0x00 ,0x62e 
-008d 70064aa3 jam 0xa3 ,0x64a 
-008e 708c0000 jam 0x00 ,core_usb_config 
-008f 20002710 nop 10000 
-0090 708c1800 jam 0x00 ,core_usb_trig 
-0091 6ff10050 fetch 2 ,core_clkoff 
-0092 793ffe0a set0 clock_off_usb ,pdata 
-0093 67f10050 store 2 ,core_clkoff 
-0094 708c1100 jam 0x00 ,core_usb_hmode 
-0095 708c003c jam 0x3c ,core_usb_config 
-0096 58000d00 setarg mem_usb_rxbuf_new 
-0097 67f10c03 store 2 ,core_usb_rx_saddr 
-0098 67f10c07 store 2 ,core_usb_rxptr 
-0099 58000d44 setarg mem_usb_rxbuf_new_end 
-009a 67f10c05 store 2 ,core_usb_rx_eaddr 
-009b 2020704f branch usb_init + 16 
+008d 6fe08900 fetch 1 ,mem_config_new 
+008e 67e08630 store 1 ,mem_confdesc 
+008f 1fe27200 copy pdata ,loopcnt 
+0090 d8c00901 arg mem_config_new + 1 ,contr 
+0091 d8a00631 arg mem_confdesc + 1 ,contw 
+0092 20407419 call memcpy 
+0093 708c0000 jam 0x00 ,core_usb_config 
+0094 20002710 nop 10000 
+0095 708c1800 jam 0x00 ,core_usb_trig 
+0096 6ff10050 fetch 2 ,core_clkoff 
+0097 793ffe0a set0 clock_off_usb ,pdata 
+0098 67f10050 store 2 ,core_clkoff 
+0099 708c1100 jam 0x00 ,core_usb_hmode 
+009a 708c003c jam 0x3c ,core_usb_config 
+009b 58000d40 setarg mem_usb_rxbuf_new 
+009c 67f10c03 store 2 ,core_usb_rx_saddr 
+009d 67f10c07 store 2 ,core_usb_rxptr 
+009e 58000d84 setarg mem_usb_rxbuf_new_end 
+009f 67f10c05 store 2 ,core_usb_rx_eaddr 
+00a0 2020704f branch usb_init + 16 
 
 p_usb_tx:
-009c 6fe087ab fetch 1 ,mem_usb_tx_enable 
-009d 207a0000 rtn blank 
-009e 6ff08c24 fetch 1 ,core_usb_txbusy 
-009f 1fe17e0f and_into 0x0f ,pdata 
-00a0 243a7383 nbranch usb_inwake_state_tx_dispose ,blank 
-00a1 6fe087ac fetch 1 ,mem_usb_device_enumeration_endflag 
-00a2 203a7356 branch usb_tx_fifo_release ,blank 
-00a3 6fe0879e fetch 1 ,mem_usb_state 
-00a4 c001f393 beq usb_sleep ,usb_windows_wakeup 
-00a5 c0817356 bne usb_connected ,usb_tx_fifo_release 
-00a6 6fe087a0 fetch 1 ,mem_usb_clear_remote_wakeup 
-00a7 243a7356 nbranch usb_tx_fifo_release ,blank 
-00a8 2040732a call usb_tx_data_ep1 
-00a9 204000ab call p_usb_tx_data_ep2 
-00aa 20207342 branch usb_tx_data_ep3 
+00a1 6fe087ab fetch 1 ,mem_usb_tx_enable 
+00a2 207a0000 rtn blank 
+00a3 6ff08c24 fetch 1 ,core_usb_txbusy 
+00a4 1fe17e0f and_into 0x0f ,pdata 
+00a5 243a7383 nbranch usb_inwake_state_tx_dispose ,blank 
+00a6 6fe087ac fetch 1 ,mem_usb_device_enumeration_endflag 
+00a7 203a7356 branch usb_tx_fifo_release ,blank 
+00a8 6fe0879e fetch 1 ,mem_usb_state 
+00a9 c001f393 beq usb_sleep ,usb_windows_wakeup 
+00aa c0817356 bne usb_connected ,usb_tx_fifo_release 
+00ab 6fe087a0 fetch 1 ,mem_usb_clear_remote_wakeup 
+00ac 243a7356 nbranch usb_tx_fifo_release ,blank 
+00ad 2040732a call usb_tx_data_ep1 
+00ae 204000b0 call p_usb_tx_data_ep2 
+00af 20207342 branch usb_tx_data_ep3 
 
 p_usb_tx_data_ep2:
-00ab 6ff08c24 fetch 1 ,core_usb_txbusy 
-00ac c3810000 rtnbit1 2 
-00ad 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00ae c4010000 rtnbit0 2 
-00af 6fe087ab fetch 1 ,mem_usb_tx_enable 
-00b0 793ffe02 set0 2 ,pdata 
-00b1 67e087ab store 1 ,mem_usb_tx_enable 
-00b2 6fe087aa fetch 1 ,mem_usb_ep2_data 
-00b3 207a0000 rtn blank 
-00b4 c01000b8 beq usb_ep2_ms ,p_usb_tx_ms_data 
-00b5 c010f377 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
-00b6 c011737f beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
-00b7 20203a8a branch assert 
+00b0 6ff08c24 fetch 1 ,core_usb_txbusy 
+00b1 c3808000 rtnbit1 1 
+00b2 6fe087ab fetch 1 ,mem_usb_tx_enable 
+00b3 c4010000 rtnbit0 2 
+00b4 6fe087ab fetch 1 ,mem_usb_tx_enable 
+00b5 793ffe02 set0 2 ,pdata 
+00b6 67e087ab store 1 ,mem_usb_tx_enable 
+00b7 6fe087aa fetch 1 ,mem_usb_ep2_data 
+00b8 207a0000 rtn blank 
+00b9 c01000bd beq usb_ep2_ms ,p_usb_tx_ms_data 
+00ba c010f377 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+00bb c011737f beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+00bc 20203a8a branch assert 
 
 p_usb_tx_ms_data:
-00b8 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
-00b9 203a7373 branch usb_tx_ms_data_normal_mode ,blank 
-00ba 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
-00bb 203a7364 branch usb_tx_ms_data_mac_boot_mode ,blank 
-00bc 20207373 branch usb_tx_ms_data_normal_mode 
+00bd 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
+00be 203a00c2 branch p_usb_tx_ms_data_normal_mode ,blank 
+00bf 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
+00c0 203a7364 branch usb_tx_ms_data_mac_boot_mode ,blank 
+00c1 202000c2 branch p_usb_tx_ms_data_normal_mode 
+
+p_usb_tx_ms_data_normal_mode:
+00c2 7007aa00 jam 0 ,mem_usb_ep2_data 
+
+p_usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+00c3 df200008 arg 8 ,loopcnt 
+00c4 d8c007b1 arg mem_usb_mouse_data ,contr 
+00c5 2020730a branch usb_tx_ep1 
 
 p_usb0_request_get_descriptor:
-00bd 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
-00be c000f145 beq dsc_device ,dsc_device_info 
-00bf c01080c7 beq dsc_hid ,p_dsc_hid_info 
-00c0 c01100c2 beq dsc_hid_report ,p_dsc_hid_report_info 
-00c1 20207130 branch usb0_request_get_descriptor + 2 
+00c6 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
+00c7 c000f145 beq dsc_device ,dsc_device_info 
+00c8 c010f137 beq dsc_hid ,dsc_hid_info + 1 
+00c9 c01100cb beq dsc_hid_report ,p_dsc_hid_report_info 
+00ca 20207130 branch usb0_request_get_descriptor + 2 
 
 p_dsc_hid_report_info:
-00c2 6fe1070f fetch 2 ,mem_usb_setup_windex 
-00c3 c0007176 beq 0 ,dsc_hid_report_info1 
-00c4 c000f176 beq 1 ,dsc_hid_report_info1 
-00c5 c001717a beq 2 ,dsc_hid_report_info2 
-00c6 20207111 branch usb0_force_stall 
-
-p_dsc_hid_info:
-00c7 6fe0870f fetch 1 ,mem_usb_setup_windex 
-00c8 c000713f beq 0 ,dsc_hid_info_interface1 
-00c9 c000f13f beq 1 ,dsc_hid_info_interface1 
-00ca c0017142 beq 2 ,dsc_hid_info_interface2 
-00cb 20207111 branch usb0_force_stall 
+00cb 6fe1070f fetch 2 ,mem_usb_setup_windex 
+00cc c0007176 beq 0 ,dsc_hid_report_info1 
+00cd c000f176 beq 1 ,dsc_hid_report_info1 
+00ce c001717a beq 2 ,dsc_hid_report_info2 
+00cf 20207111 branch usb0_force_stall 
 
 p_g24_search_mode_auto:
-00cc 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00cd c1838000 rtnne dongle_search 
-00ce 204000d0 call p_g24_search_mode_init 
-00cf 20204b00 branch g24_search_mode_auto + 4 
+00d0 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00d1 c1838000 rtnne dongle_search 
+00d2 204000d4 call p_g24_search_mode_init 
+00d3 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00d0 6fe0c560 fetch 1 ,mem_24g_mode_init 
-00d1 c3838000 rtnbit1 dongle_search 
-00d2 79207e07 set1 dongle_search ,pdata 
-00d3 67e0c560 store 1 ,mem_24g_mode_init 
-00d4 6fe0c56e fetch 1 ,mem_tx_power_temp 
-00d5 67e0c116 store 1 ,mem_tx_power 
-00d6 20204af0 branch g24_search_mode_init + 4 
+00d4 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00d5 c3838000 rtnbit1 dongle_search 
+00d6 79207e07 set1 dongle_search ,pdata 
+00d7 67e0c560 store 1 ,mem_24g_mode_init 
+00d8 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00d9 67e0c116 store 1 ,mem_tx_power 
+00da 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-00d7 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00d8 c1000000 rtneq dongle_work 
-00d9 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-00da 247a0000 nrtn blank 
-00db 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
-00dc 247a0000 nrtn blank 
-00dd 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-00de 207a0000 rtn blank 
-00df 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-00e0 c1800000 rtnne 0 
-00e1 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
-00e2 c1800000 rtnne 0 
-00e3 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-00e4 2fe00603 compare 3 ,pdata ,3 
-00e5 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-00e6 204048be call g24_timer_check 
-00e7 24740000 nrtn user 
-00e8 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-00e9 1fe0fe01 increase 1 ,pdata 
-00ea 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-00eb d84007d0 arg 0x7d0 ,temp 
-00ec 98467c00 isub temp ,null 
-00ed 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-00ee 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-00ef 1fe0fe01 increase 1 ,pdata 
-00f0 1fe17e01 and_into 1 ,pdata 
-00f1 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-00f2 c0004b88 beq 0 ,g24_search_mode_enable 
-00f3 20204abc branch g24_mode_switch_bind_search_next + 1 
+00db 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00dc c1000000 rtneq dongle_work 
+00dd 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+00de 247a0000 nrtn blank 
+00df 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00e0 247a0000 nrtn blank 
+00e1 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00e2 207a0000 rtn blank 
+00e3 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
+00e4 c1800000 rtnne 0 
+00e5 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00e6 c1800000 rtnne 0 
+00e7 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00e8 2fe00603 compare 3 ,pdata ,3 
+00e9 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00ea 204048be call g24_timer_check 
+00eb 24740000 nrtn user 
+00ec 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+00ed 1fe0fe01 increase 1 ,pdata 
+00ee 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+00ef d84007d0 arg 0x7d0 ,temp 
+00f0 98467c00 isub temp ,null 
+00f1 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+00f2 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+00f3 1fe0fe01 increase 1 ,pdata 
+00f4 1fe17e01 and_into 1 ,pdata 
+00f5 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+00f6 c0004b88 beq 0 ,g24_search_mode_enable 
+00f7 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-00f4 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00f5 c05549a2 beq datatype_bind ,g24_bind_first_step 
-00f6 c02ac9b3 beq datatype_config ,g24_bind_second_step 
-00f7 c01149d4 beq datatype_ok ,g24_bind_third_step 
-00f8 c07f810f beq datatype_attemp ,p_g24_data_attemp 
-00f9 20600000 rtn 
+00f8 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00f9 c05549a2 beq datatype_bind ,g24_bind_first_step 
+00fa c02ac9b3 beq datatype_config ,g24_bind_second_step 
+00fb c01149d4 beq datatype_ok ,g24_bind_third_step 
+00fc c07f8113 beq datatype_attemp ,p_g24_data_attemp 
+00fd 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-00fa 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-00fb c00080ff beq datatype_device1 ,p_g24_data_device1 
-00fc c0014a4e beq datatype_device2 ,g24_data_device2 
-00fd c07f810d beq datatype_attemp ,p_g24_data_receive_attemp 
-00fe 20204a39 branch g24_rx_interrupt_clear 
+00fe 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ff c0008103 beq datatype_device1 ,p_g24_data_device1 
+0100 c0014a4e beq datatype_device2 ,g24_data_device2 
+0101 c07f8111 beq datatype_attemp ,p_g24_data_receive_attemp 
+0102 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-00ff 20404a08 call g24_binding_dvc1_living 
-0100 20404ba2 call g24_ch_timer_reinit 
-0101 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-0102 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-0103 284ffe03 isolate1 bit_abort ,temp 
-0104 7920fe00 setflag true ,0 ,pdata 
-0105 67e0c555 store 1 ,mem_24g_abort_packet 
-0106 c0008108 beq 1 ,p_g24_data_attemp_device1_abort 
-0107 20204a47 branch g24_data_device1 + 8 
+0103 20404a08 call g24_binding_dvc1_living 
+0104 20404ba2 call g24_ch_timer_reinit 
+0105 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+0106 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+0107 284ffe03 isolate1 bit_abort ,temp 
+0108 7920fe00 setflag true ,0 ,pdata 
+0109 67e0c555 store 1 ,mem_24g_abort_packet 
+010a c000810c beq 1 ,p_g24_data_attemp_device1_abort 
+010b 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-0108 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-0109 247a0000 nrtn blank 
-010a 70452901 jam 1 ,mem_24g_device1_bind_disable 
-010b 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-010c 20204c14 branch g24_store_device1_addr 
+010c 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+010d 247a0000 nrtn blank 
+010e 70452901 jam 1 ,mem_24g_device1_bind_disable 
+010f 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+0110 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-010d 20404a16 call g24_bind_device_status 
-010e 2020010f branch p_g24_data_attemp 
+0111 20404a16 call g24_bind_device_status 
+0112 20200113 branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-010f 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-0110 c0008113 beq datatype_device1 ,p_g24_data_attemp_device1 
-0111 c0010116 beq datatype_device2 ,p_g24_data_attemp_device2 
-0112 20600000 rtn 
+0113 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+0114 c0008117 beq datatype_device1 ,p_g24_data_attemp_device1 
+0115 c001011a beq datatype_device2 ,p_g24_data_attemp_device2 
+0116 20600000 rtn 
 
 p_g24_data_attemp_device1:
-0113 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-0114 247a0000 nrtn blank 
-0115 20204c12 branch g24_data_attemp_device1 
+0117 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0118 247a0000 nrtn blank 
+0119 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-0116 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-0117 247a0000 nrtn blank 
-0118 20204c16 branch g24_data_attemp_device2 
+011a 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+011b 247a0000 nrtn blank 
+011c 20204c16 branch g24_data_attemp_device2 
 
 p_dongle_ackpayload_prep:
-0119 6fe0c4d4 fetch 1 ,mem_24g_data_type 
-011a c000811c beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-011b c001011f beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+011d 6fe0c4d4 fetch 1 ,mem_24g_data_type 
+011e c0008120 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+011f c0010123 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_mouse:
-011c 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-011d c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-011e 20200121 branch p_dongle_ackpayload_prep_end 
+0120 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+0121 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0122 20200125 branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_keyboard:
-011f 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0120 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+0123 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+0124 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_end:
-0121 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
-0122 c0008125 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-0123 c0018129 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-0124 20600000 rtn 
+0125 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
+0126 c0008129 beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
+0127 c001812d beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+0128 20600000 rtn 
 
 p_dongle_g24_bind_ackpayload_prep:
-0125 70455c01 jam 1 ,mem_24g_ackpayload_enable 
-0126 6fe0c561 fetch 1 ,mem_24g_work_mode 
-0127 c1000000 rtneq dongle_work 
-0128 202051a8 branch dongle_g24_bind_ackpayload_prep 
+0129 70455c01 jam 1 ,mem_24g_ackpayload_enable 
+012a 6fe0c561 fetch 1 ,mem_24g_work_mode 
+012b c1000000 rtneq dongle_work 
+012c 202051a8 branch dongle_g24_bind_ackpayload_prep 
 
 p_dongle_g24_kb_led_ackpayload_prep:
-0129 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
-012a c0008125 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-012b c07f8125 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-012c 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
+012d 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
+012e c0008129 beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
+012f c07f8129 beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
+0130 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
               org 0x3800
 
 start:
@@ -13106,22 +13112,22 @@
 mouse_drawing_optima_modify:
 5cca 20405cde call mouse_drawing_optima_xy_offset_modify 
 5ccb 6fe14677 fetch 2 ,mem_mouse_x_pre 
-5ccc 67e10902 store 2 ,mem_data_pre 
+5ccc 67e10942 store 2 ,mem_data_pre 
 5ccd 6fe14579 fetch 2 ,mem_mouse_x 
-5cce 67e10904 store 2 ,mem_data_current 
+5cce 67e10944 store 2 ,mem_data_current 
 5ccf 20405d17 call mouse_drawing_optima_data_x 
-5cd0 6fe10902 fetch 2 ,mem_data_pre 
+5cd0 6fe10942 fetch 2 ,mem_data_pre 
 5cd1 67e14677 store 2 ,mem_mouse_x_pre 
-5cd2 6fe10904 fetch 2 ,mem_data_current 
+5cd2 6fe10944 fetch 2 ,mem_data_current 
 5cd3 67e14579 store 2 ,mem_mouse_x 
 5cd4 6fe14679 fetch 2 ,mem_mouse_y_pre 
-5cd5 67e10902 store 2 ,mem_data_pre 
+5cd5 67e10942 store 2 ,mem_data_pre 
 5cd6 6fe1457b fetch 2 ,mem_mouse_y 
-5cd7 67e10904 store 2 ,mem_data_current 
+5cd7 67e10944 store 2 ,mem_data_current 
 5cd8 20405d1f call mouse_drawing_optima_data_y 
-5cd9 6fe10902 fetch 2 ,mem_data_pre 
+5cd9 6fe10942 fetch 2 ,mem_data_pre 
 5cda 67e14679 store 2 ,mem_mouse_y_pre 
-5cdb 6fe10904 fetch 2 ,mem_data_current 
+5cdb 6fe10944 fetch 2 ,mem_data_current 
 5cdc 67e1457b store 2 ,mem_mouse_y 
 5cdd 20600000 rtn 
 
@@ -13130,39 +13136,39 @@
 5cdf c41c8000 rtnbit0 mouse_enable_xy_offset 
 5ce0 44ac400b bpatch patch0b_0 ,mem_patch0b 
 5ce1 6fe14677 fetch 2 ,mem_mouse_x_pre 
-5ce2 67e10909 store 2 ,mem_data_value 
+5ce2 67e10949 store 2 ,mem_data_value 
 5ce3 20405cf2 call mouse_pre_xy_data_judge 
 5ce4 67e14677 store 2 ,mem_mouse_x_pre 
 5ce5 6fe14579 fetch 2 ,mem_mouse_x 
-5ce6 67e10909 store 2 ,mem_data_value 
+5ce6 67e10949 store 2 ,mem_data_value 
 5ce7 20405d00 call mouse_current_xy_data_judge 
 5ce8 67e14579 store 2 ,mem_mouse_x 
 5ce9 6fe14679 fetch 2 ,mem_mouse_y_pre 
-5cea 67e10909 store 2 ,mem_data_value 
+5cea 67e10949 store 2 ,mem_data_value 
 5ceb 20405cf2 call mouse_pre_xy_data_judge 
 5cec 67e14679 store 2 ,mem_mouse_y_pre 
 5ced 6fe1457b fetch 2 ,mem_mouse_y 
-5cee 67e10909 store 2 ,mem_data_value 
+5cee 67e10949 store 2 ,mem_data_value 
 5cef 20405d00 call mouse_current_xy_data_judge 
 5cf0 67e1457b store 2 ,mem_mouse_y 
 5cf1 20600000 rtn 
 
 mouse_pre_xy_data_judge:
-5cf2 6fe0890a fetch 1 ,mem_data_value + 1 
+5cf2 6fe0894a fetch 1 ,mem_data_value + 1 
 5cf3 203a5cf5 branch mouse_pre_xy_pdata_offset ,blank 
 5cf4 20205cfa branch mouse_pre_xy_ndata_offset 
 
 mouse_pre_xy_pdata_offset:
-5cf5 6fe08909 fetch 1 ,mem_data_value 
+5cf5 6fe08949 fetch 1 ,mem_data_value 
 5cf6 20405d0d call mouse_pre_xy_get_0_4_times 
-5cf7 67e08909 store 1 ,mem_data_value 
+5cf7 67e08949 store 1 ,mem_data_value 
 
 mouse_xy_data_offset_new:
-5cf8 6fe10909 fetch 2 ,mem_data_value 
+5cf8 6fe10949 fetch 2 ,mem_data_value 
 5cf9 20600000 rtn 
 
 mouse_pre_xy_ndata_offset:
-5cfa 6fe08909 fetch 1 ,mem_data_value 
+5cfa 6fe08949 fetch 1 ,mem_data_value 
 5cfb 20405d49 call mouse_pdata_invert 
 5cfc 20405d0d call mouse_pre_xy_get_0_4_times 
 5cfd 205a74d6 call disable_blank ,blank 
@@ -13170,18 +13176,18 @@
 5cff 20205cf8 branch mouse_xy_data_offset_new 
 
 mouse_current_xy_data_judge:
-5d00 6fe0890a fetch 1 ,mem_data_value + 1 
+5d00 6fe0894a fetch 1 ,mem_data_value + 1 
 5d01 203a5d03 branch mouse_current_xy_pdata_offset ,blank 
 5d02 20205d07 branch mouse_current_xy_ndata_offset 
 
 mouse_current_xy_pdata_offset:
-5d03 6fe08909 fetch 1 ,mem_data_value 
+5d03 6fe08949 fetch 1 ,mem_data_value 
 5d04 20405d12 call mouse_current_xy_get_0_6_times 
-5d05 67e08909 store 1 ,mem_data_value 
+5d05 67e08949 store 1 ,mem_data_value 
 5d06 20205cf8 branch mouse_xy_data_offset_new 
 
 mouse_current_xy_ndata_offset:
-5d07 6fe08909 fetch 1 ,mem_data_value 
+5d07 6fe08949 fetch 1 ,mem_data_value 
 5d08 20405d49 call mouse_pdata_invert 
 5d09 20405d12 call mouse_current_xy_get_0_6_times 
 5d0a 205a74d6 call disable_blank ,blank 
@@ -13203,8 +13209,8 @@
 5d16 20600000 rtn 
 
 mouse_drawing_optima_data_x:
-5d17 6fe10902 fetch 2 ,mem_data_pre 
-5d18 68490904 fetcht 2 ,mem_data_current 
+5d17 6fe10942 fetch 2 ,mem_data_pre 
+5d18 68490944 fetcht 2 ,mem_data_current 
 5d19 9840fe00 iadd temp ,pdata 
 5d1a 6848c67b fetcht 1 ,mem_mouse_data_xtemp 
 5d1b 9840fe00 iadd temp ,pdata 
@@ -13213,8 +13219,8 @@
 5d1e 20205d27 branch mouse_drawing_optima_data 
 
 mouse_drawing_optima_data_y:
-5d1f 6fe10902 fetch 2 ,mem_data_pre 
-5d20 68490904 fetcht 2 ,mem_data_current 
+5d1f 6fe10942 fetch 2 ,mem_data_pre 
+5d20 68490944 fetcht 2 ,mem_data_current 
 5d21 9840fe00 iadd temp ,pdata 
 5d22 6848c67c fetcht 1 ,mem_mouse_data_ytemp 
 5d23 9840fe00 iadd temp ,pdata 
@@ -13223,41 +13229,41 @@
 5d26 20205d27 branch mouse_drawing_optima_data 
 
 mouse_drawing_optima_data:
-5d27 67e18906 store 3 ,mem_data_sum 
+5d27 67e18946 store 3 ,mem_data_sum 
 5d28 2feffe10 isolate1 16 ,pdata 
 5d29 2020dd31 branch mouse_data_sum_overflow ,true 
-5d2a 6fe08907 fetch 1 ,mem_data_sum + 1 
+5d2a 6fe08947 fetch 1 ,mem_data_sum + 1 
 5d2b c07fdd38 beq 0xff ,mouse_data_sum_n 
-5d2c 6fe08906 fetch 1 ,mem_data_sum 
+5d2c 6fe08946 fetch 1 ,mem_data_sum 
 
 mouse_data_store_pre:
 5d2d 1fe37e00 rshift pdata ,pdata 
-5d2e 67e10902 store 2 ,mem_data_pre 
-5d2f 67e10904 store 2 ,mem_data_current 
+5d2e 67e10942 store 2 ,mem_data_pre 
+5d2f 67e10944 store 2 ,mem_data_current 
 5d30 20600000 rtn 
 
 mouse_data_sum_overflow:
-5d31 6fe08907 fetch 1 ,mem_data_sum + 1 
+5d31 6fe08947 fetch 1 ,mem_data_sum + 1 
 5d32 c0005d35 beq 0 ,mouse_data_sum_overflow_p 
-5d33 6fe18906 fetch 3 ,mem_data_sum 
+5d33 6fe18946 fetch 3 ,mem_data_sum 
 5d34 20205d2d branch mouse_data_store_pre 
 
 mouse_data_sum_overflow_p:
-5d35 70090800 jam 0 ,mem_data_sum + 2 
-5d36 6fe08906 fetch 1 ,mem_data_sum 
+5d35 70094800 jam 0 ,mem_data_sum + 2 
+5d36 6fe08946 fetch 1 ,mem_data_sum 
 5d37 20205d2d branch mouse_data_store_pre 
 
 mouse_data_sum_n:
-5d38 6fe08906 fetch 1 ,mem_data_sum 
+5d38 6fe08946 fetch 1 ,mem_data_sum 
 5d39 20405d43 call mouse_pdata_get_half 
-5d3a 67e08902 store 1 ,mem_data_pre 
-5d3b 67e08904 store 1 ,mem_data_current 
+5d3a 67e08942 store 1 ,mem_data_pre 
+5d3b 67e08944 store 1 ,mem_data_current 
 5d3c 203a5d41 branch mouse_data_zero ,blank 
 5d3d 580000ff setarg 0xff 
 
 mouse_data_set_direction:
-5d3e 67e08903 store 1 ,mem_data_pre + 1 
-5d3f 67e08905 store 1 ,mem_data_current + 1 
+5d3e 67e08943 store 1 ,mem_data_pre + 1 
+5d3f 67e08945 store 1 ,mem_data_current + 1 
 5d40 20600000 rtn 
 
 mouse_data_zero:
@@ -13271,7 +13277,7 @@
 mouse_pdata_get_new_value:
 5d45 20405d4a call mouse_rega_in_out 
 5d46 1fe67e00 sub pdata ,0 ,pdata 
-5d47 67e08909 store 1 ,mem_data_value 
+5d47 67e08949 store 1 ,mem_data_value 
 5d48 20600000 rtn 
 
 mouse_pdata_invert:
@@ -13314,17 +13320,17 @@
 5d61 20600000 rtn 
 
 mouse_data_abs:
-5d62 67e10904 store 2 ,mem_data_current 
-5d63 6fe08905 fetch 1 ,mem_data_current + 1 
+5d62 67e10944 store 2 ,mem_data_current 
+5d63 6fe08945 fetch 1 ,mem_data_current + 1 
 5d64 c07fdd68 beq 0xff ,mouse_data_reversal 
-5d65 6fe08904 fetch 1 ,mem_data_current 
+5d65 6fe08944 fetch 1 ,mem_data_current 
 
 mouse_data_abs_store:
 5d66 1fe17eff and_into 0xff ,pdata 
 5d67 20600000 rtn 
 
 mouse_data_reversal:
-5d68 6fe10904 fetch 2 ,mem_data_current 
+5d68 6fe10944 fetch 2 ,mem_data_current 
 5d69 1fe67e00 sub pdata ,0 ,pdata 
 5d6a 20205d66 branch mouse_data_abs_store 
 
Index: output/romcode.rom
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/romcode.rom	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/romcode.rom	(working copy)
@@ -9418,66 +9418,66 @@
 202073ec
 20405cde
 6fe14677
-67e10902
+67e10942
 6fe14579
-67e10904
+67e10944
 20405d17
-6fe10902
+6fe10942
 67e14677
-6fe10904
+6fe10944
 67e14579
 6fe14679
-67e10902
+67e10942
 6fe1457b
-67e10904
+67e10944
 20405d1f
-6fe10902
+6fe10942
 67e14679
-6fe10904
+6fe10944
 67e1457b
 20600000
 6fe44864
 c41c8000
 44ac400b
 6fe14677
-67e10909
+67e10949
 20405cf2
 67e14677
 6fe14579
-67e10909
+67e10949
 20405d00
 67e14579
 6fe14679
-67e10909
+67e10949
 20405cf2
 67e14679
 6fe1457b
-67e10909
+67e10949
 20405d00
 67e1457b
 20600000
-6fe0890a
+6fe0894a
 203a5cf5
 20205cfa
-6fe08909
+6fe08949
 20405d0d
-67e08909
-6fe10909
+67e08949
+6fe10949
 20600000
-6fe08909
+6fe08949
 20405d49
 20405d0d
 205a74d6
 20405d45
 20205cf8
-6fe0890a
+6fe0894a
 203a5d03
 20205d07
-6fe08909
+6fe08949
 20405d12
-67e08909
+67e08949
 20205cf8
-6fe08909
+6fe08949
 20405d49
 20405d12
 205a74d6
@@ -9493,47 +9493,47 @@
 20407475
 1807fe00
 20600000
-6fe10902
-68490904
+6fe10942
+68490944
 9840fe00
 6848c67b
 9840fe00
 1fe10401
 6048c67b
 20205d27
-6fe10902
-68490904
+6fe10942
+68490944
 9840fe00
 6848c67c
 9840fe00
 1fe10401
 6048c67c
 20205d27
-67e18906
+67e18946
 2feffe10
 2020dd31
-6fe08907
+6fe08947
 c07fdd38
-6fe08906
+6fe08946
 1fe37e00
-67e10902
-67e10904
+67e10942
+67e10944
 20600000
-6fe08907
+6fe08947
 c0005d35
-6fe18906
+6fe18946
 20205d2d
-70090800
-6fe08906
+70094800
+6fe08946
 20205d2d
-6fe08906
+6fe08946
 20405d43
-67e08902
-67e08904
+67e08942
+67e08944
 203a5d41
 580000ff
-67e08903
-67e08905
+67e08943
+67e08945
 20600000
 58000000
 20205d3e
@@ -9541,7 +9541,7 @@
 1fe37e00
 20405d4a
 1fe67e00
-67e08909
+67e08949
 20600000
 1fe67e00
 67e084d8
@@ -9568,13 +9568,13 @@
 20405d62
 1fe22400
 20600000
-67e10904
-6fe08905
+67e10944
+6fe08945
 c07fdd68
-6fe08904
+6fe08944
 1fe17eff
 20600000
-6fe10904
+6fe10944
 1fe67e00
 20205d66
 da60456a
@@ -18429,4 +18429,4 @@
 a3ab1610
 00000042
 00000000
-0000b842
\ No newline at end of file
+000025cd
\ No newline at end of file
Index: program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(revision 1067)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(working copy)
@@ -203,11 +203,13 @@
 	store 2,mem_cb_24g_ackpayload
 	call enable_authrom
 	call usb_init_param
-
-	jam 0x00,0x62e
-
-	jam 0xa3,0x64a
-
+	jam 0x00,0x62e	
+	fetch 1,mem_config_new
+	store 1,mem_confdesc
+	copy pdata,loopcnt
+	arg mem_config_new+1,contr
+	arg mem_confdesc+1,contw
+	call memcpy
 	jam 0x00,core_usb_config
 	nop 10000
 	jam 0x00,core_usb_trig
@@ -240,7 +242,7 @@
 	branch usb_tx_data_ep3
 p_usb_tx_data_ep2:
 	fetch 1,core_usb_txbusy
-	rtnbit1 2
+	rtnbit1 1
 	fetch 1,mem_usb_tx_enable
 	rtnbit0 2
 	fetch 1,mem_usb_tx_enable
@@ -254,11 +256,16 @@
 	branch assert
 p_usb_tx_ms_data:
 	fetch 1,mem_usb_get_protocol_flag
-	branch usb_tx_ms_data_normal_mode,blank
+	branch p_usb_tx_ms_data_normal_mode,blank
 	fetch 1,mem_usb_set_protocol_status
 	branch usb_tx_ms_data_mac_boot_mode,blank
-	branch usb_tx_ms_data_normal_mode
-
+	branch p_usb_tx_ms_data_normal_mode
+p_usb_tx_ms_data_normal_mode:
+	jam 0,mem_usb_ep2_data
+p_usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+	arg 8,loopcnt
+	arg mem_usb_mouse_data,contr
+	branch usb_tx_ep1
 /*
 p_le_enable_phy_by_pdata:
 	copy temp,pdata
@@ -296,7 +303,7 @@
 p_usb0_request_get_descriptor:
 	fetch 1,mem_usb_setup_bValueH
 	beq DSC_DEVICE,dsc_device_info
-	beq DSC_HID,p_dsc_hid_info//dsc_hid_info+1
+	beq DSC_HID,dsc_hid_info+1
 	beq DSC_HID_REPORT,p_dsc_hid_report_info
 	branch usb0_request_get_descriptor+2
 p_dsc_hid_report_info:
@@ -309,12 +316,6 @@
 // 	fetchr rega,2,mem_hidreportdesc_m
 // 	branch usb0_respond_length
 
-p_dsc_hid_info:
-	fetch 1,mem_usb_setup_wIndex
-	beq 0,dsc_hid_info_interface1
-	beq 1,dsc_hid_info_interface1
-	beq 2,dsc_hid_info_interface2
-	branch usb0_force_stall
 
 
 p_g24_search_mode_auto:
Index: sched/dongle.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/sched/dongle.dat	(revision 1065)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/sched/dongle.dat	(working copy)
@@ -44,6 +44,11 @@
 #mem_rssi_noise_device1_buffer_ptr:mem_dg_rssi_noise_ms_buffer
 #mem_rssi_noise_device2_buffer_ptr:mem_dg_rssi_noise_kb_buffer
 
+mem_config_new:
+22 09 02 22 00 01 01 00 A0 32
+09 04 00 00 01 03 01 02 00
+09 21 00 02 00 01 22 a3 00
+07 05 81 03 40 00 02
 
 
 #usb config
