Index: output/eeprom.dat
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(revision 1069)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-12
+1a
 05
 c2
 84
@@ -43,7 +43,7 @@
 c0
 65
 80
-e0
+e2
 c0
 67
 80
@@ -59,15 +59,15 @@
 c0
 23
 81
-0b
+0d
 c0
 24
 81
-11
+13
 c0
 26
 80
-ee
+f0
 c0
 27
 80
@@ -75,7 +75,7 @@
 c0
 28
 00
-e3
+e5
 20
 20
 3a
@@ -479,7 +479,7 @@
 58
 00
 01
-30
+32
 67
 e1
 45
@@ -487,7 +487,7 @@
 58
 00
 00
-c5
+c7
 67
 e1
 06
@@ -786,12 +786,20 @@
 9c
 20
 3a
-73
-64
+00
+c5
 20
 20
 73
 73
+70
+07
+aa
+00
+20
+20
+73
+68
 6f
 e0
 c5
@@ -799,7 +807,7 @@
 c2
 82
 00
-c9
+cb
 6f
 e0
 c5
@@ -807,7 +815,7 @@
 c0
 ad
 00
-cd
+cf
 70
 45
 93
@@ -847,7 +855,7 @@
 20
 20
 00
-d3
+d5
 6f
 e0
 c5
@@ -855,7 +863,7 @@
 c0
 2d
 00
-d9
+db
 58
 00
 92
@@ -923,7 +931,7 @@
 20
 40
 00
-e7
+e9
 20
 20
 4b
@@ -1091,7 +1099,7 @@
 c0
 7f
 81
-26
+28
 20
 60
 00
@@ -1103,7 +1111,7 @@
 c0
 00
 81
-16
+18
 c0
 01
 4a
@@ -1111,7 +1119,7 @@
 c0
 7f
 81
-24
+26
 20
 20
 4a
@@ -1147,7 +1155,7 @@
 c0
 00
 81
-1f
+21
 20
 20
 4a
@@ -1179,7 +1187,7 @@
 20
 20
 01
-26
+28
 6f
 e0
 c5
@@ -1187,11 +1195,11 @@
 c0
 00
 81
-2a
+2c
 c0
 01
 01
-2d
+2f
 20
 60
 00
@@ -1227,11 +1235,11 @@
 c0
 00
 81
-33
+35
 c0
 01
 01
-36
+38
 6f
 e0
 c5
@@ -1243,7 +1251,7 @@
 20
 20
 01
-38
+3a
 6f
 e0
 c5
@@ -1259,11 +1267,11 @@
 c0
 00
 81
-3c
+3e
 c0
 01
 81
-40
+42
 20
 60
 00
@@ -1291,17 +1299,17 @@
 c0
 00
 81
-3c
+3e
 c0
 7f
 81
-3c
+3e
 20
 20
 51
 af
-e0
-01
+26
+b6
 aa
 55
 40
@@ -1721,5 +1729,5 @@
 55
 3e
 62
-76
-d0
+f9
+3e
Index: output/program.lis
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/output/program.lis	(revision 1069)
+++ /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 c0618091 beq patch18_3 ,p_usb_init 
-0009 c06580e0 beq patch19_3 ,p_usb0_request_get_descriptor 
+0009 c06580e2 beq patch19_3 ,p_usb0_request_get_descriptor 
 000a c06780a3 beq patch19_7 ,p_usb_tx 
 000b 20203a8a branch assert 
 
 pf_patch_ext:
 000c c17f8000 rtneq patch3f_7 
-000d c023810b beq patch28_7 ,p_g24_bind_data_parse_next 
-000e c0248111 beq patch29_1 ,p_g24_receive_packet_start_next 
-000f c02680ee beq patch29_5 ,p_g24_mode_switch_bind_search 
+000d c023810d beq patch28_7 ,p_g24_bind_data_parse_next 
+000e c0248113 beq patch29_1 ,p_g24_receive_packet_start_next 
+000f c02680f0 beq patch29_5 ,p_g24_mode_switch_bind_search 
 0010 c027803b beq patch29_7 ,p_g24_bind_mode_auto 
-0011 c02800e3 beq patch2a_0 ,p_g24_search_mode_auto 
+0011 c02800e5 beq patch2a_0 ,p_g24_search_mode_auto 
 0012 20203a8a branch assert 
 
 p_initialize_radio_cont:
@@ -154,9 +154,9 @@
 0073 67e1452f store 2 ,mem_cb_24g_data_device1 
 0074 5800007b setarg p_dongle_g24_kb 
 0075 67e14531 store 2 ,mem_cb_24g_data_device2 
