Improved MACRO-10 addWord() parsing
This commit is contained in:
parent
471a93353e
commit
1b0e01c66a
6 changed files with 102 additions and 89 deletions
|
|
@ -12,17 +12,16 @@ DEFINE STOP (A)<
|
|||
|
||||
SUBTTL DIAGNOSTIC SECTION
|
||||
|
||||
START:
|
||||
; SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
; JSP 0,.+1 ;GET FLAGS
|
||||
; TLNE USERF ;IN USER MODE?
|
||||
; SETOM USER ;YES, SET USER CONTROL WORD
|
||||
; SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
; SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
; SKIPN USER
|
||||
; JRST STARTA
|
||||
; SKIPL MONCTL
|
||||
; TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
START: ;SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
;JSP 0,.+1 ;GET FLAGS
|
||||
;TLNE USERF ;IN USER MODE?
|
||||
;SETOM USER ;YES, SET USER CONTROL WORD
|
||||
;SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
;SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
;SKIPN USER
|
||||
;JRST STARTA
|
||||
;SKIPL MONCTL
|
||||
;TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
JRST STARTA
|
||||
|
||||
PGMNAM: ASCIZ/
|
||||
|
|
|
|||
|
|
@ -35,17 +35,16 @@ DEFINE SFLAG (A)<
|
|||
JRST 2,.+1(1) ;SET A FLAG>
|
||||
SUBTTL DIAGNOSTIC SECTION
|
||||
|
||||
START:
|
||||
; SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
; JSP 0,.+1 ;GET FLAGS
|
||||
; TLNE USERF ;IN USER MODE?
|
||||
; SETOM USER ;YES, SET USER CONTROL WORD
|
||||
; SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
; SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
; SKIPN USER
|
||||
; JRST C00
|
||||
; SKIPL MONCTL
|
||||
; TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
START: ;SETZM USER# ;CLEAR USER CONTROL WORD
|
||||
;JSP 0,.+1 ;GET FLAGS
|
||||
;TLNE USERF ;IN USER MODE?
|
||||
;SETOM USER ;YES, SET USER CONTROL WORD
|
||||
;SKIPN MONFLG ;SPECIAL USER MODE?
|
||||
;SETZM USER ;YES, CLEAR USER CONTROL WORD
|
||||
;SKIPN USER
|
||||
;JRST C00
|
||||
;SKIPL MONCTL
|
||||
;TTCALL 3,PGMNAM ;MENTION OUR NAME
|
||||
JRST STARTA
|
||||
|
||||
PGMNAM: ASCIZ/
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ machines:
|
|||
type: pdp10
|
||||
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
|
||||
debugger: true
|
||||
commands: a 100 /apps/pdp10/tests/macro10/LITNEST.MAC
|
||||
commands: a 100 /apps/pdp10/tests/macro10/TEXT.MAC
|
||||
---
|
||||
|
||||
PDPjs MACRO-10 Mini-Assembler Tests
|
||||
|
|
|
|||
|
|
@ -1703,6 +1703,14 @@ class DebuggerPDP10 extends Debugger {
|
|||
}
|
||||
if (opCode >= 0) break;
|
||||
}
|
||||
/*
|
||||
* MACRO-10 also allows instructions to be assembled without an opcode (ie, just an address reference),
|
||||
* so we'll give that a try next.
|
||||
*/
|
||||
if (opCode < 0) {
|
||||
sOperands = sOpcode + sOperands;
|
||||
opCode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (opCode >= 0) {
|
||||
|
|
|
|||
|
|
@ -230,7 +230,17 @@ class Macro10 {
|
|||
this.nMacroDef = 0; // the active macro definition state
|
||||
this.sMacroDef = null; // the active macro definition name
|
||||
this.chMacroOpen = this.chMacroClose = '';
|
||||
this.reLine = /\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;
|
||||
|
||||
/*
|
||||
* This regular expression breaks each MACRO-10 line into the following elements:
|
||||
*
|
||||
* [1]: label (with trailing semicolon), if any
|
||||
* [2]: operator (eg, opcode mnemonic or pseudo-op), if any
|
||||
* [3]: operator/operand whitespace separator, if any
|
||||
* [4]: operand(s), if any
|
||||
* [5]: comment, if any
|
||||
*/
|
||||
this.reLine = /^\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)(\s*)([^;]+|)(;?[\s\S]*)/i;
|
||||
|
||||
this.macroCall = null; // the active macro being called, if any
|
||||
|
||||
|
|
@ -448,11 +458,11 @@ class Macro10 {
|
|||
}
|
||||
|
||||
var fParse = true;
|
||||
var sLabel, sOperator = "", sOperands, sRemainder;
|
||||
var sLabel, sOperator = "", sSeparator, sOperands, sRemainder;
|
||||
|
||||
while (fParse) {
|
||||
var matchLine = sLine.match(this.reLine);
|
||||
if (!matchLine || matchLine[4] && matchLine[4].slice(0, 1) != ';') {
|
||||
if (!matchLine || matchLine[5] && matchLine[5].slice(0, 1) != ';') {
|
||||
this.error("failed to parse line: " + sLine);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -466,7 +476,7 @@ class Macro10 {
|
|||
var sParm = aParms[iParm];
|
||||
var sReplace = aValues[iParm] || aDefaults[iParm] || "";
|
||||
var iSearch = 0;
|
||||
var iLimit = sLine.length - matchLine[4].length; // set the limit at the start of the comment, if any
|
||||
var iLimit = sLine.length - matchLine[5].length; // set the limit at the start of the comment, if any
|
||||
while (iSearch < iLimit) {
|
||||
var iMatch = sLine.indexOf(sParm, iSearch);
|
||||
if (iMatch < 0) break;
|
||||
|
|
@ -490,8 +500,9 @@ class Macro10 {
|
|||
}
|
||||
|
||||
sLabel = matchLine[1];
|
||||
sOperands = matchLine[3].trim();
|
||||
sRemainder = matchLine[3] + matchLine[4];
|
||||
sSeparator = matchLine[3];
|
||||
sOperands = matchLine[4].trim();
|
||||
sRemainder = matchLine[4] + matchLine[5];
|
||||
|
||||
if (sLabel) {
|
||||
sLabel = sLabel.slice(0, -1);
|
||||
|
|
@ -572,7 +583,7 @@ class Macro10 {
|
|||
break;
|
||||
|
||||
default:
|
||||
this.addWord(sOperator, sOperands);
|
||||
this.addWord(sOperator, sSeparator, sOperands);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1256,25 +1267,21 @@ class Macro10 {
|
|||
}
|
||||
|
||||
/**
|
||||
* addWord(sOperator, sOperands)
|
||||
* addWord(sOperator, sSeparator, sOperands)
|
||||
*
|
||||
* @this {Macro10}
|
||||
* @param {string} sOperator
|
||||
* @param {string} sSeparator
|
||||
* @param {string} sOperands
|
||||
*/
|
||||
addWord(sOperator, sOperands)
|
||||
addWord(sOperator, sSeparator, sOperands)
|
||||
{
|
||||
var w = -1;
|
||||
var sExp = (sOperator + ' ' + sOperands).trim();
|
||||
|
||||
var sExp = (sOperator + sSeparator + sOperands).trim();
|
||||
|
||||
if (sOperands.indexOf(",,") < 0) {
|
||||
w = this.dbg.parseInstruction(sOperator, sOperands, this.nLocation, true);
|
||||
if (w < 0) {
|
||||
/*
|
||||
* MACRO-10 also allows instructions to be assembled without an opcode (ie, just an address reference).
|
||||
*/
|
||||
w = this.dbg.parseInstruction("", sExp, this.nLocation, true);
|
||||
}
|
||||
}
|
||||
|
||||
if (w < 0) w = this.parseExpression(sExp, true);
|
||||
|
|
|
|||
|
|
@ -55,19 +55,19 @@ function tb(a,b){var c=v;b=w(b.parentNode,c+"-control");for(var d=0;d<b.length;d
|
|||
function w(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function ub(a){for(var b=!0,c=vb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=wb.indexOf(e)&&(f=function(){return function(){ub(a)}}());var g=xb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=sb(d[1],a);if(h)if(g=yb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete vb[a];return b}l=r.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.pa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.xa=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ga=function(a){this.u(a,this.Za)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
|
||||
l.status=function(a){this.u(this.Za+": "+a)};l.ga=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function zb(a,b){a.A.error=!0;a.ga(b)}function Ab(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Cb(a,b){b&&(a.A.ready?b():a.cb=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.cb;a.cb=null;b&&b()}}function Nb(a,b){a.A.Sa&&(b?a.A.ob=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Sa}
|
||||
l.pa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.xa=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.fa=function(a){this.u(a,this.Za)}),!0;default:return!1}};l.log=function(){};l.u=function(){};
|
||||
l.status=function(a){this.u(this.Za+": "+a)};l.fa=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function zb(a,b){a.A.error=!0;a.fa(b)}function Ab(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Cb(a,b){b&&(a.A.ready?b():a.cb=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.cb;a.cb=null;b&&b()}}function Nb(a,b){a.A.Sa&&(b?a.A.ob=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Sa}
|
||||
function Ob(a,b){if(a.A.ob)return a.A.Sa=!1,a.A.ob=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Sa=b;return a.A.Sa}l.ya=function(){return this.A.X=!0};l.oa=function(a,b){b&&(this.A.X=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.aa;var c=a.D.aa&b;return!!b&&c===b||!!(c&a.D.Db)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var nb=window?window.PCjs.Machines:{},lb=window?window.PCjs.Components:[],vb=window?window.PCjs.Commands:{},wb=["hold","sleep","wait"],xb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},yb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
var v="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,D=Math.pow(2,36),F=Math.pow(2,32),Vb=Math.pow(2,34),Wb=Math.pow(2,36),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),v="pdp10",Rb="PDPjs",ac={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
|
||||
var v="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,D=Math.pow(2,36),E=Math.pow(2,32),Vb=Math.pow(2,34),Wb=Math.pow(2,36),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),v="pdp10",Rb="PDPjs",ac={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,
|
||||
speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function bc(a,b){r.call(this,"Panel",a,512);this.K=this.L=0;this.U=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.P=this.R=this.F=!1;this.T=cc;this.C={};this.b={START:[1,1,!0,!1,this.bc],STEP:[1,1,!1,!1,this.cc],ENABLE:[1,1,!1,!1,this.Xb],CONT:[1,1,!0,!1,this.Vb],DEP:[0,0,!0,!1,this.Wb],EXAM:[1,1,!0,!1,this.Yb],LOAD:[1,1,!0,!1,this.$b],TEST:[0,0,!0,!1,this.Zb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.ac,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Sb,toggle:this.lc,reset:this.hc,
|
||||
set:this.kc};Mb(this)}ka(bc,r);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.w=0)};
|
||||
l.pa=function(a,b,c,d){if(this.H&&this.H.pa(a,b,c,d)||this.v&&this.v.pa(a,b,c,d)||this.D&&this.D.pa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!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(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):r.prototype.pa.call(this,a,b,c,d)}};l.Ja=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.ya=function(a,b){if(!b)if(this.U&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
|
||||
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):r.prototype.pa.call(this,a,b,c,d)}};l.Ja=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;gc(this);hc(this)};l.ya=function(a,b){if(!b)if(this.U&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])jc(this,this.i=a[0]),dc(this,this.w=a[1]),kc(this,a[2]);return!0};l.hc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
|
||||
l.Sb=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.kc=function(a,b){if("SR"==a)return kc(this,sa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.lc=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
|
||||
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.bc=function(a){a||this.v.A.O||(I(this.v,this.i),this.b[qc]&&this.b[qc][1]&&rc(this.v))};l.cc=function(){};l.Xb=function(a){a||this.v.V()};
|
||||
|
|
@ -75,10 +75,10 @@ l.Vb=function(a){if(!a&&!this.v.A.O)if(this.b[qc]&&this.b[qc][1])rc(this.v);else
|
|||
l.Yb=function(a){if(!a&&!this.v.A.O){var b;this.R&&wc(this);this.T==cc?b=yc(this.G,this.i):b=this.v.f(this.i);dc(this,this.w=b)}};l.$b=function(a){a||this.v.A.O||jc(this,this.j)};l.Zb=function(a){a?(this.F=!0,gc(this,!0)):(this.F=!1,gc(this),kc(this,0))};l.ac=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function wc(a){var b=1,c=a.G.j;a.b[nc]&&a.b[nc][1]||(b=-b);jc(a,a.i&~c|a.i+b&c)}
|
||||
function jc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}}function dc(a,b){a.I=b%D;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||lc(d,e,f)}}return a.I}function kc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.v.i)};
|
||||
function ic(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=rb(d.id);e||(e=new bc(d,!0));tb(e,c)}}var cc=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";Xa(ic);function zc(a,b,c){r.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Ac(this);Bc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ka(zc,r);l=zc.prototype;l.reset=function(){};
|
||||
l.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.save=function(){var a=new G(this);a.set(0,Cc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
l.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.save=function(){var a=new F(this);a.set(0,Cc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Dc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Va+=h.B-e,h.B=e,!0;if(e>=h.B+h.Va){m=h.size-(e-k);m>f&&(m=f);h.Va=e-h.B+m;e=k+16384;f-=m;g++;continue}}return Ec(Fc,e,f)}e=new Ac(a,e,m,16384,d);Bc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kc[d]+" at "+ua(b)),!0):Ec(Lc,b,c)}
|
||||
function yc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function xc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Cc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.qb||e.Pb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.Qb=function(a){this.w||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+K(this.D,a),!0,!0),this.v.V())};function Ec(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Fc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ka(Mc,r);l=Mc.prototype;l.Ja=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};l.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new G(this)).data()};
|
||||
l.Qb=function(a){this.w||(this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+K(this.D,a),!0,!0),this.v.V())};function Ec(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Fc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ka(Mc,r);l=Mc.prototype;l.Ja=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};l.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.oa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new F(this)).data()};
|
||||
l.restore=function(){return!0};Xa(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=u(d);switch(c.type){case "default":c=new Mc(c),tb(c,d)}}});function Ac(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Va=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.D=this.tb;this.g=this.w=this.Wa;this.i=this.v=0;Bc(this);this.qb=this.Pb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}l=Ac.prototype;l.save=function(){return this.j};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.j=a,this.qb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.tb);if(c||void 0===c)a.D=b[0]||a.tb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Wa);if(c||void 0===c)a.w=b[1]||a.Wa}l.Pa=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Wa:a.w):--a.i||(a.f=a.D)}
|
||||
function Bc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}l.tb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.H.Qb(b);return-1};l.Wa=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.fc=function(a){return this.j[a]};l.oc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.qb=!0)};
|
||||
|
|
@ -96,22 +96,22 @@ e.stack||e.message);return}if(this.A.O){a=setTimeout;b=this.Eb;this.R=ob();var c
|
|||
function rc(a,b){if(!Ab(a))if(a.A.O)a.u(a.toString()+" busy");else{gd(a);a.A.O=!0;a.A.hb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Eb,0)}}l.Xa=function(){return 0};l.V=function(a){var b=!1;if(this.A.O){md(this);uc(this,this.M);this.M=0;this.A.O=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(ob(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
|
||||
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.Cb=b;this.Ya=+a.addrReset||0;this.Ob=pd.bind(this);this.w=L.bind(this);this.Ba=null;this.ub=[];this.A.complete=!1}ka(od,Yc);l=od.prototype;
|
||||
l.reset=function(){this.status("Model "+this.Cb);this.A.O&&this.V();this.Ha=this.Ia=this.b=this.K=0;this.i=this.Ca=this.Ya;this.I=this.ta=-1;this.F=this.j=0;this.nb=[0,0];this.ra=[0,0];this.ia=[0,0];this.sa=[0,0];this.Aa=this.i;this.C=0;this.f=this.ec;this.g=this.pc;this.Ba=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};l.Hb=function(){return 0};
|
||||
l.save=function(){var a=new G(this);a.set(0,[this.b,this.K,this.Ha,this.Ia,this.i,this.ta,this.I,this.j,this.C,this.Ca,this.Aa,this.Ya]);a.set(1,[]);a.set(2,[this.U,this.ea,this.A.da]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
|
||||
l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ha,this.Ia,this.i,this.ta,this.I,this.j,this.C,this.Ca,this.Aa,this.Ya]);a.set(1,[]);a.set(2,[this.U,this.ea,this.A.da]);a.set(3,qd(this));a.set(4,ld(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.Ha=b.next().value;this.Ia=b.next().value;this.i=b.next().value;this.ta=b.next().value;this.I=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ca=b.next().value;this.Aa=b.next().value;this.Ya=b.next().value;b=a[2];this.U=b[0];gd(this,b[1]);this.A.da=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ub.length;d++){var e=this.ub[d];
|
||||
if(e.mc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Ba,this.Ba=d)}a=a[4];for(b=0;b<this.P.length&&b<a.length;b++)this.P[b][0]=a[b];return!0};function rd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function I(a,b){a.i=b%Tb}function qd(a){var b=[];for(a=a.Ba;a;)b.push(a.mc),a=a.next;return b}l.ec=function(a){var b=this.G;a=this.Aa=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};l.pc=function(a,b){var c=this.G;a=this.Aa=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
|
||||
l.Xa=function(a){this.A.complete=!0;var b=this.D?sd(this.D)?1:this.A.hb?-1:0:0,c=a?this.A.hb?0:1:-1;this.A.hb=!1;this.T=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(td(this.D,this.i,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Ba||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&td(this.D,this.i,c)){this.V();break}if(0>c)break}}this.C&=15;this.K&4194304?this.K=this.Ha=this.f(this.b):0<=this.ta?(this.K=this.Ia=this.f(this.ta),this.ta=-1):(this.K=
|
||||
this.Ia=this.f(this.Ca=this.i),this.i=(this.i+1)%Tb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+(this.Ha=this.f(a))&Sb;a=this.K&4194304?-1:this.Ia/Zb|0;0<=a&&this.Ob(a);this.N--}while(0<this.N);return this.A.complete?this.T-this.N:!1===this.A.complete?-1:0};Xa(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new od(d);tb(d,c)}});function pd(a){ud[a>>4].call(this,a,a&15)}function M(a){this.w(a)}
|
||||
function vd(){var a=0,b=this.f(this.b),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function wd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}}
|
||||
function xd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/$b&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 yd(a,b){this.g(b,this.f(this.b))}function zd(a,b){this.g(b,this.b)}function Ad(a,b){this.g(this.b,this.f(b))}function Bd(a,b){this.g(b,0)}function Cd(a,b){this.g(b,B-this.f(b))}function Dd(a,b){this.g(b,B)}
|
||||
function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Fd(a,d,c)+(c-(c&x)))}function Gd(a,b){var c=this.f(b);this.g(b,Fd(a,c,0))}function Hd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+(b-(b&x)))}function Id(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 $d(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Fd(a,d,c)+c)}
|
||||
function Ed(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Fd(a,d,c)+(c-(c&x)))}function Gd(a,b){var c=this.f(b);this.g(b,Fd(a,c,0))}function Hd(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+(b-(b&x)))}function Zd(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 $d(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Fd(a,d,c)+c)}
|
||||
function ae(a,b){var c=this.b*y,d=this.f(b);this.g(b,Fd(a,d,c)+c)}function be(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Fd(a,c,b)+b)}function ce(a,b){var c=this.f(this.b),d=(c&x)*y,c=Fd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function de(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,ee(a,d,c)+c)}function fe(a,b){var c=this.f(b);this.g(b,ee(a,c,this.b)+this.b)}function ge(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}
|
||||
function he(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>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,ee(a,d,c)+c)}function je(a,b){var c=this.f(b);this.g(b,ee(a,c,0))}function ke(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}function le(a,b){var c=this.f(this.b),d=c/y|0,c=ee(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function O(a){me[a&7].call(this,a,a>>3&127)}
|
||||
function ne(){}function oe(){}function L(a){this.u("undefined opcode: "+ua(a));rd(this,-1);this.V()}function pe(a){a>z&&(a!=A?a=Wb-a:this.j|=163840);return a}function P(a,b){var c=(a+b)%D;qe.call(this,a,b,c);return c}
|
||||
function re(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=B-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.nb;f[0]=0;f[1]=0;f=this.ra;f[0]=1;f[1]=0;f=this.ia;f[0]=c;f[1]=0;c=this.sa;c[0]=a;for(c[1]=b;0<se(this.sa,this.ia);)te(this.ia,this.ia),te(this.ra,this.ra);do{if(0<=se(this.sa,this.ia)&&(b=this.sa,a=this.ia,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),te(this.nb,this.ra),ue(this.sa)))break;ve(this.ia);ve(this.ra)}while(!ue(this.ra));
|
||||
a=this.nb[0];this.F=this.sa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
|
||||
function we(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(d<y&&e<y)a=d*e,f=0;else{a=d&x;d=Math.trunc(d/y);f=e&x;var e=Math.trunc(e/y),g=a*f,h=d*f+Math.trunc(g/y);f=Math.trunc(h/y);h=(h&x)+a*e;a=h*y+(g&x);f+=Math.trunc(h/y)+d*e}b&&(a?(f=B-f,a=D-a):f&&(f=D-f));if(c)return(f||a>z)&&(f!=B||a<=z)&&(this.j|=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.j|=131072);this.F=c;return b}
|
||||
function xe(a){a?a==A?this.j|=163840:a=Wb-a:this.j|=98304;return a}function R(a,b){var c=a-b;0>c&&(c+=D);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function S(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function T(a,b){return S(a,(~(b/F|0)&15)*F+(~b>>>0))}function ye(a,b){return(a<A?a:a-D)-(b<A?b:b-A)}
|
||||
function ze(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function U(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function V(a){return a<A?a:a-D}function W(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function X(a){return(a/y|0)+(a&x)*y}function ee(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>Ub?x*y:0}return b}function Fd(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 xe(a){a?a==A?this.j|=163840:a=Wb-a:this.j|=98304;return a}function R(a,b){var c=a-b;0>c&&(c+=D);qe.call(this,c,b,a);return c}function qe(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function S(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function T(a,b){return S(a,(~(b/E|0)&15)*E+(~b>>>0))}function ye(a,b){return(a<A?a:a-D)-(b<A?b:b-A)}
|
||||
function ze(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a<A?a:a-D}function W(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function X(a){return(a/y|0)+(a&x)*y}function ee(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>Ub?x*y:0}return b}function Fd(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 te(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function se(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ve(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ue(a){return!a[0]&&!a[1]}
|
||||
var ud=[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,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)},vd,function(a,b){0>this.I&&vd.call(this);wd.call(this,0,b)},wd,function(a,b){0>this.I&&vd.call(this);xd.call(this,0,b)},xd,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)},function(a){this.w(a)},function(a){this.w(a)},
|
||||
|
|
@ -140,8 +140,8 @@ S(this.f(b),this.f(this.b))))},function(a,b){this.g(b,S(B-this.f(b),this.f(this.
|
|||
ne,ne,Ad,Ad,function(a,b){this.g(b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(this.b,W(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,W(this.f(b),this.f(this.b))))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),this.b))},function(a,b){this.g(this.b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),this.f(this.b))))},function(a,b){this.g(b,S(B-this.f(b),B-this.f(this.b)))},
|
||||
function(a,b){this.g(b,S(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,S(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,S(B-this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze(this.f(b),this.b))},function(a,b){this.g(this.b,ze(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze(this.f(b),this.f(this.b))))},Cd,Cd,function(a,b){this.g(this.b,B-this.f(b))},function(a,b){this.g(this.b,this.g(b,B-this.f(b)))},
|
||||
function(a,b){this.g(b,U(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(B-this.f(b),this.b))},function(a,b){this.g(this.b,U(B-this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(B-this.f(b),this.f(this.b))))},function(a,b){this.g(b,B-this.f(this.b))},function(a,b){this.g(b,B-this.b)},function(){this.g(this.b,B-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,B-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),B-
|
||||
this.b))},function(a,b){this.g(this.b,U(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,U(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,U(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,U(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(B-this.f(b),B-this.f(this.b))))},Dd,Dd,function(){this.g(this.b,B)},function(a,b){this.g(this.b,this.g(b,B))},Ed,Gd,Hd,Id,$d,ae,be,ce,Ed,Gd,Hd,Id,$d,ae,be,
|
||||
ce,Ed,Gd,Hd,Id,$d,ae,be,ce,Ed,Gd,Hd,Id,$d,ae,be,ce,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,ne,ne,function(a,b){S(this.f(b),this.b)||I(this,this.i+1)},function(a,b){S(this.f(b),this.b*y)||I(this,this.i+1)},function(){I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){S(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){S(this.f(b),this.b*y)&&I(this,this.i+1)},oe,oe,function(a,b){S(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,
|
||||
this.b))},function(a,b){this.g(this.b,U(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,U(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,U(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,U(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,U(B-this.f(b),B-this.f(this.b))))},Dd,Dd,function(){this.g(this.b,B)},function(a,b){this.g(this.b,this.g(b,B))},Ed,Gd,Hd,Zd,$d,ae,be,ce,Ed,Gd,Hd,Zd,$d,ae,be,
|
||||
ce,Ed,Gd,Hd,Zd,$d,ae,be,ce,Ed,Gd,Hd,Zd,$d,ae,be,ce,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,de,fe,ge,he,ie,je,ke,le,ne,ne,function(a,b){S(this.f(b),this.b)||I(this,this.i+1)},function(a,b){S(this.f(b),this.b*y)||I(this,this.i+1)},function(){I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){S(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){S(this.f(b),this.b*y)&&I(this,this.i+1)},oe,oe,function(a,b){S(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,
|
||||
b){S(this.f(b),X(this.f(this.b)))||I(this,this.i+1)},function(){I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){S(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){S(this.f(b),X(this.f(this.b)))&&I(this,this.i+1)},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);S(a,this.b)||I(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;S(a,c)||I(this,this.i+1);this.g(b,T(a,c))},function(a,
|
||||
b){I(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);S(a,this.b)&&I(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;S(a,c)&&I(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),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);S(a,c)||I(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);
|
||||
var c=X(this.f(this.b));S(a,c)||I(this,this.i+1);this.g(b,T(a,c))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);S(a,c)&&I(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));S(a,c)&&I(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,W(this.f(b),this.b))},function(a,b){this.g(b,W(this.f(b),this.b*y))},function(a,b){a=
|
||||
|
|
@ -151,20 +151,20 @@ c)&&I(this,this.i+1);this.g(b,W(a,c))},function(a,b){this.g(b,U(this.f(b),this.b
|
|||
b){a=this.f(b);var c=this.b*y;S(a,c)&&I(this,this.i+1);this.g(b,U(a,c))},function(a,b){this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){this.g(b,U(this.f(b),X(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);S(a,c)||I(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));S(a,c)||I(this,this.i+1);this.g(b,U(a,c))},function(a,b){I(this,this.i+1);this.g(b,U(this.f(b),this.f(this.b)))},function(a,b){I(this,this.i+1);this.g(b,U(this.f(b),X(this.f(this.b))))},
|
||||
function(a,b){a=this.f(b);var c=this.f(this.b);S(a,c)&&I(this,this.i+1);this.g(b,U(a,c))},function(a,b){a=this.f(b);var c=X(this.f(this.b));S(a,c)&&I(this,this.i+1);this.g(b,U(a,c))},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O],me=[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.j&=-131073);a&131072&&(this.j&=-262145);
|
||||
break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},function(a){this.w(a)}];
|
||||
function Ae(a){r.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+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=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ga("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(mb(c.$a,a,b),(a=Ia(a,b))?(c.b=a.ca,c.W=a.W):c.w=null);Be(c)})}}ka(Ae,r);
|
||||
function Ae(a){r.call(this,"ROM",a,128);this.W=this.b=null;this.C=+a.addr;this.j=+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=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.fa("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(mb(c.$a,a,b),(a=Ia(a,b))?(c.b=a.ca,c.W=a.W):c.w=null);Be(c)})}}ka(Ae,r);
|
||||
Ae.prototype.Ja=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Be(this)};Ae.prototype.ya=function(){this.W&&(this.D&&Ce(this.D,this.id,this.C,this.j,this.W),delete this.W);return!0};Ae.prototype.oa=function(){return!0};
|
||||
function Be(a){if(!Cb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)zb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Dc(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)xc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
|
||||
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Xa(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ae(d);tb(d,c)}});
|
||||
function De(a){r.call(this,"RAM",a);this.W=this.Na=null;this.i=+a.addr;this.j=+a.size;this.wa=a.load;this.va=a.exec;null!=this.wa&&(this.wa=+this.wa);null!=this.va&&(this.va=+this.va);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ga("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.$a,a,b),(a=Ia(a,b))?(c.Na=a.Na,
|
||||
function De(a){r.call(this,"RAM",a);this.W=this.Na=null;this.i=+a.addr;this.j=+a.size;this.wa=a.load;this.va=a.exec;null!=this.wa&&(this.wa=+this.wa);null!=this.va&&(this.va=+this.va);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.fa("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.$a,a,b),(a=Ia(a,b))?(c.Na=a.Na,
|
||||
c.W=a.W,null==c.wa&&(c.wa=a.wa),null==c.va&&(c.va=a.va)):c.b=null);Ee(c)})}}ka(De,r);De.prototype.Ja=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ee(this)};De.prototype.ya=function(a,b){this.W&&(this.D&&Ce(this.D,this.id,this.i,this.j,this.W),delete this.W);b||this.reset();return!0};De.prototype.oa=function(){return!0};
|
||||
function Ee(a){if(a.G&&(!a.w&&a.j&&(Dc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Cb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Na)return;Fe(a,a.Na,a.wa,a.va,a.i)?a.status('Loaded image "'+a.C+'"'):a.ga('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
|
||||
function Ee(a){if(a.G&&(!a.w&&a.j&&(Dc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Cb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Na)return;Fe(a,a.Na,a.wa,a.va,a.i)?a.status('Loaded image "'+a.C+'"'):a.fa('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
|
||||
De.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.w(g,d,e.B+d);c-=16384;b++;d=0}this.Na&&Fe(this,this.Na,this.wa,this.va,this.i,!this.D)}this.F=!1};
|
||||
function Fe(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)xc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.V(),f=!1),null!=d&&(a=a.v,a.Ya=d,I(a,d),f?a.A.X?a.A.O||rc(a):a.A.da=!0:a.D&&a.A.X?a.V()||a.H.A.reset||(cd(a.D),J(a.H,-1)):!1===f&&a.V(),!a.A.O&&a.Ma&&a.Ma.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new De(d);tb(d,c)}});
|
||||
function Ge(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=He;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.J[b])&&this.pa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Ib,receiveData:this.fb,receiveStatus:this.gc,setConnection:this.jc}}ka(Ge,r);l=Ge.prototype;
|
||||
l.pa=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.wb:ma.Mb:46==c?b=ma.wb:a.ctrlKey&&c>=ma.vb&&c<=ma.Nb&&(b=c-(ma.vb-ma.Jb));b&&(a.preventDefault&&a.preventDefault(),d.fb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Lb&&(b=ma.Kb);d.fb(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.fb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Ja=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
|
||||
l.Ib=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Za)return;c=Ea(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.$a+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ya=function(a,b){if(!b)if(this.Ib(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.oa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new G(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.fb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.gc=function(){};l.jc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
|
||||
l.oa=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.fb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.gc=function(){};l.jc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var He="buffer";
|
||||
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ge(d);tb(d,c)}});function Ie(a){r.call(this,"Debugger",a);this.S=+a.base||16;this.L=32;this.ia=null;this.Z=["{","}"];this.ra=["[","]"];this.C=0;this.T=!1;this.w=-1;this.j=[];this.I={}}ka(Ie,r);Ie.prototype.rb=function(){return-1};Ie.prototype.sb=function(){};
|
||||
function Je(a,b,c,d){if(c)if(b){0>a.w&&a.j.length&&(a.w=0);if(0>a.w||b!=a.j[a.w])a.j.splice(0,0,b),a.w=0;a.w--}else a.T?b="end":b=a.j[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 Ke(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)&(c/Le|0))*Le+((b&c)>>>0)}
|
||||
function Me(a,b,c){if(32>=a.L)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((b^c)>>>0)}function Y(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b|0:(a=Math.pow(2,c-1),b<-a?(b<2*-a&&(e=b%(2*a)),e+=2*a):e>=a&&(b>=2*a&&(e=b%(2*a)),e-=2*a));b!=e&&(b=e);return b}
|
||||
|
|
@ -193,14 +193,14 @@ l.message=function(a,b){b&&(a+=" @"+K(this,Z(this.v.Ca).B,18));if(!this.Y||a!=th
|
|||
function Ye(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.U=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(sf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.U=0;a.u("instruction history buffer allocated")}}function tf(a,b,c){if(!uf(a,c))return!1;rc(a.v,b);return!0}
|
||||
function sc(a,b,c,d){if(!uf(a))return!1;var e="";null===c&&(e=(c=!a.Da||"tr"==a.Da)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.Xa(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(a.v,f),a.ja++)}catch(g){"number"!=typeof g&&(a.C=0,zb(a.v,g.stack||g.message))}!1!==d&&(a.qa&&a.qa.stop(),J(a.H,-1));cd(a,c||!1,e);return 0<a.C}l.V=function(a){this.v&&this.v.V(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ga&&(c&&a.u(vf+c),af(a.M,a.v.i),b&&1!=a.P?wf(a):xf(a))}
|
||||
function uf(a,b){var c;(c=!a.v||!Cb(a.v))||(c=a.v,c.A.X?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.O?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ab(a.v)}l.ya=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.oa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ye(this);this.ja=0;this.Y=null;this.C=0;af(this.M,this.v.i);this.A.O=!1;yf(this);a||cd(this)};
|
||||
l.save=function(){var a=new G(this);a.set(0,bf(this.M));a.set(1,bf(this.ka));a.set(2,bf(this.ha));a.set(3,[this.j,this.T,this.aa]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.M=cf(this,a[b++]),this.ka=cf(this,a[b++]),this.ha=cf(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.T=a[b][1],this.aa|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ha=a;this.Ia=b};
|
||||
l.save=function(){var a=new F(this);a.set(0,bf(this.M));a.set(1,bf(this.ka));a.set(2,bf(this.ha));a.set(3,[this.j,this.T,this.aa]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.M=cf(this,a[b++]),this.ka=cf(this,a[b++]),this.ha=cf(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.T=a[b][1],this.aa|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.P||this.u("running");this.A.O=!0;this.Ha=a;this.Ia=b};
|
||||
l.stop=function(a,b){if(this.A.O){this.A.O=!1;this.C=b-this.Ia;if(!this.P){b="stopped";if(this.C){a-=this.Ha;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";sd(this)&&(b+=this.ja+" instructions, ",this.ja=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);yf(this,this.v.i);this.Y=null}};function sd(a){return 1<a.b.length||!!a.la}
|
||||
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ca==b&&(b=rd(a.v,1)));if(0<c&&(a.la&&!--a.la||Xc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ja++,0>d&&(d=a.v.f(b)),0<=d&&(af(a.i[a.U],b),++a.U==a.i.length&&(a.U=0)));return!1}
|
||||
function zf(a,b,c,d){var e=Z(b.B),f=a.La(b,1),g,h,k,m=0,p=f/Xb|0,t;for(t in Af)if(g=Af[t][p&t]){h=+t;p>>=6;switch(h){case 32512:k=Bf;m=p&3;break;case 32256:k=Cf;m=p&7;break;case 29248:k=Df,m=(p&48)>>2|(p&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>Ef&&(k="B");k=Ff[g||0]+k;if(g){if(28700==h)h=f/Yb&127,m=K(a,h,-1);else for(h=f>>23&15,m=K(a,h,-1),p=0;m&&p<Gf.length;p++)if(g==Gf[p][0]&&(t=Gf[p][h])){k=Ff[t];m="";break}k=Ba(k,8)+(m?m+",":"");f&4194304&&(k+="@");k+=K(a,f&262143,-1);(f=f>>18&15)&&(k+="("+K(a,f,
|
||||
-1)+")")}else k=Ba(k,8)+hf(a,f);f=k;g="";h=K(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.La(e,1),g+=" "+hf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Ra?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ea)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Hf(a,b,c,d,e){var f=-1,g,h;a.ia=null;if(b){for(var k=b.toUpperCase(),m=0;m<Gf.length;m++)for(var p in Gf[m])if(+p&&(h=Gf[m][p],k==Ff[h])){k=Ff[Gf[m][0]];c&&(c=K(a,+p)+","+c);break}for(var t in Af){g=+t;p=Af[t];switch(g){case 32512:m=Bf;break;case 32256:m=Cf;break;case 29248:m=Df;break;default:m=[""]}for(var C in p){h=p[C];for(var H=0;H<m.length;H++){var Q=m[H];"S"==Q&&h>Ef&&(Q="B");if(k==Ff[h]+Q){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(C|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}}else c&&(f=
|
||||
g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}C=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!C){a.u("unknown operand: "+h);f=-1;break}h=C[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Se(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>h||15<h)h&=15;f+=h<<23}else{b&&(0>h||262143<h)&&(h&=Sb);f+=h;if(h=C[3]){h=Se(a,h,e);if(void 0==h){f=-1;break}if(0>h||
|
||||
15<h)h&=15;f+=h<<18}C[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Xe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=$e(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=$e(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ba=0;a.la=0}
|
||||
function Hf(a,b,c,d,e){var f=-1,g,h;a.ia=null;if(b){for(var k=b.toUpperCase(),m=0;m<Gf.length;m++)for(var p in Gf[m])if(+p&&(h=Gf[m][p],k==Ff[h])){k=Ff[Gf[m][0]];c&&(c=K(a,+p)+","+c);break}for(var t in Af){g=+t;p=Af[t];switch(g){case 32512:m=Bf;break;case 32256:m=Cf;break;case 29248:m=Df;break;default:m=[""]}for(var C in p){h=p[C];for(var H=0;H<m.length;H++){var Q=m[H];"S"==Q&&h>Ef&&(Q="B");if(k==Ff[h]+Q){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(C|f<<6)*Xb;break}}if(0<=f)break}if(0<=f)break}0>f&&(c=b+c,
|
||||
f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),t=0;t<k.length;t++)if(h=k[t].trim()){if(1<t){a.u("too many operands: "+c);f=-1;break}C=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!C){a.u("unknown operand: "+h);f=-1;break}h=C[2];if(t||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+K(a,d,18)):"0";h=Se(a,h,e);if(void 0==h){f=-1;break}if(!t&&1<k.length)if(28700==g){if(0>h||127<h)h&=127;f+=h*Yb}else{if(0>h||15<h)h&=15;f+=h<<23}else{b&&(0>h||262143<h)&&(h&=Sb);f+=h;if(h=C[3]){h=Se(a,h,e);if(void 0==h){f=
|
||||
-1;break}if(0>h||15<h)h&=15;f+=h<<18}C[1]&&(f+=4194304)}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function Xe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=$e(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=$e(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ba=0;a.la=0}
|
||||
l.Pa=function(a,b,c){var d=!0;c||If(this,a,b,!1,!0);if(a!=this.b){var e=$e(b);if(-1===e)this.u("invalid address: "+K(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Pa(e&16383,a==this.K)}}d&&(a.push(b),c?b.na=!0:(Jf(this,a,a.length-1,"set"),Ye(this)));return d};function If(a,b,c,d,e){var f=!1;c=$e(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==$e(h)&&(!d||h.na)){f=!0;h.na||e||Jf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.na||Ye(a);break}}return f}
|
||||
function Kf(a,b){for(var c=1;c<b.length;c++)Jf(a,b,c);return b.length-1}function Jf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.gb?' "'+c.gb+'"':""))}function yf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.P=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.na){if(!If(a,a.b,c,!0))break;b=0}}}
|
||||
function Xc(a,b,c,d,e){var f=!1;if(!a.Ba++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.na)for(var k=$e(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var p,f=!0;h.na&&(If(a,d,h,!0),e=!0);if(p=h.yb){for(var f=!1,t=0;t<p.length;t++)if(!Lf(a,p[t],!0)){if(p[t].indexOf("if")){f=!0;break}for(var C=t+1;C<p.length&&p[C].indexOf("else");C++)t++;if(C==p.length){f=!0;break}}a.v.A.O||(f=!0)}if(f){e||Jf(a,d,g,"hit");break}}}a.Ba--;return f}
|
||||
|
|
@ -216,65 +216,65 @@ function vg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instr
|
|||
function xf(a,b,c,d){if(b=ef(a,b,a.M)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=ef(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.P?a.C:null,g=null!=f?"cycles":null,h=ng(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.u(m)}h[3]&&(g=h[3],f=null);h=a.ha;m=b;h.B=m.B;h.bb=m.bb;h.na=m.na;h.S=m.S;a.u(zf(a,b,g,f));e-=b.B-k;c++}}}
|
||||
function Lf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(vf+b):(a.T&&(a.u("ended assemble at "+K(a,a.ha.B,18)),a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(Cb(a)&&0<b.length){a.T&&(b="a "+K(a,a.ha.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var p=h.charAt(m);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":qg(a,
|
||||
g);break;case "b":a:{var t=g[0],C=g[1],H=b;if("?"==C)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var Q=t.charAt(1);if("l"==Q){var db;db=0+Kf(a,a.b);db+=Kf(a,a.N);(db+=Kf(a,a.K))||a.u("no breakpoints")}else if("n"==Q){var Bb=+C||0;C&&(a.la=Bb);a.u("break after "+Bb+" instruction(s)")}else if(void 0===
|
||||
C)a.u("missing breakpoint address");else{var E=Z();if("*"!=C&&(E=ef(a,C,a.M),!E))break a;"c"==Q?null==E.B?(Xe(a),a.u("all breakpoints cleared")):If(a,a.b,E)||If(a,a.N,E)||If(a,a.K,E)||a.u("breakpoint missing: "+K(a,E.B,18)):null!=E.B&&(gf(a,E,H),"p"==Q?a.Pa(a.b,E):"r"==Q?a.Pa(a.N,E):"w"==Q?a.Pa(a.K,E):a.u("unknown breakpoint command: "+Q))}}}break;case "c":a.xa&&(a.xa.value="");break;case "d":a:{var eb,fb=g[0],na=g[1],Ca=g[2],wh=g[3];if("?"==na){var gb="";for(eb in ac)a.Aa[eb]&&(gb&&(gb+=","),gb+=
|
||||
eb);gb+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");gb.length&&a.u("dump extension commands:\n\t"+gb)}else if("state"==na){var Jd=wg(a.H,!0);"console"==Ca?console.log(Jd):(a.xa&&(a.xa.value=""),Jd&&a.u(Jd))}else if("symbols"==na)for(var Kd=0;Kd<a.F.length;Kd++){var Ld=a.F[Kd],hb;for(hb in Ld.W)if("."!=hb.charAt(0)){var Mf=Ld.W[hb].o;
|
||||
if(void 0!==Mf){var Nf=Ld.W[hb].l;Nf&&(hb=Nf);a.u(K(a,Mf,18)+" "+hb)}}}else{if("d"==fb){for(eb in ac)if(g[1]==eb){var Of=a.Aa[eb];Of?(g.shift(),g.shift(),Of(g)):a.u("no dump registered for "+na);break a}na||(fb=a.Ma||"dw")}else a.Ma=fb;if("dh"==fb){var Pf=na,Qf=Ca,Rf="",Sf=0,ja=a.U,oa=a.i;if(oa.length){var ea=+Pf||a.Ca,Db=+Qf||10;isNaN(ea)?ea=Db:Rf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Md=
|
||||
[];"call"==Qf&&(Db=1E5,Md=["CALL"]);for(void 0!==Pf&&a.u(ea+" instructions earlier:");0<Db&&ja!=a.U;){var Tf=oa[ja++];if(null==Tf.B)break;var Eb=Z(Tf.B),xh=ea--,Uf=zf(a,Eb,"history",xh);(!Md.length||0<=Uf.indexOf(Md[0]))&&a.u(Uf);Eb.pb&&(ja+=Eb.pb,Db-=Eb.pb,ea-=Eb.pb);ja>=oa.length&&(ja=0);a.Ca=ea;Sf++;Db--}}Sf||(a.u("no "+Rf+"history available"),a.Ca=void 0)}else{var ib=ef(a,na,a.ka);if(ib){var La=0,Vf="ds"==fb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||wh,La=Pe(a,Ca);else{var Wf=ef(a,Ca);Wf&&
|
||||
(La=Wf.B-ib.B)}0>La&&(La=0);65536<La&&(La=65536)}var yh=a.S;ib.S&&(a.S=ib.S);for(var Xf="db"==fb?1:2,Nd=La||32,Od=1==Xf?1:4,zh=(Nd+Od-1)/Od|0||1,Ma="";zh--&&0<Nd;){for(var pa="",Pd="",na=K(a,ib.B,18),Yf=Od;0<Yf--&&0<Nd--;){var Qd=a.La(ib,1);Vf?(pa&&(pa+=","),pa+=Qd):(pa+=hf(a,Qd),pa+=" ");for(var Gc=29,Ah=0;1==Xf&&0<=Gc;Ah++)var Fb=Qd/Math.pow(2,Gc)%Math.pow(2,7),pa=pa+(K(a,Fb,7)+" "),Fb=Fb+0,Pd=Pd+(32>Fb?".":String.fromCharCode(Fb)),Gc=Gc-7}Ma&&(Ma+="\n");Ma=Vf?Ma+(pa+","):Ma+(na+": "+pa+(0>Yf?
|
||||
" "+Pd:""))}Ma&&a.u(Ma);a.S=yh}}}}break;case "e":if("else"==g[0])break;var Zf,$f,ag=g[0],Rd=g[1];"e"==ag||"ew"==ag?(Zf=a.La,$f=a.xb):Rd=null;if(null==Rd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Hc=ef(a,Rd,a.ka);if(Hc)for(var Sd=2;Sd<g.length;Sd++){var Gb=Se(a,g[Sd]);if(void 0===Gb)break;Gb=ff(Gb);a.u("changing "+K(a,Hc.B,18)+" from "+hf(a,Zf.call(a,Hc))+" to "+hf(a,Gb));$f.call(a,Hc,Gb,1)}}break;case "g":a:{var bg=g[1],Bh=b;if(void 0!==bg){var Td=ef(a,bg);
|
||||
if(!Td)break a;gf(a,Td,Bh);a.Pa(a.b,Td,!0)}tf(a,!0,c)}break;case "h":a.A.O?(c||a.u("halting"),a.V()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Ud;var Hb=b.substr(2),Hb=Ea(Hb);Se(a,Hb)?(c||a.u("true: "+Hb),Ud=!0):(c||a.u("false: "+Hb),Ud=!1);Ud||(d=!1);break}f=!0;break;case "k":var Ch=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Vd=0,Wd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>
|
||||
Vd;){for(var Na=null,Dh=256;65536>Ib.B>>>0;){Wd.B=a.La(Ib,2);if(null==Ib.B||!Dh--)break;if(!(Wd.B&1)){for(var Eh=a,Ic=Wd,cg=null,Jb=Ic.B,dg=Jb,Xd=1;6>=Xd&&Jb;Xd++){if(2<Xd){Ic.B=Jb;var Jc=zf(Eh,Ic);if(0<=Jc.indexOf("JSR")){var eg=Jc.indexOf(" ");if(Jb+(Jc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=Jc;break}}}Jb-=2}Ic.B=dg;if(Na=cg)break}}if(!Na||null==Na)break;var fg=null;if("ks"==Ch){var gg=Na.match(/[0-9A-F]+$/);gg&&(fg=tg(a,gg[0]))}Na=Ba(Na,50)+" ;"+(fg||"stack="+K(a,Ib.B,18));a.u(Na);Vd++}Vd||a.u("no return addresses found")}break;
|
||||
C)a.u("missing breakpoint address");else{var G=Z();if("*"!=C&&(G=ef(a,C,a.M),!G))break a;"c"==Q?null==G.B?(Xe(a),a.u("all breakpoints cleared")):If(a,a.b,G)||If(a,a.N,G)||If(a,a.K,G)||a.u("breakpoint missing: "+K(a,G.B,18)):null!=G.B&&(gf(a,G,H),"p"==Q?a.Pa(a.b,G):"r"==Q?a.Pa(a.N,G):"w"==Q?a.Pa(a.K,G):a.u("unknown breakpoint command: "+Q))}}}break;case "c":a.xa&&(a.xa.value="");break;case "d":a:{var eb,fb=g[0],na=g[1],Ca=g[2],wh=g[3];if("?"==na){var gb="";for(eb in ac)a.Aa[eb]&&(gb&&(gb+=","),gb+=
|
||||
eb);gb+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");gb.length&&a.u("dump extension commands:\n\t"+gb)}else if("state"==na){var Id=wg(a.H,!0);"console"==Ca?console.log(Id):(a.xa&&(a.xa.value=""),Id&&a.u(Id))}else if("symbols"==na)for(var Jd=0;Jd<a.F.length;Jd++){var Kd=a.F[Jd],hb;for(hb in Kd.W)if("."!=hb.charAt(0)){var Mf=Kd.W[hb].o;
|
||||
if(void 0!==Mf){var Nf=Kd.W[hb].l;Nf&&(hb=Nf);a.u(K(a,Mf,18)+" "+hb)}}}else{if("d"==fb){for(eb in ac)if(g[1]==eb){var Of=a.Aa[eb];Of?(g.shift(),g.shift(),Of(g)):a.u("no dump registered for "+na);break a}na||(fb=a.Ma||"dw")}else a.Ma=fb;if("dh"==fb){var Pf=na,Qf=Ca,Rf="",Sf=0,ja=a.U,oa=a.i;if(oa.length){var ea=+Pf||a.Ca,Db=+Qf||10;isNaN(ea)?ea=Db:Rf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Ld=
|
||||
[];"call"==Qf&&(Db=1E5,Ld=["CALL"]);for(void 0!==Pf&&a.u(ea+" instructions earlier:");0<Db&&ja!=a.U;){var Tf=oa[ja++];if(null==Tf.B)break;var Eb=Z(Tf.B),xh=ea--,Uf=zf(a,Eb,"history",xh);(!Ld.length||0<=Uf.indexOf(Ld[0]))&&a.u(Uf);Eb.pb&&(ja+=Eb.pb,Db-=Eb.pb,ea-=Eb.pb);ja>=oa.length&&(ja=0);a.Ca=ea;Sf++;Db--}}Sf||(a.u("no "+Rf+"history available"),a.Ca=void 0)}else{var ib=ef(a,na,a.ka);if(ib){var La=0,Vf="ds"==fb;if(Ca){if("l"==Ca.charAt(0))Ca=Ca.substr(1)||wh,La=Pe(a,Ca);else{var Wf=ef(a,Ca);Wf&&
|
||||
(La=Wf.B-ib.B)}0>La&&(La=0);65536<La&&(La=65536)}var yh=a.S;ib.S&&(a.S=ib.S);for(var Xf="db"==fb?1:2,Md=La||32,Nd=1==Xf?1:4,zh=(Md+Nd-1)/Nd|0||1,Ma="";zh--&&0<Md;){for(var pa="",Od="",na=K(a,ib.B,18),Yf=Nd;0<Yf--&&0<Md--;){var Pd=a.La(ib,1);Vf?(pa&&(pa+=","),pa+=Pd):(pa+=hf(a,Pd),pa+=" ");for(var Gc=29,Ah=0;1==Xf&&0<=Gc;Ah++)var Fb=Pd/Math.pow(2,Gc)%Math.pow(2,7),pa=pa+(K(a,Fb,7)+" "),Fb=Fb+0,Od=Od+(32>Fb?".":String.fromCharCode(Fb)),Gc=Gc-7}Ma&&(Ma+="\n");Ma=Vf?Ma+(pa+","):Ma+(na+": "+pa+(0>Yf?
|
||||
" "+Od:""))}Ma&&a.u(Ma);a.S=yh}}}}break;case "e":if("else"==g[0])break;var Zf,$f,ag=g[0],Qd=g[1];"e"==ag||"ew"==ag?(Zf=a.La,$f=a.xb):Qd=null;if(null==Qd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else{var Hc=ef(a,Qd,a.ka);if(Hc)for(var Rd=2;Rd<g.length;Rd++){var Gb=Se(a,g[Rd]);if(void 0===Gb)break;Gb=ff(Gb);a.u("changing "+K(a,Hc.B,18)+" from "+hf(a,Zf.call(a,Hc))+" to "+hf(a,Gb));$f.call(a,Hc,Gb,1)}}break;case "g":a:{var bg=g[1],Bh=b;if(void 0!==bg){var Sd=ef(a,bg);
|
||||
if(!Sd)break a;gf(a,Sd,Bh);a.Pa(a.b,Sd,!0)}tf(a,!0,c)}break;case "h":a.A.O?(c||a.u("halting"),a.V()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Td;var Hb=b.substr(2),Hb=Ea(Hb);Se(a,Hb)?(c||a.u("true: "+Hb),Td=!0):(c||a.u("false: "+Hb),Td=!1);Td||(d=!1);break}f=!0;break;case "k":var Ch=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Ud=0,Vd=Z(),Ib=Z();for(a.u("stack trace for "+K(a,Ib.B,18));10>
|
||||
Ud;){for(var Na=null,Dh=256;65536>Ib.B>>>0;){Vd.B=a.La(Ib,2);if(null==Ib.B||!Dh--)break;if(!(Vd.B&1)){for(var Eh=a,Ic=Vd,cg=null,Jb=Ic.B,dg=Jb,Wd=1;6>=Wd&&Jb;Wd++){if(2<Wd){Ic.B=Jb;var Jc=zf(Eh,Ic);if(0<=Jc.indexOf("JSR")){var eg=Jc.indexOf(" ");if(Jb+(Jc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=Jc;break}}}Jb-=2}Ic.B=dg;if(Na=cg)break}}if(!Na||null==Na)break;var fg=null;if("ks"==Ch){var gg=Na.match(/[0-9A-F]+$/);gg&&(fg=tg(a,gg[0]))}Na=Ba(Na,50)+" ;"+(fg||"stack="+K(a,Ib.B,18));a.u(Na);Ud++}Ud||a.u("no return addresses found")}break;
|
||||
case "l":if("ln"==g[0]){tg(a,g[1],!0);break}f=!0;break;case "m":a:{var qa,ra=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Da=0;if("all"==N)Da=1879046143,N=null;else if("on"==N)ra=!0,N=null;else if("off"==N)ra=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(qa in ac)if(N==qa){Da=ac[qa];ra=!!(a.aa&Da);break}if(!Da){a.u("unknown message category: "+N);break a}}if(Da)if("on"==g[2])a.aa|=Da,ra=!0;else if("off"==g[2]&&(a.aa&=~Da,ra=!1,1073741824==Da)){for(var hg=1E3<=a.R.length?a.R.length-
|
||||
1E3:0;hg<a.R.length;)a.u(a.R[hg++]);a.R=[]}}var Fh=0,Kb="";for(qa in ac)if(!N||N==qa){var Gh=!!(a.aa&ac[qa]);if(null===ra||ra==Gh)Kb&&(Kb+=","),++Fh%10||(Kb+="\n\t"),"key"==qa&&(qa="keys"),Kb+=qa}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ra?ra?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));Ye(a)}break;case "p":if("print"==g[0]){ug(a,b.substr(5));break}var ig=g[0],jg="p"==ig?0:"pr"==ig?1:-1;if("?"==g[1]||0>jg)a.u("step commands:"),
|
||||
a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.P)a.u("step in progress");else{var kg=Z(a.v.i);a.La(kg);a.P?(a.Pa(a.b,kg,!0),tf(a)||(a.H&&jd(a.H),a.P=0)):vg(a,jg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}wf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var jb=+g[2];if(2==jb||8==jb||10==jb||16==jb)a.S=jb;else{a.u("invalid base: "+jb);break}}a.u("default base: "+a.S);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.qa=
|
||||
Lb;break;case "start":a.v.Fa=Lb;break;case "stop":a.v.ka=Lb;break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Ra?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.Z.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),
|
||||
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":vg(a,g[0],g[1]);break;case "u":xf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){sg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Cb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){ug(a,b.substr(1));break}var Yd="commands:",Zd;for(Zd in xg)Yd+="\n"+
|
||||
Ba(Zd,9)+xg[Zd];sd(a)||(Yd+="\nnote: history disabled if no exec breakpoints");a.u(Yd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(mg){a.u("Debugger "+(mg.stack||mg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!Lf(a,b[+d]))return!1;return!0}
|
||||
a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":vg(a,g[0],g[1]);break;case "u":xf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){sg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Cb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){ug(a,b.substr(1));break}var Xd="commands:",Yd;for(Yd in xg)Xd+="\n"+
|
||||
Ba(Yd,9)+xg[Yd];sd(a)||(Xd+="\nnote: history disabled if no exec breakpoints");a.u(Xd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(mg){a.u("Debugger "+(mg.stack||mg.message)),d=!1}return d}function ed(a,b,c){b=Je(a,b,c);for(var d in b)if(!Lf(a,b[+d]))return!1;return!0}
|
||||
var xg={"?":"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"},Ef=20,Ff=".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 HALT JRSTF JEN".split(" "),
|
||||
kf=0,lf=1,mf=2,nf=3,of=4,pf=5,qf=6,rf=7,jf="PC RA EA C0 C1 OV ND PD".split(" "),yg={},Af=(yg[28672]={0:101},yg[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:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},yg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ef,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},yg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},yg[29248]={24576:79,24640:80,25088:81,25152:82},yg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},yg),Bf=["","I","M","S"],Cf=" L E LE A GE N G".split(" "),Df="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Gf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],sf=1E3,vf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new We(d);tb(d,c)}});
|
||||
function rg(a,b,c,d,e){this.T=b||0;this.ea=c||"";this.b=d;this.done=e;this.C=null;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.j={};this.N={};this.L=[];this.K=[];this.ma=[];this.ua=[];this.Y=this.U=this.ba=0;this.fa=this.T;this.Ka=-1;this.D=[];this.I=null;this.i=0;this.F=null;this.J=this.M="";this.Z=/\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)\s*([^;]+|)(;?[\s\S]*)/i;this.w=this.v=null;this.H="";this.G=[];this.R=0;this.P=a.split(";");zg(this)}
|
||||
function rg(a,b,c,d,e){this.T=b||0;this.ea=c||"";this.b=d;this.done=e;this.C=null;this.u("starting PCjs MACRO-10 Mini-Assembler...");this.j={};this.N={};this.L=[];this.K=[];this.ma=[];this.ua=[];this.Y=this.U=this.ba=0;this.ga=this.T;this.Ka=-1;this.D=[];this.I=null;this.i=0;this.F=null;this.J=this.M="";this.Z=/^\s*([A-Z$%.?][0-9A-Z$%.]*:|)\s*([A-Z$%.][0-9A-Z$%.]*|)(\s*)([^;]+|)(;?[\s\S]*)/i;this.w=this.v=null;this.H="";this.G=[];this.R=0;this.P=a.split(";");zg(this)}
|
||||
function zg(a){if(a.R==a.P.length)a.done(Ag(a));else{var b=a.P[a.R++];a.u("loading "+wa(b));"/"==b[0]&&".MAC"==b.slice(-4)&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/</gi,"<").replace(/>/gi,">").replace(/&/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Bg(a,"unrecognized HTML entity: "+c[0])}a.G=a.G.concat(e.split(/(\r?\n)/));setTimeout(function(){zg(a)},0)}})}}
|
||||
function Ag(a){if(0<=a.ea.indexOf("p"))return a.u(a.G.join()),0;var b=Ue(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ba++;if(!Cg(a,a.G[c]+"\r\n"))break;if(null!==a.C)break}a.i&&a.error("open block from line "+a.j[a.F].ba);a.D.length&&a.error("open scope from line "+a.D[0].ba);for(var c={},d=0;d<a.L.length;c={Ta:c.Ta},d++)c.Ta=a.L[d],Dg(a,c.Ta.name,a.fa,Eg),c.Ta.ma.forEach(function(b){return function(c,d){Fg(a,c,b.Ta.ua[d])}}(c));for(c=0;c<a.K.length;c++){var e=a.K[c],f=a.j[e];f?Gg(a,f.za):a.error("missing definition for variable: "+
|
||||
function Ag(a){if(0<=a.ea.indexOf("p"))return a.u(a.G.join()),0;var b=Ue(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ba++;if(!Cg(a,a.G[c]+"\r\n"))break;if(null!==a.C)break}a.i&&a.error("open block from line "+a.j[a.F].ba);a.D.length&&a.error("open scope from line "+a.D[0].ba);for(var c={},d=0;d<a.L.length;c={Ta:c.Ta},d++)c.Ta=a.L[d],Dg(a,c.Ta.name,a.ga,Eg),c.Ta.ma.forEach(function(b){return function(c,d){Fg(a,c,b.Ta.ua[d])}}(c));for(c=0;c<a.K.length;c++){var e=a.K[c],f=a.j[e];f?Gg(a,f.za):a.error("missing definition for variable: "+
|
||||
e)}a.ua.forEach(function(b,c){var d=Hg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.ma[c],a.ma[c]=Ig(a,d,c))})}catch(g){a.u(g.message),a.U=-1}a.b.I=b;return a.U}
|
||||
function Cg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.I+" definition: "+b)),1<a.i&&(b=Jg(a,b)),a.i))return!0;null!=a.w&&(b=Kg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.Z);if(!h||h[4]&&";"!=h[4].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Lg||f==Mg)c=null;if(c){for(var k=0;k<c.length;k++)for(var m=c[k],p=d[k]||e[k]||"",t=0,C=b.length-h[4].length;t<C;){var H=b.indexOf(m,t);if(0>H)break;var t=
|
||||
H+1,Q=H+m.length,db="",Bb="";H&&(db=b[H-1]).match(/[0-9A-Z$%.]/i)||!(Q>=b.length)&&(Bb=b[Q]).match(/[0-9A-Z$%.]/i)||("'"==db&&H--,"'"==Bb&&Q++,b=b.substr(0,H)+p+b.substr(Q),t=H+p.length,g=!0)}c=null}}c=h[1];b=h[3].trim();h=h[3]+h[4];c&&(c=c.slice(0,-1),Dg(a,c,a.fa,Eg));var E;f&&(E=b.match(/^([=:]+)(.*)/))&&(d=0,c=f,f=E[1],b=E[2],"=="==f?d|=Ng:"=:"==f&&(d|=Og),Dg(a,c,b,d),f=b="");if(!f&&!b)return!0;a.I=f;for((E=Pg(a,b))&&(b=b.replace(E,Qg(a,Rg,Pg(a,h))));E=Sg(a,b);)b=b.replace(E,E.slice(0,-1));if(!Tg(a,
|
||||
f,b))switch(f){case Ug:case Vg:case Wg:Kg(a,h);break;case Xg:(f=b)?(a.C=Hg(a,f,!0),void 0===a.C&&a.error("unrecognized expression: "+f)):a.C=a.T;break;case Yg:Zg(a,b);break;case $g:Zg(a,b.replace(",",",,"));break;case ah:case bh:case ch:case Lg:case Mg:case dh:Qg(a,f,h);break;case eh:case fh:case gh:break;default:E=-1,h=(f+" "+b).trim(),0>b.indexOf(",,")&&(E=Hf(a.b,f,b,a.fa,!0),0>E&&(E=Hf(a.b,"",h,a.fa,!0))),0>E&&(E=Hg(a,h,!0)),void 0!==E?Fg(a,E,a.b.ia):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Tg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.Oa=hh(a,c,!0),Gg(a,d.za,d.Qa,d.Oa,d.zb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case bh:d.eb||Gg(a,d.za);break;case ch:d.eb&&Gg(a,d.za);break;case Lg:case Mg:for(b=0;b<d.Oa.length;b++)Gg(a,d.za,d.Qa,[d.Oa[b]],[]);break;case dh:for(;0<d.eb--;)Gg(a,d.za);break;default:d=d.za,a.D.push({name:b,ma:a.ma,ua:a.ua,fa:a.fa,Ka:a.Ka,ba:a.ba}),a.ma=[],a.ua=[],a.Ka=a.fa,a.fa=0,Gg(a,d),a.D.length?(a.L.push({name:a.D[a.D.length-
|
||||
1].name,ma:a.ma,ua:a.ua}),d=a.D.pop(),a.ma=d.ma,a.ua=d.ua,a.fa=d.fa,a.Ka=d.Ka,a.D.length||-1==a.Ka||a.error("scope restore error")):a.error("scope nesting error")}return!0}function Gg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Cg(a,b[f]+"\r\n",c,d,e);f++);}rg.prototype.error=function(a){throw Error("error"+(this.ba?" at line "+va(this.ba):"")+": "+a);};function Bg(a,b){a.u("warning"+(a.ba?" at line "+va(a.ba):"")+": "+b)}
|
||||
function Cg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.I+" definition: "+b)),1<a.i&&(b=Jg(a,b)),a.i))return!0;null!=a.w&&(b=Kg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.Z);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line: "+b),!1;g=!1;f=h[2].toUpperCase();if(f==Lg||f==Mg)c=null;if(c){for(var k=0;k<c.length;k++)for(var m=c[k],p=d[k]||e[k]||"",t=0,C=b.length-h[5].length;t<C;){var H=b.indexOf(m,t);if(0>H)break;var t=
|
||||
H+1,Q=H+m.length,db="",Bb="";H&&(db=b[H-1]).match(/[0-9A-Z$%.]/i)||!(Q>=b.length)&&(Bb=b[Q]).match(/[0-9A-Z$%.]/i)||("'"==db&&H--,"'"==Bb&&Q++,b=b.substr(0,H)+p+b.substr(Q),t=H+p.length,g=!0)}c=null}}d=h[1];c=h[3];b=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Dg(a,d,a.ga,Eg));var G;f&&(G=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=G[1],b=G[2],"=="==f?e|=Ng:"=:"==f&&(e|=Og),Dg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.I=f;for((G=Pg(a,b))&&(b=b.replace(G,Qg(a,Rg,Pg(a,h))));G=Sg(a,b);)b=b.replace(G,G.slice(0,-1));
|
||||
if(!Tg(a,f,b))switch(f){case Ug:case Vg:case Wg:Kg(a,h);break;case Xg:(f=b)?(a.C=Hg(a,f,!0),void 0===a.C&&a.error("unrecognized expression: "+f)):a.C=a.T;break;case Yg:Zg(a,b);break;case $g:Zg(a,b.replace(",",",,"));break;case ah:case bh:case ch:case Lg:case Mg:case dh:Qg(a,f,h);break;case eh:case fh:case gh:break;default:G=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(G=Hf(a.b,f,b,a.ga,!0)),0>G&&(G=Hg(a,h,!0)),void 0!==G?Fg(a,G,a.b.ia):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Tg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c)return b=a.v,a.v=d,d.Oa=hh(a,c,!0),Gg(a,d.za,d.Qa,d.Oa,d.zb),a.v=b,!0;if("?"!=b[0])return!1;switch(b.substr(1)){case bh:d.eb||Gg(a,d.za);break;case ch:d.eb&&Gg(a,d.za);break;case Lg:case Mg:for(b=0;b<d.Oa.length;b++)Gg(a,d.za,d.Qa,[d.Oa[b]],[]);break;case dh:for(;0<d.eb--;)Gg(a,d.za);break;default:d=d.za,a.D.push({name:b,ma:a.ma,ua:a.ua,ga:a.ga,Ka:a.Ka,ba:a.ba}),a.ma=[],a.ua=[],a.Ka=a.ga,a.ga=0,Gg(a,d),a.D.length?(a.L.push({name:a.D[a.D.length-
|
||||
1].name,ma:a.ma,ua:a.ua}),d=a.D.pop(),a.ma=d.ma,a.ua=d.ua,a.ga=d.ga,a.Ka=d.Ka,a.D.length||-1==a.Ka||a.error("scope restore error")):a.error("scope nesting error")}return!0}function Gg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Cg(a,b[f]+"\r\n",c,d,e);f++);}rg.prototype.error=function(a){throw Error("error"+(this.ba?" at line "+va(this.ba):"")+": "+a);};function Bg(a,b){a.u("warning"+(a.ba?" at line "+va(a.ba):"")+": "+b)}
|
||||
function ih(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s): "+b);break}}}g?0<g&&a.error("extra bracket(s): "+b):f=b.substr(0,d);return f}
|
||||
function Hg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Hg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Hg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.Ka?a.Ka:a.fa),e=Se(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
|
||||
function Hg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Hg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Hg(a,f[2],c,d):0,void 0!==c&&(e=Y(a.b,b,18,!0)*Math.pow(2,18)+Y(a.b,c,18,!0)))):(void 0===d&&(d=0<=a.Ka?a.Ka:a.ga),e=Se(a.b,b.replace(/\.([^0-9]|$)/g,K(a.b,d,-1)+"$1"),c),void 0===e&&a.error("error parsing expression: "+b));return e}
|
||||
function Pg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s): "+b);0<=f&&(d=b.substr(f,g-f));return d}function Sg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;a.j[d]&&a.error("reserved symbol redefined: "+c);var e,f,g;e=f=g=[];a.j[d]={name:d,eb:jh,Qa:e,zb:f,Oa:g,za:b+": 0",ba:a.ba};a.K.push(d)}return c}
|
||||
function hh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=ih(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
|
||||
function Kg(a,b){var c=b;null==a.w&&(a.w=a.H="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.H+=b}if(null==a.w){var d=b=0,e,f,g=a.H.length;a.I==Vg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.I==Wg&&(e--,f++));var k=a.H.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(Fg(a,d),b=0)}b&&Fg(a,d)}return c}
|
||||
function Qg(a,b,c){var d,e,f,g,h,k;a.J="<";a.M=">";g=h=k=[];if(b==ah){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;f=e[1];if(e[2]){h=g=hh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var m=h[c].lastIndexOf(">");0>m&&(m=h[c].length);b[c]=h[c].substr(d,m-d);h[c]=h[c].substr(0,d)}h=b}b=kh;c=3}else if(b==Rg)a.J="[",a.M="]",f="?"+va(++a.Y,5),a.j[f]&&a.error("literal symbol redefined: "+f),e=[c[0],c.substr(1)],
|
||||
b=lh,c=0;else if(b==Lg||b==Mg){a.v||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+": "+c),c;for(d=0;d<a.v.Qa.length&&e[1]!=a.v.Qa[d];d++);if(d==a.v.Qa.length)return a.error("invalid "+b+" parameter: "+e[1]),c;f="?"+b;g=[e[1]];b==Mg?k=a.v.Oa[d].split(""):k=hh(a,a.v.Oa[d]);b=k.length;c=2}else{d=ih(a,c);if(!d)return a.error("missing "+b+" expression: "+c),c;c=c.substr(d.length+1);d=d.trim();e=c.match(/\s*(<|)([\s\S]*)/i);
|
||||
f="?"+b;b=Hg(a,d)||0;c=1}f=f.toUpperCase();a.i=1;a.F=f;a.j[f]={name:f,eb:b,Qa:g,zb:h,Oa:k,za:"",ba:a.ba};e[c]&&(a.i=2,Jg(a,e[c+1]));return f}function Jg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.M&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.F||"";a.j[d].za+=b;a.i||(a.F=null,Tg(a,d));return c}function Zg(a,b){var c=Hg(a,b,!0);void 0!==c?Fg(a,c,a.b.ia):a.error("unrecognized expression: "+b)}
|
||||
function Dg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Eg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Hg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Ub=d,e.ba=a.ba):a.N[b]={name:b,value:c,Ub:d,ba:a.ba};a.b.I[b]=c}}function Fg(a,b,c){a.ma[a.fa]=Ig(a,b);null!=c&&(a.ua[a.fa]=c);a.fa++}
|
||||
function Ig(a,b,c){c=void 0===c?a.fa:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=D)&&Bg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}rg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};var Eg=1,Ng=2,Og=4,Ug="ASCII",Vg="ASCIZ",ah="DEFINE",Xg="END",Yg="EXP",bh="IFE",ch="IFN",Lg="IRP",Mg="IRPC",Rg="LITERAL",eh="PAGE",dh="REPEAT",Wg="SIXBIT",fh="SUBTTL",gh="TITLE",$g="XWD",kh=-1,lh=-2,jh=-3;
|
||||
function Dg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Eg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Hg(a,c);if(void 0===e){a.error("parseExpression("+c+")");return}c=e}(e=a.N[b])?(e.value=c,e.Ub=d,e.ba=a.ba):a.N[b]={name:b,value:c,Ub:d,ba:a.ba};a.b.I[b]=c}}function Fg(a,b,c){a.ma[a.ga]=Ig(a,b);null!=c&&(a.ua[a.ga]=c);a.ga++}
|
||||
function Ig(a,b,c){c=void 0===c?a.ga:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=D)&&Bg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}rg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};var Eg=1,Ng=2,Og=4,Ug="ASCII",Vg="ASCIZ",ah="DEFINE",Xg="END",Yg="EXP",bh="IFE",ch="IFN",Lg="IRP",Mg="IRPC",Rg="LITERAL",eh="PAGE",dh="REPEAT",Wg="SIXBIT",fh="SUBTTL",gh="TITLE",$g="XWD",kh=-1,lh=-2,jh=-3;
|
||||
function mh(a,b,c){r.call(this,"Computer",a,33554432);this.A.X=!1;this.R=null;nh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.U=!1;this.I=this.C=null;this.T=this.P=!1;this.Z=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=oh(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.G=new zc({id:this.$a+".bus",busWidth:this.Y},this.v,this.D);var d,e=qb(this.id);if((this.j=sb("Panel",this.id))&&this.j.xa)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ga=this.j.ga,d.u=this.j.u,d.xa=this.j.xa;this.u(Rb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ja&&d.Ja(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ph),this.b&&(this.I=new G(this,"1.34.3"),qh(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=rh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ga("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&sh(this,this.Ua)}else q("Unable to find CPU component")}ka(mh,r);function nh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
|
||||
0;b<e.length;b++)d=e[b],d.fa=this.j.fa,d.u=this.j.u,d.xa=this.j.xa;this.u(Rb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ja&&d.Ja(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ph),this.b&&(this.I=new F(this,"1.34.3"),qh(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=rh(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.fa("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.U=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&sh(this,this.Ua)}else q("Unable to find CPU component")}ka(mh,r);function nh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
|
||||
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function sh(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){sh(a,b,c)});return}}b.call(a,c)}
|
||||
function th(a,b){var c=new G(a,"1.34.3",uh);if(qh(c)&&vh(c)){var d=c.get(Hh),e=b?b.get(Hh):"unknown";d!=e&&(a.ga("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=mh.prototype;
|
||||
l.Ua=function(a){void 0===a&&(a=this.b||(this.L?Ih:ph));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new G(this,"1.34.3");if(a==Jh)b=!0;else if(a>ph){if(qh(d,this.L)){this.C=new G(this,"1.34.3",Kh);qh(this.C)&&(Lh(this,d),a=Mh,Nh(this.C));this.C.set(Hh,Ga());Oh(this.C);var e=this.b&&!this.K;if(a==Ih||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?qh(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ga("Error: "+g),"unable to verify user"==g&&(Qa(Ph,""),this.i=null)):this.u(f+": "+g),Nh(d),qh(d)?(c=vh(d),e=!0):c=!1))}e&&th(this,c?d:null)}else a==Mh&&d.clear()}else th(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Qh(this,g,d,b,c));b=[d,a,c];a!=Jh?sh(this,this.Gb,b):this.Gb(b)}};
|
||||
function th(a,b){var c=new F(a,"1.34.3",uh);if(qh(c)&&vh(c)){var d=c.get(Hh),e=b?b.get(Hh):"unknown";d!=e&&(a.fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=mh.prototype;
|
||||
l.Ua=function(a){void 0===a&&(a=this.b||(this.L?Ih:ph));if(!this.w){this.w++;var b=!1,c=!1;this.P=!1;var d=this.I||new F(this,"1.34.3");if(a==Jh)b=!0;else if(a>ph){if(qh(d,this.L)){this.C=new F(this,"1.34.3",Kh);qh(this.C)&&(Lh(this,d),a=Mh,Nh(this.C));this.C.set(Hh,Ga());Oh(this.C);var e=this.b&&!this.K;if(a==Ih||pb("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=vh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?qh(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.fa("Error: "+g),"unable to verify user"==g&&(Qa(Ph,""),this.i=null)):this.u(f+": "+g),Nh(d),qh(d)?(c=vh(d),e=!0):c=!1))}e&&th(this,c?d:null)}else a==Mh&&d.clear()}else th(this);delete this.L;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Qh(this,g,d,b,c));b=[d,a,c];a!=Jh?sh(this,this.Gb,b):this.Gb(b)}};
|
||||
function Qh(a,b,c,d,e){if(!b.A.X){b.A.X=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ya(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=ph,window&&window.location.reload()):a.P=!0,b.ya(null),e=!1),!d&&b.Bb){var g=b.Bb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.X=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Qh(this,this.v,b,c,a),J(this,-2),this.v.da());this.P&&(Lh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function Lh(a,b){if(pb("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function wg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",uh),h=Ga();g.set(Hh,h);f.set(Hh,h);f.set(Rh,"1.34.3");f.set(Sh,window?window.location.href:null);f.set(Th,window?window.navigator.userAgent:"");a.v&&a.v.oa&&(c&&(b&&(a.v.A.da=a.v.A.O),a.v.V()),d=a.v.oa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.oa&&(d=m.oa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
|
||||
function wg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.3"),g=new F(a,"1.34.3",uh),h=Ga();g.set(Hh,h);f.set(Hh,h);f.set(Rh,"1.34.3");f.set(Sh,window?window.location.href:null);f.set(Th,window?window.navigator.userAgent:"");a.v&&a.v.oa&&(c&&(b&&(a.v.A.da=a.v.A.O),a.v.V()),d=a.v.oa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.X=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.A.X&&(m.oa&&(d=m.oa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.X=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Uh(a,a.i,f.toString()),Oh(g)&&Oh(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Vh),d&&f.clear(h)):e=f.toString());c&&(a.A.X=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
l.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;J(this,-1)};l.start=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
|
||||
l.stop=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
|
||||
function J(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.ib+=d))&&(e.textContent=c.A.O?c.Y.toFixed(2)+"Mhz":"Stopped",c.ib=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.O;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.S||8,e=e||0,e=8==f?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Aa);jc(a,a.i);dc(a,a.w)}}
|
||||
l.pa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.X?wg(d,!1,!0):sh(d,d.Ua))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.X&&!d.w)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ua(ph)}else d.reset(),d.v&&!d.D&&d.v.da()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=oh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=wg(d,b);b?Uh(d,a,c):d.ga("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function oh(a,b){var c=a.i;c||((c=Pa(Ph),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Wh(a,c))||a.ga("The user ID is invalid.")):b&&a.ga("Browser local storage is not available"));return c}
|
||||
else return this.J[b]=c,c.onclick=function(){var a=oh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=wg(d,b);b?Uh(d,a,c):d.fa("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function oh(a,b){var c=a.i;c||((c=Pa(Ph),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Wh(a,c))||a.fa("The user ID is invalid.")):b&&a.fa("Browser local storage is not available"));return c}
|
||||
function Wh(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(Ph,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function rh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Xh(a,"1.34.3"));return b}
|
||||
function Uh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xh(a,"1.34.3");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ga("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ga(c),Qa(Ph,""),a.i=null)}}
|
||||
function Uh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xh(a,"1.34.3");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.fa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.fa(c),Qa(Ph,""),a.i=null)}}
|
||||
function jd(a,b){if(a.xa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.xa.focus();!b&&window&&window.scrollTo(c,d)}}var Kh="failsafe",uh="validate",Hh="timestamp",Rh="version",Sh="url",Th="browser",Ph="user",Jh=-1,ph=0,Ih=1,Mh=2,Vh=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new mh(g,d,!0);tb(g,f);g.N&&sh(g,g.Ua)}});
|
||||
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.T&&!c.A.X&&c.Ua(Jh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.A.X&&wg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Xh(a,b,c);Nh(this,a.Rb)}l=G.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.T&&!c.A.X&&c.Ua(Jh)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=sb("Computer",c.id))&&c.A.X&&wg(c,!(!c.b||c.F),!0)}});function F(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Xh(a,b,c);Nh(this,a.Rb)}l=F.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function qh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Pa(a.key))?(a.i=b,a.v=!0):!1}function vh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function Oh(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function Nh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}l.clear=function(a){Nh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Xh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Yh=0;
|
||||
function Zh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):$h(k,a,b,c,d,e,f,g)})}
|
||||
|
|
|
|||
Loading…
Reference in a new issue