167 lines
71 KiB
JavaScript
167 lines
71 KiB
JavaScript
(function(){var f;function aa(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 n(a){return aa(a,2)}function q(a){return aa(a,4)}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));return b}var ca={"&":"&","<":"<",">":">",'"':""","'":"'"};function da(a){return a.replace(/[&<>"']/g,function(a){return ca[a]})}function r(){return Date.now()||+new Date}
|
|
function t(a,b,c,d,e){b=!!b;var g=0,h=null,m=ba(a),k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(k.onreadystatechange=function(){4===k.readyState&&(k.onreadystatechange=void 0,h=k.responseText,200!=k.status&&(g=k.status||-1),d&&e&&e.call(d,m,h,g,void 0))});if(c){var l="",p;for(p in c)c.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(c[p]));l=l.replace(/%20/g,"+");k.open("POST",a,b);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");
|
|
k.send(l)}else k.open("GET",a,b),k.send();a=[];b||(h=k.responseText,200!=k.status&&(g=k.status||-1),d&&e&&e.call(d,m,h,g,void 0),a=[g,h]);return a}function u(a){window?window.alert(a):console.log(a)}function v(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 w={init:[],show:[],exit:[]},ga=!0;function ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){w.init.push(a)}
|
|
function y(a){if(ga)for(var b=0;b<a.length;b++)a[b]()}ha("onload",function(){y(w.init)});ha("onpageshow",function(){y(w.show)});ha(v("Opera")||v("iOS")?"onunload":"onbeforeunload",function(){y(w.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.Gd=this.id.substr(0,b),this.Fd=this.id.substr(b+1)):this.Fd=this.id;this[a]=c;this.wc=null;this.jb=this.Sa=this.uc=this.Tb=!1;this.r={};this.m=null;ia(this);A[A.length]=this}var ja=void 0;if(window){ja||(ja=window.location.search.substr(1));for(var ka,la=/\+/g,ma=/([^&=]+)=?([^&]*)/g;ka=ma.exec(ja);)ka[1].replace(la," "),ka[2].replace(la," ")}
|
|
function na(){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 B(a){a.prototype=na()}var A=[];function C(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 D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){u(c.message+" ("+a+")")}return b}
|
|
function E(a,b){var c,d;d=F(b.parentNode,"c1pjs-control");for(c=0;c<d.length;c++){var e,g;g=d[c].childNodes;for(e=0;e<g.length;e++){var h=g[e];if(h.nodeType===window.document.ELEMENT_NODE){var m=h.getAttribute("class");if(m){var k,l;l=m.split(" ");for(k=0;k<l.length;k++)switch(m=l[k],m){case "c1pjs-input":case "c1pjs-output":(l=D(h))&&l.binding&&a.I(m,l.type,l.binding,h),l=[]}}}}}}
|
|
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
|
z.prototype={toString:function(){return this.name?this.name:this.id||this.type},I:function(a,b,c,d){switch(c){case "clear":return this.r[c]||(this.r[c]=d,d.onclick=function(a){return function(){a.r.print&&(a.r.print.value="")}}(this)),!0;case "print":return this.r[c]||(this.sc=this.r[c]=d,d.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),this.Xb=function(a,
|
|
b,c){this.i(a,"notice",c)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Fd+": "+a)},Xb:function(a,b){b||u(a)},P:function(a){!this.jb&&(this.Tb=!1!==a)&&(this.name&&this.log("ready"),a=this.wc,this.wc=null,a&&a())}};function G(a,b){if(a.uc)return a.Sa&&(a.Sa=!1),a.uc=!1;if(a.jb)return a.i(a.toString()+" error"),!1;a.Sa=b;return a.Sa}function H(a,b){a.Sa&&(b?a.uc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.Sa}
|
|
function I(a,b){b&&(a.Tb?b():a.wc=b);return a.Tb}function J(a,b){a.jb=!0;a.Xb("Fatal error: "+b)}function ia(a){var b=1;a.Gd&&(a=a.Gd.match(/\d+/),null!==a&&(b=parseInt(a[0],10)));return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function K(a){z.call(this,"C1PPanel",a);this.C=!1}B(K);K.prototype.I=function(a,b,c,d){return this.N&&this.N.I(a,b,c,d)||this.l&&this.l.I(a,b,c,d)||this.G&&this.G.I(a,b,c,d)||this.m&&this.m.I(a,b,c,d)?!0:z.prototype.I.call(this,a,b,c,d)};
|
|
K.prototype.ba=function(a,b){a&&!this.C&&(this.C=!0,this.N=b,this.l=L(b,"cpu"),this.G=L(b,"keyboard"),this.m=L(b,"debugger"),oa())};function oa(){for(var a=!1,b=F(window.document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=C(e.id);g||(a=!0,g=new K(e));E(g,d);a&&g.P()}}x(oa);
|
|
function pa(a){z.call(this,"C1PCPU",a);qa(this);this.ga=this.C=!1;this.Cd=a.autoStart;this.Hb=0;this.qd=1;this.Ma=2;this.speed=this.Hb;this.pb=1E6;this.Cc=this.Ec=30;this.Bc=5;this.Qf=1;this.mb=8;this.wd=["Slow","Fast","Max"];this.Df=["("+this.Qf+"Mhz)","(up to "+this.mb+"Mhz)","(unlimited)"];this.Ca=[];this.sa=[];this.nc=65536;this.oc=0;this.Lb=65536;this.Mb=0;this.qe=128;this.re=64;this.me=16;this.oe=8;this.pe=4;this.se=2;this.ne=1;this.zf=65532;this.Gb=32;this.gc=2;this.wf=0;this.pd=1;this.t=[this.Dg,
|
|
this.Xh,this.Oi,this.j,this.j,this.Zh,this.tg,this.j,this.bi,this.Wh,this.sg,this.j,this.j,this.Th,this.qg,this.j,this.Cg,this.Yh,this.j,this.j,this.j,this.$h,this.ug,this.j,this.Gg,this.Vh,this.j,this.j,this.j,this.Uh,this.rg,this.j,this.uh,this.mg,this.j,this.j,this.zg,this.og,this.hi,this.j,this.di,this.lg,this.gi,this.j,this.yg,this.ig,this.ei,this.j,this.Ag,this.ng,this.j,this.j,this.j,this.pg,this.ii,this.j,this.yi,this.kg,this.j,this.j,this.j,this.jg,this.fi,this.j,this.oi,this.ih,this.j,this.j,
|
|
this.j,this.kh,this.Qh,this.j,this.ai,this.hh,this.Ph,this.j,this.th,this.eh,this.Nh,this.j,this.Eg,this.jh,this.j,this.j,this.j,this.lh,this.Rh,this.j,this.Ig,this.gh,this.j,this.j,this.j,this.fh,this.Oh,this.j,this.pi,this.Vd,this.j,this.j,this.j,this.Xd,this.mi,this.j,this.ci,this.Ud,this.li,this.j,this.sh,this.Rd,this.ji,this.j,this.Fg,this.Wd,this.j,this.j,this.j,this.Yd,this.ni,this.j,this.Ai,this.Td,this.j,this.j,this.j,this.Sd,this.ki,this.j,this.j,this.Ei,this.j,this.j,this.Mi,this.Gi,this.Ji,
|
|
this.j,this.dh,this.j,this.Si,this.j,this.Li,this.Bi,this.Ii,this.j,this.vg,this.Fi,this.j,this.j,this.Ni,this.Hi,this.Ki,this.j,this.Ui,this.Di,this.Ti,this.j,this.j,this.Ci,this.j,this.j,this.Kh,this.zh,this.Fh,this.j,this.Lh,this.Bh,this.Gh,this.j,this.Qi,this.yh,this.Pi,this.j,this.Ih,this.vh,this.Dh,this.j,this.wg,this.Ah,this.j,this.j,this.Mh,this.Ch,this.Hh,this.j,this.Jg,this.xh,this.Ri,this.j,this.Jh,this.wh,this.Eh,this.j,this.Wg,this.Og,this.j,this.j,this.Xg,this.Qg,this.$g,this.j,this.rh,
|
|
this.Ng,this.bh,this.j,this.Vg,this.Kg,this.Yg,this.j,this.Bg,this.Pg,this.j,this.j,this.j,this.Rg,this.ah,this.j,this.Hg,this.Mg,this.j,this.j,this.j,this.Lg,this.Zg,this.j,this.Tg,this.ce,this.j,this.j,this.Ug,this.ee,this.oh,this.j,this.qh,this.be,this.Sh,this.j,this.Sg,this.Zd,this.mh,this.j,this.xg,this.de,this.j,this.j,this.j,this.fe,this.ph,this.j,this.zi,this.ae,this.j,this.j,this.j,this.$d,this.nh,this.j];this.Cf=[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]}B(pa);f=pa.prototype;
|
|
f.reset=function(a){this.ga&&this.T();qa(this);var b=this.zf;this.d=this.a[b]|this.a[b+1]<<8;this.jb=!1;this.m?this.m.reset():a&&(!0===this.Cd||null===this.Cd&&!this.m&&void 0===this.r.run)&&this.ya()};
|
|
f.I=function(a,b,c,d){a=!1;switch(c){case "run":this.r[c]=d;d.onclick=function(a){return function(){a.ga?a.T():a.ya()}}(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.r[c]=d;a=!0;break;case "setSpeed":this.r[c]=d,d.onclick=function(a){return function(){M(a,a.speed>=a.Ma?a.Hb:a.speed+1,!0)}}(this),a=!0}return a};
|
|
f.V=function(a,b,c){this.a=a;this.$=b;this.rc=c-b+1;this.Ya=this.$+this.rc;this.$?u("unsupported CPU address buffer offset ("+this.$+")"):this.P()};f.ba=function(a,b){if(a&&!this.C){this.N=b;(this.m=L(b,"debugger"))&&this.m.Nf();var c=L(b,"video");c&&(this.tc=function(a){return function(){ra(a)}}(c),this.W=function(a){return function(){a.W()}}(c));this.C=!0;this.reset(!0);this.update()}};function sa(a,b,c,d,e){0>ta(a.Ca,b,c,d,e)&&(a.nc>b&&(a.nc=b),a.oc<c&&(a.oc=c),a.Ca.push([b,c,d,e]))}
|
|
function ua(a,b,c){for(var d=0;d<a.Ca.length;d++)b>=a.Ca[d][0]&&b<=a.Ca[d][1]&&a.Ca[d][3].call(a.Ca[d][2],b,c)}function N(a,b,c,d,e){0>ta(a.sa,b,c,d,e)&&(a.Lb>b&&(a.Lb=b),a.Mb<c&&(a.Mb=c),a.sa.push([b,c,d,e]))}function va(a,b,c){for(var d=0;d<a.sa.length;d++)b>=a.sa[d][0]&&b<=a.sa[d][1]&&a.sa[d][3].call(a.sa[d][2],b,c)}function ta(a,b,c,d,e){for(var g=0;g<a.length;g++)if(a[g][0]==b&&a[g][1]==c&&a[g][2]==d&&a[g][3]==e)return g;return-1}
|
|
function M(a,b,c){void 0!==b&&(a.speed=b,a.r.setSpeed&&(a.r.setSpeed.innerHTML=a.wd[2<=b?0:b+1]),a.i("running at "+a.wd[b].toLowerCase()+" speed "+a.Df[b]),c&&a.W());a.Xa=0;a.Hd=r();xa(a)}f.tc=function(){};f.W=function(){};function O(a,b,c,d){void 0!==a.r[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.r[b].innerHTML=c.slice(c.length-d).toUpperCase())}
|
|
function ya(a){O(a,"A",a.e,2);O(a,"X",a.n,2);O(a,"Y",a.p,2);var b=za(a);O(a,"C",b&a.ne?1:0);O(a,"Z",b&a.se?1:0);O(a,"I",b&a.pe?1:0);O(a,"D",b&a.oe?1:0);O(a,"B",b&a.me?1:0);O(a,"V",b&a.re?1:0);O(a,"N",b&a.qe?1:0);O(a,"S",a.q,4);O(a,"PC",a.d,4);a.r.speed&&a.ua&&(a.r.speed.innerHTML=a.ua.toFixed(1)+"Mhz")}
|
|
function xa(a,b){var c=a.Ec;c<a.Cc&&(c=a.Cc);c<a.Bc&&(c=a.Bc);var d=1;b&&a.speed>a.Hb&&a.ua&&(d=a.ua);d>a.mb&&a.speed<a.Ma&&(d=a.mb);a.Sf=Math.round(1E3/a.Ec);a.Wb=Math.floor(a.pb/c*d);a.xc=Math.floor(a.pb/a.Ec*d);a.Jd=Math.floor(a.pb/a.Cc*d);a.Id=Math.floor(a.pb/a.Bc*d);b||(a.Va=a.xc,a.ob=a.Jd,a.nb=a.Id);a.Ac=0}
|
|
function Aa(a){var b=r(),c=a.Sf;a.qb&&(c=Math.round(c*a.qb/a.xc));c-=b-a.Vf;if(b-=a.Hd)a.ua=Math.round(a.Xa/(100*b))/10,864E5<=b&&M(a);0>c?c=0:a.speed==a.qd?a.ua<=a.mb&&(c=0):a.speed==a.Ma&&(c=0);a.Ac+=a.qb;return c}
|
|
f.ya=function(){if(G(this,!0)){this.ga||(M(this),this.N&&this.N.start(),this.ga=!0,this.r.run&&(this.r.run.innerHTML="Halt"),this.W());this.Ac>=this.pb&&xa(this,!0);this.qb=0;this.Vf=r();try{do{this.step(this.Wb);var a=this.va-this.F;this.Xa+=a;this.qb+=a;this.va=this.F=0;this.ob-=this.Wb;0>=this.ob&&(this.ob+=this.Jd,this.tc());this.nb-=this.Wb;0>=this.nb&&(this.nb+=this.Id,ya(this));this.Va-=this.Wb;if(0>=this.Va){this.Va+=this.xc;break}}while(this.ga)}catch(b){this.T();this.update();G(this,!1);
|
|
J(this,b.message||b);return}setTimeout(function(a){return function(){a.ya()}}(this),Aa(this))}else this.update(),this.N&&this.N.stop(this.Hd,this.Xa)};
|
|
f.step=function(a){var b=!0;this.b=this.h=-1;var c;if(c=a)if(c=this.m)c=this.m,c=0<c.ra.length||0<c.Ba.length||0<c.Ea.length;this.va=this.F=a;do{a=this.a[this.d];var d;if(d=c){d=this.m;var e=a,g=!1;Ba(d,this.d,d.ra,"exec")?g=!0:(d.Pa++,d.fa[e][1]++,d.Da[d.kb++]=d.l.d,d.kb>=d.Da.length&&(d.kb=0));d=!!g}if(d){b=void 0;this.T();break}this.d++;this.t[a].call(this);if(0<=this.b){this.b>=this.nc&&this.b<=this.oc&&ua(this,this.b,this.d);if(d=c)d=this.m,e=!1,Ba(d,this.b,d.Ba,"read")&&(e=!0),d=!!e;if(d){b=
|
|
!1;this.T();break}this.b=-1}else if(0<=this.h){this.h>=this.Lb&&this.h<=this.Mb&&va(this,this.h,this.d);if(d=c){d=this.m;var e=this.h,g=this.a[this.h],h=!1;(g&255)!=g&&(d.i("invalid value at "+q(e)+": "+g),h=!0);Ba(d,e,d.Ea,"write")&&(h=!0);d=!!h}if(d){b=!1;this.T();break}this.h=-1}this.F-=this.Cf[a]}while(0<this.F);return b};function Ca(a){a.Va=0;a.va-=a.F;a.F=0}f.T=function(){H(this,!0);this.va-=this.F;this.F=0;this.ga&&(this.ga=!1,this.r.run&&(this.r.run.innerHTML="Run"))};
|
|
f.update=function(){this.tc();ya(this)};function Da(a){return a.ga?a.Xa+a.va-a.F:0}f.H=function(a){return this.a[a]};f.O=function(a,b){this.a[a]=b};function za(a){var b=a.c&256?1:0,b=b|(a.g&255?0:2),b=b|((a.u&255^a.v^a.u>>1)&128?64:0),b=b|(a.f&128?128:0);return a.w&60|b}
|
|
function Ea(a){a.w|=8;a.t[97]=a.eg;a.t[101]=a.gg;a.t[105]=a.dg;a.t[109]=a.ag;a.t[113]=a.fg;a.t[117]=a.hg;a.t[121]=a.cg;a.t[125]=a.bg;a.t[225]=a.ui;a.t[229]=a.wi;a.t[233]=a.ti;a.t[237]=a.qi;a.t[241]=a.vi;a.t[245]=a.xi;a.t[249]=a.si;a.t[253]=a.ri}function Fa(a){a.w&=-9;a.t[97]=a.Vd;a.t[101]=a.Xd;a.t[105]=a.Ud;a.t[109]=a.Rd;a.t[113]=a.Wd;a.t[117]=a.Yd;a.t[121]=a.Td;a.t[125]=a.Sd;a.t[225]=a.ce;a.t[229]=a.ee;a.t[233]=a.be;a.t[237]=a.Zd;a.t[241]=a.de;a.t[245]=a.fe;a.t[249]=a.ae;a.t[253]=a.$d}
|
|
function P(a,b,c){var d=a.c&256?1:0,e=(b&15)+(c&15)+d;10<=e&&(e=e+6&15|16);e+=(b&240)+(c&240);a.v=b^c;a.u=e;a.f=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.g=b+c+d&255;a.F--;return e&255}function Q(a,b,c){var d=a.c&256?0:1,e=(b&15)-(c&15)-d;0>e&&(e=(e-6&15)-16);e+=(b&240)-(c&240);0>e&&(e-=96);a.f=a.g=(a.c=b-c-d)&255;a.v=b^c;a.u=a.c;a.c^=256;a.F--;return e&255}function qa(a){a.e=0;a.n=0;a.p=0;a.q=256;a.w=0;a.f=0;a.g=0;a.v=0;a.u=0;a.c=0;a.d=0;a.b=-1;a.h=-1;a.ua=0;a.Xa=a.va=a.F=0}
|
|
f.Dg=function(){this.d++;this.a[this.q--]=this.d>>8;this.q|=256;this.a[this.q--]=this.d&255;this.q|=256;this.w|=16;this.w=za(this);this.a[this.q--]=this.w;this.q|=256;this.w&=239;this.b=65534;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.Xh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e|=this.a[this.b]};f.Zh=function(){this.b=this.a[this.d++];this.f=this.g=this.e|=this.a[this.b]};
|
|
f.tg=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};f.bi=function(){this.w=za(this);this.a[this.q--]=this.w;this.q|=256};f.Wh=function(){this.b=this.d++;this.f=this.g=this.e|=this.a[this.b]};f.sg=function(){this.c=this.e<<1;this.f=this.g=this.e=this.c&255};f.Th=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e|=this.a[this.b]};
|
|
f.qg=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};f.Cg=function(){this.d+=(this.f&128?0:(this.F--,this.a[this.d]<<24>>24))+1};f.Yh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e|=this.a[this.b]};f.$h=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e|=this.a[this.b]};
|
|
f.ug=function(){this.h=this.a[this.d++]+this.n&255;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};f.Gg=function(){this.c=0};f.Vh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e|=this.a[this.b]};f.Uh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e|=this.a[this.b]};f.rg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.c=this.a[this.h]<<1;this.f=this.g=this.a[this.h]=this.c&255};
|
|
f.uh=function(){this.b=this.d++;this.a[this.q--]=this.d>>8;this.q|=256;this.a[this.q--]=this.d&255;this.q|=256;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.mg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e&=this.a[this.b]};f.zg=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.u=0;this.v=this.a[this.b]&64?128:0};f.og=function(){this.b=this.a[this.d++];this.f=this.g=this.e&=this.a[this.b]};
|
|
f.hi=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};f.di=function(){this.q=this.q+1&255|256;this.w=this.a[this.q];this.c=this.w&1?256:0;this.g=this.w&2?0:1;this.f=this.w&128;this.u=0;this.v=this.w&64?128:0};f.lg=function(){this.b=this.d++;this.f=this.g=this.e&=this.a[this.b]};
|
|
f.gi=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};f.yg=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.u=0;this.v=this.a[this.b]&64?128:0};f.ig=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e&=this.a[this.b]};
|
|
f.ei=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};f.Ag=function(){this.d+=(this.f&128?(this.F--,this.a[this.d]<<24>>24):0)+1};f.ng=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e&=this.a[this.b]};f.pg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e&=this.a[this.b]};
|
|
f.ii=function(){this.h=this.a[this.d++]+this.n&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};f.yi=function(){this.c=256};f.kg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e&=this.a[this.b]};f.jg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e&=this.a[this.b]};
|
|
f.fi=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;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};f.oi=function(){this.q=this.q+1&255|256;this.w=this.a[this.q];this.c=this.w&1?256:0;this.g=this.w&2?0:1;this.f=this.w&128;this.u=0;this.v=this.w&64?128:0;this.q=this.q+2&255|256;this.d=this.a[this.q-1|256]|this.a[this.q]<<8};
|
|
f.ih=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e^=this.a[this.b]};f.kh=function(){this.b=this.a[this.d++];this.f=this.g=this.e^=this.a[this.b]};f.Qh=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};f.ai=function(){this.a[this.q--]=this.e;this.q|=256};f.hh=function(){this.b=this.d++;this.f=this.g=this.e^=this.a[this.b]};
|
|
f.Ph=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};f.th=function(){this.b=this.d;this.d=this.a[this.b]|this.a[this.b+1]<<8};f.eh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e^=this.a[this.b]};f.Nh=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};
|
|
f.Eg=function(){this.d+=((this.u&255^this.v^this.u>>1)&128?0:(this.F--,this.a[this.d]<<24>>24))+1};f.jh=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e^=this.a[this.b]};f.lh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e^=this.a[this.b]};f.Rh=function(){this.h=this.a[this.d++]+this.n&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};
|
|
f.Ig=function(){this.w&=251};f.gh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e^=this.a[this.b]};f.fh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e^=this.a[this.b]};f.Oh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;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};
|
|
f.pi=function(){this.q=this.q+2&255|256;this.d=(this.a[this.q-1|256]|this.a[this.q]<<8)+1};f.Vd=function(){this.b=this.a[this.d++]+this.n&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.u=this.c;this.f=this.g=this.e=this.c&255};f.eg=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=P(this,this.e,this.a[this.b])};
|
|
f.Xd=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.u=this.c;this.f=this.g=this.e=this.c&255};f.gg=function(){this.b=this.a[this.d++];this.e=P(this,this.e,this.a[this.b])};f.mi=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};f.ci=function(){this.q=this.q+1&255|256;this.f=this.g=this.e=this.a[this.q]};
|
|
f.Ud=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.u=this.c;this.f=this.g=this.e=this.c&255};f.dg=function(){this.b=this.d++;this.e=P(this,this.e,this.a[this.b])};f.li=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};f.sh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.d=this.a[this.b]|this.a[this.b+1]<<8};
|
|
f.Rd=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.u=this.c;this.f=this.g=this.e=this.c&255};f.ag=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=P(this,this.e,this.a[this.b])};f.ji=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};
|
|
f.Fg=function(){this.d+=((this.u&255^this.v^this.u>>1)&128?(this.F--,this.a[this.d]<<24>>24):0)+1};f.Wd=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.fg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.e=P(this,this.e,this.a[this.b])};
|
|
f.Yd=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.hg=function(){this.b=this.a[this.d++]+this.n&255;this.e=P(this,this.e,this.a[this.b])};f.ni=function(){this.h=this.a[this.d++]+this.n&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};f.Ai=function(){this.w|=4};
|
|
f.Td=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.c=this.e+this.a[this.b]+(this.c&256?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};f.cg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.e=P(this,this.e,this.a[this.b])};f.Sd=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?1:0);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255};
|
|
f.bg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=P(this,this.e,this.a[this.b])};f.ki=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;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};f.Ei=function(){this.h=this.a[this.d++]+this.n&255;this.h=this.a[this.h]|this.a[this.h+1]<<8;this.a[this.h]=this.e};f.Mi=function(){this.h=this.a[this.d++];this.a[this.h]=this.p};
|
|
f.Gi=function(){this.h=this.a[this.d++];this.a[this.h]=this.e};f.Ji=function(){this.h=this.a[this.d++];this.a[this.h]=this.n};f.dh=function(){this.f=this.g=this.p=this.p-1&255};f.Si=function(){this.f=this.g=this.e=this.n};f.Li=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.p};f.Bi=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.e};f.Ii=function(){this.h=this.a[this.d++]|this.a[this.d++]<<8;this.a[this.h]=this.n};
|
|
f.vg=function(){this.d+=(this.c&256?0:(this.F--,this.a[this.d]<<24>>24))+1};f.Fi=function(){this.h=this.a[this.d++];this.h=(this.a[this.h]|this.a[this.h+1]<<8)+this.p;this.a[this.h]=this.e};f.Ni=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.p};f.Hi=function(){this.h=this.a[this.d++]+this.n&255;this.a[this.h]=this.e};f.Ki=function(){this.h=this.a[this.d++]+this.p&255;this.a[this.h]=this.n};f.Ui=function(){this.f=this.g=this.e=this.p};
|
|
f.Di=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.a[this.h]=this.e};f.Ti=function(){this.q=this.n|256};f.Ci=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.a[this.h]=this.e};f.Kh=function(){this.b=this.d++;this.f=this.g=this.p=this.a[this.b]};f.zh=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.f=this.g=this.e=this.a[this.b]};f.Fh=function(){this.b=this.d++;this.f=this.g=this.n=this.a[this.b]};
|
|
f.Lh=function(){this.b=this.a[this.d++];this.f=this.g=this.p=this.a[this.b]};f.Bh=function(){this.b=this.a[this.d++];this.f=this.g=this.e=this.a[this.b]};f.Gh=function(){this.b=this.a[this.d++];this.f=this.g=this.n=this.a[this.b]};f.Qi=function(){this.f=this.g=this.p=this.e};f.yh=function(){this.b=this.d++;this.f=this.g=this.e=this.a[this.b]};f.Pi=function(){this.f=this.g=this.n=this.e};f.Ih=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.p=this.a[this.b]};
|
|
f.vh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.e=this.a[this.b]};f.Dh=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.n=this.a[this.b]};f.wg=function(){this.d+=(this.c&256?(this.F--,this.a[this.d]<<24>>24):0)+1};f.Ah=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.e=this.a[this.b]};f.Mh=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.p=this.a[this.b]};
|
|
f.Ch=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.e=this.a[this.b]};f.Hh=function(){this.b=this.a[this.d++]+this.p&255;this.f=this.g=this.n=this.a[this.b]};f.Jg=function(){this.v=this.u=0};f.xh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.e=this.a[this.b]};f.Ri=function(){this.f=this.g=this.n=this.q&255};f.Jh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.p=this.a[this.b]};
|
|
f.wh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.e=this.a[this.b]};f.Eh=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.n=this.a[this.b]};f.Wg=function(){this.b=this.d++;this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Og=function(){this.b=this.a[this.d++]+this.n&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};
|
|
f.Xg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Qg=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.$g=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.rh=function(){this.f=this.g=this.p=this.p+1&255};f.Ng=function(){this.b=this.d++;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.bh=function(){this.f=this.g=this.n=this.n-1&255};
|
|
f.Vg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.p-this.a[this.b];this.c^=256};f.Kg=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};f.Yg=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};f.Bg=function(){this.d+=(this.g&255?(this.F--,this.a[this.d]<<24>>24):0)+1};
|
|
f.Pg=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Rg=function(){this.b=this.a[this.d++]+this.n&255;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.ah=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Hg=function(){Fa(this)};
|
|
f.Mg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Lg=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.c=this.e-this.a[this.b];this.c^=256};f.Zg=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]-1&255};f.Tg=function(){this.b=this.d++;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};
|
|
f.ce=function(){this.b=this.a[this.d++]+this.n&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.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ui=function(){this.b=this.a[this.d++]+this.n&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.e=Q(this,this.e,this.a[this.b])};f.Ug=function(){this.b=this.a[this.d++];this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};
|
|
f.ee=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.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.wi=function(){this.b=this.a[this.d++];this.e=Q(this,this.e,this.a[this.b])};f.oh=function(){this.h=this.a[this.d++];this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.qh=function(){this.f=this.g=this.n=this.n+1&255};
|
|
f.be=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.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ti=function(){this.b=this.d++;this.e=Q(this,this.e,this.a[this.b])};f.Sh=function(){};f.Sg=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.f=this.g=this.c=this.n-this.a[this.b];this.c^=256};
|
|
f.Zd=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.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.qi=function(){this.b=this.a[this.d++]|this.a[this.d++]<<8;this.e=Q(this,this.e,this.a[this.b])};f.mh=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};f.xg=function(){this.d+=(this.g&255?0:(this.F--,this.a[this.d]<<24>>24))+1};
|
|
f.de=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.vi=function(){this.b=this.a[this.d++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.p;this.e=Q(this,this.e,this.a[this.b])};
|
|
f.fe=function(){this.b=this.a[this.d++]+this.n&255;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.xi=function(){this.b=this.a[this.d++]+this.n&255;this.e=Q(this,this.e,this.a[this.b])};f.ph=function(){this.h=this.a[this.d++]+this.n&255;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};f.zi=function(){Ea(this)};
|
|
f.ae=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.c=this.e-this.a[this.b]-(this.c&256?0:1);this.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.si=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.p;this.e=Q(this,this.e,this.a[this.b])};
|
|
f.$d=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.v=this.e^this.a[this.b];this.u=this.c;this.f=this.g=this.e=this.c&255;this.c^=256};f.ri=function(){this.b=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.e=Q(this,this.e,this.a[this.b])};f.nh=function(){this.h=(this.a[this.d++]|this.a[this.d++]<<8)+this.n;this.f=this.g=this.a[this.h]=this.a[this.h]+1&255};
|
|
f.Oi=function(){var a;a=this.a[this.d++];switch(a){case this.wf:this.i("HALT");this.T();break;case this.pd: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,n(this.e)).replace(/%X/g,n(this.n)).replace(/%Y/g,n(this.p));this.i(b);Ca(this);break;default:this.d-=2,this.i("undefined opSim: "+n(a)+" at "+q(this.d)),this.T()}};f.j=function(){var a=this.a[--this.d];this.i("undefined opcode: "+n(a)+" at "+q(this.d));this.T()};
|
|
x(function(){for(var a=F(window.document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new pa(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.ta=this.a=null;this.Qa=a.size;if(this.tb=a.image){a=this.tb;var b;b=this.tb;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.tb);t(a,!0,null,this,this.If)}}B(R);
|
|
R.prototype.V=function(a,b,c,d){this.a=a;this.Gc=b;a=c-b+1;this.Qa||(this.Qa=a);a!=this.Qa?J(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.Qa)+")"):(d&&(this.l=d,N(d,b,c,this,this.O)),Ga(this))};R.prototype.ba=function(a,b){a&&!this.C&&(this.C=!0,this.m=L(b,"debugger"))};R.prototype.O=function(a,b){if(void 0!==b){this.m&&S(this.m,this,a,b,this.m.dc,!0);var c=a-this.Gc;this.a[this.Gc+c]=this.ta?this.ta[c]:0}};
|
|
R.prototype.If=function(a,b,c){if(c)this.i("ROM load error ("+c+")");else{if("["==b[0])try{this.ta=eval("("+b+")")}catch(d){this.i("ROM data error: "+(d.message||d));return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.ta=Array(a.length),b=0;b<a.length;b++)this.ta[b]=parseInt(a[b],16);Ga(this)}};
|
|
function Ga(a){if(!I(a))if(!a.tb)a.P();else if(a.ta&&a.a){var b=a.ta.length;if(b!=a.Qa)J(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.Qa)+")");else{for(var c=0;c<b;c++)a.a[a.Gc+c]=a.ta[c];a.P()}}}x(function(){for(var a=F(window.document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ha(a){z.call(this,"C1PRAM",a)}B(Ha);Ha.prototype.V=function(a){this.a=a;this.P()};
|
|
x(function(){for(var a=F(window.document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ha(d);E(d,c)}});
|
|
function Ia(a){z.call(this,"C1PKeyboard",a);this.C=!1;this.yc=a.model;this.Qc=8;this.Ge=9;this.Ee=10;this.De=13;this.Fe=16;this.Ce=17;this.ze=18;this.Ae=20;this.Rc=27;this.Be=91;this.we=this.Qc;this.xe=this.Ee;this.te=this.De;this.Lc=this.Rc;this.S=224;this.o=this.Fe+this.S;this.zb=this.Ce+this.S;this.cc=this.ze+this.S;this.Mc=this.Ae+this.S;this.Kc=0+this.S;this.ue=3;this.ve=15;this.yb=1;this.xb=2;this.wb=4;this.$a=8;this.vb=64;this.bc=this.xb|this.wb|this.vb;this.od=0;this.uf=1;this.tf=2;this.vf=
|
|
3;this.sf=4;this.Wf=8192;this.Tf=250;this.Uf=100;this.Rf=300;this.Na=[];this.Na["break"]=this.Kc;this.Na.esc=this.Lc;this.Na["ctrl-c"]=this.ue;this.Na["ctrl-o"]=this.ve;this.k=[];this.k[49]=30464;this.k[33]=30464+this.o;this.k[50]=30208;this.k[34]=30208+this.o;this.k[51]=29952;this.k[35]=29952+this.o;this.k[52]=29696;this.k[36]=29696+this.o;this.k[53]=29440;this.k[37]=29440+this.o;this.k[54]=29184;this.k[38]=29184+this.o;this.k[55]=28928;this.k[39]=28928+this.o;this.k[56]=26368;this.k[40]=26368+this.o;
|
|
this.k[57]=26112;this.k[41]=26112+this.o;this.k[48]=25856;this.k[58]=25600;this.k[42]=25600+this.o;this.k[45]=25344;this.k[61]=25344+this.o;this.k[46]=22272;this.k[62]=22272+this.o;this.k[108]=22016;this.k[76]=22016+this.o;this.k[92]=22016+this.o;this.k[111]=21760;this.k[79]=21760+this.o;this.k[this.we]=21760+this.o;this.k[this.xe]=21504;this.k[this.te]=21248;this.k[119]=18176;this.k[87]=18176+this.o;this.k[101]=17920;this.k[69]=17920+this.o;this.k[114]=17664;this.k[82]=17664+this.o;this.k[116]=17408;
|
|
this.k[84]=17408+this.o;this.k[121]=17152;this.k[89]=17152+this.o;this.k[117]=16896;this.k[85]=16896+this.o;this.k[105]=16640;this.k[73]=16640+this.o;this.k[115]=14080;this.k[83]=14080+this.o;this.k[100]=13824;this.k[68]=13824+this.o;this.k[102]=13568;this.k[70]=13568+this.o;this.k[103]=13312;this.k[71]=13312+this.o;this.k[104]=13056;this.k[72]=13056+this.o;this.k[106]=12800;this.k[74]=12800+this.o;this.k[107]=12544;this.k[75]=12544+this.o;this.k[91]=12544+this.o;this.k[120]=9984;this.k[88]=9984+
|
|
this.o;this.k[99]=9728;this.k[67]=9728+this.o;this.k[118]=9472;this.k[86]=9472+this.o;this.k[98]=9216;this.k[66]=9216+this.o;this.k[110]=8960;this.k[78]=8960+this.o;this.k[94]=8960+this.o;this.k[109]=8704;this.k[77]=8704+this.o;this.k[93]=8704+this.o;this.k[44]=8448;this.k[60]=8448+this.o;this.k[113]=5888;this.k[81]=5888+this.o;this.k[97]=5632;this.k[65]=5632+this.o;this.k[122]=5376;this.k[90]=5376+this.o;this.k[32]=5120;this.k[47]=4864;this.k[63]=4864+this.o;this.k[59]=4608;this.k[43]=4608+this.o;
|
|
this.k[112]=4352;this.k[80]=4352+this.o;this.k[64]=4352+this.o;this.k[this.zb]=1536;this.k[this.Lc]=1280;this.k[this.o]=512;this.k[this.cc]=256;this.k[this.Mc]=0;this.reset()}B(Ia);f=Ia.prototype;f.reset=function(){this.ub(this.yc);this.A=this.yb;this.yd=0;this.M=[this.yb,0,0,0,0,0,0,0];this.kc=[];if(this.da)for(var a in this.da)isNaN(a)||this.da[a]&&clearTimeout(this.da[a]);this.da=[];this.ge=this.xa=0;this.zd=-1;this.xd=this.M;this.Kd=this.Dc=0;this.Ja=""};
|
|
f.I=function(a,b,c,d){if(void 0===this.r[c])switch(c){case "keyDown":return this.r[c]=d,d.onkeydown=function(a){return function(b){return Ja(a,b,!0)}}(this),!0;case "keyPress":return this.r[c]=d,d.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.Ja="";a.A&a.$a?a.A&=~a.$a:c=!Ka(a,b);a.m&&T(a.m,a.m.za)&&a.m.message("keyPress("+n(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.r[c]=d,d.onkeyup=function(a){return function(b){return Ja(a,
|
|
b,!1)}}(this),!0;case "break":return this.r[c]=d,d.onclick=function(a){return function(){a.N&&a.N.reset(!0)}}(this),!0;default:if(void 0!==this.Na[c])return this.r[c]=d,d.onclick=function(a,b,c){return function(){a.l&&a.l.W();return!Ka(a,c)}}(this,c,this.Na[c]),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.Pd=b;this.Ef=c-b+1;this.$f=this.Pd+this.Ef;d&&(this.l=d,N(d,b,c,this,this.O));this.P()};f.ub=function(a){this.rb=a;this.qc=255;600!=this.rb&&(this.qc=0,this.i("updated keyboard model: "+this.rb))};
|
|
f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.N=b,this.m=L(b,"debugger"))};f.P=function(){this.vc=(this.Mf=v("iOS"))||v("Android");this.m&&T(this.m,this.m.za)&&this.m.message("mobile keyboard support: "+(this.vc?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.P.call(this)};function La(a,b){var c=b?a.Uf:a.Tf;a.l&&a.l.ua&&(c/=a.l.ua);return c}
|
|
function Ma(a,b){!a.xa||void 0!==b&&b==a.xa||(a.m&&T(a.m,a.m.za)&&a.m.message("autoClear("+n(a.xa)+")"),clearTimeout(a.da[a.xa]),U(a,a.xa,!1,a.sf))}function V(a,b,c){a.Ja=b;Na(a,c||a.Rf)}function Na(a,b){if(0<a.Ja.length){var c=a.Ja.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.Ja=a.Ja.substr(1);Ka(a,c)}0<a.Ja.length&&setTimeout(function(a){return function(){Na(a,b)}}(a),b)}
|
|
function Ja(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.ge=b);b==a.o-a.S?(a.A&=~a.wb,c&&(a.A|=a.wb),b+=a.S,e=!1):b==a.cc-a.S?(a.A&=~a.xb,c&&(a.A|=a.xb),b+=a.S,e=!1):b==a.zb-a.S?(a.A&=~a.vb,c&&(a.A|=a.vb),b+=a.S,e=!1):b==a.Mc-a.S?(c=!c,a.A&=~a.yb,c&&(a.A|=a.yb),b+=a.S,e=!1):b==a.Be?(a.A&=~a.$a,c&&(a.A|=a.$a),e=!1,d=!0):d=b==a.Ge?e=!1:b==a.Rc||b==a.Qc?c?!Ka(a,b):!1:!0;e&&(a.A&=~a.$a,a.vc||b!=a.ge||Ma(a));void 0===d&&(d=!U(a,b,c,a.tf));a.m&&T(a.m,a.m.za)&&a.m.message("key"+(c?"Down":"Up")+"("+n(b)+"): "+(d?
|
|
"pass":"consume"));return d}function Ka(a,b){var c=!1;b==a.Kc?a.N&&(a.N.reset(!0),c=!0):(a.vc&&65<=b&&90>=b&&(b+=32),Ma(a,b),U(a,b,!0,a.od)&&(a.l.speed==a.l.Ma?U(a,b,!1,a.uf):(c=!1,a.da[b]&&(clearTimeout(a.da[b]),c=!0),c=La(a,c),a.da[a.xa=b]=setTimeout(function(a){return function(){U(a,b,!1,a.vf)}}(a),c),a.m&&T(a.m,a.m.za)&&a.m.message("keyPressSimulate("+n(b)+"): setTimeout()")),c=!0));a.m&&T(a.m,a.m.za)&&a.m.message("keyPressSimulate("+n(b)+"): "+(c?"true":"false"));return c}
|
|
function U(a,b,c,d){var e=!1;c||(a.da[b]=null,a.xa==b&&(a.xa=0));var g=0,h=a.k[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.zb),h=a.k[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.M[b]|=1<<e,a.M[0]=g==a.zb?a.M[0]|a.vb:g==a.o?a.M[0]|a.wb:g==a.cc?a.M[0]|a.xb:a.M[0]&~a.bc):(a.M[b]&=~(1<<e),a.M[0]&=~a.bc,a.M[0]|=a.A&a.bc),c=d==a.od&&!a.kc.length,a.kc.push(a.M.slice()),a.ac(c),e=!0);return e}f.H=function(){};f.O=function(a){var b=this.l.H(a);this.yd=b^this.qc;this.Dc++;this.ac(!1,a,b)};
|
|
f.ac=function(a,b){var c=Da(this.l);if(!a)if(this.l.speed==this.l.Ma)a=void 0!==b&&32<=this.Dc;else{var d=c-this.Kd;a=0>d||d>=this.Wf}a&&(d=this.kc.shift(),void 0!==d&&(this.xd=d),this.Dc=0,this.Kd=c);for(d=c=0;8>d;d++)this.yd&1<<d&&(c|=this.xd[d]);c^=this.qc;if(void 0!==b)this.a[b]=c;else if(b=this.Pd,c!=this.zd)for(d=b;d<this.$f;d++)this.a[d]=c;this.zd=c};x(function(){for(var a=F(window.document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ia(d);E(d,c)}});
|
|
function Oa(a,b,c,d){z.call(this,"C1PVideo",a);this.yc=a.model;this.Ld=a.charCols;this.Md=a.charRows;this.Jf=a.screenWidth;this.Kf=a.screenHeight;this.Ob=a.charWidth;this.Pb=a.charHeight;Pa(this);this.Qb=b;this.Hf=c;this.lb=d;this.ib=56832}B(Oa);f=Oa.prototype;f.reset=function(a){this.ub(this.yc);if(this.a)for(var b=this.Yb;b<this.Hc;b++)this.a[b]=a?Math.floor(256*Math.random()):32};
|
|
f.I=function(a,b,c,d){switch(c){case "refresh":return this.r[c]=d,d.onclick=function(a){return function(){Qa(a);ra(a)}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.Yb=b;this.Gf=c-b+1;this.Hc=this.Yb+this.Gf;d&&(this.l=d,void 0!==this.ib&&(sa(d,this.ib,this.ib,this,this.H),N(d,this.ib,this.ib,this,this.O)));this.reset(!0)};
|
|
function Pa(a,b,c,d,e){a.Vb=void 0!==b?b:a.Ld;a.Xf=void 0!==c?c:a.Md;a.Ra=a.Vb*a.Xf;a.Hc=a.Yb+a.Ra;a.Ed=void 0!==d?d:0;a.Nd=void 0!==e?e:c;a.Ad=Math.floor(a.Jf/a.Vb);a.Bd=Math.floor(a.Kf/a.Nd)}f.W=function(){this.Qb.focus()};f.ub=function(a){this.rb=a;600==this.rb?(Pa(this,this.Ld,this.Md,4,24),1024==this.Ra&&this.l&&(this.Kb=this.Hc+this.Ra-1,N(this.l,this.Kb,this.Kb,this,this.le))):(this.i("updated video model: "+this.rb),Pa(this,64,32));Qa(this);ra(this)};
|
|
f.ba=function(a,b){if(a&&!this.C&&I(this)){if(this.C=!0,this.m=L(b,"debugger"),this.G=L(b,"keyboard"))this.G.I("input","canvas","keyDown",this.Qb),this.G.I("input","canvas","keyPress",this.Qb),this.G.I("input","canvas","keyUp",this.Qb)}else!a&&this.C&&(this.C=!1)};f.P=function(){this.Ob||(this.Ob=Math.floor(this.lb.width/16));this.Pb||(this.Pb=Math.floor(this.lb.height/16));z.prototype.P.call(this)};
|
|
f.H=function(a,b){var c=this.l.H(a);void 0!==b&&this.m&&S(this.m,this,a,b,this.m.Ab);this.l.O(a,c&127|(Math.floor(Da(this.l)/8333)&1?128:0))};f.O=function(a,b){void 0!==b&&this.m&&S(this.m,this,a,b,this.m.Ab)};
|
|
f.le=function(a,b){if(void 0!==b){this.m&&S(this.m,this,a,b,this.m.Ab,!0);this.ub(540);this.G&&this.G.ub(542);var c=this.l,d=c.sa,e=[],g=ta(d,this.Kb,this.Kb,this,this.le);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,m=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),m<d[g][1]&&(m=d[g][1]);e.push(h);e.push(m)}4==e.length&&(c.Lb=e[2],c.Mb=e[3])}};function Qa(a){a.lc=Array(a.Ra);for(var b=0;b<=a.Ra;b++)a.lc[b]=-1}
|
|
function ra(a){var b=0;if(a.C)for(;b<a.Ra;){var c=a.a[a.Yb+b];if(a.lc[b]!=c){var d=Math.floor(b/a.Vb);if(d>=a.Ed&&(d-=a.Ed,d<a.Nd)){var e=c*a.Ob;a.Hf.drawImage(a.lb,e%a.lb.width,Math.floor(e/a.lb.width)*a.Pb,a.Ob,a.Pb,b%a.Vb*a.Ad,d*a.Bd,a.Ad,a.Bd)}a.lc[b]=c}b++}}
|
|
x(function(){for(var a=F(window.document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=window.document.createElement("canvas");if(void 0===e){c.innerHTML="<br/>Missing <canvas> support; try a new web browser.";break}e.setAttribute("class","c1pjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
|
|
e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.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,e,d.screenWidth,d.screenHeight));c.appendChild(e);var g=new Image,h=e.getContext("2d"),e=new Oa(d,e,h,g);g.onload=function(a){return function(){a.P()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
|
|
function Ra(a){z.call(this,"C1PSerialPort",a);this.C=!1;this.Dd=a.demo;this.yf=0;this.xf=1;this.reset()}B(Ra);f=Ra.prototype;f.reset=function(){2!=this.Fa&&(this.Nb=this.pc=0,this.Za='10 PRINT "HELLO OSI #'+ia(this)+'"\n',this.Fa=this.Ub=0)};f.start=function(){this.G&&this.Dd&&(V(this.G," C\n\n",3E3),setTimeout(function(a){return function(){a.Fa=1;V(a.G,"LOAD\n")}}(this),12E3));this.Dd=!1};
|
|
f.I=function(a,b,c,d){switch(c){case "listSerial":return this.r[c]=d,!0;case "loadSerial":return this.r[c]=d,d.onclick=function(a){return function(){a.r.listSerial&&t(a.r.listSerial.value,!0,null,a,a.Pf)}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.Fc=b;this.Ff=c-b+1;this.Qd=this.Fc+this.Ff;if(this.l=d)sa(d,b,c,this,this.H),N(d,b,c,this,this.O);this.P()};f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.N=b,this.G=L(b,"keyboard"),this.m=L(b,"debugger"))};
|
|
f.Pf=function(a,b,c){b?(this.Za=b,this.Fa=this.Ub=0,this.N&&this.G&&this.l.ga?(this.i("auto-loading "+a),this.l.W(),"."!=this.Za.charAt(0)?(this.Fa=1,V(this.G,"NEW\nLOAD\n")):(this.Fa=2,this.N.reset(!0),V(this.G,"ML"))):this.i(a+" ready to load")):this.i(a+" load error ("+c+")")};f.H=function(a,b){void 0!==b&&(a&1?Sa(this):this.Za&&!this.Ub&&Sa(this))};f.O=function(a,b){void 0!==b&&this.m&&S(this.m,this,a,b,this.m.Sc,!0)};
|
|
function Sa(a){if(void 0!==a.Za){a.pc=0;a.Nb=0;if(a.Ub<a.Za.length){var b=a.Za.charCodeAt(a.Ub++);10==b&&(b=13);a.pc=b;a.Nb=1}else 1==a.Fa&&a.G&&V(a.G," \nRUN\n"),a.Fa=0;a.ac()}}f.ac=function(){var a;for(a=this.Fc+0;a<this.Qd;a+=2)this.a[a]=this.Nb?this.xf:this.yf;for(a=this.Fc+1;a<this.Qd;a+=2)this.a[a]=this.Nb?this.pc:0};x(function(){for(var a=F(window.document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ra(d);E(d,c)}});
|
|
function Ta(a){z.call(this,"C1PDiskController",a);this.C=!1;this.pf=this.md=0;this.jd=1;this.qf=this.nd=2;this.kd=3;this.Nc=128;this.Oc=64;this.Ka=4;this.kf=1;this.ed=2;this.jf=4;this.mf=8;this.lf=16;this.fd=32;this.dd=64;this.jc=128;this.hd=4;this.gd=8;this.nf=32;this.rf=this.of=16;this.ld=17;this.Pc=3;this.td=1;this.ud=2;this.sd=4;this.rd=8;this.ye=0;this.He=40;this.reset(!0)}B(Ta);f=Ta.prototype;
|
|
f.reset=function(a){Ua(this);this.K=-1;a&&(this.U=[],this.U[0]={Yi:this.ye,Od:this.He,Lf:!0,Wa:20,ha:0,Ua:-1,Jb:[]})};
|
|
function Ua(a){a.he={s:a.dd,aa:function(){},update:function(a){return function(c){void 0!==c&&(this.s=c);a.Zb.s&a.Ka||W(a,a.pf,this)}}(a)};a.Ha={s:255,aa:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.Ha.s:Va(a,c,a.sb.s);c=c|a.jc|a.fd|a.mf|a.jf|a.ed|a.lf;c&=~a.kf;if(0<=a.K&&a.U[a.K].Jb.length){var d=a.U[a.K];d.Lf&&(c&=~a.fd);d.ha||(c&=~a.ed);10>=--d.Wa&&(0<d.Wa?(c&=~a.jc,Wa(a)):(d.Wa=100,0<=a.K&&(a.U[a.K].Ua=0,Xa(a))))}this.s=c;a.Zb.s&a.Ka&&W(a,a.md,this)}}(a)};a.Zb=
|
|
{s:0,aa:function(){},update:function(a){return function(c){void 0!==c&&(this.s=c&~(a.Nc|a.Oc));W(a,a.jd,this);a.Ha.update();a.he.update()}}(a)};a.ie={s:255,aa:function(){},update:function(a){return function(c){void 0!==c&&(this.s=c);a.$b.s&a.Ka||W(a,a.qf,this)}}(a)};a.sb={s:255,aa:function(){},update:function(a){return function(c){void 0===c?c=a.sb.s:Va(a,a.Ha.s,c);if(0<=a.K&&a.K<a.U.length){var d=a.U[a.K];d.Jb.length&&a.sb.s&a.gd&&!(c&a.gd)&&(c&a.hd?d.ha--:d.ha++,a.m&&T(a.m,a.m.La)&&a.m.message("stepping "+
|
|
(c&a.hd?"down":"up")+" to track "+d.ha),d.ha>=d.Od&&(d.ha=d.Od),0>d.ha&&(d.ha=0),d.Wa=20,a.Ha.update(a.Ha.s|a.jc),Wa(a))}this.s=c;a.$b.s&a.Ka&&W(a,a.nd,this)}}(a)};a.$b={s:0,aa:function(){},update:function(a){return function(c){void 0!==c&&(this.s=c&~(a.Nc|a.Oc));W(a,a.kd,this);a.sb.update();a.ie.update()}}(a)};a.Vi={s:0,aa:function(){},update:function(a){return function(c){void 0!==c&&((c&a.Pc)==a.Pc&&(a.Ia.s=a.ud|a.sd|a.rd),this.s=c);a.Ia.update()}}(a)};a.Ia={s:a.ud|a.sd|a.rd,aa:function(){},update:function(a){return function(c){void 0===
|
|
c&&(c=a.Ia.s);c&=~a.td;0<=a.K&&0<=a.U[a.K].Ua&&(c|=a.td);this.s=c;W(a,a.rf,this)}}(a)};a.Jc={s:0,aa:function(a){return function(){Xa(a)}}(a),update:function(a){return function(c){void 0!==c&&(this.s=c);W(a,a.ld,this)}}(a)};a.Wi={s:0,aa:function(){},update:function(){return function(){}}(a)}}
|
|
f.I=function(a,b,c,d){switch(c){case "listDisk":return this.r[c]=d,!0;case "loadDisk":return this.r[c]=d,d.onclick=function(a){return function(){if(a.r.listDisk){var b=a.r.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.i("loading "+ba(b)+"...");t(c,!0,null,a,a.Of)}}}(this),!0}return!1};f.V=function(a,b,c,d){this.a=a;this.mc=b;if(this.l=d)sa(d,b,c,this,this.H),N(d,b,c,this,this.O);this.P()};
|
|
f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.m=L(b,"debugger"))};
|
|
f.Of=function(a,b,c){if(c)this.i("disk load error ("+c+")");else{c=[];this.i("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.i("data error: "+d[0]);else if(this.U[0]){for(b=0;b<d.length;b++){var e,g=d[b],h=g.sectors;if(void 0===(e=g.trackNum)||void 0===h)throw"track "+b+" missing data";e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var m,k,l;if(e){Ya(c,g,"trackSig");Za(c,g);X(c,g,"trackType");for(var p=0;p<h.length;p++){m=
|
|
h[p];k=m.sectorData;X(c,m,"sectorSig");X(c,m,"sectorNum");X(c,m,"sectorPages");for(l=0;l<k.length;l++)c.push(k[l]);Ya(c,m,"sectorEndSig")}}else for(m=h[0],k=m.sectorData,X(c,g,"trackLoad",2),X(c,m,"sectorPages"),l=0;l<k.length;l++)c.push(k[l]);d[e].ke=c;this.m&&T(this.m,this.m.La)&&this.m.message("track "+e+": "+c.length+" bytes")}this.U[0].Jb=d;this.i("mount of "+a+" complete")}else this.i("no available drives")}else this.i("no tracks: "+a);else this.i("no data: "+a)}catch(s){this.i("disk data error: "+
|
|
(s.message||s))}}};function Za(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 X(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 Ya(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 $a(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case a.md:a=a.Zb.s&a.Ka?a.Ha:a.he;break;case a.jd:a=a.Zb;break;case a.nd:a=a.$b.s&a.Ka?a.sb:a.ie;break;case a.kd:a=a.$b;break;case a.of:a=c?a.Vi:a.Ia;break;case a.ld:a=a.Jc;break;default:a=a.Wi}return a}f.H=function(a,b){if(void 0!==b){var c=$a(this,a-this.mc,!1);this.m&&S(this.m,this,a,b,this.m.La,!1,c.je);c.aa()}};
|
|
f.O=function(a,b){if(void 0!==b){var c=this.l.H(a),d=$a(this,a-this.mc,!0);if(this.m&&T(this.m,this.m.La|this.m.dc)&&(S(this.m,this,a,b,this.m.La,!0,d.je),d.Af))for(var e=128,g=d.s^c;g&&e;)g&e&&this.m.message(" changed "+d.je+"."+d.Af[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Va(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&a.nf||(d|=2),a.Ha.s&a.dd||(d|=1));a.K!=d&&(a.K=d,a.Ia.update())}function Wa(a){0<=a.K&&(a.U[a.K].Ua=-1,a.Jc.update(255),a.Ia.update())}
|
|
function Xa(a){var b=null;if(0<=a.K){var b=a.U[a.K],c=b.Jb[b.ha];void 0!==c&&(0<=b.Ua&&b.Ua<c.ke.length?(b.Wa=100,b=c.ke[b.Ua++],a.Jc.update(b),a.Ia.update()):(b.Wa=10,Wa(a)))}}function W(a,b,c){a.l.O(b+a.mc,c.s)}x(function(){for(var a=F(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ta(d);E(d,c)}});
|
|
function ab(a){z.call(this,"C1PDebugger",a);this.Pa=-1;this.wa=0;this.Ic=null;this.Sb=!1;this.Z=0;this.ra=[];this.Ba=[];this.Ea=[];this.kb=0;this.Da=[];this.fa=[];this.dc=1;this.za=16;this.Ab=32;this.La=64;this.Sc=128;this.Ga=this.Ie=0;this.Ib={port:this.dc,kbd:this.za,video:this.Ab,disk:this.La,serial:this.Sc};this.ka=0;this.la=1;this.ab=2;this.Vc=3;this.Wc=4;this.Xc=5;this.Yc=6;this.Zc=7;this.$c=8;this.ad=9;this.Je=10;this.bd=11;this.cd=12;this.Ke=13;this.Le=14;this.Me=15;this.Ne=16;this.ma=17;
|
|
this.ec=18;this.fc=19;this.Db=20;this.Pe=21;this.Qe=22;this.na=23;this.Eb=24;this.Re=25;this.Se=26;this.Fb=27;this.Gb=28;this.oa=29;this.bb=30;this.cb=31;this.eb=32;this.Te=33;this.pa=34;this.Ue=35;this.Ve=36;this.We=37;this.Xe=38;this.fb=39;this.gb=40;this.Ye=41;this.Ze=42;this.qa=43;this.$e=44;this.af=45;this.bf=46;this.Aa=47;this.hc=48;this.ic=49;this.cf=50;this.df=51;this.ef=52;this.ff=53;this.gf=54;this.hf=55;this.gc=56;this.Oe=57;this.hb="ADC AND ASL BCC BCS BEQ BIT BMI BNE BPL BRK BVC BVS CLC CLD CLI CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR LDA LDX LDY LSR NOP ORA PHA PHP PLA PLP ROL ROR RTI RTS SBC SEC SED SEI STA STX STY TAX TAY TSX TXA TXS TYA SIM .DB".split(" ");
|
|
this.vd=["HLT","MSG"];bb(this,!0);this.Y=[[this.Je],[this.pa,1,this.ia],[this.gc,1],[],[],[this.pa,1,this.D],[this.ab,1,this.D],[],[this.Ve],[this.pa,1,this.R],[this.ab,0,this.Bb],[],[],[this.pa,2,this.B],[this.ab,2,this.B],[],[this.ad,1,this.X],[this.pa,1,this.ja],[],[],[],[this.pa,1,this.J],[this.ab,1,this.J],[],[this.Ke],[this.pa,2,this.ca],[],[],[],[this.pa,2,this.L],[this.ab,2,this.L],[],[this.Gb,2,this.Cb],[this.la,1,this.ia],[],[],[this.Yc,1,this.D],[this.la,1,this.D],[this.fb,1,this.D],[],
|
|
[this.Xe],[this.la,1,this.R],[this.fb,0,this.Bb],[],[this.Yc,2,this.B],[this.la,2,this.B],[this.fb,2,this.B],[],[this.Zc,1,this.X],[this.la,1,this.ja],[],[],[],[this.la,1,this.J],[this.fb,1,this.J],[],[this.$e],[this.la,2,this.ca],[],[],[],[this.la,2,this.L],[this.fb,2,this.L],[],[this.Ye],[this.na,1,this.ia],[],[],[],[this.na,1,this.D],[this.eb,1,this.D],[],[this.Ue],[this.na,1,this.R],[this.eb,0,this.Bb],[],[this.Fb,2,this.Cb],[this.na,2,this.B],[this.eb,2,this.B],[],[this.bd,1,this.X],[this.na,
|
|
1,this.ja],[],[],[],[this.na,1,this.J],[this.eb,1,this.J],[],[this.Me],[this.na,2,this.ca],[],[],[],[this.na,2,this.L],[this.eb,2,this.L],[],[this.Ze],[this.ka,1,this.ia],[],[],[],[this.ka,1,this.D],[this.gb,1,this.D],[],[this.We],[this.ka,1,this.R],[this.gb,0,this.Bb],[],[this.Fb,2,this.Tc],[this.ka,2,this.B],[this.gb,2,this.B],[],[this.cd,1,this.X],[this.ka,1,this.ja],[],[],[],[this.ka,1,this.J],[this.gb,1,this.J],[],[this.bf],[this.ka,2,this.ca],[],[],[],[this.ka,2,this.L],[this.gb,2,this.L],[],
|
|
[],[this.Aa,1,this.ia],[],[],[this.ic,1,this.D],[this.Aa,1,this.D],[this.hc,1,this.D],[],[this.Qe],[],[this.ff],[],[this.ic,2,this.B],[this.Aa,2,this.B],[this.hc,2,this.B],[],[this.Vc,1,this.X],[this.Aa,1,this.ja],[],[],[this.ic,1,this.J],[this.Aa,1,this.J],[this.hc,1,this.Uc],[],[this.hf],[this.Aa,2,this.ca],[this.gf],[],[],[this.Aa,2,this.L],[],[],[this.cb,1,this.R],[this.oa,1,this.ia],[this.bb,1,this.R],[],[this.cb,1,this.D],[this.oa,1,this.D],[this.bb,1,this.D],[],[this.df],[this.oa,1,this.R],
|
|
[this.cf],[],[this.cb,2,this.B],[this.oa,2,this.B],[this.bb,2,this.B],[],[this.Wc,1,this.X],[this.oa,1,this.ja],[],[],[this.cb,1,this.J],[this.oa,1,this.J],[this.bb,1,this.Uc],[],[this.Ne],[this.oa,2,this.ca],[this.ef],[],[this.cb,2,this.L],[this.oa,2,this.L],[this.bb,2,this.ca],[],[this.fc,1,this.R],[this.ma,1,this.ia],[],[],[this.fc,1,this.D],[this.ma,1,this.D],[this.Db,1,this.D],[],[this.Se],[this.ma,1,this.R],[this.Pe],[],[this.fc,2,this.B],[this.ma,2,this.B],[this.Db,2,this.B],[],[this.$c,1,
|
|
this.X],[this.ma,1,this.ja],[],[],[],[this.ma,1,this.J],[this.Db,1,this.J],[],[this.Le],[this.ma,2,this.ca],[],[],[],[this.ma,2,this.L],[this.Db,2,this.L],[],[this.ec,1,this.R],[this.qa,1,this.ia],[],[],[this.ec,1,this.D],[this.qa,1,this.D],[this.Eb,1,this.D],[],[this.Re],[this.qa,1,this.R],[this.Te],[],[this.ec,2,this.B],[this.qa,2,this.B],[this.Eb,2,this.B],[],[this.Xc,1,this.X],[this.qa,1,this.ja],[],[],[],[this.qa,1,this.J],[this.Eb,1,this.J],[],[this.af],[this.qa,2,this.ca],[],[],[],[this.qa,
|
|
2,this.L],[this.Eb,2,this.L],[]]}B(ab);f=ab.prototype;f.I=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Rb=this.r[c]=d,this.Rb.focus(),d.onkeypress=function(a,b){return function(d){13==d.keyCode&&(c=b.value,b.value="",cb(a,c))}}(this,d),!0;case "debugEnter":return this.r[c]=d,fa(d,function(){return e.Rb?(c=e.Rb.value,cb(e,c),!0):!1}),!0;case "step":return this.r[c]=d,fa(d,function(a){var b=!1;H(e,!0)||(G(e,!0),b=e.step(a?1:0),G(e,!1));return b}),!0}return!1};
|
|
f.V=function(a,b,c){this.a=a;this.$=b;this.rc=c-b+1;this.Ya=this.$+this.rc;this.P()};f.ba=function(a,b){a&&!this.C&&(this.C=!0,this.l=L(b,"cpu"))};f.W=function(){this.Rb.focus()};
|
|
function bb(a,b){a.Bb=0;a.R=1;a.L=2;a.ca=3;a.Cb=4;a.Tc=5;a.J=6;a.Uc=7;a.ia=8;a.ja=9;a.B=10;a.D=11;a.X=a.Cb;var c="",d,e;if(b)for(a.ea="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ea.length;d++)e=a.ea[d],c+="("+e.replace(/\(/g,"\\(").replace(/\)/g,"\\)").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\$/g,"\\$")+"|)";else for(a.ea="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
|
|
d=0;d<a.ea.length;d++)e=a.ea[d],c+="("+e.replace(/\[/g,"\\[").replace(/\]/g,"\\]").replace(/nnnn/g,"[0-9A-F][0-9A-F][0-9A-F][0-9A-F]?").replace(/nn/g,"[0-9A-F][0-9A-F]?").replace(/\+/g,"\\+")+"|)";a.Xi=new RegExp(c);a.Bf=[a.Fb,a.Gb,a.ad,a.Zc,a.bd,a.cd,a.Vc,a.Wc,a.$c,a.Xc]}f.T=function(){this.l.T()};function T(a,b){return(a.Ga&b)===b}function S(a,b,c,d,e,g,h){(a.Ga&e)==e&&(e=a.l.H(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+n(e)))}
|
|
f.message=function(a){this.i(a);Ca(this.l)};f.Nf=function(){this.i("Type ? for list of debugger commands\n")};f.ya=function(){if(!db(this))return!1;this.l.ya();return!0};f.step=function(a){if(!db(this))return!1;var b;try{b=this.l.step(a)}catch(c){b=void 0,J(this.l,c.message||c)}void 0!==b&&this.Pa++;this.l.update(!0);this.update(!0);return b};f.update=function(a){this.wa=this.l.d;a||this.Ta?eb(this):fb(this)};
|
|
function db(a){a.l&&I(a.l)&&!H(a.l)?(a=a.l,a.jb?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}f.reset=function(){var a;this.Da.length||(this.Da=Array(1E3));for(a=0;a<this.Da.length;a++)this.Da[a]=-1;this.fa.length||(this.fa=Array(256));for(a=0;a<this.fa.length;a++)this.fa[a]=[a,0];this.Pa&&this.update();this.Pa=0};f.start=function(){this.Ta||this.i("running")};
|
|
f.stop=function(a,b){if(!this.Ta&&(this.i("stopped"),b)){var c=r();this.i(c-a+"ms ("+b+" cycles)")}this.update();this.W();this.Ta||(this.Pa=0);gb(this,this.l.d)};function hb(a,b){return a+(b<<24>>24)}f.H=function(a){var b;a>=this.$&&a<this.Ya&&(ua(this.l,a),b=this.a[this.$+a],b&=255);return b};f.O=function(a,b){a<this.$||a>=this.Ya?this.i("invalid address: "+q(a)):(this.a[this.$+a]=b&255,va(this.l,a),this.l.update())};function ib(a,b){Y(a.ra,b,void 0)||a.ra.push(b);return!0}
|
|
function Y(a,b,c){for(var d=!1,e=0;e<a.length;e++)if(a[e]==b){c&&a.splice(e,1);d=!0;break}return d}function jb(a,b){void 0!==b&&(gb(a,a.Oa),ib(a,b)&&(a.Oa=b))}function gb(a,b){void 0!==a.Oa&&b==a.Oa&&Y(a.ra,a.Oa,!0)&&(a.Oa=void 0);a.Ta=!1}function Ba(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.Oa&&a.i("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
|
|
function kb(a,b,c){var d=q(b),e=a.H(b++),g=a.Y[e],h=void 0===e?0:e,m=[],k=void 0===g[1]?0:g[1];do{d+=" "+n(h);if(!k--)break;h=a.H(b++);if(void 0===h)break;m.push(h)}while(1);void 0===g[0]&&(g=[a.Oe,1,a.R],m.push(e));var d=(d+" ").substr(0,15),d=d+a.hb[g[0]],l=null;if(void 0!==g[2]){k=g[2];l=a.ea[k];if(1==g[1]&&k==a.X)l=l.replace(/nnnn/,q(hb(b,h=m.pop())));else for(;m.length;)l=l.replace(/nn/,n(h=m.pop()));k==a.R&&1==g[1]&&32<=h&&128>h&&(l+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.l.gc&&(h<
|
|
a.vd.length&&(l=a.vd[h]),h==a.l.pd)){k=0;for(l='"';h=a.H(b++);)16>k?l+=String.fromCharCode(h):16==k&&(l+="\u2026"),k++;l+='"'}l&&(d+=" "+l);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.Zf=b;return d}
|
|
function Z(a,b){var c=a.wa;if(void 0!==b){var d=16;"$"==b.charAt(0)?b=b.substr(1):"0x"==b.substr(0,2)?b=b.substr(2):"."==b.charAt(b.length-1)&&(d=10,b=b.substr(0,b.length-1));c=parseInt(b,d);isNaN(c)&&(a.i("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.$||c>=a.Ya)&&(a.i("address out of range: "+aa(c)),c=void 0);return c}
|
|
function lb(a,b){if("?"==b)a.i("\nfrequency commands:"),a.i("clear\tclear all frequency counts");else{var c=0,d;if(a.fa)if("clear"==b){for(d=0;d<a.fa.length;d++)a.fa[d]=[d,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var e=a.fa.slice();e.sort(function(a,b){return b[1]-a[1]});for(d=0;d<e.length;d++){var g=e[d][0],h=e[d][1];h&&(a.i(a.hb[a.Y[g][0]]+" ("+n(g)+"): "+h+" times"),c++)}}c||a.i("no frequency data available")}}
|
|
function eb(a,b,c,d){var e=Z(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ya;if(void 0!==c){b=Z(a,c);if(void 0===b||b<e)return;if(256<b-e){a.i("range too large");return}b++;d=-1}for(e!=a.wa&&a.i();d--&&e<b;)c=kb(a,e,H(a,!1)||a.Ta?a.Pa:0),a.i(c),a.wa=e=a.Zf}}
|
|
function fb(a,b){if(b&&"?"==b[1])a.i("\nregister commands:"),a.i("r to display all"),a.i("r [target=value] to modify"),a.i("supported targets:"),a.i("A,X,Y,S,PC and flags C,Z,D,V,N");else{var c=!0;if(void 0!==b&&1<b.length){var c=!1,d=b[1],e=null,g=d.indexOf("=");if(0<g)e=d.substr(g+1),d=d.substr(0,g);else if(2<b.length)e=b[2];else{a.i("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.i("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.l.e=g&255;break;case "X":a.l.n=g&
|
|
255;break;case "Y":a.l.p=g&255;break;case "C":a.l.c=g?256:0;break;case "Z":a.l.g=g?0:1;break;case "D":g?Ea(a.l):Fa(a.l);break;case "V":g?(d=a.l,d.u=0,d.v=128):(d=a.l,d.u=0,d.v=0);break;case "N":a.l.f=g?128:0;break;case "S":if(256!=(g&-256)){a.i("invalid stack pointer: "+e);return}a.l.q=g;break;case "PC":c=!0;a.l.d=g&65535;a.wa=a.l.d;break;default:a.i("unknown register: "+d);return}a.l.update()}a.i("A="+n(a.l.e)+" X="+n(a.l.n)+" Y="+n(a.l.p)+" P="+n(za(a.l))+" S="+q(a.l.q)+" PC="+q(a.l.d));c&&eb(a,
|
|
q(a.wa=a.l.d))}}function mb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;ea(c,function(a){return function(){return G(a,!0)&&a.step(d)}}(a),function(a){return function(){G(a,!1)}}(a))}
|
|
function cb(a,b){b.length||(a.Sb?(a.i("ended assemble @"+q(a.Z)),a.wa=a.Z,a.Sb=!1):a.Ic&&(b=a.Ic));if(I(a)&&!H(a,!0)&&0<b.length){a.Sb?b="a "+q(a.Z)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.Ic=c[0];switch(c[0].toLowerCase()){case "a":var d=Z(a,c[1]);if(void 0!==d)if(a.Z=d,void 0===c[2])a.i("begin assemble @"+q(a.Z)),a.Sb=!0,a.l.update();else{var e,g=c[2],h=c[3],c=a.Z,d=[];if(void 0!==g){var m,g=g.toUpperCase();"?"==g.charAt(g.length-1)&&
|
|
(h="?",g=g.substr(0,g.length-1));for(m=0;m<a.hb.length&&g!=a.hb[m];m++);m==a.hb.length&&(a.i("unknown operation: "+g),m=-1);var k="",l;if(0<=m&&void 0!==h)if(k=h.toUpperCase(),"?"==k){for(h=l=0;h<a.Y.length;h++)a.Y[h][0]===m&&(l||a.i("supported opcodes:"),a.i(" "+n(h)+": "+g+(void 0!==a.Y[h][2]?" "+a.ea[a.Y[h][2]]:"")),l++);m=-1}else if(l=k.match(a.Xi),null!==l&&l[0]==k){for(h=1;h<l.length;h++)if(l[h]==k)if(void 0===e)e=h-1;else{a.i("too many operand matches (both "+a.ea[e]+" and "+a.ea[h-1]+
|
|
")");m=-1;break}e==a.Cb&&0>a.Bf.indexOf(m)&&(e=a.B);e==a.Tc&&m!=a.Fb&&(e=a.B)}else a.i("unknown operand: "+k),m=-1;if(0<=m){l=-1;for(h=0;h<a.Y.length;h++)if(a.Y[h][0]===m&&a.Y[h][2]===e)if(0>l)l=h;else{a.i("too many instruction matches (both "+n(l)+" and "+n(h)+")");l=-2;break}if(0<=l){if(d.push(l),void 0!==e)if(g=a.Y[l][1],k=k.match(/[0-9A-F]+/),null!==k)for(k=parseInt(k[0],16),1==g&&e==a.X&&(k-=c+2,-128>k||127<k)&&(a.i("branch out of range ("+k+")"),d=[],g=0),h=0;h<g;h++)d.push(k&255),k>>>=8;else g&&
|
|
a.i("instruction missing "+g+" bytes")}else a.i("unknown instruction: "+g+" "+k+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.O(a.Z+c,e[c]);a.i(kb(a,a.Z));a.Z+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.i("\nbreakpoint commands:"),a.i("bp [a]\tset exec breakpoint at [a]"),a.i("br [a]\tset read breakpoint at [a]"),a.i("bw [a]\tset write breakpoint at [a]"),a.i("bc [a]\tclear breakpoint at [a]"),a.i("bl\tlist all breakpoints");else if(void 0===c&&1<e.length&&(c=e.substr(1),e=e.substr(0,
|
|
1)),"l"==e){e=0;d=a.ra;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.Ba;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.Ea;for(c=0;c<d.length;c++)a.i("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.i("no breakpoints")}else void 0===c?a.i("missing breakpoint address"):"c"==e&&"*"==c?(a.ra=[],a.Ba=[],a.Ea=[],a.i("all breakpoints cleared")):(c=Z(a,c),void 0!==c&&("p"==e?ib(a,c)?a.i("breakpoint enabled: "+q(c)+" (exec)"):a.i("breakpoint not set: "+
|
|
q(c)):"c"==e?Y(a.ra,c,!0)?a.i("breakpoint cleared: "+q(c)+" (exec)"):Y(a.Ba,c,!0)?a.i("breakpoint cleared: "+q(c)+" (read)"):Y(a.Ea,c,!0)?a.i("breakpoint cleared: "+q(c)+" (write)"):a.i("breakpoint missing: "+q(c)):"r"==e?(Y(a.Ba,c,void 0)||a.Ba.push(c),a.i("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(Y(a.Ea,c,void 0)||a.Ea.push(c),a.i("breakpoint enabled: "+q(c)+" (write)")):a.i("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.i("\ndump commands:"),a.i("d [a] [#] dump # lines of memory");
|
|
else if(e=Z(a,e),void 0!==e){c=0;void 0!==d&&("l"==d.charAt(0)&&(d=d.substr(1)),c=parseInt(d,10));c||(c=1);for(d=0;d<c;d++){k=g="";h=e;for(m=0;8>m&&e<a.Ya;m++)l=a.H(e),void 0===l&&(l=0),g+=n(l)+" ",k+=32<=l&&128>l?String.fromCharCode(l):".",e++;a.i(q(h)+" "+g+k)}a.wa=e}break;case "e":e=c[1];if(void 0===e)a.i("missing address");else if(e=Z(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.O(e++,g);break;case "f":lb(a,c[1]);break;case "g":e=c[1];void 0!==e&&jb(a,Z(a,e));a.ya()||a.l.W();break;
|
|
case "h":a.T();break;case "o":if(void 0===c[1]||"?"==c[1])a.i("\noption commands:"),a.i("max\trun at maximum speed"),a.i("fast\trun faster (up to "+a.l.mb+"Mhz)"),a.i("slow\trun at normal speed (1Mhz)"),a.i("classic\tuse classic operand syntax"),a.i("modern\tuse modern operand syntax"),a.i("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.l,a.l.Hb);break;case "fast":M(a.l,a.l.qd);break;case "max":M(a.l,a.l.Ma);break;case "classic":bb(a,!0);a.i("classic syntax enabled");break;
|
|
case "modern":bb(a,!1);a.i("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ib[c[2]]&&(e=a.Ib[c[2]]),e&&("on"==c[3]?a.Ga|=e:"off"==c[3]&&(a.Ga&=~e)));for(d in a.Ib)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ib[d],a.i(d+" messages: "+(a.Ga&e?"on":"off"));break;default:a.i("unknown option: "+e)}break;case "p":k=c[1];e=10;c=a.kb;d=a.Da;if(void 0!==d){g=void 0===k?a.Yf:parseInt(k,10);void 0===g&&(g=10);g>d.length&&(a.i("note: only "+d.length+" available"),g=d.length);
|
|
void 0!==k&&(a.zc=0,a.i(g+" instructions earlier:"));k=a.zc?a.zc:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.kb;){h=d[c];if(0>h)break;a.i(kb(a,h,k++));++c==d.length&&(c=0);e--;g--}a.Yf=g;a.zc=k}10==e&&a.i("no history available");break;case "r":fb(a,c);break;case "s":a.H(a.l.d)==a.l.Gb?(jb(a,a.l.d+3),a.Ta=!0,a.ya()||a.l.W()):mb(a);break;case "t":mb(a,c[1]);break;case "u":eb(a,c[1],c[2],8);break;case "?":case "help":a.i("\ncommands:\n?\thelp\na [#]\tassemble\nb [#]\tbreakpoint\nd [#]\tdump memory\ne [#]\tedit memory\nf\tdump frequencies\ng [#]\trun to [#]\nh\thalt\no\toptions\np [#]\tdump history\nr\tdump/edit registers\ns\tstep over instruction\nt [#]\tstep instruction(s)\nu [#]\tunassemble");
|
|
a.i("note: frequency and history commands operate only when breakpoints are set");break;default:a.i("unknown command: "+b)}}}x(function(){for(var a=F(window.document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ab(d);E(d,c)}});function $(a,b){z.call(this,"C1PComputer",a);this.Q=b}B($);$.prototype.reset=function(a){var b=null,c;for(c in this.Q)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.ya())};
|
|
$.prototype.start=function(){for(var a in this.Q)if("cpu"!=a)for(var b=0;b<this.Q[a].length;b++){var c=this.Q[a][b];c&&c.start&&c.start()}};$.prototype.stop=function(a,b){for(var c in this.Q)if("cpu"!=c)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.stop&&e.stop(a,b)}};$.prototype.I=function(a,b,c,d){switch(c){case "reset":return this.r[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Q[b]?a.Q[b][0]:null}
|
|
function nb(a){var b=null,c;for(c in a.Q)for(var d=0;d<a.Q[c].length;d++){var e=a.Q[c][d];if(e){if(!I(e)){I(e,function(a){return function(){nb(a)}}(a));return}"cpu"==c?b=e:e.ba&&e.ba(!0,a)}}a.P();a.i("C1Pjs v1.15.5\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.ba(!0,a)}
|
|
x(function(){for(var a=F(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,m=0,k=0,l=0;l<d.modules.length;l++){var p=d.modules[l];if(!l){if("cpu"!=p.type)break;m=p.start;k=p.end;h=Array(k+1-m);for(e=m;e<h.length;e++)h[e]=0}if(e=C(p.refID,d.id)){var s=p.type;void 0===g[s]&&(g[s]=[]);g[s].push(e);e.V&&void 0!==p.start&&e.V(h,p.start,p.end,g.cpu[0])}else{u('no component for <module refid="'+p.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
|
|
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,m,k,g.cpu[0]);m=new $(d,g);if(k=C("panel",d.id))if(g.panel=[k],k.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)l=A[d],e&&l.id.indexOf(e)||g.push(l);d=g;for(g=0;g<d.length;g++)e=d[g],e!=k&&(e.Xb=k.Xb,e.i=k.i,e.sc=k.sc)}E(m,c);nb(m)}});function ob(a,b,c,d){var e=t(a);if(e[0])throw Error(e[1]);return pb(e[1],a,b,c,d)}
|
|
function pb(a,b,c,d,e){var g=null;if(a){if(e)for(var h=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g;g=h.exec(a);){var m=g[2],k=t(m),l=k[1];if(k[0]||!l)throw c="unable to resolve XML reference: "+g[0]+" ("+k[0]+")",Error(c);if(k=g[3]){var p=l.match(new RegExp("<"+g[1]+"[^>]*>"));if(p){for(var m=p[0],s,wa=/( [a-z]+=)(['"])(.*?)\2/g;s=wa.exec(k);)m=0>m.indexOf(s[1])?m.replace(">",s[0]+">"):m.replace(new RegExp(s[1]+"(['\"])(.*?)\\1"),s[0]);p[0]!=m&&(l=l.replace(p[0],m))}else throw c="missing <"+g[1]+"> in "+m,
|
|
Error(c);}l=l.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(g[0],l);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?(e||(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,e=c="",g=null;try{if(g=window.document.getElementById(a)){d||(d="/versions/c1pjs/1.15.5/components.xsl");var h="<"==b.substr(0,1)?pb(b,null,a,void 0,!1):ob(b,a,void 0,!0);c=h[0];var m=h[1];if(m){var h=ob(d),k=h[1];if(k)if(window.ActiveXObject||"ActiveXObject"in window){var l=m.transformNode(k);l?g.outerHTML=l:e="transformNodeToObject failed"}else if(window.document.implementation&&window.document.implementation.createDocument){var p=new XSLTProcessor;p.importStylesheet(k);
|
|
var s=p.transformToFragment(m,window.document);s?g.parentNode.replaceChild(s,g):e="transformToFragment failed"}else e="unable to transform XML: unsupported browser";else e="failed to load XSL file: "+d}else e="failed to load XML file: "+b}else e="failed to find machine element: "+a}catch(wa){e=wa.message}e&&g&&(a=F(g,"machine-warning"),a[0]&&(a[0].innerHTML="Error: "+da(e)));return e||c};window.enableEvents=function(a){ga=a};window.sendEvent=function(a){w[a]&&y(w[a])};})();//@ sourceMappingURL=/tmp/c1pjs/1.15.5/c1p-dbg.map
|