-0076 58000130 setarg p_dongle_ackpayload_prep 
+0076 58000132 setarg p_dongle_ackpayload_prep 
 0077 67e1452d store 2 ,mem_cb_24g_ackpayload 
-0078 580000c5 setarg p_dongle_usb_config 
+0078 580000c7 setarg p_dongle_usb_config 
 0079 67e106f3 store 2 ,mem_cb_usb_config 
 007a 2020703f branch usb_init 
 
@@ -251,181 +251,185 @@
 00c0 6fe0879b fetch 1 ,mem_usb_get_protocol_flag 
 00c1 203a7373 branch usb_tx_ms_data_normal_mode ,blank 
 00c2 6fe0879c fetch 1 ,mem_usb_set_protocol_status 
-00c3 203a7364 branch usb_tx_ms_data_mac_boot_mode ,blank 
+00c3 203a00c5 branch p_usb_tx_ms_data_mac_boot_mode ,blank 
 00c4 20207373 branch usb_tx_ms_data_normal_mode 
 
+p_usb_tx_ms_data_mac_boot_mode:
+00c5 7007aa00 jam 0 ,mem_usb_ep2_data 
+00c6 20207368 branch usb_tx_ms_data_mac_boot_regroup + 3 
+
 p_dongle_usb_config:
-00c5 6fe0c5b3 fetch 1 ,mem_dg_sys_config 
-00c6 c28200c9 bbit1 dg_enable_kb_icon ,p_dongle_usb_config_kb 
-00c7 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
-00c8 c0ad00cd bne dongle_kb_bind_success ,p_dongle_usb_config_param 
+00c7 6fe0c5b3 fetch 1 ,mem_dg_sys_config 
+00c8 c28200cb bbit1 dg_enable_kb_icon ,p_dongle_usb_config_kb 
+00c9 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
+00ca c0ad00cf bne dongle_kb_bind_success ,p_dongle_usb_config_param 
 
 p_dongle_usb_config_kb:
-00c9 7045935a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
-00ca 6ff2137a fetch 4 ,usb_devicedata_addr + 9 
-00cb 79207e1d set1 29 ,pdata 
-00cc 67e20626 store 4 ,mem_devicedesc + 9 
+00cb 7045935a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+00cc 6ff2137a fetch 4 ,usb_devicedata_addr + 9 
+00cd 79207e1d set1 29 ,pdata 
+00ce 67e20626 store 4 ,mem_devicedesc + 9 
 
 p_dongle_usb_config_param:
-00cd 6fe0c5de fetch 1 ,mem_dg_usb_device_iserial_number 
-00ce 67e0862e store 1 ,mem_devicedesc + 17 
-00cf 204050fc call dongle_usb_device_name 
-00d0 2040708d call usb_tx_interval_config 
-00d1 204050e9 call dongle_usb_vid_pid_config 
-00d2 202000d3 branch p_dongle_usb_hid_icon_config 
+00cf 6fe0c5de fetch 1 ,mem_dg_usb_device_iserial_number 
+00d0 67e0862e store 1 ,mem_devicedesc + 17 
+00d1 204050fc call dongle_usb_device_name 
+00d2 2040708d call usb_tx_interval_config 
+00d3 204050e9 call dongle_usb_vid_pid_config 
+00d4 202000d5 branch p_dongle_usb_hid_icon_config 
 
 p_dongle_usb_hid_icon_config:
-00d3 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
-00d4 c02d00d9 beq dongle_kb_bind_success ,p_dongle_usb_kb_hidreportdesc 
-00d5 58009272 setarg usb_kbdata_vendor_define_addr 
-00d6 67e105fb store 2 ,mem_hidreportdesc_kb 
-00d7 70064a1a jam 0x1a ,mem_confdesc + 26 
-00d8 20600000 rtn 
+00d5 6fe0c593 fetch 1 ,mem_dg_kb_bind_flag 
+00d6 c02d00db beq dongle_kb_bind_success ,p_dongle_usb_kb_hidreportdesc 
+00d7 58009272 setarg usb_kbdata_vendor_define_addr 
+00d8 67e105fb store 2 ,mem_hidreportdesc_kb 
+00d9 70064a1a jam 0x1a ,mem_confdesc + 26 
+00da 20600000 rtn 
 
 p_dongle_usb_kb_hidreportdesc:
