ibmpc: Retain recv_data across host_send()

This commit is contained in:
tmk 2021-05-31 19:32:44 +09:00
parent 67d37ef7b3
commit 2a0471fdc4

View file

@ -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) {