Apparently, 248Kb 11/70 configurations are not normal (diagnostic EKBEE1 complains), so all those machine configs have been bumped to 256Kb

This commit is contained in:
Jeff 2016-11-15 10:38:43 -08:00 committed by Jeff Parsons
commit 7342ea254e
12 changed files with 34 additions and 20 deletions

View file

@ -262,6 +262,19 @@ CPUStatePDP11.prototype.resetMMU = function()
if (this.bus) this.setMemoryAccess();
};
/**
* getMMUState()
*
* Returns bit 0 set if 22-bit, bit 1 set if 18-bit, or bit 2 set if 16-bit; used by the Panel component.
*
* @this {CPUStatePDP11}
* @return {number}
*/
CPUStatePDP11.prototype.getMMUState = function()
{
return this.mmuEnable? ((this.regMMR3 & PDP11.MMR3.MMU_22BIT)? 1 : 2) : 4;
};
/**
* setMemoryAccess()
*

View file

@ -873,7 +873,8 @@ DevicePDP11.prototype.readSIZE = function(addr)
/*
* TODO: getMemorySize() returns an aggregate total, so if there are multiple discontiguous
* chunks of RAM, this could return the wrong result; another interface, getHighestAddress(),
* might be required.
* might be required. Then again, perhaps multiple discontiguous chunks of RAM are not permitted
* in PDP-11 machines.
*/
return addr == PDP11.UNIBUS.LSIZE? ((this.bus.getMemorySize(MemoryPDP11.TYPE.RAM) >> 6) - 1) : 0;
};

View file

@ -1007,13 +1007,13 @@ PanelPDP11.prototype.updateDisplay = function(nUpdate)
this.updateAddr(nUpdate > 0 && fRunning && !fWaiting? this.cpu.getPC() : this.regAddr);
this.updateData(this.regDisplay);
var bits = this.cpu.getMMUState();
/*
* Set bit to 1 (22-bit), 2 (18-bit), or 4 (16-bit)
* Bit 0 set if 22-bit, bit 1 set if 18-bit, bit 2 set if 16-bit
*/
var bit = this.cpu.mmuEnable? ((this.cpu.regMMR3 & PDP11.MMR3.MMU_22BIT)? 1 : 2) : 4;
this.updateLED(PanelPDP11.LED.B22, bit & 1);
this.updateLED(PanelPDP11.LED.B18, bit & 2);
this.updateLED(PanelPDP11.LED.B16, bit & 4);
this.updateLED(PanelPDP11.LED.B22, bits & 1);
this.updateLED(PanelPDP11.LED.B18, bits & 2);
this.updateLED(PanelPDP11.LED.B16, bits & 4);
}
}
};