Release of v1.15.6

Some FDC tweaks, a CPU emulation fix, and some Debugger message improvements
This commit is contained in:
Jeff Parsons 2014-10-23 20:01:29 -07:00 committed by jeffpar
commit 326cfbb42c
146 changed files with 6798 additions and 859 deletions

View file

@ -926,7 +926,7 @@ MarkOut.prototype.convertMDMachineLinks = function(sBlock)
var sMachineFunc = "embed" + sMachine;
var sMachineClass = sMachine.toLowerCase();
var aMachineParms = aMatch[4].split(':');
var sMachineMessage = "(If you see this message, " + sMachine + "js is still loading, or JavaScript has been disabled)";
var sMachineMessage = "Waiting for " + sMachine + "js to start";
var sMachineID = aMachineParms[0];
var sMachineXSLFile = aMachineParms[1] || "";

View file

@ -5,7 +5,6 @@
"global": true,
"console": true,
"module": true,
"print": true,
"require": true
}
}
}

View file

@ -39,15 +39,15 @@ try {
* function (an alias for console.log). If JSC is running us instead,
* then this will fail (there is neither a global NOR a console object),
* but that's OK, because print() is a built-in function.
*
*
* TODO: Find a cleaner way of doing this, and while you're at it, alias
* Node's process.argv to JSC's "arguments" array, and Node's process.exit()
* to JSC's quit().
*
*
* UPDATE: Node *must* be used to run this test, because JSC's support for
* typed arrays is incomplete.
*/
global.print = console.log;
var print = console.log;
} catch(err) {}
function toHex(v, len) {

View file

@ -39,22 +39,22 @@ try {
* function (an alias for console.log). If JSC is running us instead,
* then this will fail (there is neither a global NOR a console object),
* but that's OK, because print() is a built-in function.
*
*
* TODO: Find a cleaner way of doing this, and while you're at it, alias
* Node's process.argv to JSC's "arguments" array, and Node's process.exit()
* to JSC's quit().
*/
global.print = console.log;
var print = console.log;
} catch(err) {}
/*
* I'm going to start by creating 4 sets of "mod,reg,r/m" aka OpMod tables:
*
*
* Set 0: mod,r/m is dst, size is byte, dispatch table is aOpModMemByte
* Set 1: mod,r/m is dst, size is word, dispatch table is aOpModMemWord
* Set 2: reg is dst, size is byte, dispatch table is aOpModRegByte
* Set 3: reg is dst, size is word, dispatch table is aOpModRegWord
*
*
* See p. 3-41 of "The 8086 Book" for more details.
*/
@ -354,8 +354,8 @@ function genMode(d, w, mrm, sGroup, sRO) {
* The 8086/8088 cycle counts below come from p.3-48 of "The 8086 Book", where it discusses EA
* ("effective address") calculations and the number of execution cycles required for each type
* of calculation.
*
*
*
*
*/
var fInline = true;
var nCycles = null;
@ -607,7 +607,7 @@ function genMode(d, w, mrm, sGroup, sRO) {
if (sGroup) {
/*
* Use this to generate ModRM decoders that accept an array (ie, "group") of functions, and pass along an implied argument as well
* Use this to generate ModRM decoders that accept an array (ie, "group") of functions, and pass along an implied argument as well
*/
if (sRO && reg != 7) {
sOpMod = "opMod" + (sGroup? sGroup : aDst[d]) + aSize[w] + toHex(mrm, 2);

View file

@ -245,7 +245,8 @@ var X86Op0F = {
* 145E:4BC3 CB RETF
*
* This code is expecting SGDT on an 80286 to set the 6th "undefined" byte to 0xFF. So we use setWord()
* instead of setByte() and force the upper byte to 0xFF. TODO: Remove the 0xFF00 on post-80286 processors.
* instead of setByte() and force the upper byte to 0xFF. TODO: Remove the 0xFF00 below on post-80286
* processors; also, this behavior may be unique to real-mode.
*/
this.setWord(this.regEA + 4, 0xFF00 | (this.addrGDT >> 16));
this.nStepCycles -= 11;
@ -269,8 +270,9 @@ var X86Op0F = {
dst = this.addrIDTLimit - this.addrIDT;
this.setWord(this.regEA + 2, this.addrIDT);
/*
* As with SGDT, the 6th byte is technically "undefined" on an 80286, but given that SGDT now sets it to 0xFF,
* we mimic SGDT.
* As with SGDT, the 6th byte is technically "undefined" on an 80286, but we now set it to 0xFF, for the
* same reasons discussed in SGDT (above). TODO: Remove the 0xFF00 below on post-80286 processors; also,
* this behavior may be unique to real-mode.
*/
this.setWord(this.regEA + 4, 0xFF00 | (this.addrIDT >> 16));
this.nStepCycles -= 12;

View file

@ -14,7 +14,7 @@
<!-- pcjs:sockets -->
</head>
<body>
<!-- Template revision 0037 (increment this number prior to any Git push that should trigger a rebuild of all web pages) -->
<!-- Template revision 0038 (increment this number prior to any Git push that should trigger a rebuild of all web pages) -->
<div class="common">
<div class="common-top">
<div class="common-top-left">
@ -22,7 +22,7 @@
<li><a href="/">Home</a></li>
<li><a href="/apps/pc/">Apps</a></li>
<li><a href="/disks/pc/">Disks</a></li>
<li><a href="/configs/pc/machines/">Machines</a></li>
<li><a href="/configs/">Machines</a></li>
<li><a href="/docs/pcjs/">Docs</a></li>
<li><a href="/pubs/">Pubs</a></li>
<li><a href="/blog/">Blog</a></li>
@ -76,4 +76,4 @@
</script>
<!-- pcjs:htmlfile("analytics.html") -->
</body>
</html>
</html>