More support for saving entire machines

This commit is contained in:
Jeff Parsons 2016-02-16 18:11:15 -08:00
commit 6bffc69b25
8 changed files with 348 additions and 255 deletions

View file

@ -1,40 +1,40 @@
(function(){var f;function n(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 p(a){return"0x"+n(a,2)}function q(a){return"0x"+n(a,4)}var aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ba(a){return a.replace(/[&<>"']/g,function(a){return aa[a]})}var ca=Date.now||function(){return+new Date};
function t(a,b,c){var d;d=!0;var e=0,g=null,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:")||(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))});h.open("GET",a,d);h.send();d||(g=h.responseText,200!=h.status&&(e=h.status||-1),c&&(b?c.call(b,a,g,e,void 0):c(a,g,e,void 0)))}
function t(a,b,c){var d=0,e=null;if(resources&&(e=resources[a]))c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0));else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),c&&(b?c.call(b,a,e,d,void 0):c(a,e,d,void 0)))};g.open("GET",a,!0);g.send()}}
function u(a){window&&window.alert(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 da(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function ea(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:[]},fa=!1,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 ia(a){if(ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function y(a){!ga&&a?(ga=!0,fa&&ja("init")):ga=a}function ja(a){w[a]&&ia(w[a])}ha("onload",function(){fa=!0;ia(w.init)});ha("onpageshow",function(){ia(w.show)});ha(v("Opera")||v("iOS")?"onunload":"onbeforeunload",function(){ia(w.exit)});
function z(a,b,c,d){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.rb=this.id.substr(0,b),this.qb=this.id.substr(b+1)):this.qb=this.id;this[a]=c;this.C={Za:!1,Ba:!1,jb:!1,M:!1,Ca:!1};this.cb=null;this.C.Ca=!1;this.H={};this.u=null;this.la=d||0;A.push(this)}var ka=void 0;
if(window){ka||(ka=window.location.search.substr(1));for(var la,ma=/\+/g,na=/([^&=]+)=?([^&]*)/g;la=na.exec(ka);)la[1].replace(ma," "),la[2].replace(ma," ")}function oa(a){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){var b;b||(b=z);a.prototype=oa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var A=[],C={};
function pa(a,b,c){C[a]&&(C[a][b]||(C[a][b]=[]),C[a][b].push(c))}function qa(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}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function pa(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}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function E(a,b){for(var c=F(b.parentNode,"c1pjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,g=0;g<e.length;g++){var h=e[g];if(h.nodeType===document.ELEMENT_NODE){var k=h.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case "c1pjs-binding":(k=D(h))&&k.binding&&a.T(k.type,k.binding,h,k.value),m=l.length}}}}
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={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},T:function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.gb=this.H[b]=c,c.value="",this.l=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.$a=function(a,b,c){this.l(a,"notice",c)}),!0;default:return!1}},log:function(){},l:function(){},status:function(a){this.l(this.qb+": "+a)},$a:function(a,b){b||u(a)},X:function(a){this.C.Ca||(this.C.Za=!1!==a,this.C.Za&&(a=this.cb,this.cb=null,a&&a()))}};function G(a,b){if(a.u){a===a.u?b|=0:b=b||a.la;var c=a.u.la&b;return!!b&&c===b||!!(c&a.u.Re)}return!1}function I(a,b){if(a.C.jb)return a.C.Ba&&(a.C.Ba=!1),a.C.jb=!1;if(a.C.Ca)return a.l(a.toString()+" error"),!1;a.C.Ba=b;return a.C.Ba}
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function ra(a,b){a.C.Ca=!0;a.$a(b)}function sa(a){z.call(this,"C1PPanel",a);this.C.M=!1}B(sa);sa.prototype.T=function(a,b,c,d){return this.J&&this.J.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:z.prototype.T.call(this,a,b,c,d)};
sa.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),ta())};function ta(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=qa(e.id);g||(a=!0,g=new sa(e));E(g,d);a&&g.X()}}x(ta);
function ua(a){z.call(this,"C1PCPU",a);va(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
function J(a,b){a.C.Ba&&(b?a.C.jb=!0:void 0===b&&a.l(a.toString()+" busy"));return a.C.Ba}function K(a,b){b&&(a.C.Za?b():a.cb=b);return a.C.Za}function qa(a,b){a.C.Ca=!0;a.$a(b)}function ra(a){z.call(this,"C1PPanel",a);this.C.M=!1}B(ra);ra.prototype.T=function(a,b,c,d){return this.J&&this.J.T(a,b,c,d)||this.s&&this.s.T(a,b,c,d)||this.b&&this.b.T(a,b,c,d)||this.u&&this.u.T(a,b,c,d)?!0:z.prototype.T.call(this,a,b,c,d)};
ra.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.s=L(b,"cpu"),this.b=L(b,"keyboard"),this.u=L(b,"debugger"),sa())};function sa(){for(var a=!1,b=F(document,"c1pjs","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),g=pa(e.id);g||(a=!0,g=new ra(e));E(g,d);a&&g.X()}}x(sa);
function ta(a){z.call(this,"C1PCPU",a);ua(this);this.C.M=!1;this.C.ma=!1;this.Ta=a.autoStart;this.Ra=0;this.Ob=1;this.eb=2;this.speed=this.Ra;this.Ja=30;this.Ia=5;this.Ma=8;this.Sa=["Slow","Fast","Max"];this.ib=["(1Mhz)","(up to "+this.Ma+"Mhz)","(unlimited)"];this.P=[];this.K=[];this.oa=65536;this.pa=0;this.da=65536;this.ia=0;this.Qa=32;this.bb=2;this.Nb=1;this.o=[this.yc,this.Sd,this.Je,this.m,this.m,this.Ud,this.oc,this.m,this.Xd,this.Rd,this.nc,this.m,this.m,this.Od,this.lc,this.m,this.xc,this.Td,
this.m,this.m,this.m,this.Vd,this.pc,this.m,this.Bc,this.Qd,this.m,this.m,this.m,this.Pd,this.mc,this.m,this.pd,this.hc,this.m,this.m,this.uc,this.jc,this.ce,this.m,this.Zd,this.gc,this.be,this.m,this.tc,this.dc,this.$d,this.m,this.vc,this.ic,this.m,this.m,this.m,this.kc,this.de,this.m,this.te,this.fc,this.m,this.m,this.m,this.ec,this.ae,this.m,this.je,this.cd,this.m,this.m,this.m,this.ed,this.Ld,this.m,this.Wd,this.bd,this.Kd,this.m,this.od,this.Zc,this.Id,this.m,this.zc,this.dd,this.m,this.m,this.m,
this.fd,this.Md,this.m,this.Dc,this.ad,this.m,this.m,this.m,this.$c,this.Jd,this.m,this.ke,this.yb,this.m,this.m,this.m,this.Ab,this.he,this.m,this.Yd,this.xb,this.ge,this.m,this.nd,this.ub,this.ee,this.m,this.Ac,this.zb,this.m,this.m,this.m,this.Bb,this.ie,this.m,this.ve,this.wb,this.m,this.m,this.m,this.vb,this.fe,this.m,this.m,this.ze,this.m,this.m,this.He,this.Be,this.Ee,this.m,this.Yc,this.m,this.Ne,this.m,this.Ge,this.we,this.De,this.m,this.qc,this.Ae,this.m,this.m,this.Ie,this.Ce,this.Fe,this.m,
this.Pe,this.ye,this.Oe,this.m,this.m,this.xe,this.m,this.m,this.Fd,this.ud,this.Ad,this.m,this.Gd,this.wd,this.Bd,this.m,this.Le,this.td,this.Ke,this.m,this.Dd,this.qd,this.yd,this.m,this.rc,this.vd,this.m,this.m,this.Hd,this.xd,this.Cd,this.m,this.Ec,this.sd,this.Me,this.m,this.Ed,this.rd,this.zd,this.m,this.Rc,this.Jc,this.m,this.m,this.Sc,this.Lc,this.Vc,this.m,this.md,this.Ic,this.Xc,this.m,this.Qc,this.Fc,this.Tc,this.m,this.wc,this.Kc,this.m,this.m,this.m,this.Mc,this.Wc,this.m,this.Cc,this.Hc,
this.m,this.m,this.m,this.Gc,this.Uc,this.m,this.Oc,this.Gb,this.m,this.m,this.Pc,this.Ib,this.jd,this.m,this.ld,this.Fb,this.Nd,this.m,this.Nc,this.Cb,this.gd,this.m,this.sc,this.Hb,this.m,this.m,this.m,this.Jb,this.kd,this.m,this.ue,this.Eb,this.m,this.m,this.m,this.Db,this.hd,this.m];this.fb=[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(ua);f=ua.prototype;
f.reset=function(a){this.C.ma&&this.aa();va(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.Ca=!1;this.u?this.u.reset():a&&(!0===this.Ta||null===this.Ta&&!this.u&&void 0===this.H.run)&&this.va()};
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(ta);f=ta.prototype;
f.reset=function(a){this.C.ma&&this.aa();ua(this);this.f=this.a[65532]|this.a[65533]<<8;this.C.Ca=!1;this.u?this.u.reset():a&&(!0===this.Ta||null===this.Ta&&!this.u&&void 0===this.H.run)&&this.va()};
f.T=function(a,b,c){a=!1;switch(b){case "run":this.H[b]=c;c.onclick=function(a){return function(){a.C.ma?a.aa():a.va()}}(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.H[b]=c;a=!0;break;case "setSpeed":this.H[b]=c,c.onclick=function(a){return function(){M(a,2<=a.speed?a.Ra:a.speed+1,!0)}}(this),a=!0}return a};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.O?u("unsupported CPU address buffer offset ("+this.O+")"):this.X()};f.ha=function(a,b){if(a&&!this.C.M){this.J=b;(this.u=L(b,"debugger"))&&this.u.Tb();var c=L(b,"video");c&&(this.hb=function(a){return function(){wa(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.C.M=!0;this.reset(!0);this.update()}};function xa(a,b,c,d,e){0>ya(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa<c&&(a.pa=c),a.P.push([b,c,d,e]))}
function za(a,b,c){for(var d=0;d<a.P.length;d++)b>=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>ya(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ia<c&&(a.ia=c),a.K.push([b,c,d,e]))}function Aa(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function ya(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.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Sa[2<=b?0:b+1]),a.l("running at "+a.Sa[b].toLowerCase()+" speed "+a.ib[b]),c&&a.ca());a.U=0;a.Oa=ca();Ba(a)}f.hb=function(){};f.ca=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
function Ca(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Da(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.ta&&(a.H.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
function Ba(a,b){var c=30;c<a.Ja&&(c=a.Ja);c<a.Ia&&(c=a.Ia);var d=1;b&&a.speed>a.Ra&&a.ta&&(d=a.ta);d>a.Ma&&2>a.speed&&(d=a.Ma);a.kb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Xa=Math.floor(1E6/a.Ja*d);a.Wa=Math.floor(1E6/a.Ia*d);b||(a.R=a.ra,a.Z=a.Xa,a.V=a.Wa);a.Aa=0}
function Ea(a){var b=ca(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if(b=b-a.Oa)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.Ma&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c}
f.va=function(){if(I(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Ba(this,!0);this.$=0;this.lb=ca();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Ca(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();I(this,!1);ra(this,
b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Ea(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Fa(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&za(this,this.b,this.f);if(d=c)d=this.u,e=!1,Fa(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&Aa(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Fa(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Ga(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
f.update=function(){this.hb();Ca(this)};function Ha(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Da(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
function Ia(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ja(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
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.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;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.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function va(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
f.yc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Da(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Sd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Ud=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
f.oc=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Xd=function(){this.B=Da(this);this.a[this.G--]=this.B;this.G|=256};f.Rd=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.nc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Od=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.O?u("unsupported CPU address buffer offset ("+this.O+")"):this.X()};f.ha=function(a,b){if(a&&!this.C.M){this.J=b;(this.u=L(b,"debugger"))&&this.u.Tb();var c=L(b,"video");c&&(this.hb=function(a){return function(){va(a)}}(c),this.ca=function(a){return function(){a.ca()}}(c));this.C.M=!0;this.reset(!0);this.update()}};function wa(a,b,c,d,e){0>xa(a.P,b,c,d,e)&&(a.oa>b&&(a.oa=b),a.pa<c&&(a.pa=c),a.P.push([b,c,d,e]))}
function ya(a,b,c){for(var d=0;d<a.P.length;d++)b>=a.P[d][0]&&b<=a.P[d][1]&&a.P[d][3].call(a.P[d][2],b,c)}function N(a,b,c,d,e){0>xa(a.K,b,c,d,e)&&(a.da>b&&(a.da=b),a.ia<c&&(a.ia=c),a.K.push([b,c,d,e]))}function za(a,b,c){for(var d=0;d<a.K.length;d++)b>=a.K[d][0]&&b<=a.K[d][1]&&a.K[d][3].call(a.K[d][2],b,c)}function xa(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.H.setSpeed&&(a.H.setSpeed.innerHTML=a.Sa[2<=b?0:b+1]),a.l("running at "+a.Sa[b].toLowerCase()+" speed "+a.ib[b]),c&&a.ca());a.U=0;a.Oa=ca();Aa(a)}f.hb=function(){};f.ca=function(){};function O(a,b,c,d){void 0!==a.H[b]&&(void 0===d&&(d=1),c="0000"+c.toString(16),a.H[b].innerHTML=c.slice(c.length-d).toUpperCase())}
function Ba(a){O(a,"A",a.h,2);O(a,"X",a.w,2);O(a,"Y",a.F,2);var b=Ca(a);O(a,"C",b&1?1:0);O(a,"Z",b&2?1:0);O(a,"I",b&4?1:0);O(a,"D",b&8?1:0);O(a,"B",b&16?1:0);O(a,"V",b&64?1:0);O(a,"N",b&128?1:0);O(a,"S",a.G,4);O(a,"PC",a.f,4);a.H.speed&&a.ta&&(a.H.speed.innerHTML=a.ta.toFixed(1)+"Mhz")}
function Aa(a,b){var c=30;c<a.Ja&&(c=a.Ja);c<a.Ia&&(c=a.Ia);var d=1;b&&a.speed>a.Ra&&a.ta&&(d=a.ta);d>a.Ma&&2>a.speed&&(d=a.Ma);a.kb=Math.round(1E3/30);a.ja=Math.floor(1E6/c*d);a.ra=Math.floor(1E6/30*d);a.Xa=Math.floor(1E6/a.Ja*d);a.Wa=Math.floor(1E6/a.Ia*d);b||(a.R=a.ra,a.Z=a.Xa,a.V=a.Wa);a.Aa=0}
function Da(a){var b=ca(),c=a.kb;a.$&&(c=Math.round(c*a.$/a.ra));c=c-(b-a.lb);if(b=b-a.Oa)a.ta=Math.round(a.U/(100*b))/10,864E5<=b&&M(a);0>c?c=0:1==a.speed?a.ta<=a.Ma&&(c=0):2==a.speed&&(c=0);a.Aa+=a.$;return c}
f.va=function(){if(I(this,!0)){this.C.ma||(M(this),this.J&&this.J.start(),this.C.ma=!0,this.H.run&&(this.H.run.innerHTML="Halt"),this.ca());1E6<=this.Aa&&Aa(this,!0);this.$=0;this.lb=ca();try{do{this.step(this.ja);var a=this.L-this.D;this.U+=a;this.$+=a;this.L=this.D=0;this.Z-=this.ja;0>=this.Z&&(this.Z+=this.Xa,this.hb());this.V-=this.ja;0>=this.V&&(this.V+=this.Wa,Ba(this));this.R-=this.ja;if(0>=this.R){this.R+=this.ra;break}}while(this.C.ma)}catch(b){this.aa();this.update();I(this,!1);qa(this,
b.stack||b.message);return}setTimeout(function(a){return function(){a.va()}}(this),Da(this))}else this.update(),this.J&&this.J.stop(this.Oa,this.U)};
f.step=function(a){var b=!0;this.b=this.g=-1;var c;if(c=a&&this.u)c=this.u,c=0<c.sa.length||0<c.wa.length||0<c.ya.length;this.L=this.D=a;do{a=this.a[this.f];var d;if(d=c){d=this.u;var e=a,g=!1;Ea(d,this.f,d.sa,"exec")?g=!0:(d.L++,d.B[e][1]++,d.xa[d.La++]=d.s.f,d.La>=d.xa.length&&(d.La=0));d=!!g}if(d){b=void 0;this.aa();break}this.f++;this.o[a].call(this);if(0<=this.b){this.b>=this.oa&&this.b<=this.pa&&ya(this,this.b,this.f);if(d=c)d=this.u,e=!1,Ea(d,this.b,d.wa,"read")&&(e=!0),d=!!e;if(d){b=!1;this.aa();
break}this.b=-1}else if(0<=this.g){this.g>=this.da&&this.g<=this.ia&&za(this,this.g,this.f);if(d=c){d=this.u;var e=this.g,g=this.a[this.g],h=!1;(g&255)!=g&&(d.l("invalid value at "+q(e)+": "+g),h=!0);Ea(d,e,d.ya,"write")&&(h=!0);d=!!h}if(d){b=!1;this.aa();break}this.g=-1}this.D-=this.fb[a]}while(0<this.D);return b};function Fa(a){a.R=0;a.L-=a.D;a.D=0}f.aa=function(){J(this,!0);this.L-=this.D;this.D=0;this.C.ma&&(this.C.ma=!1,this.H.run&&(this.H.run.innerHTML="Run"))};
f.update=function(){this.hb();Ba(this)};function Ga(a){return a.C.ma?a.U+a.L-a.D:0}f.S=function(a){return this.a[a]};f.W=function(a,b){this.a[a]=b};function Ca(a){var b=a.c&256?1:0,b=b|(a.j&255?0:2),b=b|((a.v&255^a.A^a.v>>1)&128?64:0),b=b|(a.i&128?128:0);return a.B&60|b}
function Ha(a){a.B|=8;a.o[97]=a.$b;a.o[101]=a.bc;a.o[105]=a.Zb;a.o[109]=a.Wb;a.o[113]=a.ac;a.o[117]=a.cc;a.o[121]=a.Yb;a.o[125]=a.Xb;a.o[225]=a.pe;a.o[229]=a.re;a.o[233]=a.oe;a.o[237]=a.le;a.o[241]=a.qe;a.o[245]=a.se;a.o[249]=a.ne;a.o[253]=a.me}function Ia(a){a.B&=-9;a.o[97]=a.yb;a.o[101]=a.Ab;a.o[105]=a.xb;a.o[109]=a.ub;a.o[113]=a.zb;a.o[117]=a.Bb;a.o[121]=a.wb;a.o[125]=a.vb;a.o[225]=a.Gb;a.o[229]=a.Ib;a.o[233]=a.Fb;a.o[237]=a.Cb;a.o[241]=a.Hb;a.o[245]=a.Jb;a.o[249]=a.Eb;a.o[253]=a.Db}
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.A=b^c;a.v=e;a.i=e&255;160<=e&&(e+=96);512<=e&&(e-=256);a.c=e;a.j=b+c+d&255;a.D--;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.i=a.j=(a.c=b-c-d)&255;a.A=b^c;a.v=a.c;a.c^=256;a.D--;return e&255}function ua(a){a.h=0;a.w=0;a.F=0;a.G=256;a.B=0;a.i=0;a.j=0;a.A=0;a.v=0;a.c=0;a.f=0;a.b=-1;a.g=-1;a.ta=0;a.U=a.L=a.D=0}
f.yc=function(){this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.B|=16;this.B=Ca(this);this.a[this.G--]=this.B;this.G|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.Sd=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h|=this.a[this.b]};f.Ud=function(){this.b=this.a[this.f++];this.i=this.j=this.h|=this.a[this.b]};
f.oc=function(){this.g=this.a[this.f++];this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Xd=function(){this.B=Ca(this);this.a[this.G--]=this.B;this.G|=256};f.Rd=function(){this.b=this.f++;this.i=this.j=this.h|=this.a[this.b]};f.nc=function(){this.c=this.h<<1;this.i=this.j=this.h=this.c&255};f.Od=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.h|=this.a[this.b]};
f.lc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.xc=function(){this.f+=(this.i&128?0:(this.D--,this.a[this.f]<<24>>24))+1};f.Td=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Vd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h|=this.a[this.b]};
f.pc=function(){this.g=this.a[this.f++]+this.w&255;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};f.Bc=function(){this.c=0};f.Qd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.h|=this.a[this.b]};f.Pd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h|=this.a[this.b]};f.mc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.a[this.g]<<1;this.i=this.j=this.a[this.g]=this.c&255};
f.pd=function(){this.b=this.f++;this.a[this.G--]=this.f>>8;this.G|=256;this.a[this.G--]=this.f&255;this.G|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};f.hc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.h&=this.a[this.b]};f.uc=function(){this.b=this.a[this.f++];this.j=this.h&this.a[this.b];this.i=this.i&127|this.a[this.b]&128;this.v=0;this.A=this.a[this.b]&64?128:0};f.jc=function(){this.b=this.a[this.f++];this.i=this.j=this.h&=this.a[this.b]};
@ -64,102 +64,102 @@ f.xd=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.h=this.a[t
f.rd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.h=this.a[this.b]};f.zd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.w=this.a[this.b]};f.Rc=function(){this.b=this.f++;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Jc=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};
f.Sc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Lc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Vc=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.md=function(){this.i=this.j=this.F=this.F+1&255};f.Ic=function(){this.b=this.f++;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Xc=function(){this.i=this.j=this.w=this.w-1&255};
f.Qc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.F-this.a[this.b];this.c^=256};f.Fc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Tc=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.wc=function(){this.f+=(this.j&255?(this.D--,this.a[this.f]<<24>>24):0)+1};
f.Kc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Mc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Wc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Cc=function(){Ja(this)};
f.Kc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Mc=function(){this.b=this.a[this.f++]+this.w&255;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Wc=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Cc=function(){Ia(this)};
f.Hc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Gc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.c=this.h-this.a[this.b];this.c^=256};f.Uc=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]-1&255};f.Oc=function(){this.b=this.f++;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Gb=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.pe=function(){this.b=this.a[this.f++]+this.w&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=Q(this,this.h,this.a[this.b])};f.Pc=function(){this.b=this.a[this.f++];this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Ib=function(){this.b=this.a[this.f++];this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.re=function(){this.b=this.a[this.f++];this.h=Q(this,this.h,this.a[this.b])};f.jd=function(){this.g=this.a[this.f++];this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ld=function(){this.i=this.j=this.w=this.w+1&255};
f.Fb=function(){this.b=this.f++;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.oe=function(){this.b=this.f++;this.h=Q(this,this.h,this.a[this.b])};f.Nd=function(){};f.Nc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.c=this.w-this.a[this.b];this.c^=256};
f.Cb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.le=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=Q(this,this.h,this.a[this.b])};f.gd=function(){this.g=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.sc=function(){this.f+=(this.j&255?0:(this.D--,this.a[this.f]<<24>>24))+1};
f.Hb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.qe=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ia(this)};
f.Jb=function(){this.b=this.a[this.f++]+this.w&255;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.se=function(){this.b=this.a[this.f++]+this.w&255;this.h=Q(this,this.h,this.a[this.b])};f.kd=function(){this.g=this.a[this.f++]+this.w&255;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};f.ue=function(){Ha(this)};
f.Eb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.ne=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.F;this.h=Q(this,this.h,this.a[this.b])};
f.Db=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.c=this.h-this.a[this.b]-(this.c&256?0:1);this.A=this.h^this.a[this.b];this.v=this.c;this.i=this.j=this.h=this.c&255;this.c^=256};f.me=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.h=Q(this,this.h,this.a[this.b])};f.hd=function(){this.g=(this.a[this.f++]|this.a[this.f++]<<8)+this.w;this.i=this.j=this.a[this.g]=this.a[this.g]+1&255};
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Ga(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ua(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;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.o+"&format=bytes");t(a,this,this.A)}}B(R);
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?ra(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ka(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ka(this)}};
function Ka(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)ra(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function La(a){z.call(this,"C1PRAM",a)}B(La);La.prototype.ba=function(a){this.a=a;this.X()};
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
function Ma(a){z.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
f.Je=function(){var a;a=this.a[this.f++];switch(a){case 0:this.l("HALT");this.aa();break;case 1:a=this.f;for(var b="";a<this.a.length;){var c=this.a[a++];if(!c)break;b+=String.fromCharCode(c)}this.f=a;b=b.replace(/%A/g,n(this.h,2)).replace(/%X/g,n(this.w,2)).replace(/%Y/g,n(this.F,2));this.l(b);Fa(this);break;default:this.f-=2,this.l("undefined opSim: "+p(a)+" at "+q(this.f)),this.aa()}};f.m=function(){var a=this.a[--this.f];this.l("undefined opcode: "+p(a)+" at "+q(this.f));this.aa()};
x(function(){for(var a=F(document,"c1pjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new ta(d);E(d,c)}});function R(a){z.call(this,"C1PROM",a);this.b=this.a=null;this.g=a.size;if(this.o=a.image){a=this.o;var b;b=this.o;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.o+"&format=bytes");t(a,this,this.A)}}B(R);
R.prototype.ba=function(a,b,c,d){this.a=a;this.v=b;a=c-b+1;this.g||(this.g=a);a!=this.g?qa(this,"computer-specified ROM size ("+q(a)+") does not match component-specified size ("+q(this.g)+")"):(d&&(this.s=d,N(d,b,c,this,this.W)),Ja(this))};R.prototype.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};R.prototype.W=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.pb,!0);var c=a-this.v;this.a[this.v+c]=this.b?this.b[c]:0}};
R.prototype.A=function(a,b,c){if(c)this.l('Error loading ROM "'+a+'" ('+c+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes;e?this.b=e:this.b=d}catch(g){this.l('Error processing ROM "'+a+'": '+g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.b=Array(a.length),b=0;b<a.length;b++)this.b[b]=parseInt(a[b],16);Ja(this)}};
function Ja(a){if(!K(a))if(!a.o)a.X();else if(a.b&&a.a){var b=a.b.length;if(b!=a.g)qa(a,"ROM image size ("+q(b)+") does not match component-specified size ("+q(a.g)+")");else{for(var c=0;c<b;c++)a.a[a.v+c]=a.b[c];a.X()}}}x(function(){for(var a=F(document,"c1pjs","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new R(d);E(d,c)}});function Ka(a){z.call(this,"C1PRAM",a)}B(Ka);Ka.prototype.ba=function(a){this.a=a;this.X()};
x(function(){for(var a=F(document,"c1pjs","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ka(d);E(d,c)}});
function La(a){z.call(this,"C1PKeyboard",a);this.C.M=!1;this.Ia=a.model;this.da=8;this.fb=10;this.Xa=13;this.ia=27;this.Oa=this.da;this.Wa=this.fb;this.Ja=this.Xa;this.$=this.ia;this.L=241;this.Z=224;this.Sa=3;this.Ta=15;this.K=1;this.D=[];this.D["break"]=this.Z;this.D.esc=this.$;this.D["ctrl-c"]=this.Sa;this.D["ctrl-o"]=this.Ta;this.b=[];this.b[49]=30464;this.b[33]=30704;this.b[50]=30208;this.b[34]=30448;this.b[51]=29952;this.b[35]=30192;this.b[52]=29696;this.b[36]=29936;this.b[53]=29440;this.b[37]=
29680;this.b[54]=29184;this.b[38]=29424;this.b[55]=28928;this.b[39]=29168;this.b[56]=26368;this.b[40]=26608;this.b[57]=26112;this.b[41]=26352;this.b[48]=25856;this.b[58]=25600;this.b[42]=25840;this.b[45]=25344;this.b[61]=25584;this.b[46]=22272;this.b[62]=22512;this.b[108]=22016;this.b[76]=22256;this.b[92]=22256;this.b[111]=21760;this.b[79]=22E3;this.b[this.Oa]=22E3;this.b[this.Wa]=21504;this.b[this.Ja]=21248;this.b[119]=18176;this.b[87]=18416;this.b[101]=17920;this.b[69]=18160;this.b[114]=17664;this.b[82]=
17904;this.b[116]=17408;this.b[84]=17648;this.b[121]=17152;this.b[89]=17392;this.b[117]=16896;this.b[85]=17136;this.b[105]=16640;this.b[73]=16880;this.b[115]=14080;this.b[83]=14320;this.b[100]=13824;this.b[68]=14064;this.b[102]=13568;this.b[70]=13808;this.b[103]=13312;this.b[71]=13552;this.b[104]=13056;this.b[72]=13296;this.b[106]=12800;this.b[74]=13040;this.b[107]=12544;this.b[75]=12784;this.b[91]=12784;this.b[120]=9984;this.b[88]=10224;this.b[99]=9728;this.b[67]=9968;this.b[118]=9472;this.b[86]=
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}B(Ma);
f=Ma.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Na(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Oa(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Na(a,b,
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Oa(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Pa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Qa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
function U(a,b,c){a.B=b;Ra(a,c||300)}function Ra(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Oa(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Ra(a,b)}}(a),b)}
function Na(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Oa(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Qa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
function Oa(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Qa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Pa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Sa(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Sa(this,!1,a)};
function Sa(a,b,c){var d=Ha(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ma(d);E(d,c)}});
function Ta(a,b,c,d){z.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Ua(this);this.D=b;this.ia=c;this.o=d}B(Ta);f=Ta.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Va(a);wa(a)}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,xa(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Ua(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
f.Na=function(a){this.O=a;600==this.O?(Ua(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Ua(this,64,32));Va(this);wa(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));z.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Ha(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=ya(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Va(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
function wa(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
9712;this.b[98]=9216;this.b[66]=9456;this.b[110]=8960;this.b[78]=9200;this.b[94]=9200;this.b[109]=8704;this.b[77]=8944;this.b[93]=8944;this.b[44]=8448;this.b[60]=8688;this.b[113]=5888;this.b[81]=6128;this.b[97]=5632;this.b[65]=5872;this.b[122]=5376;this.b[90]=5616;this.b[32]=5120;this.b[47]=4864;this.b[63]=5104;this.b[59]=4608;this.b[43]=4848;this.b[112]=4352;this.b[80]=4592;this.b[64]=4592;this.b[this.L]=1536;this.b[this.$]=1280;this.b[240]=512;this.b[242]=256;this.b[244]=0;this.reset()}B(La);
f=La.prototype;f.reset=function(){this.Na(this.Ia);this.g=this.K;this.oa=0;this.o=[this.K,0,0,0,0,0,0,0];this.P=[];if(this.v)for(var a in this.v)isNaN(+a)||this.v[a]&&clearTimeout(this.v[a]);this.v=[];this.Aa=this.A=0;this.pa=-1;this.ja=this.o;this.qa=this.V=0;this.B=""};
f.T=function(a,b,c){if(void 0===this.H[b])switch(b){case "keyDown":return this.H[b]=c,c.onkeydown=function(a){return function(b){return Ma(a,b,!0)}}(this),!0;case "keyPress":return this.H[b]=c,c.onkeypress=function(a){return function(b){var c=!0;b=b||window.event;b=b.which||b.keyCode;a.B="";a.g&8?a.g&=-9:c=!Na(a,b);a.u&&G(a.u,a.u.za)&&a.u.message("keyPress("+p(b)+"): "+(c?"pass":"consume"));return c}}(this),!0;case "keyUp":return this.H[b]=c,c.onkeyup=function(a){return function(b){return Ma(a,b,
!1)}}(this),!0;case "break":return this.H[b]=c,c.onclick=function(a){return function(){a.J&&a.J.reset(!0)}}(this),!0;default:if(void 0!==this.D[b])return this.H[b]=c,c.onclick=function(a,b,c){return function(){a.s&&a.s.ca();return!Na(a,c)}}(this,b,this.D[b]),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.ra=b;this.ib=c-b+1;this.lb=this.ra+this.ib;d&&(this.s=d,N(d,b,c,this,this.W));this.X()};f.Na=function(a){this.O=a;this.R=255;600!=this.O&&(this.R=0,this.l("updated keyboard model: "+this.O))};
f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.u=L(b,"debugger"))};f.X=function(){this.U=(this.kb=v("iOS"))||v("Android");this.u&&G(this.u,this.u.za)&&this.u.message("mobile keyboard support: "+(this.U?"true":"false")+" ("+window.navigator.userAgent+")");z.prototype.X.call(this)};function Oa(a,b){var c=b?100:250;a.s&&a.s.ta&&(c/=a.s.ta);return c}function Pa(a,b){!a.A||void 0!==b&&b==a.A||(a.u&&G(a.u,a.u.za)&&a.u.message("autoClear("+p(a.A)+")"),clearTimeout(a.v[a.A]),T(a,a.A,!1,4))}
function U(a,b,c){a.B=b;Qa(a,c||300)}function Qa(a,b){if(0<a.B.length){var c=a.B.charCodeAt(0);10==c&&(c=13);65<=c&&90>=c&&(c+=32);a.B=a.B.substr(1);Na(a,c)}0<a.B.length&&setTimeout(function(a){return function(){Qa(a,b)}}(a),b)}
function Ma(a,b,c){var d,e=!c;b=b.keyCode;c&&(a.Aa=b);16==b?(a.g&=-5,c&&(a.g|=4),b+=224,e=!1):18==b?(a.g&=-3,c&&(a.g|=2),b+=224,e=!1):b==a.L-224?(a.g&=-65,c&&(a.g|=64),b+=224,e=!1):20==b?(c=!c,a.g&=~a.K,c&&(a.g|=a.K),b+=224,e=!1):91==b?(a.g&=-9,c&&(a.g|=8),e=!1,d=!0):d=9==b?e=!1:b==a.ia||b==a.da?c?!Na(a,b):!1:!0;e&&(a.g&=-9,a.U||b!=a.Aa||Pa(a));void 0===d&&(d=!T(a,b,c,2));a.u&&G(a.u,a.u.za)&&a.u.message("key"+(c?"Down":"Up")+"("+p(b)+"): "+(d?"pass":"consume"));return d}
function Na(a,b){var c=!1;b==a.Z?a.J&&(a.J.reset(!0),c=!0):(a.U&&65<=b&&90>=b&&(b+=32),Pa(a,b),T(a,b,!0,0)&&(a.s.speed==a.s.eb?T(a,b,!1,1):(c=!1,a.v[b]&&(clearTimeout(a.v[b]),c=!0),c=Oa(a,c),a.v[a.A=b]=setTimeout(function(a){return function(){T(a,b,!1,3)}}(a),c),a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): setTimeout()")),c=!0));a.u&&G(a.u,a.u.za)&&a.u.message("keyPressSimulate("+p(b)+"): "+(c?"true":"false"));return c}
function T(a,b,c,d){var e=!1;c||(a.v[b]=null,a.A==b&&(a.A=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.L),h=a.b[b]);void 0!==h&&(b=h>>12,e=h>>8&15,g||(g=h&255),c?(a.o[b]|=1<<e,a.o[0]=g==a.L?a.o[0]|64:240==g?a.o[0]|4:242==g?a.o[0]|2:a.o[0]&-71):(a.o[b]&=~(1<<e),a.o[0]&=-71,a.o[0]|=a.g&70),c=0==d&&!a.P.length,a.P.push(a.o.slice()),Ra(a,c),e=!0);return e}f.S=function(){};f.W=function(a){this.oa=this.s.S(a)^this.R;this.V++;Ra(this,!1,a)};
function Ra(a,b,c){var d=Ga(a.s);b||(a.s.speed==a.s.eb?b=void 0!==c&&32<=a.V:(b=d-a.qa,b=0>b||8192<=b));b&&(b=a.P.shift(),void 0!==b&&(a.ja=b),a.V=0,a.qa=d);for(b=d=0;8>b;b++)a.oa&1<<b&&(d|=a.ja[b]);d^=a.R;if(void 0!==c)a.a[c]=d;else if(c=a.ra,d!=a.pa)for(;c<a.lb;c++)a.a[c]=d;a.pa=d}x(function(){for(var a=F(document,"c1pjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new La(d);E(d,c)}});
function Sa(a,b,c,d){z.call(this,"C1PVideo",a);this.ja=a.model;this.Z=a.charCols;this.$=a.charRows;this.pa=a.screenWidth;this.qa=a.screenHeight;this.A=a.charWidth;this.B=a.charHeight;Ta(this);this.D=b;this.ia=c;this.o=d}B(Sa);f=Sa.prototype;f.reset=function(a){this.Na(this.ja);if(this.a)for(var b=this.K;b<this.P;b++)this.a[b]=a?Math.floor(256*Math.random()):32};f.T=function(a,b,c){switch(b){case "refresh":return this.H[b]=c,c.onclick=function(a){return function(){Ua(a);va(a)}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.K=b;this.oa=c-b+1;this.P=this.K+this.oa;d&&(this.s=d,wa(d,56832,56832,this,this.S),N(d,56832,56832,this,this.W));this.reset(!0)};function Ta(a,b,c,d,e){a.J=void 0!==b?b:a.Z;a.ra=void 0!==c?c:a.$;a.g=a.J*a.ra;a.P=a.K+a.g;a.V=void 0!==d?d:0;a.da=void 0!==e?e:c;a.R=Math.floor(a.pa/a.J);a.U=Math.floor(a.qa/a.da)}f.ca=function(){this.D.focus()};
f.Na=function(a){this.O=a;600==this.O?(Ta(this,this.Z,this.$,3,25),1024==this.g&&this.s&&(this.v=this.P+this.g-1,N(this.s,this.v,this.v,this,this.Mb))):(this.l("updated video model: "+this.O),Ta(this,64,32));Ua(this);va(this)};f.ha=function(a,b){if(a&&!this.C.M&&K(this)){if(this.C.M=!0,this.u=L(b,"debugger"),this.b=L(b,"keyboard"))this.b.T("canvas","keyDown",this.D),this.b.T("canvas","keyPress",this.D),this.b.T("canvas","keyUp",this.D)}else!a&&this.C.M&&(this.C.M=!1)};
f.X=function(){this.A||(this.A=Math.floor(this.o.width/16));this.B||(this.B=Math.floor(this.o.height/16));z.prototype.X.call(this)};f.S=function(a,b){var c=this.s.S(a);void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab);this.s.W(a,c&127|(Math.floor(Ga(this.s)/8333)&1?128:0))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.ab)};
f.Mb=function(a,b){if(void 0!==b){this.u&&S(this.u,this,a,b,this.u.ab,!0);this.Na(540);this.b&&this.b.Na(542);var c=this.s,d=c.K,e=[],g=xa(d,this.v,this.v,this,this.Mb);if(0<=g){e.push(d[g][0]);e.push(d[g][1]);d.splice(g,1);for(var h=65536,k=0,g=0;g<d.length;g++)h>d[g][0]&&(h=d[g][0]),k<d[g][1]&&(k=d[g][1]);e.push(h);e.push(k)}4==e.length&&(c.da=e[2],c.ia=e[3])}};function Ua(a){a.L=Array(a.g);for(var b=0;b<=a.g;b++)a.L[b]=-1}
function va(a){var b=0;if(a.C.M)for(;b<a.g;){var c=a.a[a.K+b];if(a.L[b]!=c){var d=Math.floor(b/a.J);if(d>=a.V&&(d-=a.V,d<a.da)){var e=c*a.A;a.ia.drawImage(a.o,e%a.o.width,Math.floor(e/a.o.width)*a.B,a.A,a.B,b%a.J*a.R,d*a.U,a.R,a.U)}a.L[b]=c}b++}}
x(function(){for(var a=F(document,"c1pjs","video"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer 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 Ta(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
function Wa(a){z.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}B(Wa);f=Wa.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
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 Sa(d,e,h,g);g.onload=function(a){return function(){a.X()}}(e,d.charSet);g.src=d.charSet;E(e,c)}});
function Va(a){z.call(this,"C1PSerialPort",a);this.C.M=!1;this.O=a.demo;this.reset()}B(Va);f=Va.prototype;f.reset=function(){if(2!=this.g){this.v=this.B=0;var a=1;if(this.rb){var b=this.rb.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.o='10 PRINT "HELLO OSI #'+a+'"\n';this.g=this.A=0}};f.start=function(){this.b&&this.O&&(U(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.g=1;U(a.b,"LOAD\n")}}(this),12E3));this.O=!1};
f.T=function(a,b,c){var d=this;switch(b){case "listSerial":return this.H[b]=c,!0;case "loadSerial":return this.H[b]=c,c.onclick=function(){d.H.listSerial&&t(d.H.listSerial.value,d,d.sb)},!0;case "mountSerial":return!v("Mobi")&&window&&"FileReader"in window?(this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){d.sb(b.name,c.result.toString(),
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)xa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Xa(this):this.o&&!this.A&&Xa(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
function Xa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Wa(d);E(d,c)}});function Ya(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Ya);f=Ya.prototype;
f.reset=function(a){Za(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
function Za(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:$a(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,ab(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,bb(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:$a(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
a.o.update(a.o.I|128),ab(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){bb(a)}}(a),
0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};f.ba=function(a,b,c,d){this.a=a;this.D=b;this.L=c-b+1;this.K=this.D+this.L;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.J=b,this.b=L(b,"keyboard"),this.u=L(b,"debugger"))};
f.sb=function(a,b,c){b?(this.o=b,this.g=this.A=0,this.J&&this.b&&this.s.C.ma?(this.l("auto-loading "+a),this.s.ca(),"."!=this.o.charAt(0)?(this.g=1,U(this.b,"NEW\nLOAD\n")):(this.g=2,this.J.reset(!0),U(this.b,"ML"))):this.l(a+" ready to load")):this.l(a+" load error ("+c+")")};f.S=function(a,b){void 0!==b&&(a&1?Wa(this):this.o&&!this.A&&Wa(this))};f.W=function(a,b){void 0!==b&&this.u&&S(this.u,this,a,b,this.u.Rb,!0)};
function Wa(a){if(void 0!==a.o){a.B=0;a.v=0;if(a.A<a.o.length){var b=a.o.charCodeAt(a.A++);10==b&&(b=13);a.B=b;a.v=1}else 1==a.g&&a.b&&U(a.b," \nRUN\n"),a.g=0;for(b=a.D+0;b<a.K;b+=2)a.a[b]=a.v?1:0;for(b=a.D+1;b<a.K;b+=2)a.a[b]=a.v?a.B:0}}x(function(){for(var a=F(document,"c1pjs","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Va(d);E(d,c)}});function Xa(a){z.call(this,"C1PDiskController",a);this.C.M=!1;this.reset(!0)}B(Xa);f=Xa.prototype;
f.reset=function(a){Ya(this);this.b=-1;a&&(this.g=[],this.g[0]={Se:0,tb:40,Sb:!0,Fa:20,na:0,Ea:-1,Va:[]})};
function Ya(a){a.K={I:64,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.B.I&4||V(a,0,this)}}(a)};a.o={I:255,read:function(){this.update()},update:function(a){return function(c){void 0===c?c=a.o.I:Za(a,c,a.A.I);c=(c|190)&-2;if(0<=a.b&&a.g[a.b].Va.length){var d=a.g[a.b];d.Sb&&(c&=-33);d.na||(c&=-3);10>=--d.Fa&&(0<d.Fa?(c&=-129,$a(a)):(d.Fa=100,0<=a.b&&(a.g[a.b].Ea=0,ab(a))))}this.I=c;a.B.I&4&&V(a,0,this)}}(a)};a.B={I:0,read:function(){},update:function(a){return function(c){void 0!==
c&&(this.I=c&-193);V(a,1,this);a.o.update();a.K.update()}}(a)};a.L={I:255,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c);a.D.I&4||V(a,2,this)}}(a)};a.A={I:255,read:function(){},update:function(a){return function(c){void 0===c?c=a.A.I:Za(a,a.o.I,c);if(0<=a.b&&a.b<a.g.length){var d=a.g[a.b];d.Va.length&&a.A.I&8&&!(c&8)&&(c&4?d.na--:d.na++,a.u&&G(a.u,a.u.Ha)&&a.u.message("stepping "+(c&4?"down":"up")+" to track "+d.na),d.na>=d.tb&&(d.na=d.tb),0>d.na&&(d.na=0),d.Fa=20,
a.o.update(a.o.I|128),$a(a))}this.I=c;a.D.I&4&&V(a,2,this)}}(a)};a.D={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(this.I=c&-193);V(a,3,this);a.A.update();a.L.update()}}(a)};a.P={I:0,read:function(){},update:function(a){return function(c){void 0!==c&&(3==(c&3)&&(a.v.I=14),this.I=c);a.v.update()}}(a)};a.v={I:14,read:function(){},update:function(a){return function(c){void 0===c&&(c=a.v.I);c&=-2;0<=a.b&&0<=a.g[a.b].Ea&&(c|=1);this.I=c;V(a,16,this)}}(a)};a.O={I:0,read:function(a){return function(){ab(a)}}(a),
update:function(a){return function(c){void 0!==c&&(this.I=c);V(a,17,this)}}(a)};a.R={I:0,read:function(){},update:function(){return function(){}}(a)}}
f.T=function(a,b,c){switch(b){case "listDisk":return this.H[b]=c,!0;case "loadDisk":return this.H[b]=c,c.onclick=function(a){return function(){if(a.H.listDisk){var b=a.H.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);var h=b,k=b.lastIndexOf("/");0<=k&&(h=b.substr(k+1));k=h.indexOf("&");0<k&&(h=h.substr(0,k));a.l("loading "+h+"...");t(c,a,a.Ub)}}}(this),!0}return!1};
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)xa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[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 Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){cb(c,g,"trackSig");db(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);cb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(H){this.l("disk data error: "+
H.message)}}};function db(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 W(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 cb(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 eb(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=eb(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=eb(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function $a(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function ab(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
function bb(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,ab(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ya(d);E(d,c)}});
function fb(a){z.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="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.V=["HLT","MSG"];gb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
f.ba=function(a,b,c,d){this.a=a;this.J=b;if(this.s=d)wa(d,b,c,this,this.S),N(d,b,c,this,this.W);this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.u=L(b,"debugger"))};
f.Ub=function(a,b,c){if(c)this.l("disk load error ("+c+")");else{c=[];this.l("mounting "+a+"...");try{if(c=eval("("+b+")"),c.length)if(c[0].length){var d=c[0];if(void 0===d[0].trackNum)this.l("data error: "+d[0]);else if(this.g[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 Error("track "+b+" missing data");e!=b&&u("track "+e+" out of order (expected "+b+")");c=[];var k,l,m;if(e){bb(c,g,"trackSig");cb(c,g);W(c,g,"trackType");for(var r=0;r<h.length;r++){k=
h[r];l=k.sectorData;W(c,k,"sectorSig");W(c,k,"sectorNum");W(c,k,"sectorPages");for(m=0;m<l.length;m++)c.push(l[m]);bb(c,k,"sectorEndSig")}}else for(k=h[0],l=k.sectorData,W(c,g,"trackLoad",2),W(c,k,"sectorPages"),m=0;m<l.length;m++)c.push(l[m]);d[e].Lb=c;this.u&&G(this.u,this.u.Ha)&&this.u.message("track "+e+": "+c.length+" bytes")}this.g[0].Va=d;this.l("mount of "+a+" complete")}else this.l("no available drives")}else this.l("no tracks: "+a);else this.l("no data: "+a)}catch(H){this.l("disk data error: "+
H.message)}}};function cb(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 W(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 bb(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 db(a,b,c){b&=63;16>b?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.B.I&4?a.o:a.K;break;case 1:a=a.B;break;case 2:a=a.D.I&4?a.A:a.L;break;case 3:a=a.D;break;case 16:a=c?a.P:a.v;break;case 17:a=a.O;break;default:a=a.R}return a}f.S=function(a,b){if(void 0!==b){var c=db(this,a-this.J,!1);this.u&&S(this.u,this,a,b,this.u.Ha,!1,c.Kb);c.read()}};
f.W=function(a,b){if(void 0!==b){var c=this.s.S(a),d=db(this,a-this.J,!0);if(this.u&&G(this.u,this.u.Ha|this.u.pb)&&(S(this.u,this,a,b,this.u.Ha,!0,d.Kb),d.Pb))for(var e=128,g=d.I^c;g&&e;)g&e&&this.u.message(" changed "+d.Kb+"."+d.Pb[e]+" to "+(c&e?"1":"0")),e>>=1;d.update(c)}};function Za(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.o.I&64||(d|=1));a.b!=d&&(a.b=d,a.v.update())}function $a(a){0<=a.b&&(a.g[a.b].Ea=-1,a.O.update(255),a.v.update())}
function ab(a){var b=null;if(0<=a.b){var b=a.g[a.b],c=b.Va[b.na];void 0!==c&&(0<=b.Ea&&b.Ea<c.Lb.length?(b.Fa=100,b=c.Lb[b.Ea++],a.O.update(b),a.v.update()):(b.Fa=10,$a(a)))}}function V(a,b,c){a.s.W(b+a.J,c.I)}x(function(){for(var a=F(document,"c1pjs","disk"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Xa(d);E(d,c)}});
function eb(a){z.call(this,"C1PDebugger",a);this.u=this;this.L=-1;this.ua=0;this.nb=null;this.Ya=!1;this.ga=0;this.sa=[];this.wa=[];this.ya=[];this.La=0;this.xa=[];this.B=[];this.pb=1;this.za=16;this.ab=32;this.Ha=64;this.Rb=128;this.la=this.Z=0;this.Ua={port:1,kbd:16,video:32,disk:64,serial:128};this.Qa=28;this.bb=56;this.Ka="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.V=["HLT","MSG"];fb(this,!0);this.fa=[[10],[34,1,this.D],[this.bb,1],[],[],[34,1,this.b],[2,1,this.b],[],[36],[34,1,this.v],[2,0,this.P],[],[],[34,2,this.N],[2,2,this.N],[],[9,1,this.ea],[34,1,this.J],[],[],[],[34,1,this.g],[2,1,this.g],[],[13],[34,2,this.A],[],[],[],[34,2,this.o],[2,2,this.o],[],[this.Qa,2,this.Pa],[1,1,this.D],[],[],[6,1,this.b],[1,1,this.b],[39,1,this.b],[],[38],[1,1,this.v],[39,0,this.P],[],[6,2,this.N],[1,2,this.N],[39,2,this.N],[],[7,1,this.ea],[1,1,this.J],[],[],[],[1,
1,this.g],[39,1,this.g],[],[44],[1,2,this.A],[],[],[],[1,2,this.o],[39,2,this.o],[],[41],[23,1,this.D],[],[],[],[23,1,this.b],[32,1,this.b],[],[35],[23,1,this.v],[32,0,this.P],[],[27,2,this.Pa],[23,2,this.N],[32,2,this.N],[],[11,1,this.ea],[23,1,this.J],[],[],[],[23,1,this.g],[32,1,this.g],[],[15],[23,2,this.A],[],[],[],[23,2,this.o],[32,2,this.o],[],[42],[0,1,this.D],[],[],[],[0,1,this.b],[40,1,this.b],[],[37],[0,1,this.v],[40,0,this.P],[],[27,2,this.ob],[0,2,this.N],[40,2,this.N],[],[12,1,this.ea],
[0,1,this.J],[],[],[],[0,1,this.g],[40,1,this.g],[],[46],[0,2,this.A],[],[],[],[0,2,this.o],[40,2,this.o],[],[],[47,1,this.D],[],[],[49,1,this.b],[47,1,this.b],[48,1,this.b],[],[22],[],[53],[],[49,2,this.N],[47,2,this.N],[48,2,this.N],[],[3,1,this.ea],[47,1,this.J],[],[],[49,1,this.g],[47,1,this.g],[48,1,this.U],[],[55],[47,2,this.A],[54],[],[],[47,2,this.o],[],[],[31,1,this.v],[29,1,this.D],[30,1,this.v],[],[31,1,this.b],[29,1,this.b],[30,1,this.b],[],[51],[29,1,this.v],[50],[],[31,2,this.N],[29,
2,this.N],[30,2,this.N],[],[4,1,this.ea],[29,1,this.J],[],[],[31,1,this.g],[29,1,this.g],[30,1,this.U],[],[16],[29,2,this.A],[52],[],[31,2,this.o],[29,2,this.o],[30,2,this.A],[],[19,1,this.v],[17,1,this.D],[],[],[19,1,this.b],[17,1,this.b],[20,1,this.b],[],[26],[17,1,this.v],[21],[],[19,2,this.N],[17,2,this.N],[20,2,this.N],[],[8,1,this.ea],[17,1,this.J],[],[],[],[17,1,this.g],[20,1,this.g],[],[14],[17,2,this.A],[],[],[],[17,2,this.o],[20,2,this.o],[],[18,1,this.v],[43,1,this.D],[],[],[18,1,this.b],
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.N],[43,2,this.N],[24,2,this.N],[],[5,1,this.ea],[43,1,this.J],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}B(fb);f=fb.prototype;
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",hb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ea(c,function(){return d.R?(b=d.R.value,hb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ea(c,function(a){var b=!1;J(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
[43,1,this.b],[24,1,this.b],[],[25],[43,1,this.v],[33],[],[18,2,this.N],[43,2,this.N],[24,2,this.N],[],[5,1,this.ea],[43,1,this.J],[],[],[],[43,1,this.g],[24,1,this.g],[],[45],[43,2,this.A],[],[],[],[43,2,this.o],[24,2,this.o],[]]}B(eb);f=eb.prototype;
f.T=function(a,b,c){var d=this;switch(b){case "debugInput":return this.R=this.H[b]=c,this.R.focus(),c.onkeypress=function(a,c){return function(d){13==d.keyCode&&(b=c.value,c.value="",gb(a,b))}}(this,c),!0;case "debugEnter":return this.H[b]=c,ea(c,function(){return d.R?(b=d.R.value,gb(d,b),!0):!1}),!0;case "step":return this.H[b]=c,ea(c,function(a){var b=!1;J(d,!0)||(I(d,!0),b=d.step(a?1:0),I(d,!1));return b}),!0}return!1};
f.ba=function(a,b,c){this.a=a;this.O=b;this.qa=c-b+1;this.Ga=this.O+this.qa;this.X()};f.ha=function(a,b){a&&!this.C.M&&(this.C.M=!0,this.s=L(b,"cpu"))};f.ca=function(){this.R.focus()};
function gb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[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.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
d=0;d<a.ka.length;d++)e=a.ka[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.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Ga(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
f.va=function(){if(!ib(this))return!1;this.s.va();return!0};f.step=function(a){if(!ib(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,ra(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?jb(this):kb(this)};function ib(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=ca();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);lb(this,this.s.f)};function mb(a,b){return a+(b<<24>>24)}
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(za(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,Aa(this.s,a),this.s.update())};function nb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(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 ob(a,b){void 0!==b&&(lb(a,a.K),nb(a,b)&&(a.K=b))}
function lb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Fa(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
function pb(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(mb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
function fb(a,b){a.P=0;a.v=1;a.o=2;a.A=3;a.Pa=4;a.ob=5;a.g=6;a.U=7;a.D=8;a.J=9;a.N=10;a.b=11;a.ea=a.Pa;var c="",d,e;if(b)for(a.ka="A #$nn $nnnn,X $nnnn,Y $nnnn ($nnnn) $nn,X $nn,Y ($nn,X) ($nn),Y $nnnn $nn".split(" "),d=0;d<a.ka.length;d++)e=a.ka[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.ka="A nn [nnnn+X] [nnnn+Y] nnnn [nnnn] [nn+X] [nn+Y] [[nn+X]] [[nn]+Y] [nnnn] [nn]".split(" "),
d=0;d<a.ka.length;d++)e=a.ka[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.Qe=new RegExp(c);a.Qb=[27,a.Qa,9,7,11,12,3,4,8,5]}f.aa=function(){this.s.aa()};function S(a,b,c,d,e,g,h){(a.la&e)==e&&(e=a.s.S(c),a.message(b.id+"."+(g?"setByte":"getByte")+"("+q(c)+")"+(void 0!==d?" @"+q(d):"")+": "+(h?h+"=":"")+p(e)))}f.message=function(a){this.l(a);Fa(this.s)};f.Tb=function(){this.l("Type ? for list of debugger commands\n")};
f.va=function(){if(!hb(this))return!1;this.s.va();return!0};f.step=function(a){if(!hb(this))return!1;var b;try{b=this.s.step(a)}catch(c){b=void 0,qa(this.s,c.stack||c.message)}void 0!==b&&this.L++;this.s.update(!0);this.update(!0);return b};f.update=function(a){this.ua=this.s.f;a||this.Da?ib(this):jb(this)};function hb(a){a.s&&K(a.s)&&!J(a.s)?(a=a.s,a.C.Ca?(a.l(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}
f.reset=function(){var a;this.xa.length||(this.xa=Array(1E3));for(a=0;a<this.xa.length;a++)this.xa[a]=-1;this.B.length||(this.B=Array(256));for(a=0;a<this.B.length;a++)this.B[a]=[a,0];this.L&&this.update();this.L=0};f.start=function(){this.Da||this.l("running")};f.stop=function(a,b){if(!this.Da&&(this.l("stopped"),b)){var c=ca();this.l(c-a+"ms ("+b+" cycles)")}this.update();this.ca();this.Da||(this.L=0);kb(this,this.s.f)};function lb(a,b){return a+(b<<24>>24)}
f.S=function(a){var b;a>=this.O&&a<this.Ga&&(ya(this.s,a),b=this.a[this.O+a],b&=255);return b};f.W=function(a,b){a<this.O||a>=this.Ga?this.l("invalid address: "+q(a)):(this.a[this.O+a]=b&255,za(this.s,a),this.s.update())};function mb(a,b){X(a.sa,b,void 0)||a.sa.push(b);return!0}function X(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 nb(a,b){void 0!==b&&(kb(a,a.K),mb(a,b)&&(a.K=b))}
function kb(a,b){void 0!==a.K&&b==a.K&&X(a.sa,a.K,!0)&&(a.K=void 0);a.Da=!1}function Ea(a,b,c,d){for(var e=!1,g=0;g<c.length;g++)if(c[g]==b){b!=a.K&&a.l("breakpoint hit: "+q(b)+" ("+d+")");e=!0;break}return e}
function ob(a,b,c){var d=n(b,4),e=a.S(b++),g=a.fa[e],h=void 0===e?0:e,k=[],l=void 0===g[1]?0:g[1];do{d+=" "+n(h,2);if(!l--)break;h=a.S(b++);if(void 0===h)break;k.push(h)}while(1);void 0===g[0]&&(g=[57,1,a.v],k.push(e));var d=(d+" ").substr(0,15),d=d+a.Ka[g[0]],m=null;if(void 0!==g[2]){l=g[2];m=a.ka[l];if(1==g[1]&&l==a.ea)m=m.replace(/nnnn/,n(lb(b,h=k.pop()),4));else for(;k.length;)m=m.replace(/nn/,n(h=k.pop(),2));l==a.v&&1==g[1]&&32<=h&&128>h&&(m+=" ;'"+String.fromCharCode(h)+"'")}if(e==a.s.bb&&
(h<a.V.length&&(m=a.V[h]),h==a.s.Nb)){l=0;for(m='"';h=a.S(b++);)16>l?m+=String.fromCharCode(h):16==l&&(m+="\u2026"),l++;m+='"'}m&&(d+=" "+m);c&&(d=(d+" ").substr(0,30),d+=";"+c.toString());a.$=b;return d}
function Y(a,b){var c=a.ua;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.l("invalid base-"+d+" address: "+b),c=void 0)}void 0!==c&&(c<a.O||c>=a.Ga)&&(a.l("address out of range: "+n(c)),c=void 0);return c}
function qb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0,d;if(a.B)if("clear"==b){for(d=0;d<a.B.length;d++)a.B[d]=[d,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var e=a.B.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.l(a.Ka[a.fa[g][0]]+" ("+p(g)+"): "+h+" times"),c++)}}c||a.l("no frequency data available")}}
function jb(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ua&&a.l();d--&&e<b;)c=pb(a,e,J(a,!1)||a.Da?a.L:0),a.l(c),a.ua=e=a.$}}
function kb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("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.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ia(a.s):Ja(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Da(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
4));c&&jb(a,n(a.ua=a.s.f,4))}}function rb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;da(c,function(a){return function(){return I(a,!0)&&a.step(d)}}(a),function(a){return function(){I(a,!1)}}(a))}
function hb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
function pb(a,b){if("?"==b)a.l("\nfrequency commands:"),a.l("clear\tclear all frequency counts");else{var c=0,d;if(a.B)if("clear"==b){for(d=0;d<a.B.length;d++)a.B[d]=[d,0];a.l("frequency data cleared");c++}else if(void 0!==b)a.l("unknown frequency command: "+b),c++;else{var e=a.B.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.l(a.Ka[a.fa[g][0]]+" ("+p(g)+"): "+h+" times"),c++)}}c||a.l("no frequency data available")}}
function ib(a,b,c,d){var e=Y(a,b);if(void 0!==e){void 0===d&&(d=1);b=a.Ga;if(void 0!==c){b=Y(a,c);if(void 0===b||b<e)return;if(256<b-e){a.l("range too large");return}b++;d=-1}for(e!=a.ua&&a.l();d--&&e<b;)c=ob(a,e,J(a,!1)||a.Da?a.L:0),a.l(c),a.ua=e=a.$}}
function jb(a,b){if(b&&"?"==b[1])a.l("\nregister commands:"),a.l("r to display all"),a.l("r [target=value] to modify"),a.l("supported targets:"),a.l("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.l("missing value for "+b[1]);return}g=parseInt(e,16);if(isNaN(g)){a.l("invalid value: "+e);return}switch(d.toUpperCase()){case "A":a.s.h=g&255;break;case "X":a.s.w=g&
255;break;case "Y":a.s.F=g&255;break;case "C":a.s.c=g?256:0;break;case "Z":a.s.j=g?0:1;break;case "D":g?Ha(a.s):Ia(a.s);break;case "V":g?(d=a.s,d.v=0,d.A=128):(d=a.s,d.v=0,d.A=0);break;case "N":a.s.i=g?128:0;break;case "S":if(256!=(g&-256)){a.l("invalid stack pointer: "+e);return}a.s.G=g;break;case "PC":c=!0;a.s.f=g&65535;a.ua=a.s.f;break;default:a.l("unknown register: "+d);return}a.s.update()}a.l("A="+n(a.s.h,2)+" X="+n(a.s.w,2)+" Y="+n(a.s.F,2)+" P="+n(Ca(a.s),2)+" S="+n(a.s.G,4)+" PC="+n(a.s.f,
4));c&&ib(a,n(a.ua=a.s.f,4))}}function qb(a,b){var c=void 0===b?1:parseInt(b,10),d=1==c?0:1;da(c,function(a){return function(){return I(a,!0)&&a.step(d)}}(a),function(a){return function(){I(a,!1)}}(a))}
function gb(a,b){b.length||(a.Ya?(a.l("ended assemble @"+n(a.ga,4)),a.ua=a.ga,a.Ya=!1):a.nb&&(b=a.nb));if(K(a)&&!J(a,!0)&&0<b.length){a.Ya?b="a "+n(a.ga,4)+" "+b:1<b.length&&1!=b.indexOf(" ")&&(b=b.charAt(0).toLowerCase()+" "+b.substr(1));var c=b.split(" ");a.nb=c[0];switch(c[0].toLowerCase()){case "a":var d=Y(a,c[1]);if(void 0!==d)if(a.ga=d,void 0===c[2])a.l("begin assemble @"+q(a.ga)),a.Ya=!0,a.s.update();else{var e,g=c[2],h=c[3],c=a.ga,d=[];if(void 0!==g){var k,g=g.toUpperCase();"?"==g.charAt(g.length-
1)&&(h="?",g=g.substr(0,g.length-1));for(k=0;k<a.Ka.length&&g!=a.Ka[k];k++);k==a.Ka.length&&(a.l("unknown operation: "+g),k=-1);var l="",m;if(0<=k&&void 0!==h)if(l=h.toUpperCase(),"?"==l){for(h=m=0;h<a.fa.length;h++)a.fa[h][0]===k&&(m||a.l("supported opcodes:"),a.l(" "+n(h,2)+": "+g+(void 0!==a.fa[h][2]?" "+a.ka[a.fa[h][2]]:"")),m++);k=-1}else if(m=l.match(a.Qe),null!==m&&m[0]==l){for(h=1;h<m.length;h++)if(m[h]==l)if(void 0===e)e=h-1;else{a.l("too many operand matches (both "+a.ka[e]+" and "+
a.ka[h-1]+")");k=-1;break}e==a.Pa&&0>a.Qb.indexOf(k)&&(e=a.N);e==a.ob&&27!=k&&(e=a.N)}else a.l("unknown operand: "+l),k=-1;if(0<=k){m=-1;for(h=0;h<a.fa.length;h++)if(a.fa[h][0]===k&&a.fa[h][2]===e)if(0>m)m=h;else{a.l("too many instruction matches (both "+p(m)+" and "+p(h)+")");m=-2;break}if(0<=m){if(d.push(m),void 0!==e)if(g=a.fa[m][1],l=l.match(/[0-9A-F]+/),null!==l)for(l=parseInt(l[0],16),1==g&&e==a.ea&&(l-=c+2,-128>l||127<l)&&(a.l("branch out of range ("+l+")"),d=[],g=0),h=0;h<g;h++)d.push(l&255),
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(pb(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("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.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?nb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
l>>>=8;else g&&a.l("instruction missing "+g+" bytes")}else a.l("unknown instruction: "+g+" "+l+"")}}e=d;if(e.length){for(c=0;c<e.length;c++)a.W(a.ga+c,e[c]);a.l(ob(a,a.ga));a.ga+=e.length}}break;case "b":e=c[1];c=c[2];if(void 0===e||"?"==e)a.l("\nbreakpoint commands:"),a.l("bp [a]\tset exec breakpoint at [a]"),a.l("br [a]\tset read breakpoint at [a]"),a.l("bw [a]\tset write breakpoint at [a]"),a.l("bc [a]\tclear breakpoint at [a]"),a.l("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.sa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (exec)"),e++;d=a.wa;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (read)"),e++;d=a.ya;for(c=0;c<d.length;c++)a.l("breakpoint enabled: "+q(d[c])+" (write)"),e++;e||a.l("no breakpoints")}else void 0===c?a.l("missing breakpoint address"):"c"==e&&"*"==c?(a.sa=[],a.wa=[],a.ya=[],a.l("all breakpoints cleared")):(c=Y(a,c),void 0!==c&&("p"==e?mb(a,c)?a.l("breakpoint enabled: "+q(c)+" (exec)"):
a.l("breakpoint not set: "+q(c)):"c"==e?X(a.sa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (exec)"):X(a.wa,c,!0)?a.l("breakpoint cleared: "+q(c)+" (read)"):X(a.ya,c,!0)?a.l("breakpoint cleared: "+q(c)+" (write)"):a.l("breakpoint missing: "+q(c)):"r"==e?(X(a.wa,c,void 0)||a.wa.push(c),a.l("breakpoint enabled: "+q(c)+" (read)")):"w"==e?(X(a.ya,c,void 0)||a.ya.push(c),a.l("breakpoint enabled: "+q(c)+" (write)")):a.l("unknown breakpoint command: "+e)));break;case "d":e=c[1];d=c[2];if("?"==e)a.l("\ndump commands:"),
a.l("d [a] [#] dump # lines of memory");else if(e=Y(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++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":qb(a,c[1]);break;case "g":e=
c[1];void 0!==e&&ob(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":gb(a,
!0);a.l("classic syntax enabled");break;case "modern":gb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(pb(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":kb(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(ob(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):rb(a);break;case "t":rb(a,c[1]);break;case "u":jb(a,c[1],c[2],8);break;case "?":case "help":a.l("\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.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new fb(d);E(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
a.l("d [a] [#] dump # lines of memory");else if(e=Y(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++){l=g="";h=e;for(k=0;8>k&&e<a.Ga;k++)m=a.S(e),void 0===m&&(m=0),g+=n(m,2)+" ",l+=32<=m&&128>m?String.fromCharCode(m):".",e++;a.l(n(h,4)+" "+g+l)}a.ua=e}break;case "e":e=c[1];if(void 0===e)a.l("missing address");else if(e=Y(a,e),void 0!==e)for(d=2;d<c.length;d++)g=parseInt(c[d],16),a.W(e++,g);break;case "f":pb(a,c[1]);break;case "g":e=
c[1];void 0!==e&&nb(a,Y(a,e));a.va()||a.s.ca();break;case "h":a.aa();break;case "o":if(void 0===c[1]||"?"==c[1])a.l("\noption commands:"),a.l("max\trun at maximum speed"),a.l("fast\trun faster (up to "+a.s.Ma+"Mhz)"),a.l("slow\trun at normal speed (1Mhz)"),a.l("classic\tuse classic operand syntax"),a.l("modern\tuse modern operand syntax"),a.l("msg\tenable message categories");else switch(e=c[1],e){case "slow":M(a.s,a.s.Ra);break;case "fast":M(a.s,a.s.Ob);break;case "max":M(a.s,a.s.eb);break;case "classic":fb(a,
!0);a.l("classic syntax enabled");break;case "modern":fb(a,!1);a.l("modern syntax enabled");break;case "msg":e=0;void 0!==c[2]&&("all"==c[2]?e=255:void 0!==a.Ua[c[2]]&&(e=a.Ua[c[2]]),e&&("on"==c[3]?a.la|=e:"off"==c[3]&&(a.la&=~e)));for(d in a.Ua)if(void 0===c[2]||"all"==c[2]||c[2]==d)e=a.Ua[d],a.l(d+" messages: "+(a.la&e?"on":"off"));break;default:a.l("unknown option: "+e)}break;case "p":l=c[1];e=10;c=a.La;d=a.xa;if(void 0!==d){g=void 0===l?a.Vb:parseInt(l,10);void 0===g&&(g=10);g>d.length&&(a.l("note: only "+
d.length+" available"),g=d.length);void 0!==l&&(a.mb=0,a.l(g+" instructions earlier:"));l=a.mb?a.mb:1;c-=g;for(0>c&&(c=d.length-1);e&&c!=a.La;){h=d[c];if(0>h)break;a.l(ob(a,h,l++));++c==d.length&&(c=0);e--;g--}a.Vb=g;a.mb=l}10==e&&a.l("no history available");break;case "r":jb(a,c);break;case "s":a.S(a.s.f)==a.s.Qa?(nb(a,a.s.f+3),a.Da=!0,a.va()||a.s.ca()):qb(a);break;case "t":qb(a,c[1]);break;case "u":ib(a,c[1],c[2],8);break;case "?":case "help":a.l("\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.l("note: frequency and history commands operate only when breakpoints are set");break;default:a.l("unknown command: "+b)}}}x(function(){for(var a=F(document,"c1pjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new eb(d);E(d,c)}});function Z(a,b){z.call(this,"C1PComputer",a);this.Y=b}B(Z);Z.prototype.reset=function(a){var b=null,c;for(c in this.Y)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.reset&&(e.reset(),"cpu"==c&&(b=e))}b&&(b.update(),a&&b.va())};
Z.prototype.start=function(){for(var a in this.Y)if("cpu"!=a)for(var b=0;b<this.Y[a].length;b++){var c=this.Y[a][b];c&&c.start&&c.start()}};Z.prototype.stop=function(a,b){for(var c in this.Y)if("cpu"!=c)for(var d=0;d<this.Y[c].length;d++){var e=this.Y[c][d];e&&e.stop&&e.stop(a,b)}};Z.prototype.T=function(a,b,c){switch(b){case "reset":return this.H[b]=c,c.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Y[b]?a.Y[b][0]:null}
function sb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){sb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.9\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=qa(r.refID,d.id)){var H=r.type;void 0===g[H]&&(g[H]=[]);g[H].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{u('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=qa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=qa("panel",d.id))if(g.panel=[l],l.gb){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++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}E(k,c);sb(k)}});var tb=0;function ub(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):vb(k,a,b,c,d,e,g)})}
function vb(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(H){k=null,a=H.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?wb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function wb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);wb(a,b,c)}})}else c(a,null)}
function xb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--tb||y(!0));k=!1}var g,h,k=!0;tb++;C[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/c1pjs/1.20.9/components.xsl");var l=function(h,k){k?(pa(a,"xml",h),ub(c,null,null,!1,d,function(c,h){if(h)if(pa(a,"xsl",c),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=k.transformNode(h);l?(g.outerHTML=l,--tb||y(!0)):e("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(h),(l=l.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--tb||y(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)})):e(h)};"<"!=b.charAt(0)?ub(b,a,void 0,!0,d,l):vb(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(m){e(m.message)}return k}window.embedC1P=function(a,b,c){y(!1);return xb(a,b,c)};
window.enableEvents=y;window.sendEvent=ja;})();
function rb(a){var b=null,c;for(c in a.Y)for(var d=0;d<a.Y[c].length;d++){var e=a.Y[c][d];if(e){if(!K(e)){K(e,function(a){return function(){rb(a)}}(a));return}"cpu"==c?b=e:e.ha&&e.ha(!0,a)}}a.X();a.l("C1Pjs v1.20.9\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>");b&&b.ha(!0,a)}
x(function(){for(var a=F(document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=D(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var r=d.modules[m];if(!m){if("cpu"!=r.type)break;k=r.start;l=r.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=pa(r.refID,d.id)){var H=r.type;void 0===g[H]&&(g[H]=[]);g[H].push(e);e.ba&&void 0!==r.start&&e.ba(h,r.start,r.end,g.cpu[0])}else{u('no component for <module refid="'+r.refID+'">');return}}if(void 0===h){u('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=pa("debugger",d.id))g["debugger"]=[e],e.ba&&e.ba(h,k,l,g.cpu[0]);k=new Z(d,g);if(l=pa("panel",d.id))if(g.panel=[l],l.gb){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++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.$a=l.$a,e.l=l.l,e.gb=l.gb)}E(k,c);rb(k)}});var sb=0;function tb(a,b,c,d,e,g){e("Loading "+a+"...");t(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):ub(k,a,b,c,d,e,g)})}
function ub(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(H){k=null,a=H.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?vb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function vb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);vb(a,b,c)}})}else c(a,null)}
function wb(a,b,c){function d(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ba(a))}function e(a){d("Error: "+a);k&&(--sb||y(!0));k=!1}var g,h,k=!0;sb++;C[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/c1pjs/1.20.9/components.xsl");var l=function(h,k){k?(C[a]&&(C[a][b]=h),tb(c,null,null,!1,d,function(h,l){if(l)if(C[a]&&(C[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(g.outerHTML=m,--sb||y(!0)):
e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--sb||y(!0)):e("invalid machine element: "+a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(h)})):e(h)};"<"!=b.charAt(0)?tb(b,a,void 0,!0,d,l):ub(b,null,a,void 0,!1,d,l)}else e("missing machine element: "+a)}catch(m){e(m.message)}return k}
window.embedC1P=function(a,b,c){y(!1);return wb(a,b,c)};window.enableEvents=y;window.sendEvent=ja;})();

View file

@ -5,15 +5,15 @@ function ia(a){return"0x"+l(a,4)}function ja(a,b){var c=a,d=a.lastIndexOf("/");0
function pa(a,b,c){return c?(" "+a).slice(-b):(a+" ").slice(0,b)}function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}var sa=Date.now||function(){return+new Date};
function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}var ua=[31,28,31,30,31,30,31,31,30,31,30,31];function wa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.qh|g<<f.shift&f.qh}return c}function xa(a,b){return(b&a.qh)>>a.shift}
function ya(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function za(a,b,c,d,e,f){b=!!b;var g=0,k=null,q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,b);q.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function za(a,b,c,d,e,f){var g=0,k=null;if(resources&&(k=resources[a]))return e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),[g,k];var q=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");b&&(q.onreadystatechange=function(){4===q.readyState&&(k=q.responseText,200==q.status||!q.status&&k.length&&"file:"==(window?window.location.protocol:"file:")||(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)))});if(c){var r="",x;for(x in c)c.hasOwnProperty(x)&&(r&&(r+="&"),r+=
x+"="+encodeURIComponent(c[x]));r=r.replace(/%20/g,"+");q.open("POST",a,!!b);q.setRequestHeader("Content-type","application/x-www-form-urlencoded");q.send(r)}else q.open("GET",a,!!b),q.send();c=[];b||(k=q.responseText,200!=q.status&&(g=q.status||-1),e&&(d?e.call(d,a,k,g,f):e(a,k,g,f)),c=[g,k]);return c}function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ba(a){window&&window.alert(a)}function Ca(a){var b=!1;window&&(b=window.confirm(a));return b}var Ea=null;
function Fa(){if(null==Ea){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ea=a}return Ea}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}
function Ia(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 Ka(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ma(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||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);f=!0}}var Na={init:[],show:[],exit:[]},Pa=!1,Qa=!0;function Ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Sa(a){Na.init.push(a)}
function Ta(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Ua(a){!Qa&&a?(Qa=!0,Pa&&Wa("init")):Qa=a}function Wa(a){Na[a]&&Ta(Na[a])}Ra("onload",function(){Pa=!0;Ta(Na.init)});Ra("onpageshow",function(){Ta(Na.show)});Ra(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ta(Na.exit)});
function Xa(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.uk=b.comment;this.xk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.se=this.id.substr(0,b),this.be=this.id.substr(b+1)):this.be=this.id;this[a]=c;this.ra={$e:!1,cd:!1,fh:!1,hc:!1,wd:!1};this.sg=null;this.ra.wd=!1;this.xa={};this.ma=null;this.wc=d||0;Ya.push(this)}var Za=void 0,$a={};
if(window){Za||(Za=window.location.search.substr(1));for(var bb,cb=/\+/g,db=/([^&=]+)=?([^&]*)/g;bb=db.exec(Za);)$a[decodeURIComponent(bb[1].replace(cb," "))]=decodeURIComponent(bb[2].replace(cb," "))}function fb(a){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 gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]||(hb[a][b]=[]),hb[a][b].push(c))}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[],hb={};function ib(a,b,c){hb[a]&&(hb[a][b]=c)}function jb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function kb(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
function lb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function mb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function ob(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=lb(d,a.id))&&(b=d.xa[b])&&a.Ub(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
function pb(a,b){for(var c=qb(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=mb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
function qb(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}
@ -87,7 +87,7 @@ h.km=function(a){var b=this.M;a<<=3;var c=b.Pc+a|0;if(7<=(b.Od-c|0))return this.
h.Pk=function(a,b){return(a>>>0)+b>this.fc?this.Fa+a|0:this.pg()};h.pg=function(){p.call(this.M,13,0);return-1};function od(a,b,c,d,e){a.ga=b;a.Fa=d;a.Za=e;a.fc=(e>>>0)+1;a.Bb=c;a.type=c&7936;a.ext=c>>16&192;a.dc=(b&4?a.M.Bc.Fa:a.M.Ec)+(b&65528)|0;4>a.id&&ld(a,!0)}function pd(a,b,c){var d=a.M,e=d.va(b+2),f=d.va(b)|(e&255)<<16,d=d.va(b+4);a.ga=c;a.Fa=f;a.Za=d;a.fc=(d>>>0)+1;a.Bb=e;a.type=e&7936;a.ext=0;a.dc=b;4>a.id&&ld(a,!0)}
function nd(a,b,c,d){var e=a.M;if(!d&&c===a.A.ga)return a.ga=c,a.Fa=a.A.Fa,a.Za=a.A.Za,a.fc=(a.A.Za>>>0)+1,a.Bb=a.A.Bb,a.type=a.A.type,a.ext=a.A.ext,a.dc=a.A.dc,a.A.ga=-1,ld(a,!0,!0,!1),a.Fa;a.A.ga=-1;var f=e.va(b+0),g=e.va(b+4),k=g&7936,q=e.va(b+2)|(g&255)<<16,r=e.va(b+6),x=c&65528;if(80386<=e.na){var B=f,q=q|(r&65280)<<16,f=f|(r&15)<<16;r&128&&(f=f<<12|4095)}switch(a.id){case 1:var y=a.R;a.bf=!1;if(y&&1==c&&a.C.length){var J=a.C[a.Uf-1];if(J&&!J())return-1}var U=c&3,F=(g&24576)>>13,J=-1,O,V;x||
b>=e.Ec&&b<e.Bd&&(k=0);if(6144<=k){if(J=0,U>a.$b&&(J=-1,!1===y||F==a.$b||k&1024&&F<=a.$b))J=qd(e),rd(e,qd(e),!0),t(e,J),a.bf=!0,J=0}else{if(256==k||2304==k)return sd(a,c,y)?a.Fa:-1;if(1024==k)J=2,V=0,U<a.$b&&(U=a.$b);else if(3072==k)J=4,V=0,U<a.$b&&(U=a.$b);else if(1536==k)J=2,V=148224;else if(3584==k)J=4,V=148224;else if(1792==k)J=2,V=147712;else if(3840==k)J=4,V=147712;else if(1280==k)return sd(a,q&65535,y)?a.Fa:-1}0<J&&!(g&32768)&&(J=0);if(0<J&&(x=a.$b,O=b==e.Pc+c,U<=F&&(!O||0<=e.lb||x<=F))){b=
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&xd(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
q&65535;k&2048&&(f=B|r<<16);r=k=0;c=b&3;if(c<x){if(-1===a.tg(b,!0))return-1;r=e.Ya.Fa;e.Ya.type&2048?(c=(c<<3)+4,d=4):(c=(c<<2)+2,d=2);k=e.va(r+c+d);if(!k)return p.call(e,10,k),-1;if(-1===e.Aa.tg(k,!0))return-1;r=2==d?e.va(r+c):e.ta(r+c)}c=e.ea;e.ea&=~V;c&131072&&td(e,!0,!1);if(-1===a.tg(b))return-1;yd(e,J);a.Uf=f;if(a.$b<x){if(!0!==y)return-1;J=u(e);f=0;for(g&=31;g--;)a.P[f++]=zd(e,e.Aa,J),J+=2;y=e.Aa.ga;g=u(e);rd(e,k,!0);t(e,r);c&131072&&(yd(e,4),Ad(e,e.Tb.ga,4,2),e.Tb.load(0),Ad(e,e.Sb.ga,4,2),
e.Sb.load(0),Ad(e,e.Ab.ga,4,2),Bd(e,0),Ad(e,e.bb.ga,4,2),Cd(e,0));Ad(e,y,e.fa,2);for(Dd(e,g);f;)Dd(e,a.P[--f]);a.bf=!0}return a.Fa}if(0!=J)return p.call(e,13,c&65532|(O?2:0)),-1;if(!(g&32768))return p.call(e,11,c&65532|(O?2:0)),-1;break;case 2:if(x){if(4096>k||2048==(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,11,c&65532),-1}break;case 3:if(!x||4096>k||512!=(k&2560))return p.call(e,13,c&65532),-1;if(!(g&32768))return p.call(e,12,c&65532),-1;break;case 4:y=k&-513;if(!x||256!=
y&&2304!=y)return p.call(e,13,c&65532),-1;2304==y&&(a.yi=q+e.va(q+100+2)|0,a.Kk=q+a.Za|0);break;case 6:if(!(k&4096)&&768<k&&2304!=k&&2816!=k)return-1}d?(a.A.ga=c,a.A.Fa=q,a.A.Za=f,a.A.Bb=g,a.A.type=k,a.A.ext=r,a.A.dc=b):(a.ga=c,a.Fa=q,a.Za=f,a.fc=(f>>>0)+1,a.Bb=g,a.type=k,a.ext=r,a.dc=b,ld(a,!0,!0,!1));return q}
function sd(a,b,c){var d=a.M,e=a.$b,f=d.Ya.ga,g=d.Ya.Fa;if(!c){if(!(d.Ya.type&512))return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb&=-513)}if(-1===d.Ya.load(b))return!1;var k=d.Ya.Fa;if(!1!==c){if(d.Ya.type&512)return p.call(d,13,b&65532),!1;d.pb(d.Ya.dc+4,d.Ya.Bb|=512)}d.Ya.type=d.Ya.type&-513|d.Ya.Bb&512;256==d.Ya.type||768==d.Ya.type?(d.pb(g+14,v(d)),d.pb(g+16,Ed(d)),d.pb(g+18,d.F),d.pb(g+20,d.G),d.pb(g+22,d.H),d.pb(g+24,d.D),d.pb(g+26,u(d)),d.pb(g+28,d.K),d.pb(g+30,d.J),d.pb(g+32,d.I),d.pb(g+
@ -105,14 +105,14 @@ function Lc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.kd[(a.Ld+e&a.Mb)>>>a.Pa],g=f.Xd
b.A=e>>2;b.Eb=g;b.C=k>>2;Ab&&gc&&c.ha&&!c.controller&&!c.Se&&!c.Te?(b.eb=c.eb,b.ce=c.ce,b.ha=c.ha,dc(b,Qc)):(b.O=c?Ec(32):0,b.Y=c?Ec(96):0,dc(b,Oc));Sb(b,a.ma,q);a.ya[d]=b;a.ie.push(d);return b}function Be(a){a.ya!==a.kd&&(a.ya=a.kd,a.le=null,a.ie=null,a.rd=null)}h=Id.prototype;h.reset=function(){this.ra.Ob&&this.bc();xe(this);Tc(this);this.ra.wd=!1};
function Ce(a,b){var c;switch(b){case 0:c=a.F;break;case 1:c=a.G;break;case 2:c=a.H;break;case 3:c=a.D;break;case 4:c=u(a);break;case 5:c=a.K;break;case 6:c=a.J;break;case 7:c=a.I}return c}function De(a,b,c){switch(b){case 0:a.F=c;break;case 1:a.G=c;break;case 2:a.H=c;break;case 3:a.D=c;break;case 4:t(a,c);break;case 5:a.K=c;break;case 6:a.J=c;break;case 7:a.I=c}}
function xe(a){a.F=0;a.D=0;a.G=0;a.H=0;a.ib=0;a.K=0;a.J=0;a.I=0;a.Va=!1;a.la=a.Ba=0;a.xb=0;a.Qg=0;a.pc=0;a.hb=65520;a.Pc=0;a.Od=1023;a.ea=a.Ra=0;a.Xc=a.vd=a.Wc=a.Yc=0;a.lb=-1;a.Lc=a.td=-1;a.He=a.X=-1;a.Ca=new kd(a,1,"CS");a.Ab=new kd(a,2,"DS");a.bb=new kd(a,2,"ES");a.Aa=new kd(a,3,"SS");t(a,0);rd(a,0);if(80386<=a.na){switch(a.oc){case 80562:case 80563:a.H=771;break;case 80578:a.H=772;break;case 80594:a.H=773;break;case 80595:case 80596:a.H=776}a.hb=16;a.ni=0;a.qe=0;a.Ld=0;a.Ma=[0,0,0,0,null,null,
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);xd(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=He,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function Ue(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
0,0];a.Ge=[null,null,null,null,null,null,0,0];a.Sb=new kd(a,2,"FS");a.Tb=new kd(a,2,"GS");Be(a)}a.pf=new kd(a,0,"NULL");a.P=a.Ab;a.O=a.Aa;a.V=a.La=0;a.Z=a.Y=-1;a.pd=a.pf;a.za=0;if(80286>a.na)Gd(a,0,65535);else{a.Ec=0;a.Bd=65535;a.Bc=new kd(a,5,"LDT",!0);a.Ya=new kd(a,4,"TSS",!0);a.Ea=new kd(a,6,"VER",!0);Gd(a,65520,61440);var b,c=v(a);b=a.Ca;var d=-65536;80386>b.M.na&&(d&=16777215);b=b.Fa=d;a.Na=b+c|0;a.of=b+a.Ca.Za|0}Fd(a,0);td(a)}
function Ee(a,b){b.ga&65528&&b.Mc<a.ua&&7168!=(b.Bb&7168)&&b.load(0)}function Fe(a){2==a.gd?(a.ic=a.va,a.Qa=z,a.Ta=Ge,a.Ib=Je,a.da=A,a.qa=Ke,a.Oa=Le):(a.ic=a.ta,a.Qa=C,a.Ta=Me,a.Ib=Ne,a.da=D,a.qa=Oe,a.Oa=Pe)}function yd(a,b){a.fa!=b&&(a.La|=1024,a.fa=b,a.B=2==b?65535:-1,Qe(a))}function Qe(a){2==a.fa?(a.Ja=32768,a.vb=a.va,a.uc=a.pb):(a.Ja=-2147483648,a.vb=a.ta,a.uc=a.ub)}function Re(a){a.gd=a.Ca.gd;a.Ga=a.Ca.Ga;Fe(a);a.fa=a.Ca.fa;a.B=a.Ca.B;Qe(a);a.La&=-3073}
h.Ti=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.K+this.J+this.I|0;return a=a+v(this)+this.Ca.ga+this.Ab.ga+this.Aa.ga+this.bb.ga+Ed(this)|0};function Se(a,b,c){void 0===a.je[b]&&(a.je[b]=[]);a.je[b].push(c)}function Te(a,b,c){void 0!==c&&(null==a.ke[b]&&a.me++,a.ke[b]=c)}function af(a,b){var c=a.ke[b];null!=c&&(c(--a.me),delete a.ke[b])}
function bf(a,b){for(var c=a.Ma[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ma[e],g=g&~(d>>2&3);b?a.ya[g>>>a.Pa].Nd(g&a.Ha,f,a):Mc(a.ya[g>>>a.Pa],f)}c>>=2;d>>=4}}function Jc(a,b,c,d){if(!(a.V&8192)&&a.Ma[7]&255){c--;var e=a.Ma[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var k=f>>2;if(b+c>=a.Ma[g]&&b<=a.Ma[g]+k){a.Ma[6]|=1<<g;a.za|=2;break}}e>>=2;f>>=4}}}
function xd(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
function td(a,b,c){void 0===b&&(b=!!(a.hb&1));void 0===c&&(c=!!(a.ea&131072));a.Pg=b&&!c?cf:Md;ld(a.Ca,!1,b,c);ld(a.Ab,!1,b,c);ld(a.Aa,!1,b,c);ld(a.bb,!1,b,c);80386<=a.na&&(ld(a.Sb,!1,b,c),ld(a.Tb,!1,b,c));Re(a)}
h.save=function(){var a=new df(this);ef(a,0,[this.F,this.D,this.G,this.H,u(this),this.K,this.J,this.I]);var b=v(this),c=this.Ca.save(),d=this.Ab.save(),e=this.Aa.save(),f=this.bb.save(),g;null!=this.Ec?(g=[this.hb,this.Ec,this.Bd,this.Pc,this.Od,this.Bc.save(),this.Ya.save(),this.Ra],80386<=this.na&&(g.push(this.ni),g.push(this.qe),g.push(this.Ld),g.push(this.Ma),g.push(this.Ge))):g=null;b=[b,c,d,e,f,g,Ed(this)];80386<=this.na&&(b.push(this.Sb.save()),b.push(this.Tb.save()));ef(a,1,b);ef(a,2,[this.P.nc,
this.O.nc,this.V,this.La,this.za,this.Z,this.Y]);ef(a,3,[0,this.Zb,this.ba.Td]);b=this.ja;c=!!(this.hb&-2147483648);d=0;e=[];(f=!b.ja&&b.xg==b.Mb)||Yb(b,!0);for(g=0;g<b.W;g++){var k=b.ya[g];if(c&&k.type!=fc||k.ab||k.Qi){e[d++]=g;var q=d++;a:if(k=k.save()){for(var r=0,x=0,B=[];r<k.length;){for(var y=k[r],J=r+1;J<k.length&&k[J]===y;)J++;B[x++]=J-r;B[x++]=y;r=J}if(B.length<k.length){k=B;break a}}e[q]=k}}f||Yb(b,!1);e[d]=f;ef(a,4,e);return a.data()};
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),xd(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
h.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.K=b[5];this.J=b[6];this.I=b[7];b=a[1];this.Ca.restore(b[1]);this.Ab.restore(b[2]);this.Aa.restore(b[3]);this.bb.restore(b[4]);var d=b[5];d&&d.length&&(this.hb=d[0],this.Ec=d[1],this.Bd=d[2],this.Pc=d[3],this.Od=d[4],this.Bc.restore(d[5]),this.Ya.restore(d[6]),this.Ra=d[7],80386<=this.na&&(this.ni=d[8],this.qe=d[9],this.Ld=d[10],this.Ma=d[11],this.Ge=d[12]),td(this));Fd(this,b[6]);var d=!1,e;a:{e=this.ja;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var k=f[g],q=f[g+1];if(q&&q.length<e.la){for(var r=0,x=Array(e.la),B=0;B<q.length-1;)for(var y=q[B++],J=q[B++];y--;)x[r++]=J;q=x}r=e.ya[k];if(!r||!r.restore(q)){Ba("Unable to restore memory block "+k);e=!1;break a}}void 0!==f[g]&&Yb(e,f[g]);e=!0}e&&(Gd(this,b[0],this.Ca.ga),t(this,c),rd(this,this.Aa.ga),80386<=this.na&&(this.Sb.restore(b[7]),this.Tb.restore(b[8])),d=!0);b=a[2];this.P=null!=b[0]&&ff(this,b[0])||this.Ab;this.O=null!=b[1]&&ff(this,b[1])||this.Aa;
this.V=b[2];this.La=b[3];this.za=b[4];this.Z=b[5];this.Y=b[6];b=a[3];this.Zb=b[1];dd(this,b[2]);return d};function ff(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.Ab;case "SS":return a.Aa;case "ES":return a.bb;case "NULL":return a.pf;default:return[0,b,0,0,""]}}function gf(a,b){null!=Gd(a,v(a),b)&&(a.V|=a.Gd)}function Bd(a,b){-1!==a.Ab.load(b)&&(a.V|=a.Gd)}
function rd(a,b,c){var d=u(a);-1!==a.Aa.load(b)&&(t(a,d),a.Aa.dd?(a.Mg=a.Aa.Fa+a.Aa.Ga|0,a.ud=a.Aa.Fa+a.Aa.Za|0):(a.Mg=a.Aa.Fa+a.Aa.Za|0,a.ud=a.Aa.Fa),c||(a.V|=4))}function Cd(a,b){-1!==a.bb.load(b)&&(a.V|=a.Gd)}function v(a){return a.Na-a.Ca.Fa|0}function hf(a,b){a.Na=a.Ca.Fa+(b&a.B)|0}function jf(a,b){a.Na=b|0;a.of=a.Ca.Fa+a.Ca.Za|0;a.ua=a.Ca.$b;Re(a)}function Gd(a,b,c,d){var e=a.Ca;e.Uf=b;e.R=d;b=e.load(c);return-1!==b?(jf(a,b+(a.Ca.Uf&a.Ca.B)),a.Ca.bf):null}
@ -120,7 +120,7 @@ function kf(a,b){a.Na=a.Na+b|0;var c=a.of-a.Na|0;0>c&&0<=(a.of^a.Na)&&(8088>=a.n
function tf(a,b,c,d,e){a.resultType=c|26;a.Yc=b;d?uf(a):vf(a);e?wf(a):xf(a);return b}function yf(a,b,c,d){c&d?uf(a):vf(a);(b^c)&d?wf(a):xf(a)}function zf(a){return nf(a)?1:0}function nf(a){a.resultType&1&&(a.ea&=-2,(a.Xc^(a.Xc^a.vd)&(a.vd^a.Wc))&a.resultType&-2147450752&&(a.ea|=1),a.resultType&=-2);return a.ea&1}function of(a){a.resultType&2&&(a.ea&=-5,38505>>((a.Yc^a.Yc>>4)&15)&1&&(a.ea|=4),a.resultType&=-3);return a.ea&4}
function pf(a){a.resultType&4&&(a.ea&=-17,(a.Wc^a.Xc^a.vd)&16&&(a.ea|=16),a.resultType&=-5);return a.ea&16}function qf(a){a.resultType&8&&(a.ea&=-65,a.Yc&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.ea|=64),a.resultType&=-9);return a.ea&64}function rf(a){a.resultType&16&&(a.ea&=-129,a.Yc&a.resultType&-2147450752&&(a.ea|=128),a.resultType&=-17);return a.ea&128}
function sf(a){a.resultType&32&&(a.ea&=-2049,(a.Xc^a.Wc)&(a.vd^a.Wc)&a.resultType&-2147450752&&(a.ea|=2048),a.resultType&=-33);return a.ea&2048}function vf(a){a.resultType&=-2;a.ea&=-2}function Af(a){a.resultType&=-5;a.ea&=-17}function Bf(a){a.resultType&=-9;a.ea&=-65}function xf(a){a.resultType&=-33;a.ea&=-2049}function uf(a){a.resultType&=-2;a.ea|=1}function Cf(a){a.resultType&=-5;a.ea|=16}function Df(a){a.resultType&=-9;a.ea|=64}function wf(a){a.resultType&=-33;a.ea|=2048}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&xd(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ed(a){return a.ea&-2262|nf(a)|of(a)|pf(a)|qf(a)|rf(a)|sf(a)}function Ef(a,b){b=b|a.hb&1|65520;a.hb=a.hb&-65536|b&65535;a.hb&1&&td(a,!0)}function Fd(a,b,c){a.hb&1||(b&=~a.Yf);void 0===c&&(c=a.ua);c?b=b&-12289|a.ea&12288:a.Ra=(b&12288)>>12;c>a.Ra&&(b=b&-513|a.ea&512);a.resultType=128;a.ea=a.ea&~(a.cc|2261)|b&(a.cc|2261)|a.dg;a.ea&256&&(a.za|=2,a.V|=4)}
function Ff(a,b,c,d){var e=0;if(a.hb&1&&(a.ua>a.Ra||a.ea&131072)&&a.Ya.yi)for(var f=a.Ya.yi+(b>>>3),e=(1<<c)-1<<(b&7);e&&f<=a.Ya.Kk&&!(a.Wa(f)&e);)e>>>=8,f++;return e?(n(a,256)&&sb(a,"checkIOPM("+ia(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),p.call(a,13,0),!1):!0}
h.Ub=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.xa[b]=c;this.Rg++;d=!0;break;default:d=this.parent.Ub.call(this,a,b,c)}return d};
function Gf(a,b,c,d){var e=(d?a.kd:a.ya)[(b&a.qb)>>>a.Pa];e&&5==e.type&&(e=Lc(a,b,!1,!0));if(e){var f=b&a.Ha;if(!c||1==c)return e.pe(f,b);if(2==c)return f<a.Ha?e.$f(f,b):e.pe(f,b)|Gf(a,b+1,1,d)<<8;if(4==c)return f<a.Ha-2?e.mi(f,b):f==a.Ha-1?e.$f(f,b)|Gf(a,b+2,2,d)<<16:e.pe(f,b)|Gf(a,b+1,1,d)<<8|Gf(a,b+2,1,d)<<16|Gf(a,b+3,1,d)<<24}return null}h.Wa=function(a){return this.ya[(a&this.qb)>>>this.Pa].sc(a&this.Ha,a)};
@ -174,11 +174,11 @@ function Gh(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a
function Hh(a){if(this.Yb){var b=this.Yb,c=this.Qg,d=this.pc,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=hh[c][f]){if(0>ih.indexOf(e)){var f=b.M,g=f.He;8087==b.na&&(f.La&16&&g++,f.La&32&&g++);b.ka=f.Ca.ga;b.Y=g-f.Ca.Fa;-1!==f.Z&&(b.la=f.pd.ga,b.W=f.Z-f.pd.Fa);b.qa=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.Z?2:8;return a}function Ih(a,b){var c=Jh.call(this,this.L(),b);80386>this.na&&(this.A-=12);return c}
function Kh(a,b){var c;a=this.Sa();c=2==this.fa?Jh.call(this,a,b):Lh.call(this,a,b);80386>this.na&&(this.A-=12);return c}function Mh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Nh.call(this,a,b);c&&(this.la=~this.la+1|0,this.Ba=~this.Ba+(this.la?0:1)|0)}function Jh(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return c&65535}
function Lh(a,b){Mh.call(this,a,b);this.Ba!=this.la>>31?(uf(this),wf(this)):(vf(this),xf(this));this.A-=-1===this.Z?9:12;return this.la}function Oh(a){var b=a+1|0;mf(this,a,1,b,this.Ja|62);this.A-=2;return a&~this.B|b&this.B}function Ph(a,b,c){this.A-=this.C.zj+(c||0);c=Ed(this);var d=this.Ca.ga,e=v(this);a=this.Ca.Zi(a);-1!==a&&(Dd(this,c),Dd(this,d),Dd(this,e),null!=b&&Dd(this,b),this.lb=-1,jf(this,a))}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;xd(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Qh(a,b){this.A-=14+(-1===this.Z?0:2);Bf(this);-1!==this.Ea.load(b)&&this.Ea.Mc>=this.ua&&this.Ea.Mc>=(b&3)&&(Df(this),a=this.Ea.Bb&-256,2<this.fa&&(a|=(this.Ea.ext&-65281)<<16));return a}function Rh(a){this.hb=a;td(this);this.hb&-2147483648?ze(this):Be(this)}function Hd(a){this.Ld=a;ac(this)}function Sh(a,b){if(-1===this.Z)return oe.call(this),a;Bd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Th(){this.A-=this.C.Hj;return this.Z}
function Uh(a,b){if(-1===this.Z)return oe.call(this),a;Cd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Vh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Sb.load(c);this.A-=this.C.mf;return b}function Wh(a,b){if(-1===this.Z)return oe.call(this),a;var c=this.va(this.Z+this.fa);this.Tb.load(c);this.A-=this.C.mf;return b}
function Xh(a,b){this.A-=14+(-1===this.Z?0:2);if(b&65528&&-1!==this.Ea.load(b)&&(7168==(this.Ea.Bb&7168)||this.Ea.Mc>=this.ua)&&this.Ea.Mc>=(b&3))return Df(this),this.Ea.Za;Bf(this);return a}function Yh(a,b){if(-1===this.Z)return oe.call(this),a;rd(this,this.va(this.Z+this.fa));this.A-=this.C.mf;return b}function Zh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.Oj:this.C.Nj:this.C.Lj;return b}function $h(a,b){return b}function ai(){-1!==this.Y&&yd(this,2);return Zh.call(this,0,this.xb)}
function Nh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,k=e>>>16,e=(e&65535)+c*f;this.la=e<<16|g&65535;this.Ba=k+((e>>>16)+d*f)|0}else this.la=a*b|0,this.Ba=0}function bi(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,128)}function ci(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return tf(this,a|b,this.Ja)&this.B}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&Ue(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function di(a){this.X=this.ka;var b=qd(this),c=qd(this);a&&t(this,u(this)+a);Gd(this,b,c,!1)&&(a&&t(this,u(this)+a),Ee(this,this.Ab),Ee(this,this.bb),80386<=this.na&&(Ee(this,this.Sb),Ee(this,this.Tb)));2==a&&this.me&&af(this,this.Na);this.X=-1}function ei(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
function fi(a,b){var c=a-b-zf(this)|0;mf(this,a,b,c,this.Ja|63,!0);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function gi(a){this.V|=1;this.Ta[this.ca()].call(this,a);this.A-=-1===this.Z?4:5}function hi(){return sf(this)?1:0}function ii(){return nf(this)?1:0}function ji(){return nf(this)?0:1}function Bi(){return qf(this)?1:0}function Ci(){return qf(this)?0:1}function Di(){return nf(this)||qf(this)?1:0}function Ei(){return nf(this)||qf(this)?0:1}
function Fi(){return rf(this)?1:0}function Gi(){return rf(this)?0:1}function Hi(){return of(this)?1:0}function Ii(){return of(this)?0:1}function Ji(){return!rf(this)!=!sf(this)?1:0}function Ki(){return!rf(this)!=!sf(this)?0:1}function Li(){return qf(this)||!rf(this)!=!sf(this)?1:0}function Mi(){return qf(this)||!rf(this)!=!sf(this)?0:1}function Ni(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;tf(this,a,32768,d&32768)}return a}
function Oi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;tf(this,a,-2147483648,d&-2147483648)}return a}function Pi(a,b){return Ni.call(this,a,b,this.ca())}function Qi(a,b){return Oi.call(this,a,b,this.ca())}function Ri(a,b){return Ni.call(this,a,b,this.G&31)}function Si(a,b){return Oi.call(this,a,b,this.G&31)}function Ti(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;tf(this,a,32768,d&1)}return a}
@ -233,8 +233,8 @@ this.P,this.J&c);this.F=this.F&~this.B|e;this.J=this.J&~c|this.J+(this.ea&1024?-
this.D&-256|this.ca();this.A-=this.C.jc},function(){this.F=this.F&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.G=this.G&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.H=this.H&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.D=this.D&-65281|this.ca()<<8;this.A-=this.C.jc},function(){this.F=this.F&~this.B|this.Sa();this.A-=this.C.jc},function(){this.G=this.G&~this.B|this.Sa();this.A-=this.C.jc},function(){this.H=this.H&~this.B|this.Sa();this.A-=this.C.jc},function(){this.D=
this.D&~this.B|this.Sa();this.A-=this.C.jc},function(){t(this,u(this)&~this.B|this.Sa());this.A-=this.C.jc},function(){this.K=this.K&~this.B|this.Sa();this.A-=this.C.jc},function(){this.J=this.J&~this.B|this.Sa();this.A-=this.C.jc},function(){this.I=this.I&~this.B|this.Sa();this.A-=this.C.jc},Pj,Qj,Pj,Qj,function(){this.da[this.ca()].call(this,Uh)},function(){this.da[this.ca()].call(this,Sh)},function(){this.V|=1;this.Ib[this.ca()].call(this,Xj,this.ca)},function(){this.V|=1;this.Oa[this.ca()].call(this,
Xj,this.Sa)},Rj,Sj,Rj,Sj,function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Aj;this.lb=-1;Ph.call(this,3,null,a)}},function(){var a=this.ca();if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var b;a:{b=this.je[a];if(void 0!==b)for(var c=0;c<b.length;c++)if(!b[c](this.Na)){b=!1;break a}this.ra.Pi&&n(this,16)&&Yj(this.ma,a,this.Na);b=!0}b?(this.lb=-1,Ph.call(this,a,null,0)):this.A--}},function(){if(sf(this))if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{var a=this.C.Bj;
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);xd(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&Ue(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.lb=-1;Ph.call(this,4,null,a)}else this.A-=this.C.Cj},function(){if(this.ea&131072&&3>this.Ra)p.call(this,13,0);else{this.X=this.ka;this.A-=this.C.yj;if(this.hb&1&&this.ea&16384){var a=this.va(this.Ya.Fa+0);sd(this.Ca,a,!1)}else{var a=this.ua,b=qd(this),c=qd(this),d=qd(this);if(this.ea&131072)d=d&131071|this.ea&-131072;else if(d&131072){var e=qd(this),f=qd(this),g=qd(this),k=qd(this),q=qd(this),r=qd(this);td(this,!0,!0);rd(this,f);t(this,e);Cd(this,g);Bd(this,k);this.Sb.load(q);this.Tb.load(r)}null!=
Gd(this,b,c,!1)&&(Fd(this,d,a),this.me&&af(this,this.Na))}this.X=-1}},function(){this.Ib[this.ca()].call(this,Mj,lj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,lj)},function(){this.Ib[this.ca()].call(this,Mj,mj)},function(){this.Oa[this.ca()].call(this,2==this.fa?Nj:Oj,mj)},function(){var a=this.ca();if(a){var b=this.F&255;this.F=this.F&-65536|b/a<<8|b%a;tf(this,this.F,128);this.A-=this.C.dj}else kj.call(this)},function(){var a=this.F&255,b=(this.F>>8&255)*this.ca()|0,c=a+b|0;this.F=
this.F&-65536|c&255;mf(this,a,b,c,191);this.A-=this.C.cj},function(){this.F=this.F&-256|(nf(this)?255:0);this.A-=2},function(){this.F=this.F&-256|Hf(this,this.P,this.D+(this.F&255)&65535);this.A-=this.C.bk},function(){Tj.call(this,216)},function(){Tj.call(this,217)},function(){Tj.call(this,218)},function(){Tj.call(this,219)},function(){Tj.call(this,220)},function(){Tj.call(this,221)},function(){Tj.call(this,222)},function(){Tj.call(this,223)},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&
~this.Ga|b;b&&!qf(this)?(hf(this,v(this)+a),this.A-=this.C.Jj):this.A-=this.C.Kh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b&&qf(this)?(hf(this,v(this)+a),this.A-=this.C.Lh):this.A-=this.C.Mh},function(){var a=this.L(),b=this.G-1&this.Ga;this.G=this.G&~this.Ga|b;b?(hf(this,v(this)+a),this.A-=this.C.Ij):this.A-=this.C.Kh},function(){var a=this.L();this.G&this.Ga?this.A-=this.C.Mh:(hf(this,v(this)+a),this.A-=this.C.Lh)},function(){var a=this.ca();Ff(this,a,1,!0)&&(this.F=
this.F&-256|oc(this.ja,a,1,this.Na-2)&255,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,this.fa,!0)&&(this.F=this.F&~this.B|oc(this.ja,a,this.fa,this.Na-2)&this.B,this.A-=this.C.Fh)},function(){var a=this.ca();Ff(this,a,1,!1)&&(sc(this.ja,a,1,this.F&255,this.Na-2),this.A-=this.C.Th)},function(){var a=this.ca();Ff(this,a,this.fa,!1)&&(sc(this.ja,a,this.fa,this.F&this.B,this.Na-2),this.A-=this.C.Th)},function(){var a=this.Sa(),b=v(this),a=b+a;Dd(this,b);hf(this,a);this.A-=this.C.hj},function(){var a=
@ -364,7 +364,7 @@ R(this)),this.G>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(
this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},
function(a){a=a.call(this,K(this,this.I+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.H>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.D+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,
this.K+this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.T},function(a){a=a.call(this,L(this,this.K+this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.S},function(a){a=a.call(this,K(this,this.J+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.I+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,L(this,this.K+R(this)),this.D>>8&255);P(this,a);this.A-=this.C.N},function(a){a=a.call(this,K(this,this.D+R(this)),this.D>>8&255);
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],He=[function(a,b){var c=
P(this,a);this.A-=this.C.N},z[192],z[200],z[208],z[216],z[224],z[232],z[240],z[248],z[193],z[201],z[209],z[217],z[225],z[233],z[241],z[249],z[194],z[202],z[210],z[218],z[226],z[234],z[242],z[250],z[195],z[203],z[211],z[219],z[227],z[235],z[243],z[251],z[196],z[204],z[212],z[220],z[228],z[236],z[244],z[252],z[197],z[205],z[213],z[221],z[229],z[237],z[245],z[253],z[198],z[206],z[214],z[222],z[230],z[238],z[246],z[254],z[199],z[207],z[215],z[223],z[231],z[239],z[247],z[255]],Je=[function(a,b){var c=
a[0].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.J),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[0].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[0].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,
K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[0].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[0].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.D+this.J),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.D+this.I),b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.J),
b.call(this));P(this,c);this.A-=this.C.pa},function(a,b){var c=a[1].call(this,L(this,this.K+this.I),b.call(this));P(this,c);this.A-=this.C.oa},function(a,b){var c=a[1].call(this,K(this,this.J),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,this.I),b.call(this));P(this,c);this.A-=this.C.aa},function(a,b){var c=a[1].call(this,K(this,R(this)),b.call(this));P(this,c);this.A-=this.C.Ka},function(a,b){var c=a[1].call(this,K(this,this.D),b.call(this));P(this,c);this.A-=
@ -934,7 +934,7 @@ function Ym(a,b){if(1==b)return a.Ja[0]=pm[0],a.Ja[1]=pm[7],a.Ja;if(2==b){var c=
(c.Uc[20]&12)<<4,c.Uc[16]&128&&(g&=-49,g|=(c.Uc[20]&3)<<4),g=d[g],k=g<<2&252,q=g>>4&252,g=g>>10&252):(k=(g&4?170:0)|(g&32?85:0),q=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ja[f]=[k,q,g,255]}a.xb=!0}return a.Ja}function Cl(a,b,c,d){a.Lc=b;a.rd=c;a.rb=d}
function Um(a,b){var c=!1;if(window&&a.Lc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Ym(a);Zm(a,3,a.rd[0],d,e,8,a.Lc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Zm(a,1,a.rd[1],d,e,14,a.Lc,nm,om)&&(c=!0);a.rb&&Zm(a,a.nb,a.rd[1],0,a.rb,14,a.Lc,f)&&(c=!0)}return c}function Zm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&($m(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Rg&&$m(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
function $m(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Va[b],y=16>k.length?k.length:16;B||(B={Rc:e<<x,Sc:f<<x,Ne:Array(y),xi:k.slice(0,y),xf:q,Vg:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Ne[q]?B.xi[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ha=f,da=g,eb=[0,0,0,0],va=document.createElement("canvas");va.width=r.Rc<<4;va.height=r.Sc<<4;for(var oa=va.getContext("2d"),Oa=void 0,ab=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=oa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var Ie=ab<<F,Wd=(Ja<<F)+Vd,Je=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,Ie,Wd,Je);F&&an(Da,Ie+1,Wd,Je)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
0;Ja<ha;Ja++)for(var Ud=r.xf&&U&1&&Ja>=ha-2,Uc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for(ab=0;ab<Y;ab++){var He=ab<<F,Wd=(Ja<<F)+Vd,Ie=Ud||Uc&128>>(8<=ab&&192<=Oa&&223>=Oa?7:ab)?J:eb;an(Da,He,Wd,Ie);F&&an(Da,He+1,Wd,Ie)}oa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Ne[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.xi[U]=J;r.Vg[U]=va;r=!0}}a.Va[b]=B;return r}function bn(a){0<a.cb||0<=a.ua?0>a.Yb&&(a.Yb=0):a.Yb=-1}
function Xm(a){if(a.W){for(var b=10;15>=b;b++)if(null==a.C.zb[b])return;var c=a.C.zb[10],b=c&31,d=a.C.zb[11]&31,e=a.C.zb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)cn(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ua!=c&&(cn(a),a.ua=c);d=d-b+1;if(a.gg!=b||a.Be!=d)a.gg=b,a.Be=d;a.ib=e+1;bn(a)}}}
function cn(a){if(0<=a.ua){if(void 0!==a.ka){var b=a.ka[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.O,d=a.ua/a.O|0;a.W&&a.Va[a.W]&&(a.qb&&dn(a,c,d,b,a.qb),dn(a,c,d,b));a.ka[a.ua]=b}}a.ua=-1}}
function en(a){var b,c=a.C;a.Ge=!1;var d=c.Yd[5];if(null!=d){b=1024;var e=0,f=c.Yd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.ed=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.nb==Dl&&(e=3,c.ed=f&7)}d&8&&(b=1280);c=c.Ie[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Ge=!0));b|=e}return b}
@ -1185,22 +1185,22 @@ tq(a,g[1],!0);if(B)if(a.Ba=B,void 0===g[2])a.U("begin assemble at "+mq(B)),a.Ma=
a.U("\tbc [a]\tclear breakpoint at addr [a]"),a.U("\tbl\tlist all breakpoints"),a.U("\tbn [n]\tbreak after [n] instruction(s)");else{var V=U.charAt(1);if("l"==V){var Y=0,Y=Y+Kq(a,a.A),Y=Y+Kq(a,a.za);(Y+=Kq(a,a.la))||a.U("no breakpoints")}else if("n"==V)a.Va=Zp(a,F),a.U("break after "+a.Va+" instruction(s)");else if(void 0===F)a.U("missing breakpoint address");else{var ha={};if("*"!=F&&(ha=tq(a,F,!0,!0),!ha))break a;F=null==ha.Xa?F:ia(ha.Xa);"c"==V?null==ha.Xa?(Ep(a),a.U("all breakpoints cleared")):
lq(a,a.A,ha)||lq(a,a.za,ha)||lq(a,a.la,ha)||a.U("breakpoint missing: "+mq(ha)):"i"==V?a.U("breakpoint "+(mc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (input)"):"o"==V?a.U("breakpoint "+(qc(a.ja,ha.Xa)?"enabled":"cleared")+": port "+F+" (output)"):null!=ha.Xa&&(wq(a,ha,O),"p"==V?a.Nd(a.A,ha):"r"==V?a.Nd(a.za,ha):"w"==V?a.Nd(a.la,ha):a.U("unknown breakpoint command: "+V))}}}break;case "c":$q(a);break;case "d":a:{var da=g,eb,va=da[0],oa=da[1],Oa=da[2],ab=da[3];if("?"==oa){var Ja="";for(eb in Rp)a.ib[eb]&&
(Ja&&(Ja+=","),Ja+=eb);Ja+=",state,symbols";a.U("dump memory commands:");a.U("\tdb [a] [#] dump # bytes at address a");a.U("\tdw [a] [#] dump # words at address a");a.U("\tdd [a] [#] dump # dwords at address a");a.U("\tdh [#] [#] dump # instructions from history");a.U("\tds [#] dump descriptor info for selector #");Ja.length&&a.U("dump extension commands:\n\t"+Ja)}else if("state"==oa){var Vb=hr(a.ia,!0);"console"==Oa?console.log(Vb):($q(a),a.U(Vb))}else if("symbols"==oa)for(var Da=
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],Ie=Vd.o;if(void 0!==Ie){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Je=Ud.Md[Uc].l;Je&&(Uc=Je);a.U(eq(Ie,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ve=a.ic(tq(a,ki));if(-1===Ve)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ve&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ve&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ve&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var td="%"+l(Ve),td=td+(" %%"+yq(ae.zi,ae.Xi)),td=td+(" %%"+yq(ae.Ai,ae.Yi,!0)),td=td+(" %%"+l(ae.Lk));a.U(td)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
0;Da<a.C.length;Da++){var Ud=a.C[Da],Uc;for(Uc in Ud.Md)if("."!=Uc.charAt(0)){var Vd=Ud.Md[Uc],He=Vd.o;if(void 0!==He){var Wd=Vd.s;void 0===Wd&&(Wd=Ud.ga);var Ie=Ud.Md[Uc].l;Ie&&(Uc=Ie);a.U(eq(He,Wd)+" "+Uc)}}}else{if("ds"==va||"dg"==va||"dl"==va)va="d",da=[va,"desc",oa];"d"==va&&"page"==oa&&(va="dp",da.shift());if("dp"==va){da.shift();var ki=da[0];if(ki){var Ue=a.ic(tq(a,ki));if(-1===Ue)a.U("invalid address: "+ki);else{var ae,La=null;if(80386<=a.M.na){var be=a.ja,La={};La.ek=(Ue&-4194304)>>>20;La.zi=
a.M.Ld+La.ek;La.Db=be.ya[(La.zi&be.Mb)>>>be.Pa];La.Xi=La.Db.Xd(La.ek);La.fk=(Ue&4190208)>>>10;La.Ai=(La.Xi&-4096)+La.fk;La.Eb=be.ya[(La.Ai&be.Mb)>>>be.Pa];La.Yi=La.Eb.Xd(La.fk);La.Lk=(La.Yi&-4096)+(Ue&4095)}if(ae=La){a.U("linear PDE addr PDE PTE addr PTE physical");a.U("--------- ---------- -------- ---------- -------- ----------");var ud="%"+l(Ue),ud=ud+(" %%"+yq(ae.zi,ae.Xi)),ud=ud+(" %%"+yq(ae.Ai,ae.Yi,!0)),ud=ud+(" %%"+l(ae.Lk));a.U(ud)}else a.U("unsupported operation")}}else a.U("missing address")}else{if("d"==
va){if("disk"==oa){da[0]="l";da[1]="json";dr(a,da);break a}for(eb in Rp)if(da[1]==eb){var gn=a.ib[eb];gn?(da.shift(),da.shift(),gn(da)):a.U("no dump registered for "+oa);break a}oa||(va=a.Lc||"db")}else a.Lc=va;if("dh"==va){var hn=oa,jn=Oa,kn="",ln=0,tb=a.Oa,wc=a.qa;if(wc.length){var Eb=+hn||a.Zb,ce=+jn||10;isNaN(Eb)?Eb=ce:kn="more ";Eb>wc.length&&(a.U("note: only "+wc.length+" available"),Eb=wc.length);tb-=Eb;0>tb&&(null==wc[wc.length-1].ga?(Eb=tb+Eb,tb=0):tb+=wc.length);var li=[];"call"==jn&&(ce=
1E5,li=["CALL"]);for(void 0!==hn&&a.U(Eb+" instructions earlier:");0<ce&&tb!=a.Oa;){var ub=wc[tb++];if(null==ub.ga)break;var ub=Dp(a,ub.Xa,ub.ga,ub.Ia,ub.type,ub.Xb,ub.rc),mn=Mq(a,ub,"history",Eb--);(!li.length||0<=mn.indexOf(li[0]))&&a.U(mn);ub.Re&&(tb+=ub.Re,ce-=ub.Re,Eb-=ub.Re);tb>=wc.length&&(tb=0);a.Zb=Eb;ln++;ce--}}ln||(a.U("no "+kn+"history available"),a.Zb=void 0)}else if("di"==va)da.shift(),a.U("no information");else{var de=tq(a,oa);if(de&&(null!=de.ga||null!=de.Ia)){var sg=0;Oa&&("l"==Oa.charAt(0)&&
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var ud="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,We="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(We+=l(tg,2*mi),We+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}ud&&(ud+="\n");ud+=oa+" "+We+" "+oi}ud&&a.U(ud);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var Xe=vq(a,g[xg]);if(void 0===Xe){a.U("unrecognized value: "+g[xg]);break}Xe&~on&&a.U("warning: "+l(Xe)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(Xe,rn));qn.call(a,wg,Xe,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Ye=b.substr(2),Ye=qa(Ye);vq(a,Ye)?(c||a.U("true: "+Ye),si=!0):(c||a.U("false: "+Ye),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ze=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ze.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ze.ga=un;if(xc=fr(a,Ze))break;Ze.ga=a.vb(Wc);if(xc=fr(a,Ze,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var vd=Zp(a,zg,wi);if(void 0!==vd)switch(vd=vd*xn|0,wi){case "x":a.Y.Ff(vd,0);break;case "y":a.Y.Ff(0,vd);break;case "click":a.Y.ge(vd,!0);a.Y.ge(vd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var wd=0;if("all"==Va)wd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){wd=Rp[yc];zc=!!(a.wc&wd);break}if(!wd){a.U("unknown message category: "+Va);break a}}wd&&("on"==g[2]?(a.wc|=wd,zc=!0):"off"==g[2]&&(a.wc&=~wd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
(Oa=Oa.substr(1)||ab),sg=Zp(a,Oa)>>>0,65536<sg&&(sg=65536));for(var vd="",Ar=(sg||128)+15>>4||1,mi="dd"==va?4:"dw"==va?2:1,nn=0;nn<Ar;nn++){for(var tg=0,ni=0,Ve="",oi="",oa=mq(de),pi=0;16>pi;pi++){var ug=a.Wa(de,1),tg=tg|ug<<(ni++<<3);ni==mi&&(Ve+=l(tg,2*mi),Ve+=1==mi?7==pi?"-":" ":" ",tg=ni=0);oi+=32<=ug&&128>ug?String.fromCharCode(ug):"."}vd&&(vd+="\n");vd+=oa+" "+Ve+" "+oi}vd&&a.U(vd);a.Jb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,on=255,pn=a.Wa,qn=a.tc;"ew"==g[0]&&(vg=2,on=65535,
pn=a.va,qn=a.pb);var rn=vg<<1,sn=g[1];if(null==sn)a.U("edit memory commands:"),a.U("\teb [a] [...] edit bytes at address a"),a.U("\tew [a] [...] edit words at address a");else{var wg=tq(a,sn);if(wg)for(var xg=2;xg<g.length;xg++){var We=vq(a,g[xg]);if(void 0===We){a.U("unrecognized value: "+g[xg]);break}We&~on&&a.U("warning: "+l(We)+" exceeds "+vg+"-byte value");var Br=pn.call(a,wg);a.U("changing "+mq(wg)+" from 0x"+l(Br,rn)+" to 0x"+l(We,rn));qn.call(a,wg,We,vg)}}break;case "f":ar(a,g[1]);break;
case "g":a:{var tn=g[1],Cr=b;"gt"==g[0]&&(a.lb=!0);if(void 0!==tn){var qi=tq(a,tn,!0);if(!qi)break a;wq(a,qi,Cr);a.Nd(a.A,qi,!0)}a.Je(!0)||c||a.U("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.ra.Ob?(ri="halting",a.bc()):ri="already halted";c||a.U(ri);break;case "i":if("if"==g[0]){var si;var Xe=b.substr(2),Xe=qa(Xe);vq(a,Xe)?(c||a.U("true: "+Xe),si=!0):(c||a.U("false: "+Xe),si=!1);si||(d=!1);break}if("int"==g[0]){var yg;a:switch(Zp(a,g[1])){case 19:Yj(a,19,a.M.Na,!0);a.Ha=
a.wa;yg=!0;break a;case 33:Yj(a,33,a.M.Na,!0);a.Ha=a.wa;yg=!0;break a;default:yg=!1}yg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Zp(a,ti);if(void 0!==ui){var Dr=oc(a.ja,ui,1);a.U(ia(ui)+": "+ga(Dr))}}else a.U("input commands:"),a.U("\ti [p]\tread port [p]"),a.U("warning: port accesses can affect hardware state");break;case "k":var Er=g[0];if("?"==g[1])a.U("stack trace commands:"),a.U("\tk\tshow frame addresses"),a.U("\tks\tshow symbol information");else{var vi=0,un=a.M.Ca.ga,Ye=Dp(a),Wc=Dp(a,
u(a.M),a.M.Aa.ga);for(a.U("stack trace for "+mq(Wc));10>vi;){for(var xc=null,Fr=256;Wc.Xa>>>0<a.M.Mg>>>0;){Ye.Xa=a.vb(Wc,!0);if(null==Wc.Ia||!Fr--)break;Ye.ga=un;if(xc=fr(a,Ye))break;Ye.ga=a.vb(Wc);if(xc=fr(a,Ye,!0)){un=a.vb(Wc,!0);0<xc.indexOf("INT")&&a.vb(Wc,!0);break}}if(!xc||null==xc)break;var vn=null;if("ks"==Er){var wn=xc.match(/[0-9A-F]+$/);wn&&(vn=cr(a,wn[0]))}xc=pa(xc,50)+" ;"+(vn||"stack="+mq(Wc));a.U(xc);vi++}vi||a.U("no return addresses found")}break;case "l":if("ln"==g[0]){cr(a,g[1],
!0);break}dr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],zg=g[2];if(a.Y){var xn=1;"-"==zg.charAt(0)&&(xn=-1,zg=zg.substr(1));var wd=Zp(a,zg,wi);if(void 0!==wd)switch(wd=wd*xn|0,wi){case "x":a.Y.Ff(wd,0);break;case "y":a.Y.Ff(0,wd);break;case "click":a.Y.ge(wd,!0);a.Y.ge(wd,!1);break;default:a.U("unknown action: "+wi)}}else a.U("no mouse");break}a:{var yc,zc=null,Va=g[1];"?"==Va&&(Va=void 0);if(void 0!==Va){var xd=0;if("all"==Va)xd=1610481663,Va=null;else if("on"==Va)zc=!0,Va=null;else if("off"==
Va)zc=!1,Va=null;else{"keys"==Va&&(Va="key");"kbd"==Va&&(Va="keyboard");for(yc in Rp)if(Va==yc){xd=Rp[yc];zc=!!(a.wc&xd);break}if(!xd){a.U("unknown message category: "+Va);break a}}xd&&("on"==g[2]?(a.wc|=xd,zc=!0):"off"==g[2]&&(a.wc&=~xd,zc=!1))}var Gr=0,Xc="";for(yc in Rp)if(!Va||Va==yc){var Hr=!!(a.wc&Rp[yc]);if(null===zc||zc==Hr)Xc&&(Xc+=","),++Gr%10||(Xc+="\n\t"),"key"==yc&&(yc="keys"),Xc+=yc}void 0===Va&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==zc?
zc?"messages on: ":"messages off: ":"message categories:\n\t")+(Xc||"none"));Fp(a)}break;case "o":var xi=g[1],Ir=g[2];if(xi&&"?"!=xi){var yi=Zp(a,xi,"port #"),zi=Zp(a,Ir);void 0!==yi&&void 0!==zi&&(sc(a.ja,yi,1,zi),a.U(ia(yi)+": "+ga(zi)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){er(a,b.substr(5));break}var yn="pr"==g[0]?1:0,ee=1+yn;if(a.P)a.U("step in progress");else{var Ag,
zn=!1,nb=Dp(a,v(a.M),a.M.Ca.ga);do switch(Ag=!1,a.Wa(nb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:oq(a,nb,1);Ag=!0;break;case 204:case 206:a.P=ee;oq(a,nb,1);break;case 205:case 224:case 225:case 226:a.P=ee;oq(a,nb,nb.Xb?4:2);break;case 232:a.P=ee;oq(a,nb,nb.Xb?5:3);break;case 154:a.P=ee;oq(a,nb,nb.Xb?7:5);break;case 255:var An=a.vb(nb)&14591;if(4351==An||6399==An)a.P=ee,Mq(a,nb);break;case 243:case 242:oq(a,nb,1);zn=Ag=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:zn&&
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var $e;void 0!==g[3]&&($e=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
$e;break;case "start":a.M.ba.Hf=$e;break;case "stop":a.M.ba.jf=$e;break;default:a.U("unknown cs option");break a}void 0!==$e&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var af="commands:",Ai;for(Ai in Kp)af+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.U(af);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
(a.P=ee,oq(a,nb,1))}while(Ag);a.P?(a.Nd(a.A,nb,!0),a.Je()||(a.M.Vc(),a.P=0)):gr(a,yn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}Eq(a,g);break;case "t":gr(a,g[0],g[1]);break;case "u":Fq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){br(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(Ab?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ze;void 0!==g[3]&&(Ze=+g[3]);switch(g[2]){case "int":a.M.ba.gf=
Ze;break;case "start":a.M.ba.Hf=Ze;break;case "stop":a.M.ba.jf=Ze;break;default:a.U("unknown cs option");break a}void 0!==Ze&&Vc(a.M);a.U("checksums "+(a.M.ra.Xe?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(dd(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Td+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),
a.U("\tcs stop #\tset checksum cycle stop count to #"),a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){er(a,b.substr(1));break}var $e="commands:",Ai;for(Ai in Kp)$e+="\n"+pa(Ai,7)+Kp[Ai];Of(a)||($e+="\nnote: frequency/history disabled if no exec breakpoints");a.U($e);break;default:a.U("unknown command: "+b),d=!1}}}catch(Bn){a.U("debugger error: "+(Bn.stack||Bn.message)),d=!1}return d}function Hp(a,b,c){b=xq(a,b,c);for(var d in b)if(!Lq(a,b[d]))return!1;return!0}
Sa(function(){for(var a=qb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=mb(c),d=new Cp(d);pb(d,c)}});function df(a,b,c){this.id=a.id;this.key=ir(a,b,c);this.ma=a.ma;jr(this,a.xk)}function ir(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
df.prototype={constructor:df,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Fa()&&(a=Ga(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){jr(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function jr(a,b){a[a.id]={};b&&ef(a,"parms",b);a.A=!1}function kr(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function lr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function mr(a,b){return a[a.id][b]||null}function ef(a,b,c){try{a[a.id][b]=c}catch(d){}}
@ -1226,6 +1226,8 @@ function zr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(B){k=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?Jr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Jr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Jr(a,b,c)}})}else c(a,null)}
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,"xml",d),yr(c,null,null,!1,e,function(c,d){if(d)if(ib(a,"xsl",c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var q=k.transformNode(d);q?(g.outerHTML=q,--xr||Ua(!0)):
f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(q=new XSLTProcessor,q.importStylesheet(d),(q=q.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(q,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(c)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a){var b=lb("Computer",a),c=lb("Debugger",a);if(b)return za("/versions/pcjs/null/pc"+(c?"-dbg":"")+".js"),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;window.sendEvent=Wa;})();
function Kr(a,b,c,d){function e(a){if(void 0===k){var b=g&&qb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--xr||Ua(!0));q=!1}var g,k,q=!0;xr++;hb[a]={};try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){k?(ib(a,b,d),yr(c,null,null,!1,e,function(d,q){if(q)if(ib(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--xr||Ua(!0)):f("transformNodeToObject failed")}else document.implementation&&
document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(r,g),--xr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)})):f(d)};"<"!=b.charAt(0)?yr(b,a,d,!0,e,r):zr(b,null,a,d,!1,e,r)}else f("missing machine element: "+a)}catch(x){f(x.message)}return q}
function Lr(a,b,c,d){if(b&&(c=d[0],b=b.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/))){d=hb[c];var e={},f;for(f in d){var g=d[f];if("xml"==f)for(var k,q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;k=q.exec(d[f]);){var r=k[2];r&&(d[r]?console.log("saving disk: '"+r):g=g.replace(k[0],""))}console.log("saving resource: '"+f+"' ("+g.length+" bytes)");e[f]=g}f=JSON.stringify(e);b=b[1]+"var resources="+f+";"+b[2]+b[3];console.log("saving machine: '"+c+"' ("+b.length+" bytes)");f="data:application/octet-stream;base64,"+
btoa(b);c=document.createElement("a");"string"==typeof c.download?(c.href=f,c.download=ja(a,!0)+".json",document.body.appendChild(c),c.click(),document.body.removeChild(c)):window.open(f)}}window.embedPC=function(a,b,c,d){Ua(!1);return Kr(a,b,c,d)};window.savePC=function(a,b){var c=lb("Computer",a),d=lb("Debugger",a);if(c)return b||(b="/versions/pcjs/1.20.9/pc"+(d?"-dbg":"")+".js"),za(b,!0,null,null,Lr,[a,c,d]),!0;Ba("Unable to identify machine '"+a+"'");return!1};window.enableEvents=Ua;
window.sendEvent=Wa;})();