From 0f1802b678e549e2cd50fb766535d929173c6a2d Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 26 Nov 2012 03:23:43 +0000 Subject: [PATCH] Implement initial B5500SyllableDebugger.html testbed. --- emulator/B5500Processor.js | 8 +- webUI/B5500SyllableDebugger.css | 120 ++++++ webUI/B5500SyllableDebugger.html | 700 +++++++++++++++++++++++++++++++ 3 files changed, 825 insertions(+), 3 deletions(-) create mode 100644 webUI/B5500SyllableDebugger.css create mode 100644 webUI/B5500SyllableDebugger.html 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 @@ + + +B5500 Processor Syllable Debugger + + + + + + + + + + + + + + + +
+ + +
+ +

B5500 Syllable Debugger

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
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: + + +  + +

+ + + \ No newline at end of file