Added support for "clickOnce" script controls

This commit is contained in:
Jeff Parsons 2017-02-07 18:26:26 -08:00
commit 665ceba546
10 changed files with 519 additions and 499 deletions

View file

@ -32,12 +32,12 @@
var k;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},ca={59:186,61:187,173:189,224:91};
function n(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ta=null;da.push(this)}function ea(a,b,c){fa[a]&&b&&(fa[a][b]=c)}function ga(){return Date.now()||+new Date}
function p(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ta=null;da.push(this)}function ea(a,b,c){fa[a]&&b&&(fa[a][b]=c)}function ga(){return Date.now()||+new Date}
function ha(a,b,c){b||q((c?c+": ":"")+a)}function q(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}function ka(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<da.length;b++){var d=da[b];a&&d.id.indexOf(a)||c.push(d)}return c}function la(a){if(void 0!==a){var b;for(b=0;b<da.length;b++)if(da[b].id===a)return da[b]}return null}
function ma(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<da.length;d++)if(c)c==da[d]&&(c=null);else if(!(a!=da[d].type||b&&da[d].id.indexOf(b)))return da[d]}return null}function oa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function pa(a,b){b=qa(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=oa(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),l=h.length}}}}
function qa(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function ra(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=sa.indexOf(f)&&(g=function(c){return function(){ra(a,b,c)}}(c+1));var h=ta[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,l=ma(e[1],a);if(l)if(h=va[f])d=h(l,e[2],e[3]);else if(h=l.exports)if(h=h[f])if(d=!0,!g)d=h.call(l,e[2],e[3]);else if(!h.call(l,g,e[2],e[3]))break}if(!d){q("Script error ("+f+")");break}c++}return d}k=n.prototype;
function ra(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=sa.indexOf(f)&&(g=function(c){return function(){ra(a,b,c)}}(c+1));var h=ta[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,l=ma(e[1],a);if(l)if(h=va[f])d=h(l,e[2],e[3]);else{var n=l.exports;if(n&&(h=n[f]))if(d=!0,!g)d=h.call(l,e[2],e[3]);else if(!h.call(l,g,e[2],e[3]))break}}if(!d){q("Script error: "+f+(h?" failed":" unrecognized"));break}c++}return d}k=p.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ta=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};k.log=function(){};k.i=function(){};
k.status=function(a){this.i(this.cb+": "+a)};k.aa=function(a,b,c){ha(a,b,c||this.type)};function wa(a,b){a.G.error=!0;a.aa(b)}function xa(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function ya(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Aa(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Ca(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
@ -51,7 +51,7 @@ function Sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function Ua(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Va(){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 Wa(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 Xa(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 l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}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}
f,e))});if(b&&"object"==typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encodeURIComponent(b[n]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}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 Ya(a,b){var c,d={ma: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")&&'["'!=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.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c<e.length;c++)d.ma[f++]=e[c]&255,d.ma[f++]=e[c]>>8&255;else if(e=g.data)for(d.ma=Array(4*e.length),f=c=0;c<e.length;c++)d.ma[f++]=
e[c]&255,d.ma[f++]=e[c]>>8&255,d.ma[f++]=e[c]>>16&255,d.ma[f++]=e[c]>>24&255;else d.ma=g;d.ra=g.symbols;d.ma.length?1==d.ma.length&&(q(d.ma[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ma=e)}return d}
function Oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function bb(){return window?window.navigator.userAgent:""}function cb(){if(null==db){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}db=a}return db}function eb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
@ -60,14 +60,14 @@ function jb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d
function mb(a){ob.init.push(a)}function pb(a){if(qb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ha("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function rb(a){!qb&&a?(qb=!0,sb&&tb("init"),vb&&tb("show")):qb=a}function tb(a){ob[a]&&pb(ob[a])}var ib=null,ob={init:[],show:[],exit:[]},sb=!1,vb=!1,qb=!0,db=null;lb("onload",function(){sb=!0;pb(ob.init)});lb("onpageshow",function(){vb=!0;pb(ob.show)});
lb(gb("Opera")||gb("iOS")?"onunload":"onbeforeunload",function(){pb(ob.exit)});
var wb="undefined"!==typeof ArrayBuffer,xb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],yb={cpu:1,bus:64,mem:128,port:256,nvr:16384,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};function zb(a){n.call(this,"Panel",a)}aa(zb,n);
zb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:n.prototype.ca.call(this,a,b,c,d)};zb.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Ab(a,"Keyboard")};zb.prototype.va=function(a,b){b||Bb();return!0};zb.prototype.ua=function(){return!0};
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],yb={cpu:1,bus:64,mem:128,port:256,nvr:16384,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};function zb(a){p.call(this,"Panel",a)}aa(zb,p);
zb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:p.prototype.ca.call(this,a,b,c,d)};zb.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Ab(a,"Keyboard")};zb.prototype.va=function(a,b){b||Bb();return!0};zb.prototype.ua=function(){return!0};
function Bb(){for(var a=!1,b=qa(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=oa(d),f=la(e.id);f||(a=!0,f=new zb(e));pa(f,d);a&&ya(f)}}mb(Bb);
function Cb(a,b,c){n.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Db(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;ya(this)}aa(Cb,n);Cb.prototype.reset=function(){};
Cb.prototype.va=function(a,b){b||this.reset();return!0};function Eb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.w,p=a.w-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-l);p>f&&(p=f);h.pb=e-h.J+p;e=l+a.w;f-=p;g++;continue}}return Fb(Gb,e,f)}e=new z(e,p,a.w,d);Db(e,a.K,h);a.b[g++]=e;e=l+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+x(b)),!0):Fb(Ib,b,c)}
function Cb(a,b,c){p.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Db(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;ya(this)}aa(Cb,p);Cb.prototype.reset=function(){};
Cb.prototype.va=function(a,b){b||this.reset();return!0};function Eb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.w,n=a.w-(e-l);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){n=h.size-(e-l);n>f&&(n=f);h.pb=e-h.J+n;e=l+a.w;f-=n;g++;continue}}return Fb(Gb,e,f)}e=new z(e,n,a.w,d);Db(e,a.K,h);a.b[g++]=e;e=l+a.w;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+x(b)),!0):Fb(Ib,b,c)}
function Jb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Kb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Lb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Ob(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Pb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
function Qb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],u=g+1;u<e.length&&e[u]===p;)u++;l[h++]=u-g;l[h++]=p;g=u}l.length<e.length&&(e=l)}c[f]=e}}return c}function Rb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Sb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.A[l]?q("Input port "+x(l)+" already registered"):f.A[l]=[h,!1]}}function Tb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,l=1==h?255:2==h?65535:-1,p=l;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=l:p&=l),a.K&&a.D!=g[1]&&Ub(a.K,b,p)):a.K&&(Fa(a.K,a,b,null,c),a.D&&Ub(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function Qb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var n=e[g],u=g+1;u<e.length&&e[u]===n;)u++;l[h++]=u-g;l[h++]=n;g=u}l.length<e.length&&(e=l)}c[f]=e}}return c}function Rb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Sb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.A[l]?q("Input port "+x(l)+" already registered"):f.A[l]=[h,!1]}}function Tb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,l=1==h?255:2==h?65535:-1,n=l;void 0!==g?(g[0]&&(n=g[0](b,c),void 0===n?n=l:n&=l),a.K&&a.D!=g[1]&&Ub(a.K,b,n)):a.K&&(Fa(a.K,a,b,null,c),a.D&&Ub(a.K,b,n));e|=n<<f;f+=h<<3;b+=h;d-=h}return e}
function Vb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Wb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.B[l]?q("Output port "+x(l)+" already registered"):f.B[l]=[h,!1]}}
function Xb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g){if(g[0])g[0](b,l,d);a.K&&a.F!=g[1]&&Yb(a.K,b,l)}else a.K&&(Fa(a.K,a,b,l,d),a.F&&Yb(a.K,b,l));f+=h<<3;b+=h;e-=h}}function Fb(a,b,c){q("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Gb=1,Ib=2,Zb;if(wb){var $b=new ArrayBuffer(2);(new DataView($b)).setUint16(0,256,!0);Zb=256===(new Uint16Array($b))[0]}else Zb=!1;var ac=Zb;
function z(a,b,c,d){this.id=bc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||cc;this.u=d==dc;Db(this);this.Ca=this.Dc=!1;if(c)if(wb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),fc(this,ac?gc:hc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;fc(this,ic)}else fc(this)}k=z.prototype;
@ -77,7 +77,7 @@ k.rb=function(a,b){this.K&&Da(this.K,129)&&this.K.message("attempt to write "+x(
k.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.Ca=!0};k.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;xc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};k.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;xc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
k.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;xc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};k.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;xc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};k.fe=function(a){return this.g[a]};k.he=function(a){return this.g[a]};k.je=function(a){return this.R.getUint16(a,!0)};k.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};k.se=function(a,b){this.g[a]=b;this.Ca=!0};
k.ue=function(a,b){this.g[a]=b;this.Ca=!0};k.we=function(a,b){this.R.setUint16(a,b,!0);this.Ca=!0};k.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ca=!0};var cc=0,dc=2,Hb=["NONE","RAM","ROM","VID","H/W"],bc=0,sc=[],ic=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],vc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(wb)var hc=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],gc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function yc(a,b){n.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Fa/1E4)/100;this.Z=this.Ta*this.U;this.G.ka=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);ya(this)}aa(yc,n);k=yc.prototype;
function yc(a,b){p.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Fa/1E4)/100;this.Z=this.Ta*this.U;this.G.ka=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);ya(this)}aa(yc,p);k=yc.prototype;
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<zc.length;b++)(c=this.P[zc[b]])&&this.R.ca(null,zc[b],c);this.W=Ab(a,"ChipSet");a=Ac(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);ya(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.va=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Dc(a),a.ea&&(b=a.ea,a.ea=null,Ec(a,b))):this.i("No debugger detected")}Fc(this);return!0};k.ua=function(a){return a?this.save():!0};k.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};k.Ec=function(){return 0};
function Cc(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.ya=0,a.oa=a.za-a.la)}function Gc(a,b){if(a.G.Wa){var c=!1;a.ya=a.ya+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Hc(a)&&(a.na=a.sa=-1,Cc(a),a.da(),c=!0);c&&a.i(Hc(a)+" cycles: checksum="+t(a.ya))}}
@ -89,7 +89,7 @@ this.Ha+=c;this.X+=c;Gc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=th
(10*f))/100,864E5<=f&&(this.la=0,Ic(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Ha;this.ea+=e;c(d,e)}else Fc(this),this.R&&this.R.stop(ga(),Hc(this))};k.Eb=function(){return 0};k.da=function(a){Aa(this,!0);Oc(this);Jc(this,this.X);this.X=0;if(this.G.ka){this.G.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Fc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)Rc(c.A[d],b);Pc(a.R,b)}}var Lc=30,Qc=15,zc=["power","reset"];
function Sc(a){var b=+a.model||8080;yc.call(this,a,1E6);this.xb=b;this.gb=Tc;Bc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;Uc(this)}aa(Sc,yc);function Vc(a,b){a.La.push(b)}k=Sc.prototype;k.reset=function(){this.G.ka&&this.da();Uc(this);Bc(this);this.G.error=!1;yc.prototype.reset.call(this)};function Uc(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);Wc(a,0);a.S=0}function id(a,b){a.hb=b;A(a,b)}
k.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+jd(this)|0};k.save=function(){var a=new kd(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,jd(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,Qb(this.H));return a.data()};
k.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]);Wc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Ic(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 l=e[h++],p=e[h++];l--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.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]);Wc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Ic(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 l=e[h++],n=e[h++];l--;)g[f++]=n;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.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=yc.prototype.ca.call(this,a,b,c)}return a};function ld(a){return a.w<<8|a.A}function md(a,b){a.w=b>>8&255;a.A=b&255}function nd(a){return a.B<<8|a.C}function od(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function pd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function qd(a){return a.I&256?1:0}function rd(a,b){a.I=a.I&255|b}function sd(a){return xb[a.L&255]?4:0}function td(a){return(a.L^a.O)&16?16:0}function ud(a){return a.I&255?0:64}function vd(a){return a.L&128?128:0}function jd(a){return a.N&-214|vd(a)|ud(a)|td(a)|sd(a)|qd(a)}function Wc(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 wd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function xd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function yd(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function zd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Ad(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Bd(a,b){return a.L=a.I=a.O=a.g|b}function Cd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
@ -120,7 +120,7 @@ qd(this)||A(this,a);this.b-=10},function(){var a=F(this);Xb(this.H,a,this.g,this
11},function(){H(this,D(this));this.b-=11},function(){this.g=yd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){sd(this)&&(A(this,Gd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);sd(this)&&A(this,a);this.b-=10},function(){var a=D(this);pd(this,nd(this));od(this,a);this.b-=5},function(){var a=G(this);sd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){this.g=Ed(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){vd(this)||(A(this,Gd(this)),this.b-=6);this.b-=5},function(){var a=Gd(this);Wc(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);vd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);vd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,jd(this)&255|this.g<<8);this.b-=11},function(){this.g=Bd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){vd(this)&&
(A(this,Gd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);vd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Hd(this)},function(){var a=G(this);vd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){Cd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Pd(a){n.call(this,"ChipSet",a,32768);var b=a.model;b&&!Qd[b]&&ha("Unrecognized ChipSet model: "+b);this.g=Qd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);ya(this)}aa(Pd,n);k=Pd.prototype;k.ca=function(){return!1};
function Pd(a){p.call(this,"ChipSet",a,32768);var b=a.model;b&&!Qd[b]&&ha("Unrecognized ChipSet model: "+b);this.g=Qd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);ya(this)}aa(Pd,p);k=Pd.prototype;k.ca=function(){return!1};
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=Ab(a,"Keyboard");this.C=Ab(a,"SerialPort");this.video=Ab(a,"Video");Sb(b,this,this.g.Bb);Wb(b,this,this.g.Cb);if(d){var e=this;Rd(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=x(e.j[b]);e.K.i(a)})}};k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
k.save=function(){var a=new kd(this);switch(this.g.pa){case Sd.pa:a.set(0,[this.ea,this.A,this.ga,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case Sd.pa:return this.ea=b[0],this.A=b[1],this.ga=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};k.start=function(){};k.stop=function(){};k.Jd=function(a,b){var c=this.ea;r(this,a,null,b,"STATUS0",c,!0);return c};
@ -135,17 +135,17 @@ vb:16383}},Qd={SI1978:Sd,VT100:J};Sd.INIT=[[Sd.pd.bb,Sd.Oa.bb,Sd.qd.bb,0,0,0,0]]
J.INIT=[[J.Oc.INIT,J.xa.ic|J.xa.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],
[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]]];Sd.Bb={0:Pd.prototype.Jd,1:Pd.prototype.Kd,2:Pd.prototype.Ld,3:Pd.prototype.Id};
Sd.Cb={2:Pd.prototype.Wd,3:Pd.prototype.Yd,4:Pd.prototype.Xd,5:Pd.prototype.Zd,6:Pd.prototype.$d};J.Bb={66:Pd.prototype.Md};J.Cb={66:Pd.prototype.ae,98:Pd.prototype.de,162:Pd.prototype.ce,194:Pd.prototype.be};mb(function(){for(var a=qa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Pd(d);pa(d,c)}});
function Xd(a){n.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=Ja(this.j);if(this.j){a=this.j;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){Yd(c,a,b,f)})}}aa(Xd,n);Xd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Zd(this)};
Xd.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,p=h.a;if(void 0!==l){var u=f,l=[l>>>0,g],v=Ua(u,l,a.Ac);0>v&&u.splice(-(v+1),0,l)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Mf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};Xd.prototype.ua=function(){return!0};
function Xd(a){p.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=Ja(this.j);if(this.j){a=this.j;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){Yd(c,a,b,f)})}}aa(Xd,p);Xd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Zd(this)};
Xd.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,n=h.a;if(void 0!==l){var u=f,l=[l>>>0,g],v=Ua(u,l,a.Ac);0>v&&u.splice(-(v+1),0,l)}n&&(h.a=n.replace(/''/g,'"'))}a.A.push({Mf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};Xd.prototype.ua=function(){return!0};
function Yd(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ga(b[e],16);Zd(a)}}
function Zd(a){if(!xa(a))if(!a.j)ya(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)wa(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")");else{var b;b=a.A;if(Eb(a.H,b,a.g,dc)){var c;for(c=0;c<a.b.length;c++)Ob(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=[],l=d.A>>>f.g;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.w}}delete a.b}}ya(a)}}mb(function(){for(var a=qa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Xd(d);pa(d,c)}});
function $d(a){n.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=Ja(this.b);if(this.b){a=this.b;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ea(c.eb,a,b),(a=Ya(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ae(c))})}}aa($d,n);
function $d(a){p.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=Ja(this.b);if(this.b){a=this.b;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ea(c.eb,a,b),(a=Ya(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ae(c))})}}aa($d,p);
$d.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ae(this)};$d.prototype.va=function(){return!0};$d.prototype.ua=function(){return!0};
function ae(a){!a.j&&a.A&&Eb(a.H,a.w,a.A,1)&&(a.j=!0);if(!xa(a)){if(!a.j)q("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++)Ob(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==be){for(c=0;c<ce.length;c++)Ob(a.H,ce[c],118);Vc(a.u,function(a){return function(b){if(0<=ce.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==de)switch(c=!0,d.A){case ee:fe(a,String.fromCharCode(d.C));break;case ge:for(var l=nd(d),p="",u=255;u--;){var v=E(a.u,l++);if(36==v)break;
p+=String.fromCharCode(v)}fe(a,p);break;default:c=!1}c?Nd.call(d):e&&(a.i("\nCP/M vector "+x(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}id(a.u,a.Ia)}delete a.g}ya(a)}}$d.prototype.reset=function(){};function fe(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var de=5,ee=2,ge=9,be=256,ce=[0,de];mb(function(){for(var a=qa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new $d(d);pa(d,c)}});
function he(a){n.call(this,"Keyboard",a,65536);(a=a.model)&&!De[a]&&ha("Unrecognized Keyboard8080 model: "+a);this.b=De[a]||{};this.reset();ya(this)}aa(he,n);k=he.prototype;
function ae(a){!a.j&&a.A&&Eb(a.H,a.w,a.A,1)&&(a.j=!0);if(!xa(a)){if(!a.j)q("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++)Ob(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==be){for(c=0;c<ce.length;c++)Ob(a.H,ce[c],118);Vc(a.u,function(a){return function(b){if(0<=ce.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==de)switch(c=!0,d.A){case ee:fe(a,String.fromCharCode(d.C));break;case ge:for(var l=nd(d),n="",u=255;u--;){var v=E(a.u,l++);if(36==v)break;
n+=String.fromCharCode(v)}fe(a,n);break;default:c=!1}c?Nd.call(d):e&&(a.i("\nCP/M vector "+x(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}id(a.u,a.Ia)}delete a.g}ya(a)}}$d.prototype.reset=function(){};function fe(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var de=5,ee=2,ge=9,be=256,ce=[0,de];mb(function(){for(var a=qa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new $d(d);pa(d,c)}});
function he(a){p.call(this,"Keyboard",a,65536);(a=a.model)&&!De[a]&&ha("Unrecognized Keyboard8080 model: "+a);this.b=De[a]||{};this.reset();ya(this)}aa(he,p);k=he.prototype;
k.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 gb("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?Ee(d,16,!0,!0):Ee(d,16,!1),Ee(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Fe(d,a,!0)},c.onkeyup=function(a){return Fe(d,a,!1)}):(c.onkeydown=function(a){return Ge(d,a,!0)},
c.onkeyup=function(a){return Ge(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(He|Ie)||(d.g|=Ie,Ee(d,20,!0),Je(d)):a>=m.yc&&a<=m.z&&d.g&Ie&&(d.g&=~Ie,Ee(d,20,!1),Je(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)){Ke(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=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Le:20==b&&(e=Ie);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Me(a,b,d)}Ee(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};k.Ea=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Mc(this.u,function(){Ne(e)});this.W=Ab(a,"ChipSet");this.C=Ab(a,"SerialPort");Sb(b,this,this.b.Bb);Wb(b,this,this.b.Cb)};
@ -163,27 +163,27 @@ 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},Ba:{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.Ba.bd,l3:K.Ba.ad,l2:K.Ba.$c,l1:K.Ba.Zc,locked:K.Ba.cd,local:K.Ba.fc,online:~K.Ba.fc,"caps-lock":Ie};var De={SI1978:Oe,VT100:K};
K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:he.prototype.Nd};K.Cb={130:he.prototype.ee};mb(function(){for(var a=qa(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new he(d);pa(d,c)}});
function af(a,b,c,d,e){n.call(this,"Video",a,262144);var f=this;this.Ta=gb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&bf[h.toUpperCase()]||cf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=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&&
function af(a,b,c,d,e){p.call(this,"Video",a,262144);var f=this;this.Ta=gb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&bf[h.toUpperCase()]||cf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=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.ya=!1);b=a.smoothing;(c=hb("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(){df(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(){df(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=Ka(this.S)&&(this.S=Oa()+"/api/v1/dump?file="+this.S+"&format=bytes"),Xa(this.S,null,!0,function(a,b,c){ef(f,a,b,c)});this.Fa={}}aa(af,n);
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(){df(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=Ka(this.S)&&(this.S=Oa()+"/api/v1/dump?file="+this.S+"&format=bytes"),Xa(this.S,null,!0,function(a,b,c){ef(f,a,b,c)});this.Fa={}}aa(af,p);
function Vd(a){a.C=a.O*a.fa;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,!Eb(a.H,a.la,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,ff(a,a.L>>1)):ff(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.wa=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+gf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==hf&&(a.U[a.X+jf]=[255,255,0,255],a.U[a.X+kf]=[0,255,0,255]);a.Y==lf&&(a.jb=60,a.za=!1,a.ga=Array(a.O));
return!0}k=af.prototype;k.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Fa[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};
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;Vd(this);if(this.B=Ab(a,"Keyboard")){for(var e in this.Fa)this.B.ca("led",e,this.Fa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Mc(this.u,function(){Rc(f)});Nc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||ya(this)};
function ef(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.ea=f,Wd(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)&&ya(a)}}
function Wd(a){a.ea&&(a.Na=a.Y==lf,a.T[mf]=[nf(a,a.fa,a.ba),nf(a,a.fa,a.ba,a.za)],a.T[of]=[nf(a,2*a.fa,a.ba),nf(a,2*a.fa,a.ba,a.za)],a.T[pf]=a.T[qf]=[nf(a,2*a.fa,2*a.ba),nf(a,2*a.fa,2*a.ba,a.za)])}
function nf(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,l={fa:b,ba:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var p=l.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.fa;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.fa;ja++)h&&(C=!C),rf(a,p,za,B,C?1:0),za++;C=L}B++}l.context.putImageData(p,
function nf(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,l={fa:b,ba:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var n=l.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.fa;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.fa;ja++)h&&(C=!C),rf(a,n,za,B,C?1:0),za++;C=L}B++}l.context.putImageData(n,
(u&15)*b,(u>>4)*c)}return l}k.va=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ua=function(a){return!a||this.save()};k.save=function(){var a=new kd(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
k.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 df(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Ea(a,"notifyFullScreen("+b+")")}function ff(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function rf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==hf&&(208<=c&&236>c?e=a.X+jf:28<=c&&72>c&&(e=a.X+kf));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 Rc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Id(a.u,2),c=!1):Id(a.u,1):Id(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Nc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.fa)switch(a.Y){case lf:for(var c=a.la,d=-1,e=0,f=60==a.jb?2:5,h=g=0,l=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=mf&&(B>>=1);;){var y=Jb(a.H,u++);if((y&sf)==sf){var w=Jb(a.H,u++),d=w&tf,c=(w&uf)<<8|Jb(a.H,u),c=c+(w&vf?
wf:xf);break}if(p<B)a.ga[p++]=y;else break}if(f)f--;else{for(;p<a.ga.length;)a.ga[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.ga[B];if(!u||y!==a.A[g]){a.A[l=g]=y;var w=a,C=a.wa,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.fa,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.fa,ec=y.ba;C?(L=B*w.fa,ja=e*w.ba,ua=w.fa,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.fa>w.fa&&(L*=2,ua*=2);y.ba>w.ba&&(v==qf&&(T+=w.ba),ec=w.ba);C?C.drawImage(y.canvas,za,T,Ma,ec,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,ec,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[l]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.la;f=e+a.L;l=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=Lb(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,rf(a,a.Va,h++,l,za),C+=u;h>p&&(p=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
function Rc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Id(a.u,2),c=!1):Id(a.u,1):Id(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Nc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.fa)switch(a.Y){case lf:for(var c=a.la,d=-1,e=0,f=60==a.jb?2:5,h=g=0,l=-1;e<a.Z;){var n=0,u=c,v=d,B=a.O;for(v!=mf&&(B>>=1);;){var y=Jb(a.H,u++);if((y&sf)==sf){var w=Jb(a.H,u++),d=w&tf,c=(w&uf)<<8|Jb(a.H,u),c=c+(w&vf?
wf:xf);break}if(n<B)a.ga[n++]=y;else break}if(f)f--;else{for(;n<a.ga.length;)a.ga[n++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<n;B++){y=a.ga[B];if(!u||y!==a.A[g]){a.A[l=g]=y;var w=a,C=a.wa,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.fa,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.fa,ec=y.ba;C?(L=B*w.fa,ja=e*w.ba,ua=w.fa,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.fa>w.fa&&(L*=2,ua*=2);y.ba>w.ba&&(v==qf&&(T+=w.ba),ec=w.ba);C?C.drawImage(y.canvas,za,T,Ma,ec,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,ec,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[l]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.la;f=e+a.L;l=h=g=0;b=a.C;n=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=Lb(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,rf(a,a.Va,h++,l,za),C+=u;h>n&&(n=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;b<a.C&&(e=n-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.wa.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 jf=0,kf=1,gf=2,cf=0,hf=1,lf=2,bf={SI1978:hf,VT100:lf},mf=96,of=64,pf=32,qf=0,sf=127,uf=15,vf=16,tf=96,wf=8192,xf=16384;
mb(function(){for(var a=qa(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=oa(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<=bb().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||hb("aspect"));f&&.3<=f&&3.33>=f&&(lb("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");gb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new af(d,e,g,f,c);pa(d,c)}});
function yf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=zf;b&&(void 0===c&&(c="Panel"),(c=ma(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(yf,n);k=yf.prototype;k.ca=function(a,b,c,d){var e=this;switch(b){case zf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Af(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Af(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
function yf(a){p.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=zf;b&&(void 0===c&&(c="Panel"),(c=ma(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(yf,p);k=yf.prototype;k.ca=function(a,b,c,d){var e=this;switch(b){case zf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Af(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Af(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Mc(this.u,function(){e.Ob()});this.Z=Mc(this.u,function(){Ke(e)});this.W=Ab(a,"ChipSet");Sb(b,this,Bf,this.U);Wb(b,this,Cf,this.U);ya(this)};
k.Fc=function(a){if(!this.b){var b=Ac(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Sa(c[0]);if(d!=this.cb)return;c=Sa(c[1]);if(this.b=la(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.va=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){Df(this)};k.save=function(){var a=new kd(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};k.restore=function(a){return Df(this,a[0])};
@ -192,18 +192,18 @@ k.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCod
k.Vd=function(a,b,c){r(this,a,b,c,"DATA");this.O=b;this.ia&=~(Ud|Nf);Ea(this,"transmitByte("+Ia(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=Ta[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=Ra("",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&&Nc(this.u,this.Z,Ff(this,Of))};k.Ud=function(a,b,c){r(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Pf|Qf)&&(a=0,this.D?(a|=b&Pf?32:0,a|=b&Qf?320:0):(a|=b&Pf?16:0,a|=b&Qf?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&Rf&&(this.F=!1)):(this.B=b,this.F=!0)};k.Td=function(a,b,c){r(this,a,b,c,"BAUDRATES");this.L=b};
var Hf=12,If=16,Jf=192,Qf=2,Pf=32,Rf=64,Ud=1,Kf=2,Nf=4,Mf=128,Lf=15,Of=240,Gf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Ef=[!1,0,0,133,142,39,238],zf="buffer",Bf={0:yf.prototype.Hd,1:yf.prototype.Gd},Cf={0:yf.prototype.Vd,1:yf.prototype.Ud,2:yf.prototype.Td};mb(function(){for(var a=qa(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new yf(d);pa(d,c)}});
function Sf(a){n.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(Sf,n);Sf.prototype.Kb=function(){return-1};Sf.prototype.Lb=function(){};
function Sf(a){p.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(Sf,p);Sf.prototype.Kb=function(){return-1};Sf.prototype.Lb=function(){};
Sf.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(Sa(a.substring(d,f))),d=f+1}}return b};
function Tf(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<<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 "^":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 Uf(a,b,c){var d;if(b){b=Vf(a,b);for(var e=0,f=!1,g=b,h=[],l=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Sa(u);if(!u){f=!0;break}u=Wf(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(u);if(e==p.length)break;var u=p[e++],B=u.length;l.length&&Xf[u]<Xf[l[l.length-1]]&&Tf(h,l,1);l.push(u);b=b.substr(v+B)}Tf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Yf(a,null,
function Uf(a,b,c){var d;if(b){b=Vf(a,b);for(var e=0,f=!1,g=b,h=[],l=[],n=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var u=n[e++],v=u.length,u=Sa(u);if(!u){f=!0;break}u=Wf(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(u);if(e==n.length)break;var u=n[e++],B=u.length;l.length&&Xf[u]<Xf[l[l.length-1]]&&Tf(h,l,1);l.push(u);b=b.substr(v+B)}Tf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Yf(a,null,
d))}return d}function Vf(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Uf(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Zf(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.Y}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Wf(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=Ga(b,a.na))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Yf(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 l=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==l||isNaN(l),y=p=p||u;0<u--;)y||(v=","+v,y=p),v=(B?"?":l&1?"1":"0")+v,l>>=1,y--;g=v+g;d>>=8}d=t(c,0,!0)+" "+c+". "+Ha(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Yf(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 l=d&255,n=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==l||isNaN(l),y=n=n||u;0<u--;)y||(v=","+v,y=n),v=(B?"?":l&1?"1":"0")+v,l>>=1,y--;g=v+g;d>>=8}d=t(c,0,!0)+" "+c+". "+Ha(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function $f(a,b){if(b)return Yf(a,b,a.S[b]);var c=0;for(b in a.S)Yf(a,b,a.S[b]),c++;return 0<c}function Zf(a,b){switch(a.na){case 8:a=Ha(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}var Xf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function ag(a){Sf.call(this,a);this.style=bg;this.F=cg();this.la=cg();this.O=cg();this.A=[];this.j=this.I=this.w=[];dg(this);this.W=0;eg(this);this.Z={};fg(this,a.messages);this.ea=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Ec(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Ec(b,a)})}aa(ag,Sf);k=ag.prototype;
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Ac(a,"messages"))&&fg(this,a);this.ga=gg;Rd(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,l=b.length;if(c){a=hg(ig(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;l--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Hb[c],u&&d.i(t(u.id)+" %"+t(e<<d.H.g)+" %%"+t(u.J)+" "+x(u.pb)+" "+
x(u.size)+" "+p),c!=cc&&(c=-1),p=0);a+=d.H.w;e++}}});ya(this)};
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Ac(a,"messages"))&&fg(this,a);this.ga=gg;Rd(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,l=b.length;if(c){a=hg(ig(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;l--;){var u=b[e];u.type==c?n++||d.i("..."):(c=u.type,n=Hb[c],u&&d.i(t(u.id)+" %"+t(e<<d.H.g)+" %%"+t(u.J)+" "+x(u.pb)+" "+
x(u.size)+" "+n),c!=cc&&(c=-1),n=0);a+=d.H.w;e++}}});ya(this)};
k.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="",Ec(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,kb(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Ec(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,kb(c,function(a){var b=!1;Aa(d,!0)||(Ca(d,!0),b=jg(d,a?1:0),Ca(d,!1));return b}),!0}return!1};k.Za=function(){this.U&&this.U.focus()};function hg(a){a=a&&a.J;null==a&&(a=-1);return a}k.Ga=function(a,b){var c=255,d=hg(a);-1!==d&&(c=Jb(this.H,d),b&&kg(a,b));return c};k.Gb=function(a,b){var c=65535,d=hg(a);-1!==d&&(c=Lb(this.H,d),b&&kg(a,b));return c};k.Xb=function(a,b,c){var d=hg(a);-1!==d&&(Ob(this.H,d,b),c&&kg(a,c),Fc(this.u,!0))};
k.Qc=function(a,b,c){var d=hg(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&&kg(a,c);Fc(this.u,!0)}};function cg(a){return{J:a,Da:!1}}function lg(a){return[a.J,a.Da]}function mg(a){return{J:a[0],Da:a[1]}}
@ -223,8 +223,8 @@ function Kd(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||xc(a,b,1,a.j)))return!0;0<=c&
function dg(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;wc(d.b[hg(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,wc(d.b[hg(c)>>>d.g],!0);a.w=["bw"];a.oa=0}k.Pa=function(a,b,c){var d=!0;c||lh(this,a,b,!1,!0);if(a!=this.j){var e=hg(b);if(-1===e)this.i("invalid address: "+Mg(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.Da=!0:(mh(this,a,a.length-1,"set"),eg(this)));return d};
function lh(a,b,c,d,e){var f=!1;c=hg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==hg(h)&&(!d||h.Da)){f=!0;h.Da||e||mh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,wc(d.b[c>>>d.g],b==a.w));h.Da||eg(a);break}}return f}function nh(a,b){for(var c=1;c<b.length;c++)mh(a,b,c);return b.length-1}function mh(a,b,c,d){c=b[c];a.i(b[0]+" "+Mg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function kh(a,b){if(void 0!==b)xc(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.Da){if(!lh(a,a.j,c,!0))break;b=0}}}
function xc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var l=hg(h),p=0;p<c;p++)if(b+p==l){var u,f=!0;h.Da&&(lh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!oh(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.ka||(f=!0)}if(f){e||mh(a,d,g,"hit");break}}}a.oa--;return f}
function ph(a,b,c,d){for(var e=cg(b.J),f=a.Ga(b,1),g=a.ga[f],h="",l=(a.style!=qh?rh:sh)[g[0]],p=g.length-1,u=th,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==bg)){var w=v&uh;if(w){var C=v&vh;C?u=C:v|=u;v&wh||(v|=1==B?xh:yh);if(w&P)a:{y=a;w=v;C=b;switch(w&vh){case Q:C=t(y.Ga(C,1),2);break;case zh:C=t(y.Ga(C,1)<<24>>24,4);break;case Ah:C=t(y.Gb(C,2),4);break;default:y="imm("+x(w)+")";break a}y.style==qh&&w&Bh?C="["+C+"]":w&Ch||(C=(y.style==bg?"$":"0x")+C);y=C}else w&Ch?(y=(v&Dh)>>8,
function xc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var l=hg(h),n=0;n<c;n++)if(b+n==l){var u,f=!0;h.Da&&(lh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!oh(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.ka||(f=!0)}if(f){e||mh(a,d,g,"hit");break}}}a.oa--;return f}
function ph(a,b,c,d){for(var e=cg(b.J),f=a.Ga(b,1),g=a.ga[f],h="",l=(a.style!=qh?rh:sh)[g[0]],n=g.length-1,u=th,v,B=1;B<=n;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==bg)){var w=v&uh;if(w){var C=v&vh;C?u=C:v|=u;v&wh||(v|=1==B?xh:yh);if(w&P)a:{y=a;w=v;C=b;switch(w&vh){case Q:C=t(y.Ga(C,1),2);break;case zh:C=t(y.Ga(C,1)<<24>>24,4);break;case Ah:C=t(y.Gb(C,2),4);break;default:y="imm("+x(w)+")";break a}y.style==qh&&w&Bh?C="["+C+"]":w&Ch||(C=(y.style==bg?"$":"0x")+C);y=C}else w&Ch?(y=(v&Dh)>>8,
w=Og[y],a.style==qh&&v&Bh&&(y==Xg&&(w="HL"),w="["+w+"]"),y=w):w&Eh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Mg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=t(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=Ra(f,10);g+=v&Fh?"*":" ";g+=Ra(l,7);h&&(g+=" "+h);c&&(g=Ra(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Hc(a.u).toString()+" cs="+t(a.u.ya)):g+(null!=d?"="+d.toString():""));return g}
function Gh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=vd(a.u);break;case "ZF":a=ud(a.u);break;case "AF":a=td(a.u);break;case "PF":a=sd(a.u);break;case "CF":a=qd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Hh(a,b){return Og[b]+"="+Pg(a,b)+" "}function Ih(a){return Hh(a,Qg)+Hh(a,Yg)+Hh(a,Zg)+Hh(a,$g)+Hh(a,ah)+Gh(a,"IF")+Gh(a,"SF")+Gh(a,"ZF")+Gh(a,"AF")+Gh(a,"PF")+Gh(a,"CF")}k.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jh(a,b,c){var d=[],e=hg(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=Ua(f.zc,[e-g],a.Ac);0<=e?Kh(a,b,e,d):c&&(e=~e,Kh(a,b,e-1,d),Kh(a,b,e,d));break}}return d}function Kh(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)}
@ -236,9 +236,9 @@ function Oh(a,b){switch(b[1]){case "8080":a.style=bg;break;case "8086":a.style=q
function ih(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=Uf(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=cg(d.j);break;case "PS":Wc(d,f);break;case "PSW":Wc(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?sd(d)||(d.L^=1):sd(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?vd(d)||(d.L^=192):vd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Fc(d);a.i("updated registers:")}a.i(Ih(a));c&&(a.F=cg(d.j),jh(a,Mg(a.F.J)))}}function Ph(a,b){b=Sa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(eh(a,c[2])):Uf(a,b,!0)}function Qh(a,b,c){var d="t"!=b;c=Wf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);jb(c,function(){return Ca(a,!0)&&jg(a,e,d,!1)},function(){Fc(a.u);Ca(a,!1)})}
function jh(a,b,c,d){if(b=ig(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ig(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=Aa(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Jh(a,b),l=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=ph(a,b,g,f);a.i(f);a.F=b;e-=b.J-l;c++}}}
function jh(a,b,c,d){if(b=ig(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ig(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=Aa(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Jh(a,b),l=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.i(n)}h[3]&&(g=h[3],f=null);f=ph(a,b,g,f);a.i(f);a.F=b;e-=b.J-l;c++}}}
k.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(Sa(a.substring(d,f))),d=f+1}}return b};
function oh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Mg(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(xa(a)&&0<b.length){a.L&&(b="a "+Mg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),l=1;l<g.length;l++){var p=g.charAt(l);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(l);f.unshift(g.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var u=ig(a,f[1],!0);if(u)if(a.O=
function oh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Mg(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(xa(a)&&0<b.length){a.L&&(b="a "+Mg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),l=1;l<g.length;l++){var n=g.charAt(l);if("?"==h||"r"==h||"a">n||"z"<n){f[0]=g.substr(l);f.unshift(g.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var u=ig(a,f[1],!0);if(u)if(a.O=
u,void 0===f[2])a.i("begin assemble at "+Mg(u.J)),a.L=!0,Fc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(ph(a,a.O))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
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+nh(a,a.j);za+=nh(a,a.I);(za+=nh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=Wf(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=cg();if("*"!=w&&(L=ig(a,w,!0),!L))break a;w=x(L.J);"c"==T?null==L.J?(dg(a),a.i("all breakpoints cleared")):lh(a,a.j,L)||lh(a,a.I,L)||lh(a,a.w,L)||a.i("breakpoint missing: "+Mg(L.J)):
"i"==T?a.i("breakpoint "+(Rb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(Vb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Kg(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.ta&&(a.ta.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],ec=f[3];if("?"==na){var Mb="";for(ja in yb)a.Z[ja]&&(Mb&&(Mb+=","),Mb+=ja);Mb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
@ -262,9 +262,9 @@ S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,Th],[34,51],[30,51],[11,51],[51,Th],[4,R|O,P|Q],[65,Eh],[62],[54],[38,51],[30,51|Fh],[15,51],[7,51],[1,R|O,P|Q],[65,Eh],[57],[50,Uh],[33,51],[48,P|Q,R|O],[10,51],[51,Uh],[74,R|O,P|Q],[65,Eh],[55],[54,Fh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Fh],[67,R|O,P|Q],[65,
Eh],[61],[50,Vh],[37,51],[78,Wh|Bh|O,Vh|O],[14,51],[51,Vh],[6,R|O,P|Q],[65,Eh],[60],[49,Vh],[36,51],[75,Vh|O,Uh|O],[13,51],[7,51|Fh],[77,R|O,P|Q],[65,Eh],[59],[50,Xh],[35,51],[24],[12,51],[51,Xh],[47,R|O,P|Q],[65,Eh],[56],[69,Wh|O,Vh|O],[32,51],[25],[9,51],[7,51|Fh],[19,R|O,P|Q],[65,Eh]],fh=1E3;mb(function(){for(var a=qa(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new ag(d);pa(d,c)}});
function Yh(a,b,c){n.call(this,"Computer",a,67108864);this.G.ja=!1;Zh(this,b);this.L=Ac(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=$h;this.F=null;this.C=this.O=!1;this.U=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.g=ai(this);if(this.u=ma("CPU",this.id)){this.K=ma("Debugger",this.id);this.A=[];for(b=null;b=Ab(this,"Video",b);)this.A.push(b);this.H=new Cb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=ka(this.id);if((this.B=ma("Panel",this.id))&&this.B.ta)for(b=
function Yh(a,b,c){p.call(this,"Computer",a,67108864);this.G.ja=!1;Zh(this,b);this.L=Ac(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=$h;this.F=null;this.C=this.O=!1;this.U=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.g=ai(this);if(this.u=ma("CPU",this.id)){this.K=ma("Debugger",this.id);this.A=[];for(b=null;b=Ab(this,"Video",b);)this.A.push(b);this.H=new Cb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=ka(this.id);if((this.B=ma("Panel",this.id))&&this.B.ta)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ta=this.B.ta;this.i("PC8080 v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.H,this.u,this.K);b=null;d=Ac(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Ac(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=$h),this.b&&(this.I=new kd(this,"1.34.0"),bi(this.I)?
b=null:delete this.I);!b&&this.b&&(b=ci(this))&&(this.C=!0);if(b){var g=this;Xa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Sa(b):"")+")")):(g.F=b,g.O=!0);ya(g)})}else ya(this);this.P.power||(this.L=!0);!c&&this.L&&di(this,this.nb)}else q("Unable to find CPU component")}aa(Yh,n);function Zh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
b=null:delete this.I);!b&&this.b&&(b=ci(this))&&(this.C=!0);if(b){var g=this;Xa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Sa(b):"")+")")):(g.F=b,g.O=!0);ya(g)})}else ya(this);this.P.power||(this.L=!0);!c&&this.L&&di(this,this.nb)}else q("Unable to find CPU component")}aa(Yh,p);function Zh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function Ac(a,b,c){var d=b.toLowerCase(),d=hb(b)||hb(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function di(a,b,c){for(var d=ka(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!xa(f)){xa(f,function(){di(a,b,c)});return}}b.call(a,c)}
function ei(a,b){var c=new kd(a,"1.34.0",fi);if(bi(c)&&gi(c)){var d=c.get(hi),e=b?b.get(hi):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Yh.prototype;
k.nb=function(a){void 0===a&&(a=this.b||(this.F?ii:$h));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new kd(this,"1.34.0");if(a==ji)b=!0;else if(a>$h){if(bi(d,this.F)){this.w=new kd(this,"1.34.0",ki);bi(this.w)&&(li(this,d),a=mi,ni(this.w));this.w.set(hi,Va());oi(this.w);var e=this.b&&!this.C;if(a==ii||ia("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=gi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?bi(d,g):("error"==f&&"no machine state"!=
@ -272,7 +272,7 @@ g?(this.aa("Error: "+g),"unable to verify user"==g&&(fb(pi,""),this.g=null)):thi
function qi(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=$h,window&&window.location.reload()):a.N=!0,b.va(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(qi(this,this.u,b,c,a),this.u.lb());this.N&&(li(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function li(a,b){if(ia("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.0"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Xa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Rh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new kd(a,"1.34.0"),g=new kd(a,"1.34.0",fi),h=Va();g.set(hi,h);f.set(hi,h);f.set(ri,"1.34.0");f.set(si,window?window.location.href:null);f.set(ti,bb());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ka(a.id),l=0;l<h.length;l++){var p=h[l];p.G.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Hi(a,
function Rh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new kd(a,"1.34.0"),g=new kd(a,"1.34.0",fi),h=Va();g.set(hi,h);f.set(hi,h);f.set(ri,"1.34.0");f.set(si,window?window.location.href:null);f.set(ti,bb());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ka(a.id),l=0;l<h.length;l++){var n=h[l];n.G.ja&&(n.ua&&(d=n.ua(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Hi(a,
a.g,f.toString()),oi(g)&&oi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ii),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.H&&this.H.reset&&(Ea(this,"Resetting "+this.H.type),this.H.reset());for(var a=ka(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Ea(this,"Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?Rh(d,!1,!0):di(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=ia("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rh(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb($h)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(La())c.parentNode.removeChild(c);else return this.P[b]=
@ -290,9 +290,9 @@ function Mi(a,b,c,d,e,f){e("Loading "+a+"...");Xa(a,null,!0,function(g,h,l){l?(h
function Ni(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ea(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Oi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function Oi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Xa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
function Oi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Xa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Oi(a,b,c)}})}else c(a,null)}
function Pi(a,b,c,d){function e(a){if(void 0===h){var b=g&&qa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Pa(a))}function f(a){e("Error: "+a);l&&(--Li||rb(!0));l=!1}var g,h,l=!0;Li++;fa[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.0/components.xsl");p=function(d,h){h?Mi(c,null,null,!1,e,function(d,l){l?(ea(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Li||rb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Li||rb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Mi(b,a,d,!0,e,p):Ni(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){rb(!1);return Pi(a,b,c,d)};window.findMachineComponent=function(a,b){return ma(b,a+".machine")};
window.processMachineScript=function(a,b,c){b=!1;if("string"==typeof c){b=!0;for(var d=c.length,e=[],f=[],g="",h=null,l=0;l<d;l++){var p=c[l];if('"'==p||"'"==p)h&&p!=h?g+=p:(h?h=null:h=p,g&&(f.push(g),g=""));else{if(!h){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){g&&(f.push(g),g="");";"==p&&f.length&&(e.push(f),f=[]);continue}}g+=p}}g&&f.push(g);f.length&&e.push(f);ra(a+".machine",e,0)||(b=!1)}return b};window.enableEvents=rb;window.sendEvent=tb;})();
function Pi(a,b,c,d){function e(a){if(void 0===h){var b=g&&qa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Pa(a))}function f(a){e("Error: "+a);l&&(--Li||rb(!0));l=!1}var g,h,l=!0;Li++;fa[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=n:v.appendChild(document.createTextNode(n));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.0/components.xsl");n=function(d,h){h?Mi(c,null,null,!1,e,function(d,l){l?(ea(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Li||rb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Li||rb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Mi(b,a,d,!0,e,n):Ni(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){rb(!1);return Pi(a,b,c,d)};window.findMachineComponent=function(a,b){return ma(b,a+".machine")};
window.processMachineScript=function(a,b,c){b=!1;if("string"==typeof c){b=!0;for(var d=c.length,e=[],f=[],g="",h=null,l=0;l<d;l++){var n=c[l];if('"'==n||"'"==n)h&&n!=h?g+=n:(h?h=null:h=n,g&&(f.push(g),g=""));else{if(!h){if("\r"==n||"\n"==n)n=";";if(" "==n||"\t"==n||";"==n){g&&(f.push(g),g="");";"==n&&f.length&&(e.push(f),f=[]);continue}}g+=n}}g&&f.push(g);f.length&&e.push(f);ra(a+".machine",e,0)||(b=!1)}return b};window.enableEvents=rb;window.sendEvent=tb;})();

View file

@ -37,7 +37,7 @@ function fa(a,b,c){b||t((c?c+": ":"")+a)}function t(a){window&&window.alert(a)}f
function ja(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null}function u(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function ka(a,b){b=x(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pc8080-binding":(g=u(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}
function x(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function la(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=ma.indexOf(f)&&(g=function(c){return function(){la(a,b,c)}}(c+1));var h=na[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,m=ja(e[1],a);if(m)if(h=oa[f])d=h(m,e[2],e[3]);else if(h=m.exports)if(h=h[f])if(d=!0,!g)d=h.call(m,e[2],e[3]);else if(!h.call(m,g,e[2],e[3]))break}if(!d){t("Script error ("+f+")");break}c++}return d}k=p.prototype;
function la(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=ma.indexOf(f)&&(g=function(c){return function(){la(a,b,c)}}(c+1));var h=na[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,m=ja(e[1],a);if(m)if(h=oa[f])d=h(m,e[2],e[3]);else{var q=m.exports;if(q&&(h=q[f]))if(d=!0,!g)d=h.call(m,e[2],e[3]);else if(!h.call(m,g,e[2],e[3]))break}}if(!d){t("Script error: "+f+(h?" failed":" unrecognized"));break}c++}return d}k=p.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.S=function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.pa=this.w[b]=c,c.value="",this.aa=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.aa(a,this.Ya)}),!0;default:return!1}};k.log=function(){};k.aa=function(){};
k.status=function(a){this.aa(this.Ya+": "+a)};k.G=function(a,b,c){fa(a,b,c||this.type)};function pa(a,b){b&&(a.i.ready?b():a.eb=b);return a.i.ready}function z(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.eb;a.eb=null;b&&b()}}function qa(a,b){if(a.i.nb)return a.i.ab=!1,a.i.nb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.ab=b;return a.i.ab}k.ca=function(){return this.i.U=!0};k.ba=function(a,b){b&&(this.i.U=!1);return!0};