Updated the build process to formally declare that we're compiling from ES6 to ES5 (although for now, 99.99% of the code is already and will remain ES5.1-compatible)

This commit is contained in:
Jeff 2016-09-24 17:00:57 -07:00 • committed by Jeff Parsons
commit ff6d15a622
12 changed files with 2840 additions and 2837 deletions

View file

@ -1,12 +1,12 @@
(function(){var l,n={me:1,ne:3,oe: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,Ub:65,Hc:66,Jc:67,Xb:68,E:69,Mc:70,Nc:71,Oc:72,Pc:73,Wc:74,Xc:75,Zb:76,dd:77,ed:78,gd:79,hd:80,Q:81,od:82,rd:83,xd:84,yd:85,zd:86,Ad:87,Cd:88,Dd:89,Ed:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ve:97,We:98,Xe:99,d:100,e:101,Ye:102,Ze:103,$e:104,af:105,bf:106,k:107,cf:108,
(function(){var l,m={me:1,ne:3,oe: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,Ub:65,Hc:66,Jc:67,Xb:68,E:69,Mc:70,Nc:71,Oc:72,Pc:73,Wc:74,Xc:75,Zb:76,dd:77,ed:78,gd:79,hd:80,Q:81,od:82,rd:83,xd:84,yd:85,zd:86,Ad:87,Cd:88,Dd:89,Ed:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ve:97,We:98,Xe:99,d:100,e:101,Ye:102,Ze:103,$e:104,af:105,bf:106,k:107,cf:108,
df:109,n:110,ef:111,p:112,q:113,r:114,ff:115,t:116,hf:117,jf:118,kf:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126};
function aa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function t(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ba(a){return t(a,2,!0)}function v(a){return t(a,4,!0)}function ca(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function t(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ba(a){return t(a,2,!0)}function u(a){return t(a,4,!0)}function ca(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ea(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function fa(){var a=ha();return-1!==a.indexOf("pcjs.org",a.length-8)}var ja={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ka(a){return a.replace(/[&<>"']/g,function(a){return ja[a]})}function la(a,b){return(a+" ").slice(0,b)}function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var na={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function oa(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 h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var pa=Date.now||function(){return+new Date};
var na={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function oa(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}var pa=Date.now||function(){return+new Date};
function qa(){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 ra(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 sa(a,b,c,d){var e=0,f=null,h=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)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function sa(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var k="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}function ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function va(){return window?window.navigator.userAgent:""}function w(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}var xa=null;function ya(){if(null==xa){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}xa=a}return xa}
function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=va();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ea={init:[],show:[],exit:[]},Ia=!1,Ja=!1,Ka=!0;function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Ea.init.push(a)}
@ -15,49 +15,49 @@ function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.nam
if(window){Ta||(Ta=window.location.search.substr(1));for(var Va,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Va=Ya.exec(Ta);)Ua[decodeURIComponent(Va[1].replace(Xa," "))]=decodeURIComponent(Va[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function A(a,b){b||(b=z);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),Sa=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},Sa=[];function ab(a,b,c){$a[a]&&b&&($a[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)}
function bb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Sa.length;b++){var d=Sa[b];a&&d.id.indexOf(a)||c.push(d)}return c}function cb(a){if(void 0!==a){var b;for(b=0;b<Sa.length;b++)if(Sa[b].id===a)return Sa[b]}return null}function db(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<Sa.length;d++)if(c)c==Sa[d]&&(c=null);else if(!(a!=Sa[d].type||b&&Sa[d].id.indexOf(b)))return Sa[d]}return null}
function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function eb(a,b){for(var c=E(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=B(h))&&g.binding&&a.pa(g.type,g.binding,h,g.value),m=k.length}}}}
function E(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 B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function eb(a,b){b=D(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(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=B(f))&&g.binding&&a.pa(g.type,g.binding,f,g.value),k=h.length}}}}
function D(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}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=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.ka=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ka:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function F(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.ta),fb(a.H,a,b,c,d,e,f,h))}function gb(a,b){a.H&&hb(a,0)&&a.H.message(b,void 0)}function hb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Id)}return!1}
function ib(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function jb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function G(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function kb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function nb(a,b){a.C.error=!0;a.ka(b)}
this.ka=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ka:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,g){a.H&&(!0===g?g=0:null==g&&(g=a.ta),fb(a.H,a,b,c,d,e,f,g))}function gb(a,b){a.H&&hb(a,0)&&a.H.message(b,void 0)}function hb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Id)}return!1}
function ib(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function jb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function kb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function nb(a,b){a.C.error=!0;a.ka(b)}
var ob="undefined"!==typeof ArrayBuffer,pb=[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],qb={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 rb(a){z.call(this,"Panel",a,rb)}A(rb);l=rb.prototype;
l.pa=function(a,b,c,d){return this.B&&this.B.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.J&&this.J.pa(a,b,c,d)||this.H&&this.H.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.J=sb(a,"Keyboard")};l.Ea=function(a,b){b||tb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function tb(){for(var a=!1,b=E(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=cb(e.id);f||(a=!0,f=new rb(e));eb(f,d);a&&G(f)}}Ma(tb);
function ub(a,b,c){z.call(this,"Bus",a,ub);this.b=b;this.H=c;this.K=a.busWidth||16;this.L=Math.pow(2,this.K);this.w=this.L-1|0;this.ia=(this.K>>1)+2;10>this.ia&&(this.ia=10);15<this.ia&&(this.ia=15);this.Ha=1<<this.ia;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.G=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new H;vb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;G(this)}A(ub);l=ub.prototype;l.reset=function(){};
l.Ea=function(a,b){b||this.reset();return!0};function wb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ia;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ha,m=a.Ha-(e-k);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.yb+=g.F-e,g.F=e,!0;if(e>=g.F+g.yb){m=g.size-(e-k);m>f&&(m=f);g.yb=e-g.F+m;e=k+a.Ha;f-=m;h++;continue}}return xb(1,e,f)}e=new H(e,m,a.Ha,d);vb(e,a.H,g);a.X[h++]=e;e=k+a.Ha;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+yb[d]+" at "+v(b)),!0):xb(2,b,c)}
l.pa=function(a,b,c,d){return this.B&&this.B.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.J&&this.J.pa(a,b,c,d)||this.H&&this.H.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.J=sb(a,"Keyboard")};l.Ea=function(a,b){b||tb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function tb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=cb(e.id);f||(a=!0,f=new rb(e));eb(f,d);a&&F(f)}}Ma(tb);
function ub(a,b,c){z.call(this,"Bus",a,ub);this.b=b;this.H=c;this.K=a.busWidth||16;this.L=Math.pow(2,this.K);this.w=this.L-1|0;this.ia=(this.K>>1)+2;10>this.ia&&(this.ia=10);15<this.ia&&(this.ia=15);this.Ha=1<<this.ia;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.G=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new H;vb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;F(this)}A(ub);l=ub.prototype;l.reset=function(){};
l.Ea=function(a,b){b||this.reset();return!0};function wb(a,b,c,d){for(var e=b,f=c,g=e>>>a.ia;0<f&&g<a.X.length;){var h=a.X[g],k=g*a.Ha,n=a.Ha-(e-k);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.F)return h.yb+=h.F-e,h.F=e,!0;if(e>=h.F+h.yb){n=h.size-(e-k);n>f&&(n=f);h.yb=e-h.F+n;e=k+a.Ha;f-=n;g++;continue}}return xb(1,e,f)}e=new H(e,n,a.Ha,d);vb(e,a.H,h);a.X[g++]=e;e=k+a.Ha;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+yb[d]+" at "+u(b)),!0):xb(2,b,c)}
l.aa=function(a){return this.X[(a&this.w)>>>this.ia].jb(a&this.u,a)};function zb(a,b){return a.X[(b&a.w)>>>a.ia].wb(b&a.u,b)}l.$a=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Ac(b,a):this.X[c++].jb(b,a)|this.X[c&this.G].jb(0,a+1)<<8};function Ab(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Pb(c,b):a.X[d++].wb(c,b)|a.X[d&a.G].wb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].lb(a&this.u,b&255,a)};
function Bb(a,b,c){a.X[(b&a.w)>>>a.ia].zb(b&a.u,c&255,b)}l.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Cc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.G].lb(0,b>>8&255,a+1))};function Db(a){for(var b=0,c=[],d=0;d<a.J;d++){var e=a.X[d];if(e.Na||e.xc){c[b++]=d;var f=b++;if(e=e.save()){for(var h=0,g=0,k=[];h<e.length;){for(var m=e[h],p=h+1;p<e.length&&e[p]===m;)p++;k[g++]=p-h;k[g++]=m;h=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
function Eb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Fb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?w("Input port "+v(k)+" already registered"):f.B[k]=[g,!1]}}
function Pb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,m=k;void 0!==h?(h[0]&&(m=h[0](b,c),void 0===m?m=k:m&=k),a.H&&a.I!=h[1]&&Qb(a.H,b,m)):a.H&&(fb(a.H,a,b,null,c),a.I&&Qb(a.H,b,m));e|=m<<f;f+=g<<3;b+=g;d-=g}return e}function Rb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
function Sb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?w("Output port "+v(k)+" already registered"):f.j[k]=[g,!1]}}function Tb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Ub(a.H,b,k)}else a.H&&(fb(a.H,a,b,k,d),a.D&&Ub(a.H,b,k));f+=g<<3;b+=g;e-=g}}
function Bb(a,b,c){a.X[(b&a.w)>>>a.ia].zb(b&a.u,c&255,b)}l.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Cc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.G].lb(0,b>>8&255,a+1))};function Db(a){for(var b=0,c=[],d=0;d<a.J;d++){var e=a.X[d];if(e.Na||e.xc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;k[h++]=p-g;k[h++]=n;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
function Eb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Fb(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 k=+e+d;k<=g;k++)void 0!==f.B[k]?w("Input port "+u(k)+" already registered"):f.B[k]=[h,!1]}}
function Pb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.B[b],h=a.O[b]||1,k=1==h?255:2==h?65535:-1,n=k;void 0!==g?(g[0]&&(n=g[0](b,c),void 0===n?n=k:n&=k),a.H&&a.I!=g[1]&&Qb(a.H,b,n)):a.H&&(fb(a.H,a,b,null,c),a.I&&Qb(a.H,b,n));e|=n<<f;f+=h<<3;b+=h;d-=h}return e}function Rb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[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 k=+e+d;k<=g;k++)void 0!==f.j[k]?w("Output port "+u(k)+" already registered"):f.j[k]=[h,!1]}}function Tb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.j[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,k=(c>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.H&&a.D!=g[1]&&Ub(a.H,b,k)}else a.H&&(fb(a.H,a,b,k,d),a.D&&Ub(a.H,b,k));f+=h<<3;b+=h;e-=h}}
function xb(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Vb;if(ob){var Wb=new ArrayBuffer(2);(new DataView(Wb)).setUint16(0,256,!0);Vb=256===(new Uint16Array(Wb))[0]}else Vb=!1;var Xb=Vb;
function H(a,b,c,d){this.id=Yb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||Zb;this.N=d==$b;vb(this);this.Na=this.xc=!1;if(c)if(ob)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.J=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),ac(this,Xb?bc:cc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;ac(this,dc)}else ac(this)}var Zb=0,$b=2,yb=["NONE","RAM","ROM","VID","H/W"],Yb=0;
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(ob)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(ob)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Na=!0}return!1},Za:function(a,b){b?this.j++||ec(this,fc,!1):this.B++||gc(this,fc,!1)},K:function(){this.H&&hb(this.H,129)&&this.H.message("attempt to read invalid block %"+t(this.F),!0);return 255},
w:function(a,b){this.H&&hb(this.H,129)&&this.H.message("attempt to write "+v(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},la:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},za:function(a,b){var c=a>>
2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;hc(c,this.F+a,1,c.O)&&c.qa(!0)}return this.wb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;hc(c,this.F+a,2,c.O)&&c.qa(!0)}return this.Pb(a,b)},ja:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;hc(d,this.F+a,1,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ma:function(a,b,c){if(this.H&&
w:function(a,b){this.H&&hb(this.H,129)&&this.H.message("attempt to write "+u(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},la:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Na=!0},za: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.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;hc(c,this.F+a,1,c.O)&&c.qa(!0)}return this.wb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;hc(c,this.F+a,2,c.O)&&c.qa(!0)}return this.Pb(a,b)},ja:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;hc(d,this.F+a,1,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ma:function(a,b,c){if(this.H&&
null!=this.F){var d=this.H;hc(d,this.F+a,2,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.Tb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.J[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},ra:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.J[a>>1]=b;this.Na=!0}};
function vb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&gc(a,fc,!1),(a.j=c.j)&&ec(a,fc,!1))}function ic(a,b){b?--a.j||(a.lb=a.N?a.w:a.zb,a.Cc=a.N?a.G:a.Tb):--a.B||(a.jb=a.wb,a.Ac=a.Pb)}function ec(a,b,c){c&&a.j||(a.lb=!a.N&&b[1]||a.w,a.Cc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.Tb=b[3]||a.G}function gc(a,b,c){c&&a.B||(a.jb=b[0]||a.K,a.Ac=b[2]||a.L);if(c||void 0===c)a.wb=b[0]||a.K,a.Pb=b[2]||a.L}function ac(a,b){b||(b=jc);gc(a,b,void 0);ec(a,b,void 0)}
var jc=[],dc=[H.prototype.Y,H.prototype.la,H.prototype.fa,H.prototype.za],fc=[H.prototype.O,H.prototype.ja,H.prototype.ca,H.prototype.ma];if(ob)var cc=[H.prototype.M,H.prototype.ha,H.prototype.ba,H.prototype.ra],bc=[H.prototype.P,H.prototype.cb,H.prototype.ea,H.prototype.wa];
function kc(a,b){z.call(this,"CPU",a,kc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.sb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);G(this)}A(kc);var lc=["power","reset"];l=kc.prototype;
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<lc.length;b++)(c=this.N[lc[b]])&&this.B.pa(null,lc[b],c);this.I=sb(a,"ChipSet");a=mc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);G(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ea=function(a,b){if(!b){if(a&&this.restore){nc(this);if(!this.restore(a))return!1;Ac(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;Bc(c,d)}}else this.g("No debugger detected")}Cc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.sb=function(){return this.C.sb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
function kc(a,b){z.call(this,"CPU",a,kc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.sb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}A(kc);var lc=["power","reset"];l=kc.prototype;
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<lc.length;b++)(c=this.N[lc[b]])&&this.B.pa(null,lc[b],c);this.I=sb(a,"ChipSet");a=mc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ea=function(a,b){if(!b){if(a&&this.restore){nc(this);if(!this.restore(a))return!1;Ac(this)}else this.reset();this.H?(a=this.H,a.g("Type ? for help with PC8080 Debugger commands"),a.Ja(),a.za&&(b=a.za,a.za=null,Bc(a,b))):this.g("No debugger detected")}Cc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.sb=function(){return this.C.sb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
function Ac(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function Dc(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Ec(a)&&(a.hb=a.ib=-1,Ac(a),a.qa(),c=!0);c&&a.g(Ec(a)+" cycles: checksum="+t(a.tb))}}
l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=bb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.qa():d.bb())};
l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,h=bb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.xa);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.qa():d.bb())};
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Fc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Gc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Hc(a,b){var c=1;b&&1<a.Ra&&a.J&&(c=a.J/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ja=0}function Ec(a){return a.M+a.G+a.L-a.b}function nc(a){a.J=0;a.za=0;a.M=a.G=a.L=a.b=0;Ac(a);Fc(a,1)}
function Fc(a,b,c){var d=!1;if(void 0!==b){.8>a.J/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Gc(a,a.G);a.G=0;a.D=pa();a.K=0;Hc(a);return d}function Ic(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Jc(a,b,c){0<=b&&b<a.w.length&&(c*=a.Y*a.Ra/1E3,a.w[b][0]=c)}function Kc(a){a.L-=a.b;a.b=0}
l.bb=function(a){if(ib(this,!0)){if(!this.C.Aa){Fc(this);this.B&&this.B.start(this.D,Ec(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ja>=this.Y&&Hc(this,!0);this.ba=0;this.ea=pa();this.K&&(a=this.ea-this.K,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Gc(this,0,!0);Dc(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();Cc(this);this.B&&this.B.stop(pa(),Ec(this));ib(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.K-this.ea;if(f=this.K-this.D)this.J=Math.round(this.G/
f;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ba+=f;this.G+=f;Gc(this,0,!0);Dc(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();Cc(this);this.B&&this.B.stop(pa(),Ec(this));ib(this,!1);nb(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.K-this.ea;if(f=this.K-this.D)this.J=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Fc(this));if(0>e||this.J<this.ab)-1E3>e&&(this.D-=e),e=0;this.ja+=this.ba;this.K+=e;c(d,e)}else Cc(this),this.B&&this.B.stop(pa(),Ec(this))};l.kb=function(){return 0};l.qa=function(a){jb(this,!0);Kc(this);Gc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Cc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Lc(c.G[d],b);a.B.Ja(b)}}
function Mc(a){this.Wd=+a.model||8080;kc.call(this,a,1E6);this.la=Nc;nc(this);this.C.complete=this.C.Kd=!1;this.ma=0;this.ca=[];this.ra=0;Oc(this)}A(Mc,kc);function Pc(a,b){a.ca.push(b)}l=Mc.prototype;l.reset=function(){this.C.Aa&&this.qa();Oc(this);nc(this);this.C.error=!1;this.parent.reset.call(this)};function Oc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.oa=0;I(a,a.ra);Qc(a,0);a.j=0}function Rc(a,b){a.ra=b;I(a,b)}
l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.oa+this.R+Sc(this)|0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.oa,this.R,Sc(this)]);a.set(1,[this.j,this.M,this.Ra]);a.set(2,Db(this.u));return a.data()};
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.oa=b[7]&65535;I(this,b[8]);Qc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Fc(this,b[3]);a:{b=this.u;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.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],m=e[g++];k--;)h[f++]=m;e=h}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.oa=b[7]&65535;I(this,b[8]);Qc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Fc(this,b[3]);a:{b=this.u;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.M){for(var f=0,g=Array(b.M),h=0;h<e.length-1;)for(var k=e[h++],n=e[h++];k--;)g[f++]=n;e=g}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.pa=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.N[b]=c;this.ma++;a=!0;break;default:a=this.parent.pa.call(this,a,b,c)}return a};function Tc(a){return a.S<<8|a.T}function Uc(a,b){a.S=b>>8&255;a.T=b&255}function Vc(a){return a.U<<8|a.V}function Wc(a,b){a.U=b>>8&255;a.V=b&255}function K(a){return a.W<<8|a.Z}
function Xc(a,b){a.W=b>>8&255;a.Z=b&255}function I(a,b){a.R=b&65535}function Yc(a){return a.da&256?1:0}function Zc(a,b){a.da=a.da&255|b}function $c(a){return pb[a.ga&255]?4:0}function ad(a){return(a.ga^a.ya)&16?16:0}function bd(a){return a.da&255?0:64}function cd(a){return a.ga&128?128:0}function Sc(a){return a.ua&-214|cd(a)|bd(a)|ad(a)|$c(a)|Yc(a)}function Qc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2}
function dd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function ed(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function fd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function gd(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function hd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function id(a,b){return a.ga=a.da=a.ya=a.i|b}function L(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255}
function Dd(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function Ed(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function M(a){var b=a.aa(a.R);I(a,a.R+1);return b}function O(a){var b=a.u.$a(a.R);I(a,a.R+2);return b}function P(a){var b=a.u.$a(a.oa);a.oa=a.oa+2&65535;return b}function Q(a,b){a.oa=a.oa-2&65535;a.u.Ib(a.oa,b)}
function Fd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Kc(a),!1):!0}function Gd(a,b){a.j|=1<<b;a.ua&512&&Kc(a)}function R(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(nb(a,"Value for "+b+" is invalid"),a.qa()),c=!a.C.Aa||a.C.vc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
l.Ja=function(a){this.ma&&(a||!this.C.Aa||this.C.vc)&&(R(this,"A",this.i),R(this,"B",this.S),R(this,"C",this.T),R(this,"BC",Tc(this),4),R(this,"D",this.U),R(this,"E",this.V),R(this,"DE",Vc(this),4),R(this,"H",this.W),R(this,"L",this.Z),R(this,"HL",K(this),4),R(this,"SP",this.oa,4),R(this,"PC",this.R,4),a=Sc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
this.C.Aa&&this.J?this.J.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Kd=this.H&&Hd(this.H),c=a?this.C.Sb?0:1:-1;this.C.Sb=!1;this.L=this.b=a;if(Fd(this)){do{if(b){if(Id(this.H,this.R,c)){this.qa();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=E(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Mc(d);eb(d,c)}});function Jd(){this.b-=4}
this.C.Aa&&this.J?this.J.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Kd=this.H&&Hd(this.H),c=a?this.C.Sb?0:1:-1;this.C.Sb=!1;this.L=this.b=a;if(Fd(this)){do{if(b){if(Id(this.H,this.R,c)){this.qa();break}c=1}this.la[M(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Mc(d);eb(d,c)}});function Jd(){this.b-=4}
function Kd(){I(this,O(this));this.b-=10}function Ld(){I(this,P(this));this.b-=10}function Md(){var a=O(this);Q(this,this.R);I(this,a);this.b-=17}
var Nc=[Jd,function(){Uc(this,O(this));this.b-=10},function(){this.va(Tc(this),this.i);this.b-=7},function(){Uc(this,Tc(this)+1);this.b-=5},function(){this.S=hd(this,this.S);this.b-=5},function(){this.S=gd(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;Zc(this,a&256);this.b-=4},Jd,function(){var a;Xc(this,a=K(this)+Tc(this));Zc(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Tc(this));this.b-=7},function(){Uc(this,Tc(this)-1);this.b-=
5},function(){this.T=hd(this,this.T);this.b-=5},function(){this.T=gd(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;Zc(this,a);this.b-=4},Jd,function(){Wc(this,O(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.U=hd(this,this.U);this.b-=5},function(){this.U=gd(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
@ -82,75 +82,75 @@ Yc(this)||I(this,a);this.b-=10},function(){var a=M(this);Tb(this.u,a,this.i,this
function(){Q(this,K(this));this.b-=11},function(){this.i=fd(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,32);this.b-=11},function(){$c(this)&&(I(this,P(this)),this.b-=6);this.b-=5},function(){I(this,K(this));this.b-=5},function(){var a=O(this);$c(this)&&I(this,a);this.b-=10},function(){var a=K(this);Xc(this,Vc(this));Wc(this,a);this.b-=5},function(){var a=O(this);$c(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Md,function(){this.i=Ed(this,M(this));this.b-=7},function(){Q(this,
this.R);I(this,40);this.b-=11},function(){cd(this)||(I(this,P(this)),this.b-=6);this.b-=5},function(){var a=P(this);Qc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=O(this);cd(this)||I(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=O(this);cd(this)||(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},function(){Q(this,Sc(this)&255|this.i<<8);this.b-=11},function(){this.i=id(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,48);this.b-=11},function(){cd(this)&&
(I(this,P(this)),this.b-=6);this.b-=5},function(){this.oa=K(this)&65535;this.b-=5},function(){var a=O(this);cd(this)&&I(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Fd(this)},function(){var a=O(this);cd(this)&&(Q(this,this.R),I(this,a),this.b-=6);this.b-=11},Md,function(){L(this,M(this));this.b-=7},function(){Q(this,this.R);I(this,56);this.b-=11}];
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Nd[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Nd[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);G(this)}A(S);
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Nd[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Nd[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}A(S);
var U={Ba:1978.1,vd:{Ca:0,qe:1,ue:16,Be:32,Ke:64,Je:128,mb:14},Ya:{Ca:1,Kc:1,nd:2,jd:4,kd:16,ld:32,md:64,mb:8},wd:{Ca:2,pe:3,Se:4,re:8,Fe:16,Ge:32,He:64,se:128,mb:0},Oe:{Ca:3},Me:{Ca:2,Ce:7},Qe:{Ca:3,Te:1,Pe:2,Ie:4,ze:8,te:16,je:32},Ne:{Ca:4},Re:{Ca:5,ve:1,we:2,xe:4,ye:8,Ue:16}},V={Ba:100,Ka:{Ca:66,mc:1,bc:2,fd:4,Ee:8,De:16,dc:32,cc:64,Yb:128},Ic:{Ca:66,INIT:0},Ta:{Ca:194,le:0,Wb:16,pd:32,ic:48,Sc:0,Tc:32},Ab:{Ca:162,Le:0,Vc:0,Rc:0,Uc:0,Qc:0},La:{Ae:{Ca:98},Sa:{Fc:0,Ec:1,sd:2,Bd:4,Lc:5,qd:6,td:7},
Cb:16383}},Nd={SI1978:U,VT100:V};S.prototype.pa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.J=sb(a,"Keyboard");this.Fa=sb(a,"SerialPort");this.video=sb(a,"Video");Fb(b,this,this.w.Gb);Sb(b,this,this.w.Hb);if(d){var e=this;Od(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=v(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
Cb:16383}},Nd={SI1978:U,VT100:V};S.prototype.pa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.J=sb(a,"Keyboard");this.Fa=sb(a,"SerialPort");this.video=sb(a,"Video");Fb(b,this,this.w.Gb);Sb(b,this,this.w.Hb);if(d){var e=this;Od(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=u(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
S.prototype.Ia=function(a){return a?this.save():!0};U.INIT=[[U.vd.mb,U.Ya.mb,U.wd.mb,0,0,0,0]];
V.INIT=[[V.Ic.INIT,V.Ka.bc|V.Ka.fd],[V.Ta.Sc,V.Ta.Tc],[V.Ab.Vc,V.Ab.Rc,V.Ab.Uc,V.Ab.Qc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ka("reset error")};
l.save=function(){var a=new J(this);switch(this.w.Ba){case U.Ba:a.set(0,[this.wa,this.G,this.za,this.Y,this.ea,this.ra,this.ma]);break;case V.Ba:a.set(0,[this.ha,this.K]),a.set(1,[this.L,this.M]),a.set(2,[this.D,this.ba,this.la,this.ja]),a.set(3,[this.P,this.j,this.O,this.ca,this.I])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case U.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.ra=b[5],this.ma=b[6],!0;case V.Ba:return this.ha=b[0],this.K=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Qd=function(a,b){var c=this.wa;F(this,a,null,b,"STATUS0",c,!0);return c};
l.Rd=function(a,b){var c=this.G;F(this,a,null,b,"STATUS1",c,!0);return c};l.Sd=function(a,b){var c=this.za;F(this,a,null,b,"STATUS2",c,!0);return c};l.Pd=function(a,b){var c=this.Y>>8-this.ea&255;F(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){F(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){F(this,a,b,c,"SOUND1",null,!0);this.ra=b};l.ae=function(a,b,c){F(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
l.ce=function(a,b,c){F(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.de=function(a,b,c){F(this,a,b,c,"WATCHDOG",null,!0)};function Pd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Td=function(a,b){var c=this.K,c=c&~V.Ka.cc;if((Ec(this.b)&64)<<1&&(c|=V.Ka.cc,c!=this.K)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.La.Sa.td:break;case V.La.Sa.Ec:this.P=this.P<<1|d;break;case V.La.Sa.Lc:d=Pd(this);this.I[d]=V.La.Cb;gb(this,"doNVRCommand(): erase data at addr "+v(d));break;case V.La.Sa.Fc:this.j=this.j<<1|d;break;case V.La.Sa.Bd:d=Pd(this);e=this.j&V.La.Cb;this.I[d]=e;gb(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case V.La.Sa.qd:d=Pd(this);e=this.I[d];
null==e&&(e=V.La.Cb);this.j=e;gb(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case V.La.Sa.sd:this.j<<=1;this.ca=this.j&V.La.Cb+1;break;default:gb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~V.Ka.dc;this.ca&&(c|=V.Ka.dc);c&=~V.Ka.Yb;if(d=this.J){d=this.J;if(e=d.D)e=d.b,e=Ec(d.b)>=d.K+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=V.Ka.Yb);c&=~V.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=V.Ka.mc);this.K=c;F(this,a,null,b,"FLAGS",c);return c};
l.ee=function(a,b,c){F(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){F(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){F(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,gb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Lc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}};
l.fe=function(a,b,c){F(this,a,b,c,"DC011");b&V.Ta.pd?(b&=V.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ta.ic?50:60,gb(a,"updateRate("+b+")"),a.qc=b))):(b&=V.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ta.Wb?132:80,b=this.video,gb(b,"updateDimensions("+a+","+(80<a&&this.K&V.Ka.bc?14:24)+")"),b.ca=a,b.sa=b.fc,80<a&&b.sa--,Qd(b)&&Rd(b))))};U.Gb={0:S.prototype.Qd,1:S.prototype.Rd,2:S.prototype.Sd,3:S.prototype.Pd};
U.Hb={2:S.prototype.$d,3:S.prototype.be,4:S.prototype.ae,5:S.prototype.ce,6:S.prototype.de};V.Gb={66:S.prototype.Td};V.Hb={66:S.prototype.ee,98:S.prototype.he,162:S.prototype.ge,194:S.prototype.fe};Ma(function(){for(var a=E(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new S(d);eb(d,c)}});
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case U.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.ra=b[5],this.ma=b[6],!0;case V.Ba:return this.ha=b[0],this.K=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Qd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
l.Rd=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Sd=function(a,b){var c=this.za;E(this,a,null,b,"STATUS2",c,!0);return c};l.Pd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ra=b};l.ae=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
l.ce=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Pd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Td=function(a,b){var c=this.K,c=c&~V.Ka.cc;if((Ec(this.b)&64)<<1&&(c|=V.Ka.cc,c!=this.K)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case V.La.Sa.td:break;case V.La.Sa.Ec:this.P=this.P<<1|d;break;case V.La.Sa.Lc:d=Pd(this);this.I[d]=V.La.Cb;gb(this,"doNVRCommand(): erase data at addr "+u(d));break;case V.La.Sa.Fc:this.j=this.j<<1|d;break;case V.La.Sa.Bd:d=Pd(this);e=this.j&V.La.Cb;this.I[d]=e;gb(this,"doNVRCommand(): write data "+u(e)+" to addr "+u(d));break;case V.La.Sa.qd:d=Pd(this);e=this.I[d];
null==e&&(e=V.La.Cb);this.j=e;gb(this,"doNVRCommand(): read data "+u(e)+" from addr "+u(d));break;case V.La.Sa.sd:this.j<<=1;this.ca=this.j&V.La.Cb+1;break;default:gb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~V.Ka.dc;this.ca&&(c|=V.Ka.dc);c&=~V.Ka.Yb;if(d=this.J){d=this.J;if(e=d.D)e=d.b,e=Ec(d.b)>=d.K+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=V.Ka.Yb);c&=~V.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=V.Ka.mc);this.K=c;E(this,a,null,b,"FLAGS",c);return c};
l.ee=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,gb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Lc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}};
l.fe=function(a,b,c){E(this,a,b,c,"DC011");b&V.Ta.pd?(b&=V.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==V.Ta.ic?50:60,gb(a,"updateRate("+b+")"),a.qc=b))):(b&=V.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==V.Ta.Wb?132:80,b=this.video,gb(b,"updateDimensions("+a+","+(80<a&&this.K&V.Ka.bc?14:24)+")"),b.ca=a,b.sa=b.fc,80<a&&b.sa--,Qd(b)&&Rd(b))))};U.Gb={0:S.prototype.Qd,1:S.prototype.Rd,2:S.prototype.Sd,3:S.prototype.Pd};
U.Hb={2:S.prototype.$d,3:S.prototype.be,4:S.prototype.ae,5:S.prototype.ce,6:S.prototype.de};V.Gb={66:S.prototype.Td};V.Hb={66:S.prototype.ee,98:S.prototype.he,162:S.prototype.ge,194:S.prototype.fe};Ma(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new S(d);eb(d,c)}});
function Sd(a){z.call(this,"ROM",a,Sd);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.J=ca(this.I);if(this.I){a=this.I;var b=ea(this.J);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Td(c,a,b,f)})}}A(Sd);var Ud=[0,5];Sd.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Vd(this)};
Sd.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,m=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}m&&(g.a=m.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Vd:d,Qa:e,tc:f})}delete this.Qa}return!0};Sd.prototype.Ia=function(){return!0};
function Td(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.Bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(g){a.ka("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
Sd.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=oa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Vd:d,Qa:e,tc:f})}delete this.Qa}return!0};Sd.prototype.Ia=function(){return!0};
function Td(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.Bb,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.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(h){a.ka("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]=aa(b[e],16);Vd(a)}}
function Vd(a){if(!kb(a))if(!a.I)G(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)nb(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Wd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.ia;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ha;f=d.u;d=d.j;h=0;for(e>>>=f.ia;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}G(a)}}
function Wd(a,b){if(wb(a.u,b,a.j,a.G?1:$b)){var c;for(c=0;c<a.B.length;c++)Bb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Ud.length;c++)Bb(a.u,Ud[c],118);Pc(a.b,function(a){return function(b){if(0<=Ud.indexOf(b)){var c=!1,d=a.b,e=a.H;if(5==b)switch(c=!0,d.T){case 2:Xd(a,String.fromCharCode(d.V));break;case 9:for(var k=Vc(d),m="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;m+=String.fromCharCode(q)}Xd(a,m);break;default:c=!1}c?Ld.call(d):e&&(a.g("\nCP/M vector "+v(b)),I(d,b),e.qa());b=!0}else b=!1;
return b}}(a));Rc(a.b,b)}return!0}return!1}function Xd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Ma(function(){for(var a=E(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Sd(d);eb(d,c)}});function Yd(a){z.call(this,"RAM",a,Yd);this.w=a.addr;this.j=a.size;this.B=!1}A(Yd);l=Yd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;G(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0};
l.reset=function(){!this.B&&this.j&&wb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=E(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Yd(d);eb(d,c)}});function Zd(a){z.call(this,"Keyboard",a,Zd,65536);(a=a.model)&&!$d[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=$d[a]||{};this.reset();G(this)}A(Zd);var ae={};ae[n.Ub]=37;ae[n.Xb]=39;ae[n.Zb]=32;
var be={Ba:1978.1,A:{},Vb:ae,qb:{},Xa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},W={Ba:100,A:{},Vb:{},qb:{},Xa:{setup:120},Gc:{Ca:130,INIT:127},Ma:{Ca:130,bd:1,ad:2,$c:4,Zc:8,cd:16,ac:32,$b:63,ud:64,ke:128,INIT:0},Yc:127};W.A[46]=3;W.A[n.hd]=5;W.A[n.gd]=6;W.A[n.Dd]=7;W.A[n.xd]=8;W.A[n.Ad]=9;W.A[n.Q]=10;W.A[39]=16;W.A[221]=20;W.A[219]=21;W.A[n.Pc]=22;W.A[n.yd]=23;W.A[n.od]=24;W.A[n.E]=25;W.A[49]=26;W.A[37]=32;W.A[40]=34;W.A[117]=35;W.A[19]=35;W.A[192]=36;W.A[189]=37;W.A[57]=38;W.A[55]=39;
W.A[52]=40;W.A[51]=41;W.A[27]=42;W.A[38]=48;W.A[114]=49;W.A[112]=50;W.A[8]=51;W.A[187]=52;W.A[48]=53;W.A[56]=54;W.A[54]=55;W.A[53]=56;W.A[50]=57;W.A[9]=58;W.A[103]=64;W.A[115]=65;W.A[113]=66;W.A[96]=67;W.A[118]=68;W.A[220]=69;W.A[n.Zb]=70;W.A[n.Xc]=71;W.A[n.Nc]=72;W.A[n.Mc]=73;W.A[n.Ub]=74;W.A[104]=80;W.A[2013]=81;W.A[98]=82;W.A[97]=83;W.A[222]=85;W.A[186]=86;W.A[n.Wc]=87;W.A[n.Oc]=88;W.A[n.Xb]=89;W.A[n.rd]=90;W.A[110]=96;W.A[116]=97;W.A[101]=98;W.A[100]=99;W.A[13]=100;W.A[190]=101;W.A[188]=102;
W.A[n.ed]=103;W.A[n.Hc]=104;W.A[n.Cd]=105;W.A[119]=106;W.A[105]=112;W.A[99]=113;W.A[102]=114;W.A[109]=115;W.A[191]=117;W.A[n.dd]=118;W.A[n[" "]]=119;W.A[n.zd]=120;W.A[n.Jc]=121;W.A[n.Ed]=122;W.A[120]=123;W.A[17]=124;W.A[16]=125;W.A[20]=126;W.qb={l4:W.Ma.bd,l3:W.Ma.ad,l2:W.Ma.$c,l1:W.Ma.Zc,locked:W.Ma.cd,local:W.Ma.ac,online:~W.Ma.ac};var $d={SI1978:be,VT100:W};
function Vd(a){if(!kb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)nb(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Wd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.j,h=[],k=d.D>>>f.ia;0<g&&k<f.X.length;)h.push(f.X[k++]),g-=f.Ha;f=d.u;d=d.j;g=0;for(e>>>=f.ia;0<d&&e<f.X.length;){k=h[g++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
function Wd(a,b){if(wb(a.u,b,a.j,a.G?1:$b)){var c;for(c=0;c<a.B.length;c++)Bb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Ud.length;c++)Bb(a.u,Ud[c],118);Pc(a.b,function(a){return function(b){if(0<=Ud.indexOf(b)){var c=!1,d=a.b,e=a.H;if(5==b)switch(c=!0,d.T){case 2:Xd(a,String.fromCharCode(d.V));break;case 9:for(var k=Vc(d),n="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;n+=String.fromCharCode(q)}Xd(a,n);break;default:c=!1}c?Ld.call(d):e&&(a.g("\nCP/M vector "+u(b)),I(d,b),e.qa());b=!0}else b=!1;
return b}}(a));Rc(a.b,b)}return!0}return!1}function Xd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Ma(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Sd(d);eb(d,c)}});function Yd(a){z.call(this,"RAM",a,Yd);this.w=a.addr;this.j=a.size;this.B=!1}A(Yd);l=Yd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;F(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0};
l.reset=function(){!this.B&&this.j&&wb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Yd(d);eb(d,c)}});function Zd(a){z.call(this,"Keyboard",a,Zd,65536);(a=a.model)&&!$d[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=$d[a]||{};this.reset();F(this)}A(Zd);var ae={};ae[m.Ub]=37;ae[m.Xb]=39;ae[m.Zb]=32;
var be={Ba:1978.1,A:{},Vb:ae,qb:{},Xa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},W={Ba:100,A:{},Vb:{},qb:{},Xa:{setup:120},Gc:{Ca:130,INIT:127},Ma:{Ca:130,bd:1,ad:2,$c:4,Zc:8,cd:16,ac:32,$b:63,ud:64,ke:128,INIT:0},Yc:127};W.A[46]=3;W.A[m.hd]=5;W.A[m.gd]=6;W.A[m.Dd]=7;W.A[m.xd]=8;W.A[m.Ad]=9;W.A[m.Q]=10;W.A[39]=16;W.A[221]=20;W.A[219]=21;W.A[m.Pc]=22;W.A[m.yd]=23;W.A[m.od]=24;W.A[m.E]=25;W.A[49]=26;W.A[37]=32;W.A[40]=34;W.A[117]=35;W.A[19]=35;W.A[192]=36;W.A[189]=37;W.A[57]=38;W.A[55]=39;
W.A[52]=40;W.A[51]=41;W.A[27]=42;W.A[38]=48;W.A[114]=49;W.A[112]=50;W.A[8]=51;W.A[187]=52;W.A[48]=53;W.A[56]=54;W.A[54]=55;W.A[53]=56;W.A[50]=57;W.A[9]=58;W.A[103]=64;W.A[115]=65;W.A[113]=66;W.A[96]=67;W.A[118]=68;W.A[220]=69;W.A[m.Zb]=70;W.A[m.Xc]=71;W.A[m.Nc]=72;W.A[m.Mc]=73;W.A[m.Ub]=74;W.A[104]=80;W.A[2013]=81;W.A[98]=82;W.A[97]=83;W.A[222]=85;W.A[186]=86;W.A[m.Wc]=87;W.A[m.Oc]=88;W.A[m.Xb]=89;W.A[m.rd]=90;W.A[110]=96;W.A[116]=97;W.A[101]=98;W.A[100]=99;W.A[13]=100;W.A[190]=101;W.A[188]=102;
W.A[m.ed]=103;W.A[m.Hc]=104;W.A[m.Cd]=105;W.A[119]=106;W.A[105]=112;W.A[99]=113;W.A[102]=114;W.A[109]=115;W.A[191]=117;W.A[m.dd]=118;W.A[m[" "]]=119;W.A[m.zd]=120;W.A[m.Jc]=121;W.A[m.Ed]=122;W.A[120]=123;W.A[17]=124;W.A[16]=125;W.A[20]=126;W.qb={l4:W.Ma.bd,l3:W.Ma.ad,l2:W.Ma.$c,l1:W.Ma.Zc,locked:W.Ma.cd,local:W.Ma.ac,online:~W.Ma.ac};var $d={SI1978:be,VT100:W};
Zd.prototype.pa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.qb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return ce(d,a,!0)},c.onkeyup=function(a){return ce(d,a,!1)},!0;default:if(this.u.Xa&&void 0!==this.u.Xa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();de(a,b,!0)}}(this,this.u.Xa[b]),b=function(a,b){return function(){de(a,b,!1)}}(this,this.u.Xa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};Zd.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=sb(a,"ChipSet");Fb(b,this,this.u.Gb);Sb(b,this,this.u.Hb)};Zd.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};Zd.prototype.Ia=function(a){return a?this.save():!0};W.INIT=[[W.Ma.INIT,W.Gc.INIT,!1,0,-1]];l=Zd.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ka("reset error")};
l.save=function(){var a=new J(this);switch(this.u.Ba){case W.Ba:a.set(0,[this.J,this.G,this.D,this.K,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ba){case be.Ba:return!0;case W.Ba:return this.J=b[0],ee(this,this.J&W.Ma.$b),this.G=b[1],this.D=b[2],this.K=b[3],this.w=b[4],!0}return!1};function ee(a,b){for(var c in a.u.qb){var d=a.N["led-"+c];if(d){var e=a.u.qb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function ce(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Vb[e]||e,!a.u.A[e]){for(var f in a.u.Xa)if(a.u.Xa[f]===e){e=f;break a}e=null}e&&(d=de(a,e,c),b.preventDefault());return d}
function de(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Rb==b)break a;d=-1}if(c)0>d?a.j.push({Rb:b,Ob:Date.now(),Db:!1}):(a.j[d].Ob=Date.now(),a.j[d].Db=!1);else if(0<=d){if(!a.j[d].Db){var e=a.j[d].Ob;if(e&&100>Date.now()-e)return a.j[d].Db=!0,fe(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=U.Ya.jd;break;case "2p":d=U.Ya.nd;break;case "coin":d=U.Ya.Kc;break;case "left":d=U.Ya.ld;break;case "right":d=U.Ya.md;break;case "fire":d=U.Ya.kd}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0}
function fe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Db){var d=a.j[b].Rb,e=100-(Date.now()-a.j[b].Ob);if(0<e){if(0>c||c>e)c=e}else{de(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){fe(a)},c)}l.Ud=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=W.A[c.Rb],c&128&&(c&=127)):(this.w=-1,c=W.Yc),this.G=c,Gd(this.b,1));F(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ie=function(a,b,c){F(this,a,b,c,"KBDUART.STATUS");this.J=b;this.D=!0;this.K=Ec(this.b);ee(this,b&W.Ma.$b);b&W.Ma.ud&&(this.w=0,Gd(this.b,1))};W.Gb={130:Zd.prototype.Ud};W.Hb={130:Zd.prototype.ie};Ma(function(){for(var a=E(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Zd(d);eb(d,c)}});
function ge(a,b,c,d,e){var f=this;this.kc=Ba("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,ge,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Ua=a.bufferAddr;this.Hd=a.bufferRAM;var g=a.bufferFormat;this.ma=g&&he[g.toUpperCase()]||ie;this.ca=a.bufferCols;this.wa=a.bufferRows;this.fc=this.sa=a.cellWidth||1;this.na=a.cellHeight||1;this.za=null;this.jc=!1;this.Va=a.bufferBits||1;this.Jd=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ka("unsupported buffer rotation: "+this.w),this.w=0);this.Wa=a.interruptRate;this.rc=a.refreshRate||60;this.M=b;this.I=c;this.la=(this.Md=d)||b||null;this.Dc=this.Y;this.Gd=this.O;this.gc=this.Y/this.ca|0;this.hc=this.O/this.wa|0;1<this.na&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Ua.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ka("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){je(f,document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){je(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=ea(this.ea)&&(this.ea=ha()+"/api/v1/dump?file="+this.ea+"&format=bytes"),sa(this.ea,null,!0,function(a,b,c){ke(f,a,b,c)});this.Jb={}}A(ge);var ie=0,he={SI1978:1,VT100:2};
function fe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Db){var d=a.j[b].Rb,e=100-(Date.now()-a.j[b].Ob);if(0<e){if(0>c||c>e)c=e}else{de(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){fe(a)},c)}l.Ud=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=W.A[c.Rb],c&128&&(c&=127)):(this.w=-1,c=W.Yc),this.G=c,Gd(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ie=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.J=b;this.D=!0;this.K=Ec(this.b);ee(this,b&W.Ma.$b);b&W.Ma.ud&&(this.w=0,Gd(this.b,1))};W.Gb={130:Zd.prototype.Ud};W.Hb={130:Zd.prototype.ie};Ma(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Zd(d);eb(d,c)}});
function ge(a,b,c,d,e){var f=this;this.kc=Ba("Gecko/");var g=["","moz","ms","webkit"];z.call(this,"Video",a,ge,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Ua=a.bufferAddr;this.Hd=a.bufferRAM;var h=a.bufferFormat;this.ma=h&&he[h.toUpperCase()]||ie;this.ca=a.bufferCols;this.wa=a.bufferRows;this.fc=this.sa=a.cellWidth||1;this.na=a.cellHeight||1;this.za=null;this.jc=!1;this.Va=a.bufferBits||1;this.Jd=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ka("unsupported buffer rotation: "+this.w),this.w=0);this.Wa=a.interruptRate;this.rc=a.refreshRate||60;this.M=b;this.I=c;this.la=(this.Md=d)||b||null;this.Dc=this.Y;this.Gd=this.O;this.gc=this.Y/this.ca|0;this.hc=this.O/this.wa|0;1<this.na&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Ua.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.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ka("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){je(f,document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){je(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=ea(this.ea)&&(this.ea=ha()+"/api/v1/dump?file="+this.ea+"&format=bytes"),sa(this.ea,null,!0,function(a,b,c){ke(f,a,b,c)});this.Jb={}}A(ge);var ie=0,he={SI1978:1,VT100:2};
function Qd(a){a.K=a.ca*a.sa;a.ba=a.wa*a.na;var b=a.K,c=a.ba;a.w&&(b=a.ba,c=a.K);a.P=0;if(!a.Hd&&(a.P=(a.K*a.Va>>3)*a.ba,!wb(a.u,a.Ua,a.P,3)))return!1;a.P?(a.lc=a.I.createImageData(b,c),a.oc=16/a.Va|0,le(a,a.P>>1)):le(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.ob=a.L.getContext("2d");a.fa={};a.ra=1<<a.Va;a.ha=Array(a.ra+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.ma&&(a.ha[a.ra+0]=[255,255,0,255],a.ha[a.ra+1]=[0,255,0,255]);2==a.ma&&(a.qc=60,a.rb=!1,
a.Fa=Array(a.ca));return!0}ge.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Qd(this);if(this.J=sb(a,"Keyboard")){for(var e in this.Jb)this.J.pa("led",e,this.Jb[e]);this.M&&this.J.pa(this.Md?"textarea":"canvas","kbd",this.la)}var f=this;this.sc=Ic(this.b,function(){Lc(f)});Jc(this.b,this.sc,1E3/Math.max(this.rc,this.Wa));this.pc=0;this.ea||G(this)};
function ke(a,b,c,d){if(d)a.ka("Unable to load font ROM (error "+d+": "+b+")");else{ab(a.Bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Rd(a);else{a.ka("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ka("Font ROM data error: "+h.message);return}(a.I||a.H)&&G(a)}}
a.Fa=Array(a.ca));return!0}ge.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Qd(this);if(this.J=sb(a,"Keyboard")){for(var e in this.Jb)this.J.pa("led",e,this.Jb[e]);this.M&&this.J.pa(this.Md?"textarea":"canvas","kbd",this.la)}var f=this;this.sc=Ic(this.b,function(){Lc(f)});Jc(this.b,this.sc,1E3/Math.max(this.rc,this.Wa));this.pc=0;this.ea||F(this)};
function ke(a,b,c,d){if(d)a.ka("Unable to load font ROM (error "+d+": "+b+")");else{ab(a.Bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Rd(a);else{a.ka("Unrecognized font data length ("+f.length+")");return}}catch(g){a.ka("Font ROM data error: "+g.message);return}(a.I||a.H)&&F(a)}}
function Rd(a){a.za&&(a.jc=2==a.ma,a.fa[96]=[me(a,a.sa,a.na),me(a,a.sa,a.na,a.rb)],a.fa[64]=[me(a,2*a.sa,a.na),me(a,2*a.sa,a.na,a.rb)],a.fa[32]=a.fa[0]=[me(a,2*a.sa,2*a.na),me(a,2*a.sa,2*a.na,a.rb)])}
function me(a,b,c,d){var e=8>=a.fc?8:16,f=8<e?15:0,h=a.za.length/e,g=!1===d,k={sa:b,na:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var m=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.na;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.za[u],r=0;r<c/a.na;r++){for(var y=0,D=0,ga=D;D<a.sa;D++){for(var C=u&128>>(7<D?7:D),y=a.jc&&!C&&y?y:C,T=0;T<b/a.sa;T++)g&&(y=!y),ne(a,m,ga,x,y?1:0),ga++;y=C}x++}k.context.putImageData(m,
function me(a,b,c,d){var e=8>=a.fc?8:16,f=8<e?15:0,g=a.za.length/e,h=!1===d,k={sa:b,na:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var n=k.context.createImageData(b,c),p=0;p<g;p++){for(var q=0,x=q;q<a.na;q++)for(var v=p*e+(f+q&e-1),v=d&&8==q?255:a.za[v],r=0;r<c/a.na;r++){for(var y=0,G=0,ga=G;G<a.sa;G++){for(var C=v&128>>(7<G?7:G),y=a.jc&&!C&&y?y:C,T=0;T<b/a.sa;T++)h&&(y=!y),ne(a,n,ga,x,y?1:0),ga++;y=C}x++}k.context.putImageData(n,
(p&15)*b,(p>>4)*c)}return k}ge.prototype.Ea=function(){return!0};ge.prototype.pa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1};
ge.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.la&&this.la.focus()}return a};
function je(a,b){!b&&a.j&&(a.kc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");gb(a,"notifyFullScreen("+b+")")}function le(a,b){a.nc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.nc)a.G=Array(a.nc)}function ne(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ma&&(208<=c&&236>c?e=a.ra+0:28<=c&&72>c&&(e=a.ra+1));a=a.ha[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 Lc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Gd(a.b,2),c=!1):Gd(a.b,1):Gd(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ua>>>d.ia;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].xc=!0),e-=d.Ha,h++;f&&(c=!1)}Jc(a.b,a.sc,1E3/Math.max(a.rc,a.Wa));a.pc++}if(c)if(1<a.sa)switch(a.ma){case 2:for(var c=a.Ua,d=-1,e=0,f=60==a.qc?2:5,g=h=0,k=-1;e<a.wa;){var m=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var u=zb(a.u,p++);if(127==(u&127)){var r=zb(a.u,p++),d=r&96,c=(r&15)<<8|zb(a.u,p),c=c+
(r&16?8192:16384);break}if(m<x)a.Fa[m++]=u;else break}if(f)f--;else{for(;m<a.Fa.length;)a.Fa[m++]=0;if(0<=q)for(p=a.ja&&a.G[h]==x,a.G[h++]=x,x=0;x<m;x++){u=a.Fa[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,y=a.ob,D=u&127;if(u=r.fa[q][u&128?1:0]){var ga=(D&15)*u.sa,D=(D>>4)*u.na,C,T,da,X,ta=u.sa,Cb=u.na;y?(C=x*r.sa,T=e*r.na,da=r.sa,X=r.na):(C=x*r.gc,T=e*r.hc,da=r.gc,X=r.hc);u.sa>r.sa&&(C*=2,da*=2);u.na>r.na&&(q||(D+=r.na),Cb=r.na);y?y.drawImage(u.canvas,ga,D,ta,Cb,C,T,da,X):(C+=0,T+=0,r.I.drawImage(u.canvas,
ga,D,ta,Cb,C,T,da,X))}g++}h++}e++}}a.ja=!0;!b&&a.pb&&1==g&&(a.G[k]=-1,g=0);a.pb=!1;(g||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.K,a.ba-a.na,0,0,a.Dc,a.Gd)}else{f=a.Ua;h=f+a.P;m=k=g=0;c=a.K;q=0;d=a.ba;p=e=0;x=a.Va;r=(1<<x)-1;a.Jd&&(x=-x,p=16+x);for(;f<h;){y=Ab(a.u,f);if(a.ja&&y===a.G[g])k+=a.oc;else{a.G[g]=y;(u=p)&&(y=y>>8|(y&255)<<8);k<c&&(c=k);for(ga=a.oc;ga--;)D=y>>u&r,ne(a,a.lc,k++,m,D),u+=x;k>q&&(q=k);m<d&&(d=m);m>=e&&(e=m+1)}f+=2;g++;if(k>=a.K&&(k=0,m++,m>a.ba))break}a.ja=!0;c<a.K&&(f=q-c,e-=d,a.w&&
(h=c,g=f,c=d,f=e,d=a.K-(h+g),e=g),a.ob.putImageData(a.lc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
Ma(function(){for(var a=E(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=B(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<=va().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ua.aspect);f&&.3<=f&&3.33>=f&&(La("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");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new ge(d,e,h,f,c);eb(d,c)}});
function Lc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Gd(a.b,2),c=!1):Gd(a.b,1):Gd(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,g=a.Ua>>>d.ia;0<e&&g<d.X.length;)d.X[g].Na&&(d.X[g].Na=f=!1,d.X[g].xc=!0),e-=d.Ha,g++;f&&(c=!1)}Jc(a.b,a.sc,1E3/Math.max(a.rc,a.Wa));a.pc++}if(c)if(1<a.sa)switch(a.ma){case 2:for(var c=a.Ua,d=-1,e=0,f=60==a.qc?2:5,h=g=0,k=-1;e<a.wa;){var n=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var v=zb(a.u,p++);if(127==(v&127)){var r=zb(a.u,p++),d=r&96,c=(r&15)<<8|zb(a.u,p),c=c+
(r&16?8192:16384);break}if(n<x)a.Fa[n++]=v;else break}if(f)f--;else{for(;n<a.Fa.length;)a.Fa[n++]=0;if(0<=q)for(p=a.ja&&a.G[g]==x,a.G[g++]=x,x=0;x<n;x++){v=a.Fa[x];if(!p||v!==a.G[g]){a.G[k=g]=v;var r=a,y=a.ob,G=v&127;if(v=r.fa[q][v&128?1:0]){var ga=(G&15)*v.sa,G=(G>>4)*v.na,C,T,da,X,ta=v.sa,Cb=v.na;y?(C=x*r.sa,T=e*r.na,da=r.sa,X=r.na):(C=x*r.gc,T=e*r.hc,da=r.gc,X=r.hc);v.sa>r.sa&&(C*=2,da*=2);v.na>r.na&&(q||(G+=r.na),Cb=r.na);y?y.drawImage(v.canvas,ga,G,ta,Cb,C,T,da,X):(C+=0,T+=0,r.I.drawImage(v.canvas,
ga,G,ta,Cb,C,T,da,X))}h++}g++}e++}}a.ja=!0;!b&&a.pb&&1==h&&(a.G[k]=-1,h=0);a.pb=!1;(h||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.K,a.ba-a.na,0,0,a.Dc,a.Gd)}else{e=a.Ua;f=e+a.P;k=h=g=0;b=a.K;n=0;c=a.ba;q=d=0;p=a.Va;x=(1<<p)-1;a.Jd&&(p=-p,q=16+p);for(;e<f;){r=Ab(a.u,e);if(a.ja&&r===a.G[g])h+=a.oc;else{a.G[g]=r;(y=q)&&(r=r>>8|(r&255)<<8);h<b&&(b=h);for(v=a.oc;v--;)ga=r>>y&x,ne(a,a.lc,h++,k,ga),y+=p;h>n&&(n=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.K&&(h=0,k++,k>a.ba))break}a.ja=!0;b<a.K&&(e=n-b,d-=c,a.w&&
(f=b,g=e,b=c,e=d,c=a.K-(f+g),d=g),a.ob.putImageData(a.lc,0,0,b,c,e,d),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
Ma(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=B(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<=va().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ua.aspect);f&&.3<=f&&3.33>=f&&(La("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");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new ge(d,e,g,f,c);eb(d,c)}});
function oe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,oe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=pe;b&&(void 0===c&&(c="Panel"),(c=db(c,this.id))&&(b=c.N[b])&&this.pa(null,a,b))}this.G="";this.J=this.M=null;this.exports={connect:this.zc,receiveData:this.Qb}}A(oe);
var qe=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],re=[!1,0,0,133,142,39,238],pe="buffer";l=oe.prototype;
l.pa=function(a,b,c,d){var e=this;switch(b){case pe:return this.N[b]=this.j=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),se(e,b);return!0},c.onkeypress=function(a){a=a||window.event;se(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Qb(d);return!0},
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ra=Ic(this.b,function(){e.Qb()});this.ma=Ic(this.b,function(){e.Da|=5});this.I=sb(a,"ChipSet");Fb(b,this,te,this.ha);Sb(b,this,ue,this.ha);G(this)};
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ra=Ic(this.b,function(){e.Qb()});this.ma=Ic(this.b,function(){e.Da|=5});this.I=sb(a,"ChipSet");Fb(b,this,te,this.ha);Sb(b,this,ue,this.ha);F(this)};
l.zc=function(){if(!this.J){var a=mc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.cb)return;b=ma(b[1]);if(this.J=cb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
l.Ia=function(a){return a?this.save():!0};l.reset=function(){ve(this)};l.save=function(){var a=new J(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.K;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return ve(this,a[0])};function ve(a,b){var c=0;b||(b=re);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.K=b[c++];a.P=b[c++];a.O=b[c];return!0}
function we(a,b){var c=a.O&b;b&15||(c>>=4);var c=qe[c],d=((a.K&12)>>2)+6;a.K&16&&d++;d+=((a.K&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function se(a,b){gb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Gd(a.b,a.la),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(se(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Jc(this.b,this.ra,we(this,15)));return!0};
l.Od=function(a,b){var c=this.Y;F(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Nd=function(a,b){var c=this.Da;F(this,a,null,b,"STATUS",c);return c};
l.Zd=function(a,b,c){F(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;gb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.J,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Jc(this.b,this.ma,we(this,240))};l.Yd=function(a,b,c){F(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.K=b,this.L=!0)};l.Xd=function(a,b,c){F(this,a,b,c,"BAUDRATES");this.O=b};var te={0:oe.prototype.Od,1:oe.prototype.Nd},ue={0:oe.prototype.Zd,1:oe.prototype.Yd,2:oe.prototype.Xd};
Ma(function(){for(var a=E(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new oe(d);eb(d,c)}});function xe(a){z.call(this,"Debugger",a,xe);this.ob=a.base||16;this.ba=this.ma=this.K=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}A(xe);var ye={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};xe.prototype.Mb=function(){return-1};xe.prototype.Nb=function(){};
xe.prototype.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function we(a,b){var c=a.O&b;b&15||(c>>=4);b=qe[c];c=((a.K&12)>>2)+6;a.K&16&&c++;c+=((a.K&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function se(a,b){gb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Gd(a.b,a.la),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(se(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Jc(this.b,this.ra,we(this,15)));return!0};
l.Od=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Nd=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c};
l.Zd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;gb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.J,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Jc(this.b,this.ma,we(this,240))};l.Yd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.K=b,this.L=!0)};l.Xd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var te={0:oe.prototype.Od,1:oe.prototype.Nd},ue={0:oe.prototype.Zd,1:oe.prototype.Yd,2:oe.prototype.Xd};
Ma(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new oe(d);eb(d,c)}});function xe(a){z.call(this,"Debugger",a,xe);this.ob=a.base||16;this.ba=this.ma=this.K=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}A(xe);var ye={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};xe.prototype.Mb=function(){return-1};xe.prototype.Nb=function(){};
xe.prototype.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+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(ma(a.substring(d,f))),d=f+1}}return b};
function ze(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 Ae(a,b,c){var d;if(b){b=Be(a,b);for(var e=0,f=!1,h=b,g=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=Ce(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==m.length)break;var p=m[e++],x=p.length;k.length&&ye[p]<ye[k[k.length-1]]&&ze(g,k,1);k.push(p);b=b.substr(q+x)}ze(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&De(a,null,
d))}return d}function Be(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Ae(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.ma}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function Ae(a,b,c){var d;if(b){b=Be(a,b);for(var e=0,f=!1,g=b,h=[],k=[],n=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<n.length;){var p=n[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=Ce(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==n.length)break;var p=n[e++],x=p.length;k.length&&ye[p]<ye[k[k.length-1]]&&ze(h,k,1);k.push(p);b=b.substr(q+x)}ze(h,k)&&1==h.length||(f=!0);f?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&De(a,null,
d))}return d}function Be(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Ae(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"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.ba-a.ma}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Ce(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ea[b],null==e&&(e=aa(b,a.ob))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function De(a,b,c){var d,e=!1;if(void 0!==c){var e=!0,f=c,h=0;d="";if(!h||4<h)h=4;for(var g=0;g<h;g++){d&&(d=","+d);var k=f&255,m=8,p="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;d=p+d;f>>=8}f=c;h=0;g="";h?11<h&&(h=11):h=f&-65536?11:6;if(null==f||isNaN(f))for(;0<h--;)g="?"+g;else for(;0<h--;)g=String.fromCharCode((f&7)+48)+g,f>>=3;d=t(c,0,!0)+" "+c+". "+("0o"+g)+" "+("0b"+d)}a.g((null!=b?b+": ":"")+d);return e}
function De(a,b,c){var d,e=!1;if(void 0!==c){var e=!0,f=c,g=0;d="";if(!g||4<g)g=4;for(var h=0;h<g;h++){d&&(d=","+d);var k=f&255,n=8,p="";n?32<n&&(n=32):n=32;if(null==k||isNaN(k))for(;0<n--;)p="?"+p;else for(;0<n--;)p=(k&1?"1":"0")+p,k>>=1;d=p+d;f>>=8}f=c;g=0;h="";g?11<g&&(g=11):g=f&-65536?11:6;if(null==f||isNaN(f))for(;0<g--;)h="?"+h;else for(;0<g--;)h=String.fromCharCode((f&7)+48)+h,f>>=3;d=t(c,0,!0)+" "+c+". "+("0o"+h)+" "+("0b"+d)}a.g((null!=b?b+": ":"")+d);return e}
function Ee(a,b){if(b)return De(a,b,a.ea[b]);var c=0;for(b in a.ea)De(a,b,a.ea[b]),c++;return 0<c}function Fe(a){xe.call(this,a);this.style=Ge;this.M=Y();this.Ua=Y();this.ca=Y();this.G=[];this.I=this.O=this.D=[];He(this);this.ja=0;Ie(this);this.wa={};Je(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Bc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Bc(b,a)})}A(Fe,xe);
var Ke={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
Ge=8080,Le="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Me="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
@ -161,88 +161,88 @@ Ne="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Oe=[[45],[42,2067,32],[71,
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
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]];l=Fe.prototype;
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=mc(a,"messages"))&&Je(this,a);this.Fa=Oe;Od(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Pe(Qe(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[e];p.type==c?m++||d.g("..."):(c=p.type,m=yb[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.F)+" "+v(p.yb)+" "+
v(p.size)+" "+m),c!=Zb&&(c=-1),m=0);a+=d.u.Ha;e++}}});G(this)};
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=mc(a,"messages"))&&Je(this,a);this.Fa=Oe;Od(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Pe(Qe(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=yb[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.F)+" "+u(p.yb)+" "+
u(p.size)+" "+n),c!=Zb&&(c=-1),n=0);a+=d.u.Ha;e++}}});F(this)};
l.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Bc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-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.N[b]=c,Da(c,function(){if(d.ha){var a=d.ha.value;
d.ha.value="";Bc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Da(c,function(a){var b=!1;jb(d,!0)||(ib(d,!0),b=d.kb(a?1:0),ib(d,!1));return b}),!0}return!1};l.xb=function(){this.ha&&this.ha.focus()};function Pe(a){a=a&&a.F;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Pe(a);-1!==d&&(c=zb(this.u,d),b&&Re(a,b));return c};l.$a=function(a,b){var c=65535,d=Pe(a);-1!==d&&(c=Ab(this.u,d),b&&Re(a,b));return c};
l.va=function(a,b,c){var d=Pe(a);-1!==d&&(Bb(this.u,d,b),c&&Re(a,c),Cc(this.b,!0))};l.Ib=function(a,b,c){var d=Pe(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.ia;f!=e.u?e.X[h].Tb(f,b&65535,d):(e.X[h++].zb(f,b&255,d),e.X[h&e.G].zb(0,b>>8&255,d+1));c&&Re(a,c);Cc(this.b,!0)}};function Y(a){return{F:a,Oa:!1}}function rf(a){return[a.F,a.Oa]}function sf(a){return{F:a[0],Oa:a[1]}}
l.va=function(a,b,c){var d=Pe(a);-1!==d&&(Bb(this.u,d,b),c&&Re(a,c),Cc(this.b,!0))};l.Ib=function(a,b,c){var d=Pe(a);if(-1!==d){var e=this.u,f=d&e.u,g=(d&e.w)>>>e.ia;f!=e.u?e.X[g].Tb(f,b&65535,d):(e.X[g++].zb(f,b&255,d),e.X[g&e.G].zb(0,b>>8&255,d+1));c&&Re(a,c);Cc(this.b,!0)}};function Y(a){return{F:a,Oa:!1}}function rf(a){return[a.F,a.Oa]}function sf(a){return{F:a[0],Oa:a[1]}}
function Qe(a,b,c){var d;c=(c?a.M:a.Ua).F;if(void 0!==b){d=b=Be(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Y(d));break}}if(d=e)return d;c=Ae(a,b,void 0)}null!=c&&(d=Y(c));return d}function tf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Fd=a.Fb(b.Bc=c[2]))}function Re(a,b){null!=a.F&&(a.F+=b||1)}function Z(a){return t(a,4)}
function uf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Je(a,b){a.H=a;a.ta=a.Id=536870912;a.la=null;a.ra=[];var c=a.Fb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in qb)0<=ra(c,d)&&(a.ta|=qb[d],a.g(d+" messages enabled"))}function Od(a,b,c){for(var d in qb)if(b==qb[d]){a.wa[d]=c;break}}
l.Mb=function(a,b){var c;a=a.toUpperCase();null==b?c=ra(Ne,a):(c=ra(Ne,a.substr(b,2)),0>c&&(c=ra(Ne,a.substr(b,1))));return c};function vf(a,b){var c=0,d=a.Nb(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?t(d,c):"??"}
function uf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Je(a,b){a.H=a;a.ta=a.Id=536870912;a.la=null;a.ra=[];b=a.Fb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in qb)0<=ra(b,c)&&(a.ta|=qb[c],a.g(c+" messages enabled"))}function Od(a,b,c){for(var d in qb)if(b==qb[d]){a.wa[d]=c;break}}
l.Mb=function(a,b){var c;a=a.toUpperCase();null==b?c=ra(Ne,a):(c=ra(Ne,a.substr(b,2)),0>c&&(c=ra(Ne,a.substr(b,1))));return c};function vf(a,b){var c=0;a=a.Nb(b);if(void 0!==a)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?t(a,c):"??"}
l.Nb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Tc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Vc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=K(c);break;case 6:b=c.aa(K(c));break;case 11:b=c.oa;break;case 12:b=c.R;break;case 13:b=Sc(c);break;case 14:b=Sc(c)&255|c.i<<8}}return b};
function wf(a,b){b=Be(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1),0<=e&&(b=b.substr(0,c)+vf(a,e)+b.substr(c+1+Ne[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=Qe(a,e))?(d=e+' "'+uf(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=Qe(a,e))?(Re(d),d=e+
' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).F));if(this.ta&1073741824)this.ra.push(a);else if(!this.la||a!=this.la)if(this.la=a,this.ta&-2147483648&&(this.qa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Kc(c);c.P=0;Cc(c)}};
function fb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+Z(e):""))}
' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Z(Y(this.b.R).F));this.ta&1073741824?this.ra.push(a):this.la&&a==this.la||(this.la=a,this.ta&-2147483648&&(this.qa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Kc(a),a.P=0,Cc(a)))};
function fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=g?": "+ba(g):"")+(null!=e?" at "+Z(e):""))}
function Ie(a){var b;if(Hd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=Y();a.fa=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.J=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0};
l.kb=function(a,b,c){if(!xf(this))return!1;this.K=0;a||Hd(this)&&Id(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.K+=d,Gc(this.b,d,!0),Dc(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.K=0,nb(this.b,e.stack||e.message))}!1!==c&&Cc(this.b);this.Ja(b||!1);return 0<this.K};l.qa=function(a){this.b&&this.b.qa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=Y(this.b.R);a&&1!=this.Y?yf(this):zf(this)};
function xf(a){var b;if(b=a.b&&kb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!jb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ie(this);this.ba=this.ma=0;this.la=null;this.K=0;this.M=Y(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()};
l.save=function(){var a=new J(this);a.set(0,rf(this.M));a.set(1,rf(this.ca));a.set(2,[this.w,this.P,this.ta]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=sf(a[b++]),this.ca=sf(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.pb=b};
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.K=b-this.pb;if(!this.Y){var c="stopped";if(this.K){var d=a-this.nb,e=0<d?Math.round(1E3*this.K/d):0,c=c+" (";Hd(this)&&(c+=this.ba+" opcodes, ",this.ma-=this.ba,this.ba=0);c+=this.K+" cycles, "+d+" ms, "+e+" hz)"}else hb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Hd(a){return 1<a.I.length||!!a.ja}
function Id(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||hc(a,b,1,a.I)))return!0;0<=c&&a.J.length&&(a.ba++,b=zb(a.u,b),null!=b&&(a.J[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Qb(a,b,c){a.g("break on input from port "+v(b)+": "+t(c));a.qa(!0)}function Ub(a,b,c){a.g("break on output to port "+v(b)+": "+t(c));a.qa(!0)}
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.K=b-this.pb;if(!this.Y){b="stopped";if(this.K){a-=this.nb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";Hd(this)&&(b+=this.ba+" opcodes, ",this.ma-=this.ba,this.ba=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Hd(a){return 1<a.I.length||!!a.ja}
function Id(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||hc(a,b,1,a.I)))return!0;0<=c&&a.J.length&&(a.ba++,b=zb(a.u,b),null!=b&&(a.J[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Qb(a,b,c){a.g("break on input from port "+u(b)+": "+t(c));a.qa(!0)}function Ub(a,b,c){a.g("break on output to port "+u(b)+": "+t(c));a.qa(!0)}
function He(a){var b,c;a.I=["bp"];if(a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;ic(d.X[Pe(c)>>>d.ia],!1)}a.O=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,ic(d.X[Pe(c)>>>d.ia],!0);a.D=["bw"];a.Va=0}l.Za=function(a,b,c){var d=!0;c||Bf(this,a,b,!1,!0);if(a!=this.I){var e=Pe(b);if(-1===e)this.g("invalid address: "+Z(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.ia].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Cf(this,a,a.length-1,"set"),Ie(this)));return d};
function Bf(a,b,c,d,e){var f=!1;c=Pe(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Pe(g)&&(!d||g.Oa)){f=!0;g.Oa||e||Cf(a,b,h,"cleared");b.splice(h,1);b!=a.I&&(d=a.u,ic(d.X[c>>>d.ia],b==a.D));g.Oa||Ie(a);break}}return f}function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.F)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
function Af(a,b){if(void 0!==b)hc(a,b,1,a.I,!0),a.Y=0;else for(var c=1;c<a.I.length;c++){var d=a.I[c];if(d.Oa){if(!Bf(a,a.I,d,!0))break;c=0}}}
function hc(a,b,c,d,e){var f=!1;if(!a.Va++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=Pe(g),m=0;m<c;m++)if(b+m==k){var p,f=!0;g.Oa&&(Bf(a,d,g,!0),e=!0);if(p=g.Fd){for(var f=!1,q=0;q<p.length;q++)if(!Ef(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.Aa||(f=!0)}if(f){e||Cf(a,d,h,"hit");break}}}a.Va--;return f}
function Ff(a,b,c,d){for(var e=Y(b.F),f=a.aa(b,1),h=a.Fa[f],g="",k=(8086!=a.style?Le:Me)[h[0]],m=h.length-1,p=0,q,x=1;x<=m;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==Ge)){var r=q&240;if(r){var y=q&15;y?p=y:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{u=a;r=q;y=b;switch(r&15){case 1:y=t(u.aa(y,1),2);break;case 2:y=t(u.aa(y,1)<<24>>24,4);break;case 3:y=t(u.$a(y,2),4);break;default:u="imm("+v(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==Ge?"$":"0x")+y);u=y}else r&16?
(u=(q&3840)>>8,r=Ne[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=Z(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=t(a.aa(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.fb?h+("cycles="+Ec(a.b).toString()+" cs="+t(a.b.tb)):h+(null!=d?"="+d.toString():""));return h}
function Gf(a,b){var c;switch(b){case "IF":c=a.b.ua&512;break;case "SF":c=cd(a.b);break;case "ZF":c=bd(a.b);break;case "AF":c=ad(a.b);break;case "PF":c=$c(a.b);break;case "CF":c=Yc(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Hf(a,b){return Ne[b]+"="+vf(a,b)+" "}function If(a){return Hf(a,7)+Hf(a,8)+Hf(a,9)+Hf(a,10)+Hf(a,11)+Gf(a,"IF")+Gf(a,"SF")+Gf(a,"ZF")+Gf(a,"AF")+Gf(a,"PF")+Gf(a,"CF")}l.uc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jf(a,b,c){var d=[],e=Pe(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.Vd;if(e>=h&&e<h+g){e=oa(f.tc,[e-h],a.uc);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}function Kf(a,b,c,d){var e={},f=a.G[b].tc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Le:Me;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Fa[h][0]]+" ").substr(0,5)+" ("+ba(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ee(a)||a.g("no variables"),!0;if(!c[2])return Ee(a,c[1]);if(!c[3])return delete a.ea[c[1]],!0;var d=Ae(a,c[3]);return void 0!==d?(a.ea[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function Nf(a,b,c){var d=null;if(b=Qe(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+v(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+v(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Bf(a,b,c,d,e){var f=!1;c=Pe(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Pe(h)&&(!d||h.Oa)){f=!0;h.Oa||e||Cf(a,b,g,"cleared");b.splice(g,1);b!=a.I&&(d=a.u,ic(d.X[c>>>d.ia],b==a.D));h.Oa||Ie(a);break}}return f}function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.F)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
function Af(a,b){if(void 0!==b)hc(a,b,1,a.I,!0),a.Y=0;else for(b=1;b<a.I.length;b++){var c=a.I[b];if(c.Oa){if(!Bf(a,a.I,c,!0))break;b=0}}}
function hc(a,b,c,d,e){var f=!1;if(!a.Va++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Oa)for(var k=Pe(h),n=0;n<c;n++)if(b+n==k){var p,f=!0;h.Oa&&(Bf(a,d,h,!0),e=!0);if(p=h.Fd){for(var f=!1,q=0;q<p.length;q++)if(!Ef(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.Aa||(f=!0)}if(f){e||Cf(a,d,g,"hit");break}}}a.Va--;return f}
function Ff(a,b,c,d){for(var e=Y(b.F),f=a.aa(b,1),g=a.Fa[f],h="",k=(8086!=a.style?Le:Me)[g[0]],n=g.length-1,p=0,q,x=1;x<=n;x++){var v="";q=g[x];if(void 0!==q&&!(q&16384&&a.style==Ge)){var r=q&240;if(r){var y=q&15;y?p=y:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{v=a;r=q;y=b;switch(r&15){case 1:y=t(v.aa(y,1),2);break;case 2:y=t(v.aa(y,1)<<24>>24,4);break;case 3:y=t(v.$a(y,2),4);break;default:v="imm("+u(r)+")";break a}8086==v.style&&r&64?y="["+y+"]":r&16||(y=(v.style==Ge?"$":"0x")+y);v=y}else r&16?
(v=(q&3840)>>8,r=Ne[v],8086==a.style&&q&64&&(6==v&&(r="HL"),r="["+r+"]"),v=r):r&128&&(v=(f>>3&7).toString());if(!v||!v.length){h="INVALID";break}0<h.length&&(h+=",");h+=v||"???"}}}f="";g=Z(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=t(a.aa(e,1),2),null==e.F)break;while(e.F!=b.F)}g+=la(f,10);g=g+(q&32768?"*":" ")+la(k,7);h&&(g+=" "+h);c&&(g=la(g,40)+";"+c,g=a.b.C.fb?g+("cycles="+Ec(a.b).toString()+" cs="+t(a.b.tb)):g+(null!=d?"="+d.toString():""));return g}
function Gf(a,b){switch(b){case "IF":a=a.b.ua&512;break;case "SF":a=cd(a.b);break;case "ZF":a=bd(a.b);break;case "AF":a=ad(a.b);break;case "PF":a=$c(a.b);break;case "CF":a=Yc(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Hf(a,b){return Ne[b]+"="+vf(a,b)+" "}function If(a){return Hf(a,7)+Hf(a,8)+Hf(a,9)+Hf(a,10)+Hf(a,11)+Gf(a,"IF")+Gf(a,"SF")+Gf(a,"ZF")+Gf(a,"AF")+Gf(a,"PF")+Gf(a,"CF")}l.uc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jf(a,b,c){var d=[],e=Pe(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],g=f.F>>>0,h=f.Vd;if(e>=g&&e<g+h){e=oa(f.tc,[e-g],a.uc);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}function Kf(a,b,c,d){var e={},f=a.G[b].tc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.G[b].Qa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c=0;if(a.J)if("clear"==b){for(b=0;b<a.J.length;b++)a.J[b]=[b,0];a.g("frequency data cleared");c++}else if(void 0!==b)a.g("unknown frequency command: "+b),c++;else{var d=a.J.slice();d.sort(function(a,b){return b[1]-a[1]});var e=8086!=a.style?Le:Me;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.g((e[a.Fa[f][0]]+" ").substr(0,5)+" ("+ba(f)+"): "+g+" times"),c++)}}c||a.g("no frequency data available")}}
function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ee(a)||a.g("no variables"),!0;if(!c[2])return Ee(a,c[1]);if(!c[3])return delete a.ea[c[1]],!0;b=Ae(a,c[3]);return void 0!==b?(a.ea[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
function Nf(a,b,c){var d=null;if(b=Qe(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.F-e[1])&&(g=" + "+u(f)),f=e[0]+" ("+Z(e[1])+")"+g,c&&a.g(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.F)&&(g=" - "+u(f)),f=e[4]+" ("+Z(e[5])+")"+g,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Of(a,b){switch(b[1]){case "8080":a.style=Ge;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.hb=c;break;case "start":a.b.ub=c;break;case "stop":a.b.ib=c;break;default:a.g("unknown cs option");return}void 0!==c&&Ac(a.b);a.g("checksums "+(a.b.C.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Fc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.ab.toFixed(2)+"Mhz")+" ("+
a.b.Ra+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function yf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Ae(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>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.Z=g&255;break;case "SP":d.oa=g&65535;break;case "PC":I(d,g);a.M=Y(d.R);break;case "PS":Qc(d,g);break;case "PSW":Qc(d,g&255|d.ua&-256);d.i=g>>8;break;case "CF":d.da=g?d.da|256:d.da&255;break;case "PF":g?$c(d)||(d.ga^=1):$c(d)&&(d.ga^=1);break;case "AF":d.ya=g?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=g?d.da&-256:d.da|255;break;case "SF":g?cd(d)||(d.ga^=192):cd(d)&&(d.ga^=
192);break;case "IF":d.ua=g?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}Cc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=Y(d.R),zf(a,Z(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Ae(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=Ce(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return ib(a,!0)&&a.kb(e,d,!1)},function(){Cc(a.b);ib(a,!1)})}
function zf(a,b,c,d){if(b=Qe(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Qe(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.Y?a.K:null;var h=null!=f?"cycles":null,g=Jf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.g(m)}g[3]&&(h=g[3],f=null);f=Ff(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+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 h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(kb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Qe(a,f[1],!0);if(p)if(a.ca=
p,void 0===f[2])a.g("begin assemble at "+Z(p.F)),a.P=!0,Cc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Ff(a,a.ca))}}break;case "b":a:{var u=f[0],r=f[1],y=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var D=u.charAt(1);if("l"==D){var ga;ga=0+Df(a,a.I);ga+=Df(a,a.O);(ga+=Df(a,a.D))||a.g("no breakpoints")}else if("n"==D)a.ja=Ce(a,r),a.g("break after "+a.ja+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var C=Y();if("*"!=r&&(C=Qe(a,r,!0),!C))break a;r=v(C.F);"c"==D?null==C.F?(He(a),a.g("all breakpoints cleared")):Bf(a,a.I,C)||Bf(a,a.O,C)||Bf(a,a.D,C)||a.g("breakpoint missing: "+Z(C.F)):
"i"==D?a.g("breakpoint "+(Eb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==D?a.g("breakpoint "+(Rb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.F&&(tf(a,C,y),"p"==D?a.Za(a.I,C):"r"==D?a.Za(a.O,C):"w"==D?a.Za(a.D,C):a.g("unknown breakpoint command: "+D))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Cb=f[3];if("?"==X){var lb="";for(T in qb)a.wa[T]&&(lb&&(lb+=","),lb+=T);lb+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");
function yf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;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.g("missing value for "+b[1]);return}var f=!1,g=Ae(a,b);if(void 0!==g)switch(f=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>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.Z=g&255;break;case "SP":d.oa=g&65535;break;case "PC":I(d,g);a.M=Y(d.R);break;case "PS":Qc(d,g);break;case "PSW":Qc(d,g&255|d.ua&-256);d.i=g>>8;break;case "CF":d.da=g?d.da|256:d.da&255;break;case "PF":g?$c(d)||(d.ga^=1):$c(d)&&(d.ga^=1);break;case "AF":d.ya=g?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=g?d.da&-256:d.da|255;break;case "SF":g?cd(d)||(d.ga^=192):cd(d)&&(d.ga^=192);
break;case "IF":d.ua=g?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}if(!f){a.g("invalid value: "+b);return}Cc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=Y(d.R),zf(a,Z(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Ae(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=Ce(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return ib(a,!0)&&a.kb(e,d,!1)},function(){Cc(a.b);ib(a,!1)})}
function zf(a,b,c,d){if(b=Qe(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Qe(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.Y?a.K:null;var g=null!=f?"cycles":null,h=Jf(a,b),k=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=Ff(a,b,g,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+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(ma(a.substring(d,f))),d=f+1}}return b};
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(kb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var n=g.charAt(k);if("?"==h||"r"==h||"a">n||"z"<n){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Qe(a,f[1],!0);if(p)if(a.ca=
p,void 0===f[2])a.g("begin assemble at "+Z(p.F)),a.P=!0,Cc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Ff(a,a.ca))}}break;case "b":a:{var v=f[0],r=f[1],y=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var G=v.charAt(1);if("l"==G){var ga;ga=0+Df(a,a.I);ga+=Df(a,a.O);(ga+=Df(a,a.D))||a.g("no breakpoints")}else if("n"==G)a.ja=Ce(a,r),a.g("break after "+a.ja+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var C=Y();if("*"!=r&&(C=Qe(a,r,!0),!C))break a;r=u(C.F);"c"==G?null==C.F?(He(a),a.g("all breakpoints cleared")):Bf(a,a.I,C)||Bf(a,a.O,C)||Bf(a,a.D,C)||a.g("breakpoint missing: "+Z(C.F)):
"i"==G?a.g("breakpoint "+(Eb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==G?a.g("breakpoint "+(Rb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.F&&(tf(a,C,y),"p"==G?a.Za(a.I,C):"r"==G?a.Za(a.O,C):"w"==G?a.Za(a.D,C):a.g("unknown breakpoint command: "+G))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Cb=f[3];if("?"==X){var lb="";for(T in qb)a.wa[T]&&(lb&&(lb+=","),lb+=T);lb+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");
a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");lb.length&&a.g("dump extension commands:\n\t"+lb)}else if("state"==X){var Se=Rf(a.B,!0);"console"==ta?console.log(Se):(a.Ga&&(a.Ga.value=""),a.g(Se))}else if("symbols"==X)for(var jd=0;jd<a.G.length;jd++){var kd=a.G[jd],mb;for(mb in kd.Qa)if("."!=mb.charAt(0)){var Te=kd.Qa[mb].o;if(void 0!==Te){var Ue=kd.Qa[mb].l;Ue&&(mb=Ue);a.g(Z(Te)+" "+mb)}}}else{if("d"==
da){for(T in qb)if(f[1]==T){var Ve=a.wa[T];Ve?(f.shift(),f.shift(),Ve(f)):a.g("no dump registered for "+X);break a}X||(da=a.rb||"db")}else a.rb=da;if("dh"==da){var We=X,Xe=ta,Ye="",Ze=0,ua=a.fa,Fa=a.L;if(Fa.length){var ia=+We||a.Wa,Gb=+Xe||10;isNaN(ia)?ia=Gb:Ye="more ";ia>Fa.length&&(a.g("note: only "+Fa.length+" available"),ia=Fa.length);ua-=ia;0>ua&&(null==Fa[Fa.length-1].F?(ia=ua+ia,ua=0):ua+=Fa.length);var ld=[];"call"==Xe&&(Gb=1E5,ld=["CALL"]);for(void 0!==We&&a.g(ia+" instructions earlier:");0<
Gb&&ua!=a.fa;){var $e=Fa[ua++];if(null==$e.F)break;var Hb=Y($e.F),ig=ia--,af=Ff(a,Hb,"history",ig);(!ld.length||0<=af.indexOf(ld[0]))&&a.g(af);Hb.Lb&&(ua+=Hb.Lb,Gb-=Hb.Lb,ia-=Hb.Lb);ua>=Fa.length&&(ua=0);a.Wa=ia;Ze++;Gb--}}Ze||(a.g("no "+Ye+"history available"),a.Wa=void 0)}else{var oc=Qe(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Cb),pc=Ce(a,ta)>>>0,65536<pc&&(pc=65536));for(var Ib="",qc="dd"==da?4:"dw"==da?2:1,rc=qc*pc||128,jg=rc+15>>4||1;jg--&&0<rc;){var sc=0,md=0,Jb,nd="",
bf="",X=Z(oc.F);for(Jb=16;0<Jb&&0<rc;Jb--){var tc=a.aa(oc,1),sc=sc|tc<<(md++<<3);md==qc&&(nd+=t(sc,2*qc),nd+=1==qc?9==Jb?"-":" ":" ",sc=md=0);bf+=32<=tc&&128>tc?String.fromCharCode(tc):".";rc--}Ib&&(Ib+="\n");Ib+=X+" "+nd+(Jb?"":" "+bf)}Ib&&a.g(Ib);a.Ua=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,cf=255,df=a.aa,ef=a.va;"ew"==f[0]&&(uc=2,cf=65535,df=a.$a,ef=a.Ib);var ff=uc<<1,gf=f[1];if(null==gf)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=Qe(a,gf);if(vc)for(var wc=2;wc<f.length;wc++){var Kb=Ae(a,f[wc]);if(void 0===Kb){a.g("unrecognized value: "+f[wc]);break}Kb&~cf&&a.g("warning: "+t(Kb)+" exceeds "+uc+"-byte value");var kg=df.call(a,vc);a.g("changing "+Z(vc.F)+" from "+t(kg,ff,!0)+" to "+t(Kb,ff,!0));ef.call(a,vc,Kb,uc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var hf=f[1],lg=b;if(void 0!==hf){var od=Qe(a,hf,!0);if(!od)break a;tf(a,od,lg);a.Za(a.I,od,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var pd;if(a.C.Aa)pd="halting",a.qa();else{if(jb(a,!0))break a;pd="already halted"}c||a.g(pd)}break;case "i":if("if"==f[0]){var qd;var Lb=b.substr(2),Lb=ma(Lb);Ae(a,Lb)?(c||a.g("true: "+Lb),qd=!0):(c||a.g("false: "+Lb),qd=!1);qd||(d=!1);break}if("int"==f[0]){var xc;var mg=f[1];if(a.b.ua&512){var rd=Ae(a,mg);null==rd?xc=!1:(a.g("requesting interrupt level "+rd),Gd(a.b,rd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var sd=f[1];if(sd&&"?"!=sd){var td=
Ce(a,sd);if(void 0!==td){var ng=Pb(a.u,td);a.g(v(td)+": "+ba(ng))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var og=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ud=0,jf=Y(),Mb=Y(a.b.oa);for(a.g("stack trace for "+Z(Mb.F));10>ud;){for(var Wa=null,pg=256;65536>Mb.F>>>0;){jf.F=a.$a(Mb,2);if(null==Mb.F||!pg--)break;for(var qg=a,yc=jf,kf=
Ce(a,sd);if(void 0!==td){var ng=Pb(a.u,td);a.g(u(td)+": "+ba(ng))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var og=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ud=0,jf=Y(),Mb=Y(a.b.oa);for(a.g("stack trace for "+Z(Mb.F));10>ud;){for(var Wa=null,pg=256;65536>Mb.F>>>0;){jf.F=a.$a(Mb,2);if(null==Mb.F||!pg--)break;for(var qg=a,yc=jf,kf=
null,Nb=yc.F,lf=Nb,vd=1;6>=vd&&Nb;vd++){if(2<vd){yc.F=Nb;var zc=Ff(qg,yc);if(0<=zc.indexOf("CALL")){var mf=zc.indexOf(" ");if(Nb+(zc.indexOf(" ",mf+1)-mf-1)/2==lf){kf=zc;break}}}Nb--}yc.F=lf;if(Wa=kf)break}if(!Wa||null==Wa)break;var nf=null;if("ks"==og){var of=Wa.match(/[0-9A-F]+$/);of&&(nf=Nf(a,of[0]))}Wa=la(Wa,50)+" ;"+(nf||"stack="+Z(Mb.F));a.g(Wa);ud++}ud||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Nf(a,f[1],!0);break;case "m":a:{var Ga,Ha=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==
N){var Ra=0;if("all"==N)Ra=1878917119,N=null;else if("on"==N)Ha=!0,N=null;else if("off"==N)Ha=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ga in qb)if(N==Ga){Ra=qb[Ga];Ha=!!(a.ta&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.ta|=Ra,Ha=!0;else if("off"==f[2]&&(a.ta&=~Ra,Ha=!1,1073741824==Ra)){for(var wd=0;wd<a.ra.length;wd++)a.g(a.ra[wd]);a.ra=[]}}var rg=0,Ob="";for(Ga in qb)if(!N||N==Ga){var sg=!!(a.ta&qb[Ga]);if(null===Ha||Ha==sg)Ob&&(Ob+=
","),++rg%10||(Ob+="\n\t"),"key"==Ga&&(Ga="keys"),Ob+=Ga}void 0===N&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ha?Ha?"messages on: ":"messages off: ":"message categories:\n\t")+(Ob||"none"));Ie(a)}break;case "o":var xd=f[1],tg=f[2];if(xd&&"?"!=xd){var yd=Ce(a,xd,"port #"),zd=Ce(a,tg);void 0!==yd&&void 0!==zd&&(Tb(a.u,yd,zd),a.g(v(yd)+": "+ba(zd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
","),++rg%10||(Ob+="\n\t"),"key"==Ga&&(Ga="keys"),Ob+=Ga}void 0===N&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ha?Ha?"messages on: ":"messages off: ":"message categories:\n\t")+(Ob||"none"));Ie(a)}break;case "o":var xd=f[1],tg=f[2];if(xd&&"?"!=xd){var yd=Ce(a,xd,"port #"),zd=Ce(a,tg);void 0!==yd&&void 0!==zd&&(Tb(a.u,yd,zd),a.g(u(yd)+": "+ba(zd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var pf="pr"==f[0]?1:0,ug=1+pf;if(a.Y)a.g("step in progress");else{var Ad=Y(a.b.R);switch(a.aa(Ad)){case 205:a.Y=ug,Re(Ad,3)}a.Y?(a.Za(a.I,Ad,!0),a.bb()||(a.B&&a.B.xb(),a.Y=0)):Qf(a,pf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}yf(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":zf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.Wd+",RELEASE"+
(ob?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(va());break;case "?":if(f[1]){Pf(a,b.substr(1));break}var Bd="commands:",Cd;for(Cd in Ke)Bd+="\n"+la(Cd,9)+Ke[Cd];Hd(a)||(Bd+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Bd);break;default:a.g("unknown command: "+b),d=!1}}}catch(qf){a.g("debugger error: "+(qf.stack||qf.message)),d=!1}return d}function Bc(a,b,c){b=a.Fb(b,c);for(var d in b)if(!Ef(a,b[+d]))return!1;return!0}
Ma(function(){for(var a=E(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Fe(d);eb(d,c)}});
Ma(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Fe(d);eb(d,c)}});
function Sf(a,b,c){z.call(this,"Computer",a,Sf,67108864);this.C.xa=!1;Tf(this,b);this.O=mc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Uf;this.L=null;this.J=this.ba=!1;this.fa=mc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Vf(this);if(this.b=db("CPU",this.id)){this.H=db("Debugger",this.id);this.G=[];for(b=null;b=sb(this,"Video",b);)this.G.push(b);this.u=new ub({id:this.Bb+".bus",busWidth:this.ea},this.b,this.H);var d,e=bb(this.id);if((this.I=db("Panel",this.id))&&
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ka=this.I.ka,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.0\nCopyright \u00a9 2012-2016 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.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=mc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.J=!0,this.B=Uf),this.B&&(this.M=new J(this,"1.30.0"),Wf(this.M)?
b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.J=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.K=null,h.J=!1,h.ka("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.ba=!0);G(h)})}else G(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.vb)}else w("Unable to find CPU component")}A(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.J=!0);if(b){var g=this;sa(b,null,!0,function(a,b,c){c?(g.K=null,g.J=!1,g.ka("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.L=b,g.ba=!0);F(g)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.vb)}else w("Unable to find CPU component")}A(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
function mc(a,b,c){var d=b.toLowerCase(),d=Ua[b]||Ua[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Yf(a,b,c){for(var d=bb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!kb(f)){kb(f,function(){Yf(a,b,c)});return}}b.call(a,c)}
function Zf(a,b){var c=new J(a,"1.30.0","validate");if(Wf(c)&&$f(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.ka("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Sf.prototype;
l.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new J(this,"1.30.0");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.D=new J(this,"1.30.0","failsafe");Wf(this.D)&&(ag(this,d),a=2,bg(this.D));this.D.set("timestamp",qa());cg(this.D);var e=this.B&&!this.J;if(1==a||wa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?Wf(d,h):("error"==
f&&"no machine state"!=h?(this.ka("Error: "+h),"unable to verify user"==h&&(Aa("user",""),this.j=null)):this.g(f+": "+h),bg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=bb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=dg(this,h,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.wc,b):this.wc(b)}};
l.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new J(this,"1.30.0");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.D=new J(this,"1.30.0","failsafe");Wf(this.D)&&(ag(this,d),a=2,bg(this.D));this.D.set("timestamp",qa());cg(this.D);var e=this.B&&!this.J;if(1==a||wa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Wf(d,g):("error"==
f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.j=null)):this.g(f+": "+g),bg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=bb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=dg(this,g,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.wc,b):this.wc(b)}};
function dg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!0;if(b.Ea){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.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.B=Uf,window&&window.location.reload()):a.Y=!0,b.Ea(null),e=!1)}if(!d&&b.ec)for(a=b.ec.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.wc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(dg(this,this.b,b,c,a),this.b.sb());this.Y&&(ag(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
function ag(a,b){if(wa("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.j||"",d=b.toString(),e={app:"PC8080",ver:"1.30.0"};e.url=a.fa;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}}
function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.0"),h=new J(a,"1.30.0","validate"),g=qa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.30.0");f.set("url",window?window.location.href:null);f.set("browser",va());a.b&&a.b.Ia&&(c&&a.b.qa(),d=a.b.Ia(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var m=g[k];m.C.xa&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.C.xa=!1,!1===
d&&(e=null)))}e&&(c?(g=d=!1,b?(a.j&&eg(a,a.j,f.toString()),cg(h)&&cg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(gb(this,"Resetting "+this.u.type),this.u.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(gb(this,"Resetting "+c.type),c.reset())}};
function ag(a,b){if(wa("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.j||"";b=b.toString();var d={app:"PC8080",ver:"1.30.0"};d.url=a.fa;d.user=c;d.type="bug";d.data=b;sa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.30.0"),g=new J(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.0");f.set("url",window?window.location.href:null);f.set("browser",va());a.b&&a.b.Ia&&(c&&a.b.qa(),d=a.b.Ia(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var h=bb(a.id),k=0;k<h.length;k++){var n=h[k];n.C.xa&&(n.Ia&&(d=n.Ia(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.C.xa=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.j&&eg(a,a.j,f.toString()),cg(g)&&cg(f)||(e=null,d=h=!0)):a.B&&(d=!0,h=3==a.B),d&&f.clear(h)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(gb(this,"Resetting "+this.u.type),this.u.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(gb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=bb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=bb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.pa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Rf(d,!1,!0):Yf(d,d.vb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.B&&!d.K){var a=wa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rf(d,a,!0);!a&&d.P?window&&window.location.reload():d.vb(Uf)}else d.reset(),d.b&&d.b.sb()},!0;case "save":if(fa())c.parentNode.removeChild(c);else return this.N[b]=
c,c.onclick=function(){var a=Vf(d,!0);if(a){var b=!!(d.B&&!d.K||d.P),c=Rf(d,b);b?eg(d,a,c):d.ka("Resume disabled, machine state not saved")}},!0}return!1};
function Vf(a,b){var c=a.j;c||(c=za("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=fg(a,c))||a.ka("The user ID is invalid."))):b&&a.ka("Browser local storage is not available"));return c}
function fg(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Aa("user",c.data),a.j=c.data)}catch(e){w(e.message+" ("+d+")")}return a.j}function Xf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+gg(a,"1.30.0"));return b}
function Vf(a,b){var c=a.j;c||((c=za("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=fg(a,c))||a.ka("The user ID is invalid.")):b&&a.ka("Browser local storage is not available"));return c}
function fg(a,b){a.j=null;b=sa(ha()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.j=b.data)}catch(d){w(d.message+" ("+c+")")}return a.j}function Xf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+gg(a,"1.30.0"));return b}
function eg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gg(a,"1.30.0");d.data=c;b=sa(ha()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ka("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ka(c),Aa("user",""),a.j=null)}}
function sb(a,b,c){a=bb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.xb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.la&&d.la.focus();!a&&window&&window.scrollTo(b,c)}};l.Ja=function(a){this.b&&this.b.Ja(a);this.I&&this.I.Ja(a)};
Ma(function(){for(var a=E(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=E(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=B(f),h=new Sf(h,d,!0);eb(h,f);h.O&&Yf(h,h.vb)}});Ea.show.push(function(){for(var a=E(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=db("Computer",c.id))&&c.ha&&!c.C.xa&&c.vb(-1)}});
Ea.exit.push(function(){for(var a=E(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=db("Computer",c.id))&&c.C.xa&&Rf(c,!(!c.B||c.K),!0)}});function J(a,b,c){this.id=a.id;this.key=gg(a,b,c);this.H=a.H;bg(this,a.Ld)}function gg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
Ma(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new Sf(g,d,!0);eb(g,f);g.O&&Yf(g,g.vb)}});Ea.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=db("Computer",c.id))&&c.ha&&!c.C.xa&&c.vb(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=db("Computer",c.id))&&c.C.xa&&Rf(c,!(!c.B||c.K),!0)}});function J(a,b,c){this.id=a.id;this.key=gg(a,b,c);this.H=a.H;bg(this,a.Ld)}function gg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
J.prototype={constructor:J,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){bg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function bg(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function cg(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $f(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Wf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.b=!0):!1}var hg=0;
function vg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):wg(g,a,b,c,d,e,f)})}
function wg(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){ab(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\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<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?xg(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),
function vg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):wg(h,a,b,c,d,e,f)})}
function wg(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ab(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(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?xg(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function xg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(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],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[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);xg(a,b,c)}})}else c(a,null)}
function yg(a,b,c,d){function e(a){if(void 0===g){var b=h&&E(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--hg||Pa(!0));k=!1}var h,g,k=!0;hg++;$a[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));p.appendChild(q)}c||
(c="/versions/pc8080/1.30.0/components.xsl");m=function(d,g){g?vg(c,null,null,!1,e,function(d,k){if(k)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=g.transformNode(k);m?(h.outerHTML=m,--hg||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(k),(m=m.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(m,h),--hg||Pa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?vg(b,a,d,!0,e,m):wg(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return yg(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})();
function xg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);xg(a,b,c)}})}else c(a,null)}
function yg(a,b,c,d){function e(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ka(a))}function f(a){e("Error: "+a);k&&(--hg||Pa(!0));k=!1}var g,h,k=!0;hg++;$a[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=n:q.appendChild(document.createTextNode(n));p.appendChild(q)}c||
(c="/versions/pc8080/1.30.0/components.xsl");n=function(d,h){h?vg(c,null,null,!1,e,function(d,k){k?(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--hg||Pa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--hg||Pa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?vg(b,a,d,!0,e,n):wg(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(x){f(x.message)}return k}window.embedPC8080=function(a,b,c,d){Pa(!1);return yg(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;})();