From f6078bdbc70e3a9e9c6a9ae77383a40fe9a71c73 Mon Sep 17 00:00:00 2001 From: Sergey Svishchev Date: Sun, 26 Oct 2014 22:06:52 +0300 Subject: isa_hdc: ec1841 compatibility --- src/emu/bus/isa/hdc.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/emu/bus/isa/hdc.c b/src/emu/bus/isa/hdc.c index 479c0fc3eec..0d866e4580b 100644 --- a/src/emu/bus/isa/hdc.c +++ b/src/emu/bus/isa/hdc.c @@ -749,7 +749,12 @@ void isa8_hdc_device::pc_hdc_data_w(int data) logerror("hdc_data_w $%02x\n", data); *buffer_ptr++ = data; - status |= STA_READY; + // XXX ec1841 wants this + if (buffer[0] == CMD_SETPARAM && data_cnt == 9) { + status &= ~STA_READY; + } else { + status |= STA_READY; + } if (--data_cnt == 0) { if (LOG_HDC_STATUS) @@ -758,8 +763,7 @@ void isa8_hdc_device::pc_hdc_data_w(int data) status &= ~STA_COMMAND; status &= ~STA_REQUEST; status &= ~STA_READY; - status |= STA_INPUT; - + status &= ~STA_INPUT; timer->adjust(attotime::from_msec(1),0); } } @@ -851,6 +855,9 @@ UINT8 isa8_hdc_device::pc_hdc_status_r() UINT8 isa8_hdc_device::pc_hdc_dipswitch_r() { + status |= STA_READY; // XXX + if (LOG_HDC_STATUS) + logerror("%s: pc_hdc_dipswitch_r: status $%02X\n", machine().describe_context(), status); return dip; } -- cgit v1.2.3