(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={pe:1,qe:3,re: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,Xb:65,Kc:66,Mc:67,$b:68,E:69,Pc:70,Qc:71,Rc:72,Sc:73,Zc:74,$c:75,bc:76,gd:77,hd:78,kd:79,ld:80,Q:81,rd:82,ud:83,Ad:84,Bd:85,Cd:86,Dd:87,Fd:88,Gd:89,Hd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ze: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,se: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.B={ready:!1,vb:!1,Nb:!1,wa:!1,error:!1};this.Gb=null;this.B.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=z);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.u=this.Ia-1;this.J=this.K/this.Ia|0;this.G=this.J-1;this.A=[];this.j=[];this.D=this.C=!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.F)return h.Bb+=h.F-e,h.F=e,!0;if(e>=h.F+h.Bb){m=h.size-(e-k);m>f&&(m=f);h.Bb=e-h.F+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.w)>>>this.ha].mb(a&this.u,a)};function Bb(a,b){return a.W[(b&a.w)>>>a.ha].zb(b&a.u,b)}l.bb=function(a){var b=a&this.u,c=(a&this.w)>>>this.ha;return b!=this.u?this.W[c].Dc(b,a):this.W[c++].mb(b,a)|this.W[c&this.G].mb(0,a+1)<<8};function Cb(a,b){var c=b&a.u,d=(b&a.w)>>>a.ha;return c!=a.u?a.W[d].Sb(c,b):a.W[d++].zb(c,b)|a.W[d&a.G].zb(0,b+1)<<8}l.ua=function(a,b){this.W[(a&this.w)>>>this.ha].ob(a&this.u,b&255,a)}; function Db(a,b,c){a.W[(b&a.w)>>>a.ha].Cb(b&a.u,c&255,b)}l.Kb=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ha;c!=this.u?this.W[d].Fc(c,b&65535,a):(this.W[d++].ob(c,b&255,a),this.W[d&this.G].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.C!=g[1]&&Wb(a.H,b,k)}else a.H&&(hb(a.H,a,b,k,d),a.C&&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.F=a;this.Bb=b;this.size=c||0;this.type=d||ac;this.M=d==bc;xb(this);this.Oa=this.Ac=!1;if(c)if(ob)this.D=new ArrayBuffer(c),this.C=new DataView(this.D,0,c),this.u=new Uint8Array(this.D,0,c),this.J=new Uint16Array(this.D,0,c>>1),this.b=new Int32Array(this.D,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.F){var c=this.H;jc(c,this.F+a,1,c.N)&&c.qa(!0)}return this.zb(a,b)},ba:function(a,b){if(this.H&&null!=this.F){var c=this.H;jc(c,this.F+a,2,c.N)&&c.qa(!0)}return this.Sb(a,b)},ia:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;jc(d,this.F+a,1,d.C)&&d.qa(!0)}this.M?this.w(a,b,c):this.Cb(a,b,c)},la:function(a,b,c){if(this.H&& null!=this.F){var d=this.H;jc(d,this.F+a,2,d.C)&&d.qa(!0)}this.M?this.w(a,b,c):this.Wb(a,b,c)},L:function(a){return this.u[a]},O:function(a){return this.u[a]},aa:function(a){return this.C.getUint16(a,!0)},da:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.J[a>>1]},ga:function(a,b){this.u[a]=b;this.Oa=!0},fb:function(a,b){this.u[a]=b;this.Oa=!0},ka:function(a,b){this.C.setUint16(a,b,!0);this.Oa=!0},ma:function(a,b){a&1?(this.u[a]=b,this.u[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.w:a.Cb,a.Fc=a.M?a.G:a.Wb):--a.A||(a.mb=a.zb,a.Dc=a.Sb)}function gc(a,b,c){c&&a.j||(a.ob=!a.M&&b[1]||a.w,a.Fc=!a.M&&b[3]||a.G);if(c||void 0===c)a.Cb=b[1]||a.w,a.Wb=b[3]||a.G}function ic(a,b,c){c&&a.A||(a.mb=b[0]||a.I,a.Dc=b[2]||a.K);if(c||void 0===c)a.zb=b[0]||a.I,a.Sb=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){z.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.B.ya=!1;this.B.Vb=!1;this.B.ub=a.autoStart;this.B.yc=!1;this.B.ib=!1;this.wb=this.N=0;this.xb=a.csStart;this.kb=a.csInterval;this.lb=a.csStop;this.w=[];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.u=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,Cc(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.B.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.G);a.G=0;a.C=qa();a.I=0;Jc(a);return d}function Kc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Lc(a,b,c){0<=b&&ba.w[b][0]&&(c*=a.X*a.Ra/1E3,a.w[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.B.ya){Hc(this);this.A&&this.A.start(this.C,Gc(this));this.B.ya=!0;this.B.Vb=!0;this.D&&this.D.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.C+=a,this.C>this.da&&(this.C=this.da)));try{do{for(var c,d=this.B.ib?1:this.ea,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.nb(c);c=Mc(this,!0);this.aa+= c;this.G+=c;Fc(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[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.B.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.C)this.J=Math.round(this.G/(10*f))/ 100,864E5<=f&&(this.L=0,Hc(this));if(0>e||this.Je&&(this.C-=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.G);this.G=0;if(this.B.ya){this.B.ya=!1;this.D&&this.D.stop();var b=this.M.run;b&&(b.textContent="Run")}this.B.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.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 Fd(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.u.Z(a)};l.ua=function(a,b){this.u.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.u.bb(a.P);I(a,a.P+2);return b}function N(a){var b=a.u.bb(a.oa);a.oa=a.oa+2&65535;return b}function P(a,b){a.oa=a.oa-2&65535;a.u.Kb(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.u.Kb(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.u.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=Fd(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){z.call(this,"ChipSet",a,R,32768);var b=a.model;b&&!Qd[b]&&Qa("Unrecognized ChipSet model: "+b);this.w=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,yd:{Ca:0,ue:1,ye:16,Fe:32,Oe:64,Ne:128,pb:14},Za:{Ca:1,Nc:1,qd:2,md:4,nd:16,od:32,pd:64,pb:8},zd:{Ca:2,te:3,We:4,ve:8,Je:16,Ke:32,Le:64,we:128,pb:0},Se:{Ca:3},Qe:{Ca:2,Ge:7},Ue:{Ca:3,Xe:1,Te:2,Me:4,De:8,xe:16,me:32},Re:{Ca:4},Ve:{Ca:5,ze:1,Ae:2,Be:4,Ce:8,Ye:16}},T={Ba:100,La:{Ca:66,pc:1,ec:2,jd:4,Ie:8,He:16,gc:32,fc:64,ac:128},Lc:{Ca:66,INIT:0},Ua:{Ca:194,oe:0,Zb:16,sd:32,lc:48,Vc:0,Wc:32},Db:{Ca:162,Pe:0,Yc:0,Uc:0,Xc:0,Tc:0},Ma:{Ee:{Ca:98},Ta:{Ic:0,Hc:1,vd:2,Ed:4,Oc:5,td:6,wd:7}, Eb:16383}},Qd={SI1978:S,VT100:T};R.prototype.pa=function(){return!1};R.prototype.Qa=function(a,b,c,d){this.u=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");Hb(b,this,this.w.Ib);Ub(b,this,this.w.Jb);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.ce=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.da=b};l.ee=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.la=b};l.de=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.X=b<<8|this.X>>8}; l.fe=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.ge=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.Wd=function(a,b){var c=this.I,c=c&~T.La.fc;if((Gc(this.b)&64)<<1&&(c|=T.La.fc,c!=this.I)){var d,e;d=this.N&1;e=this.N>>1&7;switch(e){case T.Ma.Ta.wd:break;case T.Ma.Ta.Hc:this.O=this.O<<1|d;break;case T.Ma.Ta.Oc:d=Sd(this);this.D[d]=T.Ma.Eb;ib(this,"doNVRCommand(): erase data at addr "+u(d));break;case T.Ma.Ta.Ic:this.j=this.j<<1|d;break;case T.Ma.Ta.Ed:d=Sd(this);e=this.j&T.Ma.Eb;this.D[d]=e;ib(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case T.Ma.Ta.td:d=Sd(this);e=this.D[d]; null==e&&(e=T.Ma.Eb);this.j=e;ib(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case T.Ma.Ta.vd:this.j<<=1;this.ba=this.j&T.Ma.Eb+1;break;default:ib(this,"doNVRCommand(): unrecognized command "+ca(e))}}c&=~T.La.gc;this.ba&&(c|=T.La.gc);c&=~T.La.ac;if(d=this.J){d=this.J;if(e=d.C)e=d.b,e=Gc(d.b)>=d.I+e.X*e.Ra/1E3*1.2731488;e&&(d.C=!1);d=!d.C}d&&(c|=T.La.ac);c&=~T.La.pc;this.Ga&&this.Ga.Ea&1&&(c|=T.La.pc);this.I=c;E(this,a,null,b,"FLAGS",c);return c}; l.he=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ga=b};l.ke=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.N=b};l.je=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.C=this.C&-4|a;break;case 1:this.C=this.C&-13|a<<2;this.video&&(b=this.video,a=this.C,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.ie=function(a,b,c){E(this,a,b,c,"DC011");b&T.Ua.sd?(b&=T.Ua.lc,this.L!=b&&(this.L=b,this.video&&(a=this.video,b=this.L==T.Ua.lc?50:60,ib(a,"updateRate("+b+")"),a.tc=b))):(b&=T.Ua.Zb,this.K!=b&&(this.K=b,this.video&&(a=this.K==T.Ua.Zb?132:80,b=this.video,ib(b,"updateDimensions("+a+","+(80>>0,g],q=pa(p,k,a.xc);0>q&&p.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({lf:b,F:c,Yd:d,Da:e,wc: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;0d?a.j.push({Ub:b,Rb:Date.now(),Fb:!1}):(a.j[d].Rb=Date.now(),a.j[d].Fb=!1);else if(0<=d){if(!a.j[d].Fb){var e=a.j[d].Rb;if(e&&50>Date.now()-e)return a.j[d].Fb=!0,he(a),!0}a.j.splice(d,1)}if(a.D){d=0;switch(b){case "1p":d=S.Za.md;break;case "2p":d=S.Za.qd;break;case "coin":d=S.Za.Nc;break;case "left":d=S.Za.od;break;case "right":d=S.Za.pd;break;case "fire":d=S.Za.nd}d&&(a=a.D,b=d,a.G&=~b,c&&(a.G|=b))}return!0} function he(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.K,c)}l.Xd=function(a,b){var c=this.G;0<=this.w&&(this.w>3)*a.aa,!yb(a.u,a.Va,a.O,3)))return!1;a.O?(a.oc=a.D.createImageData(b,c),a.rc=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.ic?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.Mb[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.nc?(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.nc?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.qc=b;a.ia=!1;if(void 0===a.G||a.G.length!=a.qc)a.G=Array(a.qc)}function qe(a,b,c,d,e){d=a.w?(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.sc&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.u,e=a.O,f=!0,g=a.Va>>>d.ha;0>=1);;){var v=Bb(a.u,p++);if(127==(v&127)){var r=Bb(a.u,p++),d=r&96,c=(r&15)<<8|Bb(a.u,p),c=c+ (r&16?8192:16384);break}if(m>4)*v.na,C,U,ea,Y,ua=v.ra,Gb=v.na;y?(C=x*r.ra,U=e*r.na,ea=r.ra,Y=r.na):(C=x*r.jc,U=e*r.kc,ea=r.jc,Y=r.kc);v.ra>r.ra&&(C*=2,ea*=2);v.na>r.na&&(q||(H+=r.na),Gb=r.na);y?y.drawImage(v.canvas,ha,H,ua,Gb,C,U,ea,Y):(C+=0,U+=0,r.D.drawImage(v.canvas, ha,H,ua,Gb,C,U,ea,Y))}h++}g++}e++}}a.ia=!0;!b&&a.rb&&1==h&&(a.G[k]=-1,h=0);a.rb=!1;(h||b)&&a.qb&&a.D.drawImage(a.K,0,a.hb,a.I,a.aa-a.na,0,0,a.Gc,a.Jd)}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;x=(1<>8|(r&255)<<8);h>y&x,qe(a,a.oc,h++,k,ha),y+=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.w=null;this.ia=a.tabSize;this.da=a.charBOL;this.C=0;this.aa=!1;z.call(this,"SerialPort",a,re,8388608);var b=a.binding;if("console"==b)this.w="";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.G="";this.J=this.L=null;this.exports={connect:this.Cc,receiveData:this.Tb}}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.Cc(),!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.Tb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(ve(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Lc(this.b,this.la,ze(this,15)));return!0}; l.Rd=function(a,b){var c=this.X;E(this,a,null,b,"DATA",c);this.Ea&=-3;return c};l.Qd=function(a,b){var c=this.Ea;E(this,a,null,b,"STATUS",c);return c}; l.be=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.C%b,this.ia&&(a=ma("",c))):13==b&&(this.C=c=0,a="\n"),this.da&&!this.C&&c&&(a=String.fromCharCode(this.da)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight, this.C+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Lc(this.b,this.ma,ze(this,240))};l.ae=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.$d=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.N=b};var we={0:re.prototype.Rd,1:re.prototype.Qd},xe={0:re.prototype.be,1:re.prototype.ae,2:re.prototype.$d}; 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.Pb=function(){return-1};Ae.prototype.Qb=function(){}; Ae.prototype.Hb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.O?a="end":a=this.w[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.u.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.u?e.W[g].Wb(f,b&65535,d):(e.W[g++].Cb(f,b&255,d),e.W[g&e.G].Cb(0,b>>8&255,d+1));c&&Ve(a,c);Ec(this.b,!0)}};function X(a){return{F:a,Pa:!1}}function vf(a){return[a.F,a.Pa]}function wf(a){return{F:a[0],Pa:a[1]}} function Ue(a,b,c){var d;c=(c?a.L:a.Va).F;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.Qb(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.Qb=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.Pb(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).F));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.C)for(b=1;b>>d.ha],!0);a.C=["bw"];a.Xa=0}l.$a=function(a,b,c){var d=!0;c||Ff(this,a,b,!1,!0);if(a!=this.D){var e=Te(b);if(-1===e)this.g("invalid address: "+Z(b.F)),d=!1;else{var f=this.u;f.W[e>>>f.ha].$a(e&f.u,a==this.C)}}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.C));h.Pa||Me(a);break}}return f}function Hf(a,b){for(var c=1;c>24,4);break;case 3:y=t(v.bb(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Ke?"$":"0x")+y);v=y}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.Yd;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.F)))}}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.Fh[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.F-k;c++}}} l.Hb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.O?a="end":a=this.w[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.F)),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].F?(ja=va+ja,va=0):va+=Ha.length);var nd=[];"call"==af&&(Kb=1E5,nd=["CALL"]);for(void 0!==$e&&a.g(ja+" instructions earlier:");0< Kb&&va!=a.ea;){var df=Ha[va++];if(null==df.F)break;var Lb=X(df.F),mg=ja--,ef=Jf(a,Lb,"history",mg);(!nd.length||0<=ef.indexOf(nd[0]))&&a.g(ef);Lb.Ob&&(va+=Lb.Ob,Kb-=Lb.Ob,ja-=Lb.Ob);va>=Ha.length&&(va=0);a.hb=ja;cf++;Kb--}}cf||(a.g("no "+bf+"history available"),a.hb=void 0)}else{var qc=Ue(a,Y);if(qc){var rc=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Gb),rc=Fe(a,ua)>>>0,65536>4||1;ng--&&0vc?String.fromCharCode(vc):".";tc--}Mb&&(Mb+="\n");Mb+=Y+" "+pd+(Nb?"":" "+ff)}Mb&&a.g(Mb);a.Va=qc}}}}break;case "e":if("else"==f[0])break;var wc=1,gf=255,hf=a.Z,jf=a.ua;"ew"==f[0]&&(wc=2,gf=65535,hf=a.bb,jf=a.Kb);var kf=wc<<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 xc=Ue(a,lf);if(xc)for(var yc=2;ycwd;){for(var $a=null,tg=256;65536>Qb.F>>>0;){nf.F=a.bb(Qb,2);if(null==Qb.F||!tg--)break;for(var ug=a,Ac=nf,of= null,Rb=Ac.F,pf=Rb,xd=1;6>=xd&&Rb;xd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bYf){if($f(d,this.K)){this.C=new Vc(this,"1.30.4","failsafe");$f(this.C)&&(eg(this,d),a=2,fg(this.C));this.C.set("timestamp",ra());gg(this.C);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.B.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.C&&(this.C.clear(),delete this.C);this.w=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.w)return null;a.w--;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.B.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(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Ra(!1);return Cg(a,b,c,d)};window.enableEvents=Ra;window.sendEvent=Ta;})();