From 1365fca1610e86c4aa8630114c9ab6125d203e1a Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Fri, 27 May 2022 21:42:55 -0400 Subject: [PATCH] Avoid phoney write modifies. --- Machines/Apple/Macintosh/Macintosh.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Machines/Apple/Macintosh/Macintosh.cpp b/Machines/Apple/Macintosh/Macintosh.cpp index 7cf4ac6d5..2657d7b35 100644 --- a/Machines/Apple/Macintosh/Macintosh.cpp +++ b/Machines/Apple/Macintosh/Macintosh.cpp @@ -236,20 +236,18 @@ template class ConcreteMachin // which at word precision is 0x77f0ff + register*256. if(cycle.operation & Microcycle::Read) { cycle.value->b = via_.read(register_address); + if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } else { via_.write(register_address, cycle.value->b); } - - if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } } return delay; case BusDevice::PhaseRead: { if(cycle.operation & Microcycle::Read) { cycle.value->b = phase_ & 7; + if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } - - if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } return delay; case BusDevice::IWM: { @@ -259,11 +257,10 @@ template class ConcreteMachin // The IWM; this is a purely polled device, so can be run on demand. if(cycle.operation & Microcycle::Read) { cycle.value->b = iwm_->read(register_address); + if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } else { iwm_->write(register_address, cycle.value->b); } - - if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00; } else { fill_unmapped(cycle); }