-00d9 580045e2 setarg mem_dongle_kb_desc_new 
-00da 67e105fb store 2 ,mem_hidreportdesc_kb 
-00db 70064a17 jam 0x17 ,mem_confdesc + 26 
-00dc 58004628 setarg mem_dongle_ms_desc_new 
-00dd 67e105fd store 2 ,mem_hidreportdesc_m 
-00de 7006634b jam 0x4b ,mem_confdesc + 51 
-00df 20600000 rtn 
+00db 580045e2 setarg mem_dongle_kb_desc_new 
+00dc 67e105fb store 2 ,mem_hidreportdesc_kb 
+00dd 70064a17 jam 0x17 ,mem_confdesc + 26 
+00de 58004628 setarg mem_dongle_ms_desc_new 
+00df 67e105fd store 2 ,mem_hidreportdesc_m 
+00e0 7006634b jam 0x4b ,mem_confdesc + 51 
+00e1 20600000 rtn 
 
 p_usb0_request_get_descriptor:
-00e0 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
-00e1 c010f137 beq dsc_hid ,dsc_hid_info + 1 
-00e2 20207130 branch usb0_request_get_descriptor + 2 
+00e2 6fe0870e fetch 1 ,mem_usb_setup_bvalueh 
+00e3 c010f137 beq dsc_hid ,dsc_hid_info + 1 
+00e4 20207130 branch usb0_request_get_descriptor + 2 
 
 p_g24_search_mode_auto:
-00e3 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00e4 c1838000 rtnne dongle_search 
-00e5 204000e7 call p_g24_search_mode_init 
-00e6 20204b00 branch g24_search_mode_auto + 4 
+00e5 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00e6 c1838000 rtnne dongle_search 
+00e7 204000e9 call p_g24_search_mode_init 
+00e8 20204b00 branch g24_search_mode_auto + 4 
 
 p_g24_search_mode_init:
-00e7 6fe0c560 fetch 1 ,mem_24g_mode_init 
-00e8 c3838000 rtnbit1 dongle_search 
-00e9 79207e07 set1 dongle_search ,pdata 
-00ea 67e0c560 store 1 ,mem_24g_mode_init 
-00eb 6fe0c56e fetch 1 ,mem_tx_power_temp 
-00ec 67e0c116 store 1 ,mem_tx_power 
-00ed 20204af0 branch g24_search_mode_init + 4 
+00e9 6fe0c560 fetch 1 ,mem_24g_mode_init 
+00ea c3838000 rtnbit1 dongle_search 
+00eb 79207e07 set1 dongle_search ,pdata 
+00ec 67e0c560 store 1 ,mem_24g_mode_init 
+00ed 6fe0c56e fetch 1 ,mem_tx_power_temp 
+00ee 67e0c116 store 1 ,mem_tx_power 
+00ef 20204af0 branch g24_search_mode_init + 4 
 
 p_g24_mode_switch_bind_search:
-00ee 6fe0c561 fetch 1 ,mem_24g_work_mode 
-00ef c1000000 rtneq dongle_work 
-00f0 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
-00f1 247a0000 nrtn blank 
-00f2 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00f0 6fe0c561 fetch 1 ,mem_24g_work_mode 
+00f1 c1000000 rtneq dongle_work 
+00f2 6fe0c575 fetch 1 ,mem_24g_b_s_mode_switch_disable 
 00f3 247a0000 nrtn blank 
-00f4 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
-00f5 207a0000 rtn blank 
-00f6 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
-00f7 c1800000 rtnne 0 
-00f8 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00f4 6fe0c573 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+00f5 247a0000 nrtn blank 
+00f6 6fe0c56f fetch 1 ,mem_24g_mode_b_s_switch 
+00f7 207a0000 rtn blank 
+00f8 6fe0c51e fetch 1 ,mem_24g_device1_bind_step 
 00f9 c1800000 rtnne 0 
-00fa 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
-00fb 2fe00603 compare 3 ,pdata ,3 
-00fc 2020cac1 branch g24_mode_b_s_switch_exit ,true 
-00fd 204048be call g24_timer_check 
-00fe 24740000 nrtn user 
-00ff 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
-0100 1fe0fe01 increase 1 ,pdata 
-0101 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
-0102 d84007d0 arg 0x7d0 ,temp 
-0103 98467c00 isub temp ,null 
-0104 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
-0105 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
-0106 1fe0fe01 increase 1 ,pdata 
-0107 1fe17e01 and_into 1 ,pdata 
-0108 67e0c574 store 1 ,mem_24g_b_s_time_slice 
-0109 c0004b88 beq 0 ,g24_search_mode_enable 
-010a 20204abc branch g24_mode_switch_bind_search_next + 1 
+00fa 6fe0c51f fetch 1 ,mem_24g_device2_bind_step 
+00fb c1800000 rtnne 0 
+00fc 6fe0c576 fetch 1 ,mem_24g_bind_device_living 
+00fd 2fe00603 compare 3 ,pdata ,3 
+00fe 2020cac1 branch g24_mode_b_s_switch_exit ,true 
+00ff 204048be call g24_timer_check 
+0100 24740000 nrtn user 
+0101 6fe14571 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0102 1fe0fe01 increase 1 ,pdata 
+0103 67e14571 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0104 d84007d0 arg 0x7d0 ,temp 
+0105 98467c00 isub temp ,null 
+0106 20214ac1 branch g24_mode_b_s_switch_exit ,positive 
+0107 6fe0c574 fetch 1 ,mem_24g_b_s_time_slice 
+0108 1fe0fe01 increase 1 ,pdata 
+0109 1fe17e01 and_into 1 ,pdata 
+010a 67e0c574 store 1 ,mem_24g_b_s_time_slice 
+010b c0004b88 beq 0 ,g24_search_mode_enable 
+010c 20204abc branch g24_mode_switch_bind_search_next + 1 
 
 p_g24_bind_data_parse_next:
