diff --git a/emulator/B5500Processor.js b/emulator/B5500Processor.js index 6fa2f3b..235b6ea 100644 --- a/emulator/B5500Processor.js +++ b/emulator/B5500Processor.js @@ -51,6 +51,7 @@ function B5500Processor(procID, cc) { /**************************************/ B5500Processor.timeSlice = 5000; // Standard run() timeslice, about 5ms (we hope) +B5500Processor.memCycles = 6; // assume 6 us memory cycle time (the other option was 4 usec) B5500Processor.collation = [ // index by BIC to get collation value 53, 54, 55, 56, 57, 58, 59, 60, // @00: 0 1 2 3 4 5 6 7 @@ -190,7 +191,7 @@ B5500Processor.prototype.access = function(eValue) { break; } - this.cycleCount += 6; // assume 6 us memory cycle time (the other option was 4 usec) + this.cycleCount += B5500Processor.memCycles; if (acc.MAED) { this.I |= 0x02; // set I02F - memory address/inhibit error if (this.NCSF || this !== this.cc.P1) { @@ -1858,7 +1859,8 @@ B5500Processor.prototype.doublePrecisionAdd = function(adding) { var xa; // extended mantissa for A var xb; // extended mantissa for B - this.cycleCount += 8; // estimate some general overhead + // Estimate some general overhead and account for stack manipulation we don't do + this.cycleCount += B5500Processor.memCycles*4 + 8; this.adjustABFull(); // extract the top (A) operand fields: ma = this.A % 0x8000000000; // extract the A mantissa @@ -1936,7 +1938,7 @@ B5500Processor.prototype.doublePrecisionAdd = function(adding) { // is zero), so do the actual 78-bit addition as two 40-bit, signed, twos- // complement halves. Note that computing the twos-complement of the // extension requires a borrow from the high-order part, so the borrow - // is taken from the 40-bit twos-complement base (i.e., use 0xFFFFFFFFFF + // is taken from the 40-bit twos-complement base (i.e., using 0xFFFFFFFFFF // instead of 0x10000000000). if (sb) { // if B negative, compute B 2s complement this.cycleCount += 2; diff --git a/webUI/B5500SyllableDebugger.css b/webUI/B5500SyllableDebugger.css new file mode 100644 index 0000000..d552808 --- /dev/null +++ b/webUI/B5500SyllableDebugger.css @@ -0,0 +1,120 @@ +/*********************************************************************** +* retro-b5500/emulator B5500DistributionAndDisplay.css +************************************************************************ +* Copyright (c) 2012, Nigel Williams and Paul Kimpel. +* Licensed under the MIT License, see http://www.opensource.org/licenses/mit-license.php +************************************************************************ +* B5500 Emulator syllable debugger style sheet. +************************************************************************ +* 2012-11-25 P.Kimpel +* Original version, from webIU/B5500DistributionAndDisplay.css. +***********************************************************************/ + +BODY { + position: relative; + font-family: Arial, Helvetica, sans-serif; + font-size: small; + margin: 4px} + +DIV#LogoDiv { + position: absolute; + background-color: #666; + border-radius: 0.5em; + width: 198px; + height: 104px; + right: 0; + top: 0} + +DIV#BurroughsLogo { + background-color: black; + position: absolute; + top: 16px; + right: 16px; + border-top: 3px solid #EEE; + border-bottom: 3px solid #EEE} + +DIV#B5500Logo { + background-color: #EEE; + font-family: Arial Narrow, Arial, Helvetica, sans-serif; + font-size: 24px; + color: #333333; + letter-spacing: 1px; + padding-left: 4px; + padding-right: 4px; + position: absolute; + top: 56px; + right: 16px} + +IMG#BurroughsLogoImage { + width: 150px; + text-align: center; + vertical-align: middle; + padding-top: 3px; + padding-bottom: 3px; + padding-left: 8px; + padding-right: 8px} + +TABLE.normal, TABLE.standard { + border-spacing: 0; + border-collapse: collapse} + +TABLE.border{ + border-color: #CCCCCC; + border-width: 1px; + border-style: solid} + +CAPTION { + text-align: center; + padding-left: 4px; + padding-right: 4px; + font-weight: bold} + +TH { + vertical-align: bottom; + text-align: center; + padding-left: 2px; + padding-right: 2px; + font-family: "Arial", "Helvetica", sans-serif; + font-weight: bold} + +TABLE.normal>TBODY>TR>TD, TABLE.standard>TBODY>TR>TD { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 2px; + padding-right: 2px} + +TABLE.standard>THEAD>TR>TH, TABLE.standard>TBODY>TR>TD { + font-size: 85%} + +TABLE.standard>THEAD>TR>TH, TABLE.normal>THEAD>TR>TH { + text-align: center; + padding-left: 0.5ex; + padding-right: 0.5ex; + font-weight: bold} + +TABLE.border>THEAD>TR>TH, TABLE.border>TBODY>TR>TD { + border: 1px solid #CCCCCC} + +TABLE#RegisterBank1 { + position: relative} + +TABLE#RegisterBank2 { + position: absolute; + right: 0; + top: 120px} + +TR { + vertical-align: middle} + +.bold { + font-weight: bold} + +.center { + text-align: center} + +.data { + font-family: Lucida Sans Typewriter, Courier New, Courier, monospace} + +.number { + font-family: Lucida Sans Typewriter, Courier New, Courier, monospace; + text-align: right} diff --git a/webUI/B5500SyllableDebugger.html b/webUI/B5500SyllableDebugger.html new file mode 100644 index 0000000..9823e2f --- /dev/null +++ b/webUI/B5500SyllableDebugger.html @@ -0,0 +1,700 @@ + +
+
+ | Reg + | Addr + | Current (octal) + | FP Value + | Original (octal) + |
|---|---|---|---|---|
| STACK + | ||||
| A + | + + | + + | + | + |
| B + | + + | + + | + | + |
| S-0 + | 00000 + | + + | + | + |
| S-1 + | 11111 + | + + | + | + |
| S-2 + | 22222 + | + + | + | + |
| S-3 + | 33333 + | + + | + | + |
| S-4 + | 44444 + | + + | + | + |
| S-5 + | 55555 + | + + | + | + |
| S-6 + | 66666 + | + + | + | + |
| S-7 + | 77777 + | + + | + | + + |
| MEMORY + | ||||
| M+4 + | 44444 + | + + | + | + |
| M+3 + | 33333 + | + + | + | + |
| M+2 + | 22222 + | + + | + | + |
| M+1 + | 11111 + | + + | + | + |
| Mem + | + + | + + | + | + |
| M-1 + | 11111 + | + + | + | + |
| M-2 + | 22222 + | + + | + | + |
| M-3 + | 33333 + | + + | + | + |
| M-4 + | 44444 + | + + | + | + |
| X + | + + | ||||
| C + | + + | L + | + + | ||
| P + | + + + | ||||
| T + | + + + | ||||
| E + | + + | I + | + + | Q + | + + |
| M + | + + | G + | + + | H + | + + |
| S + | + + | K + | + + | V + | + + |
| F + | + + | R + | + + | ||
| Y + | + + | Z + | + + | N + | + + |
| + + + + + + + + | |||||
+ + +Syllable: + + + + +
+ + +