(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:0,te:1,ue:2,ve:3,we:4,xe:5,ye:6,ze:7,Ae:8,Be:9,Ce:10,De:11,Ee:12,Fe:13,Ge:14,He:15,Ie:16,Je:17,Ke:18,Le:19,Me:20,Ne:21,Oe:22,Pe:23,Qe:24,Re:25,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,Eb:65,Mc:66,Oc:67,bc:68,E:69,Rc:70,Sc:71,Tc:72,Uc:73,ad:74,bd:75,dc:76,jd:77,kd:78,md:79,nd:80,Q:81,td:82,wd:83,Cd:84,Dd:85,Ed:86,Fd:87, Hd:88,Id:89,Pb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Jd:97,Bf:98,Cf:99,d:100,e:101,Df:102,Ef:103,Ff:104,Gf:105,Hf:106,k:107,If:108,Jf:109,n:110,Kf:111,p:112,q:113,r:114,Lf:115,t:116,Nf:117,Of: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 v(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",10:"LF",11:"VT",12:"FF",13:"CR",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.$a=g.load;d.Sa=g.exec;if(e=g.bytes)d.Ba=e;else if(e=g.words)for(d.Ba=Array(2*e.length),f=c=0;c>8&255;else if(e=g.data)for(d.Ba=Array(4*e.length),f=c=0;c>8&255,d.Ba[f++]=e[c]>>16&255,d.Ba[f++]=e[c]>>24&255;else d.Ba=g;d.Fa=g.symbols;d.Ba.length?1==d.Ba.length&&(w(d.Ba[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,wb:!1,Qb:!1,xa:!1,error:!1};this.Ib=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.Ja-1;this.I=this.K/this.Ja|0;this.D=this.I-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.I);for(b=0;b>>a.ha;0f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.G)return h.Cb+=h.G-e,h.G=e,!0;if(e>=h.G+h.Cb){m=h.size-(e-k);m>f&&(m=f);h.Cb=e-h.G+m;e=k+a.Ja;f-=m;g++;continue}}return zb(1,e,f)}e=new G(e,m,a.Ja,d);xb(e,a.H,h);a.W[g++]=e;e=k+a.Ja;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ab[d]+" at "+v(b)),!0):zb(2,b,c)} l.Z=function(a){return this.W[(a&this.u)>>>this.ha].nb(a&this.w,a)};function Bb(a,b){return a.W[(b&a.u)>>>a.ha].Ab(b&a.w,b)}l.ab=function(a){var b=a&this.w,c=(a&this.u)>>>this.ha;return b!=this.w?this.W[c].Fc(b,a):this.W[c++].nb(b,a)|this.W[c&this.D].nb(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].Vb(c,b):a.W[d++].Ab(c,b)|a.W[d&a.D].Ab(0,b+1)<<8}l.ua=function(a,b){this.W[(a&this.u)>>>this.ha].pb(a&this.w,b&255,a)}; function Db(a,b,c){a.W[(b&a.u)>>>a.ha].Db(b&a.w,c&255,b)}l.Mb=function(a,b){var c=a&this.w,d=(a&this.u)>>>this.ha;c!=this.w?this.W[d].Hc(c,b&65535,a):(this.W[d++].pb(c,b&255,a),this.W[d&this.D].pb(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.Cb=b;this.size=c||0;this.type=d||ac;this.M=d==bc;xb(this);this.Oa=this.Cc=!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.I=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.Ab(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.Vb(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.Db(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.Zb(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.I[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.I[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.pb=a.M?a.u:a.Db,a.Hc=a.M?a.D:a.Zb):--a.A||(a.nb=a.Ab,a.Fc=a.Vb)}function gc(a,b,c){c&&a.j||(a.pb=!a.M&&b[1]||a.u,a.Hc=!a.M&&b[3]||a.D);if(c||void 0===c)a.Db=b[1]||a.u,a.Zb=b[3]||a.D}function ic(a,b,c){c&&a.A||(a.nb=b[0]||a.J,a.Fc=b[2]||a.K);if(c||void 0===c)a.Ab=b[0]||a.J,a.Vb=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.bb=this.ga*this.Ra;this.C.za=!1;this.C.Yb=!1;this.C.vb=a.autoStart;this.C.Ac=!1;this.C.jb=!1;this.xb=this.N=0;this.yb=a.csStart;this.lb=a.csInterval;this.mb=a.csStop;this.u=[];this.Ha=this.cb.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.lb,c=!0);0<=a.mb&&a.mb<=Gc(a)&&(a.lb=a.mb=-1,qc(a),a.qa(),c=!0);c&&a.g(Gc(a)+" cycles: checksum="+t(a.xb))}} 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.xa)a=!0;else{var b=null,c,h=db(a.id);for(c=0;ca.I/a.bb?b=1:d=!0;a.Ra=b;b=a.ga*a.Ra;if(a.bb!=b){a.bb=b;b=a.bb.toFixed(2)+"Mhz";var e=a.M.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.A&&a.A.Bb()}Ic(a,a.D);a.D=0;a.B=qa();a.J=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.cb=function(a){if(kb(this,!0)){if(!this.C.za){Hc(this);this.A&&this.A.start(this.B,Gc(this));this.C.za=!0;this.C.Yb=!0;this.F&&this.F.start();var b=this.M.run;b&&(b.textContent="Halt");this.A&&(this.A.Aa(!0),a&&this.A.Bb(!0))}this.ia>=this.X&&Jc(this,!0);this.aa=0;this.da=qa();this.J&&(a=this.da-this.J,a>this.va&&(this.B+=a,this.B>this.da&&(this.B=this.da)));try{do{for(var c,d=this.C.jb?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.ob(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.Ca&&(this.A&&this.A.Aa(),this.Ca=0);break}}while(this.C.za)}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.Ha;this.J=qa();e=this.va;this.aa&&(e=Math.round(e*this.aa/this.ea));e-=this.J-this.da;if(f=this.J-this.B)this.I=Math.round(this.D/(10*f))/ 100,864E5<=f&&(this.L=0,Hc(this));if(0>e||this.Ie&&(this.B-=e),e=0;this.ia+=this.aa;this.J+=e;c(d,e)}else Ec(this),this.A&&this.A.stop(qa(),Gc(this))};l.ob=function(){return 0};l.qa=function(a){lb(this,!0);Mc(this);Ic(this,this.D);this.D=0;if(this.C.za){this.C.za=!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 rb[a.fa&255]?4:0}function dd(a){return(a.fa^a.ya)&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.ya=0;b&1&&(a.ca|=256);b&4||(a.fa|=1);b&16&&(a.ya|=16);b&64||(a.ca|=255);b&128&&(a.fa^=192);a.ta=a.ta&-726|b&512|2} function gd(a,b){a.ya=a.i^b;return a.fa=(a.ca=a.i+b)&255}function hd(a,b){a.ya=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.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.ca}function jd(a,b){a.ya=b^255;b=a.fa=b+255&255;a.ca=a.ca&-256|b;return b}function kd(a,b){a.ya=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.ya=a.i|b}function K(a,b){b^=255;a.ya=a.i^b;return a.fa=(a.ca=a.i+b+1^256)&255} function md(a,b){b^=255;a.ya=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.ya=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.ab(a.P);I(a,a.P+2);return b}function N(a){var b=a.w.ab(a.oa);a.oa=a.oa+2&65535;return b}function P(a,b){a.oa=a.oa-2&65535;a.w.Mb(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.Mb(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.ab(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.ga=null,window&&(this.ga=window.AudioContext||window.webkitAudioContext),this.ga&&new this.ga);F(this)}A(R); var S={Da:1978.1,Ad:{Ea:0,Ve:1,Ze:16,ff:32,qf:64,pf:128,qb:14},Ya:{Ea:1,Pc:1,sd:2,od:4,pd:16,qd:32,rd:64,qb:8},Bd:{Ea:2,Ue:3,yf:4,We:8,kf:16,lf:32,mf:64,Xe:128,qb:0},uf:{Ea:3},sf:{Ea:2,gf:7},wf:{Ea:3,zf:1,vf:2,nf:4,df:8,Ye:16,pe:32},tf:{Ea:4},xf:{Ea:5,$e:1,af:2,bf:4,cf:8,Af:16}},T={Da:100,La:{Ea:66,rc:1,gc:2,ld:4,jf:8,hf:16,ic:32,hc:64,cc:128},Nc:{Ea:66,INIT:0},Ua:{Ea:194,se:0,ac:16,ud:32,nc:48,Xc:0,Yc:32},Fb:{Ea:162,rf:0,$c:0,Wc:0,Zc:0,Vc:0},Ma:{ef:{Ea:98},Ta:{Kc:0,Jc:1,xd:2,Gd:4,Qc:5,vd:6,yd:7}, Gb: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.I=ub(a,"Keyboard");this.J=ub(a,"SerialPort");this.video=ub(a,"Video");Gb(b,this,this.u.Kb);Ub(b,this,this.u.Lb);if(d){var e=this;Rd(d,16384,function(){for(var a="",b=0;b>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.ee=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.ge=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ma=b};l.fe=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.aa=b<<8|this.aa>>8}; l.he=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.va=b};l.ie=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Sd(a){var b=0,c=0,d=~a.X;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.Yd=function(a,b){var c=this.K,c=c&~T.La.hc;if((Gc(this.b)&64)<<1&&(c|=T.La.hc,c!=this.K)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case T.Ma.Ta.yd:break;case T.Ma.Ta.Jc:this.X=this.X<<1|d;break;case T.Ma.Ta.Qc:d=Sd(this);this.F[d]=T.Ma.Gb;ib(this,"doNVRCommand(): erase data at addr "+v(d));break;case T.Ma.Ta.Kc:this.j=this.j<<1|d;break;case T.Ma.Ta.Gd:d=Sd(this);e=this.j&T.Ma.Gb;this.F[d]=e;ib(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case T.Ma.Ta.vd:d=Sd(this);e=this.F[d]; null==e&&(e=T.Ma.Gb);this.j=e;ib(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case T.Ma.Ta.xd:this.j<<=1;this.da=this.j&T.Ma.Gb+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~T.La.ic;this.da&&(c|=T.La.ic);c&=~T.La.cc;if(d=this.I){d=this.I;if(e=d.D)e=d.b,e=Gc(d.b)>=d.L+e.X*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=T.La.cc);c&=~T.La.rc;this.J&&this.J.wa&1&&(c|=T.La.rc);this.K=c;E(this,a,null,b,"FLAGS",c);return c}; l.je=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ia=b};l.me=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.le=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.sb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ka=a}}; l.ke=function(a,b,c){E(this,a,b,c,"DC011");b&T.Ua.ud?(b&=T.Ua.nc,this.N!=b&&(this.N=b,this.video&&(a=this.video,b=this.N==T.Ua.nc?50:60,ib(a,"updateRate("+b+")"),a.vc=b))):(b&=T.Ua.ac,this.L!=b&&(this.L=b,this.video&&(a=this.L==T.Ua.ac?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.zc);0>q&&p.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.D.push({Mf:b,G:c,$d:d,Fa:e,yc:f})}delete this.Fa}return!0};Vd.prototype.Ka=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.Fa=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.Eb&&a<=n.Pb?d.u&515||(d.u|=512,ge(d,20,!0),he(d)):a>=n.Jd&&a<=n.z&&d.u&512&&(d.u&=-513,ge(d,20,!1),he(d));return!0},c.onpaste=function(a){a:{if(d.J&&d.J.eb&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&& a.preventDefault(),a=a.clipboardData||window.clipboardData)){ie(d.J,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.w.ib&&void 0!==this.w.ib[b])return this.M[e]=c,c.onclick=function(a,b){return function(c){c.preventDefault&&c.preventDefault();ge(a,b,!0,!0)}}(this,this.w.ib[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.O=Kc(this.b,function(){je(e)});this.F=ub(a,"ChipSet");this.J=ub(a,"SerialPort");Gb(b,this,this.w.Kb);Ub(b,this,this.w.Lb)}; be.prototype.Ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};be.prototype.Ka=function(a){return a?this.save():!0};W.INIT=[[W.Na.INIT,W.Lc.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.Da){case W.Da:a.set(0,[this.K,this.I,this.D,this.L,-1])}return a.data()}; l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Da){case ee.Da:return!0;case W.Da:return this.K=b[0],he(this,this.K&W.Na.ec),this.I=b[1],this.D=b[2],this.L=b[3],this.B=b[4],!0}return!1};function he(a,b){var c;null!=b?a.N=b:b=a.N;for(var d in a.w.tb)if(c="led-"+d,c=a.M[c]){var e=a.w.tb[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=b.keyCode,f=2==b.location,g=0;switch(e){case 16:g=f?1:2;break;case 17:g=f?4:8;break;case 18:g=f?16:32;break;case 91:g=f?64:128;break;case 20:g=512}g&&(a.u=c?a.u|g:a.u&~g);var h;a:if(e=a.w.$b[e]||e,a.w.Nb[e])h=e;else{for(h in a.w.ib)if(a.w.ib[h]===e)break a;h=null}h&&!b.metaKey&&(d=!1,a.u&4144&&(13==h?(h=118,d=!0):8==h&&(h=46,d=!0),d&&(a.u=c?a.u|4096:a.u&-4097)),d=ge(a,h,c),(!(h>=n.Eb&&h<=n.Pb)||a.u|12)&&b.preventDefault&&b.preventDefault());return d} function ge(a,b,c,d){var e;a:{for(e=0;ee?a.j.push({Xb:b,Ub:Date.now(),Hb:d||!1}):(a.j[e].Ub=Date.now(),a.j[e].Hb=d||!1),d&&je(a);else if(0<=e){if(!a.j[e].Hb&&(d=a.j[e].Ub)&&50>Date.now()-d)return a.j[e].Hb=!0,je(a),!0;a.j.splice(e,1)}if(a.F){d=0;switch(b){case "1p":d=S.Ya.od;break;case "2p":d=S.Ya.sd;break;case "coin":d=S.Ya.Pc;break;case "left":d=S.Ya.qd;break;case "right":d=S.Ya.rd;break;case "fire":d=S.Ya.pd}d&&(a=a.F,b=d,a.D&=~b,c&&(a.D|=b))}return!0} function je(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.O,c)}l.Zd=function(a,b){var c=this.I;0<=this.B&&(this.B>3)*a.aa,!yb(a.w,a.Va,a.O,3)))return!1;a.O?(a.qc=a.F.createImageData(b,c),a.tc=16/a.Wa|0,pe(a,a.O>>1)):pe(a,(a.ba+1)*a.va);a.K=document.createElement("canvas");a.K.width=b;a.K.height=c;a.rb=a.K.getContext("2d");a.ea={};a.la=1<=a.kc?8:16,f=8>(7>4)*c)}return k}ke.prototype.Ga=function(){return!0};ke.prototype.pa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Ob[b]=c,!0;switch(b){case "fullScreen":return this.M[b]=c,this.j&&this.j.kb?c.onclick=function(){d.kb()}:c.parentNode.removeChild(c),!0}return!1}; ke.prototype.kb=function(){var a=!1;if(this.j){if(this.j.kb){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.pc?(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.kb();a=!0}this.ka&&this.ka.focus()}return a}; function ne(a,b){!b&&a.j&&(a.pc?a.L.style.width=a.L.style.height="":a.j.style.width=a.j.style.height="");ib(a,"notifyFullScreen("+b+")")}function pe(a,b){a.sc=b;a.ia=!1;if(void 0===a.D||a.D.length!=a.sc)a.D=Array(a.sc)}function re(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.uc&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 u=Bb(a.w,p++);if(127==(u&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)*u.na,C,U,ea,Y,va=u.ra,Hb=u.na;z?(C=y*r.ra,U=e*r.na,ea=r.ra,Y=r.na):(C=y*r.lc,U=e*r.mc,ea=r.lc,Y=r.mc);u.ra>r.ra&&(C*=2,ea*=2);u.na>r.na&&(q||(H+=r.na),Hb=r.na);z?z.drawImage(u.canvas,ha,H,va,Hb,C,U,ea,Y):(C+=0,U+=0,r.F.drawImage(u.canvas, ha,H,va,Hb,C,U,ea,Y))}h++}g++}e++}}a.ia=!0;!b&&a.sb&&1==h&&(a.D[k]=-1,h=0);a.sb=!1;(h||b)&&a.rb&&a.F.drawImage(a.K,0,a.hb,a.J,a.aa-a.na,0,0,a.Ic,a.Ld)}else{e=a.Va;f=e+a.O;k=h=g=0;b=a.J;m=0;c=a.aa;q=d=0;p=a.Wa;y=(1<>8|(r&255)<<8);h>z&y,re(a,a.qc,h++,k,ha),z+=p;h>m&&(m=h);k=d&&(d=k+1)}e+=2;g++;if(h>=a.J&&(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 ke(d,e,g,f,c);gb(d,c)}}); function se(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.u=this.B=null;this.ia=a.tabSize;this.da=a.charBOL;this.D=0;this.aa=!1;this.L=!0;x.call(this,"SerialPort",a,se,8388608);var b=a.binding;if("console"==b)this.B="";else{var c;a=te;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.M[b])&&this.pa(null,a,b))}this.I="";this.j=this.eb=this.Aa=null;this.exports={connect:this.Ec,receiveData:this.Wb,receiveStatus:this.oe}} A(se);var ue=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],ve=[!1,0,0,133,142,39,238],te="buffer";l=se.prototype; l.pa=function(a,b,c,d){var e=this;switch(b){case te:return this.M[b]=this.u=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==c.length){var d=na(c[0]);if(d!=this.fb)return;c=na(c[1]);if(this.j=eb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.L);if(this.eb=e.receiveData){this.L=a;this.Aa=e.receiveStatus;this.status(this.gb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; l.Ga=function(a,b){if(!b)if(this.Ec(this.L),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ka=function(a){return a?this.save():!0};l.reset=function(){ze(this)};l.save=function(){var a=new Vc(this),b=0,c=[];c[b++]=this.N;c[b++]=this.X;c[b++]=this.ba;c[b++]=this.wa;c[b++]=this.J;c[b++]=this.K;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return ze(this,a[0])}; function ze(a,b){var c=0;b||(b=ve);a.N=b[c++];a.X=b[c++];a.ba=b[c++];a.wa=b[c++];a.J=b[c++];a.K=b[c++];a.O=b[c];return!0}function Ae(a,b){var c=a.O&b;b&15||(c>>=4);b=ue[c];c=((a.J&12)>>2)+6;a.J&16&&c++;c+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function we(a,b){ib(a,"receiveByte("+ca(b)+"), status="+ca(a.wa));return a.aa||a.wa&2?!1:(a.X=b,a.wa|=2,Jd(a.b,a.ka),!0)} l.Wb=function(a){null!=a&&(this.I="number"!=typeof a?a:this.I+String.fromCharCode(a));this.I&&(we(this,this.I.charCodeAt(0))&&(this.I=this.I.substr(1)),this.I&&this.b&&Lc(this.b,this.la,Ae(this,15)));return!0};l.oe=function(a){this.wa&=-129;a&64&&(this.wa|=128)};function ie(a,b){a.wa|=5;b&&a.eb&&a.eb.call(a.j,b)}l.Td=function(a,b){var c=this.X;E(this,a,null,b,"DATA",c);this.wa&=-3;return c};l.Sd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS",c);return c}; l.de=function(a,b,c){E(this,a,b,c,"DATA");this.ba=b;this.wa&=-6;ib(this,"transmitByte("+ca(b)+")");if(19==b)this.aa=!0;else if(17==b)this.aa=!1;else if(this.eb&&this.eb.call(this.j,b),this.u)8==b?(this.u.value=this.u.value.slice(0,-1),0":String.fromCharCode(b),c=a.length,9==b?(b=this.ia||8,c=b-this.D%b,this.ia&&(a=ma("",c))):13==b&&(this.D=c=0,a="\n"),this.da&&!this.D&&c&&(a=String.fromCharCode(this.da)+a),this.u.value+=a,this.u.scrollTop= this.u.scrollHeight,this.D+=c);else if(null!=this.B){if(10==b||1024<=this.B.length)this.g(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b))}this.b&&Lc(this.b,this.ma,Ae(this,240))};l.ce=function(a,b,c){E(this,a,b,c,"CONTROL");this.N?(this.Aa&&(b^this.K)&34&&(a=0,a=this.L?a|(b&32?32:0)|(b&2?320:0):a|(b&32?16:0)|(b&2?1048576:0),this.Aa.call(this.j,a)),this.K=b,this.K&64&&(this.N=!1)):(this.J=b,this.N=!0)};l.be=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b}; var xe={0:se.prototype.Td,1:se.prototype.Sd},ye={0:se.prototype.de,1:se.prototype.ce,2:se.prototype.be};Oa(function(){for(var a=D(document,"pc8080","serial"),b=0;b=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; Be.prototype.Sb=function(){return-1};Be.prototype.Tb=function(){};Be.prototype.Jb=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 De(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 Ee(a,b,c){var d;if(b){b=Fe(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1,u--;g=q+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 Je(a,b){if(b)return He(a,b,a.da[b]);var c=0;for(b in a.da)He(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].Zb(f,b&65535,d):(e.W[g++].Db(f,b&255,d),e.W[g&e.D].Db(0,b>>8&255,d+1));c&&We(a,c);Ec(this.b,!0)}};function X(a){return{G:a,Pa:!1}}function wf(a){return[a.G,a.Pa]}function xf(a){return{G:a[0],Pa:a[1]}} function Ve(a,b,c){var d;c=(c?a.L:a.Va).G;if(void 0!==b){d=b=Fe(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=sa(Se,a.substr(b,1))));return c};function Af(a,b){var c=0;a=a.Tb(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.Tb=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 Bf(a,b){b=Fe(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Sb(b,c+1),0<=e&&(b=b.substr(0,c)+Af(a,e)+b.substr(c+1+Se[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=Ve(a,e))?(d=e+' "'+zf(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=Ve(a,e))?(We(d),d=e+ ' "'+zf(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")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))} function Ne(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.Za=function(a,b,c){var d=!0;c||Gf(this,a,b,!1,!0);if(a!=this.F){var e=Ue(b);if(-1===e)this.g("invalid address: "+Z(b.G)),d=!1;else{var f=this.w;f.W[e>>>f.ha].Za(e&f.w,a==this.B)}}d&&(a.push(b),c?b.Pa=!0:(Hf(this,a,a.length-1,"set"),Ne(this)));return d}; function Gf(a,b,c,d,e){var f=!1;c=Ue(c);for(var g=1;g>>d.ha],b==a.B));h.Pa||Ne(a);break}}return f}function If(a,b){for(var c=1;c>24,4);break;case 3:z=t(u.ab(z,2),4);break;default:u="imm("+v(r)+")";break a}8086==u.style&&r&64?z="["+z+"]":r&16||(z=(u.style==Le?"$":"0x")+z);u=z}else r&16?(u= (q&3840)>>8,r=Se[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.$d;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.ya=f?~d.fa&16|d.ya&-17:d.fa&16|d.ya&-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(Nf(a));c&&(a.L=X(d.P),Ef(a,Z(a.L.G)))}}function Uf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Bf(a,c[2])):Ee(a,b,!0)}function Vf(a,b,c){var d="t"!=b;c=Ge(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.ob(e,d,!1)},function(){Ec(a.b);kb(a,!1)})} function Ef(a,b,c,d){if(b=Ve(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ve(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=Kf(a,b,g,f);a.g(f);a.L=b;e-=b.G-k;c++}}} l.Jb=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 Jf(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);wa-=ja;0>wa&&(null==Ha[Ha.length-1].G?(ja=wa+ja,wa=0):wa+=Ha.length);var pd=[];"call"==bf&&(Lb=1E5,pd=["CALL"]);for(void 0!==af&&a.g(ja+" instructions earlier:");0< Lb&&wa!=a.ea;){var ef=Ha[wa++];if(null==ef.G)break;var Mb=X(ef.G),ng=ja--,ff=Kf(a,Mb,"history",ng);(!pd.length||0<=ff.indexOf(pd[0]))&&a.g(ff);Mb.Rb&&(wa+=Mb.Rb,Lb-=Mb.Rb,ja-=Mb.Rb);wa>=Ha.length&&(wa=0);a.hb=ja;df++;Lb--}}df||(a.g("no "+cf+"history available"),a.hb=void 0)}else{var rc=Ve(a,Y);if(rc){var sc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Hb),sc=Ge(a,va)>>>0,65536>4||1;og--&&0wc?String.fromCharCode(wc):".";uc--}Nb&&(Nb+="\n");Nb+=Y+" "+rd+(Ob?"":" "+gf)}Nb&&a.g(Nb);a.Va=rc}}}}break;case "e":if("else"==f[0])break;var xc=1,hf=255,jf=a.Z,kf=a.ua;"ew"==f[0]&&(xc=2,hf=65535,jf=a.ab,kf=a.Mb);var lf=xc<<1,mf=f[1];if(null==mf)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=Ve(a,mf);if(yc)for(var zc=2;zcyd;){for(var $a=null,ug=256;65536>Rb.G>>>0;){of.G=a.ab(Rb,2);if(null==Rb.G||!ug--)break;for(var vg=a,Bc=of,pf= null,Sb=Bc.G,qf=Sb,zd=1;6>=zd&&Sb;zd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bZf){if(ag(d,this.K)){this.B=new Vc(this,"1.30.6","failsafe");ag(this.B)&&(fg(this,d),a=2,gg(this.B));this.B.set("timestamp",ra());hg(this.B);var e=this.A&&!this.I;if(1==a||ya("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=eg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ag(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),gg(d),ag(d)?(c=eg(d),e=!0):c=!1))}e&&dg(this,c?d:null)}else 2==a&&d.clear()}else dg(this);delete this.K;delete this.L}e=db(this.id);for(f=0;fa[1];a=a[2];this.ga=!0;this.C.xa=!0;var d=this.M.power;d&&(d.textContent="Shutdown");this.b&&(ig(this,this.b,b,c,a),this.b.vb());this.X&&(fg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.u=0}; function fg(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.6"};d.url=a.ea;d.user=c;d.type="bug";d.data=b;ta("http://www.pcjs.org/api/v1/report",d,!0)}} function Wf(a,b,c){var d,e="none";if(a.u)return null;a.u--;var f=new Vc(a,"1.30.6"),g=new Vc(a,"1.30.6","validate"),h=ra();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.6");f.set("url",window?window.location.href:null);f.set("browser",xa());a.b&&a.b.Ka&&(c&&a.b.qa(),d=a.b.Ka(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.xa=!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);Cg(a,b,c)}})}else c(a,null)} function Dg(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&&(--mg||Ra(!0));k=!1}var g,h,k=!0;mg++;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.6/components.xsl");m=function(d,h){h?Ag(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,--mg||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),--mg||Ra(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ag(b,a,d,!0,e,m):Bg(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 Dg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Ta;})();