(function(){/* http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/cpudef.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/messages.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/defines.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/panel.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/bus.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/memory.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/cpu.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/cpustate.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/cpuops.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/chipset.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/rom.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/ram.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/keyboard.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/video.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/serial.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017 */ var l;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]} for(var ca="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},da="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ea=["Math","trunc"],fa=0;faa?-b:b};ja!=ia&&null!=ja&&ca(da,ha,{configurable:!0,writable:!0,value:ja}); var m={De:0,Ge:1,He:2,Ie:3,Je:4,Ke:5,Le:6,Me:7,Ne:8,Oe:9,Pe:10,Qe:11,Re:12,Se:13,Te:14,Ue:15,Ve:16,We:17,Xe:18,Ye:19,Ze:20,$e:21,af:22,bf:23,cf:24,df:25,ef: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,Za:65,Ub:66,Vb:67,Db:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Fb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87, wc:88,xc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,vd:98,yd:99,d:100,e:101,Cd:102,Ed:103,Fd:104,Gd:105,Pd:106,k:107,Qd:108,Sd:109,n:110,Td:111,p:112,q:113,r:114,pe:115,t:116,re:117,se:118,te:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,ff:127},ka={59:186,61:187,173:189,224:91}; function la(a,b){var c;if(a){b||(b=10);var d,e,f=0=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&& (a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0a&&-1a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function n(a,b,c){b?9=b?4:4294967295>=b?8:9);return ma(a,16,b,c?"0x":"")}function na(a){return n(a,2,!0)} function q(a){return n(a,4,!0)}function oa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0"']/g,function(a){return va[a]})}function wa(a,b){return(a+" ").slice(0,b)} function xa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var va={"&":"&","<":"<",">":">",'"':""","'":"'"},Ca={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 Ea(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]);0f;f++){var g;switch(g="Y-m-d H:i:s".charAt(f)){case "a":b+=12>c?"am":"pm";break;case "d":b+=("0"+d).slice(-2);break;case "D":b+=Ga[a.getDay()].substr(0,3);break;case "F":b+=Ha[e-1];break;case "g":b+=c?12c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;cb.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Pa=g.load;d.Ha=g.exec;if(e=g.bytes)d.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c>8&255;else if(e=g.longs)for(d.ma=Array(4*e.length),f=c=0;c>8&255,d.ma[f++]=e[c]>>16&255,d.ma[f++]=e[c]>>24&255;else(e=g.data)?d.Qf=e:d.ma=g;d.ma&&(d.ma.length?1==d.ma.length&&(r(d.ma[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Gb=this.id:(this.ab=this.id.substr(0,a),this.Gb=this.id.substr(a+1));this.D={ready:!1,jb:!1,Hb:!1,Rf:!1,ja:!1,Qb:!1,error:!1};this.xb=null;this.D.error=!1;this.ha=c||0;this.K=this.w=this.I=this.R=null;kb.push(this)} function lb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}function fb(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(a,b){a.value+=b;b=a.value;8192d?c+=a+"\n":c=c.substr(0,d)+(a+ ".")+c.substr(d+a.length);8192>1)+2;10>this.g&&(this.g=10);15>2;this.j=this.u-1;this.L=this.N/this.u|0;this.H=this.L-1;this.A=[];this.B=[];this.F=this.G=!1;this.S=[];this.T=[];a=new A;Vb(a,this.K);this.b=Array(this.L);for(b=0;b>>a.g;0f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.nb+=h.J-e,h.J=e,!0;if(e>=h.J+h.nb){p=h.size-(e-k);p>f&&(p=f);h.nb=e-h.J+p;e=k+a.u;f-=p;g++;continue}}return Xb(Yb,e,f)}e=new A(e,p,a.u,d);Vb(e,a.K,h);a.b[g++]=e;e=k+a.u;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Zb[d]+" at "+q(b)),!0):Xb($b,b,c)} function ac(a,b){return a.b[(b&a.C)>>>a.g].mb(b&a.j,b)}function bc(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Wa(c,b)|a.b[d&a.H].Wa(0,b+1)<<8}function cc(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Mb(c,b):a.b[d++].mb(c,b)|a.b[d&a.H].mb(0,b+1)<<8}function dc(a,b,c){a.b[(b&a.C)>>>a.g].ob(b&a.j,c&255,b)}function ec(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].Ya(d,c&255,b),a.b[e&a.H].Ya(0,c>>8&255,b+1))} function fc(a){for(var b=0,c=[],d=0;d>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.K&&a.G!=g[1]&&nc(a.K,b,k)}else a.K&&(Lb(a.K,a,b,k,d),a.G&&nc(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Xb(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Yb=1,$b=2,xc;if(Mb){var yc=new ArrayBuffer(2);(new DataView(yc)).setUint16(0,256,!0);xc=256===(new Uint16Array(yc))[0]}else xc=!1;var zc=xc; function A(a,b,c,d){this.id=Ac+=2;this.b=null;this.J=a;this.nb=b;this.size=c||0;this.type=d||Bc;this.w=d==Cc;Vb(this);this.Da=this.Dc=!1;if(c)if(Mb)this.R=new ArrayBuffer(c),this.j=new DataView(this.R,0,c),this.g=new Uint8Array(this.R,0,c),this.u=new Uint16Array(this.R,0,c>>1),this.b=new Int32Array(this.R,0,c>>2),Dc(this,zc?Ec:Fc);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)};l.je=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.ne=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};l.xe=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.Da=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Mc(c,this.J+a,1,c.M)&&c.ea(!0)}return this.mb(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Mc(c,this.J+a,2,c.M)&&c.ea(!0)}return this.Mb(a,b)}; l.ve=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Mc(d,this.J+a,1,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.ob(a,b,c)};l.ze=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Mc(d,this.J+a,2,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.Sb(a,b,c)};l.ge=function(a){return this.g[a]};l.ie=function(a){return this.g[a]};l.ke=function(a){return this.j.getUint16(a,!0)};l.me=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.u[a>>1]};l.ue=function(a,b){this.g[a]=b;this.Da=!0}; l.we=function(a,b){this.g[a]=b;this.Da=!0};l.ye=function(a,b){this.j.setUint16(a,b,!0);this.Da=!0};l.Ae=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.u[a>>1]=b;this.Da=!0};var Bc=0,Cc=2,Zb=["NONE","RAM","ROM","VID","H/W"],Ac=0,Hc=[],Gc=[A.prototype.je,A.prototype.xe,A.prototype.ne,A.prototype.Be],Kc=[A.prototype.he,A.prototype.ve,A.prototype.le,A.prototype.ze];if(Mb)var Fc=[A.prototype.ge,A.prototype.ue,A.prototype.ke,A.prototype.ye],Ec=[A.prototype.ie,A.prototype.we,A.prototype.me,A.prototype.Ae]; function Nc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.T=c;this.Sa=Math.round(this.za/1E4)/100;this.Z=this.Sa*this.T;this.D.ka=!1;this.D.Pb=!1;this.D.ib=a.autoStart;this.D.Bc=!1;this.D.Va=!1;this.wa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.U=[];this.Bb=this.rb.bind(this);Gb(this)}aa(Nc,u);l=Nc.prototype; l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Wc(a)&&(a.na=a.sa=-1,Rc(a),a.ea(),c=!0);c&&a.i(Wc(a)+" cycles: checksum="+n(a.wa))}} l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.D.ja)a=!0;else{var b=null,c,h=ub(a.id);for(c=0;ca.Y/a.Z?b=1:d=!0;a.T=b;b=a.Sa*a.T;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Xa()}Yc(a,a.X);a.X=0;a.V=nb();a.ba=0;Zc(a);return d}function ad(a,b,c){var d;d=void 0===d?-1:d;var e=a.U.length;a.U.push([b,-1,d,c]);0<=d&&bd(a,e,d);return e}function bd(a,b,c){0<=b&&bb[1]&&(c=a.za*a.T/1E3*c|0,a.D.ka&&(c+=cd(a)),b[1]=c))} function cd(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c} l.rb=function(a){if(Ib(this,!0)){if(!this.D.ka){Xc(this);this.R&&this.R.start(this.V,Wc(this));this.D.ka=!0;this.D.Pb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(dd(this.R,!0),a&&this.R.Xa(!0))}this.Ua>=this.za&&Zc(this,!0);this.Ca=0;this.La=nb();this.ba&&(a=this.La-this.ba,a>this.gb&&(this.V+=a,this.V>this.La&&(this.V=this.La)));try{do{for(var c,d=this.D.Va?1:this.Ma,e=this.U.length-1;0<=e;e--){var f=this.U[e];0>f[1]||d>f[1]&&(d=f[1])}c=d;this.Cb(c);c=cd(this,!0); this.Ca+=c;this.X+=c;Vc(this,c);a=c;for(var g=this.U.length-1;0<=g;g--){var h=this.U[g];0>h[1]||(h[1]-=a,0>=h[1]&&(h[1]=-1,h[3](),0<=h[2]&&bd(this,g,h[2])))}this.ta-=c;if(0>=this.ta){this.ta+=this.Ma;++this.hb>=qd&&(this.R&&dd(this.R),this.hb=0);break}}while(this.D.ka)}catch(k){this.ea();Uc(this);this.R&&this.R.stop(nb(),Wc(this));Ib(this,!1);Eb(this,k.stack||k.message);return}c=setTimeout;d=this.Bb;this.ba=nb();e=this.gb;this.Ca&&(e=Math.round(e*this.Ca/this.Ma));e-=this.ba-this.La;if(f=this.ba- this.V)this.Y=Math.round(this.X/(10*f))/100,864E5<=f&&(this.la=0,Xc(this));if(0>e||this.Ye&&(this.V-=e),e=0;this.Ua+=this.Ca;this.ba+=e;c(d,e)}else Uc(this),this.R&&this.R.stop(nb(),Wc(this))};l.Cb=function(){return 0};l.ea=function(a){Hb(this,!0);cd(this);Yc(this,this.X);this.X=0;if(this.D.ka){this.D.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.D.complete=a};function Uc(a,b){if(a.R){for(var c=a.R,d=0;d>8&255;a.A=b&255}function Cd(a){return a.B<<8|a.C}function Dd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.F<<8|a.G} function Ed(a,b){a.F=b>>8&255;a.G=b&255}function B(a,b){a.j=b&65535}function Fd(a){return a.H&256?1:0}function Gd(a,b){a.H=a.H&255|b}function Hd(a){return Nb[a.L&255]?4:0}function Id(a){return(a.L^a.O)&16?16:0}function Jd(a){return a.H&255?0:64}function Kd(a){return a.L&128?128:0}function yd(a){return a.N&-214|Kd(a)|Jd(a)|Id(a)|Hd(a)|Fd(a)}function wd(a,b){a.H=a.L=a.O=0;b&1&&(a.H|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.H|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2} function Ld(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b)&255}function Md(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?1:0))&255}function Nd(a,b){a.H=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.H}function Od(a,b){a.O=b^255;b=a.L=b+255&255;a.H=a.H&-256|b;return b}function Pd(a,b){a.O=b;b=a.L=b+1&255;a.H=a.H&-256|b;return b}function Qd(a,b){return a.L=a.H=a.O=a.g|b}function Rd(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+1^256)&255} function Sd(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?0:1)^256)&255}function Td(a,b){return a.L=a.H=a.O=a.g^b}function E(a,b){a=a.I;return a.b[(b&a.C)>>>a.g].Wa(b&a.j,b)}function Ud(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].Ya(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);B(a,a.j+1);return b}function G(a){var b=bc(a.I,a.j);B(a,a.j+2);return b}function Vd(a){var b=bc(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;ec(a.I,a.M,b)} function Wd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<b?255:1<>8;Gd(this,a&256);this.b-=4},$d,function(){var a;Ed(this,a=D(this)+Ad(this));Gd(this,a>>8&256);this.b-=10},function(){this.g=E(this,Ad(this));this.b-=7},function(){Bd(this,Ad(this)-1);this.b-= 5},function(){this.A=Pd(this,this.A);this.b-=5},function(){this.A=Od(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;Gd(this,a);this.b-=4},$d,function(){Dd(this,G(this));this.b-=10},function(){Ud(this,Cd(this),this.g);this.b-=7},function(){Dd(this,Cd(this)+1);this.b-=5},function(){this.B=Pd(this,this.B);this.b-=5},function(){this.B=Od(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255| Fd(this);Gd(this,a&256);this.b-=4},$d,function(){var a;Ed(this,a=D(this)+Cd(this));Gd(this,a>>8&256);this.b-=10},function(){this.g=E(this,Cd(this));this.b-=7},function(){Dd(this,Cd(this)-1);this.b-=5},function(){this.C=Pd(this,this.C);this.b-=5},function(){this.C=Od(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(Fd(this)<<8|this.g)>>1;Gd(this,a&256);this.b-=4},$d,function(){Ed(this,G(this));this.b-=10},function(){var a=G(this);ec(this.I,a,D(this)); this.b-=16},function(){Ed(this,D(this)+1);this.b-=5},function(){this.F=Pd(this,this.F);this.b-=5},function(){this.F=Od(this,this.F);this.b-=5},function(){this.F=F(this);this.b-=7},function(){var a=0,b=Fd(this);if(Id(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=Ld(this,a);Gd(this,b?256:0);this.b-=4},$d,function(){var a;Ed(this,a=D(this)+D(this));Gd(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=bc(this.I,a);Ed(this,a);this.b-=16},function(){Ed(this,D(this)-1);this.b-=5},function(){this.G= Pd(this,this.G);this.b-=5},function(){this.G=Od(this,this.G);this.b-=5},function(){this.G=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},$d,function(){this.M=G(this)&65535;this.b-=10},function(){Ud(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Ud(this,a,Pd(this,E(this,a)));this.b-=10},function(){var a=D(this);Ud(this,a,Od(this,E(this,a)));this.b-=10},function(){Ud(this,D(this),F(this));this.b-=10},function(){this.H|=256;this.b-= 4},$d,function(){var a;Ed(this,a=D(this)+this.M);Gd(this,a>>8&256);this.b-=10},function(){this.g=E(this,G(this));this.b-=13},function(){this.M=this.M-1&65535;this.b-=5},function(){this.g=Pd(this,this.g);this.b-=5},function(){this.g=Od(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){Gd(this,Fd(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.u=this.A;this.b-=5},function(){this.u=this.B;this.b-=5},function(){this.u=this.C;this.b-=5},function(){this.u=this.F;this.b-= 5},function(){this.u=this.G;this.b-=5},function(){this.u=E(this,D(this));this.b-=7},function(){this.u=this.g;this.b-=5},function(){this.A=this.u;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=this.G;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.u;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B= this.C;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=this.G;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.u;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=this.G;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.F=this.u;this.b-=5},function(){this.F= this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.b-=5},function(){this.F=this.G;this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;this.b-=5},function(){this.G=this.u;this.b-=5},function(){this.G=this.A;this.b-=5},function(){this.G=this.B;this.b-=5},function(){this.G=this.C;this.b-=5},function(){this.G=this.F;this.b-=5},function(){this.b-=5},function(){this.G=E(this,D(this));this.b-=7},function(){this.G=this.g; this.b-=5},function(){Ud(this,D(this),this.u);this.b-=7},function(){Ud(this,D(this),this.A);this.b-=7},function(){Ud(this,D(this),this.B);this.b-=7},function(){Ud(this,D(this),this.C);this.b-=7},function(){Ud(this,D(this),this.F);this.b-=7},function(){Ud(this,D(this),this.G);this.b-=7},function(){var a=this.j-1;if(this.Ka.length)for(var b=0;b>8;this.b-=10},function(){var a=G(this);Kd(this)||B(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Kd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,yd(this)&255|this.g<<8);this.b-=11},function(){this.g=Qd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,48);this.b-=11},function(){Kd(this)&& (B(this,Vd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Kd(this)&&B(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Wd(this)},function(){var a=G(this);Kd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},ce,function(){Rd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,56);this.b-=11}]; function de(a){u.call(this,"ChipSet",a,32768);var b=a.model;b&&!ee[b]&&fb("Unrecognized ChipSet model: "+b);this.g=ee[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Gb(this)}aa(de,u);l=de.prototype;l.da=function(){return!1}; l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;this.R=a;this.B=Qb(a,"Keyboard");this.C=Qb(a,"SerialPort");this.video=Qb(a,"Video");hc(b,this,this.g.zb);lc(b,this,this.g.Ab);if(d){var e=this;fe(d,16384,function(){for(var a="",b=0;b>8-this.T&255;y(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Xd=function(a,b,c){y(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Zd=function(a,b,c){y(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Yd=function(a,b,c){y(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8}; l.$d=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function he(a){var b=0,c=0,d=~a.M;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.Nd=function(a,b){var c=this.F,c=c&~J.xa.jc;if((Wc(this.w)&64)<<1&&(c|=J.xa.jc,c!=this.F)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ia.od:break;case J.Aa.Ia.Lc:this.M=this.M<<1|d;break;case J.Aa.Ia.Rc:d=he(this);this.j[d]=J.Aa.tb;Kb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Aa.Ia.Mc:this.b=this.b<<1|d;break;case J.Aa.Ia.sd:d=he(this);e=this.b&J.Aa.tb;this.j[d]=e;Kb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Aa.Ia.md:d=he(this);e=this.j[d]; null==e&&(e=J.Aa.tb);this.b=e;Kb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Aa.Ia.nd:this.b<<=1;this.S=this.b&J.Aa.tb+1;break;default:Kb(this,"doNVRCommand(): unrecognized command "+na(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.w,e=Wc(d.w)>=d.G+(e.za*e.T/1E3*1.2731488|0);e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&ie&&(c|=J.xa.sc);this.F=c;y(this,a,null,b,"FLAGS",c);return c}; l.be=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.ee=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.u=this.u&-4|a;break;case 1:this.u=this.u&-13|a<<2;this.video&&(b=this.video,a=this.u,Kb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?rd(b,!0):b.wa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}}; l.ce=function(a,b,c){y(this,a,b,c,"DC011");b&J.Ja.ld?(b&=J.Ja.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.Ja.oc?50:60,Kb(a,"updateRate("+b+")"),a.gb=b))):(b&=J.Ja.Wb,this.G!=b&&(this.G=b,this.video&&(a=this.G==J.Ja.Wb?132:80,b=this.video,Kb(b,"updateDimensions("+a+","+(80>>0,g],v=Ea(t,k,a.Ac);0>v&&t.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.C.push({Sf:b,J:c,Rd:d,ra:e,zc:f})}delete this.ra}return!0};le.prototype.ua=function(){return!0}; function me(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{lb(a.ab,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b= c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e>>f.g;0>>= f.g;0=m.Za&&a<=m.ub?d.g&(Ve|We)||(d.g|=We,Se(d,20,!0),Xe(d)):a>=m.yc&&a<=m.z&&d.g&We&&(d.g&=~We,Se(d,20,!1),Xe(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Qa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ye(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ta&&void 0!==this.b.Ta[b])return this.P[e]=c,c.onclick= function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ze:20==b&&(e=We);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";$e(a,b,d)}Se(a,b,d,!e);a.R&&a.R.Xa()}}(this,this.b.Ta[b]),!0}}return!1};l.Fa=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=ad(this.w,this.id,function(){af(e)});this.W=Qb(a,"ChipSet");this.C=Qb(a,"SerialPort");hc(b,this,this.b.zb);lc(b,this,this.b.Ab)}; l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new zd(this);switch(this.b.pa){case K.pa:a.set(0,[this.F,this.B,this.A,this.G,-1])}return a.data()}; l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case bf.pa:return!0;case K.pa:return this.F=b[0],Xe(this,this.F&K.Ba.ec),this.B=b[1],this.A=b[2],this.G=b[3],this.u=b[4],!0}return!1};function Xe(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.bb)if(c="led-"+d,c=a.P[c]){var e=a.b.bb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&We?"#"+n(65280,6):"#000000"} function $e(a,b,c,d){var e=0;switch(b){case 16:e=d?cf:df;break;case 17:e=d?ef:Ze;break;case 18:e=d?ff:gf;break;case 91:e=d?hf:jf;break;case 20:e=We,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c} function Ue(a,b,c){var d=!0,e=b.keyCode,e=ka[e]||e;c=$e(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Ra[e])f=e;else{for(f in a.b.Ta)if(a.b.Ta[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(kf|lf)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|lf:a.g&~lf)),d=Se(a,f,c),(!(f>=m.Za&&f<=m.ub)||a.g|mf)&&b.preventDefault&&b.preventDefault());return d} function Te(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Ra[e],g;if(g=f){a:{for(var h in a.b.qb)if(a.b.qb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Se(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d} function Se(a,b,c,d){var e;a:{for(e=0;ee?a.j.push({Ob:b,Lb:Date.now(),wb:d||!1}):(a.j[e].Lb=Date.now(),a.j[e].wb=d||!1),d&&af(a);else if(0<=e){if(!a.j[e].wb&&(d=a.j[e].Lb)&&Date.now()-dc||c>e)c=e}else{Se(a,d,!1);b=0;continue}}b++}0<=c&&bd(a.w,a.L,c)}l.Od=function(a,b){var c=this.B;0<=this.u&&(this.u"]]= 229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.ub]=250,N),Tb:{},bb:{},Ta:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ba:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,pd:64,Ee:128,INIT:0},Yc:127};K.bb={l4:K.Ba.bd,l3:K.Ba.ad,l2:K.Ba.$c,l1:K.Ba.Zc,locked:K.Ba.cd,local:K.Ba.fc,online:~K.Ba.fc,"caps-lock":We};var Re={SI1978:bf,VT100:K}; K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.zb={130:Qe.prototype.Od};K.Ab={130:Qe.prototype.fe};Za(function(){for(var a=sb(document,"pc8080","keyboard"),b=0;b>3)*a.N,!Wb(a.I,a.la,a.L,3)))return!1;a.L?(a.Ua=a.j.createImageData(b,c),a.eb=16/a.na|0,uf(a,a.L>>1)):uf(a,(a.O+1)*a.Z);a.F=document.createElement("canvas");a.F.width=b;a.F.height=c;a.ta=a.F.getContext("2d");a.T={};a.X=1<=a.Ca?8:16,f=8>(7>4)*c)}return k}l.va=function(a,b){return b||!a||this.restore(a)?!0:!1};l.ua=function(a){return!a||this.save()};l.save=function(){var a=new zd(this);a.set(0,[]);return a.data()};l.restore=function(){return!0}; l.kb=function(){var a=!1;if(this.b){if(this.b.kb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Sa?(this.G.style.width=a,this.G.style.width=a,this.G.style.display="block",this.G.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.kb();a=!0}this.V&&this.V.focus()}return a}; function sf(a,b){!b&&a.b&&(a.Sa?a.G.style.width=a.G.style.height="":a.b.style.width=a.b.style.height="");Kb(a,"notifyFullScreen("+b+")")}function uf(a,b){a.cb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.cb)a.A=Array(a.cb)}function Ff(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==wf&&(208<=c&&236>c?e=a.X+xf:28<=c&&72>c&&(e=a.X+yf));a=a.U[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 rd(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.fb&1?(Xd(a.w,2),c=!1):Xd(a.w,1):Xd(a.w,4));if(c&&a.W&&a.L){for(var d=a.I,e=a.la,f=a.L,g=!0,h=e>>>d.g,e=d.u-(e&d.j);0>=1);;){var x=ac(a.I,t++);if((x&Gf)==Gf){var w=ac(a.I,t++),d=w&Hf,c=(w&If)<< 8|ac(a.I,t),c=c+(w&Jf?Kf:Lf);break}if(p>4)*x.ca,L,za,sa,Aa,ta=x.ga,Ba=x.ca;C?(L=z*w.ga,za=f*w.ca,sa=w.ga,Aa=w.ca):(L=z*w.Ka,za=f*w.La,sa=w.Ka,Aa=w.La);x.ga>w.ga&&(L*=2,sa*=2);x.ca>w.ca&&(v==Ef&&(T+=w.ca),Ba=w.ca);C?C.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa):(L+=0, za+=0,w.j.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa))}e++}h++}f++}}a.W=!0;!b&&a.wa&&1==e&&(a.A[k]=-1,e=0);a.wa=!1;(e||b)&&a.ta&&a.j.drawImage(a.F,0,a.sa,a.C,a.N-a.ca,0,0,a.Bb,a.ud)}else{f=a.la;g=f+a.L;k=e=h=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;z=(1<>8|(w&255)<<8);e>C&z,Ff(a,a.Ua,e++,k,ya),C+=t;e>p&&(p=e);k=d&&(d=k+1)}f+=2;h++;if(e>=a.C&&(e=0,k++,k>a.N))break}a.W= !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<=La().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||Ua("aspect"));f&&.3<=f&&3.33>=f&&(Ya("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");Ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new pf(d,e,g,f,c);rb(d,c)}}); function Mf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.u=0;this.N=!1;this.F=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Nf;b&&(void 0===c&&(c="Panel"),(c=wb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Qa=this.H=null;this.exports={connect:this.Fc,receiveData:this.Nb,receiveStatus:this.oe}} aa(Mf,u);l=Mf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Nf:return this.P[b]=this.g=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=xa(c[0]);if(d!=this.Gb)return;c=xa(c[1]);if(this.b=vb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.F);if(this.Qa=e.receiveData){this.F=a;this.H=e.receiveStatus;this.status("Connected "+this.ab+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}}; l.va=function(a,b){if(!b)if(this.Fc(this.F),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){Rf(this)};l.save=function(){var a=new zd(this),b=0,c=[];c[b++]=this.G;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Rf(this,a[0])}; function Rf(a,b){var c=0;b||(b=Sf);a.G=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Tf(a,b){var c=a.L&b;b&15||(c>>=4);b=Uf[c];c=((a.B&Vf)>>2)+6;a.B&Wf&&c++;c+=((a.B&Xf)>>6)+1>>1;return 1E3/(b/c)|0}function Of(a,b){Kb(a,"receiveByte("+na(b)+"), status="+na(a.ia));return a.N||a.ia&Yf?!1:(a.M=b,a.ia|=Yf,Xd(a.w,a.X),!0)} l.Nb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Of(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.w&&bd(this.w,this.Y,Tf(this,Zf)));return!0};l.oe=function(a){this.ia&=~$f;a&64&&(this.ia|=$f)};function Ye(a,b){a.ia=a.ia|ie|ag;b&&a.Qa&&a.Qa.call(a.b,b)}l.Id=function(a,b){var c=this.M;y(this,a,null,b,"DATA",c);this.ia&=~Yf;return c};l.Hd=function(a,b){var c=this.ia;y(this,a,null,b,"STATUS",c);return c}; l.Wd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(ie|ag);Kb(this,"transmitByte("+na(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Qa&&this.Qa.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.u%b,this.V&&(a=wa("",c))):13==b&&(this.u=c=0,a="\n");this.S&&!this.u&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop= this.g.scrollHeight;this.u+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.w&&bd(this.w,this.Z,Tf(this,bg))};l.Vd=function(a,b,c){y(this,a,b,c,"CONTROL");this.G?(this.H&&(b^this.C)&(cg|dg)&&(a=0,this.F?(a|=b&cg?32:0,a|=b&dg?320:0):(a|=b&cg?16:0,a|=b&dg?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&eg&&(this.G=!1)):(this.B=b,this.G=!0)};l.Ud=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b}; var Vf=12,Wf=16,Xf=192,dg=2,cg=32,eg=64,ie=1,Yf=2,ag=4,$f=128,Zf=15,bg=240,Uf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Sf=[!1,0,0,133,142,39,238],Nf="buffer",Pf={0:Mf.prototype.Id,1:Mf.prototype.Hd},Qf={0:Mf.prototype.Wd,1:Mf.prototype.Vd,2:Mf.prototype.Ud};Za(function(){for(var a=sb(document,"pc8080","serial"),b=0;bthis.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.N?a="end":a=this.g[this.b+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(xa(a.substring(d,f))),d=f+1}}return b}; function gg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a<<32-b>>32-b:(b=Math.pow(2,b-1),a>=b?(d=a%b,(a/b|0)&1&&(d-=b)):a<-b&&(d=a%b,((-a-1)/b|0)&1?d&&(d+=b):d||(d-=b)));a!=d&&(a=d);return a} function hg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&= f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case ",,":e=gg(e,18,!0)*Math.pow(2,18)+gg(f,18,!0);break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=gg(e,0,!0),e=0=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=ig(a,b,0,b.length,a.u,c);void 0!==d&&e&&qg(a,null,d)}return d} function rg(a,b){var c,d=a.U[0],e=a.U[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=pg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?og(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e= a.S-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function kg(a,b){for(;b;){switch(b&3){case 1:a=-gg(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a} function jg(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.Jb(b);if(0<=f)f=a.Kb(f);else if(f=b,a.A[f]?f=a.A[f].value:(f=f.substr(0,6),f=a.A[f]&&a.A[f].value),null!=f){var h=a.A[b]&&a.A[b].qe;h&&(g?g.push(h):(g=pg(a,h,d),void 0!==g?f+=g:(d||a.i("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=la(b,1c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function sg(a,b){var c=0;if(a.A){if(b)return qg(a,b,a.A[b]&&a.A[b].value);b=Object.keys(a.A);b.sort();for(var d=0;d=a?8:262143>=a?18:36);b=ma(b,2,a,"",e);break;case 8:(a=0=a?6:16777215>=a?8:12);b=ma(b,8,a,e?"0o":"");break;case 10:(e=0=Math.abs(b)?5:11;b=ma(b,10,e);break;default:b=n(b,0>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c} var mg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},lg={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20}; function tg(a){fg.call(this,a);this.style=ug;this.L=vg();this.sa=vg();this.T=vg();this.C=[];this.j=this.M=this.B=[];wg(this);this.X=0;xg(this);this.la={};yg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Tc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Tc(b,a)})}aa(tg,fg);l=tg.prototype; l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.R=a;(a=Pc(a,"messages"))&&yg(this,a);this.oa=zg;fe(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=Ag(Bg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Zb[c],t&&d.i(n(t.id)+" %"+n(e<>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].ob(f,b&255,d),e.b[g&e.H].ob(0,b>>8&255,d+1));c&&ah(a,c);Uc(this.w,!0)}};function vg(a){return{J:a,Ea:!1}}function ch(a){return[a.J,a.Ea]}function dh(a){return{J:a[0],Ea:a[1]}} function Bg(a,b,c){var d;c=(c?a.L:a.sa).J;if(void 0!==b){d=b=rg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=Ia(hh,a.substr(b,1))));return c};function ih(a,b){var c=0;a=a.Kb(b);if(void 0!==a)switch(b){case jh:case kh:case lh:case mh:case nh:case oh:case ph:case qh:c=2;break;case rh:case sh:case th:case uh:case vh:case wh:case xh:c=4}return c?n(a,c):"??"} l.Kb=function(a){var b;if(0<=a){var c=this.w;switch(a){case jh:b=c.g;break;case kh:b=c.u;break;case lh:b=c.A;break;case rh:b=Ad(c);break;case mh:b=c.B;break;case nh:b=c.C;break;case sh:b=Cd(c);break;case oh:b=c.F;break;case ph:b=c.G;break;case th:b=D(c);break;case qh:b=E(c,D(c));break;case uh:b=c.M;break;case vh:b=c.j;break;case wh:b=yd(c);break;case xh:b=yd(c)&255|c.g<<8}}return b}; function yh(a,b){b=rg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Jb(b,c+1),0<=e&&(b=b.substr(0,c)+ih(a,e)+b.substr(c+1+hh[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=la(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=Bg(a,e))?(d=e+' "'+gh(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=Bg(a,e))?(ah(d),d= e+' "'+gh(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+fh(vg(this.w.j).J));this.ha&536870912?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.w&&(a=this.w,cd(a),a.ta=0,Uc(a)))}; function Lb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.Gb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+na(d):"")+")"+(null!=g?": "+na(g):"")+(null!=e?" at "+fh(e):""))} function xg(a){var b;if(Yd(a)){if(!a.H||!a.H.length){a.H=Array(zh);for(b=0;b>>d.g],!1)}a.M=["br"];if(a.B)for(b=1;b>>d.g],!0);a.B=["bw"];a.ta=0}l.Oa=function(a,b,c){var d=!0;c||Fh(this,a,b,!1,!0);if(a!=this.j){var e=Ag(b);if(-1===e)this.i("invalid address: "+fh(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Oa(e&f.j,a==this.B)}}d&&(a.push(b),c?b.Ea=!0:(Gh(this,a,a.length-1,"set"),xg(this)));return d}; function Fh(a,b,c,d,e){var f=!1;c=Ag(c);for(var g=1;g>>d.g],b==a.B));h.Ea||xg(a);break}}return f}function Hh(a,b){for(var c=1;c>24,4);break;case Uh:C=n(x.Eb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Kh&&w&Vh?C="["+C+"]":w&Wh||(C=(x.style==ug?"$":"0x")+C);x=C}else w&Wh?(x=(v&Xh)>>8, w=hh[x],a.style==Kh&&v&Vh&&(x==qh&&(w="HL"),w="["+w+"]"),x=w):w&Yh&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0b[0]?1:a[0]>>0;for(b=0;b>>0,h=f.Rd;if(e>=g&&e>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break; case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.F=f&255;break;case "HL":d.F=f>>8&255;case "L":d.G=f&255;break;case "SP":d.M=f&65535;break;case "PC":B(d,f);a.L=vg(d.j);break;case "PS":wd(d,f);break;case "PSW":wd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Hd(d)||(d.L^=1):Hd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.H=f?d.H&-256:d.H|255;break;case "SF":f?Kd(d)||(d.L^=192):Kd(d)&&(d.L^=192);break;case "IF":d.N= f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Uc(d);a.i("updated registers:")}a.i(bi(a));c&&(a.L=vg(d.j),Dh(a,fh(a.L.J)))}}function ii(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(yh(a,c[2])):pg(a,b,!1)}function ji(a,b,c){var d="t"!=b;c=jg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Wa(c,function(){return Ib(a,!0)&&Cg(a,e,d,!1)},function(){Uc(a.w);Ib(a,!1)})} function Dh(a,b,c,d){if(b=Bg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Bg(a,c,!0);if(!d||d.Jh[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Jh(a,b,g,f);a.i(f);a.L=b;e-=b.J-k;c++}}} l.yb=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.N?a="end":a=this.g[this.b+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(xa(a.substring(d,f))),d=f+1}}return b}; function Ih(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+fh(a.T.J)),a.L=a.T,a.N=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(Fb(a)&&0p||"z"bb.length&&(a.i("note: only "+bb.length+" available"),Da=bb.length);Oa-=Da;0>Oa&&(null==bb[bb.length-1].J?(Da=Oa+Da,Oa=0):Oa+=bb.length);var ve= [];"call"==Ig&&(oc=1E5,ve=["CALL"]);for(void 0!==Hg&&a.i(Da+" instructions earlier:");0=bb.length&&(Oa=0);a.wa=Da;Kg++;oc--}}Kg||(a.i("no "+Jg+"history available"),a.wa=void 0)}else{var ed=Bg(a,ta);if(ed){var fd=0;Ba&&("l"==Ba.charAt(0)&&(Ba=Ba.substr(1)||Oi),fd=jg(a,Ba)>>>0,65536>4||1;Qi--&&0jd?String.fromCharCode(jd):".";hd--}qc&&(qc+="\n");qc+=ta+" "+xe+(rc?"":" "+Ng)}qc&&a.i(qc);a.sa=ed}}}}break;case "e":if("else"==f[0])break;var kd=1,Og=255,Pg=a.Ga,Qg=a.Xb;"ew"==f[0]&&(kd=2,Og=65535,Pg=a.Eb,Qg=a.Qc);var Rg=kd<<1,Sg=f[1];if(null==Sg)a.i("edit memory commands:"), a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var ld=Bg(a,Sg);if(ld)for(var md=2;mdEe;){for(var yb=null,Wi=256;65536>uc.J>>>0;){Ug.J= a.Eb(uc,2);if(null==uc.J||!Wi--)break;for(var Xi=a,od=Ug,Vg=null,vc=od.J,Wg=vc,Fe=1;6>=Fe&&vc;Fe++){if(2\nLicense: GPL version 3 or later ");for(b=0;bti){if(vi(d,this.H)){this.u=new zd(this,"1.36.2",Ei);vi(this.u)&&(Fi(this,d),a=Gi,Hi(this.u));this.u.set(Bi,Fa());Ii(this.u);var e=this.b&&!this.F;if(a==Ci||pb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Ai(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?vi(d,g):("error"==f&&"no machine state"!= g?(this.aa("Error: "+g),"unable to verify user"==g&&(Qa(Ji,""),this.g=null)):this.i(f+": "+g),Hi(d),vi(d)?(c=Ai(d),e=!0):c=!1))}e&&yi(this,c?d:null)}else a==Gi&&d.clear()}else yi(this);delete this.H;delete this.L}e=ub(this.id);for(f=0;fa[1];a=a[2];this.V=!0;this.D.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.w&&(Ki(this,this.w,b,c,a),this.w.ib());this.O&&(Fi(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0}; function Fi(a,b){if(pb("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.g||"";b=b.toString();var d={app:"PC8080",ver:"1.36.2"};d.url=a.W;d.user=c;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}} function ki(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new zd(a,"1.36.2"),g=new zd(a,"1.36.2",zi),h=Fa();g.set(Bi,h);f.set(Bi,h);f.set(Li,"1.36.2");f.set(Mi,window?window.location.href:null);f.set(Ni,La());a.w&&a.w.ua&&(c&&a.w.ea(),d=a.w.ua(b,c),"object"===typeof d&&f.set(a.w.id,d),c&&(a.w.D.ja=!1,!1===d&&(e=null)));for(var h=ub(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(t){f=null,a=t.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(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],p,t=/( [a-z]+=)(['"])(.*?)\2/gi;p=t.exec(f);)k=0>k.toLowerCase().indexOf(p[1].toLowerCase())?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);ij(a,b,c)}})}else c(a,null)} function jj(a,b,c,d){function e(a){if(void 0===h){var b=g&&sb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ua(a))}function f(a){e("Error: "+a);k&&(--fj||gb(!0));k=!1}var g,h,k=!0;fj++;mb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));t.appendChild(v)}c|| (c="/versions/pc8080/1.36.2/components.xsl");p=function(d,h){h?gj(c,null,null,!1,e,function(d,k){k?(lb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--fj||gb(!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),--fj||gb(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?gj(b,a,d,!0,e,p):hj(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){gb(!1);return jj(a,b,c,d)}; window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete zb[c],d=!0;else if("string"==typeof f&&!zb[c]){d=!0;e=zb;for(var g=c,h=f.length,k=[],p=[],t="",v=null,z=0;z