(function(){/* http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/cpudef.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/messages.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/defines.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/panel.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/bus.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/memory.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/cpu.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/cpustate.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/cpuops.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/chipset.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/rom.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/ram.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/keyboard.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/video.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/serialport.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2016 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016 */ var l,n={qe:1,re:3,se:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Db:65,Lc:66,Nc:67,ac:68,E:69,Qc:70,Rc:71,Sc:72,Tc:73,$c:74,ad:75,cc:76,hd:77,jd:78,ld:79,md:80,Q:81,sd:82,vd:83,Bd:84,Cd:85,Dd:86,Ed:87,Gd:88,Hd:89,Ob:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Id:97,$e:98,af:99,d:100,e:101,bf:102,cf:103,df:104,ef:105,ff:106,k:107,gf:108, hf:109,n:110,jf:111,p:112,q:113,r:114,kf:115,t:116,mf:117,nf:118,pf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,te:127}; function aa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0>=3;return(c?"0o":"")+d}function t(a,b,c){var d="";b?8=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ca(a){return t(a,2,!0)} function u(a){return t(a,4,!0)}function da(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0":">",'"':""","'":"'"};function la(a){return a.replace(/[&<>"']/g,function(a){return ka[a]})} function ma(a,b){return(a+" ").slice(0,b)}function na(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var oa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"}; function pa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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())} function sa(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;cb.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ab=g.load;d.Sa=g.exec;if(e=g.bytes)d.za=e;else if(e=g.words)for(d.za=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.za=Array(4*e.length),f=c=0;c>8&255,d.za[f++]=e[c]>>16&255,d.za[f++]=e[c]>>24&255;else d.za=g;d.Da=g.symbols;d.za.length?1==d.za.length&&(w(d.za[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;cb?this.fb=this.id:(this.gb=this.id.substr(0,b),this.fb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,vb:!1,Pb:!1,wa:!1,error:!1};this.Hb=null;this.C.error=!1;this.M={};this.H=null;this.sa=d||0;Ua.push(this)}var Va=void 0,Wa={}; if(window){Va||(Va=window.location.search.substr(1));for(var Xa,Ya=/\+/g,Za=/([^&=]+)=?([^&]*)/g;Xa=Za.exec(Va);)Wa[decodeURIComponent(Xa[1].replace(Ya," "))]=decodeURIComponent(Xa[2].replace(Ya," "))}function ab(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 A(a,b){b||(b=x);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var bb=window.PCjs.Machines||(window.PCjs.Machines={}),Ua=window.PCjs.Components||(window.PCjs.Components=[])}else bb={},Ua=[];function cb(a,b,c){bb[a]&&b&&(bb[a][b]=c)}function Qa(a,b,c){b||w((c?c+": ":"")+a)} function db(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b>1)+2;10>this.ha&&(this.ha=10);15>2;this.w=this.Ia-1;this.J=this.K/this.Ia|0;this.D=this.J-1;this.A=[];this.j=[];this.F=this.B=!1;this.N=[];this.O=[];a=new G;xb(a,this.H);this.W=Array(this.J);for(b=0;b>>a.ha;0f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.G)return h.Bb+=h.G-e,h.G=e,!0;if(e>=h.G+h.Bb){m=h.size-(e-k);m>f&&(m=f);h.Bb=e-h.G+m;e=k+a.Ia;f-=m;g++;continue}}return zb(1,e,f)}e=new G(e,m,a.Ia,d);xb(e,a.H,h);a.W[g++]=e;e=k+a.Ia;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+u(b)),!0):zb(2,b,c)} l.Z=function(a){return this.W[(a&this.u)>>>this.ha].mb(a&this.w,a)};function Bb(a,b){return a.W[(b&a.u)>>>a.ha].zb(b&a.w,b)}l.bb=function(a){var b=a&this.w,c=(a&this.u)>>>this.ha;return b!=this.w?this.W[c].Ec(b,a):this.W[c++].mb(b,a)|this.W[c&this.D].mb(0,a+1)<<8};function Cb(a,b){var c=b&a.w,d=(b&a.u)>>>a.ha;return c!=a.w?a.W[d].Ub(c,b):a.W[d++].zb(c,b)|a.W[d&a.D].zb(0,b+1)<<8}l.ua=function(a,b){this.W[(a&this.u)>>>this.ha].ob(a&this.w,b&255,a)}; function Db(a,b,c){a.W[(b&a.u)>>>a.ha].Cb(b&a.w,c&255,b)}l.Lb=function(a,b){var c=a&this.w,d=(a&this.u)>>>this.ha;c!=this.w?this.W[d].Gc(c,b&65535,a):(this.W[d++].ob(c,b&255,a),this.W[d&this.D].ob(0,b>>8&255,a+1))};function Eb(a){for(var b=0,c=[],d=0;d>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.H&&a.B!=g[1]&&Wb(a.H,b,k)}else a.H&&(hb(a.H,a,b,k,d),a.B&&Wb(a.H,b,k));f+=h<<3;b+=h;e-=h}} function zb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Xb;if(ob){var Yb=new ArrayBuffer(2);(new DataView(Yb)).setUint16(0,256,!0);Xb=256===(new Uint16Array(Yb))[0]}else Xb=!1;var Zb=Xb; function G(a,b,c,d){this.id=$b+=2;this.b=null;this.G=a;this.Bb=b;this.size=c||0;this.type=d||ac;this.M=d==bc;xb(this);this.Oa=this.Bc=!1;if(c)if(ob)this.F=new ArrayBuffer(c),this.B=new DataView(this.F,0,c),this.w=new Uint8Array(this.F,0,c),this.J=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),cc(this,Zb?dc:ec);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},X:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ea:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},gb:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<> 2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<>8);this.Oa=!0},N:function(a,b){if(this.H&&null!=this.G){var c=this.H;jc(c,this.G+a,1,c.N)&&c.qa(!0)}return this.zb(a,b)},ba:function(a,b){if(this.H&&null!=this.G){var c=this.H;jc(c,this.G+a,2,c.N)&&c.qa(!0)}return this.Ub(a,b)},ia:function(a,b,c){if(this.H&&null!=this.G){var d=this.H;jc(d,this.G+a,1,d.B)&&d.qa(!0)}this.M?this.u(a,b,c):this.Cb(a,b,c)},la:function(a,b,c){if(this.H&& null!=this.G){var d=this.H;jc(d,this.G+a,2,d.B)&&d.qa(!0)}this.M?this.u(a,b,c):this.Yb(a,b,c)},L:function(a){return this.w[a]},O:function(a){return this.w[a]},aa:function(a){return this.B.getUint16(a,!0)},da:function(a){return a&1?this.w[a]|this.w[a+1]<<8:this.J[a>>1]},ga:function(a,b){this.w[a]=b;this.Oa=!0},fb:function(a,b){this.w[a]=b;this.Oa=!0},ka:function(a,b){this.B.setUint16(a,b,!0);this.Oa=!0},ma:function(a,b){a&1?(this.w[a]=b,this.w[a+1]=b>>8):this.J[a>>1]=b;this.Oa=!0}}; function xb(a,b,c){a.H=b;a.A=a.j=0;c&&((a.A=c.A)&&ic(a,hc,!1),(a.j=c.j)&&gc(a,hc,!1))}function kc(a,b){b?--a.j||(a.ob=a.M?a.u:a.Cb,a.Gc=a.M?a.D:a.Yb):--a.A||(a.mb=a.zb,a.Ec=a.Ub)}function gc(a,b,c){c&&a.j||(a.ob=!a.M&&b[1]||a.u,a.Gc=!a.M&&b[3]||a.D);if(c||void 0===c)a.Cb=b[1]||a.u,a.Yb=b[3]||a.D}function ic(a,b,c){c&&a.A||(a.mb=b[0]||a.I,a.Ec=b[2]||a.K);if(c||void 0===c)a.zb=b[0]||a.I,a.Ub=b[2]||a.K}function cc(a,b){b||(b=lc);ic(a,b,void 0);gc(a,b,void 0)} var lc=[],fc=[G.prototype.X,G.prototype.gb,G.prototype.ea,G.prototype.va],hc=[G.prototype.N,G.prototype.ia,G.prototype.ba,G.prototype.la];if(ob)var ec=[G.prototype.L,G.prototype.ga,G.prototype.aa,G.prototype.ka],dc=[G.prototype.O,G.prototype.fb,G.prototype.da,G.prototype.ma]; function mc(a,b){x.call(this,"CPU",a,mc,1);var c=a.multiplier||1;this.X=a.cycles||b;this.Ra=c;this.ga=Math.round(this.X/1E4)/100;this.cb=this.ga*this.Ra;this.C.ya=!1;this.C.Xb=!1;this.C.ub=a.autoStart;this.C.zc=!1;this.C.ib=!1;this.wb=this.N=0;this.xb=a.csStart;this.kb=a.csInterval;this.lb=a.csStop;this.u=[];this.Ga=this.eb.bind(this);F(this)}A(mc);var nc=["power","reset"];l=mc.prototype; l.Qa=function(a,b,c,d){this.A=a;this.w=b;this.H=d;for(b=0;b=a.N&&(a.N+=a.kb,c=!0);0<=a.lb&&a.lb<=Gc(a)&&(a.kb=a.lb=-1,qc(a),a.qa(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.wb))}} l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.M[b]=c;a=!0;break;case "run":this.M[b]=c;c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.C.wa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.J/a.cb?b=1:d=!0;a.Ra=b;b=a.ga*a.Ra;if(a.cb!=b){a.cb=b;b=a.cb.toFixed(2)+"Mhz";var e=a.M.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.Ab()}Ic(a,a.D);a.D=0;a.B=qa();a.I=0;Jc(a);return d}function Kc(a,b){var c=a.u.length;a.u.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.u[b][0]&&(c*=a.X*a.Ra/1E3,a.u[b][0]=c+Mc(a))}function Mc(a,b){var c=a.K-=a.b;a.b=0;b&&(a.K=0);return c} l.eb=function(a){if(kb(this,!0)){if(!this.C.ya){Hc(this);this.A&&this.A.start(this.B,Gc(this));this.C.ya=!0;this.C.Xb=!0;this.F&&this.F.start();var b=this.M.run;b&&(b.textContent="Halt");this.A&&(this.A.Ka(!0),a&&this.A.Ab(!0))}this.ia>=this.X&&Jc(this,!0);this.aa=0;this.da=qa();this.I&&(a=this.da-this.I,a>this.va&&(this.B+=a,this.B>this.da&&(this.B=this.da)));try{do{for(var c,d=this.C.ib?1:this.ea,e=this.u.length-1;0<=e;e--){var f=this.u[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.nb(c);c=Mc(this,!0);this.aa+= c;this.D+=c;Fc(this,c);a=c;for(var g=this.u.length-1;0<=g;g--){var h=this.u[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.O-=c;if(0>=this.O){this.O+=this.ea;15<=++this.Aa&&(this.A&&this.A.Ka(),this.Aa=0);break}}while(this.C.ya)}catch(k){this.qa();Ec(this);this.A&&this.A.stop(qa(),Gc(this));kb(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Ga;this.I=qa();e=this.va;this.aa&&(e=Math.round(e*this.aa/this.ea));e-=this.I-this.da;if(f=this.I-this.B)this.J=Math.round(this.D/(10*f))/ 100,864E5<=f&&(this.L=0,Hc(this));if(0>e||this.Je&&(this.B-=e),e=0;this.ia+=this.aa;this.I+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.nb=function(){return 0};l.qa=function(a){lb(this,!0);Mc(this);Ic(this,this.D);this.D=0;if(this.C.ya){this.C.ya=!1;this.F&&this.F.stop();var b=this.M.run;b&&(b.textContent="Run")}this.C.complete=a};function Ec(a,b){if(a.A){for(var c=a.A,d=0;d>8&255;a.S=b&255}function Yc(a){return a.T<<8|a.U}function Zc(a,b){a.T=b>>8&255;a.U=b&255}function J(a){return a.V<<8|a.Y} function $c(a,b){a.V=b>>8&255;a.Y=b&255}function I(a,b){a.P=b&65535}function ad(a){return a.ca&256?1:0}function bd(a,b){a.ca=a.ca&255|b}function cd(a){return pb[a.fa&255]?4:0}function dd(a){return(a.fa^a.xa)&16?16:0}function ed(a){return a.ca&255?0:64}function fd(a){return a.fa&128?128:0}function Uc(a){return a.ta&-214|fd(a)|ed(a)|dd(a)|cd(a)|ad(a)}function Sc(a,b){a.ca=a.fa=a.xa=0;b&1&&(a.ca|=256);b&4||(a.fa|=1);b&16&&(a.xa|=16);b&64||(a.ca|=255);b&128&&(a.fa^=192);a.ta=a.ta&-726|b&512|2} function gd(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b)&255}function hd(a,b){a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?1:0))&255}function id(a,b){a.ca=a.fa=a.xa=a.i&b;(a.i|b)&8&&(a.xa^=16);return a.ca}function jd(a,b){a.xa=b^255;b=a.fa=b+255&255;a.ca=a.ca&-256|b;return b}function kd(a,b){a.xa=b;b=a.fa=b+1&255;a.ca=a.ca&-256|b;return b}function ld(a,b){return a.fa=a.ca=a.xa=a.i|b}function K(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+1^256)&255} function Gd(a,b){b^=255;a.xa=a.i^b;return a.fa=(a.ca=a.i+b+(a.ca&256?0:1)^256)&255}function Hd(a,b){return a.fa=a.ca=a.xa=a.i^b}l.Z=function(a){return this.w.Z(a)};l.ua=function(a,b){this.w.ua(a,b)};function L(a){var b=a.Z(a.P);I(a,a.P+1);return b}function M(a){var b=a.w.bb(a.P);I(a,a.P+2);return b}function N(a){var b=a.w.bb(a.oa);a.oa=a.oa+2&65535;return b}function P(a,b){a.oa=a.oa-2&65535;a.w.Lb(a.oa,b)} function Id(a){if(a.b&&a.j&255&&a.ta&512){for(var b=0;8>b&&!(a.j&1<b?255:1<>8;bd(this,a&256);this.b-=4},Md,function(){var a;$c(this,a=J(this)+Wc(this));bd(this,a>>8&256);this.b-=10},function(){this.i=this.Z(Wc(this));this.b-=7},function(){Xc(this,Wc(this)-1);this.b-= 5},function(){this.S=kd(this,this.S);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;bd(this,a);this.b-=4},Md,function(){Zc(this,M(this));this.b-=10},function(){this.ua(Yc(this),this.i);this.b-=7},function(){Zc(this,Yc(this)+1);this.b-=5},function(){this.T=kd(this,this.T);this.b-=5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255| ad(this);bd(this,a&256);this.b-=4},Md,function(){var a;$c(this,a=J(this)+Yc(this));bd(this,a>>8&256);this.b-=10},function(){this.i=this.Z(Yc(this));this.b-=7},function(){Zc(this,Yc(this)-1);this.b-=5},function(){this.U=kd(this,this.U);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<8;this.i=(ad(this)<<8|this.i)>>1;bd(this,a&256);this.b-=4},Md,function(){$c(this,M(this));this.b-=10},function(){var a=M(this);this.w.Lb(a,J(this)); this.b-=16},function(){$c(this,J(this)+1);this.b-=5},function(){this.V=kd(this,this.V);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=0,b=ad(this);if(dd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=gd(this,a);bd(this,b?256:0);this.b-=4},Md,function(){var a;$c(this,a=J(this)+J(this));bd(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.w.bb(a);$c(this,a);this.b-=16},function(){$c(this,J(this)-1);this.b-=5},function(){this.Y= kd(this,this.Y);this.b-=5},function(){this.Y=jd(this,this.Y);this.b-=5},function(){this.Y=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Md,function(){this.oa=M(this)&65535;this.b-=10},function(){this.ua(M(this),this.i);this.b-=13},function(){this.oa=this.oa+1&65535;this.b-=5},function(){var a=J(this);this.ua(a,kd(this,this.Z(a)));this.b-=10},function(){var a=J(this);this.ua(a,jd(this,this.Z(a)));this.b-=10},function(){this.ua(J(this),L(this));this.b-=10},function(){this.ca|=256;this.b-= 4},Md,function(){var a;$c(this,a=J(this)+this.oa);bd(this,a>>8&256);this.b-=10},function(){this.i=this.Z(M(this));this.b-=13},function(){this.oa=this.oa-1&65535;this.b-=5},function(){this.i=kd(this,this.i);this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){bd(this,ad(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.U;this.b-=5},function(){this.R=this.V;this.b-= 5},function(){this.R=this.Y;this.b-=5},function(){this.R=this.Z(J(this));this.b-=7},function(){this.R=this.i;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.Y;this.b-=5},function(){this.S=this.Z(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T= this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.Y;this.b-=5},function(){this.T=this.Z(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U=this.V;this.b-=5},function(){this.U=this.Y;this.b-=5},function(){this.U=this.Z(J(this));this.b-=7},function(){this.U=this.i;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V= this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.Y;this.b-=5},function(){this.V=this.Z(J(this));this.b-=7},function(){this.V=this.i;this.b-=5},function(){this.Y=this.R;this.b-=5},function(){this.Y=this.S;this.b-=5},function(){this.Y=this.T;this.b-=5},function(){this.Y=this.U;this.b-=5},function(){this.Y=this.V;this.b-=5},function(){this.b-=5},function(){this.Y=this.Z(J(this));this.b-=7},function(){this.Y=this.i; this.b-=5},function(){this.ua(J(this),this.R);this.b-=7},function(){this.ua(J(this),this.S);this.b-=7},function(){this.ua(J(this),this.T);this.b-=7},function(){this.ua(J(this),this.U);this.b-=7},function(){this.ua(J(this),this.V);this.b-=7},function(){this.ua(J(this),this.Y);this.b-=7},function(){var a=this.P-1;if(this.ba.length)for(var b=0;b>8;this.b-=10},function(){var a=M(this);fd(this)||I(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=M(this);fd(this)||(P(this,this.P),I(this,a),this.b-=6);this.b-=11},function(){P(this,Uc(this)&255|this.i<<8);this.b-=11},function(){this.i=ld(this,L(this));this.b-=7},function(){P(this,this.P);I(this,48);this.b-=11},function(){fd(this)&&(I(this, N(this)),this.b-=6);this.b-=5},function(){this.oa=J(this)&65535;this.b-=5},function(){var a=M(this);fd(this)&&I(this,a);this.b-=10},function(){this.ta|=512;this.b-=4;Id(this)},function(){var a=M(this);fd(this)&&(P(this,this.P),I(this,a),this.b-=6);this.b-=11},Pd,function(){K(this,L(this));this.b-=7},function(){P(this,this.P);I(this,56);this.b-=11}]; function R(a){x.call(this,"ChipSet",a,R,32768);var b=a.model;b&&!Qd[b]&&Qa("Unrecognized ChipSet model: "+b);this.u=Qd[b]||{};a.sound&&(this.ea=null,window&&(this.ea=window.AudioContext||window.webkitAudioContext),this.ea&&new this.ea);F(this)}A(R); var S={Ba:1978.1,zd:{Ca:0,ve:1,ze:16,Ge:32,Pe:64,Oe:128,pb:14},Za:{Ca:1,Oc:1,rd:2,nd:4,od:16,pd:32,qd:64,pb:8},Ad:{Ca:2,ue:3,Xe:4,we:8,Ke:16,Le:32,Me:64,xe:128,pb:0},Te:{Ca:3},Re:{Ca:2,He:7},Ve:{Ca:3,Ye:1,Ue:2,Ne:4,Ee:8,ye:16,ne:32},Se:{Ca:4},We:{Ca:5,Ae:1,Be:2,Ce:4,De:8,Ze:16}},T={Ba:100,La:{Ca:66,qc:1,fc:2,kd:4,Je:8,Ie:16,hc:32,gc:64,bc:128},Mc:{Ca:66,INIT:0},Ua:{Ca:194,pe:0,$b:16,td:32,mc:48,Wc:0,Xc:32},Eb:{Ca:162,Qe:0,Zc:0,Vc:0,Yc:0,Uc:0},Ma:{Fe:{Ca:98},Ta:{Jc:0,Ic:1,wd:2,Fd:4,Pc:5,ud:6,xd:7}, Fb:16383}},Qd={SI1978:S,VT100:T};R.prototype.pa=function(){return!1};R.prototype.Qa=function(a,b,c,d){this.w=b;this.b=c;this.H=d;this.A=a;this.J=ub(a,"Keyboard");this.Ga=ub(a,"SerialPort");this.video=ub(a,"Video");Gb(b,this,this.u.Jb);Ub(b,this,this.u.Kb);if(d){var e=this;Rd(d,16384,function(){for(var a="",b=0;b>8-this.da&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.da=b};l.fe=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.la=b};l.ee=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.X=b<<8|this.X>>8}; l.ge=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.he=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Sd(a){var b=0,c=0,d=~a.O;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} l.Xd=function(a,b){var c=this.I,c=c&~T.La.gc;if((Gc(this.b)&64)<<1&&(c|=T.La.gc,c!=this.I)){var d,e;d=this.N&1;e=this.N>>1&7;switch(e){case T.Ma.Ta.xd:break;case T.Ma.Ta.Ic:this.O=this.O<<1|d;break;case T.Ma.Ta.Pc:d=Sd(this);this.F[d]=T.Ma.Fb;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case T.Ma.Ta.Jc:this.j=this.j<<1|d;break;case T.Ma.Ta.Fd:d=Sd(this);e=this.j&T.Ma.Fb;this.F[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case T.Ma.Ta.ud:d=Sd(this);e=this.F[d]; null==e&&(e=T.Ma.Fb);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case T.Ma.Ta.wd:this.j<<=1;this.ba=this.j&T.Ma.Fb+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~T.La.hc;this.ba&&(c|=T.La.hc);c&=~T.La.bc;if(d=this.J){d=this.J;if(e=d.D)e=d.b,e=Gc(d.b)>=d.K+e.X*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=T.La.bc);c&=~T.La.qc;this.Ga&&this.Ga.Ea&1&&(c|=T.La.qc);this.I=c;E(this,a,null,b,"FLAGS",c);return c}; l.ie=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ga=b};l.le=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.N=b};l.ke=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.B=this.B&-4|a;break;case 1:this.B=this.B&-13|a<<2;this.video&&(b=this.video,a=this.B,ib(b,"updateScrollOffset("+a+")"),b.hb!==a&&((b.hb=a)?Nc(b,!0):b.rb=!0));break;case 2:switch(a){case 0:this.aa=~this.aa;break;case 2:case 3:this.ka=3-a}break;case 3:this.ia=a}}; l.je=function(a,b,c){E(this,a,b,c,"DC011");b&T.Ua.td?(b&=T.Ua.mc,this.L!=b&&(this.L=b,this.video&&(a=this.video,b=this.L==T.Ua.mc?50:60,ib(a,"updateRate("+b+")"),a.uc=b))):(b&=T.Ua.$b,this.K!=b&&(this.K=b,this.video&&(a=this.K==T.Ua.$b?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.yc);0>q&&p.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.D.push({lf:b,G:c,Zd:d,Da:e,xc:f})}delete this.Da}return!0};Vd.prototype.Ja=function(){return!0}; function Wd(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{cb(a.gb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Da=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.ja("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>f.ha;0>>= f.ha;0=n.Db&&a<=n.Ob?d.u&515||(d.u|=512,ge(d,20,!0),he(d)):a>=n.Id&&a<=n.z&&d.u&512&&(d.u&=-513,ge(d,20,!1),he(d));return!0},!0;default:if(this.w.Ya&&void 0!==this.w.Ya[b])return this.M[e]=c,a=function(a,b){return function(c){c.preventDefault(); ge(a,b,!0)}}(this,this.w.Ya[b]),b=function(a,b){return function(){ge(a,b,!1)}}(this,this.w.Ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};be.prototype.Qa=function(a,b,c,d){this.A=a;this.b=c;this.H=d;var e=this;this.N=Kc(this.b,function(){ie(e)});this.F=ub(a,"ChipSet");Gb(b,this,this.w.Jb);Ub(b,this,this.w.Kb)};be.prototype.Fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0}; be.prototype.Ja=function(a){return a?this.save():!0};W.INIT=[[W.Na.INIT,W.Kc.INIT,!1,0,-1]];l=be.prototype;l.reset=function(){this.j=[];this.u=0;this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")};l.save=function(){var a=new Vc(this);switch(this.w.Ba){case W.Ba:a.set(0,[this.I,this.J,this.D,this.K,-1])}return a.data()}; l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case ee.Ba:return!0;case W.Ba:return this.I=b[0],he(this,this.I&W.Na.dc),this.J=b[1],this.D=b[2],this.K=b[3],this.B=b[4],!0}return!1};function he(a,b){var c;null!=b?a.L=b:b=a.L;for(var d in a.w.sb)if(c="led-"+d,c=a.M[c]){var e=a.w.sb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+t(16711680,6):"#000000"}if(c=a.M["led-caps-lock"])c.style.backgroundColor=a.u&512?"#"+t(65280,6):"#000000"} function fe(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.w.Zb[e]||e,!a.w.Mb[e]){for(var f in a.w.Ya)if(a.w.Ya[f]===e){e=f;break a}e=null}if(e){d=2==b.location;f=0;switch(e){case 17:f=d?4:8;break;case 16:f=d?1:2;break;case 20:f=512}f&&(a.u=c?a.u|f:a.u&~f);d=ge(a,e,c);(en.Ob)&&b.preventDefault()}return d} function ge(a,b,c){var d,e;a:{for(e=0;ee?a.j.push({Wb:b,Tb:Date.now(),Gb:d}):(a.j[e].Tb=Date.now(),a.j[e].Gb=d);else if(0<=e){if(!a.j[e].Gb&&(d=a.j[e].Tb)&&50>Date.now()-d)return a.j[e].Gb=!0,ie(a),!0;a.j.splice(e,1)}if(a.F){d=0;switch(b){case "1p":d=S.Za.nd;break;case "2p":d=S.Za.rd;break;case "coin":d=S.Za.Oc;break;case "left":d=S.Za.pd;break;case "right":d=S.Za.qd;break;case "fire":d=S.Za.od}d&&(a=a.F,b=d,a.D&=~b,c&&(a.D|=b))}return!0} function ie(a){for(var b=0,c=-1;bc||c>e)c=e}else{ge(a,d,!1);b=0;continue}}b++}0<=c&&Lc(a.b,a.N,c)}l.Yd=function(a,b){var c=this.J;0<=this.B&&(this.B>3)*a.aa,!yb(a.w,a.Va,a.O,3)))return!1;a.O?(a.pc=a.F.createImageData(b,c),a.sc=16/a.Wa|0,oe(a,a.O>>1)):oe(a,(a.ba+1)*a.va);a.K=document.createElement("canvas");a.K.width=b;a.K.height=c;a.qb=a.K.getContext("2d");a.ea={};a.la=1<=a.jc?8:16,f=8>(7>4)*c)}return k}je.prototype.Fa=function(){return!0};je.prototype.pa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Nb[b]=c,!0;switch(b){case "fullScreen":return this.M[b]=c,this.j&&this.j.jb?c.onclick=function(){d.jb()}:c.parentNode.removeChild(c),!0}return!1}; je.prototype.jb=function(){var a=!1;if(this.j){if(this.j.jb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.X/this.N;b>c&&(a=Math.round(c/b*100)+"%")}this.oc?(this.L.style.width=a,this.L.style.width=a,this.L.style.display="block",this.L.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.jb();a=!0}this.ka&&this.ka.focus()}return a}; function me(a,b){!b&&a.j&&(a.oc?a.L.style.width=a.L.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function oe(a,b){a.rc=b;a.ia=!1;if(void 0===a.D||a.D.length!=a.rc)a.D=Array(a.rc)}function qe(a,b,c,d,e){d=a.u?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ma&&(208<=c&&236>c?e=a.la+0:28<=c&&72>c&&(e=a.la+1));a=a.ga[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} function Nc(a,b){var c=!0;if(!b){a.Xa&&(120==a.Xa?a.tc&1?(Jd(a.b,2),c=!1):Jd(a.b,1):Jd(a.b,4));if(c&&a.ia&&a.O){for(var d=a.w,e=a.O,f=!0,g=a.Va>>>d.ha;0>=1);;){var v=Bb(a.w,p++);if(127==(v&127)){var r=Bb(a.w,p++),d=r&96,c=(r&15)<<8|Bb(a.w,p),c=c+ (r&16?8192:16384);break}if(m>4)*v.na,C,U,ea,Y,ua=v.ra,Hb=v.na;z?(C=y*r.ra,U=e*r.na,ea=r.ra,Y=r.na):(C=y*r.kc,U=e*r.lc,ea=r.kc,Y=r.lc);v.ra>r.ra&&(C*=2,ea*=2);v.na>r.na&&(q||(H+=r.na),Hb=r.na);z?z.drawImage(v.canvas,ha,H,ua,Hb,C,U,ea,Y):(C+=0,U+=0,r.F.drawImage(v.canvas, ha,H,ua,Hb,C,U,ea,Y))}h++}g++}e++}}a.ia=!0;!b&&a.rb&&1==h&&(a.D[k]=-1,h=0);a.rb=!1;(h||b)&&a.qb&&a.F.drawImage(a.K,0,a.hb,a.I,a.aa-a.na,0,0,a.Hc,a.Kd)}else{e=a.Va;f=e+a.O;k=h=g=0;b=a.I;m=0;c=a.aa;q=d=0;p=a.Wa;y=(1<>8|(r&255)<<8);h>z&y,qe(a,a.pc,h++,k,ha),z+=p;h>m&&(m=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.I&&(h=0,k++,k>a.aa))break}a.ia=!0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=xa().indexOf("MSIE")&&(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.onresize());var f=+(d.aspect||Wa.aspect);f&&.3<=f&&3.33>=f&&(Na("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new je(d,e,g,f,c);gb(d,c)}}); function re(a){this.ea=+a.adapter;switch(this.ea){case 0:this.ga=0;this.ka=2;break;default:w("Unrecognized serial adapter #"+this.ea);return}this.j=this.u=null;this.ia=a.tabSize;this.da=a.charBOL;this.B=0;this.aa=!1;x.call(this,"SerialPort",a,re,8388608);var b=a.binding;if("console"==b)this.u="";else{var c;a=se;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.M[b])&&this.pa(null,a,b))}this.D="";this.J=this.L=null;this.exports={connect:this.Dc,receiveData:this.Vb}}A(re); var te=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],ue=[!1,0,0,133,142,39,238],se="buffer";l=re.prototype; l.pa=function(a,b,c,d){var e=this;switch(b){case se:return this.M[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64");if(2==b.length){var c=na(b[0]);if(c!=this.fb)return;b=na(b[1]);if(this.J=eb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.L=d.receiveData){this.status(this.gb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Fa=function(a,b){if(!b)if(this.Dc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0}; l.Ja=function(a){return a?this.save():!0};l.reset=function(){ye(this)};l.save=function(){var a=new Vc(this),b=0,c=[];c[b++]=this.K;c[b++]=this.X;c[b++]=this.ba;c[b++]=this.Ea;c[b++]=this.I;c[b++]=this.O;c[b]=this.N;a.set(0,c);return a.data()};l.restore=function(a){return ye(this,a[0])};function ye(a,b){var c=0;b||(b=ue);a.K=b[c++];a.X=b[c++];a.ba=b[c++];a.Ea=b[c++];a.I=b[c++];a.O=b[c++];a.N=b[c];return!0} function ze(a,b){var c=a.N&b;b&15||(c>>=4);b=te[c];c=((a.I&12)>>2)+6;a.I&16&&c++;c+=((a.I&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function ve(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.Ea));return a.aa||a.Ea&2?!1:(a.X=b,a.Ea|=2,Jd(a.b,a.ka),!0)}l.Vb=function(a){null!=a&&(this.D="number"!=typeof a?a:this.D+String.fromCharCode(a));this.D&&(ve(this,this.D.charCodeAt(0))&&(this.D=this.D.substr(1)),this.D&&this.b&&Lc(this.b,this.la,ze(this,15)));return!0}; l.Sd=function(a,b){var c=this.X;E(this,a,null,b,"DATA",c);this.Ea&=-3;return c};l.Rd=function(a,b){var c=this.Ea;E(this,a,null,b,"STATUS",c);return c}; l.ce=function(a,b,c){E(this,a,b,c,"DATA");this.ba=b;this.Ea&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.aa=!0;else if(17==b)this.aa=!1;else if(this.L&&this.L.call(this.J,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ia||8,c=b-this.B%b,this.ia&&(a=ma("",c))):13==b&&(this.B=c=0,a="\n"),this.da&&!this.B&&c&&(a=String.fromCharCode(this.da)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, this.B+=c);else if(null!=this.u){if(10==b||1024<=this.u.length)this.g(this.u),this.u="";10!=b&&(this.u+=String.fromCharCode(b))}this.b&&Lc(this.b,this.ma,ze(this,240))};l.be=function(a,b,c){E(this,a,b,c,"CONTROL");this.K?(this.O=b,this.O&64&&(this.K=!1)):(this.I=b,this.K=!0)};l.ae=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.N=b};var we={0:re.prototype.Sd,1:re.prototype.Rd},xe={0:re.prototype.ce,1:re.prototype.be,2:re.prototype.ae}; Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};Ae.prototype.Rb=function(){return-1};Ae.prototype.Sb=function(){}; Ae.prototype.Ib=function(a,b,c){if(b)if(a){0>this.j&&this.u.length&&(this.j=0);if(0>this.j||a!=this.u[this.j])this.u.splice(0,0,a),this.j=0;this.j--}else this.O?a="end":a=this.u[this.j+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; function Ce(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} function De(a,b,c){var d;if(b){b=Ee(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;g=p+g;d>>=8}d=t(c,0,!0)+" "+c+". "+ba(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function Ie(a,b){if(b)return Ge(a,b,a.da[b]);var c=0;for(b in a.da)Ge(a,b,a.da[b]),c++;return 0>>d.w.ha;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[e];p.type==c?m++||d.g("..."):(c=p.type,m=Ab[c],p&&d.g(t(p.id)+" %"+t(e<>>e.ha;f!=e.w?e.W[g].Yb(f,b&65535,d):(e.W[g++].Cb(f,b&255,d),e.W[g&e.D].Cb(0,b>>8&255,d+1));c&&Ve(a,c);Ec(this.b,!0)}};function X(a){return{G:a,Pa:!1}}function vf(a){return[a.G,a.Pa]}function wf(a){return{G:a[0],Pa:a[1]}} function Ue(a,b,c){var d;c=(c?a.L:a.Va).G;if(void 0!==b){d=b=Ee(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Re,a.substr(b,1))));return c};function zf(a,b){var c=0;a=a.Sb(b);if(void 0!==a)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(a,c):"??"} l.Sb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.R;break;case 1:b=c.S;break;case 8:b=Wc(c);break;case 2:b=c.T;break;case 3:b=c.U;break;case 9:b=Yc(c);break;case 4:b=c.V;break;case 5:b=c.Y;break;case 10:b=J(c);break;case 6:b=c.Z(J(c));break;case 11:b=c.oa;break;case 12:b=c.P;break;case 13:b=Uc(c);break;case 14:b=Uc(c)&255|c.i<<8}}return b}; function Af(a,b){b=Ee(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Rb(b,c+1),0<=e&&(b=b.substr(0,c)+zf(a,e)+b.substr(c+1+Re[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Ue(a,e))?(d=e+' "'+yf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Ue(a,e))?(Ve(d),d=e+ ' "'+yf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(X(this.b.P).G));this.sa&1073741824?this.la.push(a):this.ka&&a==this.ka||(this.ka=a,this.sa&-2147483648&&(this.qa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Mc(a),a.O=0,Ec(a)))}; function hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.sa&h)!=h||a.message(b.fb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} function Me(a){var b;if(Kd(a)){if(!a.K||!a.K.length){a.K=Array(1E3);for(b=0;b>>d.ha],!1)}a.N=["br"];if(a.B)for(b=1;b>>d.ha],!0);a.B=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ff(this,a,b,!1,!0);if(a!=this.F){var e=Te(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.w;f.W[e>>>f.ha].$a(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Pa=!0:(Gf(this,a,a.length-1,"set"),Me(this)));return d}; function Ff(a,b,c,d,e){var f=!1;c=Te(c);for(var g=1;g>>d.ha],b==a.B));h.Pa||Me(a);break}}return f}function Hf(a,b){for(var c=1;c>24,4);break;case 3:z=t(v.bb(z,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?z="["+z+"]":r&16||(z=(v.style==Ke?"$":"0x")+z);v=z}else r&16?(v= (q&3840)>>8,r=Re[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.Zd;if(e>=g&&e>8&255;case "C":d.S=f&255;break;case "D":d.T=f&255;break; case "DE":d.T=f>>8&255;case "E":d.U=f&255;break;case "H":d.V=f&255;break;case "HL":d.V=f>>8&255;case "L":d.Y=f&255;break;case "SP":d.oa=f&65535;break;case "PC":I(d,f);a.L=X(d.P);break;case "PS":Sc(d,f);break;case "PSW":Sc(d,f&255|d.ta&-256);d.i=f>>8;break;case "CF":d.ca=f?d.ca|256:d.ca&255;break;case "PF":f?cd(d)||(d.fa^=1):cd(d)&&(d.fa^=1);break;case "AF":d.xa=f?~d.fa&16|d.xa&-17:d.fa&16|d.xa&-17;break;case "ZF":d.ca=f?d.ca&-256:d.ca|255;break;case "SF":f?fd(d)||(d.fa^=192):fd(d)&&(d.fa^=192);break; case "IF":d.ta=f?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}Ec(d);a.g("updated registers:")}a.g(Mf(a));c&&(a.L=X(d.P),Df(a,Z(a.L.G)))}}function Tf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Af(a,c[2])):De(a,b,!0)}function Uf(a,b,c){var d="t"!=b;c=Fe(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return kb(a,!0)&&a.nb(e,d,!1)},function(){Ec(a.b);kb(a,!1)})} function Df(a,b,c,d){if(b=Ue(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ue(a,c,!0);if(!d||d.Gh[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],f=null);f=Jf(a,b,g,f);a.g(f);a.L=b;e-=b.G-k;c++}}} l.Ib=function(a,b,c){if(b)if(a){0>this.j&&this.u.length&&(this.j=0);if(0>this.j||a!=this.u[this.j])this.u.splice(0,0,a),this.j=0;this.j--}else this.O?a="end":a=this.u[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b}; function If(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.O&&(a.g("ended assemble at "+Z(a.ba.G)),a.L=a.ba,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(mb(a)&&0m||"z"Ha.length&&(a.g("note: only "+Ha.length+" available"),ja=Ha.length);va-=ja;0>va&&(null==Ha[Ha.length-1].G?(ja=va+ja,va=0):va+=Ha.length);var od=[];"call"==af&&(Lb=1E5,od=["CALL"]);for(void 0!==$e&&a.g(ja+" instructions earlier:");0< Lb&&va!=a.ea;){var df=Ha[va++];if(null==df.G)break;var Mb=X(df.G),mg=ja--,ef=Jf(a,Mb,"history",mg);(!od.length||0<=ef.indexOf(od[0]))&&a.g(ef);Mb.Qb&&(va+=Mb.Qb,Lb-=Mb.Qb,ja-=Mb.Qb);va>=Ha.length&&(va=0);a.hb=ja;cf++;Lb--}}cf||(a.g("no "+bf+"history available"),a.hb=void 0)}else{var rc=Ue(a,Y);if(rc){var sc=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Hb),sc=Fe(a,ua)>>>0,65536>4||1;ng--&&0wc?String.fromCharCode(wc):".";uc--}Nb&&(Nb+="\n");Nb+=Y+" "+qd+(Ob?"":" "+ff)}Nb&&a.g(Nb);a.Va=rc}}}}break;case "e":if("else"==f[0])break;var xc=1,gf=255,hf=a.Z,jf=a.ua;"ew"==f[0]&&(xc=2,gf=65535,hf=a.bb,jf=a.Lb);var kf=xc<<1,lf=f[1];if(null==lf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a"); else{var yc=Ue(a,lf);if(yc)for(var zc=2;zcxd;){for(var $a=null,tg=256;65536>Rb.G>>>0;){nf.G=a.bb(Rb,2);if(null==Rb.G||!tg--)break;for(var ug=a,Bc=nf,of= null,Sb=Bc.G,pf=Sb,yd=1;6>=yd&&Sb;yd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bYf){if($f(d,this.K)){this.B=new Vc(this,"1.30.4","failsafe");$f(this.B)&&(eg(this,d),a=2,fg(this.B));this.B.set("timestamp",ra());gg(this.B);var e=this.A&&!this.J;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$f(d,g):("error"== f&&"no machine state"!=g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.j=null)):this.g(f+": "+g),fg(d),$f(d)?(c=dg(d),e=!0):c=!1))}e&&cg(this,c?d:null)}else 2==a&&d.clear()}else cg(this);delete this.K;delete this.L}e=db(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.C.wa=!0;var d=this.M.power;d&&(d.textContent="Shutdown");this.b&&(hg(this,this.b,b,c,a),this.b.ub());this.X&&(eg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.u=0}; function eg(a,b){if(ya("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.4"};d.url=a.ea;d.user=c;d.type="bug";d.data=b;ta("http://www.pcjs.org/api/v1/report",d,!0)}} function Vf(a,b,c){var d,e="none";if(a.u)return null;a.u--;var f=new Vc(a,"1.30.4"),g=new Vc(a,"1.30.4","validate"),h=ra();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.4");f.set("url",window?window.location.href:null);f.set("browser",xa());a.b&&a.b.Ja&&(c&&a.b.qa(),d=a.b.Ja(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.wa=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;kf.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PC8080$2"), a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");ta(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,""); a=a.replace(d[0],g);Bg(a,b,c)}})}else c(a,null)} function Cg(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=la(a))}function f(a){e("Error: "+a);k&&(--lg||Ra(!0));k=!1}var g,h,k=!0;lg++;bb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));p.appendChild(q)}c|| (c="/versions/pc8080/1.30.4/components.xsl");m=function(d,h){h?zg(c,null,null,!1,e,function(d,k){k?(cb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--lg||Ra(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--lg||Ra(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?zg(b,a,d,!0,e,m):Ag(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(y){f(y.message)}return k}window.embedPC8080=function(a,b,c,d){Ra(!1);return Cg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Ta;})();