I spent some time fixing the latter because browsers have started warning that synchronous XMLHttpRequest calls on the "main thread" (as Firefox calls it) are deprecated. Since the days of such calls seems to be numbered, I decided to act sooner rather than later. All PCjs XMLHttpRequests go through a single library function (weblib.loadResource), which accepts an fAsync parameter, and the only code that is still allowed to pass false for that parameter are "emergency" shutdown requests (which I believe browsers must still allow).
128 lines
52 KiB
JavaScript
128 lines
52 KiB
JavaScript
(function(){var e;function p(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function aa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));return b}var ba={"&":"&","<":"<",">":">",'"':""","'":"'"};function ca(a){return a.replace(/[&<>"']/g,function(a){return ba[a]})}
|
|
function q(a,b,c){var d;d=!0;var f=0,g=null,k=aa(a),h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200!=h.status&&(f=h.status||-1),c&&(b?c.call(b,k,g,f,void 0):c(k,g,f,void 0)))});h.open("GET",a,d);h.send();d||(g=h.responseText,200!=h.status&&(f=h.status||-1),c&&(b?c.call(b,k,g,f,void 0):c(k,g,f,void 0)))}function r(a){window?window.alert(a):console.log(a)}
|
|
function s(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},da=!1,u=!0;function v(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){t.init.push(a)}function x(a){if(u)for(var b=0;b<a.length;b++)a[b]()}function y(a){!u&&a?(u=!0,da&&ea("init")):u=a}
|
|
function ea(a){t[a]&&x(t[a])}v("onload",function(){da=!0;x(t.init)});v("onpageshow",function(){x(t.show)});v(s("Opera")||s("iOS")?"onunload":"onbeforeunload",function(){x(t.exit)});function z(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.ec=this.id.substr(0,b),this.dc=this.id.substr(b+1)):this.dc=this.id;this[a]=c;this.mb=null;this.Na=this.qa=this.lb=this.Oa=!1;this.o={};fa(this);A[A.length]=this}var B=void 0;
|
|
if(window){B||(B=window.location.search.substr(1));for(var C,ga=/\+/g,ha=/([^&=]+)=?([^&]*)/g;C=ha.exec(B);)C[1].replace(ga," "),C[2].replace(ga," ")}function ia(){var a=z.prototype;function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function D(a){a.prototype=ia()}var A=[];
|
|
function E(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<A.length;c++)if(A[c].id===a)return A[c]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){r(c.message+" ("+a+")")}return b}
|
|
function G(a,b){var c,d;d=I(b.parentNode,"c1pjs-control");for(c=0;c<d.length;c++){var f,g;g=d[c].childNodes;for(f=0;f<g.length;f++){var k=g[f];if(k.nodeType===window.document.ELEMENT_NODE){var h=k.getAttribute("class");if(h){var m,l;l=h.split(" ");for(m=0;m<l.length;m++)switch(h=l[m],h){case "c1pjs-input":case "c1pjs-output":(l=F(k))&&l.binding&&a.H(h,l.type,l.binding,k),l=[]}}}}}}
|
|
function I(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
|
z.prototype={toString:function(){return this.name?this.name:this.id||this.type},H:function(a,b,c,d){switch(c){case "clear":return this.o[c]||(this.o[c]=d,d.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[c]||(this.jb=this.o[c]=d,d.value="",this.t=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}}(d),this.Ta=function(a,
|
|
b,c){this.t(a,"notice",c)}),!0;default:return!1}},log:function(){},t:function(){},status:function(a){this.t(this.dc+": "+a)},Ta:function(a,b){b||r(a)},J:function(a){!this.Na&&(this.Oa=!1!==a)&&(this.name&&this.log("ready"),a=this.mb,this.mb=null,a&&a())}};function ja(a,b){if(a.lb)return a.qa&&(a.qa=!1),a.lb=!1;if(a.Na)return a.t(a.toString()+" error"),!1;a.qa=b;return a.qa}function J(a,b){b&&(a.Oa?b():a.mb=b);return a.Oa}function K(a,b){a.Na=!0;a.Ta("Fatal error: "+b)}
|
|
function fa(a){var b=1;a.ec&&(a=a.ec.match(/\d+/),null!==a&&(b=parseInt(a[0],10)));return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function L(a){z.call(this,"C1PPanel",a);this.A=!1}D(L);L.prototype.H=function(a,b,c,d){return this.G&&this.G.H(a,b,c,d)||this.s&&this.s.H(a,b,c,d)||this.C&&this.C.H(a,b,c,d)?!0:z.prototype.H.call(this,a,b,c,d)};L.prototype.S=function(a,b){a&&!this.A&&(this.A=!0,this.G=b,this.s=M(b,"cpu"),this.C=M(b,"keyboard"),ka())};
|
|
function ka(){for(var a=!1,b=I(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],f=F(d),g=E(f.id);g||(a=!0,g=new L(f));G(g,d);a&&g.J()}}w(ka);
|
|
function N(a){z.call(this,"C1PCPU",a);la(this);this.R=this.A=!1;this.$b=a.autoStart;this.ab=0;this.xd=1;this.oa=2;this.speed=this.ab;this.ua=1E6;this.rb=this.tb=30;this.qb=5;this.Od=1;this.Qa=8;this.Ub=["Slow","Fast","Max"];this.Cd=["("+this.Od+"Mhz)","(up to "+this.Qa+"Mhz)","(unlimited)"];this.Y=[];this.T=[];this.fb=65536;this.gb=0;this.Ha=65536;this.Ia=0;this.Pc=128;this.Qc=64;this.Lc=16;this.Nc=8;this.Oc=4;this.Rc=2;this.Mc=1;this.Ad=65532;this.vd=0;this.wd=1;this.q=[this.ze,this.Tf,this.Kg,this.i,
|
|
this.i,this.Vf,this.pe,this.i,this.Yf,this.Sf,this.oe,this.i,this.i,this.Pf,this.me,this.i,this.ye,this.Uf,this.i,this.i,this.i,this.Wf,this.qe,this.i,this.Ce,this.Rf,this.i,this.i,this.i,this.Qf,this.ne,this.i,this.qf,this.ie,this.i,this.i,this.ve,this.ke,this.dg,this.i,this.$f,this.he,this.cg,this.i,this.ue,this.ee,this.ag,this.i,this.we,this.je,this.i,this.i,this.i,this.le,this.eg,this.i,this.ug,this.ge,this.i,this.i,this.i,this.fe,this.bg,this.i,this.kg,this.df,this.i,this.i,this.i,this.ff,this.Mf,
|
|
this.i,this.Xf,this.cf,this.Lf,this.i,this.pf,this.$e,this.Jf,this.i,this.Ae,this.ef,this.i,this.i,this.i,this.gf,this.Nf,this.i,this.Ee,this.bf,this.i,this.i,this.i,this.af,this.Kf,this.i,this.lg,this.uc,this.i,this.i,this.i,this.wc,this.ig,this.i,this.Zf,this.tc,this.hg,this.i,this.of,this.qc,this.fg,this.i,this.Be,this.vc,this.i,this.i,this.i,this.xc,this.jg,this.i,this.wg,this.sc,this.i,this.i,this.i,this.rc,this.gg,this.i,this.i,this.Ag,this.i,this.i,this.Ig,this.Cg,this.Fg,this.i,this.Ze,this.i,
|
|
this.Og,this.i,this.Hg,this.xg,this.Eg,this.i,this.re,this.Bg,this.i,this.i,this.Jg,this.Dg,this.Gg,this.i,this.Qg,this.zg,this.Pg,this.i,this.i,this.yg,this.i,this.i,this.Gf,this.vf,this.Bf,this.i,this.Hf,this.xf,this.Cf,this.i,this.Mg,this.uf,this.Lg,this.i,this.Ef,this.rf,this.zf,this.i,this.se,this.wf,this.i,this.i,this.If,this.yf,this.Df,this.i,this.Fe,this.tf,this.Ng,this.i,this.Ff,this.sf,this.Af,this.i,this.Se,this.Ke,this.i,this.i,this.Te,this.Me,this.We,this.i,this.nf,this.Je,this.Ye,this.i,
|
|
this.Re,this.Ge,this.Ue,this.i,this.xe,this.Le,this.i,this.i,this.i,this.Ne,this.Xe,this.i,this.De,this.Ie,this.i,this.i,this.i,this.He,this.Ve,this.i,this.Pe,this.Cc,this.i,this.i,this.Qe,this.Ec,this.kf,this.i,this.mf,this.Bc,this.Of,this.i,this.Oe,this.yc,this.hf,this.i,this.te,this.Dc,this.i,this.i,this.i,this.Fc,this.lf,this.i,this.vg,this.Ac,this.i,this.i,this.i,this.zc,this.jf,this.i];this.Bd=[7,6,0,0,0,3,5,0,3,2,2,0,0,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,3,6,0,0,3,3,5,0,4,2,2,0,4,4,6,0,2,
|
|
5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,3,2,2,0,3,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,6,6,0,0,0,3,5,0,4,2,2,0,5,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,0,6,0,0,3,3,3,0,2,0,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,0,4,0,0,2,6,2,0,3,3,3,0,2,2,2,0,4,4,4,0,2,5,0,0,4,4,4,0,2,4,2,0,4,4,4,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0,2,6,0,0,3,3,5,0,2,2,2,0,4,4,6,0,2,5,0,0,0,4,6,0,2,4,0,0,0,4,7,0]}D(N);e=N.prototype;
|
|
e.reset=function(a){this.R&&O(this);la(this);var b=this.Ad;this.d=this.a[b]|this.a[b+1]<<8;this.Na=!1;a&&(!0===this.$b||null===this.$b&&void 0===this.o.run)&&P(this)};
|
|
e.H=function(a,b,c,d){a=!1;switch(c){case "run":this.o[c]=d;d.onclick=function(a){return function(){a.R?O(a):P(a)}}(this);a=!0;break;case "A":case "X":case "Y":case "S":case "PC":case "C":case "Z":case "I":case "D":case "B":case "V":case "N":case "speed":this.o[c]=d;a=!0;break;case "setSpeed":this.o[c]=d,d.onclick=function(a){return function(){ma(a,a.speed>=a.oa?a.ab:a.speed+1,!0)}}(this),a=!0}return a};
|
|
e.P=function(a,b){this.a=a;(this.oc=b)?r("unsupported CPU address buffer offset ("+this.oc+")"):this.J()};e.S=function(a,b){if(a&&!this.A){this.G=b;var c=M(b,"video");c&&(this.kb=function(a){return function(){na(a)}}(c),this.da=function(a){return function(){a.da()}}(c));this.A=!0;this.reset(!0);this.update()}};function oa(a,b,c,d,f){0>pa(a.Y,b,c,d,f)&&(a.fb>b&&(a.fb=b),a.gb<c&&(a.gb=c),a.Y.push([b,c,d,f]))}
|
|
function Q(a,b,c,d,f){0>pa(a.T,b,c,d,f)&&(a.Ha>b&&(a.Ha=b),a.Ia<c&&(a.Ia=c),a.T.push([b,c,d,f]))}function pa(a,b,c,d,f){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==f)return g;return-1}function ma(a,b,c){void 0!==b&&(a.speed=b,a.o.setSpeed&&(a.o.setSpeed.innerHTML=a.Ub[2<=b?0:b+1]),a.t("running at "+a.Ub[b].toLowerCase()+" speed "+a.Cd[b]),c&&a.da());a.la=0;a.fc=Date.now()||+new Date;qa(a)}e.kb=function(){};e.da=function(){};
|
|
function R(a,b,c,d){void 0!==a.o[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.o[b].innerHTML=c.slice(c.length-d).toUpperCase())}function ra(a){R(a,"A",a.e,2);R(a,"X",a.k,2);R(a,"Y",a.m,2);var b=sa(a);R(a,"C",b&a.Mc?1:0);R(a,"Z",b&a.Rc?1:0);R(a,"I",b&a.Oc?1:0);R(a,"D",b&a.Nc?1:0);R(a,"B",b&a.Lc?1:0);R(a,"V",b&a.Qc?1:0);R(a,"N",b&a.Pc?1:0);R(a,"S",a.n,4);R(a,"PC",a.d,4);a.o.speed&&a.W&&(a.o.speed.innerHTML=a.W.toFixed(1)+"Mhz")}
|
|
function qa(a,b){var c=a.tb;c<a.rb&&(c=a.rb);c<a.qb&&(c=a.qb);var d=1;b&&a.speed>a.ab&&a.W&&(d=a.W);d>a.Qa&&a.speed<a.oa&&(d=a.Qa);a.Qd=Math.round(1E3/a.tb);a.Sa=Math.floor(a.ua/c*d);a.nb=Math.floor(a.ua/a.tb*d);a.hc=Math.floor(a.ua/a.rb*d);a.gc=Math.floor(a.ua/a.qb*d);b||(a.ja=a.nb,a.ta=a.hc,a.sa=a.gc);a.pb=0}function ta(a){a.pb>=a.ua&&qa(a,!0);a.va=0;a.Td=Date.now()||+new Date}
|
|
function ua(a){var b=Date.now()||+new Date,c=a.Qd;a.va&&(c=Math.round(c*a.va/a.nb));c-=b-a.Td;if(b-=a.fc)a.W=Math.round(a.la/(100*b))/10,864E5<=b&&ma(a);0>c?c=0:a.speed==a.xd?a.W<=a.Qa&&(c=0):a.speed==a.oa&&(c=0);a.pb+=a.va;return c}
|
|
function P(a){if(ja(a,!0)){a.R||(ma(a),a.G&&a.G.start(),a.R=!0,a.o.run&&(a.o.run.innerHTML="Halt"),a.da());ta(a);try{do{a.step(a.Sa);var b=a.X-a.B;a.la+=b;a.va+=b;a.X=a.B=0;a.ta-=a.Sa;0>=a.ta&&(a.ta+=a.hc,a.kb());a.sa-=a.Sa;0>=a.sa&&(a.sa+=a.gc,ra(a));a.ja-=a.Sa;if(0>=a.ja){a.ja+=a.nb;break}}while(a.R)}catch(c){O(a);a.update();ja(a,!1);K(a,c.message||c);return}setTimeout(function(a){return function(){P(a)}}(a),ua(a))}else a.update(),a.G&&a.G.stop(a.fc,a.la)}
|
|
e.step=function(a){this.b=this.h=-1;this.X=this.B=a;do{a=this.a[this.d];this.d++;this.q[a].call(this);if(0<=this.b){if(this.b>=this.fb&&this.b<=this.gb)for(var b=this.b,c=this.d,d=0;d<this.Y.length;d++)b>=this.Y[d][0]&&b<=this.Y[d][1]&&this.Y[d][3].call(this.Y[d][2],b,c);this.b=-1}else if(0<=this.h){if(this.h>=this.Ha&&this.h<=this.Ia)for(b=this.h,c=this.d,d=0;d<this.T.length;d++)b>=this.T[d][0]&&b<=this.T[d][1]&&this.T[d][3].call(this.T[d][2],b,c);this.h=-1}this.B-=this.Bd[a]}while(0<this.B);return!0};
|
|
function O(a){a.qa&&(a.lb=!0);a.X-=a.B;a.B=0;a.R&&(a.R=!1,a.o.run&&(a.o.run.innerHTML="Run"))}e.update=function(){this.kb();ra(this)};function va(a){return a.R?a.la+a.X-a.B:0}e.N=function(a){return this.a[a]};e.L=function(a,b){this.a[a]=b};function sa(a){var b=a.c&256?1:0,b=b|(a.g&255?0:2),b=b|((a.r&255^a.w^a.r>>1)&128?64:0),b=b|(a.f&128?128:0);return a.u&60|b}
|
|
function S(a,b,c){var d=a.c&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.w=b^c;a.r=f;a.f=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.g=b+c+d&255;a.B--;return f&255}function T(a,b,c){var d=a.c&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.f=a.g=(a.c=b-c-d)&255;a.w=b^c;a.r=a.c;a.c^=256;a.B--;return f&255}function la(a){a.e=0;a.k=0;a.m=0;a.n=256;a.u=0;a.f=0;a.g=0;a.w=0;a.r=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.W=0;a.la=a.X=a.B=0}
|
|
e.ze=function(){this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.u|=16;this.u=sa(this);this.a[this.n--]=this.u;this.n|=256;this.u&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Tf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};e.Vf=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]};
|
|
e.pe=function(){this.h=this.a[this.d++];this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Yf=function(){this.u=sa(this);this.a[this.n--]=this.u;this.n|=256};e.Sf=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};e.oe=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};e.Pf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]};
|
|
e.me=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.ye=function(){this.d+=(this.f&128?0:(this.B--,this.a[this.d]<<24>>24))+1};e.Uf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Wf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e|=this.a[this.b]};
|
|
e.qe=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};e.Ce=function(){this.c=0};e.Rf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e|=this.a[this.b]};e.Qf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e|=this.a[this.b]};e.ne=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};
|
|
e.qf=function(){this.b=this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.ie=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};e.ve=function(){this.b=this.a[this.d++];this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.w=this.a[this.b]&64?128:0};e.ke=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]};
|
|
e.dg=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.$f=function(){this.n=this.n+1&255|256;this.u=this.a[this.n];this.c=this.u&1?256:0;this.g=this.u&2?0:1;this.f=this.u&128;this.r=0;this.w=this.u&64?128:0};e.he=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]};
|
|
e.cg=function(){this.c=this.c&65280|this.e;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.e=this.c&255};e.ue=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.g=this.e&this.a[this.b];this.f=this.f&127|this.a[this.b]&128;this.r=0;this.w=this.a[this.b]&64?128:0};e.ee=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]};
|
|
e.ag=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.we=function(){this.d+=(this.f&128?(this.B--,this.a[this.d]<<24>>24):0)+1};e.je=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.le=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e&=this.a[this.b]};
|
|
e.eg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.ug=function(){this.c=256};e.ge=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e&=this.a[this.b]};e.fe=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e&=this.a[this.b]};
|
|
e.bg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.f=this.g=this.a[this.h]=this.c&255};e.kg=function(){this.n=this.n+1&255|256;this.u=this.a[this.n];this.c=this.u&1?256:0;this.g=this.u&2?0:1;this.f=this.u&128;this.r=0;this.w=this.u&64?128:0;this.n=this.n+2&255|256;this.d=this.a[this.n-1|256]|this.a[this.n]<<8};
|
|
e.df=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};e.ff=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};e.Mf=function(){this.h=this.a[this.d++];this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};e.Xf=function(){this.a[this.n--]=this.e;this.n|=256};e.cf=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]};
|
|
e.Lf=function(){this.c=this.c&65279|(this.e&1?256:0);this.e=(this.c=this.c&65280|this.e>>1)&255;this.f=this.g=this.c&255};e.pf=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.$e=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};e.Jf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
|
e.Ae=function(){this.d+=((this.r&255^this.w^this.r>>1)&128?0:(this.B--,this.a[this.d]<<24>>24))+1};e.ef=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.gf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e^=this.a[this.b]};e.Nf=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
|
e.Ee=function(){this.u&=251};e.bf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e^=this.a[this.b]};e.af=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e^=this.a[this.b]};e.Kf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65279|(this.a[this.h]&1?256:0);this.a[this.h]=(this.c=this.c&65280|this.a[this.h]>>1)&255;this.f=this.g=this.c&255};
|
|
e.lg=function(){this.n=this.n+2&255|256;this.d=(this.a[this.n-1|256]|this.a[this.n]<<8)+1};e.uc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.ae=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=S(this,this.e,this.a[this.b])};
|
|
e.wc=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.ce=function(){this.b=this.a[this.d++];this.e=S(this,this.e,this.a[this.b])};e.ig=function(){this.h=this.a[this.d++];this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Zf=function(){this.n=this.n+1&255|256;this.f=this.g=this.e=this.a[this.n]};
|
|
e.tc=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.$d=function(){this.b=this.d++;this.e=S(this,this.e,this.a[this.b])};e.hg=function(){this.c=this.c&65280|this.e;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.e=this.c&255};e.of=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8};
|
|
e.qc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Xd=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=S(this,this.e,this.a[this.b])};e.fg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};
|
|
e.Be=function(){this.d+=((this.r&255^this.w^this.r>>1)&128?(this.B--,this.a[this.d]<<24>>24):0)+1};e.vc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.be=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};
|
|
e.xc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.de=function(){this.b=this.a[this.d++]+this.k&255;this.e=S(this,this.e,this.a[this.b])};e.jg=function(){this.h=this.a[this.d++]+this.k&255;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.wg=function(){this.u|=4};
|
|
e.sc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Zd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};e.rc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};
|
|
e.Yd=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=S(this,this.e,this.a[this.b])};e.gg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.c&65280|this.a[this.h];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.f=this.g=this.a[this.h]=this.c&255};e.Ag=function(){this.h=this.a[this.d++]+this.k&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};e.Ig=function(){this.h=this.a[this.d++];this.a[this.h]=this.m};
|
|
e.Cg=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};e.Fg=function(){this.h=this.a[this.d++];this.a[this.h]=this.k};e.Ze=function(){this.f=this.g=this.m=this.m-1&255};e.Og=function(){this.f=this.g=this.e=this.k};e.Hg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.m};e.xg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};e.Eg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.k};
|
|
e.re=function(){this.d+=(this.c&256?0:(this.B--,this.a[this.d]<<24>>24))+1};e.Bg=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.m;this.a[this.h]=this.e};e.Jg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.m};e.Dg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.e};e.Gg=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.k};e.Qg=function(){this.f=this.g=this.e=this.m};
|
|
e.zg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.a[this.h]=this.e};e.Pg=function(){this.n=this.k|256};e.yg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.a[this.h]=this.e};e.Gf=function(){this.b=this.d++;this.f=this.g=this.m=this.a[this.b]};e.vf=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};e.Bf=function(){this.b=this.d++;this.f=this.g=this.k=this.a[this.b]};
|
|
e.Hf=function(){this.b=this.a[this.d++];this.f=this.g=this.m=this.a[this.b]};e.xf=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};e.Cf=function(){this.b=this.a[this.d++];this.f=this.g=this.k=this.a[this.b]};e.Mg=function(){this.f=this.g=this.m=this.e};e.uf=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};e.Lg=function(){this.f=this.g=this.k=this.e};e.Ef=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.m=this.a[this.b]};
|
|
e.rf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};e.zf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.k=this.a[this.b]};e.se=function(){this.d+=(this.c&256?(this.B--,this.a[this.d]<<24>>24):0)+1};e.wf=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.If=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.m=this.a[this.b]};
|
|
e.yf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e=this.a[this.b]};e.Df=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.k=this.a[this.b]};e.Fe=function(){this.w=this.r=0};e.tf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.e=this.a[this.b]};e.Ng=function(){this.f=this.g=this.k=this.n&255};e.Ff=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.m=this.a[this.b]};
|
|
e.sf=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.e=this.a[this.b]};e.Af=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.k=this.a[this.b]};e.Se=function(){this.b=this.d++;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Ke=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};
|
|
e.Te=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Me=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.We=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.nf=function(){this.f=this.g=this.m=this.m+1&255};e.Je=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ye=function(){this.f=this.g=this.k=this.k-1&255};
|
|
e.Re=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Ge=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ue=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.xe=function(){this.d+=(this.g&255?(this.B--,this.a[this.d]<<24>>24):0)+1};
|
|
e.Le=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ne=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Xe=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};
|
|
e.De=function(){this.u&=-9;this.q[97]=this.uc;this.q[101]=this.wc;this.q[105]=this.tc;this.q[109]=this.qc;this.q[113]=this.vc;this.q[117]=this.xc;this.q[121]=this.sc;this.q[125]=this.rc;this.q[225]=this.Cc;this.q[229]=this.Ec;this.q[233]=this.Bc;this.q[237]=this.yc;this.q[241]=this.Dc;this.q[245]=this.Fc;this.q[249]=this.Ac;this.q[253]=this.zc};e.Ie=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};
|
|
e.He=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ve=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.Pe=function(){this.b=this.d++;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
|
e.Cc=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.qg=function(){this.b=this.a[this.d++]+this.k&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=T(this,this.e,this.a[this.b])};e.Qe=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
|
e.Ec=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.sg=function(){this.b=this.a[this.d++];this.e=T(this,this.e,this.a[this.b])};e.kf=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.mf=function(){this.f=this.g=this.k=this.k+1&255};
|
|
e.Bc=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.pg=function(){this.b=this.d++;this.e=T(this,this.e,this.a[this.b])};e.Of=function(){};e.Oe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
|
|
e.yc=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.mg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=T(this,this.e,this.a[this.b])};e.hf=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.te=function(){this.d+=(this.g&255?0:(this.B--,this.a[this.d]<<24>>24))+1};
|
|
e.Dc=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.rg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])};
|
|
e.Fc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.tg=function(){this.b=this.a[this.d++]+this.k&255;this.e=T(this,this.e,this.a[this.b])};e.lf=function(){this.h=this.a[this.d++]+this.k&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
|
e.vg=function(){this.u|=8;this.q[97]=this.ae;this.q[101]=this.ce;this.q[105]=this.$d;this.q[109]=this.Xd;this.q[113]=this.be;this.q[117]=this.de;this.q[121]=this.Zd;this.q[125]=this.Yd;this.q[225]=this.qg;this.q[229]=this.sg;this.q[233]=this.pg;this.q[237]=this.mg;this.q[241]=this.rg;this.q[245]=this.tg;this.q[249]=this.og;this.q[253]=this.ng};
|
|
e.Ac=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.og=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])};
|
|
e.zc=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.w=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.ng=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.e=T(this,this.e,this.a[this.b])};e.jf=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
|
e.Kg=function(){var a;a=this.a[this.d++];switch(a){case this.vd:this.t("HALT");O(this);break;case this.wd:a=this.d;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.d=a;b=b.replace(/%A/g,p(this.e,2)).replace(/%X/g,p(this.k,2)).replace(/%Y/g,p(this.m,2));this.t(b);this.ja=0;this.X-=this.B;this.B=0;break;default:this.d-=2,this.t("undefined opSim: "+p(a,2)+" at "+p(this.d,4)),O(this)}};
|
|
e.i=function(){var a=this.a[--this.d];this.t("undefined opcode: "+p(a,2)+" at "+p(this.d,4));O(this)};w(function(){for(var a=I(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new N(d);G(d,c)}});
|
|
function U(a){z.call(this,"C1PROM",a);this.U=this.a=null;this.ga=a.size;if(this.ya=a.image){a=this.ya;var b;b=this.ya;var c="",d=b.lastIndexOf(".");0<=d&&(c=b.substr(d+1).toLowerCase());b=c;"json"!=b&&"hex"!=b&&(a="http://"+window.location.host+"/api/v1/dump?file="+this.ya);q(a,this,this.Hd)}}D(U);
|
|
U.prototype.P=function(a,b,c,d){this.a=a;this.vb=b;a=c-b+1;this.ga||(this.ga=a);a!=this.ga?K(this,"computer-specified ROM size ("+p(a,4)+") does not match component-specified size ("+p(this.ga,4)+")"):(d&&(this.s=d,Q(d,b,c,this,this.L)),wa(this))};U.prototype.S=function(a){a&&!this.A&&(this.A=!0)};U.prototype.L=function(a,b){if(void 0!==b){var c=a-this.vb;this.a[this.vb+c]=this.U?this.U[c]:0}};
|
|
U.prototype.Hd=function(a,b,c){if(c)this.t("ROM load error ("+c+")");else{if("["==b[0])try{this.U=eval("("+b+")")}catch(d){this.t("ROM data error: "+(d.message||d));return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.U=Array(a.length),b=0;b<a.length;b++)this.U[b]=parseInt(a[b],16);wa(this)}};
|
|
function wa(a){if(!J(a))if(!a.ya)a.J();else if(a.U&&a.a){var b=a.U.length;if(b!=a.ga)K(a,"ROM image size ("+p(b,4)+") does not match component-specified size ("+p(a.ga,4)+")");else{for(var c=0;c<b;c++)a.a[a.vb+c]=a.U[c];a.J()}}}w(function(){for(var a=I(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new U(d);G(d,c)}});function xa(a){z.call(this,"C1PRAM",a)}D(xa);xa.prototype.P=function(a){this.a=a;this.J()};
|
|
w(function(){for(var a=I(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new xa(d);G(d,c)}});
|
|
function ya(a){z.call(this,"C1PKeyboard",a);this.A=!1;this.ob=a.model;this.Eb=8;this.ed=9;this.cd=10;this.bd=13;this.dd=16;this.ad=17;this.Yc=18;this.Zc=20;this.Fb=27;this.$c=91;this.Vc=this.Eb;this.Wc=this.cd;this.Sc=this.bd;this.zb=this.Fb;this.K=224;this.l=this.dd+this.K;this.Ea=this.ad+this.K;this.Za=this.Yc+this.K;this.Ab=this.Zc+this.K;this.yb=0+this.K;this.Tc=3;this.Uc=15;this.Da=1;this.Ca=2;this.Ba=4;this.na=8;this.Aa=64;this.Ya=this.Ca|this.Ba|this.Aa;this.Pb=0;this.td=1;this.sd=2;this.ud=
|
|
3;this.rd=4;this.Ud=8192;this.Rd=250;this.Sd=100;this.Pd=300;this.fa=[];this.fa["break"]=this.yb;this.fa.esc=this.zb;this.fa["ctrl-c"]=this.Tc;this.fa["ctrl-o"]=this.Uc;this.j=[];this.j[49]=30464;this.j[33]=30464+this.l;this.j[50]=30208;this.j[34]=30208+this.l;this.j[51]=29952;this.j[35]=29952+this.l;this.j[52]=29696;this.j[36]=29696+this.l;this.j[53]=29440;this.j[37]=29440+this.l;this.j[54]=29184;this.j[38]=29184+this.l;this.j[55]=28928;this.j[39]=28928+this.l;this.j[56]=26368;this.j[40]=26368+this.l;
|
|
this.j[57]=26112;this.j[41]=26112+this.l;this.j[48]=25856;this.j[58]=25600;this.j[42]=25600+this.l;this.j[45]=25344;this.j[61]=25344+this.l;this.j[46]=22272;this.j[62]=22272+this.l;this.j[108]=22016;this.j[76]=22016+this.l;this.j[92]=22016+this.l;this.j[111]=21760;this.j[79]=21760+this.l;this.j[this.Vc]=21760+this.l;this.j[this.Wc]=21504;this.j[this.Sc]=21248;this.j[119]=18176;this.j[87]=18176+this.l;this.j[101]=17920;this.j[69]=17920+this.l;this.j[114]=17664;this.j[82]=17664+this.l;this.j[116]=17408;
|
|
this.j[84]=17408+this.l;this.j[121]=17152;this.j[89]=17152+this.l;this.j[117]=16896;this.j[85]=16896+this.l;this.j[105]=16640;this.j[73]=16640+this.l;this.j[115]=14080;this.j[83]=14080+this.l;this.j[100]=13824;this.j[68]=13824+this.l;this.j[102]=13568;this.j[70]=13568+this.l;this.j[103]=13312;this.j[71]=13312+this.l;this.j[104]=13056;this.j[72]=13056+this.l;this.j[106]=12800;this.j[74]=12800+this.l;this.j[107]=12544;this.j[75]=12544+this.l;this.j[91]=12544+this.l;this.j[120]=9984;this.j[88]=9984+
|
|
this.l;this.j[99]=9728;this.j[67]=9728+this.l;this.j[118]=9472;this.j[86]=9472+this.l;this.j[98]=9216;this.j[66]=9216+this.l;this.j[110]=8960;this.j[78]=8960+this.l;this.j[94]=8960+this.l;this.j[109]=8704;this.j[77]=8704+this.l;this.j[93]=8704+this.l;this.j[44]=8448;this.j[60]=8448+this.l;this.j[113]=5888;this.j[81]=5888+this.l;this.j[97]=5632;this.j[65]=5632+this.l;this.j[122]=5376;this.j[90]=5376+this.l;this.j[32]=5120;this.j[47]=4864;this.j[63]=4864+this.l;this.j[59]=4608;this.j[43]=4608+this.l;
|
|
this.j[112]=4352;this.j[80]=4352+this.l;this.j[64]=4352+this.l;this.j[this.Ea]=1536;this.j[this.zb]=1280;this.j[this.l]=512;this.j[this.Za]=256;this.j[this.Ab]=0;this.reset()}D(ya);e=ya.prototype;e.reset=function(){this.za(this.ob);this.v=this.Da;this.Wb=0;this.F=[this.Da,0,0,0,0,0,0,0];this.bb=[];if(this.Q)for(var a in this.Q)isNaN(a)||this.Q[a]&&clearTimeout(this.Q[a]);this.Q=[];this.Gc=this.$=0;this.Xb=-1;this.Vb=this.F;this.ic=this.sb=0;this.ca=""};
|
|
e.H=function(a,b,c,d){if(void 0===this.o[c])switch(c){case "keyDown":return this.o[c]=d,d.onkeydown=function(a){return function(b){return za(a,b,!0)}}(this),!0;case "keyPress":return this.o[c]=d,d.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.ca="";a.v&a.na?a.v&=~a.na:c=!V(a,b);return c}}(this),!0;case "keyUp":return this.o[c]=d,d.onkeyup=function(a){return function(b){return za(a,b,!1)}}(this),!0;case "break":return this.o[c]=d,d.onclick=function(a){return function(){a.G&&
|
|
a.G.reset(!0)}}(this),!0;default:if(void 0!==this.fa[c])return this.o[c]=d,d.onclick=function(a,b,c){return function(){a.s&&a.s.da();return!V(a,c)}}(this,c,this.fa[c]),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.nc=b;this.Dd=c-b+1;this.Wd=this.nc+this.Dd;d&&(this.s=d,Q(d,b,c,this,this.L));this.J()};e.za=function(a){this.wa=a;this.ib=255;600!=this.wa&&(this.ib=0,this.t("updated keyboard model: "+this.wa))};e.S=function(a,b){a&&!this.A&&(this.A=!0,this.G=b)};
|
|
e.J=function(){this.bc=(this.Ld=s("iOS"))||s("Android");z.prototype.J.call(this)};function Aa(a,b){var c=b?a.Sd:a.Rd;a.s&&a.s.W&&(c/=a.s.W);return c}function Ba(a,b){!a.$||void 0!==b&&b==a.$||(clearTimeout(a.Q[a.$]),W(a,a.$,!1,a.rd))}function X(a,b,c){a.ca=b;Ca(a,c||a.Pd)}function Ca(a,b){if(0<a.ca.length){var c=a.ca.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.ca=a.ca.substr(1);V(a,c)}0<a.ca.length&&setTimeout(function(a){return function(){Ca(a,b)}}(a),b)}
|
|
function za(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.Gc=b);b==a.l-a.K?(a.v&=~a.Ba,c&&(a.v|=a.Ba),b+=a.K,f=!1):b==a.Za-a.K?(a.v&=~a.Ca,c&&(a.v|=a.Ca),b+=a.K,f=!1):b==a.Ea-a.K?(a.v&=~a.Aa,c&&(a.v|=a.Aa),b+=a.K,f=!1):b==a.Ab-a.K?(c=!c,a.v&=~a.Da,c&&(a.v|=a.Da),b+=a.K,f=!1):b==a.$c?(a.v&=~a.na,c&&(a.v|=a.na),f=!1,d=!0):d=b==a.ed?f=!1:b==a.Fb||b==a.Eb?c?!V(a,b):!1:!0;f&&(a.v&=~a.na,a.bc||b!=a.Gc||Ba(a));void 0===d&&(d=!W(a,b,c,a.sd));return d}
|
|
function V(a,b){var c=!1;b==a.yb?a.G&&(a.G.reset(!0),c=!0):(a.bc&&65<=b&&90>=b&&(b+=32),Ba(a,b),W(a,b,!0,a.Pb)&&(a.s.speed==a.s.oa?W(a,b,!1,a.td):(c=!1,a.Q[b]&&(clearTimeout(a.Q[b]),c=!0),c=Aa(a,c),a.Q[a.$=b]=setTimeout(function(a){return function(){W(a,b,!1,a.ud)}}(a),c)),c=!0));return c}
|
|
function W(a,b,c,d){var f=!1;c||(a.Q[b]=null,a.$==b&&(a.$=0));var g=0,k=a.j[b];void 0===k&&(1<=b&&26>=b&&(b+=64,g=a.Ea),k=a.j[b]);void 0!==k&&(b=k>>12,f=k>>8&15,g||(g=k&255),c?(a.F[b]|=1<<f,a.F[0]=g==a.Ea?a.F[0]|a.Aa:g==a.l?a.F[0]|a.Ba:g==a.Za?a.F[0]|a.Ca:a.F[0]&~a.Ya):(a.F[b]&=~(1<<f),a.F[0]&=~a.Ya,a.F[0]|=a.v&a.Ya),c=d==a.Pb&&!a.bb.length,a.bb.push(a.F.slice()),a.Xa(c),f=!0);return f}e.N=function(){};e.L=function(a){var b=this.s.N(a);this.Wb=b^this.ib;this.sb++;this.Xa(!1,a,b)};
|
|
e.Xa=function(a,b){var c=va(this.s);if(!a)if(this.s.speed==this.s.oa)a=void 0!==b&&32<=this.sb;else{var d=c-this.ic;a=0>d||d>=this.Ud}a&&(d=this.bb.shift(),void 0!==d&&(this.Vb=d),this.sb=0,this.ic=c);for(d=c=0;8>d;d++)this.Wb&1<<d&&(c|=this.Vb[d]);c^=this.ib;if(void 0!==b)this.a[b]=c;else if(b=this.nc,c!=this.Xb)for(d=b;d<this.Wd;d++)this.a[d]=c;this.Xb=c};w(function(){for(var a=I(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new ya(d);G(d,c)}});
|
|
function Da(a,b,c,d){z.call(this,"C1PVideo",a);this.ob=a.model;this.jc=a.charCols;this.kc=a.charRows;this.Id=a.screenWidth;this.Jd=a.screenHeight;this.Ka=a.charWidth;this.La=a.charHeight;Ea(this);this.Ma=b;this.Gd=c;this.ra=d;this.pa=56832}D(Da);e=Da.prototype;e.reset=function(a){this.za(this.ob);if(this.a)for(var b=this.Ua;b<this.wb;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
|
|
e.H=function(a,b,c,d){switch(c){case "refresh":return this.o[c]=d,d.onclick=function(a){return function(){Fa(a);na(a)}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.Ua=b;this.Fd=c-b+1;this.wb=this.Ua+this.Fd;d&&(this.s=d,void 0!==this.pa&&(oa(d,this.pa,this.pa,this,this.N),Q(d,this.pa,this.pa,this,this.L)));this.reset(!0)};
|
|
function Ea(a,b,c,d,f){a.Ra=void 0!==b?b:a.jc;a.Vd=void 0!==c?c:a.kc;a.ha=a.Ra*a.Vd;a.wb=a.Ua+a.ha;a.cc=void 0!==d?d:0;a.lc=void 0!==f?f:c;a.Yb=Math.floor(a.Id/a.Ra);a.Zb=Math.floor(a.Jd/a.lc)}e.da=function(){this.Ma.focus()};e.za=function(a){this.wa=a;600==this.wa?(Ea(this,this.jc,this.kc,4,24),1024==this.ha&&this.s&&(this.Ga=this.wb+this.ha-1,Q(this.s,this.Ga,this.Ga,this,this.Kc))):(this.t("updated video model: "+this.wa),Ea(this,64,32));Fa(this);na(this)};
|
|
e.S=function(a,b){if(a&&!this.A&&J(this)){if(this.A=!0,this.C=M(b,"keyboard"))this.C.H("input","canvas","keyDown",this.Ma),this.C.H("input","canvas","keyPress",this.Ma),this.C.H("input","canvas","keyUp",this.Ma)}else!a&&this.A&&(this.A=!1)};e.J=function(){this.Ka||(this.Ka=Math.floor(this.ra.width/16));this.La||(this.La=Math.floor(this.ra.height/16));z.prototype.J.call(this)};e.N=function(a){var b=this.s.N(a);this.s.L(a,b&127|(Math.floor(va(this.s)/8333)&1?128:0))};e.L=function(){};
|
|
e.Kc=function(a,b){if(void 0!==b){this.za(540);this.C&&this.C.za(542);var c=this.s,d=c.T,f=[],g=pa(d,this.Ga,this.Ga,this,this.Kc);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var k=65536,h=0,g=0;g<d.length;g++)k>d[g][0]&&(k=d[g][0]),h<d[g][1]&&(h=d[g][1]);f.push(k);f.push(h)}4==f.length&&(c.Ha=f[2],c.Ia=f[3])}};function Fa(a){a.cb=Array(a.ha);for(var b=0;b<=a.ha;b++)a.cb[b]=-1}
|
|
function na(a){var b=0;if(a.A)for(;b<a.ha;){var c=a.a[a.Ua+b];if(a.cb[b]!=c){var d=Math.floor(b/a.Ra);if(d>=a.cc&&(d-=a.cc,d<a.lc)){var f=c*a.Ka;a.Gd.drawImage(a.ra,f%a.ra.width,Math.floor(f/a.ra.width)*a.La,a.Ka,a.La,b%a.Ra*a.Yb,d*a.Zb,a.Yb,a.Zb)}a.cb[b]=c}b++}}
|
|
w(function(){for(var a=I(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=F(c),f=window.document.createElement("canvas");if(void 0===f){c.innerHTML="<br/>Missing <canvas> support; try a new web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=d.screenColor;
|
|
f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,k=f.getContext("2d"),f=new Da(d,f,k,g);g.onload=function(a){return function(){a.J()}}(f,d.charSet);g.src=d.charSet;G(f,c)}});
|
|
function Ga(a){z.call(this,"C1PSerialPort",a);this.A=!1;this.ac=a.demo;this.zd=0;this.yd=1;this.reset()}D(Ga);e=Ga.prototype;e.reset=function(){2!=this.Z&&(this.Ja=this.hb=0,this.ma='10 PRINT "HELLO OSI #'+fa(this)+'"\n',this.Z=this.Pa=0)};e.start=function(){this.C&&this.ac&&(X(this.C," C\n\n",3E3),setTimeout(function(a){return function(){a.Z=1;X(a.C,"LOAD\n")}}(this),12E3));this.ac=!1};
|
|
e.H=function(a,b,c,d){switch(c){case "listSerial":return this.o[c]=d,!0;case "loadSerial":return this.o[c]=d,d.onclick=function(a){return function(){a.o.listSerial&&q(a.o.listSerial.value,a,a.Nd)}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.ub=b;this.Ed=c-b+1;this.pc=this.ub+this.Ed;if(this.s=d)oa(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a,b){a&&!this.A&&(this.A=!0,this.G=b,this.C=M(b,"keyboard"))};
|
|
e.Nd=function(a,b,c){b?(this.ma=b,this.Z=this.Pa=0,this.G&&this.C&&this.s.R?(this.t("auto-loading "+a),this.s.da(),"."!=this.ma.charAt(0)?(this.Z=1,X(this.C,"NEW\nLOAD\n")):(this.Z=2,this.G.reset(!0),X(this.C,"ML"))):this.t(a+" ready to load")):this.t(a+" load error ("+c+")")};e.N=function(a,b){void 0!==b&&(a&1?Ha(this):this.ma&&!this.Pa&&Ha(this))};e.L=function(){};
|
|
function Ha(a){if(void 0!==a.ma){a.hb=0;a.Ja=0;if(a.Pa<a.ma.length){var b=a.ma.charCodeAt(a.Pa++);10==b&&(b=13);a.hb=b;a.Ja=1}else 1==a.Z&&a.C&&X(a.C," \nRUN\n"),a.Z=0;a.Xa()}}e.Xa=function(){var a;for(a=this.ub+0;a<this.pc;a+=2)this.a[a]=this.Ja?this.yd:this.zd;for(a=this.ub+1;a<this.pc;a+=2)this.a[a]=this.Ja?this.hb:0};w(function(){for(var a=I(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ga(d);G(d,c)}});
|
|
function Ia(a){z.call(this,"C1PDiskController",a);this.A=!1;this.od=this.Nb=0;this.Kb=1;this.pd=this.Ob=2;this.Lb=3;this.Bb=128;this.Cb=64;this.ea=4;this.hd=1;this.Hb=2;this.gd=4;this.kd=8;this.jd=16;this.Ib=32;this.Gb=64;this.$a=128;this.md=4;this.Jb=8;this.ld=32;this.qd=this.nd=16;this.Mb=17;this.Db=3;this.Sb=1;this.Tb=2;this.Rb=4;this.Qb=8;this.Xc=0;this.fd=40;this.reset(!0)}D(Ia);e=Ia.prototype;
|
|
e.reset=function(a){Ja(this);this.D=-1;a&&(this.M=[],this.M[0]={Tg:this.Xc,mc:this.fd,Kd:!0,ka:20,V:0,ia:-1,Fa:[]})};
|
|
function Ja(a){a.Hc={p:a.Gb,O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Va.p&a.ea||Y(a,a.od,this)}}(a)};a.aa={p:255,O:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.aa.p:Ka(a,c,a.xa.p);c=c|a.$a|a.Ib|a.kd|a.gd|a.Hb|a.jd;c&=~a.hd;if(0<=a.D&&a.M[a.D].Fa.length){var d=a.M[a.D];d.Kd&&(c&=~a.Ib);d.V||(c&=~a.Hb);10>=--d.ka&&(0<d.ka?(c&=~a.$a,La(a)):(d.ka=100,0<=a.D&&(a.M[a.D].ia=0,Ma(a))))}this.p=c;a.Va.p&a.ea&&Y(a,a.Nb,this)}}(a)};a.Va={p:0,
|
|
O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.Bb|a.Cb));Y(a,a.Kb,this);a.aa.update();a.Hc.update()}}(a)};a.Ic={p:255,O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Wa.p&a.ea||Y(a,a.pd,this)}}(a)};a.xa={p:255,O:function(){},update:function(a){return function(c){void 0===c?c=a.xa.p:Ka(a,a.aa.p,c);if(0<=a.D&&a.D<a.M.length){var d=a.M[a.D];d.Fa.length&&a.xa.p&a.Jb&&!(c&a.Jb)&&(c&a.md?d.V--:d.V++,d.V>=d.mc&&(d.V=d.mc),0>d.V&&(d.V=0),d.ka=
|
|
20,a.aa.update(a.aa.p|a.$a),La(a))}this.p=c;a.Wa.p&a.ea&&Y(a,a.Ob,this)}}(a)};a.Wa={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.Bb|a.Cb));Y(a,a.Lb,this);a.xa.update();a.Ic.update()}}(a)};a.Rg={p:0,O:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Db)==a.Db&&(a.ba.p=a.Tb|a.Rb|a.Qb),this.p=c);a.ba.update()}}(a)};a.ba={p:a.Tb|a.Rb|a.Qb,O:function(){},update:function(a){return function(c){void 0===c&&(c=a.ba.p);c&=~a.Sb;0<=a.D&&0<=a.M[a.D].ia&&
|
|
(c|=a.Sb);this.p=c;Y(a,a.qd,this)}}(a)};a.xb={p:0,O:function(a){return function(){Ma(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.p=c);Y(a,a.Mb,this)}}(a)};a.Sg={p:0,O:function(){},update:function(){return function(){}}(a)}}
|
|
e.H=function(a,b,c,d){switch(c){case "listDisk":return this.o[c]=d,!0;case "loadDisk":return this.o[c]=d,d.onclick=function(a){return function(){if(a.o.listDisk){var b=a.o.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.t("loading "+aa(b)+"...");q(c,a,a.Md)}}}(this),!0}return!1};e.P=function(a,b,c,d){this.a=a;this.eb=b;if(this.s=d)oa(d,b,c,this,this.N),Q(d,b,c,this,this.L);this.J()};e.S=function(a){a&&!this.A&&(this.A=!0)};
|
|
e.Md=function(a,b,c){if(c)this.t("disk load error ("+c+")");else{c=[];this.t("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.t("data error: "+d[0]);else if(this.M[0]){for(b=0;b<d.length;b++){var f,g=d[b],k=g.sectors;if(void 0===(f=g.trackNum)||void 0===k)throw"track "+b+" missing data";f!=b&&r("track "+f+" out of order (expected "+b+")");c=[];var h,m,l;if(f){Na(c,g,"trackSig");Oa(c,g);Z(c,g,"trackType");for(var n=0;n<k.length;n++){h=
|
|
k[n];m=h.sectorData;Z(c,h,"sectorSig");Z(c,h,"sectorNum");Z(c,h,"sectorPages");for(l=0;l<m.length;l++)c.push(m[l]);Na(c,h,"sectorEndSig")}}else for(h=k[0],m=h.sectorData,Z(c,g,"trackLoad",2),Z(c,h,"sectorPages"),l=0;l<m.length;l++)c.push(m[l]);d[f].Jc=c}this.M[0].Fa=d;this.t("mount of "+a+" complete")}else this.t("no available drives")}else this.t("no tracks: "+a);else this.t("no data: "+a)}catch(H){this.t("disk data error: "+(H.message||H))}}};
|
|
function Oa(a,b){var c=b.trackNum;if(void 0===c)throw"missing bcd value: trackNum";a.push(Math.floor(c/10)<<4|c%10)}function Z(a,b,c,d){b=b[c];if(void 0===b)throw"missing binary value: "+c;2==d&&a.push(b>>8&255);a.push(b&255)}function Na(a,b,c){b=b[c];if(void 0===b)throw"missing signature: "+c;for(c=0;c<b.length;c++)a.push(b.charCodeAt(c))}
|
|
function Pa(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.Nb:a=a.Va.p&a.ea?a.aa:a.Hc;break;case a.Kb:a=a.Va;break;case a.Ob:a=a.Wa.p&a.ea?a.xa:a.Ic;break;case a.Lb:a=a.Wa;break;case a.nd:a=c?a.Rg:a.ba;break;case a.Mb:a=a.xb;break;default:a=a.Sg}return a}e.N=function(a,b){void 0!==b&&Pa(this,a-this.eb,!1).O()};e.L=function(a,b){if(void 0!==b){var c=this.s.N(a);Pa(this,a-this.eb,!0).update(c)}};
|
|
function Ka(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.ld||(d|=2),a.aa.p&a.Gb||(d|=1));a.D!=d&&(a.D=d,a.ba.update())}function La(a){0<=a.D&&(a.M[a.D].ia=-1,a.xb.update(255),a.ba.update())}function Ma(a){var b=null;if(0<=a.D){var b=a.M[a.D],c=b.Fa[b.V];void 0!==c&&(0<=b.ia&&b.ia<c.Jc.length?(b.ka=100,b=c.Jc[b.ia++],a.xb.update(b),a.ba.update()):(b.ka=10,La(a)))}}function Y(a,b,c){a.s.L(b+a.eb,c.p)}
|
|
w(function(){for(var a=I(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ia(d);G(d,c)}});function $(a,b){z.call(this,"C1PComputer",a);this.I=b}D($);$.prototype.reset=function(a){var b=null,c;for(c in this.I)for(var d=0;d<this.I[c].length;d++){var f=this.I[c][d];f&&f.reset&&(f.reset(),"cpu"==c&&(b=f))}b&&(b.update(),a&&P(b))};$.prototype.start=function(){for(var a in this.I)if("cpu"!=a)for(var b=0;b<this.I[a].length;b++){var c=this.I[a][b];c&&c.start&&c.start()}};
|
|
$.prototype.stop=function(a,b){for(var c in this.I)if("cpu"!=c)for(var d=0;d<this.I[c].length;d++){var f=this.I[c][d];f&&f.stop&&f.stop(a,b)}};$.prototype.H=function(a,b,c,d){switch(c){case "reset":return this.o[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function M(a,b){return a.I[b]?a.I[b][0]:null}
|
|
function Qa(a){var b=null,c;for(c in a.I)for(var d=0;d<a.I[c].length;d++){var f=a.I[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Qa(a)}}(a));return}"cpu"==c?b=f:f.S&&f.S(!0,a)}}a.J();a.t("C1Pjs v1.15.7\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.S(!0,a)}
|
|
w(function(){for(var a=I(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=F(c),f,g={},k,h=0,m=0,l=0;l<d.modules.length;l++){var n=d.modules[l];if(!l){if("cpu"!=n.type)break;h=n.start;m=n.end;k=Array(m+1-h);for(f=h;f<k.length;f++)k[f]=0}if(f=E(n.refID,d.id)){var H=n.type;void 0===g[H]&&(g[H]=[]);g[H].push(f);f.P&&void 0!==n.start&&f.P(k,n.start,n.end,g.cpu[0])}else{r('no component for <module refid="'+n.refID+'">');return}}if(void 0===k){r('<module type="cpu"> definition must appear first in the <computer> specification');
|
|
break}if(f=E("debugger",d.id))g["debugger"]=[f],f.P&&f.P(k,h,m,g.cpu[0]);h=new $(d,g);if(m=E("panel",d.id))if(g.panel=[m],m.jb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<A.length;d++)l=A[d],f&&l.id.indexOf(f)||g.push(l);d=g;for(g=0;g<d.length;g++)f=d[g],f!=m&&(f.Ta=m.Ta,f.t=m.t,f.jb=m.jb)}G(h,c);Qa(h)}});var Ra=0;function Sa(a,b,c,d,f){q(a,null,function(g,k,h){h?f(k,null):Ta(k,a,b,c,d,f)})}
|
|
function Ta(a,b,c,d,f,g){function k(a,k){if(k)g(k,null);else{if(c){var l=b;l&&0>l.indexOf("/")&&(l=window.location.pathname+l);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(l?" url=$2"+l+"$2":""))}l=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),l=new window.ActiveXObject("Microsoft.XMLDOM"),l.async=!1,l.loadXML(a)):l=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){l=
|
|
null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,l)}}a?f?Ua(a,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
|
function Ua(a,b){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var d=c[2];q(d,null,function(f,g,k){if(k||!g)b(a,"unable to resolve XML reference: "+c[0]+" ("+k+")");else{if(f=c[3])if(k=g.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var h=k[0],m,l=/( [a-z]+=)(['"])(.*?)\2/g;m=l.exec(f);)h=0>h.indexOf(m[1])?h.replace(">",m[0]+">"):h.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=h&&(g=g.replace(k[0],h))}else{b(a,"missing <"+c[1]+"> in "+d);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
|
a=a.replace(c[0],g);Ua(a,b)}})}else b(a,null)}
|
|
function Va(a,b,c){function d(a){if(g){var b=I(g,"machine-warning");b[0]&&(b[0].innerHTML="Error: "+ca(a))}k&&f();k=!1}function f(){0==--Ra&&y(!0)}var g,k=!0;Ra++;try{if(g=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var h=function(a,k){if(k){var h=function(a,b){if(b)if(b)if(window.ActiveXObject||"ActiveXObject"in window){var h=k.transformNode(b);h?(g.outerHTML=h,f()):d("transformNodeToObject failed")}else window.document.implementation&&window.document.implementation.createDocument?
|
|
(h=new XSLTProcessor,h.importStylesheet(b),(h=h.transformToFragment(k,window.document))?(g.parentNode.replaceChild(h,g),f()):d("transformToFragment failed")):d("unable to transform XML: unsupported browser");else d("failed to load XSL file: "+c);else d(a)};k?Sa(c,null,null,!1,h):d("failed to load XML file: "+b)}else d(a)};"<"!=b.substr(0,1)?Sa(b,a,void 0,!0,h):Ta(b,null,a,void 0,!1,h)}else d("failed to find machine element: "+a)}catch(m){d(m.message)}return k}
|
|
window.embedC1P=function(a,b,c){return Va(a,b,c)};window.enableEvents=y;window.sendEvent=ea;y(!1);})();//@ sourceMappingURL=/tmp/c1pjs/1.15.7/c1p.map
|