>=1);;){var r=zb(a.w,l++);if(127==(r&127)){var u=zb(a.w,l++),d=u&96,c=(u&15)<<8|zb(a.w,l),c=c+(u&16?8192:16384);break}if(k>4)*r.ka,K=void 0,C=void 0,R=void 0,
+ia=void 0,ca=r.oa,ja=r.ka;x?(K=p*u.oa,C=e*u.ka,R=u.oa,ia=u.ka):(K=p*u.yc,C=e*u.zc,R=u.yc,ia=u.zc);r.oa>u.oa&&(K*=2,R*=2);r.ka>u.ka&&(0==q&&(z+=u.ka),ja=u.ka);x?x.drawImage(r.canvas,A,z,ca,ja,K,C,R,ia):(K+=0,C+=0,u.I.drawImage(r.canvas,A,z,ca,ja,K,C,R,ia))}g++}h++}e++}}a.za=!0;(g||b)&&a.hb&&a.I.drawImage(a.N,0,a.gb,a.L,a.da-a.ka,0,0,a.Td,a.Ud)}
+function Id(a,b){var c=!0,d=!0;if(0<=b){d=!1;a.zb&&(120==a.zb?b&1?(zd(a.b,2),c=!1):zd(a.b,1):zd(a.b,4));var e;if(e=c&&a.za&&a.Z){e=a.w;for(var f=a.Z,h=!0,g=a.ya>>>e.pa;0>8|(x&255)<<8);k>z&u;fe(a,a.Gc,k++,l,K);z+=r}k>q&&(q=k);l=e&&(e=l+1)}f+=2;g++;if(k>=a.L&&(k=0,l++,l>a.da))break}a.za=!0;cMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=sa().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||Sa.aspect);f&&.3<=f&&3.33>=f&&(Ia("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");ya("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Zd(d,e,h,f,c);fb(d,c)}});
+function he(a){this.da=+a.adapter;switch(this.da){case 0:this.ea=0;this.ia=2;break;default:v("Unrecognized serial adapter #"+this.da);return}this.B=this.F=null;this.ga=a.tabSize;this.ca=a.charBOL;this.J=0;w.call(this,"SerialPort",a,he,8388608);a=a.binding;"console"==a?this.F="":db(this,a);this.ha=function(a){return function(){ie(a)}}(this)}Za(he);var je=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],ke=[!1,0,0,133,142,39,238],eb="buffer";m=he.prototype;
+m.ma=function(a,b,c,d){var e=this;switch(b){case eb:return this.M[b]=this.B=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64>2)+6;a.K&16&&c++;c+=((a.K&192)>>6)+1>>1;setTimeout(a.ha,1E3/Math.round(b/c))}}m.Zb=function(){return!!(this.u&1)};
+m.xd=function(a,b){var c=this.P;D(this,a,null,b,"DATA",c);this.u&=-3;return c};m.wd=function(a,b){var c=this.u;D(this,a,null,b,"STATUS",c);return c};
+m.Id=function(a,b,c){D(this,a,b,c,"DATA");this.Z=b;this.u&=-6;if(this.B)13==b?this.J=0:8==b?(this.B.value=this.B.value.slice(0,-1),0>>d.w.pa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=wb[c],p&&d.g(n(p.id)+" %"+n(g<>>e.pa;f!=e.w?e.X[h].dc(f,b&65535,d):(e.X[h++].Ib(f,b&255,d),e.X[h&e.K].Ib(0,b>>8&255,d+1));c&&Ae(a,c);lc(this.b,!0)}};function X(a){return{G:a,Na:!1}}function Be(a){return[a.G,a.Na]}function Ce(a){return{G:a[0],Na:a[1]}}
-function ze(a,b,c){var d;c=(c?a.O:a.Za).G;if(void 0!==b){d=b=De(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=na(ue,a.substr(b,1))));return c}function Je(a,b){var c=0,d=Ke(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
-function Ke(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.S;break;case 1:c=d.T;break;case 8:c=Mc(d);break;case 2:c=d.U;break;case 3:c=d.V;break;case 9:c=Oc(d);break;case 4:c=d.W;break;case 5:c=d.Y;break;case 10:c=K(d);break;case 6:c=d.Z(K(d));break;case 11:c=d.ka;break;case 12:c=d.P;break;case 13:c=Lc(d);break;case 14:c=Lc(d)&255|d.j<<8}}return c}
-function Le(a,b){b=De(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Ie(b,c+1),0<=e&&(b=b.substr(0,c)+Je(a,e)+b.substr(c+1+ue[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ba(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=ze(a,e))?(d=e+' "'+He(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=ze(a,e))?(Ae(d),d=e+' "'+
-He(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Y(X(this.b.P).G));if(this.qa&1073741824)this.ya.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.qa&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.qb=0;c.B-=c.b;c.b=0;lc(c)}};
-function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.qa&g)!=g||a.message(b.Lb+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+n(d,2):"")+")"+(null!=h?": 0x"+n(h,2):"")+(null!=e?" at "+Y(e):""))}
-function pe(a){var b;if(yd(a)){if(!a.N||!a.N.length){a.N=Array(1E3);for(b=0;b>>d.pa],!1)}a.R=["br"];if(void 0!==a.F)for(b=1;b>>d.pa],!0);a.F=["bw"];a.gb=0}m.Ya=function(a,b,c){var d=!0;c||Qe(this,a,b,!1,!0);if(a!=this.u){var e=ye(b);if(-1===e)this.g("invalid address: "+Y(b.G)),d=!1;else{var f=this.w;f.X[e>>>f.pa].Ya(e&f.w,a==this.F)}}d&&(a.push(b),c?b.Na=!0:(pf(this,a,a.length-1,"set"),pe(this)));return d};
-function Qe(a,b,c,d,e){var f=!1;c=ye(c);for(var h=1;h>>d.pa],b==a.F));g.Na||pe(a);break}}return f}function qf(a,b){for(var c=1;c>24,4);break;case 3:w=n(z.Sa(I,2),4);break;default:z="imm("+t(v)+")";break a}8086==z.style&&v&64?w="["+w+"]":v&16||(w=(z.style==ne?"$":"0x")+w);z=w}else v&
-16?(z=(q&3840)>>8,v=ue[z],8086==a.style&&q&64&&(6==z&&(v="HL"),v="["+v+"]"),z=v):v&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
-function xf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
+18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]],ze={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};m=pe.prototype;
+m.Qa=function(a,b,c,d){this.w=b;this.b=c;this.A=a;(a=jc(a,"messages"))&&te(this,a);this.Fa=ye;Ae(this,function(a){a:{var b=d.w.X,c=a[0],g=a=0,k=b.length;if(c){a=Be(Ce(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.w.pa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var q=b[g];q.type==c?l++||d.g("..."):(c=q.type,l=yb[c],q&&d.g(n(q.id)+" %"+n(g<>>e.pa;f!=e.w?e.X[h].fc(f,b&65535,d):(e.X[h++].Ib(f,b&255,d),e.X[h&e.K].Ib(0,b>>8&255,d+1));c&&De(a,c);nc(this.b,!0)}};function X(a){return{G:a,Pa:!1}}function Ee(a){return[a.G,a.Pa]}function Fe(a){return{G:a[0],Pa:a[1]}}
+function Ce(a,b,c){var d;c=(c?a.O:a.Za).G;if(void 0!==b){d=b=Ge(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=pa(xe,a.substr(b,1))));return c}function Me(a,b){var c=0,d=Ne(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
+function Ne(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.S;break;case 1:c=d.T;break;case 8:c=Oc(d);break;case 2:c=d.U;break;case 3:c=d.V;break;case 9:c=Qc(d);break;case 4:c=d.W;break;case 5:c=d.Y;break;case 10:c=J(d);break;case 6:c=d.aa(J(d));break;case 11:c=d.la;break;case 12:c=d.R;break;case 13:c=Nc(d);break;case 14:c=Nc(d)&255|d.j<<8}}return c}
+function Oe(a,b){b=Ge(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Le(b,c+1),0<=e&&(b=b.substr(0,c)+Me(a,e)+b.substr(c+1+xe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Ce(a,e))?(d=e+' "'+Ke(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=Ce(a,e))?(De(d),d=e+' "'+
+Ke(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Y(X(this.b.R).G));if(this.qa&1073741824)this.ya.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.qa&-2147483648&&(this.na(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.qb=0;c.B-=c.b;c.b=0;nc(c)}};
+function gb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.qa&g)!=g||a.message(b.Lb+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+n(d,2):"")+")"+(null!=h?": 0x"+n(h,2):"")+(null!=e?" at "+Y(e):""))}
+function se(a){var b;if(Ad(a)){if(!a.N||!a.N.length){a.N=Array(1E3);for(b=0;b>>d.pa],!1)}a.P=["br"];if(void 0!==a.F)for(b=1;b>>d.pa],!0);a.F=["bw"];a.gb=0}m.Ya=function(a,b,c){var d=!0;c||rf(this,a,b,!1,!0);if(a!=this.u){var e=Be(b);if(-1===e)this.g("invalid address: "+Y(b.G)),d=!1;else{var f=this.w;f.X[e>>>f.pa].Ya(e&f.w,a==this.F)}}d&&(a.push(b),c?b.Pa=!0:(sf(this,a,a.length-1,"set"),se(this)));return d};
+function rf(a,b,c,d,e){var f=!1;c=Be(c);for(var h=1;h>>d.pa],b==a.F));g.Pa||se(a);break}}return f}function tf(a,b){for(var c=1;c>24,4);break;case 3:A=n(u.Sa(z,2),4);break;default:u="imm("+t(x)+")";break a}8086==u.style&&x&64?A="["+A+"]":x&16||(A=(u.style==qe?"$":"0x")+A);u=A}else x&
+16?(u=(p&3840)>>8,x=xe[u],8086==a.style&&p&64&&(6==u&&(x="HL"),x="["+x+"]"),u=x):x&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
+function Af(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
-function Ee(a,b,c){var d;if(b){b=De(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Af(a,b){if(b)return zf(a,b,a.ga[b]);var c=0;for(b in a.ga)zf(a,b,a.ga[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.Bd;if(e>=h&&e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=q+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Df(a,b){if(b)return Cf(a,b,a.ga[b]);var c=0;for(b in a.ga)Cf(a,b,a.ga[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.Ed;if(e>=h&&e>8&255;case "C":d.T=g&255;break;case "D":d.U=
-g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Y=g&255;break;case "SP":d.ka=g&65535;break;case "PC":F(d,g);a.O=X(d.P);break;case "PS":Jc(d,g);break;case "PSW":Jc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.ba=g?d.ba|256:d.ba&255;break;case "PF":g?Tc(d)||(d.ca^=1):Tc(d)&&(d.ca^=1);break;case "AF":d.ua=g?~d.ca&16|d.ua&-17:d.ca&16|d.ua&-17;break;case "ZF":d.ba=g?d.ba&-256:d.ba|255;break;case "SF":g?Wc(d)||(d.ca^=192):Wc(d)&&(d.ca^=
-192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}lc(d);a.g("updated registers:")}a.g(vf(a));c&&(a.O=X(d.P),Oe(a,Y(a.O.G)))}}function Hf(a,b){b=ja(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Le(a,c[2])):Ee(a,b,!0)}function If(a,b,c){var d="t"!=b;c=yf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);xa(c,function(){return hb(a,!0)&&a.tb(e,d,!1)},function(){lc(a.b);hb(a,!1)})}
-function Oe(a,b,c,d){if(b=ze(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ze(a,c,!0);if(!d||d.Gg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=sf(a,b,h,f);a.g(f);a.O=b;e-=b.G-k;c++}}}
-function Ge(a,b,c,d){if(c)if(b){0>a.I&&a.B.length&&(a.I=0);if(0>a.I||b!=a.B[a.I])a.B.splice(0,0,b),a.I=0;a.I--}else a.fa?b="end":b=a.B[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ja(b.substring(c,f))),c=f+1}}return a}
-function rf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.fa&&(a.g("ended assemble at "+Y(a.ea.G)),a.O=a.ea,a.fa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0l||"z"Ea.length&&(a.g("note: only "+Ea.length+" available"),fa=Ea.length);aa-=fa;0>aa&&(null==Ea[Ea.length-1].G?(fa=aa+fa,aa=0):aa+=Ea.length);var hd=[];"call"==
-We&&(mb=1E5,hd=["CALL"]);for(void 0!==Ve&&a.g(fa+" instructions earlier:");0=Ea.length&&(aa=0);a.hb=fa;Ye++;mb--}}Ye||(a.g("no "+Xe+"history available"),a.hb=void 0)}else{var oc=ze(a,Z);if(oc){var pc=0;Wa&&("l"==Wa.charAt(0)&&(Wa=Wa.substr(1)||cg),pc=yf(a,Wa)>>>0,65536>4||1;eg--&&0tc?String.fromCharCode(tc):".";rc--}Xa&&(Xa+="\n");Xa+=Z+" "+Mb+(0==Lb?" "+jd:"")}Xa&&a.g(Xa);a.Za=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,af=255,bf=a.Z,cf=a.ra;"ew"==f[0]&&(uc=2,af=65535,bf=a.Sa,cf=a.Tb);var df=uc<<1,ef=f[1];if(null==ef)a.g("edit memory commands:"),
-a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var vc=ze(a,ef);if(vc)for(var wc=2;wcqd;){for(var Ya=null,kg=256;65536>Pb.G>>>0;){gf.G=
-a.Sa(Pb,2);if(null==Pb.G||!kg--)break;for(var lg=a,yc=gf,hf=null,Qb=yc.G,jf=Qb,rd=1;6>=rd&&Qb;rd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bSf){if(Of(d,this.O)){this.F=new G(this,"1.23.3","failsafe");Of(this.F)&&(Xf(this,d),a=2,Lf(this.F));H(this.F,"timestamp",ma());Mf(this.F);var e=this.A&&!this.K;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Nf(d)){var f=Pf(d,"code"),h=Pf(d,"data");f&&("ok"==f?Of(d,h):("error"==f&&
-"no machine state"!=h?(this.ia("Error: "+h),"unable to verify user"==h&&(va("user",""),this.u=null)):this.g(f+": "+h),Lf(d),Of(d)?(c=Nf(d),e=!0):c=!1))}e&&Wf(this,c?d:null)}else 2==a&&d.clear()}else Wf(this);delete this.O;delete this.R}e=bb(this.id);for(f=0;fa[1];a=a[2];this.na=!0;this.D.sa=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Yf(this,this.b,b,c,a),mc(this.b));this.ea&&(Xf(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.B=0};
-function Xf(a,b){if(ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.u||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ha;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",e,!0)}}
-function Jf(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new G(a,"1.23.3"),h=new G(a,"1.23.3","validate"),g=ma();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",qa());a.b&&a.b.Ha&&(c&&a.b.ma(),d=a.b.Ha(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.D.sa=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;k>8&255;case "C":d.T=g&255;break;case "D":d.U=
+g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Y=g&255;break;case "SP":d.la=g&65535;break;case "PC":G(d,g);a.O=X(d.R);break;case "PS":Lc(d,g);break;case "PSW":Lc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.ba=g?d.ba|256:d.ba&255;break;case "PF":g?Vc(d)||(d.fa^=1):Vc(d)&&(d.fa^=1);break;case "AF":d.ua=g?~d.fa&16|d.ua&-17:d.fa&16|d.ua&-17;break;case "ZF":d.ba=g?d.ba&-256:d.ba|255;break;case "SF":g?Yc(d)||(d.fa^=192):Yc(d)&&(d.fa^=
+192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}nc(d);a.g("updated registers:")}a.g(yf(a));c&&(a.O=X(d.R),Re(a,Y(a.O.G)))}}function Kf(a,b){b=la(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Oe(a,c[2])):He(a,b,!0)}function Lf(a,b,c){var d="t"!=b;c=Bf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);za(c,function(){return jb(a,!0)&&a.tb(e,d,!1)},function(){nc(a.b);jb(a,!1)})}
+function Re(a,b,c,d){if(b=Ce(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ce(a,c,!0);if(!d||d.Gg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=vf(a,b,h,f);a.g(f);a.O=b;e-=b.G-k;c++}}}
+function Je(a,b,c,d){if(c)if(b){0>a.I&&a.B.length&&(a.I=0);if(0>a.I||b!=a.B[a.I])a.B.splice(0,0,b),a.I=0;a.I--}else a.ea?b="end":b=a.B[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(la(b.substring(c,f))),c=f+1}}return a}
+function uf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ea&&(a.g("ended assemble at "+Y(a.da.G)),a.O=a.da,a.ea=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(lb(a)&&0l||"z"Fa.length&&(a.g("note: only "+Fa.length+" available"),fa=Fa.length);Z-=fa;0>Z&&(null==Fa[Fa.length-1].G?(fa=Z+fa,Z=0):Z+=Fa.length);var id=
+[];"call"==Xe&&(nb=1E5,id=["CALL"]);for(void 0!==We&&a.g(fa+" instructions earlier:");0=Fa.length&&(Z=0);a.hb=fa;Ze++;nb--}}Ze||(a.g("no "+Ye+"history available"),a.hb=void 0)}else{var oc=Ce(a,ca);if(oc){var pc=0;ja&&("l"==ja.charAt(0)&&(ja=ja.substr(1)||fg),pc=Bf(a,ja)>>>0,65536>4||1;hg--&&0tc?String.fromCharCode(tc):".";rc--}Xa&&(Xa+="\n");Xa+=ca+" "+Mb+(0==Lb?" "+kd:"")}Xa&&a.g(Xa);a.Za=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,bf=255,cf=a.aa,df=a.ra;"ew"==f[0]&&(uc=2,bf=65535,cf=a.Sa,df=a.Tb);var ef=uc<<1,ff=f[1];if(null==ff)a.g("edit memory commands:"),
+a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var vc=Ce(a,ff);if(vc)for(var wc=2;wcrd;){for(var Ya=null,ng=256;65536>Pb.G>>>0;){hf.G=
+a.Sa(Pb,2);if(null==Pb.G||!ng--)break;for(var og=a,yc=hf,jf=null,Qb=yc.G,kf=Qb,sd=1;6>=sd&&Qb;sd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bVf){if(Rf(d,this.O)){this.F=new H(this,"1.23.3","failsafe");Rf(this.F)&&($f(this,d),a=2,Of(this.F));I(this.F,"timestamp",oa());Pf(this.F);var e=this.A&&!this.K;if(1==a||ta("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Qf(d)){var f=Sf(d,"code"),h=Sf(d,"data");f&&("ok"==f?Rf(d,h):("error"==f&&
+"no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.u=null)):this.g(f+": "+h),Of(d),Rf(d)?(c=Qf(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.O;delete this.P}e=bb(this.id);for(f=0;fa[1];a=a[2];this.ia=!0;this.D.sa=!0;var d=this.M.power;d&&(d.textContent="Shutdown");this.b&&(ag(this,this.b,b,c,a),Ac(this.b));this.da&&($f(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.B=0};
+function $f(a,b){if(ta("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.u||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ha;e.user=c;e.type="bug";e.data=d;qa("http://www.pcjs.org/api/v1/report",e,!0)}}
+function Mf(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new H(a,"1.23.3"),h=new H(a,"1.23.3","validate"),g=oa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.23.3");I(f,"url",window?window.location.href:null);I(f,"browser",sa());a.b&&a.b.Ia&&(c&&a.b.na(),d=a.b.Ia(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.D.sa=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;k>>f.pa;0>8|(w&255)<<8);p>J&I;ce(d,d.Dc,p++,q,R);J+=v}p>r&&(r=p);q=h&&(h=q+1)}g+=2;l++;if(p>=d.K&&(p=0,q++,q>d.ea))break}d.za=!0;eg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2"));
-g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");oa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
-"");a=a.replace(d[0],h);rg(a,b,c)}})}else c(a,null)}
-function sg(a,b,c,d){function e(a){if(void 0===g){var b=h&&B(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ha(a))}function f(a){e("Error: "+a);k&&(--ag||La(!0));k=!1}var h,g,k=!0;ag++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c||
-(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?bg(c,null,null,!1,e,function(d,k){if(k)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--ag||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--ag||La(!0)):f("invalid machine element: "+
-a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?bg(b,a,d,!0,e,l):qg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return sg(a,b,c,d)};window.enableEvents=La;window.sendEvent=Ma;
-function tg(a,b,c,d){if(!c&&b){d.push(b);a=$a[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?oa(b,null,!0,function(a,b){ug(b,d)}):ug(null,d)}else u("Error ("+c+") requesting "+a)}
-function ug(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=$a[f],k={},l;for(l in g){var p=g[l],q=da(l);if("xml"==q){for(q=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[l]);){var r=d[2];r&&(g[r]||(p=p.replace(d[0],"")))}d=l=ca(l)}else"xsl"==q&&(e=l=ca(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
-"©"),l=h,g=null,k="data:application/javascript,",k=wa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
-c+='\n',c+="...\n",c+='