From 5a4e6d38185513c13b49077c0ea9e9e5b844d418 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sun, 12 Mar 2017 20:38:25 -0700 Subject: [PATCH] Added support for both MACRO-10 macro defines and macro calls, including parameter substitution --- modules/pdp10/lib/macro10.js | 181 ++++++++++++------ versions/pdpjs/1.34.2/pdp10-dbg.js | 282 +++++++++++++++-------------- 2 files changed, 271 insertions(+), 192 deletions(-) diff --git a/modules/pdp10/lib/macro10.js b/modules/pdp10/lib/macro10.js index 37a029843..576e27d31 100644 --- a/modules/pdp10/lib/macro10.js +++ b/modules/pdp10/lib/macro10.js @@ -233,36 +233,39 @@ class Macro10 { this.sOperator = sOperator; sOperands = sOperands.trim(); - switch(sOperator) { - case "": - break; // eg, a blank line or a line that contains only a label and/or a comment + if (!this.parseMacro(sOperator, sOperands)) { - case "=": - this.addAssign(sLabel, sOperands); - break; + switch (sOperator) { + case "": + break; // eg, a blank line or a line that contains only a label and/or a comment - case Macro10.PSEUDO_OP.ASCII: - case Macro10.PSEUDO_OP.ASCIZ: - case Macro10.PSEUDO_OP.SIXBIT: - this.addASCII(sOperands); - break; + case "=": + this.addAssign(sLabel, sOperands); + break; - case Macro10.PSEUDO_OP.DEFINE: - case Macro10.PSEUDO_OP.IFE: - case Macro10.PSEUDO_OP.REPEAT: - this.addMacro(sOperator, sOperands); - break; + case Macro10.PSEUDO_OP.ASCII: + case Macro10.PSEUDO_OP.ASCIZ: + case Macro10.PSEUDO_OP.SIXBIT: + this.addASCII(sOperands); + break; - case Macro10.PSEUDO_OP.PAGE: // TODO - case Macro10.PSEUDO_OP.SUBTTL: // TODO - break; + case Macro10.PSEUDO_OP.DEFINE: + case Macro10.PSEUDO_OP.IFE: + case Macro10.PSEUDO_OP.REPEAT: + this.addMacro(sOperator, sOperands); + break; - default: - if (DEBUG) this.println(Str.toDec(this.nLine, 5) + ": label(" + sLabel + ") operator(" + sOperator + ") operands(" + sOperands + ") comment(" + sComment + ")"); - break; + case Macro10.PSEUDO_OP.PAGE: // TODO + case Macro10.PSEUDO_OP.SUBTTL: // TODO + break; + + default: + if (DEBUG) this.println(Str.toDec(this.nLine, 5) + ": label(" + sLabel + ") operator(" + sOperator + ") operands(" + sOperands + ") comment(" + sComment + ")"); + break; + } } - if (this.nLine >= 330) { + if (this.nLine >= 820) { this.dbg.printVariable(); this.error("temporary line limit reached"); return false; @@ -271,18 +274,42 @@ class Macro10 { } /** - * parseMacro() + * parseMacro(name, sOperands) * * @this {Macro10} + * @param {string} name + * @param {string} [sOperands] + * @return {boolean} */ - parseMacro() + parseMacro(name, sOperands) { - if (!this.sMacroDef) return; + var macro = this.tblMacros[name]; + if (!macro) return false; - var macro = this.tblMacros[this.sMacroDef]; - var sOperator = this.sMacroDef[0] == '@'? this.sMacroDef.substr(1) : this.sOperator; + if (sOperands != null) { + /* + * Process this macro call; start by extracting macro argument values from sOperands. + */ + var aValues = []; + var sDelims = ','; + if (sOperands[0] == '(') { + sDelims += ')'; + sOperands = sOperands.substr(1); + } + while (sOperands) { + sOperands = sOperands.trim(); + var sExp = this.getExpression(sOperands, sDelims); + if (!sExp) break; + aValues.push(sExp); + sOperands = sOperands.substr(sExp.length + 1); + } + this.parseText(macro.sText, macro.aParms, aValues); + return true; + } - switch(sOperator) { + if (name[0] != '@') return false; + + switch(name.substr(1)) { case Macro10.PSEUDO_OP.IFE: if (!macro.nOperand) { this.parseText(macro.sText); @@ -294,20 +321,56 @@ class Macro10 { this.parseText(macro.sText); } break; + + default: + return false; } + return true; } /** - * parseText(sText) + * isSymbolChar(ch) + * + * @this {Macro10} + * @param {string} ch + * @return {boolean} + */ + isSymbolChar(ch) + { + return !!ch.match(/[0-9A-Z$%.]/i); + } + + /** + * parseText(sText, aParms, aValues) * * @this {Macro10} * @param {string} sText + * @param {Array.} [aParms] + * @param {Array.} [aValues] */ - parseText(sText) + parseText(sText, aParms, aValues) { var asLines = sText.split(/\r?\n/); - for (var i = 0; i < asLines.length; i++) { - if (!this.parseLine(asLines[i] + '\r\n')) break; + for (var iLine = 0; iLine < asLines.length; iLine++) { + var sLine = asLines[iLine] + '\r\n'; + if (aParms) { + for (var iParm = 0; iParm < aParms.length; iParm++) { + var sParm = aParms[iParm]; + var sReplace = aValues[iParm] || ""; + var iSearch = 0; + while (true) { + var iMatch = sLine.indexOf(sParm, iSearch); + if (iMatch < 0) break; + iSearch = iMatch + 1; + var iMatchEnd = iMatch + sParm.length; + if ((!iMatch || !this.isSymbolChar(sLine[iMatch - 1])) && (iMatchEnd >= sLine.length || !this.isSymbolChar(sLine[iMatchEnd]))) { + sLine = sLine.substr(0, iMatch) + sReplace + sLine.substr(iMatchEnd); + iSearch = iMatch + sReplace.length; + } + } + } + } + if (!this.parseLine(sLine)) break; } } @@ -334,24 +397,22 @@ class Macro10 { } /** - * getExpression(sInput, chDelim) + * getExpression(sInput, sDelims) * * @this {Macro10} * @param {string} sInput - * @param {string} [chDelim] + * @param {string} [sDelims] * @return {string|null} (if the input string begins with an expression, return it) */ - getExpression(sInput, chDelim) + getExpression(sInput, sDelims = "") { + var i = 0; var sExp = null; var cNesting = 0; - for (var i = 0; i < sInput.length; i++) { + while (i < sInput.length) { var ch = sInput[i]; - if (ch == chDelim) { - if (!cNesting) { - sExp = sInput.substr(0, i); - break; - } + if (sDelims.indexOf(ch) >= 0) { + break; } if (ch == '<') { cNesting++; @@ -361,6 +422,13 @@ class Macro10 { break; } } + i++; + } + if (!cNesting) { + sExp = sInput.substr(0, i); + } + else if (cNesting > 0) { + this.error("extra angle bracket(s): " + sInput); } return sExp; } @@ -448,7 +516,7 @@ class Macro10 { */ addMacro(sOperator, sOperands) { - var match, name, aParms, nOperand, iDelim; + var match, name, aParms, nOperand, iBracket; if (sOperator == Macro10.PSEUDO_OP.DEFINE) { match = sOperands.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i); @@ -464,7 +532,7 @@ class Macro10 { name = match[1]; aParms = match[2].match(/[A-Z$%.][0-9A-Z$%.]*/g); nOperand = -1; - iDelim = 3; + iBracket = 3; } else { var sExp = this.getExpression(sOperands, ','); if (!sExp) { @@ -477,7 +545,7 @@ class Macro10 { name = '@' + sOperator; aParms = []; nOperand = this.dbg.parseExpression(sExp); - iDelim = 1; + iBracket = 1; } /* @@ -485,25 +553,31 @@ class Macro10 { * subsequent lines (1), the definition has already started on the current line (2), or the definition * started and ended on the current line (0). */ + name = name.toUpperCase(); this.nMacroDef = 1; - this.sMacroDef = name; var sText = ""; - if (match[iDelim]) { // if there IS an angle bracket... + if (match[iBracket]) { // if there IS an angle bracket... this.nMacroDef = 2; // then the macro definition has begun - sText = match[iDelim + 1]; + sText = match[iBracket + 1]; if (sText.slice(-1) == '>') { // and if there is ALSO a closing angle bracket... this.nMacroDef = 0; // the macro definition has also ended sText = sText.slice(0, -1); } } + this.tblMacros[name] = { name: name, aParms: aParms, nOperand: nOperand, sText: sText }; - if (!this.nMacroDef) this.parseMacro(); + + if (!this.nMacroDef) { + this.parseMacro(name); + } else { + this.sMacroDef = name; + } } /** @@ -529,9 +603,12 @@ class Macro10 { } } } - var macro = this.tblMacros[this.sMacroDef]; - macro.sText += sLine; - if (!this.nMacroDef) this.parseMacro(); + var name = this.sMacroDef || ""; + this.tblMacros[name].sText += sLine; + if (!this.nMacroDef) { + this.sMacroDef = null; + this.parseMacro(name); + } return sRemain; } diff --git a/versions/pdpjs/1.34.2/pdp10-dbg.js b/versions/pdpjs/1.34.2/pdp10-dbg.js index 397aad399..d57065728 100644 --- a/versions/pdpjs/1.34.2/pdp10-dbg.js +++ b/versions/pdpjs/1.34.2/pdp10-dbg.js @@ -31,8 +31,8 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ja(function(){return ba?-b:b}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -var ra={gc:0,zb:1,ic:2,jc:3,kc:4,lc:5,mc:6,nc:7,mb:8,oc:9,Ab:10,pc:11,qc:12,Bb:13,rc:14,sc:15,tc:16,uc:17,vc:18,wc:19,xc:20,yc:21,zc:22,Ac:23,Bc:24,Cc:25,Dc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,lb:65,fc:66,hc:67,Ec:68,E:69,Fc:70,Gc:71,Hc:72,Ic:73,Jc:74,Kc:75,Lc:76,Mc:77,Nc:78,Oc:79,Pc:80,Q:81,Qc:82,Rc:83,Sc:84,Tc:85,Uc:86,Vc:87, -Wc:88,Xc:89,Db:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Yc:97,$c:98,ad:99,d:100,e:101,bd:102,fd:103,gd:104,hd:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,nd:115,t:116,pd:117,qd:118,rd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127}; +var ra={hc:0,zb:1,jc:2,kc:3,lc:4,mc:5,nc:6,oc:7,mb:8,pc:9,Ab:10,qc:11,rc:12,Bb:13,sc:14,tc:15,uc:16,vc:17,wc:18,xc:19,yc:20,zc:21,Ac:22,Bc:23,Cc:24,Dc:25,Ec:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,lb:65,gc:66,ic:67,Fc:68,E:69,Gc:70,Hc:71,Ic:72,Jc:73,Kc:74,Lc:75,Mc:76,Nc:77,Oc:78,Pc:79,Qc:80,Q:81,Rc:82,Sc:83,Tc:84,Uc:85,Vc:86,Wc:87, +Xc:88,Yc:89,Db:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Zc:97,$c:98,ad:99,d:100,e:101,bd:102,fd:103,gd:104,hd:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,nd:115,t:116,pd:117,qd:118,rd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127}; function sa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e} function ua(a,b,c){b?12a?"0":"")+a}var b=new Date;return b.getFul function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a, f,e))});if(b&&"object"==typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g} function Ma(a,b){var c,d={Y:null,U:null,sa:null,ra:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.sa=g.load;d.ra=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ga=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(q(d.Y[0]),d=null):(q("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ga=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Pa=this.id:(this.Qa=this.id.substr(0,a),this.Pa=this.id.substr(a+1));this.A={ready:!1,Ja:!1,eb:!1,V:!1,error:!1};this.Ta=null;this.A.error=!1;this.X=c||0;this.C=this.v=this.H=this.F=this.ta=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date} -function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba?this.Qa=this.id:(this.Ra=this.id.substr(0,a),this.Qa=this.id.substr(a+1));this.A={ready:!1,Ja:!1,eb:!1,V:!1,error:!1};this.Ua=null;this.A.error=!1;this.X=c||0;this.C=this.v=this.H=this.G=this.ta=null;kb.push(this)}function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date} +function r(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.b["S"+a]=[0,0,!1,!1,this.Qb,a];this.C=this.v=this.H=this.F=null;this.exports={hold:this.Ib,toggle:this.ac,reset:this.Xb, -set:this.$b};Kb(this)}ka($b,r);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)}; -l.ka=function(a,b,c,d){if(this.F&&this.F.ka(a,b,c,d)||this.v&&this.v.ka(a,b,c,d)||this.C&&this.C.ka(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):r.prototype.ka.call(this,a,b,c,d)}};l.Da=function(a,b,c,d){this.F=a;this.H=b;this.v=c;this.C=d;ec(this);fc(this)};l.ua=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.u]);return a.data()}; -l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.Xb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])} -l.Ib=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.$b=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.ac=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1} -function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Rb=function(a){a||this.v.A.L||(G(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Sb=function(){};l.Mb=function(a){a||this.v.W()}; -l.Kb=function(a){if(!a&&!this.v.A.L)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Na(1);0c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.u&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.D)return h.La+=h.D-e,h.D=e,!0;if(e>=h.D+h.La){n=h.size-(e-k);n>f&&(n=f);h.La=e-h.D+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,n,16384,d);Dc(e,a.C,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+ua(b)),!0):Gc(Jc,b,c)} -function Ac(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.C(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;da;a++)this.b["S"+a]=[0,0,!1,!1,this.Rb,a];this.C=this.v=this.H=this.G=null;this.exports={hold:this.Jb,toggle:this.bc,reset:this.Yb, +set:this.ac};Kb(this)}ka($b,t);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.w=0)}; +l.ka=function(a,b,c,d){if(this.G&&this.G.ka(a,b,c,d)||this.v&&this.v.ka(a,b,c,d)||this.C&&this.C.ka(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart= +function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):t.prototype.ka.call(this,a,b,c,d)}};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;ec(this);fc(this)};l.ua=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ja=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.u]);return a.data()}; +l.restore=function(a){if(a=a[0])hc(this,this.i=a[0]),bc(this,this.w=a[1]),ic(this,a[2]);return!0};l.Yb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])} +l.Jb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.ac=function(a,b){if("SR"==a)return ic(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.bc=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1} +function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Sb=function(a){a||this.v.A.L||(G(this.v,this.i),this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Tb=function(){};l.Nb=function(a){a||this.v.W()}; +l.Lb=function(a){if(!a&&!this.v.A.L)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.C)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Oa(1);0c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.u&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.D)return h.Ma+=h.D-e,h.D=e,!0;if(e>=h.D+h.Ma){n=h.size-(e-k);n>f&&(n=f);h.Ma=e-h.D+n;e=k+16384;f-=n;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,n,16384,d);Dc(e,a.C,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+ua(b)),!0):Gc(Jc,b,c)} +function Ac(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.C(b&16383,b);a.w--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d=a.ha&&(a.ha+=a.la,c=!0);0<=a.ma&&a.ma<=dd(a)&&(a.la=a.ma=-1,$c(a),a.W(),c=!0);c&&a.j(dd(a)+" cycles: checksum="+m(a.za))}} -l.ka=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.A.V)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;ca.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Za*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.F&&hd(a.F)}sc(a,a.N);a.N=0;a.M=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;ca.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Za*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&hd(a.G)}sc(a,a.N);a.N=0;a.M=nb();a.P=0;fd(a);return d}function id(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c} -l.Yb=function(){if(this.A.L){this.Ra>=this.ab&&fd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.$a&&(this.M+=a,this.M>this.ya&&(this.M=this.ya))}try{do{var b=id(this,this.A.Ia?1:this.Ba);try{this.Na(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.bb>=ld&&(this.F&&H(this.F,void 0),this.bb=0);break}}while(this.A.L)}catch(e){this.W();this.F&&this.F.stop(nb(),dd(this));Hb(this, -e.stack||e.message);return}if(this.A.L){a=setTimeout;b=this.sb;this.P=nb();var c=this.$a;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.M;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aac&&(this.M-=c),c=0;this.Ra+=this.na;this.P+=c;a(b,c)}}}; -function pc(a,b){if(!Ib(a))if(a.A.L)a.j(a.toString()+" busy");else{ed(a);a.A.L=!0;a.A.Xa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.F&&(b&&hd(a.F,!0),a.F.start(a.M,dd(a)));a.C||a.status("Started");setTimeout(a.sb,0)}}l.Na=function(){return 0};l.W=function(a){var b=!1;if(this.A.L){kd(this);sc(this,this.N);this.N=0;this.A.L=!1;if(b=this.J.run)b.textContent="Run";this.F&&this.F.stop(nb(),dd(this));b=!0;this.C||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"]; -function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.rb=b;this.Oa=+a.addrReset||0;this.Eb=nd.bind(this);this.w=J.bind(this);this.wa=null;this.ob=[];this.A.complete=!1}ka(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.rb);this.A.L&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Oa;this.I=this.qa=-1;this.G=this.u=0;this.cb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.B=0;this.f=this.Ub;this.g=this.ec;this.wa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)}; -l.wb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ca,this.i,this.qa,this.I,this.u,this.B,this.xa,this.va,this.Oa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()}; -l.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.K=b.next().value;this.Ca=b.next().value;this.i=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.B=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Oa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.ec=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b}; -l.Na=function(a){this.A.complete=!0;var b=this.C?qd(this.C)?1:this.A.Xa?-1:0:0,c=a?this.A.Xa?0:1:-1;this.A.Xa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(rd(this.C,this.i,c)){this.W();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.wa||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&rd(this.C,this.i,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ca=this.f(this.qa),this.qa=-1):(this.K=this.Ca= -this.f(this.xa=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Ca/Xb|0;0<=a&&this.Eb(a)}while(0>4].call(this,a,a&15)}function L(a){this.w(a)} +l.Zb=function(){if(this.A.L){this.Sa>=this.ab&&fd(this,!0);this.na=0;this.ya=nb();if(this.P){var a=this.ya-this.P;a>this.$a&&(this.M+=a,this.M>this.ya&&(this.M=this.ya))}try{do{var b=id(this,this.A.Ia?1:this.Ba);try{this.Oa(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ba;++this.bb>=ld&&(this.G&&H(this.G,void 0),this.bb=0);break}}while(this.A.L)}catch(e){this.W();this.G&&this.G.stop(nb(),dd(this));Hb(this, +e.stack||e.message);return}if(this.A.L){a=setTimeout;b=this.sb;this.P=nb();var c=this.$a;this.na&&(c=Math.round(c*this.na/this.Ba));var c=c-(this.P-this.ya),d=this.P-this.M;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,ed(this)));if(0>c||this.aac&&(this.M-=c),c=0;this.Sa+=this.na;this.P+=c;a(b,c)}}}; +function pc(a,b){if(!Ib(a))if(a.A.L)a.j(a.toString()+" busy");else{ed(a);a.A.L=!0;a.A.Xa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&hd(a.G,!0),a.G.start(a.M,dd(a)));a.C||a.status("Started");setTimeout(a.sb,0)}}l.Oa=function(){return 0};l.W=function(a){var b=!1;if(this.A.L){kd(this);sc(this,this.N);this.N=0;this.A.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(nb(),dd(this));b=!0;this.C||this.status("Stopped")}this.A.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"]; +function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.rb=b;this.Pa=+a.addrReset||0;this.Fb=nd.bind(this);this.w=J.bind(this);this.wa=null;this.ob=[];this.A.complete=!1}ka(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.rb);this.A.L&&this.W();this.b=this.K=this.Ca=0;this.i=this.xa=this.Pa;this.I=this.qa=-1;this.F=this.u=0;this.cb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.i;this.B=0;this.f=this.Vb;this.g=this.fc;this.wa=null;Zc(this);this.A.error=!1;Wc.prototype.reset.call(this)}; +l.wb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ca,this.i,this.qa,this.I,this.u,this.B,this.xa,this.va,this.Pa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()}; +l.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.K=b.next().value;this.Ca=b.next().value;this.i=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.B=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Pa=b.next().value;b=a[2];this.T=b[0];ed(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.fc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b}; +l.Oa=function(a){this.A.complete=!0;var b=this.C?qd(this.C)?1:this.A.Xa?-1:0:0,c=a?this.A.Xa?0:1:-1;this.A.Xa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(rd(this.C,this.i,c)){this.W();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.wa||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&rd(this.C,this.i,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ca=this.f(this.qa),this.qa=-1):(this.K=this.Ca= +this.f(this.xa=this.i),this.i=(this.i+1)%Rb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Qb;a=this.K&4194304?-1:this.Ca/Xb|0;0<=a&&this.Fb(a)}while(0>4].call(this,a,a&15)}function L(a){this.w(a)} function td(){var a=0,b=this.f(this.b),c=b/Yb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Yb+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function ud(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}} function vd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Yb&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function wd(a,b){this.g(b,this.f(this.b))}function xd(a,b){this.g(b,this.b)}function yd(a,b){this.g(this.b,this.f(b))}function zd(a,b){this.g(b,0)}function Qd(a,b){this.g(b,C-this.f(b))}function Rd(a,b){this.g(b,C)} function Sd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Td(a,d,c)+(c-(c&x)))}function Ud(a,b){var c=this.f(b);this.g(b,Td(a,c,0))}function Vd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Td(a,c,b)+(b-(b&x)))}function Wd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Xd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Td(a,d,c)+c)} function Yd(a,b){var c=this.b*y,d=this.f(b);this.g(b,Td(a,d,c)+c)}function Zd(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Td(a,c,b)+b)}function $d(a,b){var c=this.f(this.b),d=(c&x)*y,c=Td(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ae(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,be(a,d,c)+c)}function ce(a,b){var c=this.f(b);this.g(b,be(a,c,this.b)+this.b)}function de(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)} function ee(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Sb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function fe(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,be(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,be(a,c,0))}function he(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,be(a,c,b)+b)}function ie(a,b){var c=this.f(this.b),d=c/y|0,c=be(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function M(a){je[a&7].call(this,a,a>>3&127)} function ke(){}function le(){}function J(a){this.j("undefined opcode: "+ua(a));pd(this,-1);this.W()}function me(a){a>z&&(a!=A?a=Ub-a:this.u|=163840);return a}function N(a,b){var c=(a+b)%D;ne.call(this,a,b,c);return c} -function oe(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%D;b=this.G=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.cb;f[0]=0;f[1]=0;f=this.oa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.pa;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=D,b[1]--),qe(this.cb,this.oa),re(this.pa)))break;se(this.ga);se(this.oa)}while(!re(this.oa)); -a=this.cb[0];this.G=this.pa[0];d&&a&&(a=D-a);e&&this.G&&(this.G=D-this.G);return a} -function te(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(d=D-d,b=!b);e>z&&(e=D-e,b=!b);if(dz)&&(f!=C||a<=z)&&(this.u|=131072),a;c=a;b=f;a=b-b%A;b=2*b%D+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.u|=131072);this.G=c;return b} +function oe(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.cb;f[0]=0;f[1]=0;f=this.oa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.pa;c[0]=a;for(c[1]=b;0b[0]&&(b[0]+=D,b[1]--),qe(this.cb,this.oa),re(this.pa)))break;se(this.ga);se(this.oa)}while(!re(this.oa)); +a=this.cb[0];this.F=this.pa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a} +function te(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(d=D-d,b=!b);e>z&&(e=D-e,b=!b);if(dz)&&(f!=C||a<=z)&&(this.u|=131072),a;c=a;b=f;a=b-b%A;b=2*b%D+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b} function ue(a){a?a==A?this.u|=163840:a=Ub-a:this.u|=98304;return a}function O(a,b){var c=a-b;0>c&&(c+=D);ne.call(this,c,b,a);return c}function ne(a,b,c){a=Math.trunc(a/Tb);b=Math.trunc(b/Tb);c=Math.trunc(c/Tb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function P(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function Q(a,b){return P(a,(~(b/E|0)&15)*E+(~b>>>0))}function R(a,b){return(a>>0)}function T(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function U(a){return a>>0)}function W(a){return(a/y|0)+(a&x)*y}function be(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Sb?x*y:0}return b}function Td(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b} function qe(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function pe(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function se(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function re(a){return!a[0]&&!a[1]} @@ -115,9 +115,9 @@ var sd=[L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L, function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},wd,xd,yd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ue.call(this,this.f(this.b)))},function(a,b){this.g(b,ue.call(this,this.b))},function(a,b){this.g(this.b, ue.call(this,this.f(b)))},function(a,b){a=ue.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,me.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,me.call(this,this.f(b)))},function(a,b){a=me.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,te.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,te.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,te.call(this,this.f(b),this.f(this.b), -!0))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,te.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.G)},function(a,b){this.g(b,te.call(this,this.f(b),this.b));this.g(b+1&15,this.G)},function(a,b){this.g(this.b,te.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.G)},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ -1&15,this.G))},function(a,b){a=oe.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.G))},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.G))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.G))}, -function(a,b){a=this.f(b);b=this.f(b+1&15);b=oe.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.G))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>z?-(D-a):a;0d?A:0,c=z):(d=d*Math.pow(2,c)%A,c=A-Math.pow(2,35-c)),a<=z?a+c>z&&(this.u|=131072):a-c<=z&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+D:d; +!0))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,te.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,te.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,te.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,te.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ +1&15,this.F))},function(a,b){a=oe.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=oe.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))}, +function(a,b){a=this.f(b);b=this.f(b+1&15);b=oe.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=oe.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>z?-(D-a):a;0d?A:0,c=z):(d=d*Math.pow(2,c)%A,c=A-Math.pow(2,35-c)),a<=z?a+c>z&&(this.u|=131072):a-c<=z&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+D:d; this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%D+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0z&& dz&&ez&&(this.u|=131072):e-c<=z&&(this.u|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.u|=131072):(f-c<=z&&(this.u|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?C:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=C,e+=A)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+ d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+ @@ -148,123 +148,125 @@ b){G(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){G(this, this.f(b);P(a,this.b*y)||G(this,this.i+1);this.g(b,T(a,this.b*y))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);P(a,this.b)&&G(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b); P(a,c)||G(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)||G(this,this.i+1);this.g(b,T(a,c))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){G(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));P(a,c)&&G(this,this.i+1);this.g(b,T(a,c))},M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M, M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M],je=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}]; -function we(a){r.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.G=wa(this.w);if(this.w){a=this.w;var b=xa(this.G);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.Qa,a,b),(a=Ma(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);xe(c)})}}ka(we,r); +function we(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Na()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(lb(c.Ra,a,b),(a=Ma(a,b))?(c.b=a.Y,c.U=a.U):c.w=null);xe(c)})}}ka(we,t); we.prototype.Da=function(a,b,c,d){this.H=b;this.v=c;this.C=d;xe(this)};we.prototype.ua=function(){this.U&&(this.C&&ye(this.C,this.id,this.B,this.u,this.U),delete this.U);return!0};we.prototype.ja=function(){return!0}; function xe(a){if(!Jb(a)){if(a.w){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Hb(a,"ROM size ("+m(a.b.length,8,!0)+") does not match specified size ("+m(a.u,8,!0)+")");else{var b;b=a.B;if(Fc(a.H,b,a.u,Nc)){var c;for(c=0;c>>f.i;0>>= f.i;0>>a.i;0g&&g>=-A&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h=ra.lb&&c<=ra.Db&&(b=c-(ra.lb-ra.zb));b&&(a.preventDefault&&a.preventDefault(),d.Ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Bb&&(b=ra.Ab);d.Ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation(); -a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Da=function(a,b,c,d){this.F=a;this.H=b;this.v=c;this.C=d;Kb(this)}; -l.xb=function(a){if(!this.b){var b=Yc(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Pa)return;c=Ea(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Qa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ua=function(a,b){if(!b)if(this.xb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0}; -l.ja=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new F(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ua=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d>>a.i;0g&&g>=-A&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h=ra.lb&&c<=ra.Db&&(b=c-(ra.lb-ra.zb));b&&(a.preventDefault&&a.preventDefault(),d.Va(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ra.Bb&&(b=ra.Ab);d.Va(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation(); +a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Va(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Da=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.C=d;Kb(this)}; +l.xb=function(a){if(!this.b){var b=Yc(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Qa)return;c=Ea(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Ra+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ua=function(a,b){if(!b)if(this.xb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0}; +l.ja=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new F(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Va=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.R?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}function Ge(a,b){if(32>=a.la)b|=0;else if(a=Math.pow(2,a.la-1),b<-a||b>=a)b%=a;return b} function He(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f=b.pop(),g=b.pop();switch(e){case "*":e=g*f;break;case "/":if(!f)return!1;e=g/f;break;case "%":if(!f)return!1;e=g%f;break;case "+":e=g+f;break;case "-":e=g-f;break;case "<<":e=g<>":e=g>>f;break;case ">>>":e=g>>>f;break;case "<":e=g":e=g>f?1:0;break;case ">=":e=g>=f?1:0;break;case "==":e=g==f?1:0;break;case "!=":e=g!=f?1:0;break;case "&":e= 32>=a.la?g&f:((g/Ie|0)&(f/Ie|0))*Ie+((g&f)>>>0);break;case "!":case "|":e=32>=a.la?g|f:(g/Ie|0|f/Ie|0)*Ie+((g|f)>>>0);break;case "^^":e=g^f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;default:return!1}b.push(Ge(a,e))}return!0} -function Je(a,b,c){var d;b&&(b=Ke(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1,S--;g=t+g;d>>=8}d=m(c,0,!0)+" "+c+". "+ua(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e} +function Ne(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4>=1,S--;g=q+g;d>>=8}d=m(c,0,!0)+" "+c+". "+ua(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e} function Oe(a,b){if(b)return Ne(a,b,a.K[b]);var c=0;for(b in a.K)Ne(a,b,a.K[b]),c++;return 0>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Me={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9},Ie=Math.pow(2,32); -function Pe(a){Ee.call(this,a);this.Aa=!1;this.ya=18;this.la=36;this.na=["<",">"];this.ma=[];this.za=X();this.M=X(0);this.ga=X(0);this.ba=X(0);this.G=[];this.b=this.N=this.I=[];Qe(this);this.S=this.ha=0;this.i=[];this.va=void 0;Re(this);this.C=this;this.oa={};this.X=this.tb=0;this.T=null;this.P=[];Se(this,a.messages);this.xa=a.commands;this.O=0;this.Fa=this.wa=null;this.B=this.Ca=this.Ba=this.fa=this.qa=0;this.pa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return cd(b, -a)}):void 0===global[v]&&(global[v]=function(a){return cd(b,a)})}ka(Pe,Ee);function Te(a){a=a&&a.D;null==a&&(a=-1);return a}function X(a,b,c){return{D:void 0===a?null:a,Sa:void 0===b?!1:b,ia:!1,ca:c}}function Ue(a,b,c,d){a.D=b;a.Sa=c||!1;a.ia=!1;a.ca=d}function Ve(a){return[a.D,a.Sa,a.ia,a.ca,a.Va]}function We(a,b){var c=X(b[0],b[1],b[2]);c.ia=b[3];b[4]&&(c.pb=Fe(a,c.Va=b[4]));return c}l=Pe.prototype; -l.Da=function(a,b,c,d){this.H=b;this.F=a;this.v=c;this.ea=a.u;this.ya=b.G;(a=Yc(a,"messages"))&&Se(this,a);Xe(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Te(Ye(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(m(p.id,8)+" %"+m(e<"];this.ma=[];this.za=X();this.M=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.N=this.I=[];Qe(this);this.S=this.ha=0;this.i=[];this.va=void 0;Re(this);this.C=this;this.oa={};this.X=this.tb=0;this.T=null;this.P=[];Se(this,a.messages);this.xa=a.commands;this.O=0;this.Fa=this.wa=null;this.B=this.Ca=this.Ba=this.fa=this.qa=0;this.pa=this.ea=this.aa=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return cd(b, +a)}):void 0===global[v]&&(global[v]=function(a){return cd(b,a)})}ka(Pe,Ee);function Te(a){a=a&&a.D;null==a&&(a=-1);return a}function X(a,b,c){return{D:void 0===a?null:a,Ta:void 0===b?!1:b,ia:!1,ca:c}}function Ue(a,b,c,d){a.D=b;a.Ta=c||!1;a.ia=!1;a.ca=d}function Ve(a){return[a.D,a.Ta,a.ia,a.ca,a.Wa]}function We(a,b){var c=X(b[0],b[1],b[2]);c.ia=b[3];b[4]&&(c.pb=Fe(a,c.Wa=b[4]));return c}l=Pe.prototype; +l.Da=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.ya=b.F;(a=Yc(a,"messages"))&&Se(this,a);Xe(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Te(Ye(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Ic[c],p&&d.j(m(p.id,8)+" %"+m(e<a&&a>=-A&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function Y(a,b){return I(a,b.D)}function af(a){return ua(a/Rb,6)+" "+ua(a%Rb,6)} function Se(a,b){a.C=a;a.X=a.tb=536870916;a.T=null;a.P=[];b=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Zb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d>23&&a.v.xa==b&&(b=pd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(Ue(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1} -function sf(a,b,c,d){var e=X(b.D),f=a.Ea(b,1),g,h,k,n=0,p=f/Vb|0,t;for(t in tf)if(g=tf[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=uf;n=p&3;break;case 32256:k=vf;n=p&7;break;case 29248:k=Zf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>ag&&(k="B");k=bg[g||0]+k;if(g){if(28700==h)n=f/Wb&127,h=I(a,n,-1);else if(n=f>>23&15,h=I(a,n,-1),g==cg&&(g=dg[n]))k=bg[g],h="";k=Da(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=I(a,f&262143,-1);(f=f>>18&15)&&(k+="("+I(a,f,-1)+")")}else k=Da(k,8)+af(f);f=k;g="";h=Y(a, +function sf(a,b,c,d){var e=X(b.D),f=a.Ea(b,1),g,h,k,n=0,p=f/Vb|0,q;for(q in tf)if(g=tf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=uf;n=p&3;break;case 32256:k=vf;n=p&7;break;case 29248:k=wf,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>xf&&(k="B");k=ag[g||0]+k;if(g){if(28700==h)n=f/Wb&127,h=I(a,n,-1);else if(n=f>>23&15,h=I(a,n,-1),g==cg&&(g=dg[n]))k=ag[g],h="";k=Da(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=I(a,f&262143,-1);(f=f>>18&15)&&(k+="("+I(a,f,-1)+")")}else k=Da(k,8)+af(f);f=k;g="";h=Y(a, e)+":";if(-1!==e.D&&-1!==b.D){do if(k=a.Ea(e,1),g+=" "+af(k),null==e.D)break;while(e.D!=b.D)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ia?h+("cycles="+dd(a.v).toString()+" cs="+m(a.v.za)):h+(null!=d?"="+d.toString():""));return h} -function eg(a,b,c,d){var e=-1,f,g,h=b.toUpperCase(),k;for(k in dg)if(g=dg[k],h==bg[g]){h=bg[cg];c=I(a,+k)+","+c;break}for(var n in tf){f=+n;var p=tf[n];switch(f){case 32512:k=uf;break;case 32256:k=vf;break;case 29248:k=Zf;break;default:k=[""]}for(var t in p){g=p[t];for(var B=0;Bag&&(S="B");if(h==bg[g]+S){e=29248!=f?B:(B&3)<<1|(B&12)<<2;e=(t|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}if(0<=e)if(c)for(b=c.split(","),c=0;ct||127t||15t||262143t|| -15>>d.i],!1)}a.N=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.qa=0;a.ha=0} +function eg(a,b,c,d){var e=-1,f,g,h=b.toUpperCase(),k;for(k in dg)if(g=dg[k],h==ag[g]){h=ag[cg];c=I(a,+k)+","+c;break}for(var n in tf){f=+n;var p=tf[n];switch(f){case 32512:k=uf;break;case 32256:k=vf;break;case 29248:k=wf;break;default:k=[""]}for(var q in p){g=p[q];for(var B=0;Bxf&&(S="B");if(h==ag[g]+S){e=29248!=f?B:(B&3)<<1|(B&12)<<2;e=(q|e<<6)*Vb;break}}if(0<=e)break}if(0<=e)break}if(0<=e)if(c)for(b=c.split(","),c=0;cq||127q||15q||262143q|| +15>>d.i],!1)}a.N=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.qa=0;a.ha=0} l.Ha=function(a,b,c){var d=!0;c||fg(this,a,b,!1,!0);if(a!=this.b){var e=Te(b);if(-1===e)this.j("invalid address: "+Y(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ha(e&16383,a==this.I)}}d&&(a.push(b),c?b.ia=!0:(gg(this,a,a.length-1,"set"),Re(this)));return d};function fg(a,b,c,d,e){var f=!1;c=Te(c);for(var g=1;g>>d.i],b==a.I));h.ia||Re(a);break}}return f} -function hg(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);Ue(e.za,d);f+="="+I(e,e.Ea(e.za),36)+" ";c+=f}if(b){b="";for(d=0;d=ff?1:d==df?23:18)+" "),b+=e;c+="\n"+b}return c}l.ub=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],t=Fa(p,k,a.ub);0>t&&p.splice(-(t+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({od:b,D:c,Jb:d,U:e,qb:f})}function kg(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b>>0,h=f.Jb;if(e>=g&&e>>0,g],q=Fa(p,k,a.ub);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({od:b,D:c,Kb:d,U:e,qb:f})}function kg(a,b,c){var d=[],e=Te(b)>>>0;for(b=0;b>>0,h=f.Kb;if(e>=g&&eb){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case cf:G(h, -g);Ue(a.M,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.F);a.j("updated registers:")}}a.j(jg(a,e));c&&(Ue(a.M,d.i),qf(a,Y(a,a.M)))}}function qg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.D=n.D;h.Sa=n.Sa;h.ia=n.ia;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.D-k;c++}}} +g);Ue(a.M,h.i);break;case ff:f=65536;break;case gf:f=32768;break;case hf:f=131072;break;case jf:f=32;break;case kf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);H(a.G);a.j("updated registers:")}}a.j(jg(a,e));c&&(Ue(a.M,d.i),qf(a,Y(a,a.M)))}}function qg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.D=n.D;h.Ta=n.Ta;h.ia=n.ia;h.ca=n.ca;a.j(sf(a,b,g,f));e-=b.D-k;c++}}} function ig(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(of+b):(a.R&&(a.j("ended assemble at "+Y(a,a.ba)),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Jb(a)&&0p||"z"na.length&&(a.j("note: only "+na.length+" available"),ea=na.length);ia-=ea;0>ia&&(null==na[na.length-1].D?(ea=ia+ea,ia=0):ia+=na.length);var Ed= -[];"call"==Bf&&(wb=1E5,Ed=["CALL"]);for(void 0!==Af&&a.j(ea+" instructions earlier:");0=na.length&&(ia=0);a.va=ea;Df++;wb--}}Df||(a.j("no "+Cf+"history available"),a.va=void 0)}else{var db=Ye(a,ma,a.ga);if(db){var Ia=0,Gf="ds"==ab;if(za){if("l"==za.charAt(0))za=za.substr(1)||ch,Ia=Le(a,za);else{var Hf=Ye(a,za);Hf&& -(Ia=Hf.D-db.D)}0>Ia&&(Ia=0);65536Lf;Lf++)Jf+=String.fromCharCode((wc%64|0)+32),wc/=64}Ja&&(Ja+="\n");Ja=Gf?Ja+(Ka+","):Ja+(ma+": "+Ka+(0>Kf?" "+Jf:""))}Ja&&a.j(Ja);a.ca=eh}}}}break;case "e":if("else"==g[0])break;var Mf,Nf,Of= -g[0],Hd=g[1];"e"==Of||"ew"==Of?(Mf=a.Ea,Nf=a.nb):Hd=null;if(null==Hd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var xc=Ye(a,Hd,a.ga);if(xc)for(var Id=2;IdLd;){for(var La=null,ih=256;65536>Ab.D>>>0;){Md.D=a.Ea(Ab,2);if(null==Ab.D||!ih--)break;if(!(Md.D&1)){for(var jh= -a,yc=Md,Qf=null,Bb=yc.D,Rf=Bb,Nd=1;6>=Nd&&Bb;Nd++){if(2Xf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update"); -else if(a.O)a.j("step in progress");else{var Yf=X(a.v.i);a.Ea(Yf);a.O?(a.Ha(a.b,Yf,!0),mf(a)||(a.F&&hd(a.F),a.O=0)):rg(a,Xf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}pf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Db=+g[2];if(8==Db||10==Db||16==Db)a.ca=Db;else{a.j("invalid base: "+Db);break}}a.j("default base: "+a.ca);break;case "cs":var Eb;void 0!==g[3]&&(Eb=+g[3]);switch(g[2]){case "int":a.v.la=Eb;break;case "start":a.v.Aa=Eb;break;case "stop":a.v.ma=Eb;break; +case "b":a:{var q=g[0],B=g[1],S=b;if("?"==B)a.j("breakpoint commands:"),a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var la=q.charAt(1);if("l"==la){var Ad;Ad=0+hg(a,a.b);Ad+=hg(a,a.N);(Ad+=hg(a,a.I))||a.j("no breakpoints")}else if("n"==la){var yf=+B||0;B&&(a.ha=yf);a.j("break after "+yf+" instruction(s)")}else if(void 0=== +B)a.j("missing breakpoint address");else{var Z=X();if("*"!=B&&(Z=Ye(a,B,a.M),!Z))break a;"c"==la?null==Z.D?(Qe(a),a.j("all breakpoints cleared")):fg(a,a.b,Z)||fg(a,a.N,Z)||fg(a,a.I,Z)||a.j("breakpoint missing: "+Y(a,Z)):null!=Z.D&&($e(a,Z,S),"p"==la?a.Ha(a.b,Z):"r"==la?a.Ha(a.N,Z):"w"==la?a.Ha(a.I,Z):a.j("unknown breakpoint command: "+la))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var $a,ab=g[0],ma=g[1],za=g[2],dh=g[3];if("?"==ma){var bb="";for($a in Zb)a.oa[$a]&&(bb&&(bb+=","),bb+= +$a);bb+=",state,symbols";a.j("dump memory commands:");a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");bb.length&&a.j("dump extension commands:\n\t"+bb)}else if("state"==ma){var Bd=sg(a.G,!0);"console"==za?console.log(Bd):(a.ta&&(a.ta.value=""),Bd&&a.j(Bd))}else if("symbols"==ma)for(var Cd=0;Cdna.length&&(a.j("note: only "+na.length+" available"),ea=na.length);ia-=ea;0>ia&&(null==na[na.length-1].D?(ea=ia+ea,ia=0):ia+=na.length);var Ed= +[];"call"==Df&&(wb=1E5,Ed=["CALL"]);for(void 0!==Cf&&a.j(ea+" instructions earlier:");0=na.length&&(ia=0);a.va=ea;Ff++;wb--}}Ff||(a.j("no "+Ef+"history available"),a.va=void 0)}else{var db=Ye(a,ma,a.ga);if(db){var Ia=0,If="ds"==ab;if(za){if("l"==za.charAt(0))za=za.substr(1)||dh,Ia=Le(a,za);else{var Jf=Ye(a,za);Jf&& +(Ia=Jf.D-db.D)}0>Ia&&(Ia=0);65536Nf;Nf++)Lf+=String.fromCharCode((wc%64|0)+32),wc/=64}Ja&&(Ja+="\n");Ja=If?Ja+(Ka+","):Ja+(ma+": "+Ka+(0>Mf?" "+Lf:""))}Ja&&a.j(Ja);a.ca=fh}}}}break;case "e":if("else"==g[0])break;var Of,Pf,Qf= +g[0],Hd=g[1];"e"==Qf||"ew"==Qf?(Of=a.Ea,Pf=a.nb):Hd=null;if(null==Hd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var xc=Ye(a,Hd,a.ga);if(xc)for(var Id=2;IdLd;){for(var La=null,jh=256;65536>Ab.D>>>0;){Md.D=a.Ea(Ab,2);if(null==Ab.D||!jh--)break;if(!(Md.D&1)){for(var kh= +a,yc=Md,Sf=null,Bb=yc.D,Tf=Bb,Nd=1;6>=Nd&&Bb;Nd++){if(2Zf)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update"); +else if(a.O)a.j("step in progress");else{var $f=X(a.v.i);a.Ea($f);a.O?(a.Ha(a.b,$f,!0),mf(a)||(a.G&&hd(a.G),a.O=0)):rg(a,Zf?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}pf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Db=+g[2];if(8==Db||10==Db||16==Db)a.ca=Db;else{a.j("invalid base: "+Db);break}}a.j("default base: "+a.ca);break;case "cs":var Eb;void 0!==g[3]&&(Eb=+g[3]);switch(g[2]){case "int":a.v.la=Eb;break;case "start":a.v.Aa=Eb;break;case "stop":a.v.ma=Eb;break; default:a.j("unknown cs option");break a}void 0!==Eb&&$c(a.v);a.j("checksums "+(a.v.A.Ia?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"), a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":rg(a,g[0],g[1]);break;case "u":qf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){og(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.rb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){qg(a,b.substr(1));break}var Od="commands:",Pd;for(Pd in tg)Od+="\n"+Da(Pd,9)+tg[Pd];qd(a)||(Od+="\nnote: history disabled if no exec breakpoints"); -a.j(Od);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch($f){a.j("Debugger "+($f.stack||$f.message)),d=!1}return d}function cd(a,b,c){b=Fe(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0} -var tg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},ag=20,cg=85,bg=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV".split(" "), -cf=0,df=1,ef=2,ff=3,gf=4,hf=5,jf=6,kf=7,bf="PC RA EA C0 C1 OV ND PD".split(" "),ug={},tf=(ug[28672]={0:101},ug[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:cg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},ug[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:ag,9216:53,9472:52, +a.j(Od);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(bg){a.j("Debugger "+(bg.stack||bg.message)),d=!1}return d}function cd(a,b,c){b=Fe(a,b,c);for(var d in b)if(!ig(a,b[+d]))return!1;return!0} +var tg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},xf=20,cg=85,ag=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV".split(" "), +cf=0,df=1,ef=2,ff=3,gf=4,hf=5,jf=6,kf=7,bf="PC RA EA C0 C1 OV ND PD".split(" "),ug={},tf=(ug[28672]={0:101},ug[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:cg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},ug[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:xf,9216:53,9472:52, 9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},ug[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},ug[29248]={24576:79,24640:80,25088:81,25152:82},ug[28700]={28672:93,28676:94,28680:95,28684:96,28688:97, -28692:98,28696:99,28700:100},ug),uf=["","I","M","S"],vf=" L E LE A GE N G".split(" "),Zf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),dg={8:102,4:103,2:104,6:105,1:106},lf=1E3,of=">> ";Ya(function(){for(var a=w(document,v,"debugger"),b=0;b([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&e.j("warning"+(e.w?" at line "+va(e.w):"")+": "+("unrecognized HTML entity: "+ -f[0]))}var B,S=d.split(/\r?\n/);for(B=0;B"==b[d]&&(a.b--,1==a.b)){a.b=0;c=b.substr(d+1);b=b.substr(0,d);break}a.H[a.v].Wa+=b;a.b||wg(a);b=c}if(a.b)return!0}null!=a.i&&(b=xg(a,b));c=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+ -b),!1;b=c[1];d=c[2].toUpperCase();c=c[3].trim();if(b){var e=b.slice(-1);b=b.slice(0,-1);":"==e?yg(a,b,a.J,!0):(c=d+c,d=e)}a.F=d;c=c.trim();switch(d){case "=":d=Je(a.u,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case zg:case Ag:case Bg:xg(a,c);break;case Cg:case Dg:case Eg:a:{b=d;var f;if(b==Cg){d=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!d){a.error("unrecognized "+b+" definition: "+c);break a}b=d[1];c=d[2].match(/[A-Z$%.][0-9A-Z$%.]*/g);e=-1;f=3}else{for(var d= -c,e=null,g=f=0;g"==h&&0>--f){a.error("missing angle bracket(s): "+d);break}}if(!e){a.error("missing "+b+" expression: "+c);break a}c=c.substr(e.length+1);e=e.trim();d=c.match(/\s*(<|)(.*)/i);b="@"+b;c=[];e=Je(a.u,e);f=1}a.b=1;a.v=b;g="";d[f]&&(a.b=2,g=d[f+1],">"==g.slice(-1)&&(a.b=0,g=g.slice(0,-1)));a.H[b]={name:b,Zc:c,yb:e,Wa:g};a.b||wg(a)}}return 330<=a.w?(Oe(a.u),a.error("temporary line limit reached"),!1): -!0}function wg(a){if(a.v){var b=a.H[a.v];switch("@"==a.v[0]?a.v.substr(1):a.F){case Dg:b.yb||Fg(a,b.Wa);break;case Eg:for(;0d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.C+=b}if(null==a.i){var e=0;b=0;var f,g,d=a.C.length;a.F==Ag&&d++;for(var h=0;h=k&&(k-=32),k=k+32&63);b+=k*Math.pow(2,g);g-=f;e++;0>g&&(e=b,a.B[a.J++]=e,e=0)}e&&(a.B[a.J++]=b)}return c} -function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&void 0!==a.I[b]?a.error("label "+b+" redefined"):(a.I[b]={name:b,value:c,dd:d,cd:e,ed:f},a.u.K[b]=c)}var zg="ASCII",Ag="ASCIZ",Bg="SIXBIT",Cg="DEFINE",Dg="IFE",Eg="REPEAT"; -function Gg(a,b,c){r.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Hg(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.G=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ig(this);if(this.v=rb("CPU",this.id)){this.C=rb("Debugger",this.id);this.H=new Bc({id:this.Qa+".bus",busWidth:this.aa},this.v,this.C);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b= -0;b\nLicense: GPL version 3 or later ");for(b=0;bJg){if(Kg(d,this.M)){this.B=new F(this,"1.34.2",Tg);Kg(this.B)&&(Ug(this,d),a=Vg,Wg(this.B));this.B.set(Qg,Ga());Xg(this.B);var e=this.b&&!this.K;if(a==Rg||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Pg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Kg(d,g):("error"==f&&"no machine state"!= -g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(Yg,""),this.i=null)):this.j(f+": "+g),Wg(d),Kg(d)?(c=Pg(d),e=!0):c=!1))}e&&Ng(this,c?d:null)}else a==Vg&&d.clear()}else Ng(this);delete this.M;delete this.I}e=pb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Zg(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(Ug(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0}; -function Ug(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}} -function sg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Og),h=Ga();g.set(Qg,h);f.set(Qg,h);f.set($g,"1.34.2");f.set(ah,window?window.location.href:null);f.set(bh,window?window.navigator.userAgent:"");a.v&&a.v.ja&&(c&&(b&&(a.v.A.Z=a.v.A.L),a.v.W()),d=a.v.ja(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k> ";Ya(function(){for(var a=w(document,v,"debugger"),b=0;b([\s\S]*?)<\/pre>/gi;f=g.exec(b);){var h=f[1];0<=h.indexOf("&")&&(h=h.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&"));d+=h}(f=d.match(/&[a-z]+;/i))&&e.j("warning"+(e.u?" at line "+va(e.u):"")+": "+("unrecognized HTML entity: "+ +f[0]))}var B,S=d.split(/\r?\n/);for(B=0;B"==c[d]&&(a.b--,1==a.b)){a.b=0;b=c.substr(d+1);c=c.substr(0,d);break}d=a.J||"";a.G[d].La+=c;a.b||(a.J=null,wg(a,d))}if(a.b)return!0}null!=a.i&&(b=xg(a,b));c=b.match(/\s*([A-Z$%.][0-9A-Z$%.]*[:=]|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)\s*(;?.*)/i);if(!c||c[4]&&";"!=c[4].slice(0,1))return a.error("failed to parse line: "+ +b),!1;b=c[1];d=c[2].toUpperCase();c=c[3].trim();if(b){var e=b.slice(-1);b=b.slice(0,-1);":"==e?yg(a,b,a.H,!0):(c=d+c,d=e)}a.C=d;c=c.trim();if(!wg(a,d,c))switch(d){case "=":d=Je(a.v,c);void 0===d?a.error("parseExpression("+c+")"):yg(a,b,d);break;case zg:case Ag:case Bg:xg(a,c);break;case Cg:case Dg:case Eg:a:{b=d;var d=c,f;if(b==Cg){c=d.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)(.*)/i);if(!c){a.error("unrecognized "+b+" definition: "+d);break a}b=c[1];d=c[2].match(/[A-Z$%.][0-9A-Z$%.]*/g); +e=-1;f=3}else{e=Fg(a,d,",");if(!e){a.error("missing "+b+" expression: "+d);break a}d=d.substr(e.length+1);e=e.trim();c=d.match(/\s*(<|)(.*)/i);b="@"+b;d=[];e=Je(a.v,e);f=1}b=b.toUpperCase();a.b=1;var g="";c[f]&&(a.b=2,g=c[f+1],">"==g.slice(-1)&&(a.b=0,g=g.slice(0,-1)));a.G[b]={name:b,Eb:d,yb:e,La:g};a.b?a.J=b:wg(a,b)}}return 820<=a.u?(Oe(a.v),a.error("temporary line limit reached"),!1):!0} +function wg(a,b,c){var d=a.G[b];if(!d)return!1;if(null!=c){b=[];var e=",";"("==c[0]&&(e+=")",c=c.substr(1));for(;c;){c=c.trim();var f=Fg(a,c,e);if(!f)break;b.push(f);c=c.substr(f.length+1)}Gg(a,d.La,d.Eb,b);return!0}if("@"!=b[0])return!1;switch(b.substr(1)){case Dg:d.yb||Gg(a,d.La);break;case Eg:for(;0p)break;var n=p+1,q=p+h.length;p&&f[p-1].match(/[0-9A-Z$%.]/i)||!(q>=f.length)&&f[q].match(/[0-9A-Z$%.]/i)||(f=f.substr(0,p)+k+f.substr(q),n=p+k.length)}if(!vg(a,f))break}}ng.prototype.error=function(a){throw Error("error"+(this.u?" at line "+va(this.u):"")+": "+a);}; +function Fg(a,b,c){c=void 0===c?"":c;for(var d=0,e=null,f=0;d"==g&&0>--f){a.error("missing angle bracket(s): "+b);break}d++}f?0d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.i=null);a.w+=b}if(null==a.i){var e=0;b=0;var f,g,d=a.w.length;a.C==Ag&&d++;for(var h=0;h=k&&(k-=32),k=k+32&63);b+=k*Math.pow(2,g);g-=f;e++;0>g&&(e=b,a.B[a.H++]=e,e=0)}e&&(a.B[a.H++]=b)}return c} +function yg(a,b,c,d){var e,f;d=void 0===d?!1:d;e=void 0===e?!1:e;f=void 0===f?!1:f;b=b.toUpperCase().substr(0,6);d&&void 0!==a.I[b]?a.error("label "+b+" redefined"):(a.I[b]={name:b,value:c,dd:d,cd:e,ed:f},a.v.K[b]=c)}var zg="ASCII",Ag="ASCIZ",Bg="SIXBIT",Cg="DEFINE",Dg="IFE",Eg="REPEAT"; +function Hg(a,b,c){t.call(this,"Computer",a,33554432);this.A.V=!1;this.R=null;Ig(this,b);this.O=Yc(this,"autoPower",a,6);this.w=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Jg(this);if(this.v=rb("CPU",this.id)){this.C=rb("Debugger",this.id);this.H=new Bc({id:this.Ra+".bus",busWidth:this.aa},this.v,this.C);var d,e=pb(this.id);if((this.u=rb("Panel",this.id))&&this.u.ta)for(b= +0;b\nLicense: GPL version 3 or later ");for(b=0;bKg){if(Lg(d,this.M)){this.B=new F(this,"1.34.2",Ug);Lg(this.B)&&(Vg(this,d),a=Wg,Xg(this.B));this.B.set(Rg,Ga());Yg(this.B);var e=this.b&&!this.K;if(a==Sg||ob("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Qg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Lg(d,g):("error"==f&&"no machine state"!= +g?(this.da("Error: "+g),"unable to verify user"==g&&(Ra(Zg,""),this.i=null)):this.j(f+": "+g),Xg(d),Lg(d)?(c=Qg(d),e=!0):c=!1))}e&&Og(this,c?d:null)}else a==Wg&&d.clear()}else Og(this);delete this.M;delete this.I}e=pb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&($g(this,this.v,b,c,a),H(this,-2),this.v.Z());this.P&&(Vg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0}; +function Vg(a,b){if(ob("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}} +function sg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Pg),h=Ga();g.set(Rg,h);f.set(Rg,h);f.set(ah,"1.34.2");f.set(bh,window?window.location.href:null);f.set(ch,window?window.navigator.userAgent:"");a.v&&a.v.ja&&(c&&(b&&(a.v.A.Z=a.v.A.L),a.v.W()),d=a.v.ja(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k=d||30<=(c.Ya+=d))&&(e.textContent=c.A.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Ya=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.A.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.C&&a.C.ca||8,e=e||0,e=8==f?ua(e,void 0):m(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){g=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],g);th(a,b,c)}})}else c(a,null)} -function uh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--qh||gb(!0));n=!1}var h,k,n=!0;qh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));t.appendChild(B)}d|| -(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?rh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--qh||gb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--qh|| -gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?rh(c,b,a,e,!0,f,p):sh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(S){g(S.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return uh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return uh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")}; -window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;pg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);uh(a,b,c)}})}else c(a,null)} +function vh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);n&&(--rh||gb(!0));n=!1}var h,k,n=!0;rh++;mb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=p:B.appendChild(document.createTextNode(p));q.appendChild(B)}d|| +(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?sh(d,null,a,null,!1,f,function(a,e){e?(lb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--rh||gb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--rh|| +gb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?sh(c,b,a,e,!0,f,p):th(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(S){g(S.message)}return n}window.embedPDP10=function(a,b,c,d){gb(!1);return vh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){gb(!1);return vh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")}; +window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;p