Fixed old, longstanding, and surprisingly bad bug in cleanMemory() for all machine implementations
This commit is contained in:
parent
2027929148
commit
ec438be5c9
24 changed files with 145 additions and 128 deletions
|
|
@ -345,12 +345,14 @@ class Bus extends Component {
|
|||
{
|
||||
var fClean = true;
|
||||
var iBlock = addr >>> this.nBlockShift;
|
||||
var sizeBlock = this.nBlockSize - (addr & this.nBlockLimit);
|
||||
while (size > 0 && iBlock < this.aMemBlocks.length) {
|
||||
if (this.aMemBlocks[iBlock].fDirty) {
|
||||
this.aMemBlocks[iBlock].fDirty = fClean = false;
|
||||
this.aMemBlocks[iBlock].fDirtyEver = true;
|
||||
}
|
||||
size -= this.nBlockSize;
|
||||
size -= sizeBlock;
|
||||
sizeBlock = this.nBlockSize;
|
||||
iBlock++;
|
||||
}
|
||||
return fClean;
|
||||
|
|
|
|||
Loading…
Reference in a new issue