diff --git a/tmk_core/protocol/ibmpc.c b/tmk_core/protocol/ibmpc.c index 6a7e9242..880380f1 100644 --- a/tmk_core/protocol/ibmpc.c +++ b/tmk_core/protocol/ibmpc.c @@ -153,13 +153,19 @@ RETRY: WAIT(data_hi, 300, 7); WAIT(clock_hi, 300, 8); + uint16_t d = recv_data; + // clear buffer to get response correctly - recv_data = 0xFFFF; ibmpc_host_isr_clear(); idle(); IBMPC_INT_ON(); - return ibmpc_host_recv_response(); + int16_t r = ibmpc_host_recv_response(); + if (d != 0xFFFF) dprintf("r:%04X ", d); + ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { + recv_data = d; + } + return r; ERROR: // Retry for Z-150 AT start bit error if (ibmpc_error == 1 && retry++ < 10) {