Index: format/app_dongle.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(revision 1947)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/format/app_dongle.format	(working copy)
@@ -31,11 +31,13 @@
 1 mem_dg_24g_tx_power_default
 1 mem_24g_pair_tx_power_init
 1 mem_setreport_count
-
+// g24 buff
 70 mem_24g_rxbuf_new
 70 mem_24g_txbuf_new
 70 mem_24g_txpayload_new
 70 mem_24g_rxpayload_new
+70 mem_24g_rxdata_temp_new
+1 mem_24g_rxdata_ack_flag
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(revision 1948)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-16
+22
 0b
 c2
 84
@@ -103,7 +103,7 @@
 c0
 37
 02
-7a
+79
 c0
 37
 81
@@ -111,19 +111,19 @@
 c0
 39
 02
-ba
+bd
 c0
 39
 82
-a5
+a8
 c0
 3a
 82
-89
+88
 c0
 40
 82
-69
+68
 c0
 41
 01
@@ -131,7 +131,7 @@
 c0
 42
 82
-95
+98
 c0
 44
 01
@@ -143,11 +143,11 @@
 c0
 45
 82
-98
+9b
 c0
 4d
 82
-9e
+a1
 c1
 7f
 80
@@ -2067,7 +2067,7 @@
 6f
 e0
 c6
-97
+dd
 79
 20
 7e
@@ -2075,7 +2075,7 @@
 67
 e0
 c6
-97
+dd
 20
 40
 33
@@ -2448,18 +2448,14 @@
 e0
 c5
 89
-67
-e0
-c6
-97
 20
 40
 02
-89
+88
 6f
 e0
-c6
-97
+c7
+f5
 2f
 ef
 fe
@@ -2487,7 +2483,7 @@
 20
 40
 02
-75
+74
 20
 40
 02
@@ -2551,7 +2547,7 @@
 c5
 13
 82
-82
+81
 6f
 e0
 c6
@@ -2633,17 +2629,33 @@
 c6
 97
 1f
+e1
+04
+01
+60
+48
+c7
+f5
+1f
 e3
-7e
+04
 00
+18
+41
+04
+03
+60
+48
+c5
+86
 1f
-e1
+e9
 7e
-03
+00
 67
 e0
-c5
-86
+c6
+97
 20
 60
 00
@@ -2799,7 +2811,7 @@
 c5
 17
 82
-bf
+c2
 6f
 e0
 c5
@@ -2807,7 +2819,7 @@
 24
 3a
 02
-bf
+c2
 78
 4e
 fc
@@ -2840,8 +2852,8 @@
 20
 31
 b3
-3f
-b3
+2a
+59
 aa
 55
 40
@@ -3206,20 +3218,8 @@
 55
 09
 4d
-63
-3e
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+12
+9f
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f0
-17
+e6
+2f
Index: output/flash.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(revision 1948)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/flash.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-16
+22
 0b
 c2
 84
@@ -103,7 +103,7 @@
 c0
 37
 02
-7a
+79
 c0
 37
 81
@@ -111,19 +111,19 @@
 c0
 39
 02
-ba
+bd
 c0
 39
 82
-a5
+a8
 c0
 3a
 82
-89
+88
 c0
 40
 82
-69
+68
 c0
 41
 01
@@ -131,7 +131,7 @@
 c0
 42
 82
-95
+98
 c0
 44
 01
@@ -143,11 +143,11 @@
 c0
 45
 82
-98
+9b
 c0
 4d
 82
-9e
+a1
 c1
 7f
 80
@@ -2067,7 +2067,7 @@
 6f
 e0
 c6
-97
+dd
 79
 20
 7e
@@ -2075,7 +2075,7 @@
 67
 e0
 c6
-97
+dd
 20
 40
 33
@@ -2448,18 +2448,14 @@
 e0
 c5
 89
-67
-e0
-c6
-97
 20
 40
 02
-89
+88
 6f
 e0
-c6
-97
+c7
+f5
 2f
 ef
 fe
@@ -2487,7 +2483,7 @@
 20
 40
 02
-75
+74
 20
 40
 02
@@ -2551,7 +2547,7 @@
 c5
 13
 82
-82
+81
 6f
 e0
 c6
@@ -2633,17 +2629,33 @@
 c6
 97
 1f
