This commit is contained in:
Jeff Parsons 2015-01-07 20:48:25 -08:00 committed by jeffpar
commit 7b160f296b
3 changed files with 78 additions and 80 deletions

View file

@ -87,9 +87,7 @@ usr.binaryInsert = function(a, v, fnCompare) {
*
* @return {number} the current time, in milliseconds
*/
usr.getTime = function() {
return Date.now() || +new Date();
};
usr.getTime = Date.now || function() { return +new Date(); };
/**
* getTimestamp()

View file

@ -1,5 +1,5 @@
(function(){var f;function aa(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||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 n(a){return aa(a,2)}function p(a){return aa(a,4)}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}var ca={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function da(a){return a.replace(/[&<>"']/g,function(a){return ca[a]})}function q(){return Date.now()||+new Date}
function da(a){return a.replace(/[&<>"']/g,function(a){return ca[a]})}var q=Date.now||function(){return+new Date};
function s(a,b,c){var d;d=!0;var e=0,g=null,h=ba(a),k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(k.onreadystatechange=function(){4===k.readyState&&(g=k.responseText,200==k.status||!k.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),c&&(b?c.call(b,h,g,e,void 0):c(h,g,e,void 0)))});k.open("GET",a,d);k.send();d||(g=k.responseText,200!=k.status&&(e=k.status||-1),c&&(b?c.call(b,h,g,e,void 0):c(h,g,e,void 0)))}
function t(a){window&&window.alert(a)}function u(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}function ea(a,b,c){function d(){a-=1;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function fa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}var v={init:[],show:[],exit:[]},ga=!1,w=!0;function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){v.init.push(a)}

View file

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