-010b 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-010c c05549a2 beq datatype_bind ,g24_bind_first_step 
-010d c02ac9b3 beq datatype_config ,g24_bind_second_step 
-010e c01149d4 beq datatype_ok ,g24_bind_third_step 
-010f c07f8126 beq datatype_attemp ,p_g24_data_attemp 
-0110 20600000 rtn 
+010d 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+010e c05549a2 beq datatype_bind ,g24_bind_first_step 
+010f c02ac9b3 beq datatype_config ,g24_bind_second_step 
+0110 c01149d4 beq datatype_ok ,g24_bind_third_step 
+0111 c07f8128 beq datatype_attemp ,p_g24_data_attemp 
+0112 20600000 rtn 
 
 p_g24_receive_packet_start_next:
-0111 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
-0112 c0008116 beq datatype_device1 ,p_g24_data_device1 
-0113 c0014a4e beq datatype_device2 ,g24_data_device2 
-0114 c07f8124 beq datatype_attemp ,p_g24_data_receive_attemp 
-0115 20204a39 branch g24_rx_interrupt_clear 
+0113 6fe0c535 fetch 1 ,mem_24g_rxdata_temp + 2 
+0114 c0008118 beq datatype_device1 ,p_g24_data_device1 
+0115 c0014a4e beq datatype_device2 ,g24_data_device2 
+0116 c07f8126 beq datatype_attemp ,p_g24_data_receive_attemp 
+0117 20204a39 branch g24_rx_interrupt_clear 
 
 p_g24_data_device1:
-0116 20404a08 call g24_binding_dvc1_living 
-0117 20404ba2 call g24_ch_timer_reinit 
-0118 6fe0c555 fetch 1 ,mem_24g_abort_packet 
-0119 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
-011a 284ffe03 isolate1 bit_abort ,temp 
-011b 7920fe00 setflag true ,0 ,pdata 
-011c 67e0c555 store 1 ,mem_24g_abort_packet 
-011d c000811f beq 1 ,p_g24_data_attemp_device1_abort 
-011e 20204a47 branch g24_data_device1 + 8 
+0118 20404a08 call g24_binding_dvc1_living 
+0119 20404ba2 call g24_ch_timer_reinit 
+011a 6fe0c555 fetch 1 ,mem_24g_abort_packet 
+011b 6848c533 fetcht 1 ,mem_24g_rxdata_temp 
+011c 284ffe03 isolate1 bit_abort ,temp 
+011d 7920fe00 setflag true ,0 ,pdata 
+011e 67e0c555 store 1 ,mem_24g_abort_packet 
+011f c0008121 beq 1 ,p_g24_data_attemp_device1_abort 
+0120 20204a47 branch g24_data_device1 + 8 
 
 p_g24_data_attemp_device1_abort:
-011f 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-0120 247a0000 nrtn blank 
-0121 70452901 jam 1 ,mem_24g_device1_bind_disable 
-0122 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
-0123 20204c14 branch g24_store_device1_addr 
+0121 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+0122 247a0000 nrtn blank 
+0123 70452901 jam 1 ,mem_24g_device1_bind_disable 
+0124 6fe2453d fetch 4 ,mem_24g_rxdata_temp + 10 
+0125 20204c14 branch g24_store_device1_addr 
 
 p_g24_data_receive_attemp:
-0124 20404a16 call g24_bind_device_status 
-0125 20200126 branch p_g24_data_attemp 
+0126 20404a16 call g24_bind_device_status 
+0127 20200128 branch p_g24_data_attemp 
 
 p_g24_data_attemp:
