mirror of
https://github.com/TomHarte/CLK.git
synced 2024-08-16 16:28:59 +00:00
Avoid phoney write modifies.
This commit is contained in:
parent
0e6370d467
commit
1365fca161
@ -236,20 +236,18 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
|
|||||||
// which at word precision is 0x77f0ff + register*256.
|
// which at word precision is 0x77f0ff + register*256.
|
||||||
if(cycle.operation & Microcycle::Read) {
|
if(cycle.operation & Microcycle::Read) {
|
||||||
cycle.value->b = via_.read(register_address);
|
cycle.value->b = via_.read(register_address);
|
||||||
|
if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00;
|
||||||
} else {
|
} else {
|
||||||
via_.write(register_address, cycle.value->b);
|
via_.write(register_address, cycle.value->b);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00;
|
|
||||||
}
|
}
|
||||||
} return delay;
|
} return delay;
|
||||||
|
|
||||||
case BusDevice::PhaseRead: {
|
case BusDevice::PhaseRead: {
|
||||||
if(cycle.operation & Microcycle::Read) {
|
if(cycle.operation & Microcycle::Read) {
|
||||||
cycle.value->b = phase_ & 7;
|
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;
|
} return delay;
|
||||||
|
|
||||||
case BusDevice::IWM: {
|
case BusDevice::IWM: {
|
||||||
@ -259,11 +257,10 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
|
|||||||
// The IWM; this is a purely polled device, so can be run on demand.
|
// The IWM; this is a purely polled device, so can be run on demand.
|
||||||
if(cycle.operation & Microcycle::Read) {
|
if(cycle.operation & Microcycle::Read) {
|
||||||
cycle.value->b = iwm_->read(register_address);
|
cycle.value->b = iwm_->read(register_address);
|
||||||
|
if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00;
|
||||||
} else {
|
} else {
|
||||||
iwm_->write(register_address, cycle.value->b);
|
iwm_->write(register_address, cycle.value->b);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cycle.operation & Microcycle::SelectWord) cycle.value->w |= 0xff00;
|
|
||||||
} else {
|
} else {
|
||||||
fill_unmapped(cycle);
|
fill_unmapped(cycle);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user