+e1
+04
+01
+60
+48
+c7
+f5
+1f
 e3
-7e
+04
 00
+18
+41
+04
+03
+60
+48
+c5
+86
 1f
-e1
+e9
 7e
-03
+00
 67
 e0
-c5
-86
+c6
+97
 20
 60
 00
@@ -2799,7 +2811,7 @@
 c5
 17
 82
-bf
+c2
 6f
 e0
 c5
@@ -2807,7 +2819,7 @@
 24
 3a
 02
-bf
+c2
 78
 4e
 fc
@@ -2840,8 +2852,8 @@
 20
 31
 b3
-3f
-b3
+2a
+59
 aa
 55
 40
@@ -3206,20 +3218,8 @@
 55
 09
 4d
-63
-3e
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+12
+9f
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f0
-17
+e6
+2f
Index: output/memmap.format
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(revision 1947)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/memmap.format	(working copy)
@@ -1487,6 +1487,8 @@
 0x46dd mem_24g_txbuf_new
 0x4723 mem_24g_txpayload_new
 0x4769 mem_24g_rxpayload_new
+0x47af mem_24g_rxdata_temp_new
+0x47f5 mem_24g_rxdata_ack_flag
 0x45d3 mem_rssi_hex_received
 0x45d4 mem_24g_pair_sm
 0x45d5 mem_24g_pair_no_ack
Index: output/otp.dat
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(revision 1948)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/otp.dat	(working copy)
@@ -11,7 +11,7 @@
 00
 aa
 55
-16
+22
 0b
 c2
 84
@@ -112,7 +112,7 @@
 c0
 37
 02
-7a
+79
 c0
 37
 81
@@ -120,19 +120,19 @@
 c0
 39
 02
-ba
+bd
 c0
 39
 82
-a5
+a8
 c0
 3a
 82
-89
+88
 c0
 40
 82
-69
+68
 c0
 41
 01
@@ -140,7 +140,7 @@
 c0
 42
 82
-95
+98
 c0
 44
 01
@@ -152,11 +152,11 @@
 c0
 45
 82
-98
+9b
 c0
 4d
 82
-9e
+a1
 c1
 7f
 80
@@ -2076,7 +2076,7 @@
 6f
 e0
 c6
-97
+dd
 79
 20
 7e
@@ -2084,7 +2084,7 @@
 67
 e0
 c6
-97
+dd
 20
 40
 33
@@ -2457,18 +2457,14 @@
 e0
 c5
 89
-67
-e0
-c6
-97
 20
 40
 02
-89
+88
 6f
 e0
-c6
-97
+c7
+f5
 2f
 ef
 fe
@@ -2496,7 +2492,7 @@
 20
 40
 02
-75
+74
 20
 40
 02
@@ -2560,7 +2556,7 @@
 c5
 13
 82
-82
+81
 6f
 e0
 c6
@@ -2642,17 +2638,33 @@
 c6
 97
 1f
+e1
+04
+01
+60
+48
+c7
+f5
+1f
 e3
-7e
+04
 00
+18
+41
+04
+03
+60
+48
+c5
+86
 1f
-e1
+e9
 7e
-03
+00
 67
 e0
-c5
-86
+c6
+97
 20
 60
 00
@@ -2808,7 +2820,7 @@
 c5
 17
 82
-bf
+c2
 6f
 e0
 c5
@@ -2816,7 +2828,7 @@
 24
 3a
 02
-bf
+c2
 78
 4e
 fc
@@ -2849,8 +2861,8 @@
 20
 31
 b3
-3f
-b3
+2a
+59
 aa
 55
 40
@@ -3215,6 +3227,6 @@
 55
 09
 4d
-63
-3e
+12
+9f
 20
Index: output/program.lis
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(revision 1948)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/output/program.lis	(working copy)
@@ -26,18 +26,18 @@
 0015 c0030125 beq patch20_6 ,p_usb_tx 
 0016 c01c81b4 beq patch27_1 ,p_le_parse 
 0017 c02681b8 beq patch29_5 ,p_le_init_adv 
-0018 c037027a beq patch2d_6 ,p_g24_receive_update_rxbuff 
+0018 c0370279 beq patch2d_6 ,p_g24_receive_update_rxbuff 
 0019 c03781ff beq patch2d_7 ,p_g24_receive_skip_end 
