From 5f07e6d3e6ae93d0628319c9ebf79ddb5f67d5ce Mon Sep 17 00:00:00 2001 From: Dirk Best Date: Wed, 30 Nov 2016 06:12:32 +0100 Subject: [PATCH] atehle: respect mem_mask for writes --- src/devices/machine/atahle.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/devices/machine/atahle.cpp b/src/devices/machine/atahle.cpp index df2714dd407..6590006e517 100644 --- a/src/devices/machine/atahle.cpp +++ b/src/devices/machine/atahle.cpp @@ -813,6 +813,9 @@ WRITE16_MEMBER( ata_hle_device::write_cs0 ) LOG(("%s:IDE cs0 write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask)); // fprintf(stderr, "ide write %03x %02x mem_mask=%d\n", offset, data, size); + // apply mask + data &= mem_mask; + if (m_dmack) { logerror( "%s: %s dev %d write_cs0 %04x %04x %04x ignored (DMACK)\n", machine().describe_context(), tag(), dev(), offset, data, mem_mask ); @@ -920,6 +923,9 @@ WRITE16_MEMBER( ata_hle_device::write_cs1 ) /* logit */ LOG(("%s:IDE cs1 write to %X = %08X, mem_mask=%d\n", machine().describe_context(), offset, data, mem_mask)); + // apply mask + data &= mem_mask; + if (m_dmack) { logerror( "%s: %s dev %d write_cs1 %04x %04x %04x ignored (DMACK)\n", machine().describe_context(), tag(), dev(), offset, data, mem_mask );