Improved fixup handling for better MACRO-10 support

This commit is contained in:
Jeff 2017-03-16 00:32:30 -07:00 committed by Jeff Parsons
commit 0e8e2ed4a2
12 changed files with 975 additions and 916 deletions

View file

@ -42,8 +42,8 @@ var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ca={0:"NUL"
function Ea(){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 Fa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function Ga(a,b,c,d){c=void 0===c?!1:c;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="",p;for(p in b)b.hasOwnProperty(p)&&(k&&(k+="&"),k+=p+"="+encodeURIComponent(b[p]));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 Ha(a,b){var c,d={ka:null,ra:null,Qa:null,Ia: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")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ka=e;else if(e=g.words)for(d.ka=Array(2*e.length),f=c=0;c<e.length;c++)d.ka[f++]=e[c]&255,d.ka[f++]=e[c]>>8&255;else if(e=g.longs)for(d.ka=Array(4*e.length),f=c=0;c<e.length;c++)d.ka[f++]=
e[c]&255,d.ka[f++]=e[c]>>8&255,d.ka[f++]=e[c]>>16&255,d.ka[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.ka=g;d.ka&&(d.ka.length?1==d.ka.length&&(r(d.ka[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;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ka=e)}return d}
function Ha(a,b){var c,d={la:null,ra:null,Qa:null,Ja: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")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ja=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[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;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ia(){return window?window.navigator.userAgent:""}function Ja(){if(null==Ka){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}Ka=a}return Ka}function La(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=Ia();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function Qa(a){if(!Ra){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ra=c}return Ra[a]}
function Sa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function Ta(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
@ -80,24 +80,24 @@ l.rb=function(a,b){this.K&&Db(this.K,129)&&this.K.message("attempt to write "+q(
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ue=function(a,b){this.g[a]=b;this.Ea=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var wc=0,xc=2,Tb=["NONE","RAM","ROM","VID","H/W"],vc=0,Cc=[],Bc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],Fc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(Gb)var Ac=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],zc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.la=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Jc.length;b++)(c=this.P[Jc[b]])&&this.R.ca(null,Jc[b],c);this.W=Kb(a,"ChipSet");a=Kc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Nc(a),a.fa&&(b=a.fa,a.fa=null,Oc(a,b))):this.i("No debugger detected")}Pc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Mc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.za&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.za-a.ma)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.da(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.ca=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.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.la?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ma+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.Aa/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ma+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ma=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Mc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.da(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.ca=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.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.Aa/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ka+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Sc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;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.Za()}Tc(a,a.X);a.X=0;a.V=jb();a.ea=0;Uc(a);return d}function Wc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Xc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Yc(a))}function Yc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Cb(this,!0)){if(!this.G.la){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.la=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Uc(this,!0);this.Da=0;this.Ma=jb();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.la)}catch(k){this.da();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ea=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ma=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ea+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.da=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.la){this.G.la=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.La.push(b)}l=nd.prototype;l.reset=function(){this.G.la&&this.da();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+td(this)|0};l.save=function(){var a=new ud(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,td(this)]);a.set(1,[this.S,this.ma,this.U]);a.set(2,$b(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ma=b[1];Sc(this,b[3]);a:{b=this.H;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.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.tb=function(a){if(Cb(this,!0)){if(!this.G.ma){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.ma=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Uc(this,!0);this.Da=0;this.Ma=jb();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.da();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ea=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ea+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.da=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.Ha.push(b)}l=nd.prototype;l.reset=function(){this.G.ma&&this.da();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+td(this)|0};l.save=function(){var a=new ud(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,td(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,$b(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Sc(this,b[3]);a:{b=this.H;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.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.ca=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.P[b]=c;this.ib++;a=!0;break;default:a=Ic.prototype.ca.call(this,a,b,c)}return a};function vd(a){return a.w<<8|a.A}function wd(a,b){a.w=b>>8&255;a.A=b&255}function xd(a){return a.B<<8|a.C}function yd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function zd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function Ad(a){return a.I&256?1:0}function Bd(a,b){a.I=a.I&255|b}function Cd(a){return Hb[a.L&255]?4:0}function Dd(a){return(a.L^a.O)&16?16:0}function Ed(a){return a.I&255?0:64}function Fd(a){return a.L&128?128:0}function td(a){return a.N&-214|Fd(a)|Ed(a)|Dd(a)|Cd(a)|Ad(a)}function rd(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Gd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function Hd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function Id(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function Jd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Kd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Ld(a,b){return a.L=a.I=a.O=a.g|b}function Md(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function Nd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Od(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Pd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Wb(a.H,a.j);A(a,a.j+2);return b}function Qd(a){var b=Wb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Zb(a.H,a.M,b)}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.la||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ma||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Td(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Rd(this)){do{if(b){if(Ud(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Va(function(){for(var a=rb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new nd(d);qb(d,c)}});function Vd(){this.b-=4}function Wd(){A(this,G(this));this.b-=10}
function Xd(){A(this,Qd(this));this.b-=10}function Yd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var od=[Vd,function(){wd(this,G(this));this.b-=10},function(){Pd(this,vd(this),this.g);this.b-=7},function(){wd(this,vd(this)+1);this.b-=5},function(){this.w=Kd(this,this.w);this.b-=5},function(){this.w=Jd(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Bd(this,a&256);this.b-=4},Vd,function(){var a;zd(this,a=D(this)+vd(this));Bd(this,a>>8&256);this.b-=10},function(){this.g=E(this,vd(this));this.b-=7},function(){wd(this,vd(this)-1);this.b-=
@ -109,7 +109,7 @@ Kd(this,this.F);this.b-=5},function(){this.F=Jd(this,this.F);this.b-=5},function
5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;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.D;this.b-=5},function(){this.A=this.F;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.w;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.D;this.b-=5},function(){this.B=this.F;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.w;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.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;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.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ha.length)for(var b=0;b<this.Ha.length;b++)if(this.Ha[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.da())},function(){Pd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;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.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,
this.C);this.b-=4},function(){this.g=Gd(this,this.D);this.b-=4},function(){this.g=Gd(this,this.F);this.b-=4},function(){this.g=Gd(this,E(this,D(this)));this.b-=7},function(){this.g=Gd(this,this.g);this.b-=4},function(){this.g=Hd(this,this.w);this.b-=4},function(){this.g=Hd(this,this.A);this.b-=4},function(){this.g=Hd(this,this.B);this.b-=4},function(){this.g=Hd(this,this.C);this.b-=4},function(){this.g=Hd(this,this.D);this.b-=4},function(){this.g=Hd(this,this.F);this.b-=4},function(){this.g=Hd(this,
E(this,D(this)));this.b-=7},function(){this.g=Hd(this,this.g);this.b-=4},function(){this.g=Md(this,this.w);this.b-=4},function(){this.g=Md(this,this.A);this.b-=4},function(){this.g=Md(this,this.B);this.b-=4},function(){this.g=Md(this,this.C);this.b-=4},function(){this.g=Md(this,this.D);this.b-=4},function(){this.g=Md(this,this.F);this.b-=4},function(){this.g=Md(this,E(this,D(this)));this.b-=7},function(){this.g=Md(this,this.g);this.b-=4},function(){this.g=Nd(this,this.w);this.b-=4},function(){this.g=
@ -129,13 +129,13 @@ l.save=function(){var a=new ud(this);switch(this.g.pa){case be.pa:a.set(0,[this.
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case be.pa:return this.ea=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ea;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function ce(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.Md=function(a,b){var c=this.D,c=c&~J.ya.jc;if((Rc(this.u)&64)<<1&&(c|=J.ya.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ja.nd:break;case J.Ba.Ja.Lc:this.M=this.M<<1|d;break;case J.Ba.Ja.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ja.Mc:this.b=this.b<<1|d;break;case J.Ba.Ja.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ja.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ja.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.ya.kc;this.S&&(c|=J.ya.kc);c&=~J.ya.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.ya.dc);c&=~J.ya.sc;this.C&&this.C.ia&de&&(c|=J.ya.sc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.Md=function(a,b){var c=this.D,c=c&~J.za.jc;if((Rc(this.u)&64)<<1&&(c|=J.za.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.nd:break;case J.Ba.Ka.Lc:this.M=this.M<<1|d;break;case J.Ba.Ka.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Mc:this.b=this.b<<1|d;break;case J.Ba.Ka.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.za.kc;this.S&&(c|=J.za.kc);c&=~J.za.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.za.dc);c&=~J.za.sc;this.C&&this.C.ia&de&&(c|=J.za.sc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){x(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Eb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?md(b,!0):b.xa=!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.be=function(a,b,c){x(this,a,b,c,"DC011");b&J.Ka.kd?(b&=J.Ka.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ka.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ka.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.ya.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,ya:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ka:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ja:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
l.be=function(a,b,c){x(this,a,b,c,"DC011");b&J.La.kd?(b&=J.La.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.La.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.La.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.za.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,za:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},La:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ka:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},$d={SI1978:be,VT100:J};be.INIT=[[be.pd.bb,be.Oa.bb,be.qd.bb,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.ya.ic|J.ya.dd],[J.Ka.Uc,J.Ka.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[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],
J.INIT=[[J.Oc.INIT,J.za.ic|J.za.dd],[J.La.Uc,J.La.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[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]]];be.Bb={0:Zd.prototype.Jd,1:Zd.prototype.Kd,2:Zd.prototype.Ld,3:Zd.prototype.Id};
be.Cb={2:Zd.prototype.Wd,3:Zd.prototype.Yd,4:Zd.prototype.Xd,5:Zd.prototype.Zd,6:Zd.prototype.$d};J.Bb={66:Zd.prototype.Md};J.Cb={66:Zd.prototype.ae,98:Zd.prototype.de,162:Zd.prototype.ce,194:Zd.prototype.be};Va(function(){for(var a=rb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Zd(d);qb(d,c)}});
function ge(a){t.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=ra(this.j);if(this.j){a=this.j;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){he(c,a,b,f)})}}aa(ge,t);ge.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ie(this)};
@ -144,10 +144,10 @@ function he(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")")
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ma(b[e],16);ie(a)}}
function ie(a){if(!zb(a))if(!a.j)Ab(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.g,8,!0)+")");else{var b;b=a.A;if(Qb(a.H,b,a.g,xc)){var c;for(c=0;c<a.b.length;c++)Yb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Ab(a)}}Va(function(){for(var a=rb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new ge(d);qb(d,c)}});
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.ka,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ke(c))})}}aa(je,t);
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ja=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ja&&(c.Ja=a.Ja)):c.b=null,ke(c))})}}aa(je,t);
je.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ke(this)};je.prototype.wa=function(){return!0};je.prototype.va=function(){return!0};
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:pe(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}pe(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ia)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function pe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:pe(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}pe(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ja)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function pe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function Me(a){t.call(this,"Keyboard",a,65536);(a=a.model)&&!Ne[a]&&bb("Unrecognized Keyboard8080 model: "+a);this.b=Ne[a]||{};this.reset();Ab(this)}aa(Me,t);l=Me.prototype;
l.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
c.onkeyup=function(a){return Qe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Re|Se)||(d.g|=Se,Oe(d,20,!0),Te(d)):a>=m.yc&&a<=m.z&&d.g&Se&&(d.g&=~Se,Oe(d,20,!1),Te(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ue(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
@ -166,22 +166,22 @@ M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]
120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=218,N[m[">"]]=
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.wb]=250,N),Tb:{},fb:{},Ua:{"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},Ca:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ca.bd,l3:K.Ca.ad,l2:K.Ca.$c,l1:K.Ca.Zc,locked:K.Ca.cd,local:K.Ca.fc,online:~K.Ca.fc,"caps-lock":Se};var Ne={SI1978:Ye,VT100:K};
K.INIT=[[K.Ca.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:Me.prototype.Nd};K.Cb={130:Me.prototype.ee};Va(function(){for(var a=rb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Me(d);qb(d,c)}});
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ma=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("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.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.Ha=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("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.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){of(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(){of(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=sa(this.S)&&(this.S=va()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ga(this.S,null,!0,function(a,b,c){pf(f,a,b,c)});this.Aa={}}aa(lf,t);
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ma,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.za=!1,a.fa=Array(a.O));
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;ee(this);if(this.B=Kb(a,"Keyboard")){for(var e in this.Aa)this.B.ca("led",e,this.Aa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Wc(this.u,function(){md(f)});Xc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Ab(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ea=f,fe(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&Ab(a)}}
function fe(a){a.ea&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ba),xf(a,a.ga,a.ba,a.za)],a.T[yf]=[xf(a,2*a.ga,a.ba),xf(a,2*a.ga,a.ba,a.za)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ba),xf(a,2*a.ga,2*a.ba,a.za)])}
function fe(a){a.ea&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ba),xf(a,a.ga,a.ba,a.ya)],a.T[yf]=[xf(a,2*a.ga,a.ba),xf(a,2*a.ga,a.ba,a.ya)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ba),xf(a,2*a.ga,2*a.ba,a.ya)])}
function xf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,k={ga:b,ba: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 p=k.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ba;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ea[y],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Bf(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new ud(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function of(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Eb(a,"notifyFullScreen("+b+")")}function qf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Bf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==sf&&(208<=c&&236>c?e=a.X+tf:28<=c&&72>c&&(e=a.X+uf));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 md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ma>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ma,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=wf&&(B>>=1);;){var y=Vb(a.H,u++);if((y&Cf)==Cf){var w=Vb(a.H,u++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,u),c=c+(w&Ff?
Gf:Hf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!u||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.ga,fc=y.ba;C?(L=B*w.ga,ja=e*w.ba,ua=w.ga,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ba>w.ba&&(v==Af&&(T+=w.ba),fc=w.ba);C?C.drawImage(y.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.ma;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Bf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
function md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=wf&&(B>>=1);;){var y=Vb(a.H,u++);if((y&Cf)==Cf){var w=Vb(a.H,u++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,u),c=c+(w&Ff?
Gf:Hf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!u||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.ga,fc=y.ba;C?(L=B*w.ga,ja=e*w.ba,ua=w.ga,na=w.ba):(L=B*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ba>w.ba&&(v==Af&&(T+=w.ba),fc=w.ba);C?C.drawImage(y.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Bf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var tf=0,uf=1,rf=2,nf=0,sf=1,vf=2,mf={SI1978:sf,VT100:vf},wf=96,yf=64,zf=32,Af=0,Cf=127,Ef=15,Ff=16,Df=96,Gf=8192,Hf=16384;
Va(function(){for(var a=rb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=pb(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<=Ia().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||Qa("aspect"));f&&.3<=f&&3.33>=f&&(Ua("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");Pa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new lf(d,e,g,f,c);qb(d,c)}});
@ -195,25 +195,25 @@ l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCod
l.Vd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(de|Xf);Eb(this,"transmitByte("+qa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=ya("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=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.u&&Xc(this.u,this.Z,Pf(this,Yf))};l.Ud=function(a,b,c){x(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Zf|$f)&&(a=0,this.D?(a|=b&Zf?32:0,a|=b&$f?320:0):(a|=b&Zf?16:0,a|=b&$f?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&ag&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
var Rf=12,Sf=16,Tf=192,$f=2,Zf=32,ag=64,de=1,Uf=2,Xf=4,Wf=128,Vf=15,Yf=240,Qf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Of=[!1,0,0,133,142,39,238],Jf="buffer",Lf={0:If.prototype.Hd,1:If.prototype.Gd},Mf={0:If.prototype.Vd,1:If.prototype.Ud,2:If.prototype.Td};Va(function(){for(var a=rb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new If(d);qb(d,c)}});
function bg(a){t.call(this,"Debugger",a);this.sa=+a.base||16;this.na=["{","}"];this.Z=["[","]"];this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
function bg(a){t.call(this,"Debugger",a);this.ta=+a.base||16;this.ka=null;this.oa=["{","}"];this.Z=["[","]"];this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
bg.prototype.Ab=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.L?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(Aa(a.substring(d,f))),d=f+1}}return b};
function cg(a){var b,c=a;b=32;if(32>=b)c=a|0;else if(b=Math.pow(2,b-1),a<-b||a>=b)c=a%b;a!=c&&(a=c);return a}
function dg(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=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=
f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f^e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(cg(d))}return!0}
function eg(a,b,c){var d;b&&(b=fg(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],p=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Aa(u);if(!u){f=!0;break}u=gg(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(cg(u));if(e==p.length)break;var u=p[e++],B=u.length;k.length&&hg[u]<hg[k[k.length-1]]&&dg(h,k,1);k.push(u);b=b.substr(v+B)}dg(h,k)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),
c&&ig(a,null,d))}return d}
function fg(a,b){var c,d=a.na[0],e=a.na[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=eg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?jg(a,g):"undefined")}if(a.Z.length)for(d=a.Z[0],e=a.Z[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.N-
a.Y}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=ma(b,a.sa))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function eg(a,b,c){var d;a.ka=null;b&&(b=fg(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],p=b.split(/(\|\||&&|\||^^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Aa(u);if(!u){f=!0;break}var B=gg(a,u,null,c);if(void 0===B)if(null==a.ka&&c)a.ka=u,B=0;else{f=!0;c=!c;break}h.push(cg(B));if(e==p.length)break;u=p[e++];B=u.length;k.length&&hg[u]<hg[k[k.length-1]]&&dg(h,k,1);k.push(u);b=b.substr(v+B)}dg(h,k)&&1==h.length||(f=!0);f?!1===c&&a.i("error parsing '"+g+"' at character "+
(g.length-b.length)):(d=h.pop(),!1===c&&ig(a,null,d))}return d}
function fg(a,b){var c,d=a.oa[0],e=a.oa[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=eg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?jg(a,g):"undefined")}if(a.Z.length)for(d=a.Z[0],e=a.Z[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.N-a.Y}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=ma(b,a.ta))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function ig(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==k||isNaN(k),y=p=p||u;0<u--;)y||(v=","+v,y=p),v=(B?"?":k&1?"1":"0")+v,k>>=1,y--;g=v+g;d>>=8}d=n(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function kg(a,b){if(b)return ig(a,b,a.S[b]);var c=0;for(b in a.S)ig(a,b,a.S[b]),c++;return 0<c}function jg(a,b){var c;c=void 0===c?0:c;switch(a.sa){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function lg(a){bg.call(this,a);this.style=mg;this.F=ng();this.oa=ng();this.O=ng();this.A=[];this.j=this.I=this.w=[];og(this);this.W=0;pg(this);this.ea={};qg(this,a.messages);this.fa=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(lg,bg);l=lg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&qg(this,a);this.ma=rg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=sg(tg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Tb[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
function kg(a,b){if(b)return ig(a,b,a.S[b]);var c=0;for(b in a.S)ig(a,b,a.S[b]),c++;return 0<c}function jg(a,b){var c;c=void 0===c?0:c;switch(a.ta){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function lg(a){bg.call(this,a);this.style=mg;this.F=ng();this.sa=ng();this.O=ng();this.A=[];this.j=this.I=this.w=[];og(this);this.W=0;pg(this);this.ea={};qg(this,a.messages);this.fa=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(lg,bg);l=lg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&qg(this,a);this.na=rg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=sg(tg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Tb[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
q(u.size)+" "+p),c!=wc&&(c=-1),p=0);a+=d.H.w;e++}}});Ab(this)};
l.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=ug(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function sg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ha=function(a,b){var c=255,d=sg(a);-1!==d&&(c=Vb(this.H,d),b&&vg(a,b));return c};l.Gb=function(a,b){var c=65535,d=sg(a);-1!==d&&(c=Xb(this.H,d),b&&vg(a,b));return c};l.Xb=function(a,b,c){var d=sg(a);-1!==d&&(Yb(this.H,d,b),c&&vg(a,c),Pc(this.u,!0))};
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=ug(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function sg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=sg(a);-1!==d&&(c=Vb(this.H,d),b&&vg(a,b));return c};l.Gb=function(a,b){var c=65535,d=sg(a);-1!==d&&(c=Xb(this.H,d),b&&vg(a,b));return c};l.Xb=function(a,b,c){var d=sg(a);-1!==d&&(Yb(this.H,d,b),c&&vg(a,c),Pc(this.u,!0))};
l.Qc=function(a,b,c){var d=sg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&vg(a,c);Pc(this.u,!0)}};function ng(a){return{J:a,Fa:!1}}function wg(a){return[a.J,a.Fa]}function Ug(a){return{J:a[0],Fa:a[1]}}
function tg(a,b,c){var d;c=(c?a.F:a.oa).J;if(void 0!==b){d=b=fg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=ng(d));break}}if(d=e)return d;c=eg(a,b,void 0)}null!=c&&(d=ng(c));return d}function Wg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function vg(a,b){null!=a.J&&(a.J+=b||1)}function Xg(a){return n(a,4)}
function Yg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ha(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function qg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ea[d]=c;break}}
function tg(a,b,c){var d;c=(c?a.F:a.sa).J;if(void 0!==b){d=b=fg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=ng(d));break}}if(d=e)return d;c=eg(a,b)}null!=c&&(d=ng(c));return d}function Wg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function vg(a,b){null!=a.J&&(a.J+=b||1)}function Xg(a){return n(a,4)}
function Yg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function qg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ea[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Fa(Zg,a):(c=Fa(Zg,a.substr(b,2)),0>c&&(c=Fa(Zg,a.substr(b,1))));return c};function $g(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case ah:case bh:case ch:case dh:case eh:case fh:case gh:case hh:c=2;break;case ih:case jh:case kh:case lh:case mh:case nh:case oh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ah:b=c.g;break;case bh:b=c.w;break;case ch:b=c.A;break;case ih:b=vd(c);break;case dh:b=c.B;break;case eh:b=c.C;break;case jh:b=xd(c);break;case fh:b=c.D;break;case gh:b=c.F;break;case kh:b=D(c);break;case hh:b=E(c,D(c));break;case lh:b=c.M;break;case mh:b=c.j;break;case nh:b=td(c);break;case oh:b=td(c)&255|c.g<<8}}return b};
function ph(a,b){b=fg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+$g(a,e)+b.substr(c+1+Zg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=tg(a,e))?(d=e+' "'+Yg(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=tg(a,e))?(vg(d),d=
@ -221,26 +221,26 @@ e+' "'+Yg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=f
function Fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+qa(d):"")+")"+(null!=g?": "+qa(g):"")+(null!=e?" at "+Xg(e):""))}
function pg(a){var b;if(Td(a)){if(!a.D||!a.D.length){a.D=Array(qh);for(b=0;b<a.D.length;b++)a.D[b]=ng();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function rh(a,b){if(!sh(a))return!1;a.u.tb(b);return!0}
function ug(a,b,c,d){if(!sh(a))return!1;a.C=0;b||Td(a)&&Ud(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Tc(a.u,e,!0),Qc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,yb(a.u,f.stack||f.message))}!1!==d&&Pc(a.u);Nc(a,c||!1);return 0<a.C}l.da=function(a){this.u&&this.u.da(a)};function Nc(a,b){void 0===b&&(b=!0);a.F=ng(a.u.j);b&&1!=a.M?th(a):uh(a)}
function sh(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){pg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=ng(this.u.j);this.G.la=!1;vh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,wg(this.F));a.set(1,wg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Ug(a[b++]),this.O=Ug(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.la=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.G.la){this.G.la=!1;this.C=b-this.Aa;if(!this.M){b="stopped";if(this.C){a-=this.za;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();vh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.W}
function sh(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){pg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=ng(this.u.j);this.G.ma=!1;vh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,wg(this.F));a.set(1,wg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Ug(a[b++]),this.O=Ug(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.C=b-this.Da;if(!this.M){b="stopped";if(this.C){a-=this.Aa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();vh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.W}
function Ud(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||Hc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Vb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Fa=!1,++a.T==a.D.length&&(a.T=0)));return!1}function dc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.da(!0)}function ic(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.da(!0)}
function og(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[sg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[sg(c)>>>d.g],!0);a.w=["bw"];a.ta=0}l.Pa=function(a,b,c){var d=!0;c||wh(this,a,b,!1,!0);if(a!=this.j){var e=sg(b);if(-1===e)this.i("invalid address: "+Xg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(xh(this,a,a.length-1,"set"),pg(this)));return d};
function og(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[sg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[sg(c)>>>d.g],!0);a.w=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||wh(this,a,b,!1,!0);if(a!=this.j){var e=sg(b);if(-1===e)this.i("invalid address: "+Xg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(xh(this,a,a.length-1,"set"),pg(this)));return d};
function wh(a,b,c,d,e){var f=!1;c=sg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==sg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||xh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,Gc(d.b[c>>>d.g],b==a.w));h.Fa||pg(a);break}}return f}function yh(a,b){for(var c=1;c<b.length;c++)xh(a,b,c);return b.length-1}function xh(a,b,c,d){c=b[c];a.i(b[0]+" "+Xg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function vh(a,b){if(void 0!==b)Hc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!wh(a,a.j,c,!0))break;b=0}}}
function Hc(a,b,c,d,e){var f=!1;if(!a.ta++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=sg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(wh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!zh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.la||(f=!0)}if(f){e||xh(a,d,g,"hit");break}}}a.ta--;return f}
function Ah(a,b,c,d){for(var e=ng(b.J),f=a.Ha(b,1),g=a.ma[f],h="",k=(a.style!=Bh?Ch:Dh)[g[0]],p=g.length-1,u=Eh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==mg)){var w=v&Fh;if(w){var C=v&Gh;C?u=C:v|=u;v&Hh||(v|=1==B?Ih:Jh);if(w&P)a:{y=a;w=v;C=b;switch(w&Gh){case Q:C=n(y.Ha(C,1),2);break;case Kh:C=n(y.Ha(C,1)<<24>>24,4);break;case Lh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Bh&&w&Mh?C="["+C+"]":w&Nh||(C=(y.style==mg?"$":"0x")+C);y=C}else w&Nh?(y=(v&Oh)>>8,
w=Zg[y],a.style==Bh&&v&Mh&&(y==hh&&(w="HL"),w="["+w+"]"),y=w):w&Ph&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Xg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ha(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=v&Qh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Hc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=sg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(wh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!zh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||xh(a,d,g,"hit");break}}}a.xa--;return f}
function Ah(a,b,c,d){for(var e=ng(b.J),f=a.Ia(b,1),g=a.na[f],h="",k=(a.style!=Bh?Ch:Dh)[g[0]],p=g.length-1,u=Eh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==mg)){var w=v&Fh;if(w){var C=v&Gh;C?u=C:v|=u;v&Hh||(v|=1==B?Ih:Jh);if(w&P)a:{y=a;w=v;C=b;switch(w&Gh){case Q:C=n(y.Ia(C,1),2);break;case Kh:C=n(y.Ia(C,1)<<24>>24,4);break;case Lh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Bh&&w&Mh?C="["+C+"]":w&Nh||(C=(y.style==mg?"$":"0x")+C);y=C}else w&Nh?(y=(v&Oh)>>8,
w=Zg[y],a.style==Bh&&v&Mh&&(y==hh&&(w="HL"),w="["+w+"]"),y=w):w&Ph&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Xg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=v&Qh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Rh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Fd(a.u);break;case "ZF":a=Ed(a.u);break;case "AF":a=Dd(a.u);break;case "PF":a=Cd(a.u);break;case "CF":a=Ad(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Sh(a,b){return Zg[b]+"="+$g(a,b)+" "}function Th(a){return Sh(a,ah)+Sh(a,ih)+Sh(a,jh)+Sh(a,kh)+Sh(a,lh)+Rh(a,"IF")+Rh(a,"SF")+Rh(a,"ZF")+Rh(a,"AF")+Rh(a,"PF")+Rh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Uh(a,b,c){var d=[],e=sg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Da(f.zc,[e-g],a.Ac);0<=e?Vh(a,b,e,d):c&&(e=~e,Vh(a,b,e-1,d),Vh(a,b,e,d));break}}return d}function Vh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Wh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Bh?Ch:Dh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ma[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Wh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Bh?Ch:Dh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.na[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Xh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return kg(a)||a.i("no variables"),!0;if(!c[2])return kg(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=eg(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Yh(a,b,c){var d=null;if(b=tg(a,b,!0)){var e=Uh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Xg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+Xg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Zh(a,b){switch(b[1]){case "8080":a.style=mg;break;case "8086":a.style=Bh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
function Zh(a,b){switch(b[1]){case "8080":a.style=mg;break;case "8086":a.style=Bh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function th(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=eg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>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.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=ng(d.j);break;case "PS":rd(d,f);break;case "PSW":rd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?Cd(d)||(d.L^=1):Cd(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.I=f?d.I&-256:d.I|255;break;case "SF":f?Fd(d)||(d.L^=192):Fd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Th(a));c&&(a.F=ng(d.j),uh(a,Xg(a.F.J)))}}function $h(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(ph(a,c[2])):eg(a,b,!0)}function ai(a,b,c){var d="t"!=b;c=gg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&ug(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Th(a));c&&(a.F=ng(d.j),uh(a,Xg(a.F.J)))}}function $h(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(ph(a,c[2])):eg(a,b,!1)}function ai(a,b,c){var d="t"!=b;c=gg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&ug(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
function uh(a,b,c,d){if(b=tg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=tg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Bb(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Uh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=Ah(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
l.Ab=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.L?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(Aa(a.substring(d,f))),d=f+1}}return b};
function zh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Xg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(zb(a)&&0<b.length){a.L&&(b="a "+Xg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var u=tg(a,f[1],!0);if(u)if(a.O=
@ -248,16 +248,16 @@ u,void 0===f[2])a.i("begin assemble at "+Xg(u.J)),a.L=!0,Pc(a.u);else{var v;a.i(
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+yh(a,a.j);za+=yh(a,a.I);(za+=yh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=gg(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=ng();if("*"!=w&&(L=tg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(og(a),a.i("all breakpoints cleared")):wh(a,a.j,L)||wh(a,a.I,L)||wh(a,a.w,L)||a.i("breakpoint missing: "+Xg(L.J)):
"i"==T?a.i("breakpoint "+(ac(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ec(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Wg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Ib)a.ea[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var qe=bi(a.R,!0);"console"==Ma?console.log(qe):(a.ua&&(a.ua.value=""),qe&&a.i(qe))}else if("symbols"==na)for(var re=0;re<a.A.length;re++){var se=a.A[re],Ob;for(Ob in se.ra)if("."!=Ob.charAt(0)){var xg=se.ra[Ob].o;if(void 0!==xg){var yg=se.ra[Ob].l;yg&&(Ob=yg);a.i(Xg(xg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var zg=a.ea[ja];zg?(f.shift(),f.shift(),zg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Da||"db")}else a.Da=ua;if("dh"==ua){var Ag=na,Bg=Ma,Cg="",Dg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+Ag||a.xa,kc=+Bg||10;isNaN(Ba)?Ba=kc:Cg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Bg&&(kc=1E5,te=["CALL"]);for(void 0!==Ag&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.T;){var Eg=Za[Na++];if(null==Eg.J)break;var lc=ng(Eg.J),Fi=Ba--,Fg=Ah(a,lc,"history",Fi);(!te.length||0<=Fg.indexOf(te[0]))&&a.i(Fg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.xa=Ba;Dg++;kc--}}Dg||(a.i("no "+Cg+"history available"),a.xa=void 0)}else{var $c=tg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Gi=cd+15>>4||1;Gi--&&0<
cd;){var dd=0,ue=0,nc,ve="",Gg="",na=Xg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ha($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Gg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Gg)}mc&&a.i(mc);a.oa=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Hg=255,Ig=a.Ha,Jg=a.Xb;"ew"==f[0]&&(fd=2,Hg=65535,Ig=a.Gb,Jg=a.Qc);var Kg=fd<<1,Lg=f[1];if(null==Lg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var zg=a.ea[ja];zg?(f.shift(),f.shift(),zg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Ag=na,Bg=Ma,Cg="",Dg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+Ag||a.ya,kc=+Bg||10;isNaN(Ba)?Ba=kc:Cg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Bg&&(kc=1E5,te=["CALL"]);for(void 0!==Ag&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.T;){var Eg=Za[Na++];if(null==Eg.J)break;var lc=ng(Eg.J),Fi=Ba--,Fg=Ah(a,lc,"history",Fi);(!te.length||0<=Fg.indexOf(te[0]))&&a.i(Fg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Dg++;kc--}}Dg||(a.i("no "+Cg+"history available"),a.ya=void 0)}else{var $c=tg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Gi=cd+15>>4||1;Gi--&&0<
cd;){var dd=0,ue=0,nc,ve="",Gg="",na=Xg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ia($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Gg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Gg)}mc&&a.i(mc);a.sa=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Hg=255,Ig=a.Ia,Jg=a.Xb;"ew"==f[0]&&(fd=2,Hg=65535,Ig=a.Gb,Jg=a.Qc);var Kg=fd<<1,Lg=f[1];if(null==Lg)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 gd=tg(a,Lg);if(gd)for(var hd=2;hd<f.length;hd++){var oc=eg(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Hg&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Hi=Ig.call(a,gd);a.i("changing "+Xg(gd.J)+" from "+n(Hi,Kg,!0)+" to "+n(oc,Kg,!0));Jg.call(a,gd,oc,fd)}}break;case "f":Wh(a,f[1]);break;case "g":a:{var Mg=f[1],Ii=b;if(void 0!==Mg){var we=tg(a,Mg,!0);if(!we)break a;Wg(a,we,Ii);a.Pa(a.j,we,!0)}rh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var xe;if(a.G.la)xe="halting",a.da();else{if(Bb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Aa(pc);eg(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Ji=f[1];if(a.u.N&512){var ze=eg(a,Ji);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Sd(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
case "h":a:{var xe;if(a.G.ma)xe="halting",a.da();else{if(Bb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Aa(pc);eg(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Ji=f[1];if(a.u.N&512){var ze=eg(a,Ji);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Sd(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
gg(a,Ae);if(void 0!==Be){var Ki=cc(a.H,Be);a.i(q(Be)+": "+qa(Ki))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Li=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ce=0,Ng=ng(),qc=ng(a.u.M);for(a.i("stack trace for "+Xg(qc.J));10>Ce;){for(var ub=null,Mi=256;65536>qc.J>>>0;){Ng.J=a.Gb(qc,2);if(null==qc.J||!Mi--)break;for(var Ni=a,jd=Ng,
Og=null,rc=jd.J,Pg=rc,De=1;6>=De&&rc;De++){if(2<De){jd.J=rc;var kd=Ah(Ni,jd);if(0<=kd.indexOf("CALL")){var Qg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Qg+1)-Qg-1)/2==Pg){Og=kd;break}}}rc--}jd.J=Pg;if(ub=Og)break}if(!ub||null==ub)break;var Rg=null;if("ks"==Li){var Sg=ub.match(/[0-9A-F]+$/);Sg&&(Rg=Yh(a,Sg[0]))}ub=ya(ub,50)+" ;"+(Rg||"stack="+Xg(qc.J));a.i(ub);Ce++}Ce||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Yh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Ib)if(ba==$a){nb=Ib[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var Ee=0;Ee<a.X.length;Ee++)a.i(a.X[Ee]);a.X=[]}}var Oi=0,sc="";for($a in Ib)if(!ba||ba==$a){var Pi=!!(a.ha&Ib[$a]);if(null===
ab||ab==Pi)sc&&(sc+=","),++Oi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));pg(a)}break;case "o":var Fe=f[1],Qi=f[2];if(Fe&&"?"!=Fe){var Ge=gg(a,Fe,"port #"),He=gg(a,Qi);void 0!==Ge&&void 0!==He&&(hc(a.H,Ge,He),a.i(q(Ge)+": "+qa(He)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){$h(a,b.substr(5));break}var Tg="pr"==f[0]?1:0,Ri=1+Tg;if(a.M)a.i("step in progress");else{var Ie=ng(a.u.j);switch(a.Ha(Ie)){case 205:a.M=Ri,vg(Ie,3)}a.M?(a.Pa(a.j,Ie,!0),rh(a)||(a.R&&a.R.Za(),a.M=0)):ai(a,Tg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}th(a,f);break;case "s":Zh(a,f);break;case "t":ai(a,f[0],f[1]);break;case "u":uh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
break;case "p":if("print"==f[0]){$h(a,b.substr(5));break}var Tg="pr"==f[0]?1:0,Ri=1+Tg;if(a.M)a.i("step in progress");else{var Ie=ng(a.u.j);switch(a.Ia(Ie)){case 205:a.M=Ri,vg(Ie,3)}a.M?(a.Pa(a.j,Ie,!0),rh(a)||(a.R&&a.R.Za(),a.M=0)):ai(a,Tg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}th(a,f);break;case "s":Zh(a,f);break;case "t":ai(a,f[0],f[1]);break;case "u":uh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Gb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ia());break;case "?":if(f[1]){$h(a,b.substr(1));break}var Je="commands:",Ke;for(Ke in ci)Je+="\n"+ya(Ke,9)+ci[Ke];Td(a)||(Je+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Je);break;default:a.i("unknown command: "+b),d=!1}}}catch(Vg){a.i("debugger error: "+(Vg.stack||Vg.message)),d=!1}return d}function Oc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!zh(a,b[+d]))return!1;return!0}
var ci={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
mg=8080,Bh=8086,Ch="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Dh="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
@ -286,7 +286,7 @@ function li(a,b){var c=a.g;c||((c=La(Ai),void 0!==c)?!c&&b&&(b=null,window&&(b=w
function Ui(a,b){a.g=null;b=Ga(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa(Ai,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function ni(a){var b=null;a.g&&(b=va()+"/api/v1/user?req=load&user="+a.g+"&state="+Vi(a,"1.34.2"));return b}
function Si(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vi(a,"1.34.2");d.data=c;b=Ga(va()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),Oa(Ai,""),a.g=null)}}
function Kb(a,b,c){a=lb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Zc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.la||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",vd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",xd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=td(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.la&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
function Zc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ma||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",vd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",xd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=td(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var vi="failsafe",qi="validate",si="timestamp",Ci="version",Di="url",Ei="browser",Ai="user",ui=-1,ki=0,ti=1,xi=2,Ti=3;Va(function(){for(var a=rb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=rb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ii(g,d,!0);qb(g,f);g.L&&oi(g,g.nb)}});Wa.show.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(ui)}});
Wa.exit.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.G.ja&&bi(c,!(!c.b||c.D),!0)}});function ud(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Vi(a,b,c);yi(this,a.Ad)}l=ud.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function mi(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Ja()&&(b=La(a.key))?(a.g=b,a.u=!0):!1}function ri(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){r(c.message||c),b=!1}return b}function zi(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function yi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}