Fixed unary operators applied to bracketed expressions
This commit is contained in:
parent
1a8c1306d4
commit
470bd1d69e
6 changed files with 896 additions and 878 deletions
|
|
@ -60,12 +60,12 @@ function Ya(a){if(Za)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){w(""+("An un
|
|||
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Wd=b.comment;this.wf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Nb=this.id:(this.wb=this.id.substr(0,a),this.Nb=this.id.substr(a+1));this.A={ready:!1,eb:!1,yd:!1,ca:!1,error:!1};this.Pc=null;this.A.error=!1;this.ja=c||0;this.D=this.f=this.F=this.J=this.Ua=null;db.push(this)}function eb(a,b,c){fb[a]&&b&&(fb[a][b]=c)}function gb(){return Date.now()||+new Date}
|
||||
function w(a){window&&window.alert(a)}function hb(a){var b=!1;window&&(b=window.confirm(a));return b}function ib(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<db.length;b++){var d=db[b];a&&d.id.indexOf(a)||c.push(d)}return c}function mb(a){if(void 0!==a){var b;for(b=0;b<db.length;b++)if(db[b].id===a)return db[b]}return null}
|
||||
function nb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<db.length;d++)if(c)c==db[d]&&(c=null);else if(!(a!=db[d].type||b&&db[d].id.indexOf(b)))return db[d]}return null}function ob(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}
|
||||
function pb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=ob(g))&&k.binding&&a.wa(k.type,k.binding,g,k.value),m=l.length}}}}
|
||||
function z(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 pb(a,b){var c=y;b=A(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=ob(g))&&k.binding&&a.wa(k.type,k.binding,g,k.value),m=l.length}}}}
|
||||
function A(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 qb(a){for(var b=!0,c=rb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=sb.indexOf(e)&&(f=function(){return function(){qb(a)}}());var g=tb[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,k=nb(d[1],a);if(k)if(g=vb[e])b=g(k,d[2],d[3]);else{var l=k.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete rb[a];return b}h=x.prototype;
|
||||
h.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
h.wa=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Ua=this.H[b]=c,c.value="",this.v=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.T=function(a){this.v(a,this.Nb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
|
||||
h.status=function(a){this.v(this.Nb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Bb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Pc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Pc,a.Pc=null,b&&b()))}function Eb(a,b){a.A.eb&&(b?a.A.yd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.eb}
|
||||
h.status=function(a){this.v(this.Nb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Bb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Pc=b);return a.A.ready}function D(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Pc,a.Pc=null,b&&b()))}function Eb(a,b){a.A.eb&&(b?a.A.yd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.eb}
|
||||
function Fb(a,b){if(a.A.yd)return a.A.eb=!1,a.A.yd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.eb=b;return a.A.eb}h.Da=function(){return this.A.ca=!0};h.Ca=function(a,b){b&&(this.A.ca=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ja;var c=a.D.ja&b;return!!b&&c===b||!!(c&a.D.le)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(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 fb=window?window.PCjs.Machines:{},db=window?window.PCjs.Components:[],rb=window?window.PCjs.Commands:{},sb=["hold","sleep","wait"],tb={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},vb={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}};
|
||||
|
|
@ -77,7 +77,7 @@ nj:16384,vj:32768},gf:{bb:63},Sd:{Pj:1024,ej:2048,he:2048,zj:3072,Je:4096,ab:512
|
|||
52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11",180:"RX11"};Pb.kf=["DX",77,1,26,128,1,0,0,128,0];Nb.Ic=["RK",203,2,12,512,0,0,0,512,Nb.Jc.Ic|Nb.Jc.ee|Nb.Jc.ae];Ob.df=["RL",512,2,40,256,0,0,0,256,Ob.Kc.Qe.Se|Ob.Kc.Td|Ob.Kc.Pe];
|
||||
var y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Lb=Kb=!0,Rb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,rx11:262144,dl11:1048576,serial:1048576,kw11:2097152,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.ga=this.g=this.Xa=this.Fb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Uf],STEP:[1,1,!1,!1,this.Vf],ENABLE:[1,1,!1,!1,this.Pf],CONT:[1,1,!0,!1,this.Nf],DEP:[0,0,!0,!1,this.Of],EXAM:[1,1,!0,!1,this.Qf],LOAD:[1,1,!0,!1,this.Sf],TEST:[0,0,!0,!1,this.Rf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Tf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.If,toggle:this.mh,
|
||||
reset:this.hh,set:this.lh};C(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Fb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
|
||||
reset:this.hh,set:this.lh};D(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Fb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
|
||||
h.wa=function(a,b,c,d){if(this.J&&this.J.wa(a,b,c,d)||this.f&&this.f.wa(a,b,c,d)||this.D&&this.D.wa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.H[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.i[b]=d?1:0,this.u++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
|
||||
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.wa.call(this,a,b,c,d)}};h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;Yb(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
|
||||
h.Da=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.ga,this.Fb,this.Xa]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.ga=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.hh=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.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
|
||||
|
|
@ -86,9 +86,9 @@ h.lh=function(a,b){if("SR"==a)return kc(this,ma(b,8));var c=this.b[a];return c?(
|
|||
h.Uf=function(a){a||this.f.A.V||(rc(this.f,this.ga),a=this.f,a.F.reset(),sc(a),this.b[tc]&&this.b[tc][1]&&uc(this.f))};h.Vf=function(){};h.Pf=function(a){a||this.f.da()};h.Nf=function(a){if(!a&&!this.f.A.V)if(this.b[tc]&&this.b[tc][1])uc(this.f);else{if((a=this.D)&&!Eb(a,!0))Fb(a,!0),vc(a,0,null),Fb(a,!1);else try{var b=this.f.Dc(1);0<b&&(wc(this.f,b),xc(this.f,b,!0),yc(this.f,b))}catch(c){"number"!=typeof c&&Bb(this.f,c.stack||c.message)}this.stop();this.J&&H(this.J)}};
|
||||
h.Of=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Xa),this.L==Tb)Ac(this.F,this.ga,a);else{var b=this.f,c=this.ga;b.qa++;b.F.bc(Bc(b,c,4),a);b.qa--}};h.Qf=function(a){a||this.f.A.V||(this.I&&zc(this),a=this.L==Tb?Cc(this.F,this.ga):Dc(this.f,this.ga),Ub(this,a))};h.Sf=function(a){a||this.f.A.V||jc(this,this.Xa)};h.Rf=function(a){a?(this.w=!0,gc(this,!0)):(this.w=!1,gc(this),kc(this,0))};h.Tf=function(a,b){this.Xa=a?this.Xa|1<<b:this.Xa&~(1<<b)};
|
||||
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.ga&&a.ga<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.ga&~c|a.ga+b&c)}function jc(a,b){a.ga=b&a.F.I;if(a.B!==a.ga){a.B=a.ga;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Xa=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Xa&1<<b?1:0;hc(a);return!0}
|
||||
h.stop=function(){jc(this,this.f.g[7])};h.Id=function(a){this.ga=a};h.setData=function(a,b){b?this.Fb=a:this.g=a};h.$f=function(a,b){return(b?this.Fb:this.Xa)&65535};h.sh=function(a){this.Fb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.$f,Sb.prototype.sh,"CNSW"],Fc);Sa(ic);
|
||||
h.stop=function(){jc(this,this.f.g[7])};h.Id=function(a){this.ga=a};h.setData=function(a,b){b?this.Fb=a:this.g=a};h.$f=function(a,b){return(b?this.Fb:this.Xa)&65535};h.sh=function(a){this.Fb=a};function ic(){for(var a=A(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.$f,Sb.prototype.sh,"CNSW"],Fc);Sa(ic);
|
||||
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Qa=[];this.oa=0;this.C=!1;this.N=[];this.zf=[Ic,Jc,Kc,Lc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
|
||||
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
|
||||
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;D(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
|
||||
h.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&&d.length<this.R){for(var e=0,f=Array(this.R),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){w("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Yc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Yb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Yb){n=l.size-(f-m);n>g&&(n=g);l.Yb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return bd(cd,f,g)}f=new I(a,f,n,a.j,d,e);Xc(f,a.D,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+dd[d]+" at "+u(b)),!0):bd(ed,b,c)}h.Md=function(a){return this.u[(a&this.w)>>>this.g].Eb(a&this.i,a)};
|
||||
h.Cc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].pa(b,a):this.u[c++].Eb(b,a)|this.u[c&this.S].Eb(0,a+1)<<8};h.Nd=function(a,b){this.u[(a&this.w)>>>this.g].Hb(a&this.i,b,a)};h.bc=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Ib(c,b,a):(this.u[d++].Hb(c,b&255,a),this.u[d&this.S].Hb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
|
||||
|
|
@ -102,7 +102,7 @@ function Jc(a,b,c){var d=!1,e=this.controller,f=e.Qa[a],g=c&65535;if(f)if(f[1])f
|
|||
b),!0,!e.oa))}function Kc(a,b){var c=-1,d=this.controller;a=d.Qa[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.oa),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.oa);return c}
|
||||
function Lc(a,b,c){var d=!1,e=this.controller;a=e.Qa[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.oa):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.oa))}function L(a){x.call(this,"Device",a,256);this.b={gb:128,Jd:-1}}p(L,x);h=L.prototype;
|
||||
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Jd=md(c,function(){e.b.gb|=128;e.b.gb&64&&nd(e.f,e.b.Ra);e.J&&H(e.J,1);od(e.f,e.b.Jd,1E3/60)});this.b.Ra=pd(c,64,6,2097152);Yb(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
|
||||
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.X&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.X&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});D(this)};function sd(a,b,c,d,e,f){a=a.D;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b.gb=128;od(this.f,this.b.Jd,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.gb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.gb=a.next().value;return!0};h.gg=function(){return this.b.gb};h.zh=function(a){this.b.gb=a&192;this.b.gb&64||td(this.f,this.b.Ra)};h.ig=function(){return ud(this.f)};h.Bh=function(a){vd(this.f,a&-129|this.f.S&128)};h.jg=function(){return wd(this.f)};h.kg=function(){return xd(this.f)};
|
||||
h.lg=function(){return this.f.X};h.Ch=function(a){yd(this.f,a)};h.Xg=function(a){a=a>>1&63;var b=this.f.Ha[a>>1];return a&1?b>>16:b&65535};h.ni=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ha[c]=b&1?this.f.Ha[c]&65535|(a&63)<<16:this.f.Ha[c]&-65536|a&65534};h.Qg=function(a){return this.f.B[1][a>>1&7]};h.gi=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Og=function(a){return this.f.B[1][(a>>1&7)+8]};h.ei=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Pg=function(a){return this.f.M[1][a>>1&7]};
|
||||
h.fi=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Ng=function(a){return this.f.M[1][(a>>1&7)+8]};h.di=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.fg=function(a){return this.f.B[0][a>>1&7]};h.yh=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.dg=function(a){return this.f.B[0][(a>>1&7)+8]};h.wh=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.eg=function(a){return this.f.M[0][a>>1&7]};h.xh=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
|
||||
|
|
@ -116,7 +116,7 @@ var M={},qd=(M[61568]=[null,null,L.prototype.Xg,L.prototype.ni,"UNIMAP",64,1170]
|
|||
L.prototype.$b,"R4SET0"],M[65477]=[null,null,L.prototype.Wb,L.prototype.$b,"R5SET0"],M[65478]=[null,null,L.prototype.sg,L.prototype.Jh,"R6KERNEL"],M[65479]=[null,null,L.prototype.vg,L.prototype.Mh,"R7KERNEL"],M[65480]=[null,null,L.prototype.Xb,L.prototype.ac,"R0SET1",1,1145],M[65481]=[null,null,L.prototype.Xb,L.prototype.ac,"R1SET1",1,1145],M[65482]=[null,null,L.prototype.Xb,L.prototype.ac,"R2SET1",1,1145],M[65483]=[null,null,L.prototype.Xb,L.prototype.ac,"R3SET1",1,1145],M[65484]=[null,null,L.prototype.Xb,
|
||||
L.prototype.ac,"R4SET1",1,1145],M[65485]=[null,null,L.prototype.Xb,L.prototype.ac,"R5SET1",1,1145],M[65486]=[null,null,L.prototype.tg,L.prototype.Kh,"R6SUPER",1,1145],M[65487]=[null,null,L.prototype.ug,L.prototype.Lh,"R6USER",1,1145],M[65504]=[null,null,L.prototype.bg,L.prototype.uh,"CTRL",8,1170],M[65520]=[null,null,L.prototype.ye,L.prototype.De,"LSIZE",1,1170],M[65522]=[null,null,L.prototype.ye,L.prototype.De,"HSIZE",1,1170],M[65524]=[null,null,L.prototype.Sg,L.prototype.ii,"SYSID",1,1170],M[65526]=
|
||||
[null,null,L.prototype.ag,L.prototype.th,"ERR",1,1170],M[65528]=[null,null,L.prototype.hg,L.prototype.Ah,"MBR",1,1170],M[65530]=[null,null,L.prototype.mg,L.prototype.Dh,"PIR"],M[65532]=[null,null,L.prototype.Rg,L.prototype.hi,"SLR"],M[65534]=[null,null,L.prototype.rg,L.prototype.Ih,"PSW"],M);
|
||||
Sa(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=ob(d);switch(c.type){case "default":c=new L(c);pb(c,d);break;case "pc11":c=new Cd(c);pb(c,d);break;case "rl11":c=new Dd(c);pb(c,d);break;case "rk11":c=new N(c);pb(c,d);break;case "rx11":c=new Fd(c),pb(c,d)}}});
|
||||
Sa(function(){for(var a=A(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=ob(d);switch(c.type){case "default":c=new L(c);pb(c,d);break;case "pc11":c=new Cd(c);pb(c,d);break;case "rl11":c=new Dd(c);pb(c,d);break;case "rk11":c=new N(c);pb(c,d);break;case "rx11":c=new Fd(c),pb(c,d)}}});
|
||||
function I(a,b,c,d,e,f){this.D=a;this.id=Gd+=2;this.b=null;this.K=b;this.Yb=c;this.size=d||0;this.type=e||Hd;this.j=e==Id;this.f=this.controller=null;this.Eb=this.J=this.Ed;this.pa=this.B=this.Fd;this.Hb=this.F=this.Zb;this.Ib=this.C=this.Xc;this.H=this.i=0;Xc(this);this.fb=this.Gf=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Jd(this,f.zf);else if(Gb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.G=new Uint16Array(this.u,
|
||||
0,this.size>>1),this.b=new Int32Array(this.u,0,this.size>>2),Jd(this,Kd?Ld:Md);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Jd(this,Vd)}else Jd(this)}h=I.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Gb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
|
||||
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.fb=!0}return!1};function Jd(a,b){b||(b=Wd);Xd(a,b,void 0);Yd(a,b,void 0)}function Xd(a,b,c){c&&a.H||(a.Eb=b[0]||a.Ed,a.pa=b[2]||a.Fd);if(c||void 0===c)a.J=b[0]||a.Ed,a.B=b[2]||a.Fd}function Yd(a,b,c){c&&a.i||(a.Hb=!a.j&&b[1]||a.Zb,a.Ib=!a.j&&b[3]||a.Xc);if(c||void 0===c)a.F=b[1]||a.Zb,a.C=b[3]||a.Xc}
|
||||
|
|
@ -128,7 +128,7 @@ h.bh=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<
|
|||
h.ri=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.fb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Zf,I.prototype.rh,I.prototype.dh,I.prototype.si],Zd=[I.prototype.Xf,I.prototype.ph,I.prototype.Zg,I.prototype.pi];
|
||||
if(Gb)var Md=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi],Ld=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri];var ce;if(Gb){var de=new ArrayBuffer(2);(new DataView(de)).setUint16(0,256,!0);ce=256===(new Uint16Array(de))[0]}else ce=!1;var Kd=ce;
|
||||
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.bd=0;this.$c=b;this.mb=c;this.nd=Math.round(this.$c/1E4)/100;this.yb=this.nd*this.mb;this.od=this.rc=this.Bb=this.Ac=0;this.A.V=this.A.Uc=!1;this.A.ra=a.autoStart;"string"==typeof this.A.ra&&(this.A.ra="true"==this.A.ra);this.A.Ob=!1;this.pc=this.Rb=0;this.qc=+a.csStart;this.Pb=+a.csInterval;this.Sb=+a.csStop;this.ha=[];this.$d=this.ih.bind(this);this.nb=this.Ka=this.lb=this.b=this.ma=this.Ja=this.oc=this.kb=this.Tb=
|
||||
this.pd=this.xb=0;this.ta=null;C(this)}p(ee,x);h=ee.prototype;h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.ta=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.wa(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
|
||||
this.pd=this.xb=0;this.ta=null;D(this)}p(ee,x);h=ee.prototype;h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.ta=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.wa(null,fe[a],b);D(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
|
||||
h.Da=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.ra="true"==c?!0:"false"==c?!1:!!c:null==this.A.ra&&(this.A.ra=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.ra,a.Ha=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.ya&&(b=a.ya,a.ya=null,le(a,b))):this.status("No debugger detected");this.A.ra||this.v("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
h.Ca=function(a){return a?this.save():!0};h.ra=function(){return this.A.V?!0:this.A.ra?(uc(this),!0):!1};h.re=function(){return 0};function ie(a){void 0===a.qc&&(a.qc=0);void 0===a.Pb&&(a.Pb=-1);void 0===a.Sb&&(a.Sb=-1);a.A.Ob=0<=a.qc&&0<a.Pb;a.A.Ob&&(a.pc=0,a.Rb=a.qc-a.nb)}function yc(a,b){if(a.A.Ob){var c=!1;a.pc=a.pc+a.re()|0;a.Rb-=b;0>=a.Rb&&(a.Rb+=a.Pb,c=!0);0<=a.Sb&&a.Sb<=me(a)&&(a.Pb=a.Sb=-1,ie(a),a.da(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.pc))}}
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ca)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ca);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Pc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.da():uc(d))},!0;
|
||||
|
|
@ -167,7 +167,7 @@ function Xe(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.kc(a.ya(b,c,3)):a.g[c]&
|
|||
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,6),a.mc(e,d.call(a,0>c?a.g[-c-1]:c,a.lc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function $e(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.ya(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Vc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
|
||||
function af(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.ya(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.mc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
|
||||
h.Dc=function(a){this.A.complete=!0;var b=this.D?bf(this.D)?1:this.A.Uc?-1:0:0,c=a?this.A.Uc?0:1:-1;this.A.Uc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(cf(this.D,this.g[7],c)){this.da();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Gb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Fe(this,2),this.i&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&He(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
|
||||
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.ce(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
|
||||
1&&this.i++;if(a){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}if(this.i&112&&Ie(this)){if(this.i&4&&cf(this.D,this.g[7],c)){this.da();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.pa(a);this.g[7]=a+2&65535;this.ce(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};Sa(function(){for(var a=A(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ve(d);pb(d,c)}});
|
||||
function df(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function ef(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function ff(a,b){a=b<<1;Je(this,a);return a&65535}function Cf(a,b){a=b<<1;Je(this,a<<8);return a&255}function Df(a,b){a=b&32768|b>>1|b<<16;Je(this,a);return a&65535}function Ef(a,b){a=b&128|b>>1|b<<8;Je(this,a<<8);return a&255}function Ff(a,b){a=b&~a;this.Ea(a);return a}function Gf(a,b){a=b&~a;this.Ea(a<<8);return a}
|
||||
function Hf(a,b){a|=b;this.Ea(a);return a}function If(a,b){a|=b;this.Ea(a<<8);return a}function Jf(a,b){a=~b|65536;this.rb(a);return a&65535}function Kf(a,b){a=~b|256;this.rb(a<<8);return a&255}function Lf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Mf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Nf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Of(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
|
||||
function Pf(a,b){a=-b;this.rb(a,a&b&32768);return a&65535}function Qf(a,b){a=-b;this.rb(a<<8,(a&b&128)<<8);return a&255}function Rf(a,b){a=b<<1|this.C>>16&1;Je(this,a);return a&65535}function Sf(a,b){a=b<<1|this.C>>16&1;Je(this,a<<8);return a&255}function Tf(a,b){a=(this.C&65536|b)>>1|b<<16;Je(this,a);return a&65535}function Uf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Je(this,a<<8);return a&255}function Vf(a,b){var c=b-a;Ke(this,c,a,b);return c&65535}
|
||||
|
|
@ -196,46 +196,46 @@ Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145
|
|||
function Bh(a){x.call(this,"ROM",a,128);this.ia=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.wb,a,b),(a=Fa(a,b))?(c.g=a.aa,c.ia=a.ia):c.j=null);Ch(c)})}}p(Bh,x);
|
||||
h=Bh.prototype;h.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Da=function(){this.ia&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ia),delete this.ia);return!0};h.Ca=function(){return!0};
|
||||
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Bb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Kg,Bh.prototype.ai,null,null,null,a.b>>1],c);if(Yb(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}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.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}C(a)}}h.Kg=function(a){return this.g[a-this.u]};h.ai=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
|
||||
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.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}D(a)}}h.Kg=function(a){return this.g[a-this.u]};h.ai=function(){};Sa(function(){for(var a=A(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
|
||||
function Eh(a){x.call(this,"RAM",a);this.ia=this.g=null;this.i=+a.addr;this.j=+a.size;this.Aa=a.load;this.za=a.exec;null!=this.Aa&&(this.Aa=+this.Aa);null!=this.za&&(this.za=+this.za);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.wb,a,b),(a=Fa(a,b))?(c.g=a.aa,
|
||||
c.ia=a.ia,null==c.Aa&&(c.Aa=a.Aa),null==c.za&&(c.za=a.za)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Da=function(a,b){this.ia&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ia),delete this.ia);b||this.reset();return!0};Eh.prototype.Ca=function(){return!0};
|
||||
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
|
||||
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;D(a)}}
|
||||
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.Aa,this.za,this.i,!this.D)}this.B=!1};
|
||||
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(t&255)+(t>>8)),r=l,D=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
|
||||
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(D)for(F(a,"loading "+ra(D)+" bytes at "+ra(t)+"-"+ra(t+D),4096);D--;)gd(a.F,t++,b[r++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.da(),f=!1;null!=d&&ze(a.f,d,f)}return k}
|
||||
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.wa=function(){return!1};Hh.prototype.Ba=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
|
||||
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(t&255)+(t>>8)),r=l,z=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
|
||||
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(z)for(F(a,"loading "+ra(z)+" bytes at "+ra(t)+"-"+ra(t+z),4096);z--;)gd(a.F,t++,b[r++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.da(),f=!1;null!=d&&ze(a.f,d,f)}return k}
|
||||
Sa(function(){for(var a=A(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);D(this)}p(Hh,x);Hh.prototype.wa=function(){return!1};Hh.prototype.Ba=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=A(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
|
||||
function Ih(a){x.call(this,"SerialPort",a,1048576);this.M=+a.adapter;this.S=+a.baudReceive||9600;this.Z=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.u=this.w=null;this.X=+a.tabSize;this.U=+a.charBOL;this.B=0;this.I=!0;this.P=this.N=null;this.R=this.Y=-1;this.C=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Jh;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.H[b])&&this.wa(null,a,b))}this.j=this.G=this.O=null;this.exports=
|
||||
{connect:this.ve,receiveData:this.Qc,receiveStatus:this.gh,setConnection:this.kh}}p(Ih,x);h=Ih.prototype;
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Pd:la.dc:46==c?b=la.Pd:a.ctrlKey&&c>=la.Ld&&c<=la.yf&&(b=c-(la.Ld-la.Ge));b&&(a.preventDefault&&a.preventDefault(),d.Qc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.Ie&&(b=la.He);d.Qc(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.Qc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.Y=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});Yb(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
|
||||
C(this)};h.ve=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Nb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.wb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
||||
D(this)};h.ve=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Nb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.wb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
||||
h.Da=function(a,b){if(!b)if(this.ve(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
|
||||
h.Qc=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);od(this.f,this.R,1E3/Math.round(this.S/10));return!0};h.gh=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&nd(this.f,this.P))};h.kh=function(a,b){return this.j?!1:(this.j=a,this.G=b,!0)};
|
||||
h.xg=function(){var a=this.b&65534;this.b&=-32769;return a};h.Oh=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.O&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.O.call(this.j,b))};h.wg=function(){this.b&=-129;return this.C};h.Nh=function(){};h.fh=function(){return this.g};h.wi=function(a){this.g&128&&(a&64?nd(this.f,this.N):td(this.f,this.N));this.g=this.g&-70|a&69};h.eh=function(){return 0};
|
||||
h.vi=function(a){a&=255;this.G&&this.G.call(this.j,a);a&=127;if(this.u)if(13==a)this.B=0;else if(8==a)this.u.value=this.u.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=Aa[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.X||8,c=a-this.B%a,this.X&&(b=ya("",c)));this.U&&!this.B&&c&&(b=String.fromCharCode(this.U)+b);this.u.value+=b;this.u.scrollTop=this.u.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==a||1024<=this.w.length)this.v(this.w),
|
||||
this.w="";10!=a&&(this.w+=String.fromCharCode(a))}od(this.f,this.Y,1E3/Math.round(this.Z/10));this.g&=-129};var Jh="buffer",Mh={},Kh=(Mh[65392]=[null,null,Ih.prototype.xg,Ih.prototype.Oh,"RCSR"],Mh[65394]=[null,null,Ih.prototype.wg,Ih.prototype.Nh,"RBUF"],Mh[65396]=[null,null,Ih.prototype.fh,Ih.prototype.wi,"XCSR"],Mh[65398]=[null,null,Ih.prototype.eh,Ih.prototype.vi,"XBUF"],Mh);Sa(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ih(d);pb(d,c)}});
|
||||
this.w="";10!=a&&(this.w+=String.fromCharCode(a))}od(this.f,this.Y,1E3/Math.round(this.Z/10));this.g&=-129};var Jh="buffer",Mh={},Kh=(Mh[65392]=[null,null,Ih.prototype.xg,Ih.prototype.Oh,"RCSR"],Mh[65394]=[null,null,Ih.prototype.wg,Ih.prototype.Nh,"RBUF"],Mh[65396]=[null,null,Ih.prototype.fh,Ih.prototype.wi,"XCSR"],Mh[65398]=[null,null,Ih.prototype.eh,Ih.prototype.vi,"XBUF"],Mh);Sa(function(){for(var a=A(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Ih(d);pb(d,c)}});
|
||||
function Cd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;this.U=+a.baudReceive||3600;this.w=this.b=0;this.L=32768;this.i=this.R=0;this.C=[];this.B=Oh;this.j=Ph;this.M=this.u="";this.aa=this.Aa=this.za=null;this.P=-1;this.O=!Ma("Mobi")&&window&&"FileReader"in window;this.G=null;this.S=-1;this.I=null}p(Cd,x);function Nh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Cd.prototype;
|
||||
h.wa=function(a,b,c){var d=this,e=Ph;switch(b){case "listTapes":return this.H[b]=c,c.onchange=function(){var a=d.H.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){w("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.H[b]=c,!0;case "readTape":e=Qh;case "loadTape":return e||(e=Rh),this.H[b]=c,c.onclick=
|
||||
function(){var a=d.H.listTapes;a&&Sh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Sh(d,ta(b,!0),b,Rh,a)}return!1};return!0;case Th:return this.H[b]=c,!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});Yb(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
|
||||
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
|
||||
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||D(this)};h.Da=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
|
||||
function Sh(a,b,c,d,e){if(c)if(c==Yh)a.T('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Zh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ta(c);a.status("Attempting to load "+c+' as "'+b+'"');a.B=Zh}else a.B=c;ai(a,b,c,d,!1,e)}else ci(a,!1)}
|
||||
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.eb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.eb=!0);g&&ei(a,a.M,a.u,a.j,a.aa,a.Aa,a.za)}
|
||||
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.eb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ca;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.wb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
|
||||
e.aa,e.Aa,e.za));a.A.eb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function bi(a){var b=a.H.listTapes;if(b&&b.options){a=a.B||a.u;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Vh(a,b){b|=0;if(b!==a.P){var c=a.H[Th];c&&(c=(c=z(c,fi))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
|
||||
e.aa,e.Aa,e.za));a.A.eb=!1;a.g&&(a.g--,a.g||D(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function bi(a){var b=a.H.listTapes;if(b&&b.options){a=a.B||a.u;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Vh(a,b){b|=0;if(b!==a.P){var c=a.H[Th];c&&(c=(c=A(c,fi))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
|
||||
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.aa=e;a.Aa=f;a.za=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.qg=function(){return this.b&65534};
|
||||
h.Hh=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&nd(this.f,this.G)):(this.b&=-129,this.b|=2048,this.w=0,od(this.f,this.S,1E3/Math.round(this.U/10))));this.b=this.b&-66|a&65};h.pg=function(){this.b&=-129;this.b|=2048;return this.w};h.Gh=function(){};h.og=function(){return this.L};h.Fh=function(a){this.L=this.L&-65|a&64};h.ng=function(){return this.R};h.Eh=function(a){this.R=a&255};
|
||||
var Oh="",Yh="?",Zh="??",Ph=0,Rh=1,Qh=2,Th="readProgress",fi="pcjs-progress-bar",gi={},Wh=(gi[65384]=[null,null,Cd.prototype.qg,Cd.prototype.Hh,"PRS"],gi[65386]=[null,null,Cd.prototype.pg,Cd.prototype.Gh,"PRB"],gi[65388]=[null,null,Cd.prototype.og,Cd.prototype.Fh,"PPS"],gi[65390]=[null,null,Cd.prototype.ng,Cd.prototype.Eh,"PPB"],gi);
|
||||
function hi(a,b,c){x.call(this,"Disk",{id:a.wb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Ya=b.name;this.Pa=this.Hd="";this.Bd=b.Bd;this.ba=this.la=this.fa=this.va=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.ba,b.la,b.fa,b.va);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Ba=function(a,b,c,d){this.D=d};
|
||||
function hi(a,b,c){x.call(this,"Disk",{id:a.wb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Ya=b.name;this.Pa=this.Hd="";this.Bd=b.Bd;this.ba=this.la=this.fa=this.va=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.ba,b.la,b.fa,b.va);this.g=this.w=null;D(this)}p(hi,x);h=hi.prototype;h.Ba=function(a,b,c,d){this.D=d};
|
||||
function ji(a,b,c,d,e,f){a.mode=b;a.ba=c;a.la=d;a.fa=e;a.va=f;a.b=[];if("preload"!=a.mode){b=Array(a.ba);for(c=0;c<b.length;c++){d=Array(a.la);for(e=0;e<d.length;e++){f=Array(a.fa);for(var g=1;g<=f.length;g++)f[g-1]=ki(null,c,e,g,a.va,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
|
||||
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Ya=b;a.Pa=c;a.Hd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ba=e[0];a.la=e[1];a.fa=e[2];a.va=e[3]||512;c=a.va>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ba);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.la),r=0;r<t.length;r++)for(var D=t[r]=Array(a.fa),A=0;A<D.length;A++){for(var B=ki(null,d,r,A+1,a.va,0),J=B.data,ub=0;ub<c;ub++,f+=4)var Ed=J[ub]=b.getInt32(f,
|
||||
!0),e=e+Ed&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Ya,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Bd?"":e)+"&format=json"));return!!Ea(f,
|
||||
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Ya=b;a.Pa=c;a.Hd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.ba=e[0];a.la=e[1];a.fa=e[2];a.va=e[3]||512;c=a.va>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ba);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.la),r=0;r<t.length;r++)for(var z=t[r]=Array(a.fa),B=0;B<z.length;B++){for(var C=ki(null,d,r,B+1,a.va,0),J=C.data,ub=0;ub<c;ub++,f+=4)var Ed=J[ub]=b.getInt32(f,
|
||||
!0),e=e+Ed&-1;C.Ma=c;z[B]=C}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Ya,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Bd?"":e)+"&format=json"));return!!Ea(f,
|
||||
null,!0,function(b,c,d){mi(a,b,c,d)})}
|
||||
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ca;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Ya+'" (error '+d+": "+b+")",f);else{eb(a.controller.wb,b,c);try{if(0<ta(a.Hd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Ya]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
||||
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.ba=k.length;a.la=k[0].length;a.fa=k[0][0].length;var l=k[0][0][0];a.va=l&&l.length||512;for(d=c=0;d<a.ba;d++)for(f=0;f<a.la;f++)for(g=0;g<a.fa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,D=t.length;D<r;D++)t[D]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
|
||||
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Ya)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Ya,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ak=b;a.Bk=c;a.Wa=a.Ma=0;a.fb=!1;return a}
|
||||
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.ba=k.length;a.la=k[0].length;a.fa=k[0][0].length;var l=k[0][0][0];a.va=l&&l.length||512;for(d=c=0;d<a.ba;d++)for(f=0;f<a.la;f++)for(g=0;g<a.fa;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,z=t.length;z<r;z++)t[z]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
|
||||
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Ya)}catch(B){w("Disk image error ("+b+"): "+B.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Ya,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Ak=b;a.Bk=c;a.Wa=a.Ma=0;a.fb=!1;return a}
|
||||
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.Af&&b<f.la)for(k=g[b]=Array(f.Bf),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.we,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Af&&9==f.ke&&(d=k[g]=ki(null,a,b,f.ke,f.we,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
|
||||
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Wa?(a.Ma+=a.Wa-f,a.Wa=f):f>=a.Wa+a.Ma&&(a.Ma+=f-(a.Wa+a.Ma)+1):(a.Wa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
|
||||
function oi(a,b){var c=a.la*a.fa,d=b/c|0;return d<a.ba?(b%=c,a.seek(d,b/a.fa|0,b%a.fa+1)):null}function pi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
|
||||
|
|
@ -248,24 +248,24 @@ function si(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.typ
|
|||
h.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Dd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.me()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
|
||||
d.g[ma(a.value,10)||0])if(a=a.ea){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Hd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
|
||||
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Dd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Ra=pd(this.f,this.R.wd,this.R.sd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Ra=pd(this.f,this.R.wd,this.R.sd,this.ja);Yb(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",wi,!0);this.O&&vi(this,"Local Disk",Qi);vi(this,"Remote Disk",Si);Ti(this)||D(this)};
|
||||
h.Da=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Sc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Ca=function(a){return a?this.save():!0};h.reset=function(){this.Db();Vi(this)};
|
||||
h.save=function(){var a=new G(this);a.set(0,this.Tc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Db(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Db=function(){return!0};h.Tc=function(){return[]};
|
||||
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Ub=d;f.name=e.Nb;f.Oc=f.Qb=!1;f.jc=null;f.Bd=!0;f.Sc=g[l++]+d;f.ba=g[l++];f.la=g[l++];f.fa=g[l++];f.va=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Lf=g[l++];f.Cf=g[l++];f.status=g[l++];f.uk=0;f.tk=0;f.ke=1;f.Bf=f.fa;f.we=f.va;f.Ck=0;f.Jk=null;f.ea||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Qb=!0,d=new hi(e,g,"preload"),e.pe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.ea&&g&&Zi(e,
|
||||
l,g,f.ea):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Qb,d.Ya,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.ea&&$i(a,c.Pa,c.ea)}return a.B}
|
||||
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&C(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
|
||||
h.Dd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
|
||||
l,g,f.ea):D(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Qb,d.Ya,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.ea&&$i(a,c.Pa,c.ea)}return a.B}
|
||||
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&D(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
|
||||
h.Dd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Qi)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
|
||||
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.me=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.ea)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Vb(a,a.Jf,a.Kf,a.Lf,a.Cf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
|
||||
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Oc?a.T(a.type+" busy"):(k.Oc=!0,e&&(k.Ad=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Qb=!!f,li(new hi(a,k,"preload"),c,d,f,a.pe)&&g++));return g}
|
||||
h.pe=function(a,b,c,d,e){a.Oc=!1;b&&(b.ba>a.ba||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Ub].Sc||"---")),b=null);b?(a.ea=b,a.Ya=c,a.Pa=d,this.xe(a.Ub),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Ub].Sc||"---"),a.Ad||e),this.J&&qe(this.J)):a.Qb=!1;a.Ad&&(a.Ad=!1,--this.M||C(this));ui(this,a.Ub);a.jc&&(a.jc(),a.jc=null)};
|
||||
h.pe=function(a,b,c,d,e){a.Oc=!1;b&&(b.ba>a.ba||b.la>a.la)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Ub].Sc||"---")),b=null);b?(a.ea=b,a.Ya=c,a.Pa=d,this.xe(a.Ub),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Ub].Sc||"---"),a.Ad||e),this.J&&qe(this.J)):a.Qb=!1;a.Ad&&(a.Ad=!1,--this.M||D(this));ui(this,a.Ub);a.jc&&(a.jc(),a.jc=null)};
|
||||
function vi(a,b,c,d){if((a=a.H.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Ub){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Qb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
|
||||
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Ub){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Qb?Qi:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
|
||||
h.jh=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
|
||||
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.nh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Oc)return c.jc||(c.jc=a),!1}return!0};
|
||||
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Ya="",d.Pa="",d.ea=null,d.Qb=!1,c||(a.T("Drive "+(a.g[b].Sc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.xe=function(){};h.Vb=function(){return-1};h.Wc=function(){return-1};var Pi="",Ri="?",Si="??";
|
||||
function Ui(a,b,c){var d=a.g[b];if(d.ea||!1===c)$i(a,d.Pa,d.ea),d.Ya="",d.Pa="",d.ea=null,d.Qb=!1,c||(a.T("Drive "+(a.g[b].Sc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.xe=function(){};h.Vb=function(){return-1};h.Wc=function(){return-1};var wi="",Qi="?",Si="??";
|
||||
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Ic,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Db=function(a){a||(a=[bj.Ic|bj.ee|bj.ae,0,R.$a,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Tc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
|
||||
h.Vb=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Vd,e=0);for(;e;){if(!n){if(b>=a.ba){m=S.Gc;break}n=a.seek(b,c,d+1);if(!n){m=S.de;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Hc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.fc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Wc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Vd,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.fc;break}if(!n){if(b>=a.ba){m=S.Gc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.de;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,D;if(0>(r=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Hc;break}if(t!=(r|D<<8)){m=S.he;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Hc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Wc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ea;var n=null,q;a||(m=S.Vd,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.fc;break}if(!n){if(b>=a.ba){m=S.Gc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.de;break}q=0;++d>=a.fa&&(d=0,++c>=a.la&&(c=0,++b))}if(k){var r,z;if(0>(r=a.read(n,q++))||0>(z=a.read(n,q++))){m=S.Hc;break}if(t!=(r|z<<8)){m=S.he;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Hc;break}q>=a.va&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.$e=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Kb|f>>16-R.na.Kb&R.Kb;this.w=65536-e&65535;this.j=this.j&~cj.td|d&cj.td;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.hb;a.i&&(a.i|=S.Ke,a.b|=R.hb,a.i&S.fd&&(a.b|=R.fd),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Cg=function(){return this.G};h.Th=function(){};h.Dg=function(){return this.i};h.Uh=function(){};h.zg=function(){return this.b&R.gc};
|
||||
h.Qh=function(a){this.b=this.b&~R.Ta|a&R.Ta;if(this.b&R.ec){a=!0;var b,c,d="",e=(this.j&cj.tb)>>cj.na.tb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.$a|R.ud);this.i&=~S.rf;switch(c=this.b&R.xa){case ej.Fe:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.$a;break;case ej.Ve:d="RCHK";case ej.ub:d||(d="READ"),b=this.Vb;case ej.xd:d||(d="WCHK");case ej.ic:d||(d="WRITE");b||(b=this.Wc);g=(this.j&cj.cc)>>cj.na.cc;k=(this.j&cj.jd)>>cj.na.jd;l=this.j&cj.td;m=65536-this.w&65535;n=(this.b&R.Kb)<<
|
||||
16-R.na.Kb|this.u;q=this.b&R.Re?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.ba){this.i|=S.Gc;break}if(l>=f.fa){this.i|=S.Hc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.xd,this.$e.bind(this));break;case ej.Mc:g=(this.j&cj.cc)>>cj.na.cc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.ba?this.b|=R.ud:this.i|=S.Gc;break;case ej.Le:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.$a|R.ud;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
|
||||
|
|
@ -293,109 +293,110 @@ function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u]
|
|||
function zj(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a<<32-b>>32-b:(b=Math.pow(2,b-1),a>=b?(d=a%b,(a/b|0)&1&&(d-=b)):a<-b&&(d=a%b,((-a-1)/b|0)&1?d&&(d+=b):d||(d-=b)));a!=d&&(a=d);return a}
|
||||
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
|
||||
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=zj(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(zj(e))}return!0}
|
||||
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){k=b[c++].trim();l=c<d?b[c++]:"";if(k)n=Cj(a,k,null,f,n);else if("{"==l){k=1;for(n=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;n=Bj(a,b,n,c-1,a.W,f);k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==l||"^-"==l){n=n<<2|2;continue}if("^L"==
|
||||
l){n=n<<2|3;continue}}m=!0;break}if(void 0===n)if(null==a.qb&&f)a.qb=k,n=0;else{m=!0;f=!f;break}q.push(zj(n));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.O[0]?Dj:Ej;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
|
||||
function Fj(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
|
||||
function Gj(a,b,c){var d=void 0;a.qb=null;if(b){"{"!=a.O[0]&&(b=b.split(a.O[0]).join("{").split(a.O[1]).join("}"));b=Fj(a,b,'"',7,5,c);if(!b)return d;b=Fj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Hj(a,null,d)}return d}
|
||||
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.se(b);if(0<=f)f=a.Cd(f);else if(f=a.L[b]&&a.L[b].value,null!=f){var g=a.L[b]&&a.L[b].qb;g&&(a.qb?(d||(a.v(b+" has too many undefined values ("+g+","+a.qb+")"),d=!0),f=void 0):a.qb=g)}else f=ma(b,1<b.length?a.W:10);if(null!=f){for(;e;){switch(e&3){case 1:f=-zj(f);break;case 2:f|=-1;break;case 3:for(a=35;0<=a&&!(f&Math.pow(2,a));)a--;f=35-a}e>>>=2}f=zj(f)}else d||a.v("invalid "+(c?c:"value")+": "+b)}else d||a.v("missing "+(c||"value"));return f}
|
||||
function Hj(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Ij(a,b){if(b)return Hj(a,b,a.L[b].value);var c=0;for(b in a.L)Hj(a,b,a.L[b].value),c++;return 0<c}
|
||||
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){var z;k=b[c++].trim();l=c<d?b[c++]:"";if(k)z=Cj(a,k,null,f,n);else if("{"==l){k=1;for(z=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;z=Bj(a,b,z,c-1,a.W,f);null!=z&&n&&(z=Dj(z,n));k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==
|
||||
l||"^-"==l){n=n<<2|2;continue}if("^L"==l){n=n<<2|3;continue}}m=!0;break}if(void 0===z)if(null==a.qb&&f)a.qb=k,z=0;else{m=!0;f=!f;break}q.push(zj(z));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.O[0]?Ej:Fj;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?!1===f&&a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
|
||||
function Gj(a,b,c,d,e,f){for(var g;0<=(g=b.indexOf(c));){for(var k=0,l=g+1,m=e;l<b.length;){var n=b[l++];if(n==c){m=-1;break}if(!m)break;m--;n=n.charCodeAt(0);7==d?n&=127:n=n-32&63;k=zj(k*Math.pow(2,d)+n,d*e,!0)}if(0<=m){!1===f&&a.v("parse error ("+b+")");break}else b=b.substr(0,g)+K(a,k,-1)+b.substr(l)}return b}
|
||||
function Hj(a,b,c){var d=void 0;a.qb=null;if(b){"{"!=a.O[0]&&(b=b.split(a.O[0]).join("{").split(a.O[1]).join("}"));b=Gj(a,b,'"',7,5,c);if(!b)return d;b=Gj(a,b,"'",6,6,c);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&!1===c&&Ij(a,null,d)}return d}
|
||||
function Dj(a,b){for(;b;){switch(b&3){case 1:a=-zj(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a}
|
||||
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.se(b);if(0<=f)f=a.Cd(f);else if(f=a.L[b]&&a.L[b].value,null!=f){var g=a.L[b]&&a.L[b].qb;g&&(a.qb?(d||(a.v(b+" has too many undefined values ("+g+","+a.qb+")"),d=!0),f=void 0):a.qb=g)}else f=ma(b,1<b.length?a.W:10);null!=f?f=zj(Dj(f,e)):d||a.v("invalid "+(c?c:"value")+": "+b)}else d||a.v("missing "+(c||"value"));return f}
|
||||
function Ij(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Jj(a,b){if(b)return Ij(a,b,a.L[b].value);var c=0;for(b in a.L)Ij(a,b,a.L[b].value),c++;return 0<c}
|
||||
function K(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.W){case 2:a=pa(b,0<c?c:0,e);break;case 8:a=u(b,0<c?(c+2)/3|0:0,!!e);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0,!!e)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var Ej={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Dj={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
|
||||
function Jj(a){xj.call(this,a);this.Ha=!1;this.O=["(",")"];this.ka=[];this.G=X();this.Ga=X();this.P=X();this.B=[];this.b=this.M=this.C=[];Kj(this);this.S=this.ha=0;this.i=[];this.ta=void 0;Lj(this);this.D=this;this.ma={};this.ja=this.le=0;this.U=null;this.N=[];Mj(this,a.messages);this.ya=a.commands;this.Ka=Nj;this.Y=[];this.I=0;this.La=this.ua=null;this.w=this.Ja=this.Ia=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
|
||||
(global[y]=function(a){return le(b,a)})}p(Jj,xj);function Oj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Va:!1,W:c}}h=Jj.prototype;h.Id=function(a,b){a.K=b;a.Va=!1;a.W=void 0;return a};function Pj(a){return[a.K,a.Na,a.W,a.Va,a.Rc]}function Qj(a,b){var c=X(b[0],b[1],b[2]);c.Va=b[3];b[4]&&(c.ie=yj(a,c.Rc=b[4]));return c}
|
||||
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Mj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Rj));1145>this.f.ka&&(this.Y=this.Y.concat(Sj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Oj(Tj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
|
||||
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Yb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
|
||||
var Fj={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Ej={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
|
||||
function Kj(a){xj.call(this,a);this.Ha=!1;this.O=["(",")"];this.ka=[];this.G=X();this.Ga=X();this.P=X();this.B=[];this.b=this.M=this.C=[];Lj(this);this.S=this.ha=0;this.i=[];this.ta=void 0;Mj(this);this.D=this;this.ma={};this.ja=this.le=0;this.U=null;this.N=[];Nj(this,a.messages);this.ya=a.commands;this.Ka=Oj;this.Y=[];this.I=0;this.La=this.ua=null;this.w=this.Ja=this.Ia=this.Z=this.qa=0;this.g=this.X=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
|
||||
(global[y]=function(a){return le(b,a)})}p(Kj,xj);function Pj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Va:!1,W:c}}h=Kj.prototype;h.Id=function(a,b){a.K=b;a.Va=!1;a.W=void 0;return a};function Qj(a){return[a.K,a.Na,a.W,a.Va,a.Rc]}function Rj(a,b){var c=X(b[0],b[1],b[2]);c.Va=b[3];b[4]&&(c.ie=yj(a,c.Rc=b[4]));return c}
|
||||
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Nj(this,a);1140>this.f.ka&&(this.Y=this.Y.concat(Sj));1145>this.f.ka&&(this.Y=this.Y.concat(Tj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Pj(Uj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
|
||||
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Yb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});D(this)};
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.X=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.H[b]=c,Qa(c,function(){if(d.X){var a=d.X.value;d.X.value=
|
||||
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Qd=function(a,b){var c=255,d=Oj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Md(Bc(c,d,3)),c.qa--),c=d,b&&Uj(a,b));return c};
|
||||
h.Sa=function(a,b){var c=65535,d=Oj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Uj(a,b));return c};h.Rd=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Nd(Bc(e,d,5),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};h.Me=function(a,b,c){var d=Oj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.bc(Bc(e,d,4),b);e.qa--}c&&Uj(a,c);H(this.J,-1)}};
|
||||
function Tj(a,b,c){var d;c=(c?a.G:a.Ga).K;var e,f;if(void 0!==b){a:{var g;d=a.O[0];c=a.O[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Gj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
|
||||
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Qa)if(k=+n,c.Qa[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Gj(a,b)}null!=c&&(d=X(c,e,f));return d}
|
||||
function Vj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ie=yj(a,b.Rc=c[2]))}function Uj(a,b){null!=a.K&&(a.K+=b||1)}function Wj(a,b){return(b.Na?"%":"")+K(a,b.K)}
|
||||
function Mj(a,b){a.D=a;a.ja=a.le=536870912;a.U=null;a.N=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
|
||||
h.se=function(a){a=a.toUpperCase();var b=Xj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Yj(a,b){var c;if(b<Zj||a.g)c=ak[b];return c||""}
|
||||
h.Cd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case bk:b=Ad(this.f);break;case ck:b=c.ob;break;case dk:b=c.P;break;case ek:b=c.Ga&65280;break;case fk:b=ud(c);break;case gk:b=wd(c);break;case hk:b=xd(c);break;case ik:b=c.X;break;case Zj:d&&(b=d.ga);break;case jk:d&&(b=d.Fb);break;case kk:d&&(b=d.Xa)}}return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+Wj(this,X(this.f.O&65535)));if(!this.U||a!=this.U)if(this.U=a,this.ja&1073741824)this.N.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Bb=0,a.J&&H(a.J,void 0))}};
|
||||
function Lj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(lk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.v("instruction history buffer allocated")}}function mk(a,b,c){if(!nk(a,c))return!1;uc(a.f,b);return!0}
|
||||
function vc(a,b,c,d){if(!nk(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Dc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
|
||||
function je(a,b,c){if(a.Ha){void 0===b&&(b=!0);c&&a.v(ok+c);c=a.f;if(c=c.i&128?c.Fc|c.Ec<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?pk(a):qk(a)}}function nk(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Da=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
h.Ca=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Lj(this);this.Z=0;this.U=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;rk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Pj(this.G));a.set(1,Pj(this.P));a.set(2,[this.j,this.R,this.ja]);a.set(3,this.B);return a.data()};
|
||||
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Qj(this,a[b++]),this.P=Qj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ia=a;this.Ja=b};
|
||||
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ja;if(!this.I){b="stopped";if(this.w){a-=this.Ia;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);rk(this,this.f.g[7]);this.U=null}};function bf(a){return 1<a.b.length||!!a.ha}
|
||||
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||sk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Id(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){sk(a,b,c||1,a.M)&&a.da(!1)}function be(a,b,c){sk(a,b,c||1,a.C)&&a.da(!1)}
|
||||
function Kj(a){var b,c,d;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++)c=a.M[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.M=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Oj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
|
||||
h.Cb=function(a,b,c){var d=!0;c||tk(this,a,b,!1,!0);if(a!=this.b){var e=Oj(b);if(-1===e)this.v("invalid address: "+Wj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Cb(e&g.i,f)}else e=this.f,(f?e.uc++:e.tc++)||ye(e)}}d&&(a.push(b),c?b.Va=!0:(uk(this,a,a.length-1,"set"),Lj(this)));return d};
|
||||
function tk(a,b,c,d,e){var f=!1;c=Oj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Oj(k)&&(!d||k.Va)){f=!0;k.Va||e||uk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Va||Lj(a);break}}return f}function vk(a,b){for(var c=1;c<b.length;c++)uk(a,b,c);return b.length-1}function uk(a,b,c,d){c=b[c];a.v(b[0]+" "+Wj(a,c)+(d?" "+d:c.Rc?' "'+c.Rc+'"':""))}
|
||||
function rk(a,b){if(void 0!==b)sk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Va){if(!tk(a,a.b,c,!0))break;b=0}}}
|
||||
function sk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Va)for(var l=Oj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Va&&(tk(a,d,k,!0),e=!0);if(n=k.ie){for(var f=!1,q=0;q<n.length;q++)if(!wk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||uk(a,d,g,"hit");break}}}a.qa--;return f}
|
||||
function xk(a,b,c,d){var e=X(b.K),f=a.Sa(b,2),g,k;for(k in a.Ka)if(g=a.Ka[k][f&k])break;g||(g=yk);var l=g[0];0<=a.Y.indexOf(l)&&(g=yk,l=g[0]);var m=k="",n=zk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&Ak;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==Bk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==Ck)A=K(r,f&7,3);else if(B==Dk)A=K(r,f&63,6);else if(B==Ek)A=K(r,f&255,8);else if(B=f&D,D&Fk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Gk;switch(B&Hk){case 0:A=Yj(r,J);break;case 8:A="@"+Yj(r,J);D=Ik(r,r.f.g[J]);break;case 16:7>J?A="("+Yj(r,J)+")+":(B=r.Sa(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Yj(r,J)+")+":(B=r.Sa(t,2),A="@#"+K(r,B,-1),D=Ik(r,B));break;case 32:A="-("+Yj(r,J)+")";break;case 40:A="@-("+Yj(r,J)+")";break;case 48:B=r.Sa(t,2);A=K(r,B,-1)+"("+Yj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ik(r,B));break;case 56:B=r.Sa(t,2),A="@"+K(r,B)+"("+Yj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ik(r,Dc(r.f,B)))}D&&(A=[A,D])}r=
|
||||
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Wj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Sa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Ob?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.pc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Ik(a,b){b=Pe(a.f,b)[0];b>=a.f.vb&&b<a.F.B&&(b=b-a.f.vb+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Qa[b&kd])&&(a=b[4]);return a}function Jk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Kk(a,b){var c=Yj(a,b);c&&(c+="="+K(a,a.Cd(b))+" ");return c}
|
||||
function Lk(a,b){var c,d="";for(c=0;6>c;c++)d+=Kk(a,c);d=d+"\n"+(Kk(a,6)+Kk(a,7));d+=Kk(a,bk)+Kk(a,ck)+Kk(a,ek);d+=Jk(a,"T")+Jk(a,"N")+Jk(a,"Z")+Jk(a,"V")+Jk(a,"C");b&&(b=d,c=""+(Kk(a,fk)+Kk(a,gk)),c+=Kk(a,hk)+Kk(a,ik)+Kk(a,dk),c=c+"\n"+(Kk(a,kk)+Kk(a,Zj)+Kk(a,jk)),d=b+("\n"+c));return d}h.ne=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.ne);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Ik:b,K:c,Mf:d,ia:e,je:f})}function Mk(a,b,c){var d=[],e=Oj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Mf;if(e>=g&&e<g+k){e=Ba(f.je,[e-g],a.ne);0<=e?Nk(a,b,e,d):c&&(e=~e,Nk(a,b,e-1,d),Nk(a,b,e,d));break}}return d}
|
||||
function Nk(a,b,c,d){var e={},f=a.B[b].je,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Ok(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ij(a)||a.v("no variables"),!0;if(!c[2])return Ij(a,c[1]);if(!c[3])return delete a.L[c[1]],!0;b=Gj(a,c[3]);return void 0!==b?(a.L[c[1]]={value:b,qb:void 0},!0):!1}a.v("invalid assignment:"+b);return!1}
|
||||
function Pk(a,b,c){var d=null;if(b=Tj(a,b,!0)){var e=Mk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
|
||||
function pk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Gj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
|
||||
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.X){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.X.focus();window&&window.scrollTo(b,c)}}h.Qd=function(a,b){var c=255,d=Pj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.oa++,d=fd(c,d).J(d&c.i,d),c.oa--):(c=this.f,c.qa++,d=c.F.Md(Bc(c,d,3)),c.qa--),c=d,b&&Vj(a,b));return c};
|
||||
h.Sa=function(a,b){var c=65535,d=Pj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Vj(a,b));return c};h.Rd=function(a,b,c){var d=Pj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.Nd(Bc(e,d,5),b);e.qa--}c&&Vj(a,c);H(this.J,-1)}};h.Me=function(a,b,c){var d=Pj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.qa++;e.F.bc(Bc(e,d,4),b);e.qa--}c&&Vj(a,c);H(this.J,-1)}};
|
||||
function Uj(a,b,c){var d;c=(c?a.G:a.Ga).K;var e,f;if(void 0!==b){a:{var g;d=a.O[0];c=a.O[1];g="("==d||"{"==d||"["==d?"\\":"";for(var k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);){var l=Hj(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(d+g[1]+c,null!=l?K(a,l):"undefined")}if(a.ka.length)for(d=a.ka[0],c=a.ka[1],g="("==d||"{"==d||"["==d?"\\":"",k="["==d?"\\":"",k=new RegExp(g+d+"([^"+k+d+k+c+"]+)"+g+c);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=
|
||||
null;switch(d[1].toLowerCase()){case "ops":c=0}if(null==c)break;b=b.replace(d[0],c.toString())}}"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var m,n;a:{c=a.F;g=d.toUpperCase();for(n in c.Qa)if(k=+n,c.Qa[k][4]==g){n=c.B+k;break a}n=null}if(null==n&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(g=a.B[c].ia[d],null!=g){n=g.o;break}null!=n&&(m=X(n));if(d=m)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Hj(a,b)}null!=c&&(d=X(c,e,f));return d}
|
||||
function Wj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ie=yj(a,b.Rc=c[2]))}function Vj(a,b){null!=a.K&&(a.K+=b||1)}function Xj(a,b){return(b.Na?"%":"")+K(a,b.K)}
|
||||
function Nj(a,b){a.D=a;a.ja=a.le=536870912;a.U=null;a.N=[];b=yj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Rb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Rb[c],a.v(c+" messages enabled"))}}function rd(a,b,c){for(var d in Rb)if(b==Rb[d]){a.ma[d]=c;break}}
|
||||
h.se=function(a){a=a.toUpperCase();var b=Yj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Zj(a,b){var c;if(b<ak||a.g)c=bk[b];return c||""}
|
||||
h.Cd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ua[a-8];else if(20>a)b=this.f.Y[a-16];else{var c=this.f,d=this.g;switch(a){case ck:b=Ad(this.f);break;case dk:b=c.ob;break;case ek:b=c.P;break;case fk:b=c.Ga&65280;break;case gk:b=ud(c);break;case hk:b=wd(c);break;case ik:b=xd(c);break;case jk:b=c.X;break;case ak:d&&(b=d.ga);break;case kk:d&&(b=d.Fb);break;case lk:d&&(b=d.Xa)}}return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+Xj(this,X(this.f.O&65535)));if(!this.U||a!=this.U)if(this.U=a,this.ja&1073741824)this.N.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.V)||Eb(this,!0))this.da(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,re(a),a.Bb=0,a.J&&H(a.J,void 0))}};
|
||||
function Mj(a){var b;if(!bf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(mk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.v("instruction history buffer allocated")}}function nk(a,b,c){if(!ok(a,c))return!1;uc(a.f,b);return!0}
|
||||
function vc(a,b,c,d){if(!ok(a))return!1;var e="";null===c&&(e=(c=!a.ua||"tr"==a.ua)?"tr":"t");a.w=0;b||bf(a)&&cf(a,a.f.g[7],0);try{b=se(a.f,b);var f=a.f.Dc(b);0<f&&(wc(a.f,f),a.w+=f,xc(a.f,f,!0),yc(a.f,f),a.Z++)}catch(g){"number"!=typeof g&&(a.w=0,Bb(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));je(a,c||!1,e);return 0<a.w}h.da=function(a){this.f&&this.f.da(a)};
|
||||
function je(a,b,c){if(a.Ha){void 0===b&&(b=!0);c&&a.v(pk+c);c=a.f;if(c=c.i&128?c.Fc|c.Ec<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Mb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?qk(a):rk(a)}}function ok(a,b){var c;(c=!a.f||!Db(a.f))||(c=a.f,c.A.ca?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Cb(a.f)}h.Da=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
h.Ca=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Mj(this);this.Z=0;this.U=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;sk(this);a||je(this)};h.save=function(){var a=new G(this);a.set(0,Qj(this.G));a.set(1,Qj(this.P));a.set(2,[this.j,this.R,this.ja]);a.set(3,this.B);return a.data()};
|
||||
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Rj(this,a[b++]),this.P=Rj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.R=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ia=a;this.Ja=b};
|
||||
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ja;if(!this.I){b="stopped";if(this.w){a-=this.Ia;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";bf(this)&&(b+=this.Z+" instructions, ",this.Z=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}je(this,!0);ke(this);sk(this,this.f.g[7]);this.U=null}};function bf(a){return 1<a.b.length||!!a.ha}
|
||||
function cf(a,b,c){var d=-1;c||(d=Dc(a.f,b))||(a.f.O&65535)!=b||(b=Fe(a.f,2));if(0<c&&(a.ha&&!--a.ha||tk(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.Z++,0>d&&(d=Dc(a.f,b)),65535!=(d&65535)&&(a.Id(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}function Dg(a){var b=a.f;if(b.A.V)throw rc(b,a.f.O&65535),a.da(),-1;return!1}function ae(a,b,c){tk(a,b,c||1,a.M)&&a.da(!1)}function be(a,b,c){tk(a,b,c||1,a.C)&&a.da(!1)}
|
||||
function Lj(a){var b,c,d;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++)c=a.M[b],d=Pj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!1)):Re(a.f,!1);a.M=["br"];if(a.C)for(b=1;b<a.C.length;b++)c=a.C[b],d=Pj(c),c.Na?(c=a.F,$d(c.b[d>>>c.g],!0)):Re(a.f,!0);a.C=["bw"];a.qa=0;a.ha=0}
|
||||
h.Cb=function(a,b,c){var d=!0;c||uk(this,a,b,!1,!0);if(a!=this.b){var e=Pj(b);if(-1===e)this.v("invalid address: "+Xj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Cb(e&g.i,f)}else e=this.f,(f?e.uc++:e.tc++)||ye(e)}}d&&(a.push(b),c?b.Va=!0:(vk(this,a,a.length-1,"set"),Mj(this)));return d};
|
||||
function uk(a,b,c,d,e){var f=!1;c=Pj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Pj(k)&&(!d||k.Va)){f=!0;k.Va||e||vk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Va||Mj(a);break}}return f}function wk(a,b){for(var c=1;c<b.length;c++)vk(a,b,c);return b.length-1}function vk(a,b,c,d){c=b[c];a.v(b[0]+" "+Xj(a,c)+(d?" "+d:c.Rc?' "'+c.Rc+'"':""))}
|
||||
function sk(a,b){if(void 0!==b)tk(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Va){if(!uk(a,a.b,c,!0))break;b=0}}}
|
||||
function tk(a,b,c,d,e){var f=!1;if(!a.qa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Va)for(var l=Pj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Va&&(uk(a,d,k,!0),e=!0);if(n=k.ie){for(var f=!1,q=0;q<n.length;q++)if(!xk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||vk(a,d,g,"hit");break}}}a.qa--;return f}
|
||||
function yk(a,b,c,d){var e=X(b.K),f=a.Sa(b,2),g,k;for(k in a.Ka)if(g=a.Ka[k][f&k])break;g||(g=zk);var l=g[0];0<=a.Y.indexOf(l)&&(g=zk,l=g[0]);var m=k="",n=Ak[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var z=t,t=b,B="",C=z&Bk;if(C==Y)t=t.K+((f&255)<<24>>23)&65535,B=K(r,t);else if(C==Ck)t=t.K-((f&63)<<1)&65535,B=K(r,t);else if(C==Dk)B=K(r,f&7,3);else if(C==Ek)B=K(r,f&63,6);else if(C==Fk)B=K(r,f&255,8);else if(C=f&z,z&Gk&&(C>>=6,z>>=6),z&Z){var z=null,J=C&
|
||||
Hk;switch(C&Ik){case 0:B=Zj(r,J);break;case 8:B="@"+Zj(r,J);z=Jk(r,r.f.g[J]);break;case 16:7>J?B="("+Zj(r,J)+")+":(C=r.Sa(t,2),B="#"+K(r,C,-1));break;case 24:7>J?B="@("+Zj(r,J)+")+":(C=r.Sa(t,2),B="@#"+K(r,C,-1),z=Jk(r,C));break;case 32:B="-("+Zj(r,J)+")";break;case 40:B="@-("+Zj(r,J)+")";break;case 48:C=r.Sa(t,2);B=K(r,C,-1)+"("+Zj(r,J)+")";7==J&&(B=K(r,C=C+t.K&65535),z=Jk(r,C));break;case 56:C=r.Sa(t,2),B="@"+K(r,C)+"("+Zj(r,J)+")",7==J&&(B="@"+K(r,C=C+t.K&65535),z=Jk(r,Dc(r.f,C)))}z&&(B=[B,z])}r=
|
||||
B;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Xj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Sa(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Ob?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.pc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Jk(a,b){b=Pe(a.f,b)[0];b>=a.f.vb&&b<a.F.B&&(b=b-a.f.vb+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Qa[b&kd])&&(a=b[4]);return a}function Kk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Lk(a,b){var c=Zj(a,b);c&&(c+="="+K(a,a.Cd(b))+" ");return c}
|
||||
function Mk(a,b){var c,d="";for(c=0;6>c;c++)d+=Lk(a,c);d=d+"\n"+(Lk(a,6)+Lk(a,7));d+=Lk(a,ck)+Lk(a,dk)+Lk(a,fk);d+=Kk(a,"T")+Kk(a,"N")+Kk(a,"Z")+Kk(a,"V")+Kk(a,"C");b&&(b=d,c=""+(Lk(a,gk)+Lk(a,hk)),c+=Lk(a,ik)+Lk(a,jk)+Lk(a,ek),c=c+"\n"+(Lk(a,lk)+Lk(a,ak)+Lk(a,kk)),d=b+("\n"+c));return d}h.ne=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Dh(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=Ba(n,l,a.ne);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Ik:b,K:c,Mf:d,ia:e,je:f})}function Nk(a,b,c){var d=[],e=Pj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Mf;if(e>=g&&e<g+k){e=Ba(f.je,[e-g],a.ne);0<=e?Ok(a,b,e,d):c&&(e=~e,Ok(a,b,e-1,d),Ok(a,b,e,d));break}}return d}
|
||||
function Ok(a,b,c,d){var e={},f=a.B[b].je,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ia[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function Pk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Jj(a)||a.v("no variables"),!0;if(!c[2])return Jj(a,c[1]);if(!c[3])return delete a.L[c[1]],!0;b=Hj(a,c[3]);return void 0!==b?(a.L[c[1]]={value:b,qb:void 0},!0):!1}a.v("invalid assignment:"+b);return!1}
|
||||
function Qk(a,b,c){var d=null;if(b=Uj(a,b,!0)){var e=Nk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+ra(f)),f=e[0]+" ("+K(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+ra(f)),f=e[4]+" ("+K(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
|
||||
function qk(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=Hj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":rc(e,
|
||||
g);a.G=X(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.G=g?32768:0;break;case "C":e.C=g?65536:0;break;case "PS":Bd(e,g);break;case "PI":zd(e,g);break;case "ER":e.P=g;d=!0;break;case "SL":e.Ga=g|255;break;case "M0":vd(e,g);d=!0;break;case "M3":yd(e,g);d=!0;break;case "AR":a.g&&(d=a.g,jc(d,d.ga=g));d=!0;break;case "DR":a.g&&Ub(a.g,g);d=!0;break;case "SR":a.g&&kc(a.g,g);d=!0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=g&65535;break}a.v("unknown register: "+
|
||||
f);return}H(a.J);a.v("updated registers:")}}a.v(Lk(a,d));c&&(a.G=X(e.g[7]),qk(a,Wj(a,a.G)))}}function Qk(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Hj(a,null,c[2].charCodeAt(0)):Gj(a,b,!1)}
|
||||
function Rk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
|
||||
function qk(a,b,c,d){if(b=Tj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Tj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Mk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=xk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
|
||||
function wk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(ok+b):(a.R&&(a.v("ended assemble at "+Wj(a,a.P)),a.G=a.P,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Db(a)&&0<b.length){a.R&&(b="a "+Wj(a,a.P)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
|
||||
Tj(a,g[1],!0);if(q)if(a.P=q,void 0===g[2])a.v("begin assemble at "+Wj(a,q)),a.R=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Rd(q,t[r],1);a.v(xk(a,a.P))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var J=D.charAt(1);if("l"==J){var ub;ub=0+vk(a,a.b);ub+=vk(a,a.M);(ub+=vk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+A||0;A&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Tj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Kj(a),a.v("all breakpoints cleared")):tk(a,a.b,sa)||tk(a,a.M,sa)||tk(a,a.C,sa)||a.v("breakpoint missing: "+Wj(a,sa)):null!=sa.K&&(Vj(a,sa,B),"p"==J?a.Cb(a.b,sa):"r"==J?a.Cb(a.M,sa):"w"==
|
||||
J?a.Cb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Ua&&(a.Ua.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],ql=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Sk(a.J,!0);"console"==kb?console.log(gf):(a.Ua&&(a.Ua.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var wi=jf.ia[ac].o;if(void 0!==wi){var xi=jf.ia[ac].l;xi&&(ac=xi);a.v(K(a,wi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var yi=a.ma[Zb];yi?(g.shift(),g.shift(),
|
||||
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.La||"dw")}else a.La=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.S,Ua=a.i;if(Ua.length){var Ca=+zi||a.ta,Mc=+Ai||10;isNaN(Ca)?Ca=Mc:Bi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Ai&&(Mc=1E5,kf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.S;){var Di=Ua[Ia++];if(null==Di.K)break;var Nc=X(Di.K),
|
||||
rl=Ca--,Ei=xk(a,Nc,"history",rl);(!kf.length||0<=Ei.indexOf(kf[0]))&&a.v(Ei);Nc.zd&&(Ia+=Nc.zd,Mc-=Nc.zd,Ca-=Nc.zd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Ci++;Mc--}}Ci||(a.v("no "+Bi+"history available"),a.ta=void 0)}else{var oa=Tj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
|
||||
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Tk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ql,wb=Cj(a,kb);else{var Fi=Tj(a,kb);Fi&&(wb=Fi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var tl=a.W;oa.W&&(a.W=oa.W);for(var xb="dd"==jb?4:"db"==jb?1:2,Nd=xb*wb||128,nf=mf?
|
||||
16:a.W,ul=(Nd+nf-1)/nf|0||1,yb="";ul--&&0<Nd;){for(var zb="",of="",Ta=Wj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Qd(oa,bc):a.Sa(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ga=oa;a.W=tl}}}}break;case "e":if("else"==
|
||||
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Qd,sf=a.Rd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Sa,sf=a.Me):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Tj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Gj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Wj(a,Qd)+(E(a,16)?
|
||||
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Gi=g[1],vl=b;if(void 0!==Gi){var vf=Tj(a,Gi,!0);if(!vf)break a;Vj(a,vf,vl);a.Cb(a.b,vf,!0)}mk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Gj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var wl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Wj(a,Sc));10>xf;){for(var Ab=null,xl=256;65536>Sc.K>>>0;){yf.K=a.Sa(Sc,2);if(null==Sc.K||!xl--)break;if(!(yf.K&1)){for(var yl=a,Sd=yf,Hi=null,Tc=Sd.K,Ii=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=xk(yl,Sd);if(0<=Td.indexOf("JSR")){var Ji=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ji+1)-Ji-1)/2==Ii){Hi=Td;break}}}Tc-=2}Sd.K=Ii;if(Ab=Hi)break}}if(!Ab||null==Ab)break;var Ki=
|
||||
null;if("ks"==wl){var Li=Ab.match(/[0-9A-F]+$/);Li&&(Ki=Pk(a,Li[0]))}Ab=ya(Ab,50)+" ;"+(Ki||"stack="+Wj(a,Sc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Pk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Mi=1E3<=a.N.length?a.N.length-1E3:0;Mi<a.N.length;)a.v(a.N[Mi++]);a.N=[]}}var zl=0,Uc="";for(Va in Rb)if(!T||T==Va){var Al=!!(a.ja&Rb[Va]);if(null===Wa||Wa==Al)Uc&&(Uc+=","),++zl%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||
(Uc||"none"));Lj(a)}break;case "p":if("print"==g[0]){Qk(a,b.substr(5));break}var Bl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Ni="pr"==Bl?1:0,Oi=1+Ni;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Sa(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Oi,Uj(Ud,2)):2048==(dc&65024)&&(xk(a,Ud),a.I=Oi);a.I?(a.Cb(a.b,Ud,!0),mk(a)||(a.J&&qe(a.J),a.I=0)):Rk(a,Ni?"tr":
|
||||
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}pk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Pb=Wc;break;case "start":a.f.qc=Wc;break;case "stop":a.f.Sb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Ob?"enabled":"disabled"));break;case "sp":void 0!==
|
||||
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.yb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Rk(a,
|
||||
g[0],g[1]);break;case "u":qk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ok(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.3 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Qk(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Uk)Af+="\n"+ya(Bf,9)+Uk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
b),d=!1)}}catch(Qi){a.v("debugger error: "+(Qi.stack||Qi.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!wk(a,b[+d]))return!1;return!0}
|
||||
var Uk={"?":"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"},zk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
bk=20,ck=21,dk=22,ek=23,fk=24,gk=25,hk=26,ik=27,Zj=28,jk=29,kk=30,Xj={SP:6,PC:7,PS:bk,PI:ck,ER:dk,SL:ek,M0:fk,M1:gk,M2:hk,M3:ik,AR:Zj,DR:jk,SR:kk},ak="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Tk="KI KD SI SD ?? ?? UI UD".split(" "),Gk=7,Hk=56,Z=Hk|Gk,Fk=4032,Y=4096,Bk=8192,Ck=12288,Dk=24576,Ek=32768,Ak=61440,Nj={61440:{4096:[62,Fk,Z],8192:[47,Fk,Z],12288:[18,Fk,Z],16384:[14,Fk,Z],20480:[16,Fk,Z],24576:[3,Fk,Z],36864:[63,Fk,Z],40960:[48,
|
||||
Fk,Z],45056:[19,Fk,Z],49152:[15,Fk,Z],53248:[17,Fk,Z],57344:[94,Fk,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,Bk]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Ek],35072:[107,Ek]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
|
||||
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Dk],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Gk],152:[108,Ck]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
|
||||
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},yk=[0],Rj=[58,60,65,96,110,100,101,102,103,104,105],Sj=[108,59,64],lk=1E3,ok=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Jj(d);pb(d,c)}});
|
||||
function Vk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Wk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Xk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.wb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Ua)for(b=
|
||||
f);return}H(a.J);a.v("updated registers:")}}a.v(Mk(a,d));c&&(a.G=X(e.g[7]),rk(a,Xj(a,a.G)))}}function Rk(a,b){b=za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):Ij(a,null,c[2].charCodeAt(0)):Hj(a,b,!1)}
|
||||
function Sk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Cj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ua=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
|
||||
function rk(a,b,c,d){if(b=Uj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Cj(a,c.substr(1)),null!=c&&(d=c);else{d=Uj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Nk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=yk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
|
||||
function xk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(pk+b):(a.R&&(a.v("ended assemble at "+Xj(a,a.P)),a.G=a.P,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Db(a)&&0<b.length){a.R&&(b="a "+Xj(a,a.P)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
|
||||
Uj(a,g[1],!0);if(q)if(a.P=q,void 0===g[2])a.v("begin assemble at "+Xj(a,q)),a.R=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Rd(q,t[r],1);a.v(yk(a,a.P))}}break;case "b":a:{var z=g[0],B=g[1],C=b;if("?"==B)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var J=z.charAt(1);if("l"==J){var ub;ub=0+wk(a,a.b);ub+=wk(a,a.M);(ub+=wk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Ed=+B||0;B&&(a.ha=Ed);a.v("break after "+Ed+" instruction(s)")}else if(void 0===B)a.v("missing breakpoint address");else{var sa=X();if("*"!=B&&(sa=Uj(a,B,!0),!sa))break a;"c"==J?null==sa.K?(Lj(a),a.v("all breakpoints cleared")):uk(a,a.b,sa)||uk(a,a.M,sa)||uk(a,a.C,sa)||a.v("breakpoint missing: "+Xj(a,sa)):null!=sa.K&&(Wj(a,sa,C),"p"==J?a.Cb(a.b,sa):"r"==J?a.Cb(a.M,sa):"w"==
|
||||
J?a.Cb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Ua&&(a.Ua.value="");break;case "d":a:{var Zb,jb=g[0],Ta=g[1],kb=g[2],rl=g[3];if("?"==Ta){var $b="";for(Zb in Rb)a.ma[Zb]&&($b&&($b+=","),$b+=Zb);$b+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");$b.length&&a.v("dump extension commands:\n\t"+$b)}else if("state"==Ta){var gf=Tk(a.J,!0);"console"==kb?console.log(gf):(a.Ua&&(a.Ua.value=""),gf&&a.v(gf))}else if("symbols"==Ta)for(var hf=0;hf<a.B.length;hf++){var jf=a.B[hf],ac;for(ac in jf.ia)if("."!=ac.charAt(0)){var xi=jf.ia[ac].o;if(void 0!==xi){var yi=jf.ia[ac].l;yi&&(ac=yi);a.v(K(a,xi)+" "+ac)}}}else{if("d"==jb){for(Zb in Rb)if(g[1]==Zb){var zi=a.ma[Zb];zi?(g.shift(),g.shift(),
|
||||
zi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.La||"dw")}else a.La=jb;if("dh"==jb){var Ai=Ta,Bi=kb,Ci="",Di=0,Ia=a.S,Ua=a.i;if(Ua.length){var Ca=+Ai||a.ta,Mc=+Bi||10;isNaN(Ca)?Ca=Mc:Ci="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var kf=[];"call"==Bi&&(Mc=1E5,kf=["CALL"]);for(void 0!==Ai&&a.v(Ca+" instructions earlier:");0<Mc&&Ia!=a.S;){var Ei=Ua[Ia++];if(null==Ei.K)break;var Nc=X(Ei.K),
|
||||
sl=Ca--,Fi=yk(a,Nc,"history",sl);(!kf.length||0<=Fi.indexOf(kf[0]))&&a.v(Fi);Nc.zd&&(Ia+=Nc.zd,Mc-=Nc.zd,Ca-=Nc.zd);Ia>=Ua.length&&(Ia=0);a.ta=Ca;Di++;Mc--}}Di||(a.v("no "+Ci+"history available"),a.ta=void 0)}else{var oa=Uj(a,Ta);if(oa)if("da"==jb){var lf=oa.Na||65535<oa.K,O=Pe(a.f,oa.K||0,lf);a.v(ya("",lf?12:19)+pa(oa.K,lf?22:17,3)+" "+u(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+pa(O[3],13,3)+" "+u(O[3],8)),a.v("UNIMAP["+qa(O[1],2)+"]: "+pa(O[2],22,3)+" "+u(O[2],8))),a.v(" PHYSICAL: "+
|
||||
pa(O[0],22,3)+" "+u(O[0],8))):(a.v(" OFFSET: "+pa(O[1],13,3)+" "+u(O[1],8)),a.v("+ "+Uk[O[2]]+"PAR"+O[3]+": "+pa(O[4],22,3)+" "+u(O[4],8)),a.v("& MMUMASK: "+pa(O[5],22,3)+" "+u(O[5],8)),a.v("= PHYSICAL: "+pa(O[0],22,3)+" "+u(O[0],8)))}else{var wb=0,mf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||rl,wb=Cj(a,kb);else{var Gi=Uj(a,kb);Gi&&(wb=Gi.K-oa.K)}0>wb&&(wb=0);65536<wb&&(wb=65536)}var ul=a.W;oa.W&&(a.W=oa.W);for(var xb="dd"==jb?4:"db"==jb?1:2,Nd=xb*wb||128,nf=mf?
|
||||
16:a.W,vl=(Nd+nf-1)/nf|0||1,yb="";vl--&&0<Nd;){for(var zb="",of="",Ta=Xj(a,oa),Od=nf,Oc=0,Pc=0;0<Od&&0<Nd;){var bc=1,Pd=1==xb?a.Qd(oa,bc):a.Sa(oa,bc=2),Oc=Oc|Pd<<(Pc<<3),Pc=Pc+bc;Pc==xb&&(mf?(zb&&(zb+=","),zb+="0x"+v(Oc,xb<<1)):(zb+=K(a,Oc,xb<<3),zb+=1==xb?9==Od?"-":" ":" "),Oc=Pc=0);Od-=bc;for(Nd-=bc;1==xb&&bc--;)var pf=Pd&255,of=of+(32<=pf&&128>pf?String.fromCharCode(pf):"."),Pd=Pd>>8}yb&&(yb+="\n");yb=mf?yb+(zb+","):yb+(Ta+": "+zb+(Od?"":" "+of))}yb&&a.v(yb);a.Ga=oa;a.W=ul}}}}break;case "e":if("else"==
|
||||
g[0])break;var cc,qf,rf,sf,tf=g[0],uf=g[1];"eb"==tf?(cc=1,qf=255,rf=a.Qd,sf=a.Rd):"e"==tf||"ew"==tf?(cc=2,qf=65535,rf=a.Sa,sf=a.Me):uf=null;if(null==uf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Qd=Uj(a,uf);if(Qd)for(var Rd=2;Rd<g.length;Rd++){var Qc=Hj(a,g[Rd]);if(void 0===Qc){a.v("unrecognized value: "+g[Rd]);break}Qc&~qf&&a.v("warning: "+v(Qc)+" exceeds "+cc+"-byte value");a.v("changing "+Xj(a,Qd)+(E(a,16)?
|
||||
"":" from "+K(a,rf.call(a,Qd),cc<<3))+" to "+K(a,Qc,cc<<3));sf.call(a,Qd,Qc,cc)}}break;case "g":a:{var Hi=g[1],wl=b;if(void 0!==Hi){var vf=Uj(a,Hi,!0);if(!vf)break a;Wj(a,vf,wl);a.Cb(a.b,vf,!0)}nk(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.da()):Eb(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var wf;var Rc=b.substr(2),Rc=za(Rc);Hj(a,Rc)?(c||a.v("true: "+Rc),wf=!0):(c||a.v("false: "+Rc),wf=!1);wf||(d=!1);break}f=!0;break;case "k":var xl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var xf=0,yf=X(),Sc=X(a.f.g[6]);for(a.v("stack trace for "+Xj(a,Sc));10>xf;){for(var Ab=null,yl=256;65536>Sc.K>>>0;){yf.K=a.Sa(Sc,2);if(null==Sc.K||!yl--)break;if(!(yf.K&1)){for(var zl=a,Sd=yf,Ii=null,Tc=Sd.K,Ji=Tc,zf=1;6>=zf&&Tc;zf++){if(2<zf){Sd.K=Tc;var Td=yk(zl,Sd);if(0<=Td.indexOf("JSR")){var Ki=Td.indexOf(" ");if(Tc+(Td.indexOf(" ",Ki+1)-Ki-1)/2==Ji){Ii=Td;break}}}Tc-=2}Sd.K=Ji;if(Ab=Ii)break}}if(!Ab||null==Ab)break;var Li=
|
||||
null;if("ks"==xl){var Mi=Ab.match(/[0-9A-F]+$/);Mi&&(Li=Qk(a,Mi[0]))}Ab=ya(Ab,50)+" ;"+(Li||"stack="+Xj(a,Sc));a.v(Ab);xf++}xf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Qk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Rb)if(T==Va){lb=Rb[Va];Wa=!!(a.ja&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
T);break a}}if(lb)if("on"==g[2])a.ja|=lb,Wa=!0;else if("off"==g[2]&&(a.ja&=~lb,Wa=!1,1073741824==lb)){for(var Ni=1E3<=a.N.length?a.N.length-1E3:0;Ni<a.N.length;)a.v(a.N[Ni++]);a.N=[]}}var Al=0,Uc="";for(Va in Rb)if(!T||T==Va){var Bl=!!(a.ja&Rb[Va]);if(null===Wa||Wa==Bl)Uc&&(Uc+=","),++Al%10||(Uc+="\n\t"),"key"==Va&&(Va="keys"),Uc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||
(Uc||"none"));Mj(a)}break;case "p":if("print"==g[0]){Rk(a,b.substr(5));break}var Cl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Oi="pr"==Cl?1:0,Pi=1+Oi;if(a.I)a.v("step in progress");else{var Ud=X(a.f.g[7]),dc=a.Sa(Ud);3==dc||4==dc||34816==(dc&65280)||32256==(dc&65024)||35072==(dc&65280)?(a.I=Pi,Vj(Ud,2)):2048==(dc&65024)&&(yk(a,Ud),a.I=Pi);a.I?(a.Cb(a.b,Ud,!0),nk(a)||(a.J&&qe(a.J),a.I=0)):Sk(a,Oi?"tr":
|
||||
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}qk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Vc=+g[2];if(8==Vc||10==Vc||16==Vc)a.W=Vc;else{a.v("invalid base: "+Vc);break}}a.v("default base: "+a.W);break;case "cs":var Wc;void 0!==g[3]&&(Wc=+g[3]);switch(g[2]){case "int":a.f.Pb=Wc;break;case "start":a.f.qc=Wc;break;case "stop":a.f.Sb=Wc;break;default:a.v("unknown cs option");break a}void 0!==Wc&&ie(a.f);a.v("checksums "+(a.f.A.Ob?"enabled":"disabled"));break;case "sp":void 0!==
|
||||
g[2]&&(ne(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.yb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Sk(a,
|
||||
g[0],g[1]);break;case "u":rk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Pk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Hb||"PDP11")+" version 1.34.3 ("+a.f.ka+",RELEASE"+(Jb?",TYPEDARRAYS":Ib?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Rk(a,b.substr(1));break}var Af="commands:",Bf;for(Bf in Vk)Af+="\n"+ya(Bf,9)+Vk[Bf];bf(a)||(Af+="\nnote: history disabled if no exec breakpoints");a.v(Af);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
b),d=!1)}}catch(Ri){a.v("debugger error: "+(Ri.stack||Ri.message)),d=!1}return d}function le(a,b,c){b=yj(a,b,c);for(var d in b)if(!xk(a,b[+d]))return!1;return!0}
|
||||
var Vk={"?":"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"},Ak=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
ck=20,dk=21,ek=22,fk=23,gk=24,hk=25,ik=26,jk=27,ak=28,kk=29,lk=30,Yj={SP:6,PC:7,PS:ck,PI:dk,ER:ek,SL:fk,M0:gk,M1:hk,M2:ik,M3:jk,AR:ak,DR:kk,SR:lk},bk="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Uk="KI KD SI SD ?? ?? UI UD".split(" "),Hk=7,Ik=56,Z=Ik|Hk,Gk=4032,Y=4096,Ck=8192,Dk=12288,Ek=24576,Fk=32768,Bk=61440,Oj={61440:{4096:[62,Gk,Z],8192:[47,Gk,Z],12288:[18,Gk,Z],16384:[14,Gk,Z],20480:[16,Gk,Z],24576:[3,Gk,Z],36864:[63,Gk,Z],40960:[48,
|
||||
Gk,Z],45056:[19,Gk,Z],49152:[15,Gk,Z],53248:[17,Gk,Z],57344:[94,Gk,Z]},65024:{2048:[57,448,Z],28672:[100,Z,448],29184:[101,Z,448],29696:[102,Z,448],30208:[103,Z,448],30720:[104,448,Z],32256:[105,448,Ck]},65280:{256:[27,Y],512:[24,Y],768:[10,Y],1024:[11,Y],1280:[22,Y],1536:[12,Y],1792:[20,Y],32768:[25,Y],33024:[23,Y],33280:[13,Y],33536:[21,Y],33792:[28,Y],34048:[29,Y],34304:[8,Y],34560:[9,Y],34816:[106,Fk],35072:[107,Fk]},65472:{64:[56,Z],192:[95,Z],2560:[39,Z],2624:[49,Z],2688:[53,Z],2752:[51,Z],
|
||||
2816:[67,Z],2880:[1,Z],2944:[77,Z],3008:[97,Z],3072:[73,Z],3136:[71,Z],3200:[6,Z],3264:[4,Z],3328:[58,Ek],3392:[60,Z],3456:[65,Z],3520:[96,Z],35328:[40,Z],35392:[50,Z],35456:[54,Z],35520:[52,Z],35584:[68,Z],35648:[2,Z],35712:[78,Z],35776:[98,Z],35840:[74,Z],35904:[72,Z],35968:[7,Z],36032:[5,Z],36096:[66,Z],36160:[59,Z],36224:[64,Z],36288:[61,Z]},65528:{128:[76,Hk],152:[108,Dk]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],
|
||||
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},zk=[0],Sj=[58,60,65,96,110,100,101,102,103,104,105],Tj=[108,59,64],mk=1E3,pk=">> ";Sa(function(){for(var a=A(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Kj(d);pb(d,c)}});
|
||||
function Wk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ca=!1;this.O=null;Xk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Yk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.wb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Ua)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Ua=this.i.Ua;this.v(Hb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Yk),this.b&&(this.B=new G(this,"1.34.3"),Zk(this.B)?b=null:delete this.B);!b&&this.b&&(b=$k(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.zc(this.sc)}else w("Unable to find CPU component")}p(Vk,x);
|
||||
function Wk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[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}h=Vk.prototype;
|
||||
h.zc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.zc(a,b)});return}}a.call(this,b)};function al(a,b){var c=new G(a,"1.34.3",bl);if(Zk(c)&&cl(c)){var d=c.get(dl),e=b?b.get(dl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
h.sc=function(a){void 0===a&&(a=this.b||(this.G?el:Yk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==fl)b=!0;else if(a>Yk){if(Zk(d,this.G)){this.u=new G(this,"1.34.3",gl);Zk(this.u)&&(hl(this,d),a=il,jl(this.u));this.u.set(dl,Da());kl(this.u);var e=this.b&&!this.C;if(a==el||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=cl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zk(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(ll,""),this.g=null)):this.v(f+": "+g),jl(d),Zk(d)?(c=cl(d),e=!0):c=!1))}e&&al(this,c?d:null)}else a==il&&d.clear()}else al(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=ml(this,g,d,b,c));b=[d,a,c];a!=fl?this.zc(this.oe,b):this.oe(b)}};
|
||||
function ml(a,b,c,d,e){if(!b.A.ca){b.A.ca=!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.Da(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Yk,window&&window.location.reload()):a.N=!0,b.Da(null),e=!1),!d&&b.Wd){var g=b.Wd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
|
||||
h.oe=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(ml(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(hl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
|
||||
function hl(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Sk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",bl),k=Da();g.set(dl,k);f.set(dl,k);f.set(nl,"1.34.3");f.set(ol,window?window.location.href:null);f.set(pl,window?window.navigator.userAgent:"");a.f&&a.f.Ca&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Ca(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Ca&&(d=m.Ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&sl(a,a.g,f.toString()),kl(g)&&kl(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Cl),d&&f.clear(k)):e=f.toString());c&&(a.A.ca=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Zk),this.b&&(this.B=new G(this,"1.34.3"),$k(this.B)?b=null:delete this.B);!b&&this.b&&(b=al(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);D(g)})}else D(this);this.H.power||(this.L=!0);!c&&this.L&&this.zc(this.sc)}else w("Unable to find CPU component")}p(Wk,x);
|
||||
function Xk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[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}h=Wk.prototype;
|
||||
h.zc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.zc(a,b)});return}}a.call(this,b)};function bl(a,b){var c=new G(a,"1.34.3",cl);if($k(c)&&dl(c)){var d=c.get(el),e=b?b.get(el):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
h.sc=function(a){void 0===a&&(a=this.b||(this.G?fl:Zk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.3");if(a==gl)b=!0;else if(a>Zk){if($k(d,this.G)){this.u=new G(this,"1.34.3",hl);$k(this.u)&&(il(this,d),a=jl,kl(this.u));this.u.set(el,Da());ll(this.u);var e=this.b&&!this.C;if(a==fl||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=dl(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$k(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.T("Error: "+g),"unable to verify user"==g&&(La(ml,""),this.g=null)):this.v(f+": "+g),kl(d),$k(d)?(c=dl(d),e=!0):c=!1))}e&&bl(this,c?d:null)}else a==jl&&d.clear()}else bl(this);delete this.G;delete this.B}e=ib(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=nl(this,g,d,b,c));b=[d,a,c];a!=gl?this.zc(this.oe,b):this.oe(b)}};
|
||||
function nl(a,b,c,d,e){if(!b.A.ca){b.A.ca=!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.Da(f,d)&&f&&(w("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Zk,window&&window.location.reload()):a.N=!0,b.Da(null),e=!1),!d&&b.Wd){var g=b.Wd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){w("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
|
||||
h.oe=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.ca=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(nl(this,this.f,b,c,a),H(this,-2),this.f.ra());this.N&&(il(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
|
||||
function il(a,b){if(hb("There may be a problem with your "+Hb+" machine.\n\nTo help us diagnose it, click OK to send this "+Hb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Hb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ea("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Tk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",cl),k=Da();g.set(el,k);f.set(el,k);f.set(ol,"1.34.3");f.set(pl,window?window.location.href:null);f.set(ql,window?window.navigator.userAgent:"");a.f&&a.f.Ca&&(c&&(b&&(a.f.A.ra=a.f.A.V),a.f.da()),d=a.f.Ca(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ca=!1,!1===d&&(e=null)));for(var k=ib(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ca&&(m.Ca&&(d=m.Ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ca=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&tl(a,a.g,f.toString()),ll(g)&&ll(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==Dl),d&&f.clear(k)):e=f.toString());c&&(a.A.ca=!1,b=a.H.power)&&(b.textContent="Power");a.j=0;return e}
|
||||
h.reset=function(){this.A.reset=!0;this.F&&this.F.reset&&(F(this,"Resetting "+this.F.type),this.F.reset());this.f&&this.f.reset&&(F(this,"Resetting "+this.f.type),this.f.reset());for(var a=ib(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c!==this.f&&c.reset&&(F(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;H(this,-1)};h.start=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}H(this,-1)};
|
||||
h.stop=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}H(this,-1)};
|
||||
function H(a,b){if(a.f){var c=a.f,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.bd+=d))&&(e.textContent=c.A.V?c.xb.toFixed(2)+"Mhz":"Stopped",c.bd=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.V;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)nc(a,"R"+e,a.f.g[e]);e=Ad(a.f);nc(a,"PS",e);nc(a,"NF",e&8?1:0,1);nc(a,"ZF",e&4?1:0,1);nc(a,"VF",e&2?1:0,1);nc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.ga=a.f.g[7]:0<b&&c&&!d&&(a.ga=a.f.ib);jc(a,a.ga);Vb(a,a.Fb);b=a.f;b=b.zb?b.X&16?1:2:4;Ec(a,"B22",b&1);Ec(a,"B18",b&2);
|
||||
Ec(a,"B16",b&4)}}
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Sk(d,!1,!0):d.zc(d.sc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.sc(Yk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.H[b]=c,c.onclick=function(){var a=Xk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Sk(d,b);b?sl(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Xk(a,b){var c=a.g;c||((c=Ka(ll),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=Dl(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
|
||||
function Dl(a,b){a.g=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(ll,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function $k(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+El(a,"1.34.3"));return b}
|
||||
function sl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=El(a,"1.34.3");d.data=c;b=Ea(Ga()+"/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.T("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.T(c),La(ll,""),a.g=null)}}
|
||||
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Ua){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Ua.focus();!b&&window&&window.scrollTo(c,d)}}var gl="failsafe",bl="validate",dl="timestamp",nl="version",ol="url",pl="browser",ll="user",fl=-1,Yk=0,el=1,il=2,Cl=3;
|
||||
Sa(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Vk(g,d,!0);pb(g,f);g.L&&g.zc(g.sc)}});Xa.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.sc(fl)}});Xa.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Sk(c,!(!c.b||c.w),!0)}});
|
||||
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=El(a,b,c);jl(this,a.wf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Zk(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function cl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
|
||||
function kl(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function jl(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}
|
||||
h.clear=function(a){jl(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 El(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 Fl=0;
|
||||
function Gl(a,b,c,d,e,f,g){f("Loading "+a+"...");Ea(a,null,!0,function(k,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):Hl(l,a,b,c,d,e,f,g)})}
|
||||
function Hl(a,b,c,d,e,f,g,k){function l(a,g){if(g)k(g,null);else{c&&(eb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Il(a,g,l):l(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function Il(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Il(a,b,c)}})}else c(a,null)}
|
||||
function Jl(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&z(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--Fl||$a(!0));m=!1}var k,l,m=!0;Fl++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));q.appendChild(t)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.3/components.xsl");n=function(e,l){l?Gl(d,null,a,null,!1,f,function(a,e){e?(eb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(k.outerHTML=e,--Fl||$a(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--Fl||
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Gl(c,b,a,e,!0,f,n):Hl(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(r){g(r.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Jl("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Jl("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
|
||||
h.wa=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.j||(d.A.ca?Tk(d,!1,!0):d.zc(d.sc))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.A.ca&&!d.j)if(d.b&&!d.w){var a=hb("Click OK to save changes to this "+Hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Tk(d,a,!0);!a&&d.I?window&&window.location.reload():(a||(d.M=!0),d.sc(Zk),d.M=!1)}else d.reset(),d.f&&!d.D&&d.f.ra()},!0;case "save":if(va(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.H[b]=c,c.onclick=function(){var a=Yk(d,!0);if(a){var b=!!(d.b&&!d.w||d.I),c=Tk(d,b);b?tl(d,a,c):d.T("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Yk(a,b){var c=a.g;c||((c=Ka(ml),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=El(a,c))||a.T("The user ID is invalid.")):b&&a.T("Browser local storage is not available"));return c}
|
||||
function El(a,b){a.g=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(ml,b.data),a.g=b.data)}catch(d){w(d.message+" ("+c+")")}return a.g}function al(a){var b=null;a.g&&(b=Ga()+"/api/v1/user?req=load&user="+a.g+"&state="+Fl(a,"1.34.3"));return b}
|
||||
function tl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Fl(a,"1.34.3");d.data=c;b=Ea(Ga()+"/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.T("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.T(c),La(ml,""),a.g=null)}}
|
||||
function Uh(a){var b;a=ib(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function qe(a,b){if(a.Ua){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Ua.focus();!b&&window&&window.scrollTo(c,d)}}var hl="failsafe",cl="validate",el="timestamp",ol="version",pl="url",ql="browser",ml="user",gl=-1,Zk=0,fl=1,jl=2,Dl=3;
|
||||
Sa(function(){for(var a=A(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=A(c,y,"computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Wk(g,d,!0);pb(g,f);g.L&&g.zc(g.sc)}});Xa.show.push(function(){for(var a=A(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.P&&!c.A.ca&&c.sc(gl)}});Xa.exit.push(function(){for(var a=A(document,y,"computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.A.ca&&Tk(c,!(!c.b||c.w),!0)}});
|
||||
function G(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.D=!1;this.key=Fl(a,b,c);kl(this,a.wf)}h=G.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function $k(a,b){return b?(a.b=b,a.g=!0,a.D=!1,!0):a.g?!0:Ha()&&(b=Ka(a.key))?(a.b=b,a.g=!0):!1}function dl(a){var b=!0;if(!a.D)try{a.f=JSON.parse(a.b),a.D=!0}catch(c){w(c.message||c),b=!1}return b}
|
||||
function ll(a){var b=!0;if(Ha()){var c=JSON.stringify(a.f);La(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function kl(a,b){a.b="";a.f={};a.g=a.D=!1;b&&a.set("parms",b)}
|
||||
h.clear=function(a){kl(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 Fl(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 Gl=0;
|
||||
function Hl(a,b,c,d,e,f,g){f("Loading "+a+"...");Ea(a,null,!0,function(k,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):Il(l,a,b,c,d,e,f,g)})}
|
||||
function Il(a,b,c,d,e,f,g,k){function l(a,g){if(g)k(g,null);else{c&&(eb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Jl(a,g,l):l(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function Jl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Jl(a,b,c)}})}else c(a,null)}
|
||||
function Kl(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&A(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--Gl||$a(!0));m=!1}var k,l,m=!0;Gl++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));q.appendChild(t)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.3/components.xsl");n=function(e,l){l?Hl(d,null,a,null,!1,f,function(a,e){e?(eb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(k.outerHTML=e,--Gl||$a(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--Gl||
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Hl(c,b,a,e,!0,f,n):Il(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(r){g(r.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Kl("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Kl("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!rb[a]){for(var c=!0,d=rb,e=a,f=b.length,g=[],k=[],l="",m=null,n=0;n<f;n++){var q=b[n];if('"'==q||"'"==q)m&&q!=m?l+=q:(m?m=null:m=q,l&&(k.push(l),l=""));else{if(!m){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){l&&(k.push(l),l="");";"==q&&k.length&&(g.push(k),k=[]);continue}}l+=q}}l&&k.push(l);k.length&&g.push(k);d[e]=g;qb(a)||(c=!1)}return c};window.enableEvents=$a;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp11-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue