From a15e222076f27603223e23d177d10cd4c7df1c63 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 19 Sep 2016 16:43:07 -0700 Subject: [PATCH] Added support for a Debugger "base" option that presets the default base (eg, 8, 10, 16) for most numeric input/output --- devices/pdp11/machine/1170/test/machine.xml | 2 +- modules/pdp11/lib/debugger.js | 14 +++++++------- modules/shared/lib/debugger.js | 12 ++++++++---- modules/shared/templates/components.xsl | 8 +++++++- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/devices/pdp11/machine/1170/test/machine.xml b/devices/pdp11/machine/1170/test/machine.xml index b45d47b8e..2c599616a 100644 --- a/devices/pdp11/machine/1170/test/machine.xml +++ b/devices/pdp11/machine/1170/test/machine.xml @@ -8,5 +8,5 @@ - + diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index a9cae962e..740d73e3b 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -69,10 +69,6 @@ var DbgAddrPDP11; /** * DebuggerPDP11(parmsDbg) * - * @constructor - * @extends Debugger - * @param {Object} parmsDbg - * * The DebuggerPDP11 component supports the following optional (parmsDbg) properties: * * commands: string containing zero or more commands, separated by ';' @@ -82,6 +78,10 @@ var DbgAddrPDP11; * * The DebuggerPDP11 component is an optional component that implements a variety of user * commands for controlling the CPU, dumping and editing memory, etc. + * + * @constructor + * @extends Debugger + * @param {Object} parmsDbg */ function DebuggerPDP11(parmsDbg) { @@ -1921,15 +1921,15 @@ if (DEBUGGER) { } var sOpcodes = ""; - var sLine = this.toStrAddr(dbgAddrOp) + ": "; + var sLine = this.toStrAddr(dbgAddrOp) + ":"; if (dbgAddrOp.addr !== PDP11.ADDR_INVALID && dbgAddr.addr !== PDP11.ADDR_INVALID) { do { - sOpcodes += this.toStrBase(this.getWord(dbgAddrOp, true)); + sOpcodes += ' ' + this.toStrBase(this.getWord(dbgAddrOp, true)); if (dbgAddrOp.addr == null) break; } while (dbgAddrOp.addr != dbgAddr.addr); } - sLine += str.pad(sOpcodes, 10); + sLine += str.pad(sOpcodes, 15); sLine += str.pad(sOpName, 7); if (sOperands) sLine += ' ' + sOperands; diff --git a/modules/shared/lib/debugger.js b/modules/shared/lib/debugger.js index 0916eb4fa..d1ac13440 100644 --- a/modules/shared/lib/debugger.js +++ b/modules/shared/lib/debugger.js @@ -60,13 +60,17 @@ var DbgAddr; /** * Debugger(parmsDbg) * - * @constructor - * @extends Component - * @param {Object} parmsDbg + * The Debugger component supports the following optional (parmsDbg) properties: + * + * base: the base to use for most numeric input/output (default is 16) * * The Debugger component is a shared component containing a subset of functionality used by * the other CPU-specific Debuggers (eg, DebuggerX86). Over time, the goal is to factor out as * much common debugging support as possible from those components into this one. + * + * @constructor + * @extends Component + * @param {Object} parmsDbg */ function Debugger(parmsDbg) { @@ -77,7 +81,7 @@ function Debugger(parmsDbg) /* * Default base used to display all values; modified with the "s base" command. */ - this.nBase = 16; + this.nBase = parmsDbg['base'] || 16; /* * These keep track of instruction activity, but only when tracing or when Debugger checks diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index 7f3afa7da..18776e6cb 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -1168,6 +1168,12 @@ + + + + 16 + + @@ -1183,7 +1189,7 @@ debugger - ,commands:'',messages:'' + ,base:,commands:'',messages:''