-0126 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
-0127 c000812a beq datatype_device1 ,p_g24_data_attemp_device1 
-0128 c001012d beq datatype_device2 ,p_g24_data_attemp_device2 
-0129 20600000 rtn 
+0128 6fe0c536 fetch 1 ,mem_24g_rxdata_temp + 3 
+0129 c000812c beq datatype_device1 ,p_g24_data_attemp_device1 
+012a c001012f beq datatype_device2 ,p_g24_data_attemp_device2 
+012b 20600000 rtn 
 
 p_g24_data_attemp_device1:
-012a 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
-012b 247a0000 nrtn blank 
-012c 20204c12 branch g24_data_attemp_device1 
+012c 6fe0c529 fetch 1 ,mem_24g_device1_bind_disable 
+012d 247a0000 nrtn blank 
+012e 20204c12 branch g24_data_attemp_device1 
 
 p_g24_data_attemp_device2:
-012d 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
-012e 247a0000 nrtn blank 
-012f 20204c16 branch g24_data_attemp_device2 
+012f 6fe0c52a fetch 1 ,mem_24g_device2_bind_disable 
+0130 247a0000 nrtn blank 
+0131 20204c16 branch g24_data_attemp_device2 
 
 p_dongle_ackpayload_prep:
-0130 6fe0c4d4 fetch 1 ,mem_24g_data_type 
-0131 c0008133 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
-0132 c0010136 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
+0132 6fe0c4d4 fetch 1 ,mem_24g_data_type 
+0133 c0008135 beq datatype_device1 ,p_dongle_ackpayload_prep_mouse 
+0134 c0010138 beq datatype_device2 ,p_dongle_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_mouse:
-0133 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0134 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
-0135 20200138 branch p_dongle_ackpayload_prep_end 
+0135 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+0136 c280519d bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0137 2020013a branch p_dongle_ackpayload_prep_end 
 
 p_dongle_ackpayload_prep_keyboard:
-0136 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
-0137 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+0138 6fe0c5dd fetch 1 ,mem_dg_pc_sleep_flag 
+0139 c280d1a1 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
 
 p_dongle_ackpayload_prep_end:
-0138 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
-0139 c000813c beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
-013a c0018140 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
-013b 20600000 rtn 
+013a 6fe0c55c fetch 1 ,mem_24g_ackpayload_enable 
+013b c000813e beq bind_ackpayload ,p_dongle_g24_bind_ackpayload_prep 
+013c c0018142 beq kb_led_ackpayload ,p_dongle_g24_kb_led_ackpayload_prep 
+013d 20600000 rtn 
 
 p_dongle_g24_bind_ackpayload_prep:
-013c 70455c01 jam 1 ,mem_24g_ackpayload_enable 
-013d 6fe0c561 fetch 1 ,mem_24g_work_mode 
-013e c1000000 rtneq dongle_work 
-013f 202051a8 branch dongle_g24_bind_ackpayload_prep 
+013e 70455c01 jam 1 ,mem_24g_ackpayload_enable 
+013f 6fe0c561 fetch 1 ,mem_24g_work_mode 
+0140 c1000000 rtneq dongle_work 
+0141 202051a8 branch dongle_g24_bind_ackpayload_prep 
 
 p_dongle_g24_kb_led_ackpayload_prep:
-0140 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
-0141 c000813c beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
-0142 c07f813c beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
-0143 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
+0142 6fe0c444 fetch 1 ,mem_24g_rxbuf + 2 
+0143 c000813e beq datatype_device1 ,p_dongle_g24_bind_ackpayload_prep 
+0144 c07f813e beq datatype_attemp ,p_dongle_g24_bind_ackpayload_prep 
+0145 202051af branch dongle_g24_kb_led_ackpayload_prep + 3 
               org 0x3800
 
 start:
Index: program/patch.prog
===================================================================
--- /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(revision 1069)
+++ /1306ac/branch/dongle/usb_ats/usb_1M/program/patch.prog	(working copy)
@@ -263,9 +263,13 @@
 	fetch 1,mem_usb_get_protocol_flag
 	branch usb_tx_ms_data_normal_mode,blank
 	fetch 1,mem_usb_set_protocol_status
-	branch usb_tx_ms_data_mac_boot_mode,blank
+	branch p_usb_tx_ms_data_mac_boot_mode,blank
 	branch usb_tx_ms_data_normal_mode
 
+p_usb_tx_ms_data_mac_boot_mode:
+	jam 0,mem_usb_ep2_data
+	branch usb_tx_ms_data_mac_boot_regroup+3
+
 p_dongle_usb_config:
 	fetch 1,mem_dg_sys_config
 	bbit1 DG_ENABLE_KB_ICON,p_dongle_usb_config_kb
