pcjs/versions/c1pjs/1.15.3/c1p.js

127 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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ca(a){return a.replace(/[&<>"']/g,function(a){return ba[a]})}
function r(a,b,c,d,f){b=!!b;var g=0,h=null,l=aa(a),m=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(m.onreadystatechange=function(){4===m.readyState&&(m.onreadystatechange=void 0,h=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,l,h,g,void 0))});if(c){var k="",n;for(n in c)c.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(c[n]));k=k.replace(/%20/g,"+");m.open("POST",a,b);m.setRequestHeader("Content-type","application/x-www-form-urlencoded");
m.send(k)}else m.open("GET",a,b),m.send();a=[];b||(h=m.responseText,200!=m.status&&(g=m.status||-1),d&&f&&f.call(d,l,h,g,void 0),a=[g,h]);return a}function s(a){window?window.alert(a):console.log(a)}function t(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 u={init:[],show:[],exit:[]},da=!0;
function v(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){u.init.push(a)}function x(a){if(da)for(var b=0;b<a.length;b++)a[b]()}v("onload",function(){x(u.init)});v("onpageshow",function(){x(u.show)});v(t("Opera")||t("iOS")?"onunload":"onbeforeunload",function(){x(u.exit)});
function y(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.bc=this.id.substr(0,b),this.ac=this.id.substr(b+1)):this.ac=this.id;this[a]=c;this.jb=null;this.Ma=this.pa=this.ib=this.Na=!1;this.o={};ea(this);z[z.length]=this}var A=void 0;if(window){A||(A=window.location.search.substr(1));for(var B,fa=/\+/g,ga=/([^&=]+)=?([^&]*)/g;B=ga.exec(A);)B[1].replace(fa," "),B[2].replace(fa," ")}
function ha(){var a=y.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 C(a){a.prototype=ha()}var z=[];function D(){}function ia(a,b){b||s(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<z.length;c++)if(z[c].id===a)return z[c]}return null}
function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){s(c.message+" ("+a+")")}return b}
function G(a,b){var c,d;d=H(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 h=g[f];if(h.nodeType===window.document.ELEMENT_NODE){var l=h.getAttribute("class");if(l){var m,k;k=l.split(" ");for(m=0;m<k.length;m++)switch(l=k[m],l){case "c1pjs-input":case "c1pjs-output":(k=F(h))&&k.binding&&a.G(l,k.type,k.binding,h),k=[]}}}}}}
function H(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}
y.prototype={toString:function(){return this.name?this.name:this.id||this.type},G: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.o[c]=d,d.value="",D=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),ia=function(a,b,c){D(a,"notice",
c)}),!0}return!1},log:function(){},status:function(a){I(this,this.ac+": "+a)},I:function(a){!this.Ma&&(this.Na=!1!==a)&&(this.name&&this.log("ready"),a=this.jb,this.jb=null,a&&a())}};function ja(a,b){if(a.ib)return a.pa&&(a.pa=!1),a.ib=!1;if(a.Ma)return I(a,a.toString()+" error"),!1;a.pa=b;return a.pa}function J(a,b){b&&(a.Na?b():a.jb=b);return a.Na}function K(a,b){a.Ma=!0;ia("Fatal error: "+b,void 0,a.id)}function I(a,b){D(b,void 0,a.id)}
function ea(a){var b=1;a.bc&&(a=a.bc.match(/\d+/),null!==a&&(b=parseInt(a[0],10)));return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function L(a){y.call(this,"C1PPanel",a);this.w=!1}C(L);L.prototype.G=function(a,b,c,d){return this.F&&this.F.G(a,b,c,d)||this.s&&this.s.G(a,b,c,d)||this.B&&this.B.G(a,b,c,d)?!0:y.prototype.G.call(this,a,b,c,d)};L.prototype.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b,this.s=M(b,"cpu"),this.B=M(b,"keyboard"),ka())};
function ka(){for(var a=!1,b=H(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.I()}}w(ka);
function N(a){y.call(this,"C1PCPU",a);la(this);this.Q=this.w=!1;this.Xb=a.autoStart;this.Za=0;this.ud=1;this.na=2;this.speed=this.Za;this.ta=1E6;this.ob=this.qb=30;this.nb=5;this.Ld=1;this.Pa=8;this.Rb=["Slow","Fast","Max"];this.zd=["("+this.Ld+"Mhz)","(up to "+this.Pa+"Mhz)","(unlimited)"];this.X=[];this.S=[];this.cb=65536;this.eb=0;this.Ga=65536;this.Ha=0;this.Mc=128;this.Nc=64;this.Ic=16;this.Kc=8;this.Lc=4;this.Oc=2;this.Jc=1;this.xd=65532;this.sd=0;this.td=1;this.q=[this.we,this.Qf,this.Hg,this.i,
this.i,this.Sf,this.me,this.i,this.Vf,this.Pf,this.le,this.i,this.i,this.Mf,this.je,this.i,this.ve,this.Rf,this.i,this.i,this.i,this.Tf,this.ne,this.i,this.ze,this.Of,this.i,this.i,this.i,this.Nf,this.ke,this.i,this.nf,this.fe,this.i,this.i,this.se,this.he,this.ag,this.i,this.Xf,this.ee,this.$f,this.i,this.re,this.be,this.Yf,this.i,this.te,this.ge,this.i,this.i,this.i,this.ie,this.bg,this.i,this.rg,this.de,this.i,this.i,this.i,this.ce,this.Zf,this.i,this.hg,this.af,this.i,this.i,this.i,this.cf,this.Jf,
this.i,this.Uf,this.$e,this.If,this.i,this.mf,this.Xe,this.Gf,this.i,this.xe,this.bf,this.i,this.i,this.i,this.df,this.Kf,this.i,this.Be,this.Ze,this.i,this.i,this.i,this.Ye,this.Hf,this.i,this.ig,this.rc,this.i,this.i,this.i,this.tc,this.fg,this.i,this.Wf,this.qc,this.eg,this.i,this.lf,this.nc,this.cg,this.i,this.ye,this.sc,this.i,this.i,this.i,this.uc,this.gg,this.i,this.tg,this.pc,this.i,this.i,this.i,this.oc,this.dg,this.i,this.i,this.xg,this.i,this.i,this.Fg,this.zg,this.Cg,this.i,this.We,this.i,
this.Lg,this.i,this.Eg,this.ug,this.Bg,this.i,this.oe,this.yg,this.i,this.i,this.Gg,this.Ag,this.Dg,this.i,this.Ng,this.wg,this.Mg,this.i,this.i,this.vg,this.i,this.i,this.Df,this.sf,this.yf,this.i,this.Ef,this.uf,this.zf,this.i,this.Jg,this.rf,this.Ig,this.i,this.Bf,this.of,this.wf,this.i,this.pe,this.tf,this.i,this.i,this.Ff,this.vf,this.Af,this.i,this.Ce,this.qf,this.Kg,this.i,this.Cf,this.pf,this.xf,this.i,this.Pe,this.He,this.i,this.i,this.Qe,this.Je,this.Te,this.i,this.kf,this.Ge,this.Ve,this.i,
this.Oe,this.De,this.Re,this.i,this.ue,this.Ie,this.i,this.i,this.i,this.Ke,this.Ue,this.i,this.Ae,this.Fe,this.i,this.i,this.i,this.Ee,this.Se,this.i,this.Me,this.zc,this.i,this.i,this.Ne,this.Bc,this.gf,this.i,this.jf,this.yc,this.Lf,this.i,this.Le,this.vc,this.ef,this.i,this.qe,this.Ac,this.i,this.i,this.i,this.Cc,this.hf,this.i,this.sg,this.xc,this.i,this.i,this.i,this.wc,this.ff,this.i];this.yd=[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]}C(N);e=N.prototype;
e.reset=function(a){this.Q&&O(this);la(this);var b=this.xd;this.d=this.a[b]|this.a[b+1]<<8;this.Ma=!1;a&&(!0===this.Xb||null===this.Xb&&void 0===this.o.run)&&P(this)};
e.G=function(a,b,c,d){a=!1;switch(c){case "run":this.o[c]=d;d.onclick=function(a){return function(){a.Q?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(){na(a,a.speed>=a.na?a.Za:a.speed+1,!0)}}(this),a=!0}return a};
e.O=function(a,b){this.a=a;(this.lc=b)?s("unsupported CPU address buffer offset ("+this.lc+")"):this.I()};e.R=function(a,b){if(a&&!this.w){this.F=b;var c=M(b,"video");c&&(this.hb=function(a){return function(){oa(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.w=!0;this.reset(!0);this.update()}};function pa(a,b,c,d,f){0>qa(a.X,b,c,d,f)&&(a.cb>b&&(a.cb=b),a.eb<c&&(a.eb=c),a.X.push([b,c,d,f]))}
function Q(a,b,c,d,f){0>qa(a.S,b,c,d,f)&&(a.Ga>b&&(a.Ga=b),a.Ha<c&&(a.Ha=c),a.S.push([b,c,d,f]))}function qa(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 na(a,b,c){void 0!==b&&(a.speed=b,a.o.setSpeed&&(a.o.setSpeed.innerHTML=a.Rb[2<=b?0:b+1]),I(a,"running at "+a.Rb[b].toLowerCase()+" speed "+a.zd[b]),c&&a.ca());a.ka=0;a.cc=Date.now()||+new Date;ra(a)}e.hb=function(){};e.ca=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 sa(a){R(a,"A",a.e,2);R(a,"X",a.k,2);R(a,"Y",a.m,2);var b=ta(a);R(a,"C",b&a.Jc?1:0);R(a,"Z",b&a.Oc?1:0);R(a,"I",b&a.Lc?1:0);R(a,"D",b&a.Kc?1:0);R(a,"B",b&a.Ic?1:0);R(a,"V",b&a.Nc?1:0);R(a,"N",b&a.Mc?1:0);R(a,"S",a.n,4);R(a,"PC",a.d,4);a.o.speed&&a.V&&(a.o.speed.innerHTML=a.V.toFixed(1)+"Mhz")}
function ra(a,b){var c=a.qb;c<a.ob&&(c=a.ob);c<a.nb&&(c=a.nb);var d=1;b&&a.speed>a.Za&&a.V&&(d=a.V);d>a.Pa&&a.speed<a.na&&(d=a.Pa);a.Nd=Math.round(1E3/a.qb);a.Ra=Math.floor(a.ta/c*d);a.kb=Math.floor(a.ta/a.qb*d);a.ec=Math.floor(a.ta/a.ob*d);a.dc=Math.floor(a.ta/a.nb*d);b||(a.ia=a.kb,a.sa=a.ec,a.ra=a.dc);a.mb=0}function ua(a){a.mb>=a.ta&&ra(a,!0);a.ua=0;a.Qd=Date.now()||+new Date}
function va(a){var b=Date.now()||+new Date,c=a.Nd;a.ua&&(c=Math.round(c*a.ua/a.kb));c-=b-a.Qd;if(b-=a.cc)a.V=Math.round(a.ka/(100*b))/10,864E5<=b&&na(a);0>c?c=0:a.speed==a.ud?a.V<=a.Pa&&(c=0):a.speed==a.na&&(c=0);a.mb+=a.ua;return c}
function P(a){if(ja(a,!0)){a.Q||(na(a),a.F&&a.F.start(),a.Q=!0,a.o.run&&(a.o.run.innerHTML="Halt"),a.ca());ua(a);try{do{a.step(a.Ra);var b=a.W-a.A;a.ka+=b;a.ua+=b;a.W=a.A=0;a.sa-=a.Ra;0>=a.sa&&(a.sa+=a.ec,a.hb());a.ra-=a.Ra;0>=a.ra&&(a.ra+=a.dc,sa(a));a.ia-=a.Ra;if(0>=a.ia){a.ia+=a.kb;break}}while(a.Q)}catch(c){O(a);a.update();ja(a,!1);K(a,c.message||c);return}setTimeout(function(a){return function(){P(a)}}(a),va(a))}else a.update(),a.F&&a.F.stop(a.cc,a.ka)}
e.step=function(a){this.b=this.h=-1;this.W=this.A=a;do{a=this.a[this.d];this.d++;this.q[a].call(this);if(0<=this.b){if(this.b>=this.cb&&this.b<=this.eb)for(var b=this.b,c=this.d,d=0;d<this.X.length;d++)b>=this.X[d][0]&&b<=this.X[d][1]&&this.X[d][3].call(this.X[d][2],b,c);this.b=-1}else if(0<=this.h){if(this.h>=this.Ga&&this.h<=this.Ha)for(b=this.h,c=this.d,d=0;d<this.S.length;d++)b>=this.S[d][0]&&b<=this.S[d][1]&&this.S[d][3].call(this.S[d][2],b,c);this.h=-1}this.A-=this.yd[a]}while(0<this.A);return!0};
function O(a){a.pa&&(a.ib=!0);a.W-=a.A;a.A=0;a.Q&&(a.Q=!1,a.o.run&&(a.o.run.innerHTML="Run"))}e.update=function(){this.hb();sa(this)};function wa(a){return a.Q?a.ka+a.W-a.A:0}e.M=function(a){return this.a[a]};e.K=function(a,b){this.a[a]=b};function ta(a){var b=a.c&256?1:0,b=b|(a.g&255?0:2),b=b|((a.r&255^a.v^a.r>>1)&128?64:0),b=b|(a.f&128?128:0);return a.t&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.v=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.A--;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.v=b^c;a.r=a.c;a.c^=256;a.A--;return f&255}function la(a){a.e=0;a.k=0;a.m=0;a.n=256;a.t=0;a.f=0;a.g=0;a.v=0;a.r=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.V=0;a.ka=a.W=a.A=0}
e.we=function(){this.d++;this.a[this.n--]=this.d>>8;this.n|=256;this.a[this.n--]=this.d&255;this.n|=256;this.t|=16;this.t=ta(this);this.a[this.n--]=this.t;this.n|=256;this.t&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Qf=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.Sf=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]};
e.me=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.Vf=function(){this.t=ta(this);this.a[this.n--]=this.t;this.n|=256};e.Pf=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};e.le=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};e.Mf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]};
e.je=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.ve=function(){this.d+=(this.f&128?0:(this.A--,this.a[this.d]<<24>>24))+1};e.Rf=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.Tf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e|=this.a[this.b]};
e.ne=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.ze=function(){this.c=0};e.Of=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.Nf=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.ke=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.nf=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.fe=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.se=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.v=this.a[this.b]&64?128:0};e.he=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]};
e.ag=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.Xf=function(){this.n=this.n+1&255|256;this.t=this.a[this.n];this.c=this.t&1?256:0;this.g=this.t&2?0:1;this.f=this.t&128;this.r=0;this.v=this.t&64?128:0};e.ee=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]};
e.$f=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.re=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.v=this.a[this.b]&64?128:0};e.be=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]};
e.Yf=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.te=function(){this.d+=(this.f&128?(this.A--,this.a[this.d]<<24>>24):0)+1};e.ge=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.ie=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e&=this.a[this.b]};
e.bg=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.rg=function(){this.c=256};e.de=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.ce=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.Zf=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.hg=function(){this.n=this.n+1&255|256;this.t=this.a[this.n];this.c=this.t&1?256:0;this.g=this.t&2?0:1;this.f=this.t&128;this.r=0;this.v=this.t&64?128:0;this.n=this.n+2&255|256;this.d=this.a[this.n-1|256]|this.a[this.n]<<8};
e.af=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.cf=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};e.Jf=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.Uf=function(){this.a[this.n--]=this.e;this.n|=256};e.$e=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]};
e.If=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.mf=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};e.Xe=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};e.Gf=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.xe=function(){this.d+=((this.r&255^this.v^this.r>>1)&128?0:(this.A--,this.a[this.d]<<24>>24))+1};e.bf=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.df=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e^=this.a[this.b]};e.Kf=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.Be=function(){this.t&=251};e.Ze=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.Ye=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.Hf=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.ig=function(){this.n=this.n+2&255|256;this.d=(this.a[this.n-1|256]|this.a[this.n]<<8)+1};e.rc=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.v=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.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.tc=function(){this.b=this.a[this.d++];this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=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.a[this.d++];this.e=S(this,this.e,this.a[this.b])};e.fg=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.Wf=function(){this.n=this.n+1&255|256;this.f=this.g=this.e=this.a[this.n]};
e.qc=function(){this.b=this.d++;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=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.d++;this.e=S(this,this.e,this.a[this.b])};e.eg=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.lf=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.nc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Ud=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=S(this,this.e,this.a[this.b])};e.cg=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.ye=function(){this.d+=((this.r&255^this.v^this.r>>1)&128?(this.A--,this.a[this.d]<<24>>24):0)+1};e.sc=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.v=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.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=S(this,this.e,this.a[this.b])};
e.uc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=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.e=S(this,this.e,this.a[this.b])};e.gg=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.tg=function(){this.t|=4};
e.pc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};e.Wd=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.oc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255};
e.Vd=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.dg=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.xg=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.Fg=function(){this.h=this.a[this.d++];this.a[this.h]=this.m};
e.zg=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};e.Cg=function(){this.h=this.a[this.d++];this.a[this.h]=this.k};e.We=function(){this.f=this.g=this.m=this.m-1&255};e.Lg=function(){this.f=this.g=this.e=this.k};e.Eg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.m};e.ug=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};e.Bg=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.k};
e.oe=function(){this.d+=(this.c&256?0:(this.A--,this.a[this.d]<<24>>24))+1};e.yg=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.Gg=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.m};e.Ag=function(){this.h=this.a[this.d++]+this.k&255;this.a[this.h]=this.e};e.Dg=function(){this.h=this.a[this.d++]+this.m&255;this.a[this.h]=this.k};e.Ng=function(){this.f=this.g=this.e=this.m};
e.wg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.m;this.a[this.h]=this.e};e.Mg=function(){this.n=this.k|256};e.vg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.k;this.a[this.h]=this.e};e.Df=function(){this.b=this.d++;this.f=this.g=this.m=this.a[this.b]};e.sf=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.yf=function(){this.b=this.d++;this.f=this.g=this.k=this.a[this.b]};
e.Ef=function(){this.b=this.a[this.d++];this.f=this.g=this.m=this.a[this.b]};e.uf=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};e.zf=function(){this.b=this.a[this.d++];this.f=this.g=this.k=this.a[this.b]};e.Jg=function(){this.f=this.g=this.m=this.e};e.rf=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};e.Ig=function(){this.f=this.g=this.k=this.e};e.Bf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.m=this.a[this.b]};
e.of=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};e.wf=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.k=this.a[this.b]};e.pe=function(){this.d+=(this.c&256?(this.A--,this.a[this.d]<<24>>24):0)+1};e.tf=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.Ff=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.m=this.a[this.b]};
e.vf=function(){this.b=this.a[this.d++]+this.k&255;this.f=this.g=this.e=this.a[this.b]};e.Af=function(){this.b=this.a[this.d++]+this.m&255;this.f=this.g=this.k=this.a[this.b]};e.Ce=function(){this.v=this.r=0};e.qf=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.Kg=function(){this.f=this.g=this.k=this.n&255};e.Cf=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.pf=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.xf=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.Pe=function(){this.b=this.d++;this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.He=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.Qe=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.m-this.a[this.b];this.c^=256};e.Je=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Te=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};e.kf=function(){this.f=this.g=this.m=this.m+1&255};e.Ge=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};e.Ve=function(){this.f=this.g=this.k=this.k-1&255};
e.Oe=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.De=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.Re=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.ue=function(){this.d+=(this.g&255?(this.A--,this.a[this.d]<<24>>24):0)+1};
e.Ie=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.Ke=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.Ue=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.Ae=function(){this.t&=-9;this.q[97]=this.rc;this.q[101]=this.tc;this.q[105]=this.qc;this.q[109]=this.nc;this.q[113]=this.sc;this.q[117]=this.uc;this.q[121]=this.pc;this.q[125]=this.oc;this.q[225]=this.zc;this.q[229]=this.Bc;this.q[233]=this.yc;this.q[237]=this.vc;this.q[241]=this.Ac;this.q[245]=this.Cc;this.q[249]=this.xc;this.q[253]=this.wc};e.Fe=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.Ee=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.Se=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.Me=function(){this.b=this.d++;this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
e.zc=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.v=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.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.Ne=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.k-this.a[this.b];this.c^=256};
e.Bc=function(){this.b=this.a[this.d++];this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=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.a[this.d++];this.e=T(this,this.e,this.a[this.b])};e.gf=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};e.jf=function(){this.f=this.g=this.k=this.k+1&255};
e.yc=function(){this.b=this.d++;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=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.d++;this.e=T(this,this.e,this.a[this.b])};e.Lf=function(){};e.Le=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.vc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.jg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=T(this,this.e,this.a[this.b])};e.ef=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.qe=function(){this.d+=(this.g&255?0:(this.A--,this.a[this.d]<<24>>24))+1};
e.Ac=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.v=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.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.m;this.e=T(this,this.e,this.a[this.b])};
e.Cc=function(){this.b=this.a[this.d++]+this.k&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=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.e=T(this,this.e,this.a[this.b])};e.hf=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.sg=function(){this.t|=8;this.q[97]=this.Yd;this.q[101]=this.$d;this.q[105]=this.Xd;this.q[109]=this.Ud;this.q[113]=this.Zd;this.q[117]=this.ae;this.q[121]=this.Wd;this.q[125]=this.Vd;this.q[225]=this.ng;this.q[229]=this.pg;this.q[233]=this.mg;this.q[237]=this.jg;this.q[241]=this.og;this.q[245]=this.qg;this.q[249]=this.lg;this.q[253]=this.kg};
e.xc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.lg=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.wc=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.v=this.e^this.a[this.b];this.r=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};e.kg=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.ff=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.Hg=function(){var a;a=this.a[this.d++];switch(a){case this.sd:I(this,"HALT");O(this);break;case this.td: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));I(this,b);this.ia=0;this.W-=this.A;this.A=0;break;default:this.d-=2,I(this,"undefined opSim: "+p(a,2)+" at "+p(this.d,4)),O(this)}};
e.i=function(){var a=this.a[--this.d];I(this,"undefined opcode: "+p(a,2)+" at "+p(this.d,4));O(this)};w(function(){for(var a=H(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){y.call(this,"C1PROM",a);this.T=this.a=null;this.fa=a.size;if(this.xa=a.image){a=this.xa;var b;b=this.xa;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.xa);r(a,!0,null,this,this.Ed)}}C(U);
U.prototype.O=function(a,b,c,d){this.a=a;this.sb=b;a=c-b+1;this.fa||(this.fa=a);a!=this.fa?K(this,"computer-specified ROM size ("+p(a,4)+") does not match component-specified size ("+p(this.fa,4)+")"):(d&&(this.s=d,Q(d,b,c,this,this.K)),xa(this))};U.prototype.R=function(a){a&&!this.w&&(this.w=!0)};U.prototype.K=function(a,b){if(void 0!==b){var c=a-this.sb;this.a[this.sb+c]=this.T?this.T[c]:0}};
U.prototype.Ed=function(a,b,c){if(c)I(this,"ROM load error ("+c+")");else{if("["==b[0])try{this.T=eval("("+b+")")}catch(d){I(this,"ROM data error: "+(d.message||d));return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.T=Array(a.length),b=0;b<a.length;b++)this.T[b]=parseInt(a[b],16);xa(this)}};
function xa(a){if(!J(a))if(!a.xa)a.I();else if(a.T&&a.a){var b=a.T.length;if(b!=a.fa)K(a,"ROM image size ("+p(b,4)+") does not match component-specified size ("+p(a.fa,4)+")");else{for(var c=0;c<b;c++)a.a[a.sb+c]=a.T[c];a.I()}}}w(function(){for(var a=H(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 ya(a){y.call(this,"C1PRAM",a)}C(ya);ya.prototype.O=function(a){this.a=a;this.I()};
w(function(){for(var a=H(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new ya(d);G(d,c)}});
function za(a){y.call(this,"C1PKeyboard",a);this.w=!1;this.lb=a.model;this.Bb=8;this.bd=9;this.$c=10;this.Zc=13;this.ad=16;this.Yc=17;this.Vc=18;this.Wc=20;this.Cb=27;this.Xc=91;this.Sc=this.Bb;this.Tc=this.$c;this.Pc=this.Zc;this.wb=this.Cb;this.J=224;this.l=this.ad+this.J;this.Da=this.Yc+this.J;this.Xa=this.Vc+this.J;this.xb=this.Wc+this.J;this.vb=0+this.J;this.Qc=3;this.Rc=15;this.Ca=1;this.Ba=2;this.Aa=4;this.ma=8;this.za=64;this.Wa=this.Ba|this.Aa|this.za;this.Mb=0;this.qd=1;this.pd=2;this.rd=
3;this.od=4;this.Rd=8192;this.Od=250;this.Pd=100;this.Md=300;this.ea=[];this.ea["break"]=this.vb;this.ea.esc=this.wb;this.ea["ctrl-c"]=this.Qc;this.ea["ctrl-o"]=this.Rc;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.Sc]=21760+this.l;this.j[this.Tc]=21504;this.j[this.Pc]=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.Da]=1536;this.j[this.wb]=1280;this.j[this.l]=512;this.j[this.Xa]=256;this.j[this.xb]=0;this.reset()}C(za);e=za.prototype;e.reset=function(){this.ya(this.lb);this.u=this.Ca;this.Tb=0;this.D=[this.Ca,0,0,0,0,0,0,0];this.$a=[];if(this.P)for(var a in this.P)isNaN(a)||this.P[a]&&clearTimeout(this.P[a]);this.P=[];this.Dc=this.Z=0;this.Ub=-1;this.Sb=this.D;this.fc=this.pb=0;this.ba=""};
e.G=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 Aa(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.ba="";a.u&a.ma?a.u&=~a.ma:c=!V(a,b);return c}}(this),!0;case "keyUp":return this.o[c]=d,d.onkeyup=function(a){return function(b){return Aa(a,b,!1)}}(this),!0;case "break":return this.o[c]=d,d.onclick=function(a){return function(){a.F&&
a.F.reset(!0)}}(this),!0;default:if(void 0!==this.ea[c])return this.o[c]=d,d.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!V(a,c)}}(this,c,this.ea[c]),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.kc=b;this.Ad=c-b+1;this.Td=this.kc+this.Ad;d&&(this.s=d,Q(d,b,c,this,this.K));this.I()};e.ya=function(a){this.va=a;this.gb=255;600!=this.va&&(this.gb=0,I(this,"updated keyboard model: "+this.va))};e.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b)};
e.I=function(){this.Zb=(this.Id=t("iOS"))||t("Android");y.prototype.I.call(this)};function Ba(a,b){var c=b?a.Pd:a.Od;a.s&&a.s.V&&(c/=a.s.V);return c}function Ca(a,b){!a.Z||void 0!==b&&b==a.Z||(clearTimeout(a.P[a.Z]),W(a,a.Z,!1,a.od))}function X(a,b,c){a.ba=b;Da(a,c||a.Md)}function Da(a,b){if(0<a.ba.length){var c=a.ba.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.ba=a.ba.substr(1);V(a,c)}0<a.ba.length&&setTimeout(function(a){return function(){Da(a,b)}}(a),b)}
function Aa(a,b,c){var d,f=!c;b=b.keyCode;c&&(a.Dc=b);b==a.l-a.J?(a.u&=~a.Aa,c&&(a.u|=a.Aa),b+=a.J,f=!1):b==a.Xa-a.J?(a.u&=~a.Ba,c&&(a.u|=a.Ba),b+=a.J,f=!1):b==a.Da-a.J?(a.u&=~a.za,c&&(a.u|=a.za),b+=a.J,f=!1):b==a.xb-a.J?(c=!c,a.u&=~a.Ca,c&&(a.u|=a.Ca),b+=a.J,f=!1):b==a.Xc?(a.u&=~a.ma,c&&(a.u|=a.ma),f=!1,d=!0):d=b==a.bd?f=!1:b==a.Cb||b==a.Bb?c?!V(a,b):!1:!0;f&&(a.u&=~a.ma,a.Zb||b!=a.Dc||Ca(a));void 0===d&&(d=!W(a,b,c,a.pd));return d}
function V(a,b){var c=!1;b==a.vb?a.F&&(a.F.reset(!0),c=!0):(a.Zb&&65<=b&&90>=b&&(b+=32),Ca(a,b),W(a,b,!0,a.Mb)&&(a.s.speed==a.s.na?W(a,b,!1,a.qd):(c=!1,a.P[b]&&(clearTimeout(a.P[b]),c=!0),c=Ba(a,c),a.P[a.Z=b]=setTimeout(function(a){return function(){W(a,b,!1,a.rd)}}(a),c)),c=!0));return c}
function W(a,b,c,d){var f=!1;c||(a.P[b]=null,a.Z==b&&(a.Z=0));var g=0,h=a.j[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.Da),h=a.j[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.D[b]|=1<<f,a.D[0]=g==a.Da?a.D[0]|a.za:g==a.l?a.D[0]|a.Aa:g==a.Xa?a.D[0]|a.Ba:a.D[0]&~a.Wa):(a.D[b]&=~(1<<f),a.D[0]&=~a.Wa,a.D[0]|=a.u&a.Wa),c=d==a.Mb&&!a.$a.length,a.$a.push(a.D.slice()),a.Va(c),f=!0);return f}e.M=function(){};e.K=function(a){var b=this.s.M(a);this.Tb=b^this.gb;this.pb++;this.Va(!1,a,b)};
e.Va=function(a,b){var c=wa(this.s);if(!a)if(this.s.speed==this.s.na)a=void 0!==b&&32<=this.pb;else{var d=c-this.fc;a=0>d||d>=this.Rd}a&&(d=this.$a.shift(),void 0!==d&&(this.Sb=d),this.pb=0,this.fc=c);for(d=c=0;8>d;d++)this.Tb&1<<d&&(c|=this.Sb[d]);c^=this.gb;if(void 0!==b)this.a[b]=c;else if(b=this.kc,c!=this.Ub)for(d=b;d<this.Td;d++)this.a[d]=c;this.Ub=c};w(function(){for(var a=H(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new za(d);G(d,c)}});
function Ea(a,b,c,d){y.call(this,"C1PVideo",a);this.lb=a.model;this.gc=a.charCols;this.hc=a.charRows;this.Fd=a.screenWidth;this.Gd=a.screenHeight;this.Ja=a.charWidth;this.Ka=a.charHeight;Fa(this);this.La=b;this.Dd=c;this.qa=d;this.oa=56832}C(Ea);e=Ea.prototype;e.reset=function(a){this.ya(this.lb);if(this.a)for(var b=this.Sa;b<this.tb;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
e.G=function(a,b,c,d){switch(c){case "refresh":return this.o[c]=d,d.onclick=function(a){return function(){Ga(a);oa(a)}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.Sa=b;this.Cd=c-b+1;this.tb=this.Sa+this.Cd;d&&(this.s=d,void 0!==this.oa&&(pa(d,this.oa,this.oa,this,this.M),Q(d,this.oa,this.oa,this,this.K)));this.reset(!0)};
function Fa(a,b,c,d,f){a.Qa=void 0!==b?b:a.gc;a.Sd=void 0!==c?c:a.hc;a.ga=a.Qa*a.Sd;a.tb=a.Sa+a.ga;a.$b=void 0!==d?d:0;a.ic=void 0!==f?f:c;a.Vb=Math.floor(a.Fd/a.Qa);a.Wb=Math.floor(a.Gd/a.ic)}e.ca=function(){this.La.focus()};e.ya=function(a){this.va=a;600==this.va?(Fa(this,this.gc,this.hc,4,24),1024==this.ga&&this.s&&(this.Fa=this.tb+this.ga-1,Q(this.s,this.Fa,this.Fa,this,this.Hc))):(I(this,"updated video model: "+this.va),Fa(this,64,32));Ga(this);oa(this)};
e.R=function(a,b){if(a&&!this.w&&J(this)){if(this.w=!0,this.B=M(b,"keyboard"))this.B.G("input","canvas","keyDown",this.La),this.B.G("input","canvas","keyPress",this.La),this.B.G("input","canvas","keyUp",this.La)}else!a&&this.w&&(this.w=!1)};e.I=function(){this.Ja||(this.Ja=Math.floor(this.qa.width/16));this.Ka||(this.Ka=Math.floor(this.qa.height/16));y.prototype.I.call(this)};e.M=function(a){var b=this.s.M(a);this.s.K(a,b&127|(Math.floor(wa(this.s)/8333)&1?128:0))};e.K=function(){};
e.Hc=function(a,b){if(void 0!==b){this.ya(540);this.B&&this.B.ya(542);var c=this.s,d=c.S,f=[],g=qa(d,this.Fa,this.Fa,this,this.Hc);if(0<=g){f.push(d[g][0]);f.push(d[g][1]);d.splice(g,1);for(var h=65536,l=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),l<d[g][1]&&(l=d[g][1]);f.push(h);f.push(l)}4==f.length&&(c.Ga=f[2],c.Ha=f[3])}};function Ga(a){a.ab=Array(a.ga);for(var b=0;b<=a.ga;b++)a.ab[b]=-1}
function oa(a){var b=0;if(a.w)for(;b<a.ga;){var c=a.a[a.Sa+b];if(a.ab[b]!=c){var d=Math.floor(b/a.Qa);if(d>=a.$b&&(d-=a.$b,d<a.ic)){var f=c*a.Ja;a.Dd.drawImage(a.qa,f%a.qa.width,Math.floor(f/a.qa.width)*a.Ka,a.Ja,a.Ka,b%a.Qa*a.Vb,d*a.Wb,a.Vb,a.Wb)}a.ab[b]=c}b++}}
w(function(){for(var a=H(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 &lt;canvas&gt; 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,h=f.getContext("2d"),f=new Ea(d,f,h,g);g.onload=function(a){return function(){a.I()}}(f,d.charSet);g.src=d.charSet;G(f,c)}});
function Ha(a){y.call(this,"C1PSerialPort",a);this.w=!1;this.Yb=a.demo;this.wd=0;this.vd=1;this.reset()}C(Ha);e=Ha.prototype;e.reset=function(){2!=this.Y&&(this.Ia=this.fb=0,this.la='10 PRINT "HELLO OSI #'+ea(this)+'"\n',this.Y=this.Oa=0)};e.start=function(){this.B&&this.Yb&&(X(this.B," C\n\n",3E3),setTimeout(function(a){return function(){a.Y=1;X(a.B,"LOAD\n")}}(this),12E3));this.Yb=!1};
e.G=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&&r(a.o.listSerial.value,!0,null,a,a.Kd)}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.rb=b;this.Bd=c-b+1;this.mc=this.rb+this.Bd;if(this.s=d)pa(d,b,c,this,this.M),Q(d,b,c,this,this.K);this.I()};e.R=function(a,b){a&&!this.w&&(this.w=!0,this.F=b,this.B=M(b,"keyboard"))};
e.Kd=function(a,b,c){b?(this.la=b,this.Y=this.Oa=0,this.F&&this.B&&this.s.Q?(I(this,"auto-loading "+a),this.s.ca(),"."!=this.la.charAt(0)?(this.Y=1,X(this.B,"NEW\nLOAD\n")):(this.Y=2,this.F.reset(!0),X(this.B,"ML"))):I(this,a+" ready to load")):I(this,a+" load error ("+c+")")};e.M=function(a,b){void 0!==b&&(a&1?Ia(this):this.la&&!this.Oa&&Ia(this))};e.K=function(){};
function Ia(a){if(void 0!==a.la){a.fb=0;a.Ia=0;if(a.Oa<a.la.length){var b=a.la.charCodeAt(a.Oa++);10==b&&(b=13);a.fb=b;a.Ia=1}else 1==a.Y&&a.B&&X(a.B," \nRUN\n"),a.Y=0;a.Va()}}e.Va=function(){var a;for(a=this.rb+0;a<this.mc;a+=2)this.a[a]=this.Ia?this.vd:this.wd;for(a=this.rb+1;a<this.mc;a+=2)this.a[a]=this.Ia?this.fb:0};w(function(){for(var a=H(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ha(d);G(d,c)}});
function Ja(a){y.call(this,"C1PDiskController",a);this.w=!1;this.ld=this.Kb=0;this.Hb=1;this.md=this.Lb=2;this.Ib=3;this.yb=128;this.zb=64;this.da=4;this.ed=1;this.Eb=2;this.dd=4;this.gd=8;this.fd=16;this.Fb=32;this.Db=64;this.Ya=128;this.jd=4;this.Gb=8;this.hd=32;this.nd=this.kd=16;this.Jb=17;this.Ab=3;this.Pb=1;this.Qb=2;this.Ob=4;this.Nb=8;this.Uc=0;this.cd=40;this.reset(!0)}C(Ja);e=Ja.prototype;
e.reset=function(a){Ka(this);this.C=-1;a&&(this.L=[],this.L[0]={Qg:this.Uc,jc:this.cd,Hd:!0,ja:20,U:0,ha:-1,Ea:[]})};
function Ka(a){a.Ec={p:a.Db,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Ta.p&a.da||Y(a,a.ld,this)}}(a)};a.$={p:255,N:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.$.p:La(a,c,a.wa.p);c=c|a.Ya|a.Fb|a.gd|a.dd|a.Eb|a.fd;c&=~a.ed;if(0<=a.C&&a.L[a.C].Ea.length){var d=a.L[a.C];d.Hd&&(c&=~a.Fb);d.U||(c&=~a.Eb);10>=--d.ja&&(0<d.ja?(c&=~a.Ya,Ma(a)):(d.ja=100,0<=a.C&&(a.L[a.C].ha=0,Na(a))))}this.p=c;a.Ta.p&a.da&&Y(a,a.Kb,this)}}(a)};a.Ta={p:0,
N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.yb|a.zb));Y(a,a.Hb,this);a.$.update();a.Ec.update()}}(a)};a.Fc={p:255,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c);a.Ua.p&a.da||Y(a,a.md,this)}}(a)};a.wa={p:255,N:function(){},update:function(a){return function(c){void 0===c?c=a.wa.p:La(a,a.$.p,c);if(0<=a.C&&a.C<a.L.length){var d=a.L[a.C];d.Ea.length&&a.wa.p&a.Gb&&!(c&a.Gb)&&(c&a.jd?d.U--:d.U++,d.U>=d.jc&&(d.U=d.jc),0>d.U&&(d.U=0),d.ja=20,
a.$.update(a.$.p|a.Ya),Ma(a))}this.p=c;a.Ua.p&a.da&&Y(a,a.Lb,this)}}(a)};a.Ua={p:0,N:function(){},update:function(a){return function(c){void 0!==c&&(this.p=c&~(a.yb|a.zb));Y(a,a.Ib,this);a.wa.update();a.Fc.update()}}(a)};a.Og={p:0,N:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Ab)==a.Ab&&(a.aa.p=a.Qb|a.Ob|a.Nb),this.p=c);a.aa.update()}}(a)};a.aa={p:a.Qb|a.Ob|a.Nb,N:function(){},update:function(a){return function(c){void 0===c&&(c=a.aa.p);c&=~a.Pb;0<=a.C&&0<=a.L[a.C].ha&&(c|=
a.Pb);this.p=c;Y(a,a.nd,this)}}(a)};a.ub={p:0,N:function(a){return function(){Na(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.p=c);Y(a,a.Jb,this)}}(a)};a.Pg={p:0,N:function(){},update:function(){return function(){}}(a)}}
e.G=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);I(a,"loading "+aa(b)+"...");r(c,!0,null,a,a.Jd)}}}(this),!0}return!1};e.O=function(a,b,c,d){this.a=a;this.bb=b;if(this.s=d)pa(d,b,c,this,this.M),Q(d,b,c,this,this.K);this.I()};e.R=function(a){a&&!this.w&&(this.w=!0)};
e.Jd=function(a,b,c){if(c)I(this,"disk load error ("+c+")");else{c=[];I(this,"mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)I(this,"data error: "+d[0]);else if(this.L[0]){for(b=0;b<d.length;b++){var f,g=d[b],h=g.sectors;if(void 0===(f=g.trackNum)||void 0===h)throw"track "+b+" missing data";f!=b&&s("track "+f+" out of order (expected "+b+")");c=[];var l,m,k;if(f){Oa(c,g,"trackSig");Pa(c,g);Z(c,g,"trackType");for(var n=0;n<h.length;n++){l=
h[n];m=l.sectorData;Z(c,l,"sectorSig");Z(c,l,"sectorNum");Z(c,l,"sectorPages");for(k=0;k<m.length;k++)c.push(m[k]);Oa(c,l,"sectorEndSig")}}else for(l=h[0],m=l.sectorData,Z(c,g,"trackLoad",2),Z(c,l,"sectorPages"),k=0;k<m.length;k++)c.push(m[k]);d[f].Gc=c}this.L[0].Ea=d;I(this,"mount of "+a+" complete")}else I(this,"no available drives")}else I(this,"no tracks: "+a);else I(this,"no data: "+a)}catch(q){I(this,"disk data error: "+(q.message||q))}}};
function Pa(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 Oa(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 Qa(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.Kb:a=a.Ta.p&a.da?a.$:a.Ec;break;case a.Hb:a=a.Ta;break;case a.Lb:a=a.Ua.p&a.da?a.wa:a.Fc;break;case a.Ib:a=a.Ua;break;case a.kd:a=c?a.Og:a.aa;break;case a.Jb:a=a.ub;break;default:a=a.Pg}return a}e.M=function(a,b){void 0!==b&&Qa(this,a-this.bb,!1).N()};e.K=function(a,b){if(void 0!==b){var c=this.s.M(a);Qa(this,a-this.bb,!0).update(c)}};
function La(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.hd||(d|=2),a.$.p&a.Db||(d|=1));a.C!=d&&(a.C=d,a.aa.update())}function Ma(a){0<=a.C&&(a.L[a.C].ha=-1,a.ub.update(255),a.aa.update())}function Na(a){var b=null;if(0<=a.C){var b=a.L[a.C],c=b.Ea[b.U];void 0!==c&&(0<=b.ha&&b.ha<c.Gc.length?(b.ja=100,b=c.Gc[b.ha++],a.ub.update(b),a.aa.update()):(b.ja=10,Ma(a)))}}function Y(a,b,c){a.s.K(b+a.bb,c.p)}
w(function(){for(var a=H(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new Ja(d);G(d,c)}});function $(a,b){y.call(this,"C1PComputer",a);this.H=b}C($);$.prototype.reset=function(a){var b=null,c;for(c in this.H)for(var d=0;d<this.H[c].length;d++){var f=this.H[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.H)if("cpu"!=a)for(var b=0;b<this.H[a].length;b++){var c=this.H[a][b];c&&c.start&&c.start()}};
$.prototype.stop=function(a,b){for(var c in this.H)if("cpu"!=c)for(var d=0;d<this.H[c].length;d++){var f=this.H[c][d];f&&f.stop&&f.stop(a,b)}};$.prototype.G=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.H[b]?a.H[b][0]:null}
function Ra(a){var b=null,c;for(c in a.H)for(var d=0;d<a.H[c].length;d++){var f=a.H[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Ra(a)}}(a));return}"cpu"==c?b=f:f.R&&f.R(!0,a)}}a.I();I(a,"C1Pjs v1.15.3\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.R(!0,a)}
w(function(){for(var a=H(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=F(c),f,g={},h,l=0,m=0,k=0;k<d.modules.length;k++){var n=d.modules[k];if(!k){if("cpu"!=n.type)break;l=n.start;m=n.end;h=Array(m+1-l);for(f=l;f<h.length;f++)h[f]=0}if(f=E(n.refID,d.id)){var q=n.type;void 0===g[q]&&(g[q]=[]);g[q].push(f);f.O&&void 0!==n.start&&f.O(h,n.start,n.end,g.cpu[0])}else{s('no component for <module refid="'+n.refID+'">');return}}if(void 0===h){s('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(f=E("debugger",d.id))g["debugger"]=[f],f.O&&f.O(h,l,m,g.cpu[0]);(f=E("panel",d.id))&&(g.panel=[f]);d=new $(d,g);G(d,c);Ra(d)}});function Sa(a,b,c,d){var f=r(a);if(f[0])throw Error(f[1]);return Ta(f[1],a,b,c,d)}
function Ta(a,b,c,d,f){var g=null;if(a){if(f)for(var h=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=h.exec(a);){var l=g[2],m=r(l),k=m[1];if(m[0]||!k)throw c="unable to resolve XML reference: "+g[0]+" ("+m[0]+")",Error(c);if(m=g[3]){var n=k.match(new RegExp("<"+g[1]+"[^>]*>"));if(n){for(var l=n[0],q,ma=/( [a-z]+=)(['"])(.*?)\2/g;q=ma.exec(m);)l=0>l.indexOf(q[1])?l.replace(">",q[0]+">"):l.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);n[0]!=l&&(k=k.replace(n[0],l))}else throw c="missing <"+g[1]+"> in "+l,
Error(c);}k=k.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],k);h.lastIndex=0}c&&(b&&0>b.indexOf("/")&&(b=window.location.pathname+b),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(b?" url=$2"+b+"$2":"")));if(0===a.indexOf("<"))window.ActiveXObject||"ActiveXObject"in window?(f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*\]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml");else throw Error("unrecognized XML: "+
(255<a.length?a.substr(0,255)+"...":a));}return[a,g]}
window.embedC1P=function(a,b,c){var d=c,f=c="",g=null;try{if(g=window.document.getElementById(a)){d||(d="/versions/c1pjs/1.15.3/components.xsl");var h="<"==b.substr(0,1)?Ta(b,null,a,void 0,!1):Sa(b,a,void 0,!0);c=h[0];var l=h[1];if(l){var h=Sa(d),m=h[1];if(m)if(window.ActiveXObject||"ActiveXObject"in window){var k=l.transformNode(m);k?g.outerHTML=k:f="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var n=new XSLTProcessor;n.importStylesheet(m);
var q=n.transformToFragment(l,window.document);q?g.parentNode.replaceChild(q,g):f="transformToFragment failed"}else f="unable to transform XML: unsupported browser";else f="failed to load XSL file: "+d}else f="failed to load XML file: "+b}else f="failed to find machine element: "+a}catch(ma){f=ma.message}f&&g&&(a=H(g,"machine-warning"),a[0]&&(a[0].innerHTML="Error: "+ca(f)));return f||c};window.enableEvents=function(a){da=a};window.sendEvent=function(a){u[a]&&x(u[a])};})();//@ sourceMappingURL=/tmp/c1pjs/1.15.3/c1p.map