-001a c03902ba beq patch2e_2 ,p_g24_transmit_packet 
-001b c03982a5 beq patch2e_3 ,p_g24_transmit_prep 
-001c c03a8289 beq patch2e_5 ,p_g24_read_len_pid_crc 
-001d c0408269 beq patch30_1 ,p_g24_bind_data_process 
+001a c03902bd beq patch2e_2 ,p_g24_transmit_packet 
+001b c03982a8 beq patch2e_3 ,p_g24_transmit_prep 
+001c c03a8288 beq patch2e_5 ,p_g24_read_len_pid_crc 
+001d c0408268 beq patch30_1 ,p_g24_bind_data_process 
 001e c04101ba beq patch30_2 ,p_g24_bind_data_parse_next 
-001f c0428295 beq patch30_5 ,p_g24_rx_interrupt_clear 
+001f c0428298 beq patch30_5 ,p_g24_rx_interrupt_clear 
 0020 c04401da beq patch31_0 ,p_g24_mode_switch_bind_search 
 0021 c04501e7 beq patch31_2 ,p_g24_bind_mode_auto 
-0022 c0458298 beq patch31_3 ,p_g24_search_mode_auto 
-0023 c04d829e beq patch33_3 ,p_g24_ackpayload_parse 
+0022 c045829b beq patch31_3 ,p_g24_search_mode_auto 
+0023 c04d82a1 beq patch33_3 ,p_g24_ackpayload_parse 
 0024 c17f8000 rtneq patch3f_7 
 0025 2020235a branch assert 
 
@@ -647,9 +647,9 @@
 0200 c3003165 bbit0 dg_enable_new_revision ,g24_receive_skip_end + 1 
 0201 7837fc00 enable user3 
 0202 20000018 nop 24 
-0203 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+0203 6fe0c6dd fetch 1 ,mem_24g_txbuf_new 
 0204 79207e00 set1 bit_ack_24g ,pdata 
-0205 67e0c697 store 1 ,mem_24g_rxbuf_new 
+0205 67e0c6dd store 1 ,mem_24g_txbuf_new 
 0206 204033a5 call g24_ackpayload_prep 
 0207 204031e5 call g24_transmit_prep 
 0208 20203195 branch g24_transmit 
@@ -779,126 +779,129 @@
 0260 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
 0261 1fe97e00 rshift3 pdata ,pdata 
 0262 67e0c589 store 1 ,mem_24g_data_type 
-0263 67e0c697 store 1 ,mem_24g_rxbuf_new 
-0264 20400289 call p_g24_read_len_pid_crc 
-0265 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-0266 2feffe00 isolate1 bit_ack_24g ,pdata 
-0267 2020b3fd branch g24tx_no_ack ,true 
-0268 202033fa branch g24tx_with_ack 
+0263 20400288 call p_g24_read_len_pid_crc 
+0264 6fe0c7f5 fetch 1 ,mem_24g_rxdata_ack_flag 
+0265 2feffe00 isolate1 bit_ack_24g ,pdata 
+0266 2020b3fd branch g24tx_no_ack ,true 
+0267 202033fa branch g24tx_with_ack 
 
 p_g24_bind_data_process:
-0269 204033be call g24_rx_interrupt_clear 
-026a 20403119 call g24_receive_packet 
-026b 2437b3be nbranch g24_rx_interrupt_clear ,user3 
-026c 20400275 call p_g24_bind_data_parse 
-026d 20400260 call p_g24_transmit_ack 
-026e 20403399 call g24_bind_device_status_check 
-026f 2040493d call dongle_kb_bind_soft_reset 
-0270 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
-0271 207a0000 rtn blank 
-0272 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
-0273 207a0000 rtn blank 
-0274 20203236 branch g24_update_addr_and_synccrc8 
+0268 204033be call g24_rx_interrupt_clear 
+0269 20403119 call g24_receive_packet 
+026a 2437b3be nbranch g24_rx_interrupt_clear ,user3 
+026b 20400274 call p_g24_bind_data_parse 
+026c 20400260 call p_g24_transmit_ack 
+026d 20403399 call g24_bind_device_status_check 
+026e 2040493d call dongle_kb_bind_soft_reset 
+026f 6fe0c5ae fetch 1 ,mem_24g_pair_switch 
+0270 207a0000 rtn blank 
+0271 6fe2462c fetch 4 ,mem_24g_transmitter_addr 
+0272 207a0000 rtn blank 
+0273 20203236 branch g24_update_addr_and_synccrc8 
 
 p_g24_bind_data_parse:
