Fixed soft key processing for PC8080 (to fix an issue with the Epiphany browser on the elementary OS involving the VT100 SET-UP button)

This commit is contained in:
Jeff Parsons 2016-12-05 12:26:32 -08:00 • committed by Jeff Parsons
commit 342f976e42
10 changed files with 170 additions and 146 deletions

View file

@ -38,7 +38,7 @@ var ja={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9
function la(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function ma(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function na(a,b){var c,d={aa:null,wa:null,Ea:null,xa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ea=g.load;d.xa=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
function na(a,b){var c,d={aa:null,wa:null,Da:null,xa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Da=g.load;d.xa=g.exec;if(e=g.bytes)d.aa=e;else if(e=g.words)for(d.aa=Array(2*e.length),f=c=0;c<e.length;c++)d.aa[f++]=e[c]&255,d.aa[f++]=e[c]>>8&255;else if(e=g.data)for(d.aa=Array(4*e.length),f=c=0;c<e.length;c++)d.aa[f++]=
e[c]&255,d.aa[f++]=e[c]>>8&255,d.aa[f++]=e[c]>>16&255,d.aa[f++]=e[c]>>24&255;else d.aa=g;d.wa=g.symbols;d.aa.length?1==d.aa.length&&(q(d.aa[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.aa=e)}return d}
function fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function q(a){window&&window.alert(a)}function oa(a){var b=!1;window&&(b=window.confirm(a));return b}var pa=null;function qa(){if(null==pa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}pa=a}return pa}
function ra(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function sa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ua(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var va={init:[],show:[],exit:[]},wa=!1,xa=!1,ya=!0;
@ -66,16 +66,16 @@ D.prototype={constructor:D,parent:null,save:function(){var a,b;if(Ua)for(a=Array
2]>>>((a&3)<<3)&255},H:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},R:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.oa=!0},Z:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.oa=!0},u:function(a,b){return this.hb(a,b)},G:function(a,b){return this.Kb(a,b)},M:function(a,b,c){this.c||this.Nb(a,b,c)},V:function(a,
b,c){this.c||this.W(a,b,c)},s:function(a){return this.b[a]},A:function(a){return this.b[a]},F:function(a){return this.v.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.h[a>>1]},I:function(a,b){this.b[a]=b;this.oa=!0},P:function(a,b){this.b[a]=b;this.oa=!0},T:function(a,b){this.v.setUint16(a,b,!0);this.oa=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.h[a>>1]=b;this.oa=!0}};function Za(a,b,c){a.N=b;a.f=a.g=0;c&&((a.f=c.f)&&ub(a,vb,!1),(a.g=c.g)&&wb(a,vb,!1))}
function wb(a,b,c){c&&a.g||(a.Va=!a.c&&b[1]||a.m,a.sd=!a.c&&b[3]||a.o);if(c||void 0===c)a.Nb=b[1]||a.m,a.W=b[3]||a.o}function ub(a,b,c){c&&a.f||(a.Ua=b[0]||a.l,a.qd=b[2]||a.w);if(c||void 0===c)a.hb=b[0]||a.l,a.Kb=b[2]||a.w}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}var xb=[],tb=[D.prototype.B,D.prototype.R,D.prototype.H,D.prototype.Z],vb=[D.prototype.u,D.prototype.M,D.prototype.G,D.prototype.V];
if(Ua)var sb=[D.prototype.s,D.prototype.I,D.prototype.F,D.prototype.T],rb=[D.prototype.A,D.prototype.P,D.prototype.L,D.prototype.za];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.I=c;this.Ha=Math.round(this.ma/1E4)/100;this.T=this.Ha*this.I;this.j.pa=!1;this.j.Lb=!1;this.j.Sa=a.autoStart;this.j.Eb=!1;this.j.bb=!1;this.ua=this.W=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.F=[];this.$a=this.ob.bind(this);B(this)}w(yb);var zb=["power","reset"];
if(Ua)var sb=[D.prototype.s,D.prototype.I,D.prototype.F,D.prototype.T],rb=[D.prototype.A,D.prototype.P,D.prototype.L,D.prototype.za];function yb(a,b){r.call(this,"CPU",a,yb);var c=a.multiplier||1;this.ma=a.cycles||b;this.I=c;this.Ga=Math.round(this.ma/1E4)/100;this.T=this.Ga*this.I;this.j.pa=!1;this.j.Lb=!1;this.j.Sa=a.autoStart;this.j.Eb=!1;this.j.bb=!1;this.ua=this.W=0;this.va=a.csStart;this.Z=a.csInterval;this.ja=a.csStop;this.F=[];this.$a=this.ob.bind(this);B(this)}w(yb);var zb=["power","reset"];
l=yb.prototype;l.ra=function(a,b,c,d){this.w=a;this.i=b;this.N=d;for(b=0;b<zb.length;b++)(c=this.v[zb[b]])&&this.w.U(null,zb[b],c);this.L=C(a,"ChipSet");a=Ab(a,"autoStart");null!=a&&(this.j.Sa="true"==a?!0:"false"==a?!1:!!a);B(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.fa=function(a,b){if(!b){if(a&&this.restore){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.ea("No debugger detected")}Db(this);return!0};
l.ha=function(a){return a?this.save():!0};l.Sa=function(){return this.j.Sa||void 0===this.v.run?(this.ob(),!0):!1};l.Hb=function(){return 0};function Cb(a){void 0===a.va&&(a.va=0);void 0===a.Z&&(a.Z=-1);void 0===a.ja&&(a.ja=-1);a.j.bb=0<=a.va&&0<a.Z;a.j.bb&&(a.ua=0,a.W=a.va-a.G)}
l.U=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.v[b]=c;a=!0;break;case "run":this.v[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.j.Y)a=!0;else{var b=null,c,h=Na(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.Y);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.eb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.pa?Eb(d):d.ob())};a=!0;
break;case "speed":this.v[b]=c;a=!0;break;case "setSpeed":this.v[b]=c,c.onclick=function(){Fb(d,d.I<<1,!0)},c.textContent=this.T.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b){var c=1;b&&1<a.I&&a.P&&(c=a.P/a.Ha);a.Pa=Math.round(1E3/30);a.Ba=Math.floor(a.ma/30*c);b||(a.la=a.Ba);a.Ia=0}function Hb(a){return a.G+a.M+a.V-a.a}function Bb(a){a.P=0;a.Qa=0;a.G=a.M=a.V=a.a=0;Cb(a);Fb(a,1)}
function Fb(a,b,c){if(void 0!==b){.8>a.P/a.T&&(b=1);a.I=b;b=a.Ha*a.I;if(a.T!=b){a.T=b;b=a.T.toFixed(2)+"Mhz";var d=a.v.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.w&&Ib(a.w)}a.G+=a.M;a.M=0;a.H=ka();a.R=0;Gb(a)}function Jb(a,b){var c=a.F.length;a.F.push([-1,b]);return c}function Kb(a,b,c){0<=b&&b<a.F.length&&0>a.F[b][0]&&(c*=a.ma*a.I/1E3,a.F[b][0]=c+Lb(a))}function Lb(a,b){var c=a.V-=a.a;a.a=0;b&&(a.V=0);return c}
l.ob=function(a){if(Ra(this,!0)){if(!this.j.pa){Fb(this);this.w&&this.w.start(this.H,Hb(this));this.j.pa=!0;this.j.Lb=!0;this.L&&this.L.start();var b=this.v.run;b&&(b.textContent="Halt");this.w&&(this.w.ia(!0),a&&Ib(this.w,!0))}this.Ia>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ka();this.R&&(a=this.ta-this.R,a>this.Pa&&(this.H+=a,this.H>this.ta&&(this.H=this.ta)));try{do{for(var c,d=this.j.bb?1:this.Ba,e=this.F.length-1;0<=e;e--){var f=this.F[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Mb(c);c=Lb(this,!0);
break;case "speed":this.v[b]=c;a=!0;break;case "setSpeed":this.v[b]=c,c.onclick=function(){Fb(d,d.I<<1,!0)},c.textContent=this.T.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b){var c=1;b&&1<a.I&&a.P&&(c=a.P/a.Ga);a.Pa=Math.round(1E3/30);a.Ba=Math.floor(a.ma/30*c);b||(a.la=a.Ba);a.Ha=0}function Hb(a){return a.G+a.M+a.V-a.a}function Bb(a){a.P=0;a.Qa=0;a.G=a.M=a.V=a.a=0;Cb(a);Fb(a,1)}
function Fb(a,b,c){if(void 0!==b){.8>a.P/a.T&&(b=1);a.I=b;b=a.Ga*a.I;if(a.T!=b){a.T=b;b=a.T.toFixed(2)+"Mhz";var d=a.v.setSpeed;d&&(d.textContent=b);a.ea("target speed: "+b)}c&&a.w&&Ib(a.w)}a.G+=a.M;a.M=0;a.H=ka();a.R=0;Gb(a)}function Jb(a,b){var c=a.F.length;a.F.push([-1,b]);return c}function Kb(a,b,c){0<=b&&b<a.F.length&&0>a.F[b][0]&&(c*=a.ma*a.I/1E3,a.F[b][0]=c+Lb(a))}function Lb(a,b){var c=a.V-=a.a;a.a=0;b&&(a.V=0);return c}
l.ob=function(a){if(Ra(this,!0)){if(!this.j.pa){Fb(this);this.w&&this.w.start(this.H,Hb(this));this.j.pa=!0;this.j.Lb=!0;this.L&&this.L.start();var b=this.v.run;b&&(b.textContent="Halt");this.w&&(this.w.ia(!0),a&&Ib(this.w,!0))}this.Ha>=this.ma&&Gb(this,!0);this.qa=0;this.ta=ka();this.R&&(a=this.ta-this.R,a>this.Pa&&(this.H+=a,this.H>this.ta&&(this.H=this.ta)));try{do{for(var c,d=this.j.bb?1:this.Ba,e=this.F.length-1;0<=e;e--){var f=this.F[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Mb(c);c=Lb(this,!0);
this.qa+=c;this.M+=c;a=c;this.j.bb&&(b=!1,this.ua=this.ua+this.Hb()|0,this.W-=a,0>=this.W&&(this.W+=this.Z,b=!0),0<=this.ja&&this.ja<=Hb(this)&&(this.Z=this.ja=-1,Cb(this),Eb(this),b=!0),b&&this.ea(Hb(this)+" cycles: checksum="+p(this.ua)));a=c;for(var g=this.F.length-1;0<=g;g--){var h=this.F[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.la-=c;if(0>=this.la){this.la+=this.Ba;15<=++this.Qa&&(this.w&&this.w.ia(),this.Qa=0);break}}while(this.j.pa)}catch(k){Eb(this);Db(this);this.w&&this.w.stop(ka(),
Hb(this));Ra(this,!1);c=k.stack||k.message;this.j.error=!0;this.K(c);return}c=setTimeout;d=this.$a;this.R=ka();e=this.Pa;this.qa&&(e=Math.round(e*this.qa/this.Ba));e-=this.R-this.ta;if(f=this.R-this.H)this.P=Math.round(this.M/(10*f))/100,864E5<=f&&(this.G=0,Fb(this));if(0>e||this.P<this.T)-1E3>e&&(this.H-=e),e=0;this.Ia+=this.qa;this.R+=e;c(d,e)}else Db(this),this.w&&this.w.stop(ka(),Hb(this))};l.Mb=function(){return 0};
function Eb(a){a.j.ab&&(a.j.lb=!0);Lb(a);a.G+=a.M;a.M=0;if(a.j.pa){a.j.pa=!1;a.L&&a.L.stop();var b=a.v.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Db(a){if(a.w){for(var b=a.w,c=0;c<b.l.length;c++)Mb(b.l[c],void 0);a.w.ia(void 0)}}function Ob(a){yb.call(this,a,1E6);this.Ma=Pb;Bb(this);this.j.complete=this.j.Tc=!1;this.Oa=0;this.sa=[];this.Na=0;Qb(this)}w(Ob,yb);function Rb(a,b){a.sa.push(b)}l=Ob.prototype;l.reset=function(){this.j.pa&&Eb(this);Qb(this);Bb(this);this.j.error=!1;this.parent.reset.call(this)};
Hb(this));Ra(this,!1);c=k.stack||k.message;this.j.error=!0;this.K(c);return}c=setTimeout;d=this.$a;this.R=ka();e=this.Pa;this.qa&&(e=Math.round(e*this.qa/this.Ba));e-=this.R-this.ta;if(f=this.R-this.H)this.P=Math.round(this.M/(10*f))/100,864E5<=f&&(this.G=0,Fb(this));if(0>e||this.P<this.T)-1E3>e&&(this.H-=e),e=0;this.Ha+=this.qa;this.R+=e;c(d,e)}else Db(this),this.w&&this.w.stop(ka(),Hb(this))};l.Mb=function(){return 0};
function Eb(a){a.j.ab&&(a.j.lb=!0);Lb(a);a.G+=a.M;a.M=0;if(a.j.pa){a.j.pa=!1;a.L&&a.L.stop();var b=a.v.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Db(a){if(a.w){for(var b=a.w,c=0;c<b.l.length;c++)Mb(b.l[c],void 0);a.w.ia(void 0)}}function Nb(a){yb.call(this,a,1E6);this.Ma=Pb;Bb(this);this.j.complete=this.j.Tc=!1;this.Oa=0;this.sa=[];this.Na=0;Qb(this)}w(Nb,yb);function Rb(a,b){a.sa.push(b)}l=Nb.prototype;l.reset=function(){this.j.pa&&Eb(this);Qb(this);Bb(this);this.j.error=!1;this.parent.reset.call(this)};
function Qb(a){a.b=0;a.c=0;a.C=0;a.f=0;a.D=0;a.g=0;a.h=0;a.s=0;F(a,a.Na);Sb(a,0);a.A=0}function Tb(a,b){a.Na=b;F(a,b)}l.Hb=function(){var a=this.b+this.c+this.C+this.f+this.D+this.g+this.h|0;return a=a+this.s+this.m+Ub(this)|0};l.save=function(){var a=new G(this);a.set(0,[this.b,this.c,this.C,this.f,this.D,this.g,this.h,this.s,this.m,Ub(this)]);a.set(1,[this.A,this.G,this.I]);a.set(2,gb(this.i));return a.data()};
l.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.C=b[2];this.f=b[3];this.D=b[4];this.g=b[5];this.h=b[6];this.s=b[7]&65535;F(this,b[8]);Sb(this,b[9]);b=a[1];this.A=b[0];this.G=b[1];Fb(this,b[3]);a:{b=this.i;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.u){for(var f=0,g=Array(b.u),h=0;h<e.length-1;)for(var k=e[h++],n=e[h++];k--;)g[f++]=n;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.U=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.v[b]=c;this.Oa++;a=!0;break;default:a=this.parent.U.call(this,a,b,c)}return a};function Vb(a){return a.c<<8|a.C}function Wb(a,b){a.c=b>>8&255;a.C=b&255}function Xb(a){return a.f<<8|a.D}function Yb(a,b){a.f=b>>8&255;a.D=b&255}function H(a){return a.g<<8|a.h}
@ -84,7 +84,7 @@ function $b(a,b){a.u=a.b^b;return a.o=(a.l=a.b+b+(a.l&256?1:0))&255}function ac(
l.ba=function(a,b){this.i.ba(a,b)};function O(a){var b=a.J(a.m);F(a,a.m+1);return b}function P(a){var b=db(a.i,a.m);F(a,a.m+2);return b}function Q(a){var b=db(a.i,a.s);a.s=a.s+2&65535;return b}function R(a,b){a.s=a.s-2&65535;fb(a.i,a.s,b)}function gc(a){if(a.a&&a.A&255&&a.B&512){for(var b=0;8>b&&!(a.A&1<<b);b++);a.A&=~(0>b?255:1<<b);a.B&=-513;a.A&=-257;a.Ma[199|b<<3].call(a)}return a.A&256?(Lb(a),!1):!0}function hc(a,b){a.A|=1<<b;a.B&512&&Lb(a)}
function T(a,b,c,d){d=d||2;a.v[b]&&(void 0===c&&(a.j.error=!0,a.K("Value for "+b+" is invalid"),Eb(a)),c=!a.j.pa||a.j.Eb?p(c,d):"--------".substr(0,d),a.v[b].textContent!=c&&(a.v[b].textContent=c))}
l.ia=function(a){this.Oa&&(a||!this.j.pa||this.j.Eb)&&(T(this,"A",this.b),T(this,"B",this.c),T(this,"C",this.C),T(this,"BC",Vb(this),4),T(this,"D",this.f),T(this,"E",this.D),T(this,"DE",Xb(this),4),T(this,"H",this.g),T(this,"L",this.h),T(this,"HL",H(this),4),T(this,"SP",this.s,4),T(this,"PC",this.m,4),a=Ub(this),T(this,"PS",a,4),T(this,"IF",a&512?1:0,1),T(this,"SF",a&128?1:0,1),T(this,"ZF",a&64?1:0,1),T(this,"AF",a&16?1:0,1),T(this,"PF",a&4?1:0,1),T(this,"CF",a&1?1:0,1));if(a=this.v.speed)a.textContent=
this.j.pa&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};l.Mb=function(a){this.j.complete=!0;this.j.Tc=!1;this.j.Lb=!1;this.V=this.a=a;if(gc(this)){do this.Ma[O(this)].call(this);while(0<this.a)}return this.j.complete?this.V-this.a:void 0===this.j.complete?0:-1};Aa(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ob(d);Qa(d,c)}});function ic(){this.a-=4}function jc(){F(this,P(this));this.a-=10}function kc(){F(this,Q(this));this.a-=10}
this.j.pa&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};l.Mb=function(a){this.j.complete=!0;this.j.Tc=!1;this.j.Lb=!1;this.V=this.a=a;if(gc(this)){do this.Ma[O(this)].call(this);while(0<this.a)}return this.j.complete?this.V-this.a:void 0===this.j.complete?0:-1};Aa(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Nb(d);Qa(d,c)}});function ic(){this.a-=4}function jc(){F(this,P(this));this.a-=10}function kc(){F(this,Q(this));this.a-=10}
function lc(){var a=P(this);R(this,this.m);F(this,a);this.a-=17}
var Pb=[ic,function(){Wb(this,P(this));this.a-=10},function(){this.ba(Vb(this),this.b);this.a-=7},function(){Wb(this,Vb(this)+1);this.a-=5},function(){this.c=cc(this,this.c);this.a-=5},function(){this.c=bc(this,this.c);this.a-=5},function(){this.c=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;L(this,a&256);this.a-=4},ic,function(){var a;J(this,a=H(this)+Vb(this));L(this,a>>8&256);this.a-=10},function(){this.b=this.J(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5},
function(){this.C=cc(this,this.C);this.a-=5},function(){this.C=bc(this,this.C);this.a-=5},function(){this.C=O(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;L(this,a);this.a-=4},ic,function(){Yb(this,P(this));this.a-=10},function(){this.ba(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=O(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|K(this);
@ -110,14 +110,14 @@ function(){var a=Q(this);R(this,H(this));J(this,a);this.a-=18},function(){var a=
P(this);Zb(this)&&(R(this,this.m),F(this,a),this.a-=6);this.a-=11},lc,function(){this.b=fc(this,O(this));this.a-=7},function(){R(this,this.m);F(this,40);this.a-=11},function(){this.o&128||(F(this,Q(this)),this.a-=6);this.a-=5},function(){var a=Q(this);Sb(this,a&255|this.B&-256);this.b=a>>8;this.a-=10},function(){var a=P(this);this.o&128||F(this,a);this.a-=10},function(){this.B&=-513;this.a-=4},function(){var a=P(this);this.o&128||(R(this,this.m),F(this,a),this.a-=6);this.a-=11},function(){R(this,
Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,O(this));this.a-=7},function(){R(this,this.m);F(this,48);this.a-=11},function(){this.o&128&&(F(this,Q(this)),this.a-=6);this.a-=5},function(){this.s=H(this)&65535;this.a-=5},function(){var a=P(this);this.o&128&&F(this,a);this.a-=10},function(){this.B|=512;this.a-=4;gc(this)},function(){var a=P(this);this.o&128&&(R(this,this.m),F(this,a),this.a-=6);this.a-=11},lc,function(){N(this,O(this));this.a-=7},function(){R(this,this.m);F(this,56);
this.a-=11}];function U(a){r.call(this,"ChipSet",a,U);var b=a.model;b&&!mc[b]&&Ca("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(U);
var V={ca:1978.1,Fc:{da:0,Zd:1,ce:16,je:32,se:64,re:128,Ka:14},Da:{da:1,Vb:1,yc:2,uc:4,vc:16,wc:32,xc:64,Ka:8},Gc:{da:2,Yd:3,Be:4,$d:8,ne:16,oe:32,pe:64,ae:128,Ka:0},we:{da:3},ue:{da:2,ke:7},ye:{da:3,Ce:1,xe:2,qe:4,he:8,be:16,td:32},ve:{da:4},ze:{da:5,de:1,ee:2,fe:4,ge:8,De:16}},X={ca:100,ka:{da:66,Bb:1,qc:2,rc:4,me:8,le:16,yb:32,xb:64,tb:128},Tb:{da:66,INIT:0},Aa:{da:194,wd:0,rb:16,Ac:32,zb:48,cc:0,dc:32},Xa:{da:162,te:0,fc:0,bc:0,ec:0,ac:0},na:{ie:{da:98},Ga:{Qb:0,Pb:1,Dc:2,Lc:4,Wb:5,Bc:6,Ae:7},
Za:16383}},mc={SI1978:V,VT100:X};U.prototype.U=function(){return!1};U.prototype.ra=function(a,b,c,d){this.i=b;this.a=c;this.N=d;this.w=a;this.l=C(a,"Keyboard");this.h=C(a,"SerialPort");this.video=C(a,"Video");hb(b,this,this.c.fb);jb(b,this,this.c.gb)};U.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};U.prototype.ha=function(a){return a?this.save():!0};V.INIT=[[V.Fc.Ka,V.Da.Ka,V.Gc.Ka,0,0,0,0]];
var V={ca:1978.1,Fc:{da:0,Zd:1,ce:16,je:32,se:64,re:128,Ka:14},Ca:{da:1,Vb:1,yc:2,uc:4,vc:16,wc:32,xc:64,Ka:8},Gc:{da:2,Yd:3,Be:4,$d:8,ne:16,oe:32,pe:64,ae:128,Ka:0},we:{da:3},ue:{da:2,ke:7},ye:{da:3,Ce:1,xe:2,qe:4,he:8,be:16,td:32},ve:{da:4},ze:{da:5,de:1,ee:2,fe:4,ge:8,De:16}},X={ca:100,ka:{da:66,Bb:1,qc:2,rc:4,me:8,le:16,yb:32,xb:64,tb:128},Tb:{da:66,INIT:0},Aa:{da:194,wd:0,rb:16,Ac:32,zb:48,cc:0,dc:32},Xa:{da:162,te:0,fc:0,bc:0,ec:0,ac:0},na:{ie:{da:98},Fa:{Qb:0,Pb:1,Dc:2,Lc:4,Wb:5,Bc:6,Ae:7},
Za:16383}},mc={SI1978:V,VT100:X};U.prototype.U=function(){return!1};U.prototype.ra=function(a,b,c,d){this.i=b;this.a=c;this.N=d;this.w=a;this.l=C(a,"Keyboard");this.h=C(a,"SerialPort");this.video=C(a,"Video");hb(b,this,this.c.fb);jb(b,this,this.c.gb)};U.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};U.prototype.ha=function(a){return a?this.save():!0};V.INIT=[[V.Fc.Ka,V.Ca.Ka,V.Gc.Ka,0,0,0,0]];
X.INIT=[[X.Tb.INIT,X.ka.qc|X.ka.rc],[X.Aa.cc,X.Aa.dc],[X.Xa.fc,X.Xa.bc,X.Xa.ec,X.Xa.ac],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=U.prototype;l.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.K("reset error")};
l.save=function(){var a=new G(this);switch(this.c.ca){case V.ca:a.set(0,[this.W,this.g,this.Z,this.F,this.H,this.T,this.V]);break;case X.ca:a.set(0,[this.M,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.P]),a.set(3,[this.B,this.b,this.A,this.L,this.m])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ca){case V.ca:return this.W=b[0],this.g=b[1],this.Z=b[2],this.F=b[3],this.H=b[4],this.T=b[5],this.V=b[6],!0;case X.ca:return this.M=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.P=b[3],b=a[3],this.B=b[0],this.b=b[1],this.A=b[2],this.L=b[3],this.m=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Yc=function(){return this.W};l.Zc=function(){return this.g};l.$c=function(){return this.Z};
l.Xc=function(){return this.F>>8-this.H&255};l.fd=function(a,b){this.H=b};l.hd=function(a,b){this.T=b};l.gd=function(a,b){this.F=b<<8|this.F>>8};l.jd=function(a,b){this.V=b};l.kd=function(){};function nc(a){var b=0,c=0,d=~a.B;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.ad=function(){var a=this.u,a=a&~X.ka.xb;if((Hb(this.a)&64)<<1&&(a|=X.ka.xb,a!=this.u)){var b,c;b=this.A&1;switch(this.A>>1&7){case X.na.Ga.Pb:this.B=this.B<<1|b;break;case X.na.Ga.Wb:b=nc(this);this.m[b]=X.na.Za;break;case X.na.Ga.Qb:this.b=this.b<<1|b;break;case X.na.Ga.Lc:b=nc(this);c=this.b&X.na.Za;this.m[b]=c;break;case X.na.Ga.Bc:b=nc(this);c=this.m[b];null==c&&(c=X.na.Za);this.b=c;break;case X.na.Ga.Dc:this.b<<=1,this.L=this.b&X.na.Za+1}}a&=~X.ka.yb;this.L&&(a|=X.ka.yb);a&=~X.ka.tb;if(b=this.l){b=
l.ad=function(){var a=this.u,a=a&~X.ka.xb;if((Hb(this.a)&64)<<1&&(a|=X.ka.xb,a!=this.u)){var b,c;b=this.A&1;switch(this.A>>1&7){case X.na.Fa.Pb:this.B=this.B<<1|b;break;case X.na.Fa.Wb:b=nc(this);this.m[b]=X.na.Za;break;case X.na.Fa.Qb:this.b=this.b<<1|b;break;case X.na.Fa.Lc:b=nc(this);c=this.b&X.na.Za;this.m[b]=c;break;case X.na.Fa.Bc:b=nc(this);c=this.m[b];null==c&&(c=X.na.Za);this.b=c;break;case X.na.Fa.Dc:this.b<<=1,this.L=this.b&X.na.Za+1}}a&=~X.ka.yb;this.L&&(a|=X.ka.yb);a&=~X.ka.tb;if(b=this.l){b=
this.l;if(c=b.g)c=b.a,c=Hb(b.a)>=b.o+c.ma*c.I/1E3*1.2731488;c&&(b.g=!1);b=!b.g}b&&(a|=X.ka.tb);a&=~X.ka.Bb;this.h&&this.h.X&1&&(a|=X.ka.Bb);return this.u=a};l.ld=function(a,b){this.M=b};l.od=function(a,b){this.A=b};l.nd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.qa!==a&&((b.qa=a)?Mb(b,!0):b.ta=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.P=a}};
l.md=function(a,b){b&X.Aa.Ac?(b&=X.Aa.zb,this.s!=b&&(this.s=b,this.video&&(this.video.Jb=this.s==X.Aa.zb?50:60))):(b&=X.Aa.rb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==X.Aa.rb?132:80,a.G=b,a.S=a.Ba,80<b&&a.S--,oc(a)&&pc(a))))};V.fb={0:U.prototype.Yc,1:U.prototype.Zc,2:U.prototype.$c,3:U.prototype.Xc};V.gb={2:U.prototype.fd,3:U.prototype.hd,4:U.prototype.gd,5:U.prototype.jd,6:U.prototype.kd};X.fb={66:U.prototype.ad};X.gb={66:U.prototype.ld,98:U.prototype.od,162:U.prototype.nd,194:U.prototype.md};
Aa(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new U(d);Qa(d,c)}});function qc(a){r.call(this,"ROM",a,qc);this.b=null;this.h=a.addr;this.c=a.size;this.g=a.alias;this.f=a.file;this.l=ca(this.f);if(this.f){a=this.f;var b=da(this.l);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){rc(c,a,b,f)})}}w(qc);qc.prototype.ra=function(a,b,c,d){this.i=b;this.a=c;this.N=d;sc(this)};
@ -126,29 +126,28 @@ function rc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);sc(a)}}
function sc(a){if(!Ta(a))if(!a.f)B(a);else if(a.b&&a.i){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+p(a.b.length,8,!0)+") does not match specified size ("+p(a.c,8,!0)+")";a.j.error=!0;a.K(b)}else{b=a.h;if($a(a.i,b,a.c,pb)){var c;for(c=0;c<a.b.length;c++)eb(a.i,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.i,g=d.c,h=[],k=d.h>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.c;f=d.i;
d=d.c;g=0;for(e>>>=f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.c}}delete a.b}}B(a)}}Aa(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new qc(d);Qa(d,c)}});
function tc(a){r.call(this,"RAM",a,tc);this.wa=this.c=null;this.g=a.addr;this.h=a.size;this.Ea=a.load;this.xa=a.exec;this.f=!1;this.b=a.file;this.l=ca(this.b);if(this.b){a=this.b;var b=da(this.l);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){f?c.K("Unable to load RAM resource (error "+f+": "+a+")"):(Ma(c.za,a,b),(a=na(a,b))?(c.c=a.aa,c.wa=a.wa,null==c.Ea&&(c.Ea=a.Ea),null==c.xa&&(c.xa=a.xa)):c.b=null,uc(c))})}}w(tc);
function tc(a){r.call(this,"RAM",a,tc);this.wa=this.c=null;this.g=a.addr;this.h=a.size;this.Da=a.load;this.xa=a.exec;this.f=!1;this.b=a.file;this.l=ca(this.b);if(this.b){a=this.b;var b=da(this.l);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){f?c.K("Unable to load RAM resource (error "+f+": "+a+")"):(Ma(c.za,a,b),(a=na(a,b))?(c.c=a.aa,c.wa=a.wa,null==c.Da&&(c.Da=a.Da),null==c.xa&&(c.xa=a.xa)):c.b=null,uc(c))})}}w(tc);
var vc=[0,5];tc.prototype.ra=function(a,b,c,d){this.i=b;this.a=c;this.N=d;uc(this)};tc.prototype.fa=function(){return!0};tc.prototype.ha=function(){return!0};
function uc(a){!a.f&&a.h&&$a(a.i,a.g,a.h,1)&&(a.f=!0);if(!Ta(a)){if(!a.f)q("No RAM allocated");else if(a.b){if(!a.c||!a.i)return;var b=a.g;null!==a.Ea&&(b=a.Ea);for(var c=0;c<a.c.length;c++)eb(a.i,b+c,a.c[c]);if(null!==a.xa){if(256==a.xa){for(c=0;c<vc.length;c++)eb(a.i,vc[c],118);Rb(a.a,function(a){return function(b){if(0<=vc.indexOf(b)){var c=!1,d=a.a,e=a.N;if(5==b)switch(c=!0,d.C){case 2:wc(a,String.fromCharCode(d.D));break;case 9:for(var k=Xb(d),n="",v=255;v--;){var z=a.a.J(k++);if(36==z)break;
function uc(a){!a.f&&a.h&&$a(a.i,a.g,a.h,1)&&(a.f=!0);if(!Ta(a)){if(!a.f)q("No RAM allocated");else if(a.b){if(!a.c||!a.i)return;var b=a.g;null!==a.Da&&(b=a.Da);for(var c=0;c<a.c.length;c++)eb(a.i,b+c,a.c[c]);if(null!==a.xa){if(256==a.xa){for(c=0;c<vc.length;c++)eb(a.i,vc[c],118);Rb(a.a,function(a){return function(b){if(0<=vc.indexOf(b)){var c=!1,d=a.a,e=a.N;if(5==b)switch(c=!0,d.C){case 2:wc(a,String.fromCharCode(d.D));break;case 9:for(var k=Xb(d),n="",v=255;v--;){var z=a.a.J(k++);if(36==z)break;
n+=String.fromCharCode(z)}wc(a,n);break;default:c=!1}c?kc.call(d):e&&(a.ea("\nCP/M vector "+p(b,4,!0)),F(d,b),Eb(e));b=!0}else b=!1;return b}}(a))}Tb(a.a,a.xa)}delete a.c}B(a)}}tc.prototype.reset=function(){};function wc(a,b){b=b.replace(/\r/g,"");a.ya&&(a.ya.value+=b,a.ya.scrollTop=a.ya.scrollHeight)}Aa(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new tc(d);Qa(d,c)}});
function xc(a){r.call(this,"Keyboard",a,xc);(a=a.model)&&!yc[a]&&Ca("Unrecognized Keyboard8080 model: "+a);this.b=yc[a]||{};this.reset();B(this)}w(xc);var zc={};zc[m.Wa]=37;zc[m.sb]=39;zc[m.ub]=32;
var Ac={ca:1978.1,jb:{},qb:zc,La:{},Ca:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={},Z={ca:100,jb:(Y[8]=3,Y[m.tc]=5,Y[m.sc]=6,Y[m.Nc]=7,Y[m.Hc]=8,Y[m.Kc]=9,Y[m.Q]=10,Y[39]=16,Y[221]=20,Y[219]=21,Y[m.$b]=22,Y[m.Ic]=23,Y[m.zc]=24,Y[m.E]=25,Y[49]=26,Y[37]=32,Y[40]=34,Y[117]=35,Y[19]=35,Y[192]=36,Y[189]=37,Y[57]=38,Y[55]=39,Y[52]=40,Y[51]=41,Y[27]=42,Y[38]=48,Y[114]=49,Y[112]=50,Y[46]=51,Y[187]=52,Y[48]=53,Y[56]=54,Y[54]=55,Y[53]=56,Y[50]=57,Y[9]=58,Y[103]=64,Y[115]=65,Y[113]=66,Y[96]=67,Y[118]=
68,Y[220]=69,Y[m.ub]=70,Y[m.hc]=71,Y[m.Yb]=72,Y[m.Xb]=73,Y[m.Wa]=74,Y[104]=80,Y[2013]=81,Y[98]=82,Y[97]=83,Y[222]=85,Y[186]=86,Y[m.gc]=87,Y[m.Zb]=88,Y[m.sb]=89,Y[m.Cc]=90,Y[110]=96,Y[116]=97,Y[101]=98,Y[100]=99,Y[13]=100,Y[190]=101,Y[188]=102,Y[m.pc]=103,Y[m.Sb]=104,Y[m.Mc]=105,Y[119]=106,Y[105]=112,Y[99]=113,Y[102]=114,Y[109]=115,Y[191]=117,Y[m.oc]=118,Y[m[" "]]=119,Y[m.Jc]=120,Y[m.Ub]=121,Y[m.kb]=122,Y[120]=123,Y[17]=124,Y[16]=125,Y[20]=126,Y),qb:{},La:{},Ca:{"num-comma":116,"break":117,"line-feed":118,
var Ac={ca:1978.1,jb:{},qb:zc,La:{},Ia:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={},Z={ca:100,jb:(Y[8]=3,Y[m.tc]=5,Y[m.sc]=6,Y[m.Nc]=7,Y[m.Hc]=8,Y[m.Kc]=9,Y[m.Q]=10,Y[39]=16,Y[221]=20,Y[219]=21,Y[m.$b]=22,Y[m.Ic]=23,Y[m.zc]=24,Y[m.E]=25,Y[49]=26,Y[37]=32,Y[40]=34,Y[117]=35,Y[19]=35,Y[192]=36,Y[189]=37,Y[57]=38,Y[55]=39,Y[52]=40,Y[51]=41,Y[27]=42,Y[38]=48,Y[114]=49,Y[112]=50,Y[46]=51,Y[187]=52,Y[48]=53,Y[56]=54,Y[54]=55,Y[53]=56,Y[50]=57,Y[9]=58,Y[103]=64,Y[115]=65,Y[113]=66,Y[96]=67,Y[118]=
68,Y[220]=69,Y[m.ub]=70,Y[m.hc]=71,Y[m.Yb]=72,Y[m.Xb]=73,Y[m.Wa]=74,Y[104]=80,Y[2013]=81,Y[98]=82,Y[97]=83,Y[222]=85,Y[186]=86,Y[m.gc]=87,Y[m.Zb]=88,Y[m.sb]=89,Y[m.Cc]=90,Y[110]=96,Y[116]=97,Y[101]=98,Y[100]=99,Y[13]=100,Y[190]=101,Y[188]=102,Y[m.pc]=103,Y[m.Sb]=104,Y[m.Mc]=105,Y[119]=106,Y[105]=112,Y[99]=113,Y[102]=114,Y[109]=115,Y[191]=117,Y[m.oc]=118,Y[m[" "]]=119,Y[m.Jc]=120,Y[m.Ub]=121,Y[m.kb]=122,Y[120]=123,Y[17]=124,Y[16]=125,Y[20]=126,Y),qb:{},La:{},Ia:{"num-comma":116,"break":117,"line-feed":118,
"no-scroll":119,setup:120},Rb:{da:130,INIT:127},ga:{da:130,mc:1,lc:2,kc:4,jc:8,nc:16,wb:32,vb:63,Ec:64,vd:128,INIT:0},ic:127};Z.La={l4:Z.ga.mc,l3:Z.ga.lc,l2:Z.ga.kc,l1:Z.ga.jc,locked:Z.ga.nc,local:Z.ga.wb,online:~Z.ga.wb,"caps-lock":512};var yc={SI1978:Ac,VT100:Z};
xc.prototype.U=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.v[e]){if("led"==a&&this.b.La[b])return this.v[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Cc(d,a,!0)},c.onkeyup=function(a){return Cc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode;a>=m.Wa&&a<=m.kb?d.c&515||(d.c|=512,Dc(d,20,!0),Ec(d)):a>=m.Pc&&a<=m.z&&d.c&512&&(d.c&=-513,Dc(d,20,!1),Ec(d));return!0},c.onpaste=function(a){a:{if(d.h&&d.h.Fa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),
a=a.clipboardData||window.clipboardData)){Fc(d.h,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ca&&void 0!==this.b.Ca[b])return this.v[e]=c,a=function(a,b){return function(c){c.preventDefault&&c.preventDefault();Dc(a,b,!0)}}(this,this.b.Ca[b]),b=function(a,b){return function(){Dc(a,b,!1)}}(this,this.b.Ca[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};
xc.prototype.ra=function(a,b,c,d){this.w=a;this.a=c;this.N=d;var e=this;this.u=Jb(this.a,function(){Gc(e)});this.L=C(a,"ChipSet");this.h=C(a,"SerialPort");hb(b,this,this.b.fb);jb(b,this,this.b.gb)};xc.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};xc.prototype.ha=function(a){return a?this.save():!0};Z.INIT=[[Z.ga.INIT,Z.Rb.INIT,!1,0,-1]];l=xc.prototype;l.reset=function(){this.i=[];this.c=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.K("reset error")};
l.save=function(){var a=new G(this);switch(this.b.ca){case Z.ca:a.set(0,[this.m,this.l,this.g,this.o,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.ca){case Ac.ca:return!0;case Z.ca:return this.m=b[0],Ec(this,this.m&Z.ga.vb),this.l=b[1],this.g=b[2],this.o=b[3],this.f=b[4],!0}return!1};
function Ec(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.b.La)if(c="led-"+d,c=a.v[c]){var e=a.b.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.v["led-caps-lock"])c.style.backgroundColor=a.c&512?"#"+p(65280,6):"#000000"}
function Cc(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.c=c?a.c|g:a.c&~g);var h;a:if(e=a.b.qb[e]||e,a.b.jb[e])h=e;else{for(h in a.b.Ca)if(a.b.Ca[h]===e)break a;h=null}h&&!b.metaKey&&(d=!1,a.c&4144&&(13==h?(h=118,d=!0):8==h&&(h=46,d=!0),d&&(a.c=c?a.c|4096:a.c&-4097)),d=Dc(a,h,c),(!(h>=m.Wa&&h<=m.kb)||a.c|12)&&b.preventDefault&&b.preventDefault());return d}
function Dc(a,b,c){var d,e;a:{for(e=0;e<a.i.length;e++)if(a.i[e].pb==b)break a;e=-1}if(c)d=d||!1,0>e?a.i.push({pb:b,mb:Date.now(),cb:d}):(a.i[e].mb=Date.now(),a.i[e].cb=d);else if(0<=e){if(!a.i[e].cb&&(d=a.i[e].mb)&&50>Date.now()-d)return a.i[e].cb=!0,Gc(a),!0;a.i.splice(e,1)}if(a.L){d=0;switch(b){case "1p":d=V.Da.uc;break;case "2p":d=V.Da.yc;break;case "coin":d=V.Da.Vb;break;case "left":d=V.Da.wc;break;case "right":d=V.Da.xc;break;case "fire":d=V.Da.vc}d&&(a=a.L,b=d,a.g&=~b,c&&(a.g|=b))}return!0}
xc.prototype.U=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.v[e]){if("led"==a&&this.b.La[b])return this.v[e]=c,!0;switch(b){case "kbd":case "screen":return c.onkeydown=function(a){return Cc(d,a,!0)},c.onkeyup=function(a){return Cc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode;a>=m.Wa&&a<=m.kb?d.c&515||(d.c|=512,Dc(d,20,!0),Ec(d)):a>=m.Pc&&a<=m.z&&d.c&512&&(d.c&=-513,Dc(d,20,!1),Ec(d));return!0},c.onpaste=function(a){a:{if(d.h&&d.h.Ea&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&
a.preventDefault(),a=a.clipboardData||window.clipboardData)){Fc(d.h,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ia&&void 0!==this.b.Ia[b])return this.v[e]=c,c.onclick=function(a,b){return function(c){c.preventDefault&&c.preventDefault();Dc(a,b,!0,!0)}}(this,this.b.Ia[b]),!0}}return!1};xc.prototype.ra=function(a,b,c,d){this.w=a;this.a=c;this.N=d;var e=this;this.u=Jb(this.a,function(){Gc(e)});this.L=C(a,"ChipSet");this.h=C(a,"SerialPort");hb(b,this,this.b.fb);jb(b,this,this.b.gb)};
xc.prototype.fa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};xc.prototype.ha=function(a){return a?this.save():!0};Z.INIT=[[Z.ga.INIT,Z.Rb.INIT,!1,0,-1]];l=xc.prototype;l.reset=function(){this.i=[];this.c=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.K("reset error")};l.save=function(){var a=new G(this);switch(this.b.ca){case Z.ca:a.set(0,[this.m,this.l,this.g,this.o,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.ca){case Ac.ca:return!0;case Z.ca:return this.m=b[0],Ec(this,this.m&Z.ga.vb),this.l=b[1],this.g=b[2],this.o=b[3],this.f=b[4],!0}return!1};function Ec(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.b.La)if(c="led-"+d,c=a.v[c]){var e=a.b.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.v["led-caps-lock"])c.style.backgroundColor=a.c&512?"#"+p(65280,6):"#000000"}
function Cc(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.c=c?a.c|g:a.c&~g);var h;a:if(e=a.b.qb[e]||e,a.b.jb[e])h=e;else{for(h in a.b.Ia)if(a.b.Ia[h]===e)break a;h=null}h&&!b.metaKey&&(d=!1,a.c&4144&&(13==h?(h=118,d=!0):8==h&&(h=46,d=!0),d&&(a.c=c?a.c|4096:a.c&-4097)),d=Dc(a,h,c),(!(h>=m.Wa&&h<=m.kb)||a.c|12)&&b.preventDefault&&b.preventDefault());return d}
function Dc(a,b,c,d){var e;a:{for(e=0;e<a.i.length;e++)if(a.i[e].pb==b)break a;e=-1}if(c)0>e?a.i.push({pb:b,mb:Date.now(),cb:d||!1}):(a.i[e].mb=Date.now(),a.i[e].cb=d||!1),d&&Gc(a);else if(0<=e){if(!a.i[e].cb&&(d=a.i[e].mb)&&50>Date.now()-d)return a.i[e].cb=!0,Gc(a),!0;a.i.splice(e,1)}if(a.L){d=0;switch(b){case "1p":d=V.Ca.uc;break;case "2p":d=V.Ca.yc;break;case "coin":d=V.Ca.Vb;break;case "left":d=V.Ca.wc;break;case "right":d=V.Ca.xc;break;case "fire":d=V.Ca.vc}d&&(a=a.L,b=d,a.g&=~b,c&&(a.g|=b))}return!0}
function Gc(a){for(var b=0,c=-1;b<a.i.length;){if(a.i[b].cb){var d=a.i[b].pb,e=50-(Date.now()-a.i[b].mb);if(0<e){if(0>c||c>e)c=e}else{Dc(a,d,!1);b=0;continue}}b++}0<=c&&Kb(a.a,a.u,c)}l.bd=function(){var a=this.l;0<=this.f&&(this.f<this.i.length?(a=this.i[this.f],this.f++,a=Z.jb[a.pb],a&128&&(a&=127)):(this.f=-1,a=Z.ic),this.l=a,hc(this.a,1));return a};l.pd=function(a,b){this.m=b;this.g=!0;this.o=Hb(this.a);Ec(this,b&Z.ga.vb);b&Z.ga.Ec&&(this.f=0,hc(this.a,1))};Z.fb={130:xc.prototype.bd};Z.gb={130:xc.prototype.pd};
Aa(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new xc(d);Qa(d,c)}});
function Hc(a,b,c,d,e){var f=this;this.Na=ua("Gecko/");var g=["","moz","ms","webkit"];r.call(this,"Video",a,Hc);this.B=a.screenWidth;this.u=a.screenHeight;this.ja=a.bufferAddr;this.Qc=a.bufferRAM;var h=a.bufferFormat;this.T=h&&Ic[h.toUpperCase()]||Jc;this.G=a.bufferCols;this.V=a.bufferRows;this.Ba=this.S=a.cellWidth||1;this.O=a.cellHeight||1;this.W=null;this.Ma=!1;this.la=a.bufferBits||1;this.Rc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.K("unsupported buffer rotation: "+
this.c),this.c=0);this.ma=a.interruptRate;this.Cb=a.refreshRate||60;this.s=b;this.f=c;this.P=(this.Uc=d)||b||null;this.Oc=this.B;this.Ob=this.u;this.Ha=this.B/this.G|0;this.Ia=this.u/this.V|0;1<this.O&&(this.V++,this.qa=0,this.ta=!1);b=a.smoothing;(c=Ga.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.K("unsupported screen rotation: "+
this.c),this.c=0);this.ma=a.interruptRate;this.Cb=a.refreshRate||60;this.s=b;this.f=c;this.P=(this.Uc=d)||b||null;this.Oc=this.B;this.Ob=this.u;this.Ga=this.B/this.G|0;this.Ha=this.u/this.V|0;1<this.O&&(this.V++,this.qa=0,this.ta=!1);b=a.smoothing;(c=Ga.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.K("unsupported screen rotation: "+
this.g),this.g=0):(this.f.translate(0,this.u),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.u/this.B,this.B/this.u));if(this.b=e)if(this.b.Ja=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ja){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Kc(f,!!(document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement))},!1);
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Kc(f,null)},!1);break}}if(this.L=a.fontROM)"json"!=da(this.L)&&(this.L=fa()+"/api/v1/dump?file="+this.L+"&format=bytes"),ma(this.L,null,!0,function(a,b,c){Lc(f,a,b,c)});this.va={}}w(Hc);var Jc=0,Ic={SI1978:1,VT100:2};
function oc(a){a.m=a.G*a.S;a.F=a.V*a.O;var b=a.m,c=a.F;a.c&&(b=a.F,c=a.m);a.A=0;if(!a.Qc&&(a.A=(a.m*a.la>>3)*a.F,!$a(a.i,a.ja,a.A,3)))return!1;a.A?(a.Oa=a.f.createImageData(b,c),a.Qa=16/a.la|0,Mc(a,a.A>>1)):Mc(a,(a.G+1)*a.V);a.o=document.createElement("canvas");a.o.width=b;a.o.height=c;a.sa=a.o.getContext("2d");a.H={};a.R=1<<a.la;a.I=Array(a.R+2);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];1==a.T&&(a.I[a.R+0]=[255,255,0,255],a.I[a.R+1]=[0,255,0,255]);2==a.T&&(a.Jb=60,a.ua=!1,a.Z=Array(a.G));return!0}
Hc.prototype.ra=function(a,b,c,d){this.w=a;this.i=b;this.a=c;this.N=d;oc(this);if(this.l=C(a,"Keyboard")){for(var e in this.va)this.l.U("led",e,this.va[e]);this.s&&this.l.U(this.Uc?"textarea":"canvas","kbd",this.P)}var f=this;this.Db=Jb(this.a,function(){Mb(f)});Kb(this.a,this.Db,1E3/Math.max(this.Cb,this.ma));this.$a=0;this.L||B(this)};
Hc.prototype.ra=function(a,b,c,d){this.w=a;this.i=b;this.a=c;this.N=d;oc(this);if(this.l=C(a,"Keyboard")){for(var e in this.va)this.l.U("led",e,this.va[e]);this.s&&this.l.U(this.Uc?"textarea":"canvas","screen",this.P)}var f=this;this.Db=Jb(this.a,function(){Mb(f)});Kb(this.a,this.Db,1E3/Math.max(this.Cb,this.ma));this.$a=0;this.L||B(this)};
function Lc(a,b,c,d){if(d)a.K("Unable to load font ROM (error "+d+": "+b+")");else{Ma(a.za,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.W=f,pc(a);else{a.K("Unrecognized font data length ("+f.length+")");return}}catch(g){a.K("Font ROM data error: "+g.message);return}(a.f||a.N)&&B(a)}}
function pc(a){a.W&&(a.Ma=2==a.T,a.H[96]=[Nc(a,a.S,a.O),Nc(a,a.S,a.O,a.ua)],a.H[64]=[Nc(a,2*a.S,a.O),Nc(a,2*a.S,a.O,a.ua)],a.H[32]=a.H[0]=[Nc(a,2*a.S,2*a.O),Nc(a,2*a.S,2*a.O,a.ua)])}
function Nc(a,b,c,d){var e=8>=a.Ba?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,k={S:b,O:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var n=k.context.createImageData(b,c),v=0;v<g;v++){for(var z=0,I=z;z<a.O;z++)for(var x=v*e+(f+z&e-1),x=d&&8==z?255:a.W[x],t=0;t<c/a.O;t++){for(var E=0,S=0,W=S;S<a.S;S++){for(var ba=x&128>>(7<S?7:S),E=a.Ma&&!ba&&E?E:ba,ta=0;ta<b/a.S;ta++)h&&(E=!E),Oc(a,n,W,I,E?1:0),W++;E=ba}I++}k.context.putImageData(n,
@ -156,20 +155,20 @@ function Nc(a,b,c,d){var e=8>=a.Ba?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,k={S:
Hc.prototype.Ja=function(){var a=!1;if(this.b){if(this.b.Ja){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.B/this.u;b>c&&(a=Math.round(c/b*100)+"%")}this.Na?(this.s.style.width=a,this.s.style.width=a,this.s.style.display="block",this.s.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ja();a=!0}this.P&&this.P.focus()}return a};
function Kc(a,b){!b&&a.b&&(a.Na?a.s.style.width=a.s.style.height="":a.b.style.width=a.b.style.height="")}function Mc(a,b){a.Pa=b;a.M=!1;if(void 0===a.h||a.h.length!=a.Pa)a.h=Array(a.Pa)}function Oc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.T&&(208<=c&&236>c?e=a.R+0:28<=c&&72>c&&(e=a.R+1));a=a.I[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 Mb(a,b){var c=!0;if(!b){a.ma&&(120==a.ma?a.$a&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.M&&a.A){for(var d=a.i,e=a.A,f=!0,g=a.ja>>>d.i;0<e&&g<d.b.length;)d.b[g].oa&&(d.b[g].oa=f=!1,d.b[g].Gb=!0),e-=d.c,g++;f&&(c=!1)}Kb(a.a,a.Db,1E3/Math.max(a.Cb,a.ma));a.$a++}if(c)if(1<a.S)switch(a.T){case 2:for(var c=a.ja,d=-1,e=0,f=60==a.Jb?2:5,h=g=0,k=-1;e<a.V;){var n=0,v=c,z=d,I=a.G;for(96!=z&&(I>>=1);;){var x=cb(a.i,v++);if(127==(x&127)){var t=cb(a.i,v++),d=t&96,c=(t&15)<<8|cb(a.i,v),c=c+(t&16?
8192:16384);break}if(n<I)a.Z[n++]=x;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=z)for(v=a.M&&a.h[g]==I,a.h[g++]=I,I=0;I<n;I++){x=a.Z[I];if(!v||x!==a.h[g]){a.h[k=g]=x;var t=a,E=a.sa,S=x&127;if(x=t.H[z][x&128?1:0]){var W=(S&15)*x.S,S=(S>>4)*x.O,ba,ta,Sa,ib,Bc=x.S,Nb=x.O;E?(ba=I*t.S,ta=e*t.O,Sa=t.S,ib=t.O):(ba=I*t.Ha,ta=e*t.Ia,Sa=t.Ha,ib=t.Ia);x.S>t.S&&(ba*=2,Sa*=2);x.O>t.O&&(z||(S+=t.O),Nb=t.O);E?E.drawImage(x.canvas,W,S,Bc,Nb,ba,ta,Sa,ib):(ba+=0,ta+=0,t.f.drawImage(x.canvas,W,S,Bc,
Nb,ba,ta,Sa,ib))}h++}g++}e++}}a.M=!0;!b&&a.ta&&1==h&&(a.h[k]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.o,0,a.qa,a.m,a.F-a.O,0,0,a.Oc,a.Ob)}else{e=a.ja;f=e+a.A;k=h=g=0;b=a.m;n=0;c=a.F;z=d=0;v=a.la;I=(1<<v)-1;a.Rc&&(v=-v,z=16+v);for(;e<f;){t=a.i;E=e;x=E&t.f;W=(E&t.g)>>>t.i;t=x!=t.f?t.b[W].Kb(x,E):t.b[W++].hb(x,E)|t.b[W&t.m].hb(0,E+1)<<8;if(a.M&&t===a.h[g])h+=a.Qa;else{a.h[g]=t;(E=z)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.Qa;x--;)W=t>>E&I,Oc(a,a.Oa,h++,k,W),E+=v;h>n&&(n=h);k<c&&(c=k);k>=d&&(d=k+
8192:16384);break}if(n<I)a.Z[n++]=x;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=z)for(v=a.M&&a.h[g]==I,a.h[g++]=I,I=0;I<n;I++){x=a.Z[I];if(!v||x!==a.h[g]){a.h[k=g]=x;var t=a,E=a.sa,S=x&127;if(x=t.H[z][x&128?1:0]){var W=(S&15)*x.S,S=(S>>4)*x.O,ba,ta,Sa,ib,Bc=x.S,Ob=x.O;E?(ba=I*t.S,ta=e*t.O,Sa=t.S,ib=t.O):(ba=I*t.Ga,ta=e*t.Ha,Sa=t.Ga,ib=t.Ha);x.S>t.S&&(ba*=2,Sa*=2);x.O>t.O&&(z||(S+=t.O),Ob=t.O);E?E.drawImage(x.canvas,W,S,Bc,Ob,ba,ta,Sa,ib):(ba+=0,ta+=0,t.f.drawImage(x.canvas,W,S,Bc,
Ob,ba,ta,Sa,ib))}h++}g++}e++}}a.M=!0;!b&&a.ta&&1==h&&(a.h[k]=-1,h=0);a.ta=!1;(h||b)&&a.sa&&a.f.drawImage(a.o,0,a.qa,a.m,a.F-a.O,0,0,a.Oc,a.Ob)}else{e=a.ja;f=e+a.A;k=h=g=0;b=a.m;n=0;c=a.F;z=d=0;v=a.la;I=(1<<v)-1;a.Rc&&(v=-v,z=16+v);for(;e<f;){t=a.i;E=e;x=E&t.f;W=(E&t.g)>>>t.i;t=x!=t.f?t.b[W].Kb(x,E):t.b[W++].hb(x,E)|t.b[W&t.m].hb(0,E+1)<<8;if(a.M&&t===a.h[g])h+=a.Qa;else{a.h[g]=t;(E=z)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.Qa;x--;)W=t>>E&I,Oc(a,a.Oa,h++,k,W),E+=v;h>n&&(n=h);k<c&&(c=k);k>=d&&(d=k+
1)}e+=2;g++;if(h>=a.m&&(h=0,k++,k>a.F))break}a.M=!0;b<a.m&&(e=n-b,d-=c,a.c&&(f=b,g=e,b=c,e=d,c=a.m-(f+g),d=g),a.sa.putImageData(a.Oa,0,0,b,c,e,d),a.f.drawImage(a.o,0,0,a.o.width,a.o.height,0,0,a.B,a.u))}}
Aa(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; 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<=(window?window.navigator.userAgent:"").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||Ga.aspect);f&&.3<=f&&3.33>=f&&(za("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");ua("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Hc(d,e,g,f,c);Qa(d,c)}});
function Pc(a){this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.P=2;break;default:q("Unrecognized serial adapter #"+this.H);return}this.c=this.f=null;this.M=a.tabSize;this.G=a.charBOL;this.g=0;this.B=!1;this.o=!0;r.call(this,"SerialPort",a,Pc);var b=a.binding;if("console"==b)this.f="";else{var c;a=Qc;b&&(void 0===c&&(c="Panel"),(c=Pa(c,this.id))&&(b=c.v[b])&&this.U(null,a,b))}this.h="";this.b=this.Fa=this.ia=null;this.exports={connect:this.Ib,receiveData:this.nb,receiveStatus:this.rd}}w(Pc);
function Pc(a){this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.P=2;break;default:q("Unrecognized serial adapter #"+this.H);return}this.c=this.f=null;this.M=a.tabSize;this.G=a.charBOL;this.g=0;this.B=!1;this.o=!0;r.call(this,"SerialPort",a,Pc);var b=a.binding;if("console"==b)this.f="";else{var c;a=Qc;b&&(void 0===c&&(c="Panel"),(c=Pa(c,this.id))&&(b=c.v[b])&&this.U(null,a,b))}this.h="";this.b=this.Ea=this.ia=null;this.exports={connect:this.Ib,receiveData:this.nb,receiveStatus:this.rd}}w(Pc);
var Rc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Sc=[!1,0,0,133,142,39,238],Qc="buffer";l=Pc.prototype;
l.U=function(a,b,c,d){var e=this;switch(b){case Qc:return this.v[b]=this.c=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<b&&(b-=64),Tc(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Tc(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.v[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.nb(d);return!0},
!0}return!1};l.ra=function(a,b,c,d){this.w=a;this.i=b;this.a=c;this.N=d;var e=this;this.R=Jb(this.a,function(){e.nb()});this.T=Jb(this.a,function(){Fc(e)});this.L=C(a,"ChipSet");hb(b,this,Uc,this.I);jb(b,this,Vc,this.I);B(this)};
l.Ib=function(a){if(!this.b){var b=Ab(this.w,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ia(c[0]);if(d!=this.Ya)return;c=ia(c[1]);if(this.b=Oa(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.o);if(this.Fa=e.receiveData){this.o=a;this.ia=e.receiveStatus;this.status(this.za+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.Ib=function(a){if(!this.b){var b=Ab(this.w,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ia(c[0]);if(d!=this.Ya)return;c=ia(c[1]);if(this.b=Oa(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.o);if(this.Ea=e.receiveData){this.o=a;this.ia=e.receiveStatus;this.status(this.za+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.fa=function(a,b){if(!b)if(this.Ib(this.o),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.ha=function(a){return a?this.save():!0};l.reset=function(){Wc(this)};l.save=function(){var a=new G(this),b=0,c=[];c[b++]=this.s;c[b++]=this.A;c[b++]=this.F;c[b++]=this.X;c[b++]=this.l;c[b++]=this.m;c[b]=this.u;a.set(0,c);return a.data()};l.restore=function(a){return Wc(this,a[0])};
function Wc(a,b){var c=0;b||(b=Sc);a.s=b[c++];a.A=b[c++];a.F=b[c++];a.X=b[c++];a.l=b[c++];a.m=b[c++];a.u=b[c];return!0}function Xc(a,b){var c=a.u&b;b&15||(c>>=4);b=Rc[c];c=((a.l&12)>>2)+6;a.l&16&&c++;c+=((a.l&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Tc(a,b){return a.B||a.X&2?!1:(a.A=b,a.X|=2,hc(a.a,a.P),!0)}
l.nb=function(a){null!=a&&(this.h="number"!=typeof a?a:this.h+String.fromCharCode(a));this.h&&(Tc(this,this.h.charCodeAt(0))&&(this.h=this.h.substr(1)),this.h&&this.a&&Kb(this.a,this.R,Xc(this,15)));return!0};l.rd=function(a){this.X&=-129;a&64&&(this.X|=128)};function Fc(a,b){a.X|=5;b&&a.Fa&&a.Fa.call(a.b,b)}l.Wc=function(){var a=this.A;this.X&=-3;return a};l.Vc=function(){return this.X};
l.ed=function(a,b){this.F=b;this.X&=-6;if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Fa&&this.Fa.call(this.b,b),this.c)if(8==b)this.c.value=this.c.value.slice(0,-1),0<this.g&&this.g--;else{a=(a=13!=b&&10!=b?ja[b]:null)?"<"+a+">":String.fromCharCode(b);var c=a.length;9==b?(b=this.M||8,c=b-this.g%b,this.M&&(a=" ".slice(0,c))):13==b&&(this.g=c=0,a="\n");this.G&&!this.g&&c&&(a=String.fromCharCode(this.G)+a);this.c.value+=a;this.c.scrollTop=this.c.scrollHeight;
l.nb=function(a){null!=a&&(this.h="number"!=typeof a?a:this.h+String.fromCharCode(a));this.h&&(Tc(this,this.h.charCodeAt(0))&&(this.h=this.h.substr(1)),this.h&&this.a&&Kb(this.a,this.R,Xc(this,15)));return!0};l.rd=function(a){this.X&=-129;a&64&&(this.X|=128)};function Fc(a,b){a.X|=5;b&&a.Ea&&a.Ea.call(a.b,b)}l.Wc=function(){var a=this.A;this.X&=-3;return a};l.Vc=function(){return this.X};
l.ed=function(a,b){this.F=b;this.X&=-6;if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ea&&this.Ea.call(this.b,b),this.c)if(8==b)this.c.value=this.c.value.slice(0,-1),0<this.g&&this.g--;else{a=(a=13!=b&&10!=b?ja[b]:null)?"<"+a+">":String.fromCharCode(b);var c=a.length;9==b?(b=this.M||8,c=b-this.g%b,this.M&&(a=" ".slice(0,c))):13==b&&(this.g=c=0,a="\n");this.G&&!this.g&&c&&(a=String.fromCharCode(this.G)+a);this.c.value+=a;this.c.scrollTop=this.c.scrollHeight;
this.g+=c}else if(null!=this.f){if(10==b||1024<=this.f.length)this.ea(this.f),this.f="";10!=b&&(this.f+=String.fromCharCode(b))}this.a&&Kb(this.a,this.T,Xc(this,240))};l.dd=function(a,b){this.s?(this.ia&&(b^this.m)&34&&(a=0,a=this.o?a|(b&32?32:0)|(b&2?320:0):a|(b&32?16:0)|(b&2?1048576:0),this.ia.call(this.b,a)),this.m=b,this.m&64&&(this.s=!1)):(this.l=b,this.s=!0)};l.cd=function(a,b){this.u=b};var Uc={0:Pc.prototype.Wc,1:Pc.prototype.Vc},Vc={0:Pc.prototype.ed,1:Pc.prototype.dd,2:Pc.prototype.cd};
Aa(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Pc(d);Qa(d,c)}});
function Yc(a,b,c){r.call(this,"Computer",a,Yc);this.j.Y=!1;Zc(this,b);this.u=Ab(this,"autoPower",a);this.f=0;this.L=a.busWidth||a.buswidth;this.b=$c;this.o=null;this.w=this.F=!1;this.H=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.c=ad(this);if(this.a=Pa("CPU",this.id)){this.N=Pa("Debugger",this.id);this.l=[];for(b=null;b=C(this,"Video",b);)this.l.push(b);this.i=new Ya({id:this.za+".bus",busWidth:this.L},this.a,this.N);var d,e=Na(this.id);if((this.g=Pa("Panel",this.id))&&this.g.ya)for(b=