diff --git a/devices/pc8080/machine/invaders/machine.xml b/devices/pc8080/machine/invaders/machine.xml index 9d9a28b6d..0e0f604e4 100644 --- a/devices/pc8080/machine/invaders/machine.xml +++ b/devices/pc8080/machine/invaders/machine.xml @@ -2,15 +2,14 @@ Space Invaders - - - - - + + + + + + - - Run - Reset - diff --git a/devices/pc8080/panel/default.xml b/devices/pc8080/panel/default.xml new file mode 100644 index 000000000..666f52885 --- /dev/null +++ b/devices/pc8080/panel/default.xml @@ -0,0 +1,45 @@ + + + Control Panel + + + + + Enter + Clear + + + + 00 + 00 + + 00 + 00 + + 00 + 00 + + 00 + 00 + + 0000 + 0000 + + 0 + 0 + 0 + 0 + 0 + 0 + + + Speed: + Stopped + + + Run + Step + Reset + Fast + + diff --git a/modules/pc8080/lib/cpusim.js b/modules/pc8080/lib/cpusim.js index d4c3acd36..2947a7094 100644 --- a/modules/pc8080/lib/cpusim.js +++ b/modules/pc8080/lib/cpusim.js @@ -882,7 +882,7 @@ CPUSim.prototype.updateINTR = function(fRaise) }; /** - * updateReg(sReg, nValue) + * updateReg(sReg, nValue, cch) * * This function helps updateStatus() by massaging the register names and values according to * CPU type before passing the call to displayValue(); in the "old days", updateStatus() called @@ -891,24 +891,11 @@ CPUSim.prototype.updateINTR = function(fRaise) * @this {CPUSim} * @param {string} sReg * @param {number} nValue + * @param {number} [cch] (default is 2 hex digits) */ -CPUSim.prototype.updateReg = function(sReg, nValue) +CPUSim.prototype.updateReg = function(sReg, nValue, cch) { - var cch = 4; - if (sReg.length == 1) { - cch = 1; - nValue = nValue? 1 : 0; - } - if (this.model < 80386) { - if (sReg.length > 2) { - sReg = sReg.substr(1, 2); - } - } else { - if (sReg == "PS" || sReg.length > 2) { - cch = 8; - } - } - this.displayValue(sReg, nValue, cch); + this.displayValue(sReg, nValue, cch || 2); }; /** @@ -934,15 +921,15 @@ CPUSim.prototype.updateStatus = function(fForce) this.updateReg("E", this.regE); this.updateReg("H", this.regH); this.updateReg("L", this.regL); - this.updateReg("SP", this.getSP()); - this.updateReg("PC", this.getPC()); + this.updateReg("SP", this.getSP(), 4); + this.updateReg("PC", this.getPC(), 4); var regPS = this.getPS(); - this.updateReg("PS", regPS); - this.updateReg("S", (regPS & CPUDef.PS.SF)); - this.updateReg("Z", (regPS & CPUDef.PS.ZF)); - this.updateReg("A", (regPS & CPUDef.PS.AF)); - this.updateReg("P", (regPS & CPUDef.PS.PF)); - this.updateReg("C", (regPS & CPUDef.PS.CF)); + this.updateReg("PS", regPS, 2); + this.updateReg("S", (regPS & CPUDef.PS.SF), 1); + this.updateReg("Z", (regPS & CPUDef.PS.ZF), 1); + this.updateReg("A", (regPS & CPUDef.PS.AF), 1); + this.updateReg("P", (regPS & CPUDef.PS.PF), 1); + this.updateReg("C", (regPS & CPUDef.PS.CF), 1); } } var controlSpeed = this.bindings["speed"]; diff --git a/modules/pc8080/lib/panel.js b/modules/pc8080/lib/panel.js index ca4967a29..6e6ae7606 100644 --- a/modules/pc8080/lib/panel.js +++ b/modules/pc8080/lib/panel.js @@ -152,7 +152,7 @@ Panel.prototype.updateStatus = function(fForce) * any associated HTML controls to the new component. * * NOTE: Unlike most other component init() functions, this one is designed to be - * called multiple times: once at load time, so that we can binding our print() + * called multiple times: once at load time, so that we can bind our print() * function to the panel's output control ASAP, and again when the Computer component * is verifying that all components are ready and invoking their powerUp() functions. * diff --git a/modules/pc8080/lib/video.js b/modules/pc8080/lib/video.js index da05a0e7e..6a662e169 100644 --- a/modules/pc8080/lib/video.js +++ b/modules/pc8080/lib/video.js @@ -66,6 +66,7 @@ if (NODE) { function Video(parmsVideo, canvas, context, textarea, container) { Component.call(this, "Video", parmsVideo, Video, Messages.VIDEO); + this.setReady(); } Component.subclass(Video); diff --git a/modules/pcjs/lib/panel.js b/modules/pcjs/lib/panel.js index da835ffd8..ef3e8eb37 100644 --- a/modules/pcjs/lib/panel.js +++ b/modules/pcjs/lib/panel.js @@ -961,7 +961,7 @@ Panel.prototype.centerText = function(sText) * any associated HTML controls to the new component. * * NOTE: Unlike most other component init() functions, this one is designed to be - * called multiple times: once at load time, so that we can binding our print() + * called multiple times: once at load time, so that we can bind our print() * function to the panel's output control ASAP, and again when the Computer component * is verifying that all components are ready and invoking their powerUp() functions. * diff --git a/modules/shared/lib/component.js b/modules/shared/lib/component.js index ec5021ba8..2a01c1cba 100644 --- a/modules/shared/lib/component.js +++ b/modules/shared/lib/component.js @@ -459,7 +459,9 @@ Component.getComponentByID = function(id, idRelated) return Component.components[i]; } } - Component.log("Component ID '" + id + "' not found", "warning"); + if (Component.components.length) { + Component.log("Component ID '" + id + "' not found", "warning"); + } } return null; }; @@ -582,7 +584,7 @@ Component.bindComponentControls = function(component, element, sAppClass) parms = Component.getComponentParms(control); if (parms && parms['binding']) { component.setBinding(parms['type'], parms['binding'], control, parms['value']); - } else { + } else if (!parms || parms['type'] != "description") { Component.log("Component '" + component.toString() + "' missing binding" + (parms? " for " + parms['type'] : ""), "warning"); } iClass = aClasses.length; diff --git a/modules/shared/templates/components.css b/modules/shared/templates/components.css index 2f67dc6ec..b9dbaf5cd 100644 --- a/modules/shared/templates/components.css +++ b/modules/shared/templates/components.css @@ -39,7 +39,7 @@ float: left; font-family: "Lucida Console", monospace; } -.pcjs-control textarea { +.pcjs-controls textarea { font-family: Monaco, monospace; font-size: x-small; } diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index 62b87d22f..17c67090f 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -222,7 +222,7 @@
-
+
@@ -376,30 +376,30 @@ - + - + - - + - + - +
-
+
@@ -407,7 +407,7 @@ -
+

@@ -419,7 +419,7 @@
-
+