-0275 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
-0276 d8c04697 arg mem_24g_rxbuf_new ,contr 
-0277 d8a045e8 arg mem_24g_rxdata_temp ,contw 
-0278 20407c89 call memcpy8 
-0279 20203322 branch g24_bind_data_parse_next 
+0274 70462205 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+0275 d8c04697 arg mem_24g_rxbuf_new ,contr 
+0276 d8a045e8 arg mem_24g_rxdata_temp ,contw 
+0277 20407c89 call memcpy8 
+0278 20203322 branch g24_bind_data_parse_next 
 
 p_g24_receive_update_rxbuff:
-027a 2040317d call g24_receive_byte 
-027b 67e0c697 store 1 ,mem_24g_rxbuf_new 
-027c c5138282 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
-027d 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-027e 1fe97e00 rshift3 pdata ,pdata 
-027f 6848c589 fetcht 1 ,mem_24g_data_type 
-0280 a8400e00 icompare bits_data ,temp 
-0281 2420b18c nbranch g24_type_error ,true 
+0279 2040317d call g24_receive_byte 
+027a 67e0c697 store 1 ,mem_24g_rxbuf_new 
+027b c5138281 bmark1 mark_24g_rxmode ,p_g24_receive_skip 
+027c 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+027d 1fe97e00 rshift3 pdata ,pdata 
+027e 6848c589 fetcht 1 ,mem_24g_data_type 
+027f a8400e00 icompare bits_data ,temp 
+0280 2420b18c nbranch g24_type_error ,true 
 
 p_g24_receive_skip:
-0282 2040317d call g24_receive_byte 
-0283 e7e08005 istore 1 ,contw 
-0284 1fe67c44 sub pdata ,68 ,null 
-0285 2421318e nbranch g24_len_over_error ,positive 
-0286 1fe27200 copy pdata ,loopcnt 
-0287 2022b154 branch g24rx_nopayload ,zero 
-0288 20203151 branch g24rx_loop 
+0281 2040317d call g24_receive_byte 
+0282 e7e08005 istore 1 ,contw 
+0283 1fe67c44 sub pdata ,68 ,null 
+0284 2421318e nbranch g24_len_over_error ,positive 
+0285 1fe27200 copy pdata ,loopcnt 
+0286 2022b154 branch g24rx_nopayload ,zero 
+0287 20203151 branch g24rx_loop 
 
 p_g24_read_len_pid_crc:
-0289 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
-028a 67e0c57d store 1 ,mem_24g_rxdata_length 
-028b 1fe0fe01 increase 1 ,pdata 
-028c d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
-028d 98c08c00 iadd contr ,contr 
-028e efe18006 ifetch 3 ,contr 
-028f 67e1c580 store 3 ,mem_24g_sta_crc 
-0290 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
-0291 1fe37e00 rshift pdata ,pdata 
-0292 1fe17e03 and pdata ,0x03 ,pdata 
-0293 67e0c586 store 1 ,mem_24g_sta_pid 
-0294 20600000 rtn 
+0288 6fe0c698 fetch 1 ,mem_24g_rxbuf_new + 1 
+0289 67e0c57d store 1 ,mem_24g_rxdata_length 
+028a 1fe0fe01 increase 1 ,pdata 
+028b d8c04698 arg mem_24g_rxbuf_new + 1 ,contr 
+028c 98c08c00 iadd contr ,contr 
+028d efe18006 ifetch 3 ,contr 
+028e 67e1c580 store 3 ,mem_24g_sta_crc 
+028f 6fe0c697 fetch 1 ,mem_24g_rxbuf_new 
+0290 1fe10401 and pdata ,0x01 ,temp 
+0291 6048c7f5 storet 1 ,mem_24g_rxdata_ack_flag 
+0292 1fe30400 rshift pdata ,temp 
+0293 18410403 and temp ,0x03 ,temp 
+0294 6048c586 storet 1 ,mem_24g_sta_pid 
+0295 1fe97e00 rshift3 pdata ,pdata 
+0296 67e0c697 store 1 ,mem_24g_rxbuf_new 
+0297 20600000 rtn 
 
 p_g24_rx_interrupt_clear:
-0295 d8a04697 arg mem_24g_rxbuf_new ,contw 
-0296 df200046 arg 70 ,loopcnt 
-0297 20207ca1 branch clear_mem 
+0298 d8a04697 arg mem_24g_rxbuf_new ,contw 
+0299 df200046 arg 70 ,loopcnt 
+029a 20207ca1 branch clear_mem 
 
 p_g24_search_mode_auto:
-0298 6fe0c616 fetch 1 ,mem_24g_work_mode 
-0299 c1838000 rtnne dongle_search 
-029a 20403476 call g24_search_mode_init 
-029b 204034ae call g24_auto_addr_ch_search 
-029c 2040025d call p_g24_receive_transmit_ack 
-029d 2020348e branch g24_search_mode_auto + 6 
+029b 6fe0c616 fetch 1 ,mem_24g_work_mode 
+029c c1838000 rtnne dongle_search 
+029d 20403476 call g24_search_mode_init 
+029e 204034ae call g24_auto_addr_ch_search 
+029f 2040025d call p_g24_receive_transmit_ack 
+02a0 2020348e branch g24_search_mode_auto + 6 
 
 p_g24_ackpayload_parse:
-029e 20403214 call g24_read_len_pid_crc 
-029f 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
-02a0 207a0000 rtn blank 
-02a1 98007200 iforce loopcnt 
-02a2 d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
-02a3 d8a04769 arg mem_24g_rxpayload_new ,contw 
-02a4 20207cda branch memcpy 
+02a1 20403214 call g24_read_len_pid_crc 
+02a2 6fe0c57d fetch 1 ,mem_24g_rxdata_length 
+02a3 207a0000 rtn blank 
+02a4 98007200 iforce loopcnt 
+02a5 d8c04699 arg mem_24g_rxbuf_new + 2 ,contr 
+02a6 d8a04769 arg mem_24g_rxpayload_new ,contw 
+02a7 20207cda branch memcpy 
 
 p_g24_transmit_prep:
-02a5 6fe0c588 fetch 1 ,mem_24g_datalen 
-02a6 1fe0fe03 increase 3 ,pdata 
-02a7 67e0c58a store 1 ,mem_24g_txlen 
-02a8 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
-02a9 67e0c723 store 1 ,mem_24g_txpayload_new 
-02aa 6fe0c589 fetch 1 ,mem_24g_data_type 
-02ab 1fe9fe00 lshift3 pdata ,pdata 
-02ac 6848c57e fetcht 1 ,mem_24g_pid 
-02ad 18410403 and temp ,0x03 ,temp 
-02ae 18438400 lshift temp ,temp 
-02af 9841fe00 ior temp ,pdata 
-02b0 6848c57f fetcht 1 ,mem_24g_no_ack 
-02b1 9840fe00 iadd temp ,pdata 
-02b2 e7e08005 istore 1 ,contw 
-02b3 6fe0c588 fetch 1 ,mem_24g_datalen 
-02b4 e7e08005 istore 1 ,contw 
-02b5 6fe0c588 fetch 1 ,mem_24g_datalen 
-02b6 98007200 iforce loopcnt 
-02b7 d8c046dd arg mem_24g_txbuf_new ,contr 
-02b8 20407cda call memcpy 
-02b9 202031fc branch g24_transmit_prep_pdu_end 
+02a8 6fe0c588 fetch 1 ,mem_24g_datalen 
+02a9 1fe0fe03 increase 3 ,pdata 
+02aa 67e0c58a store 1 ,mem_24g_txlen 
+02ab 6fe0c5ac fetch 1 ,mem_24g_syncword_crc8 
+02ac 67e0c723 store 1 ,mem_24g_txpayload_new 
+02ad 6fe0c589 fetch 1 ,mem_24g_data_type 
+02ae 1fe9fe00 lshift3 pdata ,pdata 
+02af 6848c57e fetcht 1 ,mem_24g_pid 
+02b0 18410403 and temp ,0x03 ,temp 
+02b1 18438400 lshift temp ,temp 
+02b2 9841fe00 ior temp ,pdata 
+02b3 6848c57f fetcht 1 ,mem_24g_no_ack 
+02b4 9840fe00 iadd temp ,pdata 
+02b5 e7e08005 istore 1 ,contw 
+02b6 6fe0c588 fetch 1 ,mem_24g_datalen 
+02b7 e7e08005 istore 1 ,contw 
+02b8 6fe0c588 fetch 1 ,mem_24g_datalen 
+02b9 98007200 iforce loopcnt 
+02ba d8c046dd arg mem_24g_txbuf_new ,contr 
+02bb 20407cda call memcpy 
+02bc 202031fc branch g24_transmit_prep_pdu_end 
 
 p_g24_transmit_packet:
-02ba c51782bf bmark1 mark_ble_lr ,p_g24_transmit_nolr 
-02bb 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
-02bc 243a02bf nbranch p_g24_transmit_nolr ,blank 
-02bd 784efc00 disable encode_fec0 
-02be 782dfc00 enable encode_fec1 
+02bd c51782c2 bmark1 mark_ble_lr ,p_g24_transmit_nolr 
+02be 6fe0c5ca fetch 1 ,mem_24g_disable_fec1 
+02bf 243a02c2 nbranch p_g24_transmit_nolr ,blank 
+02c0 784efc00 disable encode_fec0 
+02c1 782dfc00 enable encode_fec1 
 
 p_g24_transmit_nolr:
-02bf 7823fc00 enable enable_white 
-02c0 7824fc00 enable enable_crc 
-02c1 6fe0c58a fetch 1 ,mem_24g_txlen 
-02c2 98007200 iforce loopcnt 
-02c3 d8c04723 arg mem_24g_txpayload_new ,contr 
-02c4 202031b3 branch g24tr_loop 
+02c2 7823fc00 enable enable_white 
+02c3 7824fc00 enable enable_crc 
+02c4 6fe0c58a fetch 1 ,mem_24g_txlen 
+02c5 98007200 iforce loopcnt 
+02c6 d8c04723 arg mem_24g_txpayload_new ,contr 
+02c7 202031b3 branch g24tr_loop 
               org 0x2000
 
 start:
Index: program/patch.prog
===================================================================
--- /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(revision 1948)
+++ /branch/keyboard/customer_FW/RY_project/RY_Dongle/program/patch.prog	(working copy)
@@ -666,9 +666,9 @@
 	bbit0 DG_ENABLE_NEW_REVISION,g24_receive_skip_end+1
 	enable user3
 	nop 24
-	fetch 1,mem_24g_rxbuf_new
+	fetch 1,mem_24g_txbuf_new
 	set1 bit_ack_24g,pdata
-	store 1,mem_24g_rxbuf_new	//sending ack once	
+	store 1,mem_24g_txbuf_new	//sending ack once	
 	call g24_ackpayload_prep
 	call g24_transmit_prep
 	branch g24_transmit
@@ -795,11 +795,10 @@
 	fetch 1,mem_24g_rxbuf_new
 	rshift3 pdata,pdata
 	store 1,mem_24g_data_type
-	store 1,mem_24g_rxbuf_new	//fixed rx_temp+2 need rshift3
 //read len pid crc
 	call p_g24_read_len_pid_crc
 //read ack
-	fetch 1,mem_24g_rxbuf_new
+	fetch 1,mem_24g_rxdata_ack_flag
 	isolate1 bit_ack_24g,pdata
 	branch g24tx_no_ack,true
 	branch g24tx_with_ack
@@ -860,9 +859,13 @@
 	store 3,mem_24g_sta_crc
 //read pid
 	fetch 1,mem_24g_rxbuf_new
-	rshift pdata,pdata
-	and pdata,0x03,pdata
-	store 1,mem_24g_sta_pid
+	and pdata,0x01,temp
+	storet 1,mem_24g_rxdata_ack_flag
+	rshift pdata,temp
+	and temp,0x03,temp
+	storet 1,mem_24g_sta_pid
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxbuf_new	//fixed rx_temp[device type]error problem
 	rtn
 
 p_g24_rx_interrupt_clear:
