Cleaned up PDP register dump code
This commit is contained in:
parent
8320f58d44
commit
884b74d96f
7 changed files with 574 additions and 616 deletions
|
|
@ -8,7 +8,7 @@ includes:
|
|||
* [PCx86](/docs/pcx86/), an x86-based emulator of [IBM PC and PC-compatible](/devices/pcx86/machine/) machines
|
||||
* [PC8080](/modules/pc8080/), an 8080 machine emulator (e.g., [Space Invaders](/devices/pc8080/machine/invaders/) and the [VT100 Terminal](/devices/pc8080/machine/vt100/))
|
||||
* [C1Pjs](/docs/c1pjs/), an emulation of the 6502-based [Ohio Scientific Challenger 1P](/devices/c1p/)
|
||||
* [PDPjs](/docs/pdpjs/) emulators, with support for [PDP-10](/devices/pdp10/machine/) and [PDP-11](/devices/pdp11/machine/) machines
|
||||
* [PDPjs](/docs/pdpjs/), a set of emulation modules supporting [PDP-10](/devices/pdp10/machine/) and [PDP-11](/devices/pdp11/machine/) machines
|
||||
|
||||
All PCjs machine simulations are written entirely in [JavaScript](/modules/). No Flash, Java or other plugins are
|
||||
required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge,
|
||||
|
|
|
|||
|
|
@ -812,11 +812,11 @@ class DebuggerPDP10 extends Debugger {
|
|||
*
|
||||
* @this {DebuggerPDP10}
|
||||
* @param {number} iReg (0-7; not used for other registers)
|
||||
* @return {string|undefined}
|
||||
* @return {string}
|
||||
*/
|
||||
getRegName(iReg)
|
||||
{
|
||||
return DebuggerPDP10.REGNAMES[iReg];
|
||||
return DebuggerPDP10.REGNAMES[iReg] || "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1885,8 +1885,10 @@ class DebuggerPDP10 extends Debugger {
|
|||
*/
|
||||
getRegOutput(iReg)
|
||||
{
|
||||
var sReg = this.getRegName(iReg) || "undefined";
|
||||
if (sReg) sReg += ' ';
|
||||
var sReg = this.getRegName(iReg);
|
||||
if (sReg) {
|
||||
sReg += '=' + this.toStrBase(this.getRegValue(iReg)) + ' ';
|
||||
}
|
||||
return sReg;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -912,7 +912,9 @@ class DebuggerPDP11 extends Debugger {
|
|||
*/
|
||||
getRegName(iReg)
|
||||
{
|
||||
return (iReg < 6? ("R" + iReg) : (iReg == 6? "SP" : "PC"));
|
||||
var sReg;
|
||||
if (iReg < DebuggerPDP11.REG_AR || this.panel) sReg = DebuggerPDP11.REGNAMES[iReg];
|
||||
return sReg || "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -2273,63 +2275,10 @@ class DebuggerPDP11 extends Debugger {
|
|||
*/
|
||||
getRegOutput(iReg)
|
||||
{
|
||||
var sReg = "";
|
||||
var cpu = this.cpu;
|
||||
|
||||
if (iReg < 8) {
|
||||
sReg = this.getRegName(iReg);
|
||||
sReg += '=' + this.toStrBase(cpu.regsGen[iReg]);
|
||||
var sReg = this.getRegName(iReg);
|
||||
if (sReg) {
|
||||
sReg += '=' + this.toStrBase(this.getRegValue(iReg)) + ' ';
|
||||
}
|
||||
else if (iReg < 13) {
|
||||
sReg = "A" + (iReg - 8) + '=' + this.toStrBase(cpu.regsAlt[iReg - 8]);
|
||||
}
|
||||
else if (iReg >= 16 && iReg < 20) {
|
||||
sReg = "S" + (iReg - 16) + '=' + this.toStrBase(cpu.regsAltStack[iReg - 16]);
|
||||
}
|
||||
else {
|
||||
switch(iReg) {
|
||||
case DebuggerPDP11.REG_PS:
|
||||
sReg = "PS=" + this.toStrBase(cpu.getPSW());
|
||||
break;
|
||||
case DebuggerPDP11.REG_PI:
|
||||
sReg = "PI=" + this.toStrBase(cpu.getPIR());
|
||||
break;
|
||||
case DebuggerPDP11.REG_ER:
|
||||
sReg = "ER=" + this.toStrBase(cpu.regErr);
|
||||
break;
|
||||
case DebuggerPDP11.REG_SL:
|
||||
sReg = "SL=" + this.toStrBase(cpu.getSLR());
|
||||
break;
|
||||
case DebuggerPDP11.REG_M0:
|
||||
sReg = "M0=" + this.toStrBase(cpu.getMMR0());
|
||||
break;
|
||||
case DebuggerPDP11.REG_M1:
|
||||
sReg = "M1=" + this.toStrBase(cpu.getMMR1());
|
||||
break;
|
||||
case DebuggerPDP11.REG_M2:
|
||||
sReg = "M2=" + this.toStrBase(cpu.getMMR2());
|
||||
break;
|
||||
case DebuggerPDP11.REG_M3:
|
||||
sReg = "M3=" + this.toStrBase(cpu.getMMR3());
|
||||
break;
|
||||
case DebuggerPDP11.REG_AR:
|
||||
if (this.panel) {
|
||||
sReg = "AR=" + this.toStrBase(this.panel.getAR(), 3);
|
||||
}
|
||||
break;
|
||||
case DebuggerPDP11.REG_DR:
|
||||
if (this.panel) {
|
||||
sReg = "DR=" + this.toStrBase(this.panel.getDR());
|
||||
}
|
||||
break;
|
||||
case DebuggerPDP11.REG_SR:
|
||||
if (this.panel) {
|
||||
sReg = "SR=" + this.toStrBase(this.panel.getSR(), 3);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (sReg) sReg += ' ';
|
||||
return sReg;
|
||||
}
|
||||
|
||||
|
|
@ -4181,6 +4130,14 @@ if (DEBUGGER) {
|
|||
"SR": DebuggerPDP11.REG_SR
|
||||
};
|
||||
|
||||
DebuggerPDP11.REGNAMES = [
|
||||
"R0", "R1", "R2", "R3", "R4", "R5", "SP", "PC",
|
||||
"A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7",
|
||||
"S0", "S1", "S2", "S3",
|
||||
"PS", "PI", "ER", "SL", "M0", "M1", "M2", "M3",
|
||||
"AR", "DR", "SR"
|
||||
];
|
||||
|
||||
DebuggerPDP11.MODES = ["KI","KD","SI","SD","??","??","UI","UD"];
|
||||
|
||||
/*
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue