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 @@
-