Prevent new scripts from interrupting scripts in progress

This commit is contained in:
Jeff Parsons 2017-02-08 09:25:44 -08:00 committed by Jeff Parsons
commit 83591c695b
11 changed files with 2460 additions and 2452 deletions

View file

@ -109,7 +109,7 @@
}
.pcjs-description, .pcjs-status {
font-size: x-small;
line-height: 2.8em;
line-height: 2.0em;
}
.pcjs-key {
border: 1px solid black;

View file

@ -29,270 +29,272 @@
http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017
*/
var k;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
var l;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},ca={59:186,61:187,173:189,224:91};
function n(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ta=null;da.push(this)}function ea(a,b,c){fa[a]&&b&&(fa[a][b]=c)}function ga(){return Date.now()||+new Date}
function ha(a,b,c){b||q((c?c+": ":"")+a)}function q(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}function ka(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<da.length;b++){var d=da[b];a&&d.id.indexOf(a)||c.push(d)}return c}function la(a){if(void 0!==a){var b;for(b=0;b<da.length;b++)if(da[b].id===a)return da[b]}return null}
function ma(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<da.length;d++)if(c)c==da[d]&&(c=null);else if(!(a!=da[d].type||b&&da[d].id.indexOf(b)))return da[d]}return null}function oa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function pa(a,b){b=qa(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=oa(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),l=h.length}}}}
function pa(a,b){b=qa(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=oa(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),k=h.length}}}}
function qa(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function ra(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=sa.indexOf(f)&&(g=function(c){return function(){ra(a,b,c)}}(c+1));var h=ta[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,l=ma(e[1],a);if(l)if(h=va[f])d=h(l,e[2],e[3]);else if(h=l.exports)if(h=h[f])if(d=!0,!g)d=h.call(l,e[2],e[3]);else if(!h.call(l,g,e[2],e[3]))break}if(!d){q("Script error ("+f+")");break}c++}return d}k=n.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ta=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};k.log=function(){};k.i=function(){};
k.status=function(a){this.i(this.cb+": "+a)};k.aa=function(a,b,c){ha(a,b,c||this.type)};function wa(a,b){a.G.error=!0;a.aa(b)}function xa(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function ya(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Aa(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Ca(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
k.va=function(){return this.G.ja=!0};k.ua=function(a,b){b&&(this.G.ja=!1);return!0};function Da(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Ea(a,b){a.K&&Da(a,0)&&a.K.message(b,void 0)}function r(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Fa(a.K,a,b,c,d,e,f,g))}window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));
var fa=window?window.PCjs.Machines:{},da=window?window.PCjs.Components:[],sa=["hold","sleep","wait"],ta={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},va={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});
Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function Ga(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 Ha(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}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 Ia(a){return t(a,2,!0)}function x(a){return t(a,4,!0)}function Ja(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 Ka(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function La(){var a=Oa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Pa(a){return a.replace(/[&<>"']/g,function(a){return Qa[a]})}function Ra(a,b){return(a+" ").slice(0,b)}
function Sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Qa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ta={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",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 Ua(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Va(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Wa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function Xa(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ya(a,b){var c,d={ma:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c<e.length;c++)d.ma[f++]=e[c]&255,d.ma[f++]=e[c]>>8&255;else if(e=g.data)for(d.ma=Array(4*e.length),f=c=0;c<e.length;c++)d.ma[f++]=
function ra(a){for(var b=!0,c=sa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=ta.indexOf(e)&&(f=function(){return function(){ra(a)}}());var g=va[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=ma(d[1],a);if(h)if(g=wa[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete sa[a];return b}l=n.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ta=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.cb+": "+a)};l.aa=function(a,b,c){ha(a,b,c||this.type)};function xa(a,b){a.G.error=!0;a.aa(b)}function ya(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function Aa(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Ca(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Da(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
l.va=function(){return this.G.ja=!0};l.ua=function(a,b){b&&(this.G.ja=!1);return!0};function Ea(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Fa(a,b){a.K&&Ea(a,0)&&a.K.message(b,void 0)}function r(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Ga(a.K,a,b,c,d,e,f,g))}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var fa=window?window.PCjs.Machines:{},da=window?window.PCjs.Components:[],sa=window?window.PCjs.Commands:{},ta=["hold","sleep","wait"],va={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},wa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function Ha(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 Ia(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}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 Ja(a){return t(a,2,!0)}function x(a){return t(a,4,!0)}function Ka(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 La(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Oa(){var a=Pa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Qa(a){return a.replace(/[&<>"']/g,function(a){return Ra[a]})}function Sa(a,b){return(a+" ").slice(0,b)}
function Ta(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ua={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",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 Va(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Wa(){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 Xa(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 Ya(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",p;for(p in b)b.hasOwnProperty(p)&&(k&&(k+="&"),k+=p+"="+encodeURIComponent(b[p]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function bb(a,b){var c,d={ma:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.ma=e;else if(e=g.words)for(d.ma=Array(2*e.length),f=c=0;c<e.length;c++)d.ma[f++]=e[c]&255,d.ma[f++]=e[c]>>8&255;else if(e=g.data)for(d.ma=Array(4*e.length),f=c=0;c<e.length;c++)d.ma[f++]=
e[c]&255,d.ma[f++]=e[c]>>8&255,d.ma[f++]=e[c]>>16&255,d.ma[f++]=e[c]>>24&255;else d.ma=g;d.ra=g.symbols;d.ma.length?1==d.ma.length&&(q(d.ma[0]),d=null):(q("Empty resource: "+a),d=null)}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ma=e)}return d}
function Oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function bb(){return window?window.navigator.userAgent:""}function cb(){if(null==db){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}db=a}return db}function eb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function fb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function gb(a){if(window){var b=bb();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function hb(a){if(!ib){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}ib=c}return ib[a]}
function jb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function kb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function lb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
function mb(a){ob.init.push(a)}function pb(a){if(qb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ha("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function rb(a){!qb&&a?(qb=!0,sb&&tb("init"),vb&&tb("show")):qb=a}function tb(a){ob[a]&&pb(ob[a])}var ib=null,ob={init:[],show:[],exit:[]},sb=!1,vb=!1,qb=!0,db=null;lb("onload",function(){sb=!0;pb(ob.init)});lb("onpageshow",function(){vb=!0;pb(ob.show)});
lb(gb("Opera")||gb("iOS")?"onunload":"onbeforeunload",function(){pb(ob.exit)});
var wb="undefined"!==typeof ArrayBuffer,xb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],yb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function zb(a){n.call(this,"Panel",a)}aa(zb,n);
zb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:n.prototype.ca.call(this,a,b,c,d)};zb.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Ab(a,"Keyboard")};zb.prototype.va=function(a,b){b||Bb();return!0};zb.prototype.ua=function(){return!0};
function Bb(){for(var a=!1,b=qa(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=oa(d),f=la(e.id);f||(a=!0,f=new zb(e));pa(f,d);a&&ya(f)}}mb(Bb);
function Cb(a,b,c){n.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Db(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;ya(this)}aa(Cb,n);Cb.prototype.reset=function(){};
Cb.prototype.va=function(a,b){b||this.reset();return!0};function Eb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.w,p=a.w-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-l);p>f&&(p=f);h.pb=e-h.J+p;e=l+a.w;f-=p;g++;continue}}return Fb(Gb,e,f)}e=new z(e,p,a.w,d);Db(e,a.K,h);a.b[g++]=e;e=l+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Hb[d]+" at "+x(b)),!0):Fb(Ib,b,c)}
function Jb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Kb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Lb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Ob(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Pb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
function Qb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],u=g+1;u<e.length&&e[u]===p;)u++;l[h++]=u-g;l[h++]=p;g=u}l.length<e.length&&(e=l)}c[f]=e}}return c}function Rb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Sb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.A[l]?q("Input port "+x(l)+" already registered"):f.A[l]=[h,!1]}}function Tb(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,l=1==h?255:2==h?65535:-1,p=l;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=l:p&=l),a.K&&a.D!=g[1]&&Ub(a.K,b,p)):a.K&&(Fa(a.K,a,b,null,c),a.D&&Ub(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function Vb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Wb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.B[l]?q("Output port "+x(l)+" already registered"):f.B[l]=[h,!1]}}
function Xb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g){if(g[0])g[0](b,l,d);a.K&&a.F!=g[1]&&Yb(a.K,b,l)}else a.K&&(Fa(a.K,a,b,l,d),a.F&&Yb(a.K,b,l));f+=h<<3;b+=h;e-=h}}function Fb(a,b,c){q("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Gb=1,Ib=2,Zb;if(wb){var $b=new ArrayBuffer(2);(new DataView($b)).setUint16(0,256,!0);Zb=256===(new Uint16Array($b))[0]}else Zb=!1;var ac=Zb;
function z(a,b,c,d){this.id=bc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||cc;this.u=d==dc;Db(this);this.Ca=this.Dc=!1;if(c)if(wb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),fc(this,ac?gc:hc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;fc(this,ic)}else fc(this)}k=z.prototype;
k.save=function(){var a,b;if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ca=!0}return!1};function fc(a,b){b||(b=sc);tc(a,b,void 0);uc(a,b,void 0)}function tc(a,b,c){c&&a.H||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function uc(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}k.Pa=function(a,b){b?this.P++||uc(this,vc,!1):this.H++||tc(this,vc,!1)};function wc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.H||(a.Ya=a.ob,a.Hc=a.Nb)}function Db(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&tc(a,vc,!1),(a.P=c.P)&&uc(a,vc,!1))}k.Gc=function(){this.K&&Da(this.K,129)&&this.K.message("attempt to read invalid block %"+t(this.J),!0);return 255};
k.rb=function(a,b){this.K&&Da(this.K,129)&&this.K.message("attempt to write "+x(b)+" to invalid block %"+t(this.J),!0)};k.Ic=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};k.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};k.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};k.me=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};k.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ca=!0};
k.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ca=!0};k.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;xc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};k.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;xc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
k.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;xc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};k.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;xc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};k.fe=function(a){return this.g[a]};k.he=function(a){return this.g[a]};k.je=function(a){return this.R.getUint16(a,!0)};k.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};k.se=function(a,b){this.g[a]=b;this.Ca=!0};
k.ue=function(a,b){this.g[a]=b;this.Ca=!0};k.we=function(a,b){this.R.setUint16(a,b,!0);this.Ca=!0};k.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ca=!0};var cc=0,dc=2,Hb=["NONE","RAM","ROM","VID","H/W"],bc=0,sc=[],ic=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],vc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(wb)var hc=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],gc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function yc(a,b){n.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Fa/1E4)/100;this.Z=this.Ta*this.U;this.G.ka=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);ya(this)}aa(yc,n);k=yc.prototype;
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<zc.length;b++)(c=this.P[zc[b]])&&this.R.ca(null,zc[b],c);this.W=Ab(a,"ChipSet");a=Ac(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);ya(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.va=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Dc(a),a.ea&&(b=a.ea,a.ea=null,Ec(a,b))):this.i("No debugger detected")}Fc(this);return!0};k.ua=function(a){return a?this.save():!0};k.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};k.Ec=function(){return 0};
function Cc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.za&&0<a.na;a.G.Wa&&(a.ya=0,a.oa=a.za-a.la)}function Gc(a,b){if(a.G.Wa){var c=!1;a.ya=a.ya+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Hc(a)&&(a.na=a.sa=-1,Cc(a),a.da(),c=!0);c&&a.i(Hc(a)+" cycles: checksum="+t(a.ya))}}
k.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=ka(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ka?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Ic(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Jc(a,b,c){a.la+=b;c&&(a.ga=a.b=0)}function Kc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Lc);a.Na=Math.floor(a.Fa/Lc*c);b||(a.wa=a.Na);a.Va=0}function Hc(a){return a.la+a.X+a.ga-a.b}function Bc(a){a.Y=0;a.kb=0;a.la=a.X=a.ga=a.b=0;Cc(a);Ic(a,1)}
function Ic(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Jc(a,a.X);a.X=0;a.V=ga();a.ea=0;Kc(a);return d}function Mc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Nc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Fa*a.U/1E3,a.T[b][0]=c+Oc(a))}function Oc(a,b){var c=a.ga-=a.b;a.b=0;b&&(a.ga=0);return c}
k.tb=function(a){if(Ca(this,!0)){if(!this.G.ka){Ic(this);this.R&&this.R.start(this.V,Hc(this));this.G.ka=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Pc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Fa&&Kc(this,!0);this.Ha=0;this.Ma=ga();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Oc(this,!0);
this.Ha+=c;this.X+=c;Gc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.wa-=c;if(0>=this.wa){this.wa+=this.Na;++this.kb>=Qc&&(this.R&&Pc(this.R),this.kb=0);break}}while(this.G.ka)}catch(l){this.da();Fc(this);this.R&&this.R.stop(ga(),Hc(this));Ca(this,!1);wa(this,l.stack||l.message);return}c=setTimeout;d=this.Db;this.ea=ga();e=this.jb;this.Ha&&(e=Math.round(e*this.Ha/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.la=0,Ic(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Ha;this.ea+=e;c(d,e)}else Fc(this),this.R&&this.R.stop(ga(),Hc(this))};k.Eb=function(){return 0};k.da=function(a){Aa(this,!0);Oc(this);Jc(this,this.X);this.X=0;if(this.G.ka){this.G.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Fc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)Rc(c.A[d],b);Pc(a.R,b)}}var Lc=30,Qc=15,zc=["power","reset"];
function Sc(a){var b=+a.model||8080;yc.call(this,a,1E6);this.xb=b;this.gb=Tc;Bc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;Uc(this)}aa(Sc,yc);function Vc(a,b){a.La.push(b)}k=Sc.prototype;k.reset=function(){this.G.ka&&this.da();Uc(this);Bc(this);this.G.error=!1;yc.prototype.reset.call(this)};function Uc(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);Wc(a,0);a.S=0}function id(a,b){a.hb=b;A(a,b)}
k.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+jd(this)|0};k.save=function(){var a=new kd(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,jd(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,Qb(this.H));return a.data()};
k.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);Wc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Ic(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var l=e[h++],p=e[h++];l--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.ca=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=yc.prototype.ca.call(this,a,b,c)}return a};function ld(a){return a.w<<8|a.A}function md(a,b){a.w=b>>8&255;a.A=b&255}function nd(a){return a.B<<8|a.C}function od(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function pd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function qd(a){return a.I&256?1:0}function rd(a,b){a.I=a.I&255|b}function sd(a){return xb[a.L&255]?4:0}function td(a){return(a.L^a.O)&16?16:0}function ud(a){return a.I&255?0:64}function vd(a){return a.L&128?128:0}function jd(a){return a.N&-214|vd(a)|ud(a)|td(a)|sd(a)|qd(a)}function Wc(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function wd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function xd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function yd(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function zd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Ad(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Bd(a,b){return a.L=a.I=a.O=a.g|b}function Cd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function Dd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Ed(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Fd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Kb(a.H,a.j);A(a,a.j+2);return b}function Gd(a){var b=Kb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Pb(a.H,a.M,b)}
function Hd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Oc(a),!1):!0}function Id(a,b){a.S|=1<<b;a.N&512&&Oc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(wa(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ka||a.G.Bc?t(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
k.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Jd(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.ga=this.b=a;if(Hd(this)){do{if(b){if(Kd(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.ga-this.b:void 0===this.G.complete?0:-1};mb(function(){for(var a=qa(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Sc(d);pa(d,c)}});function Ld(){this.b-=4}function Md(){A(this,G(this));this.b-=10}
function Nd(){A(this,Gd(this));this.b-=10}function Od(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var Tc=[Ld,function(){md(this,G(this));this.b-=10},function(){Fd(this,ld(this),this.g);this.b-=7},function(){md(this,ld(this)+1);this.b-=5},function(){this.w=Ad(this,this.w);this.b-=5},function(){this.w=zd(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;rd(this,a&256);this.b-=4},Ld,function(){var a;pd(this,a=D(this)+ld(this));rd(this,a>>8&256);this.b-=10},function(){this.g=E(this,ld(this));this.b-=7},function(){md(this,ld(this)-1);this.b-=
5},function(){this.A=Ad(this,this.A);this.b-=5},function(){this.A=zd(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;rd(this,a);this.b-=4},Ld,function(){od(this,G(this));this.b-=10},function(){Fd(this,nd(this),this.g);this.b-=7},function(){od(this,nd(this)+1);this.b-=5},function(){this.B=Ad(this,this.B);this.b-=5},function(){this.B=zd(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
qd(this);rd(this,a&256);this.b-=4},Ld,function(){var a;pd(this,a=D(this)+nd(this));rd(this,a>>8&256);this.b-=10},function(){this.g=E(this,nd(this));this.b-=7},function(){od(this,nd(this)-1);this.b-=5},function(){this.C=Ad(this,this.C);this.b-=5},function(){this.C=zd(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(qd(this)<<8|this.g)>>1;rd(this,a&256);this.b-=4},Ld,function(){pd(this,G(this));this.b-=10},function(){var a=G(this);Pb(this.H,a,D(this));
this.b-=16},function(){pd(this,D(this)+1);this.b-=5},function(){this.D=Ad(this,this.D);this.b-=5},function(){this.D=zd(this,this.D);this.b-=5},function(){this.D=F(this);this.b-=7},function(){var a=0,b=qd(this);if(td(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=wd(this,a);rd(this,b?256:0);this.b-=4},Ld,function(){var a;pd(this,a=D(this)+D(this));rd(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=Kb(this.H,a);pd(this,a);this.b-=16},function(){pd(this,D(this)-1);this.b-=5},function(){this.F=
Ad(this,this.F);this.b-=5},function(){this.F=zd(this,this.F);this.b-=5},function(){this.F=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Ld,function(){this.M=G(this)&65535;this.b-=10},function(){Fd(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Fd(this,a,Ad(this,E(this,a)));this.b-=10},function(){var a=D(this);Fd(this,a,zd(this,E(this,a)));this.b-=10},function(){Fd(this,D(this),F(this));this.b-=10},function(){this.I|=256;this.b-=
4},Ld,function(){var a;pd(this,a=D(this)+this.M);rd(this,a>>8&256);this.b-=10},function(){this.g=E(this,G(this));this.b-=13},function(){this.M=this.M-1&65535;this.b-=5},function(){this.g=Ad(this,this.g);this.b-=5},function(){this.g=zd(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){rd(this,qd(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.w=this.A;this.b-=5},function(){this.w=this.B;this.b-=5},function(){this.w=this.C;this.b-=5},function(){this.w=this.D;this.b-=
function Pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function cb(){return window?window.navigator.userAgent:""}function db(){if(null==eb){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}eb=a}return eb}function fb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function gb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function hb(a){if(window){var b=cb();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function ib(a){if(!jb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}jb=c}return jb[a]}
function kb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}function lb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function mb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}
function ob(a){pb.init.push(a)}function qb(a){if(rb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ha("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function sb(a){!rb&&a?(rb=!0,tb&&vb("init"),wb&&vb("show")):rb=a}function vb(a){pb[a]&&qb(pb[a])}var jb=null,pb={init:[],show:[],exit:[]},tb=!1,wb=!1,rb=!0,eb=null;mb("onload",function(){tb=!0;qb(pb.init)});mb("onpageshow",function(){wb=!0;qb(pb.show)});
mb(hb("Opera")||hb("iOS")?"onunload":"onbeforeunload",function(){qb(pb.exit)});
var xb="undefined"!==typeof ArrayBuffer,yb=[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],zb={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 Ab(a){n.call(this,"Panel",a)}aa(Ab,n);
Ab.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:n.prototype.ca.call(this,a,b,c,d)};Ab.prototype.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Bb(a,"Keyboard")};Ab.prototype.va=function(a,b){b||Cb();return!0};Ab.prototype.ua=function(){return!0};
function Cb(){for(var a=!1,b=qa(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=oa(d),f=la(e.id);f||(a=!0,f=new Ab(e));pa(f,d);a&&Aa(f)}}ob(Cb);
function Db(a,b,c){n.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Eb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Aa(this)}aa(Db,n);Db.prototype.reset=function(){};
Db.prototype.va=function(a,b){b||this.reset();return!0};function Fb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.w,p=a.w-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-k);p>f&&(p=f);h.pb=e-h.J+p;e=k+a.w;f-=p;g++;continue}}return Gb(Hb,e,f)}e=new z(e,p,a.w,d);Eb(e,a.K,h);a.b[g++]=e;e=k+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Ib[d]+" at "+x(b)),!0):Gb(Jb,b,c)}
function Kb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Lb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Ob(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Pb(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Qb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
function Rb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ca||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],u=g+1;u<e.length&&e[u]===p;)u++;k[h++]=u-g;k[h++]=p;g=u}k.length<e.length&&(e=k)}c[f]=e}}return c}function Sb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function Tb(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.A[k]?q("Input port "+x(k)+" already registered"):f.A[k]=[h,!1]}}function Ub(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,k=1==h?255:2==h?65535:-1,p=k;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=k:p&=k),a.K&&a.D!=g[1]&&Vb(a.K,b,p)):a.K&&(Ga(a.K,a,b,null,c),a.D&&Vb(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function Wb(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Xb(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]?q("Output port "+x(k)+" already registered"):f.B[k]=[h,!1]}}
function Yb(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[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.K&&a.F!=g[1]&&Zb(a.K,b,k)}else a.K&&(Ga(a.K,a,b,k,d),a.F&&Zb(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Gb(a,b,c){q("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Hb=1,Jb=2,$b;if(xb){var ac=new ArrayBuffer(2);(new DataView(ac)).setUint16(0,256,!0);$b=256===(new Uint16Array(ac))[0]}else $b=!1;var bc=$b;
function z(a,b,c,d){this.id=cc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||dc;this.u=d==fc;Eb(this);this.Ca=this.Dc=!1;if(c)if(xb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.w=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),gc(this,bc?hc:ic);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;gc(this,sc)}else gc(this)}l=z.prototype;
l.save=function(){var a,b;if(xb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(xb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ca=!0}return!1};function gc(a,b){b||(b=tc);uc(a,b,void 0);vc(a,b,void 0)}function uc(a,b,c){c&&a.H||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function vc(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}l.Pa=function(a,b){b?this.P++||vc(this,wc,!1):this.H++||uc(this,wc,!1)};function xc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.H||(a.Ya=a.ob,a.Hc=a.Nb)}function Eb(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&uc(a,wc,!1),(a.P=c.P)&&vc(a,wc,!1))}l.Gc=function(){this.K&&Ea(this.K,129)&&this.K.message("attempt to read invalid block %"+t(this.J),!0);return 255};
l.rb=function(a,b){this.K&&Ea(this.K,129)&&this.K.message("attempt to write "+x(b)+" to invalid block %"+t(this.J),!0)};l.Ic=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};l.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};l.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.me=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};l.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ca=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ca=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;yc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;yc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;yc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;yc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ca=!0};
l.ue=function(a,b){this.g[a]=b;this.Ca=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ca=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ca=!0};var dc=0,fc=2,Ib=["NONE","RAM","ROM","VID","H/W"],cc=0,tc=[],sc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],wc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(xb)var ic=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],hc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function zc(a,b){n.call(this,"CPU",a,1);var c=a.multiplier||1;this.Fa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Fa/1E4)/100;this.Z=this.Ta*this.U;this.G.ka=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.ya=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Aa(this)}aa(zc,n);l=zc.prototype;
l.Ea=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Ac.length;b++)(c=this.P[Ac[b]])&&this.R.ca(null,Ac[b],c);this.W=Bb(a,"ChipSet");a=Bc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Aa(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.va=function(a,b){if(!b){if(a&&this.restore){Cc(this);if(!this.restore(a))return!1;Dc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Ec(a),a.ea&&(b=a.ea,a.ea=null,Fc(a,b))):this.i("No debugger detected")}Gc(this);return!0};l.ua=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Dc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.za&&0<a.na;a.G.Wa&&(a.ya=0,a.oa=a.za-a.la)}function Hc(a,b){if(a.G.Wa){var c=!1;a.ya=a.ya+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Ic(a)&&(a.na=a.sa=-1,Dc(a),a.da(),c=!0);c&&a.i(Ic(a)+" cycles: checksum="+t(a.ya))}}
l.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=ka(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ka?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Jc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Kc(a,b,c){a.la+=b;c&&(a.ga=a.b=0)}function Lc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Mc);a.Na=Math.floor(a.Fa/Mc*c);b||(a.wa=a.Na);a.Va=0}function Ic(a){return a.la+a.X+a.ga-a.b}function Cc(a){a.Y=0;a.kb=0;a.la=a.X=a.ga=a.b=0;Dc(a);Jc(a,1)}
function Jc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Kc(a,a.X);a.X=0;a.V=ga();a.ea=0;Lc(a);return d}function Nc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Oc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Fa*a.U/1E3,a.T[b][0]=c+Pc(a))}function Pc(a,b){var c=a.ga-=a.b;a.b=0;b&&(a.ga=0);return c}
l.tb=function(a){if(Da(this,!0)){if(!this.G.ka){Jc(this);this.R&&this.R.start(this.V,Ic(this));this.G.ka=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Qc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Fa&&Lc(this,!0);this.Ha=0;this.Ma=ga();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Pc(this,!0);
this.Ha+=c;this.X+=c;Hc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.wa-=c;if(0>=this.wa){this.wa+=this.Na;++this.kb>=Rc&&(this.R&&Qc(this.R),this.kb=0);break}}while(this.G.ka)}catch(k){this.da();Gc(this);this.R&&this.R.stop(ga(),Ic(this));Da(this,!1);xa(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ea=ga();e=this.jb;this.Ha&&(e=Math.round(e*this.Ha/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.la=0,Jc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Ha;this.ea+=e;c(d,e)}else Gc(this),this.R&&this.R.stop(ga(),Ic(this))};l.Eb=function(){return 0};l.da=function(a){Ca(this,!0);Pc(this);Kc(this,this.X);this.X=0;if(this.G.ka){this.G.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Gc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)Sc(c.A[d],b);Qc(a.R,b)}}var Mc=30,Rc=15,Ac=["power","reset"];
function Tc(a){var b=+a.model||8080;zc.call(this,a,1E6);this.xb=b;this.gb=Uc;Cc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.La=[];this.hb=0;Vc(this)}aa(Tc,zc);function Wc(a,b){a.La.push(b)}l=Tc.prototype;l.reset=function(){this.G.ka&&this.da();Vc(this);Cc(this);this.G.error=!1;zc.prototype.reset.call(this)};function Vc(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);Xc(a,0);a.S=0}function jd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+kd(this)|0};l.save=function(){var a=new ld(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,kd(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,Rb(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);Xc(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Jc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.ca=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=zc.prototype.ca.call(this,a,b,c)}return a};function md(a){return a.w<<8|a.A}function nd(a,b){a.w=b>>8&255;a.A=b&255}function od(a){return a.B<<8|a.C}function pd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function qd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function rd(a){return a.I&256?1:0}function sd(a,b){a.I=a.I&255|b}function td(a){return yb[a.L&255]?4:0}function ud(a){return(a.L^a.O)&16?16:0}function vd(a){return a.I&255?0:64}function wd(a){return a.L&128?128:0}function kd(a){return a.N&-214|wd(a)|vd(a)|ud(a)|td(a)|rd(a)}function Xc(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function xd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function yd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function zd(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function Ad(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Bd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Cd(a,b){return a.L=a.I=a.O=a.g|b}function Dd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function Ed(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Fd(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Gd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Lb(a.H,a.j);A(a,a.j+2);return b}function Hd(a){var b=Lb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Qb(a.H,a.M,b)}
function Id(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Pc(a),!1):!0}function Jd(a,b){a.S|=1<<b;a.N&512&&Pc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(xa(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ka||a.G.Bc?t(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Kd(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.ga=this.b=a;if(Id(this)){do{if(b){if(Ld(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.ga-this.b:void 0===this.G.complete?0:-1};ob(function(){for(var a=qa(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Tc(d);pa(d,c)}});function Md(){this.b-=4}function Nd(){A(this,G(this));this.b-=10}
function Od(){A(this,Hd(this));this.b-=10}function Pd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var Uc=[Md,function(){nd(this,G(this));this.b-=10},function(){Gd(this,md(this),this.g);this.b-=7},function(){nd(this,md(this)+1);this.b-=5},function(){this.w=Bd(this,this.w);this.b-=5},function(){this.w=Ad(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;sd(this,a&256);this.b-=4},Md,function(){var a;qd(this,a=D(this)+md(this));sd(this,a>>8&256);this.b-=10},function(){this.g=E(this,md(this));this.b-=7},function(){nd(this,md(this)-1);this.b-=
5},function(){this.A=Bd(this,this.A);this.b-=5},function(){this.A=Ad(this,this.A);this.b-=5},function(){this.A=F(this);this.b-=7},function(){var a=this.g<<8&256;this.g=(a|this.g)>>1;sd(this,a);this.b-=4},Md,function(){pd(this,G(this));this.b-=10},function(){Gd(this,od(this),this.g);this.b-=7},function(){pd(this,od(this)+1);this.b-=5},function(){this.B=Bd(this,this.B);this.b-=5},function(){this.B=Ad(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
rd(this);sd(this,a&256);this.b-=4},Md,function(){var a;qd(this,a=D(this)+od(this));sd(this,a>>8&256);this.b-=10},function(){this.g=E(this,od(this));this.b-=7},function(){pd(this,od(this)-1);this.b-=5},function(){this.C=Bd(this,this.C);this.b-=5},function(){this.C=Ad(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(rd(this)<<8|this.g)>>1;sd(this,a&256);this.b-=4},Md,function(){qd(this,G(this));this.b-=10},function(){var a=G(this);Qb(this.H,a,D(this));
this.b-=16},function(){qd(this,D(this)+1);this.b-=5},function(){this.D=Bd(this,this.D);this.b-=5},function(){this.D=Ad(this,this.D);this.b-=5},function(){this.D=F(this);this.b-=7},function(){var a=0,b=rd(this);if(ud(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=xd(this,a);sd(this,b?256:0);this.b-=4},Md,function(){var a;qd(this,a=D(this)+D(this));sd(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=Lb(this.H,a);qd(this,a);this.b-=16},function(){qd(this,D(this)-1);this.b-=5},function(){this.F=
Bd(this,this.F);this.b-=5},function(){this.F=Ad(this,this.F);this.b-=5},function(){this.F=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Md,function(){this.M=G(this)&65535;this.b-=10},function(){Gd(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Gd(this,a,Bd(this,E(this,a)));this.b-=10},function(){var a=D(this);Gd(this,a,Ad(this,E(this,a)));this.b-=10},function(){Gd(this,D(this),F(this));this.b-=10},function(){this.I|=256;this.b-=
4},Md,function(){var a;qd(this,a=D(this)+this.M);sd(this,a>>8&256);this.b-=10},function(){this.g=E(this,G(this));this.b-=13},function(){this.M=this.M-1&65535;this.b-=5},function(){this.g=Bd(this,this.g);this.b-=5},function(){this.g=Ad(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){sd(this,rd(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.w=this.A;this.b-=5},function(){this.w=this.B;this.b-=5},function(){this.w=this.C;this.b-=5},function(){this.w=this.D;this.b-=
5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B=
this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){Fd(this,D(this),this.w);this.b-=7},function(){Fd(this,D(this),this.A);this.b-=7},function(){Fd(this,D(this),this.B);this.b-=7},function(){Fd(this,D(this),this.C);this.b-=7},function(){Fd(this,D(this),this.D);this.b-=7},function(){Fd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Oc(this);this.K&&Da(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.da())},function(){Fd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=wd(this,this.w);this.b-=4},function(){this.g=wd(this,this.A);this.b-=4},function(){this.g=wd(this,this.B);this.b-=4},function(){this.g=wd(this,
this.C);this.b-=4},function(){this.g=wd(this,this.D);this.b-=4},function(){this.g=wd(this,this.F);this.b-=4},function(){this.g=wd(this,E(this,D(this)));this.b-=7},function(){this.g=wd(this,this.g);this.b-=4},function(){this.g=xd(this,this.w);this.b-=4},function(){this.g=xd(this,this.A);this.b-=4},function(){this.g=xd(this,this.B);this.b-=4},function(){this.g=xd(this,this.C);this.b-=4},function(){this.g=xd(this,this.D);this.b-=4},function(){this.g=xd(this,this.F);this.b-=4},function(){this.g=xd(this,
E(this,D(this)));this.b-=7},function(){this.g=xd(this,this.g);this.b-=4},function(){this.g=Cd(this,this.w);this.b-=4},function(){this.g=Cd(this,this.A);this.b-=4},function(){this.g=Cd(this,this.B);this.b-=4},function(){this.g=Cd(this,this.C);this.b-=4},function(){this.g=Cd(this,this.D);this.b-=4},function(){this.g=Cd(this,this.F);this.b-=4},function(){this.g=Cd(this,E(this,D(this)));this.b-=7},function(){this.g=Cd(this,this.g);this.b-=4},function(){this.g=Dd(this,this.w);this.b-=4},function(){this.g=
Dd(this,this.A);this.b-=4},function(){this.g=Dd(this,this.B);this.b-=4},function(){this.g=Dd(this,this.C);this.b-=4},function(){this.g=Dd(this,this.D);this.b-=4},function(){this.g=Dd(this,this.F);this.b-=4},function(){this.g=Dd(this,E(this,D(this)));this.b-=7},function(){this.g=Dd(this,this.g);this.b-=4},function(){this.g=yd(this,this.w);this.b-=4},function(){this.g=yd(this,this.A);this.b-=4},function(){this.g=yd(this,this.B);this.b-=4},function(){this.g=yd(this,this.C);this.b-=4},function(){this.g=
yd(this,this.D);this.b-=4},function(){this.g=yd(this,this.F);this.b-=4},function(){this.g=yd(this,E(this,D(this)));this.b-=7},function(){this.g=yd(this,this.g);this.b-=4},function(){this.g=Ed(this,this.w);this.b-=4},function(){this.g=Ed(this,this.A);this.b-=4},function(){this.g=Ed(this,this.B);this.b-=4},function(){this.g=Ed(this,this.C);this.b-=4},function(){this.g=Ed(this,this.D);this.b-=4},function(){this.g=Ed(this,this.F);this.b-=4},function(){this.g=Ed(this,E(this,D(this)));this.b-=7},function(){this.g=
Ed(this,this.g);this.b-=4},function(){this.g=Bd(this,this.w);this.b-=4},function(){this.g=Bd(this,this.A);this.b-=4},function(){this.g=Bd(this,this.B);this.b-=4},function(){this.g=Bd(this,this.C);this.b-=4},function(){this.g=Bd(this,this.D);this.b-=4},function(){this.g=Bd(this,this.F);this.b-=4},function(){this.g=Bd(this,E(this,D(this)));this.b-=7},function(){this.g=Bd(this,this.g);this.b-=4},function(){Cd(this,this.w);this.b-=4},function(){Cd(this,this.A);this.b-=4},function(){Cd(this,this.B);this.b-=
4},function(){Cd(this,this.C);this.b-=4},function(){Cd(this,this.D);this.b-=4},function(){Cd(this,this.F);this.b-=4},function(){Cd(this,E(this,D(this)));this.b-=7},function(){Cd(this,this.g);this.b-=4},function(){ud(this)||(A(this,Gd(this)),this.b-=6);this.b-=5},function(){md(this,Gd(this));this.b-=10},function(){var a=G(this);ud(this)||A(this,a);this.b-=10},Md,function(){var a=G(this);ud(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,ld(this));this.b-=11},function(){this.g=
wd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,0);this.b-=11},function(){ud(this)&&(A(this,Gd(this)),this.b-=6);this.b-=5},Nd,function(){var a=G(this);ud(this)&&A(this,a);this.b-=10},Md,function(){var a=G(this);ud(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){this.g=xd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,8);this.b-=11},function(){qd(this)||(A(this,Gd(this)),this.b-=6);this.b-=5},function(){od(this,Gd(this));this.b-=10},function(){var a=G(this);
qd(this)||A(this,a);this.b-=10},function(){var a=F(this);Xb(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);qd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,nd(this));this.b-=11},function(){this.g=Cd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,16);this.b-=11},function(){qd(this)&&(A(this,Gd(this)),this.b-=6);this.b-=5},Nd,function(){var a=G(this);qd(this)&&A(this,a);this.b-=10},function(){var a=F(this);this.g=Tb(this.H,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);qd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){this.g=Dd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,24);this.b-=11},function(){sd(this)||(A(this,Gd(this)),this.b-=6);this.b-=5},function(){pd(this,Gd(this));this.b-=10},function(){var a=G(this);sd(this)||A(this,a);this.b-=10},function(){var a=Gd(this);H(this,D(this));pd(this,a);this.b-=18},function(){var a=G(this);sd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=yd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){sd(this)&&(A(this,Gd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);sd(this)&&A(this,a);this.b-=10},function(){var a=D(this);pd(this,nd(this));od(this,a);this.b-=5},function(){var a=G(this);sd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){this.g=Ed(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){vd(this)||(A(this,Gd(this)),this.b-=6);this.b-=5},function(){var a=Gd(this);Wc(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);vd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);vd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,jd(this)&255|this.g<<8);this.b-=11},function(){this.g=Bd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){vd(this)&&
(A(this,Gd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);vd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Hd(this)},function(){var a=G(this);vd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Od,function(){Cd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Pd(a){n.call(this,"ChipSet",a,32768);var b=a.model;b&&!Qd[b]&&ha("Unrecognized ChipSet model: "+b);this.g=Qd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);ya(this)}aa(Pd,n);k=Pd.prototype;k.ca=function(){return!1};
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=Ab(a,"Keyboard");this.C=Ab(a,"SerialPort");this.video=Ab(a,"Video");Sb(b,this,this.g.Bb);Wb(b,this,this.g.Cb);if(d){var e=this;Rd(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=x(e.j[b]);e.K.i(a)})}};k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
k.save=function(){var a=new kd(this);switch(this.g.pa){case Sd.pa:a.set(0,[this.ea,this.A,this.ga,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case Sd.pa:return this.ea=b[0],this.A=b[1],this.ga=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Jd=function(a,b){var c=this.ea;r(this,a,null,b,"STATUS0",c,!0);return c};
k.Kd=function(a,b){var c=this.A;r(this,a,null,b,"STATUS1",c,!0);return c};k.Ld=function(a,b){var c=this.ga;r(this,a,null,b,"STATUS2",c,!0);return c};k.Id=function(a,b){var c=this.N>>8-this.T&255;r(this,a,null,b,"SHIFT.RESULT",c,!0);return c};k.Wd=function(a,b,c){r(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};k.Yd=function(a,b,c){r(this,a,b,c,"SOUND1",null,!0);this.Y=b};k.Xd=function(a,b,c){r(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
k.Zd=function(a,b,c){r(this,a,b,c,"SOUND2",null,!0);this.Z=b};k.$d=function(a,b,c){r(this,a,b,c,"WATCHDOG",null,!0)};function Td(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
k.Md=function(a,b){var c=this.D,c=c&~J.xa.jc;if((Hc(this.u)&64)<<1&&(c|=J.xa.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ja.nd:break;case J.Aa.Ja.Lc:this.M=this.M<<1|d;break;case J.Aa.Ja.Rc:d=Td(this);this.j[d]=J.Aa.vb;Ea(this,"doNVRCommand(): erase data at addr "+x(d));break;case J.Aa.Ja.Mc:this.b=this.b<<1|d;break;case J.Aa.Ja.rd:d=Td(this);e=this.b&J.Aa.vb;this.j[d]=e;Ea(this,"doNVRCommand(): write data "+x(e)+" to addr "+x(d));break;case J.Aa.Ja.ld:d=Td(this);e=this.j[d];
null==e&&(e=J.Aa.vb);this.b=e;Ea(this,"doNVRCommand(): read data "+x(e)+" from addr "+x(d));break;case J.Aa.Ja.md:this.b<<=1;this.S=this.b&J.Aa.vb+1;break;default:Ea(this,"doNVRCommand(): unrecognized command "+Ia(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Hc(d.u)>=d.F+e.Fa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&Ud&&(c|=J.xa.sc);this.D=c;r(this,a,null,b,"FLAGS",c);return c};
k.ae=function(a,b,c){r(this,a,b,c,"BRIGHTNESS");this.W=b};k.de=function(a,b,c){r(this,a,b,c,"NVR.LATCH");this.L=b};k.ce=function(a,b,c){r(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Ea(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?Rc(b,!0):b.ya=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
k.be=function(a,b,c){r(this,a,b,c,"DC011");b&J.Ka.kd?(b&=J.Ka.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ka.oc?50:60,Ea(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ka.Wb?132:80,b=this.video,Ea(b,"updateDimensions("+a+","+(80<a&&this.D&J.xa.ic?14:24)+")"),b.O=a,b.fa=b.Ha,80<a&&b.fa--,Vd(b)&&Wd(b))))};
var Sd={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ka:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{rf:{qa:98},Ja:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},Qd={SI1978:Sd,VT100:J};Sd.INIT=[[Sd.pd.bb,Sd.Oa.bb,Sd.qd.bb,0,0,0,0]];
this.b-=5},function(){Gd(this,D(this),this.w);this.b-=7},function(){Gd(this,D(this),this.A);this.b-=7},function(){Gd(this,D(this),this.B);this.b-=7},function(){Gd(this,D(this),this.C);this.b-=7},function(){Gd(this,D(this),this.D);this.b-=7},function(){Gd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Pc(this);this.K&&Ea(this,-2147483648)?(A(this,a),this.K.da()):this.N&512||(this.K&&A(this,a),
this.da())},function(){Gd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=xd(this,this.w);this.b-=4},function(){this.g=xd(this,this.A);this.b-=4},function(){this.g=xd(this,this.B);this.b-=4},function(){this.g=xd(this,
this.C);this.b-=4},function(){this.g=xd(this,this.D);this.b-=4},function(){this.g=xd(this,this.F);this.b-=4},function(){this.g=xd(this,E(this,D(this)));this.b-=7},function(){this.g=xd(this,this.g);this.b-=4},function(){this.g=yd(this,this.w);this.b-=4},function(){this.g=yd(this,this.A);this.b-=4},function(){this.g=yd(this,this.B);this.b-=4},function(){this.g=yd(this,this.C);this.b-=4},function(){this.g=yd(this,this.D);this.b-=4},function(){this.g=yd(this,this.F);this.b-=4},function(){this.g=yd(this,
E(this,D(this)));this.b-=7},function(){this.g=yd(this,this.g);this.b-=4},function(){this.g=Dd(this,this.w);this.b-=4},function(){this.g=Dd(this,this.A);this.b-=4},function(){this.g=Dd(this,this.B);this.b-=4},function(){this.g=Dd(this,this.C);this.b-=4},function(){this.g=Dd(this,this.D);this.b-=4},function(){this.g=Dd(this,this.F);this.b-=4},function(){this.g=Dd(this,E(this,D(this)));this.b-=7},function(){this.g=Dd(this,this.g);this.b-=4},function(){this.g=Ed(this,this.w);this.b-=4},function(){this.g=
Ed(this,this.A);this.b-=4},function(){this.g=Ed(this,this.B);this.b-=4},function(){this.g=Ed(this,this.C);this.b-=4},function(){this.g=Ed(this,this.D);this.b-=4},function(){this.g=Ed(this,this.F);this.b-=4},function(){this.g=Ed(this,E(this,D(this)));this.b-=7},function(){this.g=Ed(this,this.g);this.b-=4},function(){this.g=zd(this,this.w);this.b-=4},function(){this.g=zd(this,this.A);this.b-=4},function(){this.g=zd(this,this.B);this.b-=4},function(){this.g=zd(this,this.C);this.b-=4},function(){this.g=
zd(this,this.D);this.b-=4},function(){this.g=zd(this,this.F);this.b-=4},function(){this.g=zd(this,E(this,D(this)));this.b-=7},function(){this.g=zd(this,this.g);this.b-=4},function(){this.g=Fd(this,this.w);this.b-=4},function(){this.g=Fd(this,this.A);this.b-=4},function(){this.g=Fd(this,this.B);this.b-=4},function(){this.g=Fd(this,this.C);this.b-=4},function(){this.g=Fd(this,this.D);this.b-=4},function(){this.g=Fd(this,this.F);this.b-=4},function(){this.g=Fd(this,E(this,D(this)));this.b-=7},function(){this.g=
Fd(this,this.g);this.b-=4},function(){this.g=Cd(this,this.w);this.b-=4},function(){this.g=Cd(this,this.A);this.b-=4},function(){this.g=Cd(this,this.B);this.b-=4},function(){this.g=Cd(this,this.C);this.b-=4},function(){this.g=Cd(this,this.D);this.b-=4},function(){this.g=Cd(this,this.F);this.b-=4},function(){this.g=Cd(this,E(this,D(this)));this.b-=7},function(){this.g=Cd(this,this.g);this.b-=4},function(){Dd(this,this.w);this.b-=4},function(){Dd(this,this.A);this.b-=4},function(){Dd(this,this.B);this.b-=
4},function(){Dd(this,this.C);this.b-=4},function(){Dd(this,this.D);this.b-=4},function(){Dd(this,this.F);this.b-=4},function(){Dd(this,E(this,D(this)));this.b-=7},function(){Dd(this,this.g);this.b-=4},function(){vd(this)||(A(this,Hd(this)),this.b-=6);this.b-=5},function(){nd(this,Hd(this));this.b-=10},function(){var a=G(this);vd(this)||A(this,a);this.b-=10},Nd,function(){var a=G(this);vd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,md(this));this.b-=11},function(){this.g=
xd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,0);this.b-=11},function(){vd(this)&&(A(this,Hd(this)),this.b-=6);this.b-=5},Od,function(){var a=G(this);vd(this)&&A(this,a);this.b-=10},Nd,function(){var a=G(this);vd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Pd,function(){this.g=yd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,8);this.b-=11},function(){rd(this)||(A(this,Hd(this)),this.b-=6);this.b-=5},function(){pd(this,Hd(this));this.b-=10},function(){var a=G(this);
rd(this)||A(this,a);this.b-=10},function(){var a=F(this);Yb(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);rd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,od(this));this.b-=11},function(){this.g=Dd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,16);this.b-=11},function(){rd(this)&&(A(this,Hd(this)),this.b-=6);this.b-=5},Od,function(){var a=G(this);rd(this)&&A(this,a);this.b-=10},function(){var a=F(this);this.g=Ub(this.H,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);rd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Pd,function(){this.g=Ed(this,F(this));this.b-=7},function(){H(this,this.j);A(this,24);this.b-=11},function(){td(this)||(A(this,Hd(this)),this.b-=6);this.b-=5},function(){qd(this,Hd(this));this.b-=10},function(){var a=G(this);td(this)||A(this,a);this.b-=10},function(){var a=Hd(this);H(this,D(this));qd(this,a);this.b-=18},function(){var a=G(this);td(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=zd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){td(this)&&(A(this,Hd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);td(this)&&A(this,a);this.b-=10},function(){var a=D(this);qd(this,od(this));pd(this,a);this.b-=5},function(){var a=G(this);td(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Pd,function(){this.g=Fd(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){wd(this)||(A(this,Hd(this)),this.b-=6);this.b-=5},function(){var a=Hd(this);Xc(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);wd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);wd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,kd(this)&255|this.g<<8);this.b-=11},function(){this.g=Cd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){wd(this)&&
(A(this,Hd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);wd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Id(this)},function(){var a=G(this);wd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Pd,function(){Dd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Qd(a){n.call(this,"ChipSet",a,32768);var b=a.model;b&&!Rd[b]&&ha("Unrecognized ChipSet model: "+b);this.g=Rd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Aa(this)}aa(Qd,n);l=Qd.prototype;l.ca=function(){return!1};
l.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=Bb(a,"Keyboard");this.C=Bb(a,"SerialPort");this.video=Bb(a,"Video");Tb(b,this,this.g.Bb);Xb(b,this,this.g.Cb);if(d){var e=this;Sd(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=x(e.j[b]);e.K.i(a)})}};l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.save=function(){var a=new ld(this);switch(this.g.pa){case Td.pa:a.set(0,[this.ea,this.A,this.ga,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case Td.pa:return this.ea=b[0],this.A=b[1],this.ga=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ea;r(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;r(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.ga;r(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;r(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){r(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){r(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){r(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){r(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){r(this,a,b,c,"WATCHDOG",null,!0)};function Ud(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Md=function(a,b){var c=this.D,c=c&~J.xa.jc;if((Ic(this.u)&64)<<1&&(c|=J.xa.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ja.nd:break;case J.Aa.Ja.Lc:this.M=this.M<<1|d;break;case J.Aa.Ja.Rc:d=Ud(this);this.j[d]=J.Aa.vb;Fa(this,"doNVRCommand(): erase data at addr "+x(d));break;case J.Aa.Ja.Mc:this.b=this.b<<1|d;break;case J.Aa.Ja.rd:d=Ud(this);e=this.b&J.Aa.vb;this.j[d]=e;Fa(this,"doNVRCommand(): write data "+x(e)+" to addr "+x(d));break;case J.Aa.Ja.ld:d=Ud(this);e=this.j[d];
null==e&&(e=J.Aa.vb);this.b=e;Fa(this,"doNVRCommand(): read data "+x(e)+" from addr "+x(d));break;case J.Aa.Ja.md:this.b<<=1;this.S=this.b&J.Aa.vb+1;break;default:Fa(this,"doNVRCommand(): unrecognized command "+Ja(e))}}c&=~J.xa.kc;this.S&&(c|=J.xa.kc);c&=~J.xa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Ic(d.u)>=d.F+e.Fa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&Vd&&(c|=J.xa.sc);this.D=c;r(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){r(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){r(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){r(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Fa(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?Sc(b,!0):b.ya=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.be=function(a,b,c){r(this,a,b,c,"DC011");b&J.Ka.kd?(b&=J.Ka.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ka.oc?50:60,Fa(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ka.Wb?132:80,b=this.video,Fa(b,"updateDimensions("+a+","+(80<a&&this.D&J.xa.ic?14:24)+")"),b.O=a,b.fa=b.Ha,80<a&&b.fa--,Wd(b)&&Xd(b))))};
var Td={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ka:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{rf:{qa:98},Ja:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},Rd={SI1978:Td,VT100:J};Td.INIT=[[Td.pd.bb,Td.Oa.bb,Td.qd.bb,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.xa.ic|J.xa.dd],[J.Ka.Uc,J.Ka.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];Sd.Bb={0:Pd.prototype.Jd,1:Pd.prototype.Kd,2:Pd.prototype.Ld,3:Pd.prototype.Id};
Sd.Cb={2:Pd.prototype.Wd,3:Pd.prototype.Yd,4:Pd.prototype.Xd,5:Pd.prototype.Zd,6:Pd.prototype.$d};J.Bb={66:Pd.prototype.Md};J.Cb={66:Pd.prototype.ae,98:Pd.prototype.de,162:Pd.prototype.ce,194:Pd.prototype.be};mb(function(){for(var a=qa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Pd(d);pa(d,c)}});
function Xd(a){n.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=Ja(this.j);if(this.j){a=this.j;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){Yd(c,a,b,f)})}}aa(Xd,n);Xd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;Zd(this)};
Xd.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,p=h.a;if(void 0!==l){var u=f,l=[l>>>0,g],v=Ua(u,l,a.Ac);0>v&&u.splice(-(v+1),0,l)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Mf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};Xd.prototype.ua=function(){return!0};
function Yd(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ga(b[e],16);Zd(a)}}
function Zd(a){if(!xa(a))if(!a.j)ya(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)wa(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")");else{var b;b=a.A;if(Eb(a.H,b,a.g,dc)){var c;for(c=0;c<a.b.length;c++)Ob(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],l=d.A>>>f.g;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.w}}delete a.b}}ya(a)}}mb(function(){for(var a=qa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Xd(d);pa(d,c)}});
function $d(a){n.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=Ja(this.b);if(this.b){a=this.b;var b=Ka(this.B);"json"!=b&&"hex"!=b&&(a=Oa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Xa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ea(c.eb,a,b),(a=Ya(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ae(c))})}}aa($d,n);
$d.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ae(this)};$d.prototype.va=function(){return!0};$d.prototype.ua=function(){return!0};
function ae(a){!a.j&&a.A&&Eb(a.H,a.w,a.A,1)&&(a.j=!0);if(!xa(a)){if(!a.j)q("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Ob(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==be){for(c=0;c<ce.length;c++)Ob(a.H,ce[c],118);Vc(a.u,function(a){return function(b){if(0<=ce.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==de)switch(c=!0,d.A){case ee:fe(a,String.fromCharCode(d.C));break;case ge:for(var l=nd(d),p="",u=255;u--;){var v=E(a.u,l++);if(36==v)break;
p+=String.fromCharCode(v)}fe(a,p);break;default:c=!1}c?Nd.call(d):e&&(a.i("\nCP/M vector "+x(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}id(a.u,a.Ia)}delete a.g}ya(a)}}$d.prototype.reset=function(){};function fe(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var de=5,ee=2,ge=9,be=256,ce=[0,de];mb(function(){for(var a=qa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new $d(d);pa(d,c)}});
function he(a){n.call(this,"Keyboard",a,65536);(a=a.model)&&!De[a]&&ha("Unrecognized Keyboard8080 model: "+a);this.b=De[a]||{};this.reset();ya(this)}aa(he,n);k=he.prototype;
k.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return gb("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Ee(d,16,!0,!0):Ee(d,16,!1),Ee(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Fe(d,a,!0)},c.onkeyup=function(a){return Fe(d,a,!1)}):(c.onkeydown=function(a){return Ge(d,a,!0)},
c.onkeyup=function(a){return Ge(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(He|Ie)||(d.g|=Ie,Ee(d,20,!0),Je(d)):a>=m.yc&&a<=m.z&&d.g&Ie&&(d.g&=~Ie,Ee(d,20,!1),Je(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ke(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Le:20==b&&(e=Ie);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Me(a,b,d)}Ee(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};k.Ea=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Mc(this.u,function(){Ne(e)});this.W=Ab(a,"ChipSet");this.C=Ab(a,"SerialPort");Sb(b,this,this.b.Bb);Wb(b,this,this.b.Cb)};
k.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};k.save=function(){var a=new kd(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Oe.pa:return!0;case K.pa:return this.D=b[0],Je(this,this.D&K.Ba.ec),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Je(a,b){var c;null!=b?a.I=b:b=a.I;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+t(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Ie?"#"+t(65280,6):"#000000"}
function Me(a,b,c,d){var e=0;switch(b){case 16:e=d?Pe:Qe;break;case 17:e=d?Re:Le;break;case 18:e=d?Se:Te;break;case 91:e=d?Ue:Ve;break;case 20:e=Ie,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Ge(a,b,c){var d=!0,e=b.keyCode,e=ca[e]||e;c=Me(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(We|Xe)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|Xe:a.g&~Xe)),d=Ee(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|Ye)&&b.preventDefault&&b.preventDefault());return d}
function Fe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Ee(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Ee(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&Ne(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<Ze)return a.j[e].yb=!0,Ne(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=Sd.Oa.ed;break;case "2p":d=Sd.Oa.jd;break;case "coin":d=Sd.Oa.Pc;break;case "left":d=Sd.Oa.gd;break;case "right":d=Sd.Oa.hd;break;case "fire":d=Sd.Oa.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function Ne(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=Ze-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Ee(a,d,!1);b=0;continue}}b++}0<=c&&Nc(a.u,a.L,c)}k.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Id(this.u,1));r(this,a,null,b,"KBDUART.ADDRESS",c);return c};
k.ee=function(a,b,c){r(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Hc(this.u);Je(this,b&K.Ba.ec);b&K.Ba.od&&(this.w=0,Id(this.u,1))};var Pe=1,Qe=2,He=3,Re=4,Le=8,Ye=12,Se=16,Te=32,We=48,Ue=64,Ve=128,Ie=512,Xe=4096,Ze=50,$e={};$e[m.ab]=37;$e[m.Fb]=39;$e[m.Hb]=32;
var Oe={pa:1978.1,Sa:{},sb:{},Tb:$e,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
[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]]];Td.Bb={0:Qd.prototype.Jd,1:Qd.prototype.Kd,2:Qd.prototype.Ld,3:Qd.prototype.Id};
Td.Cb={2:Qd.prototype.Wd,3:Qd.prototype.Yd,4:Qd.prototype.Xd,5:Qd.prototype.Zd,6:Qd.prototype.$d};J.Bb={66:Qd.prototype.Md};J.Cb={66:Qd.prototype.ae,98:Qd.prototype.de,162:Qd.prototype.ce,194:Qd.prototype.be};ob(function(){for(var a=qa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Qd(d);pa(d,c)}});
function Yd(a){n.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=Ka(this.j);if(this.j){a=this.j;var b=La(this.B);"json"!=b&&"hex"!=b&&(a=Pa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ya(a,null,!0,function(a,b,f){Zd(c,a,b,f)})}}aa(Yd,n);Yd.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;$d(this)};
Yd.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var u=f,k=[k>>>0,g],v=Va(u,k,a.Ac);0>v&&u.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Mf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};Yd.prototype.ua=function(){return!0};
function Zd(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ha(b[e],16);$d(a)}}
function $d(a){if(!ya(a))if(!a.j)Aa(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)xa(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")");else{var b;b=a.A;if(Fb(a.H,b,a.g,fc)){var c;for(c=0;c<a.b.length;c++)Pb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Aa(a)}}ob(function(){for(var a=qa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new Yd(d);pa(d,c)}});
function ae(a){n.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=Ka(this.b);if(this.b){a=this.b;var b=La(this.B);"json"!=b&&"hex"!=b&&(a=Pa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ya(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(ea(c.eb,a,b),(a=bb(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,be(c))})}}aa(ae,n);
ae.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;be(this)};ae.prototype.va=function(){return!0};ae.prototype.ua=function(){return!0};
function be(a){!a.j&&a.A&&Fb(a.H,a.w,a.A,1)&&(a.j=!0);if(!ya(a)){if(!a.j)q("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Pb(a.H,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==ce){for(c=0;c<de.length;c++)Pb(a.H,de[c],118);Wc(a.u,function(a){return function(b){if(0<=de.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ee)switch(c=!0,d.A){case fe:ge(a,String.fromCharCode(d.C));break;case he:for(var k=od(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}ge(a,p);break;default:c=!1}c?Od.call(d):e&&(a.i("\nCP/M vector "+x(b)),A(d,b),e.da());b=!0}else b=!1;return b}}(a))}jd(a.u,a.Ia)}delete a.g}Aa(a)}}ae.prototype.reset=function(){};function ge(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}var ee=5,fe=2,he=9,ce=256,de=[0,ee];ob(function(){for(var a=qa(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new ae(d);pa(d,c)}});
function ie(a){n.call(this,"Keyboard",a,65536);(a=a.model)&&!Ee[a]&&ha("Unrecognized Keyboard8080 model: "+a);this.b=Ee[a]||{};this.reset();Aa(this)}aa(ie,n);l=ie.prototype;
l.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return hb("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Fe(d,16,!0,!0):Fe(d,16,!1),Fe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Ge(d,a,!0)},c.onkeyup=function(a){return Ge(d,a,!1)}):(c.onkeydown=function(a){return He(d,a,!0)},
c.onkeyup=function(a){return He(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Ie|Je)||(d.g|=Je,Fe(d,20,!0),Ke(d)):a>=m.yc&&a<=m.z&&d.g&Je&&(d.g&=~Je,Fe(d,20,!1),Ke(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Le(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Me:20==b&&(e=Je);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ne(a,b,d)}Fe(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ea=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Nc(this.u,function(){Oe(e)});this.W=Bb(a,"ChipSet");this.C=Bb(a,"SerialPort");Tb(b,this,this.b.Bb);Xb(b,this,this.b.Cb)};
l.va=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new ld(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Pe.pa:return!0;case K.pa:return this.D=b[0],Ke(this,this.D&K.Ba.ec),this.B=b[1],this.A=b[2],this.F=b[3],this.w=b[4],!0}return!1};function Ke(a,b){var c;null!=b?a.I=b:b=a.I;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+t(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Je?"#"+t(65280,6):"#000000"}
function Ne(a,b,c,d){var e=0;switch(b){case 16:e=d?Qe:Re;break;case 17:e=d?Se:Me;break;case 18:e=d?Te:Ue;break;case 91:e=d?Ve:We;break;case 20:e=Je,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function He(a,b,c){var d=!0,e=b.keyCode,e=ca[e]||e;c=Ne(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(Xe|Ye)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|Ye:a.g&~Ye)),d=Fe(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|Ze)&&b.preventDefault&&b.preventDefault());return d}
function Ge(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Fe(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Fe(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&Oe(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<$e)return a.j[e].yb=!0,Oe(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=Td.Oa.ed;break;case "2p":d=Td.Oa.jd;break;case "coin":d=Td.Oa.Pc;break;case "left":d=Td.Oa.gd;break;case "right":d=Td.Oa.hd;break;case "fire":d=Td.Oa.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function Oe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=$e-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Fe(a,d,!1);b=0;continue}}b++}0<=c&&Oc(a.u,a.L,c)}l.Nd=function(a,b){var c=this.B;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=K.Sa[c.Pb],c&128&&(c&=127)):(this.w=-1,c=K.Yc),this.B=c,Jd(this.u,1));r(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ee=function(a,b,c){r(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.F=Ic(this.u);Ke(this,b&K.Ba.ec);b&K.Ba.od&&(this.w=0,Jd(this.u,1))};var Qe=1,Re=2,Ie=3,Se=4,Me=8,Ze=12,Te=16,Ue=32,Xe=48,Ve=64,We=128,Je=512,Ye=4096,$e=50,af={};af[m.ab]=37;af[m.Fb]=39;af[m.Hb]=32;
var Pe={pa:1978.1,Sa:{},sb:{},Tb:af,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.mc]=5,M[m.lc]=6,M[m.xc]=7,M[m.qc]=8,M[m.uc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.ac]=22,M[m.rc]=23,M[m.nc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.bc]=87,M[m.$b]=88,M[m.Fb]=89,M[m.pc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.hc]=103,M[m.Ub]=104,M[m.wc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.gc]=118,M[m[" "]]=119,M[m.tc]=120,M[m.Vb]=121,M[m.wb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),sb:(N[m.p]=5,N[m.Sd]=6,N[m.y]=7,N[m.t]=
8,N[m.re]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Fd]=22,N[m.pe]=23,N[m.r]=24,N[m.e]=25,N[m["1"]]=26,N[m["`"]]=36,N[m["-"]]=37,N[m["9"]]=38,N[m["7"]]=39,N[m["4"]]=40,N[m["3"]]=41,N[m["="]]=52,N[m["0"]]=53,N[m["8"]]=54,N[m["6"]]=55,N[m["5"]]=56,N[m["2"]]=57,N[m["\\"]]=69,N[m.Pd]=70,N[m.k]=71,N[m.Dd]=72,N[m.Bd]=73,N[m.yc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Od]=87,N[m.Ed]=88,N[m.d]=89,N[m.oe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.ud]=104,N[m.x]=105,N[m["/"]]=117,N[m.Rd]=118,N[m.qe]=
120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ba:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ba.bd,l3:K.Ba.ad,l2:K.Ba.$c,l1:K.Ba.Zc,locked:K.Ba.cd,local:K.Ba.fc,online:~K.Ba.fc,"caps-lock":Ie};var De={SI1978:Oe,VT100:K};
K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:he.prototype.Nd};K.Cb={130:he.prototype.ee};mb(function(){for(var a=qa(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new he(d);pa(d,c)}});
function af(a,b,c,d,e){n.call(this,"Video",a,262144);var f=this;this.Ta=gb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&bf[h.toUpperCase()]||cf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.ya=!1);b=a.smoothing;(c=hb("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){df(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){df(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=Ka(this.S)&&(this.S=Oa()+"/api/v1/dump?file="+this.S+"&format=bytes"),Xa(this.S,null,!0,function(a,b,c){ef(f,a,b,c)});this.Fa={}}aa(af,n);
function Vd(a){a.C=a.O*a.fa;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Eb(a.H,a.la,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,ff(a,a.L>>1)):ff(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.wa=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+gf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==hf&&(a.U[a.X+jf]=[255,255,0,255],a.U[a.X+kf]=[0,255,0,255]);a.Y==lf&&(a.jb=60,a.za=!1,a.ga=Array(a.O));
return!0}k=af.prototype;k.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Fa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;Vd(this);if(this.B=Ab(a,"Keyboard")){for(var e in this.Fa)this.B.ca("led",e,this.Fa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Mc(this.u,function(){Rc(f)});Nc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||ya(this)};
function ef(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.ea=f,Wd(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&ya(a)}}
function Wd(a){a.ea&&(a.Na=a.Y==lf,a.T[mf]=[nf(a,a.fa,a.ba),nf(a,a.fa,a.ba,a.za)],a.T[of]=[nf(a,2*a.fa,a.ba),nf(a,2*a.fa,a.ba,a.za)],a.T[pf]=a.T[qf]=[nf(a,2*a.fa,2*a.ba),nf(a,2*a.fa,2*a.ba,a.za)])}
function nf(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,l={fa:b,ba:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var p=l.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ba;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ea[y],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.fa;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.fa;ja++)h&&(C=!C),rf(a,p,za,B,C?1:0),za++;C=L}B++}l.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return l}k.va=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ua=function(a){return!a||this.save()};k.save=function(){var a=new kd(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
k.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function df(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Ea(a,"notifyFullScreen("+b+")")}function ff(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function rf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==hf&&(208<=c&&236>c?e=a.X+jf:28<=c&&72>c&&(e=a.X+kf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Rc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Id(a.u,2),c=!1):Id(a.u,1):Id(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Nc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.fa)switch(a.Y){case lf:for(var c=a.la,d=-1,e=0,f=60==a.jb?2:5,h=g=0,l=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=mf&&(B>>=1);;){var y=Jb(a.H,u++);if((y&sf)==sf){var w=Jb(a.H,u++),d=w&tf,c=(w&uf)<<8|Jb(a.H,u),c=c+(w&vf?
wf:xf);break}if(p<B)a.ga[p++]=y;else break}if(f)f--;else{for(;p<a.ga.length;)a.ga[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.ga[B];if(!u||y!==a.A[g]){a.A[l=g]=y;var w=a,C=a.wa,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.fa,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.fa,ec=y.ba;C?(L=B*w.fa,ja=e*w.ba,ua=w.fa,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.fa>w.fa&&(L*=2,ua*=2);y.ba>w.ba&&(v==qf&&(T+=w.ba),ec=w.ba);C?C.drawImage(y.canvas,za,T,Ma,ec,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,ec,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[l]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.la;f=e+a.L;l=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Lb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,rf(a,a.Va,h++,l,za),C+=u;h>p&&(p=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=2;g++;if(h>=a.C&&(h=0,l++,l>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.wa.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var jf=0,kf=1,gf=2,cf=0,hf=1,lf=2,bf={SI1978:hf,VT100:lf},mf=96,of=64,pf=32,qf=0,sf=127,uf=15,vf=16,tf=96,wf=8192,xf=16384;
mb(function(){for(var a=qa(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=oa(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=bb().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||hb("aspect"));f&&.3<=f&&3.33>=f&&(lb("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");gb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new af(d,e,g,f,c);pa(d,c)}});
function yf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=zf;b&&(void 0===c&&(c="Panel"),(c=ma(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(yf,n);k=yf.prototype;k.ca=function(a,b,c,d){var e=this;switch(b){case zf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Af(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Af(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
k.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Mc(this.u,function(){e.Ob()});this.Z=Mc(this.u,function(){Ke(e)});this.W=Ab(a,"ChipSet");Sb(b,this,Bf,this.U);Wb(b,this,Cf,this.U);ya(this)};
k.Fc=function(a){if(!this.b){var b=Ac(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Sa(c[0]);if(d!=this.cb)return;c=Sa(c[1]);if(this.b=la(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.va=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ua=function(a){return a?this.save():!0};k.reset=function(){Df(this)};k.save=function(){var a=new kd(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};k.restore=function(a){return Df(this,a[0])};
function Df(a,b){var c=0;b||(b=Ef);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Ff(a,b){var c=a.L&b;b&15||(c>>=4);b=Gf[c];c=((a.B&Hf)>>2)+6;a.B&If&&c++;c+=((a.B&Jf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Af(a,b){Ea(a,"receiveByte("+Ia(b)+"), status="+Ia(a.ia));return a.N||a.ia&Kf?!1:(a.M=b,a.ia|=Kf,Id(a.u,a.X),!0)}
k.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Af(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Nc(this.u,this.Y,Ff(this,Lf)));return!0};k.ne=function(a){this.ia&=~Mf;a&64&&(this.ia|=Mf)};function Ke(a,b){a.ia=a.ia|Ud|Nf;b&&a.Ra&&a.Ra.call(a.b,b)}k.Hd=function(a,b){var c=this.M;r(this,a,null,b,"DATA",c);this.ia&=~Kf;return c};k.Gd=function(a,b){var c=this.ia;r(this,a,null,b,"STATUS",c);return c};
k.Vd=function(a,b,c){r(this,a,b,c,"DATA");this.O=b;this.ia&=~(Ud|Nf);Ea(this,"transmitByte("+Ia(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ta[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=Ra("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Nc(this.u,this.Z,Ff(this,Of))};k.Ud=function(a,b,c){r(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Pf|Qf)&&(a=0,this.D?(a|=b&Pf?32:0,a|=b&Qf?320:0):(a|=b&Pf?16:0,a|=b&Qf?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&Rf&&(this.F=!1)):(this.B=b,this.F=!0)};k.Td=function(a,b,c){r(this,a,b,c,"BAUDRATES");this.L=b};
var Hf=12,If=16,Jf=192,Qf=2,Pf=32,Rf=64,Ud=1,Kf=2,Nf=4,Mf=128,Lf=15,Of=240,Gf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Ef=[!1,0,0,133,142,39,238],zf="buffer",Bf={0:yf.prototype.Hd,1:yf.prototype.Gd},Cf={0:yf.prototype.Vd,1:yf.prototype.Ud,2:yf.prototype.Td};mb(function(){for(var a=qa(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new yf(d);pa(d,c)}});
function Sf(a){n.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(Sf,n);Sf.prototype.Kb=function(){return-1};Sf.prototype.Lb=function(){};
Sf.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Sa(a.substring(d,f))),d=f+1}}return b};
function Tf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ba:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ba.bd,l3:K.Ba.ad,l2:K.Ba.$c,l1:K.Ba.Zc,locked:K.Ba.cd,local:K.Ba.fc,online:~K.Ba.fc,"caps-lock":Je};var Ee={SI1978:Pe,VT100:K};
K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:ie.prototype.Nd};K.Cb={130:ie.prototype.ee};ob(function(){for(var a=qa(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new ie(d);pa(d,c)}});
function bf(a,b,c,d,e){n.call(this,"Video",a,262144);var f=this;this.Ta=hb("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.la=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&cf[h.toUpperCase()]||df;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ha=this.fa=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.La=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.ya=!1);b=a.smoothing;(c=ib("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ef(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ef(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=La(this.S)&&(this.S=Pa()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ya(this.S,null,!0,function(a,b,c){ff(f,a,b,c)});this.Fa={}}aa(bf,n);
function Wd(a){a.C=a.O*a.fa;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Fb(a.H,a.la,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,gf(a,a.L>>1)):gf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.wa=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+hf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==jf&&(a.U[a.X+kf]=[255,255,0,255],a.U[a.X+lf]=[0,255,0,255]);a.Y==mf&&(a.jb=60,a.za=!1,a.ga=Array(a.O));
return!0}l=bf.prototype;l.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Fa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;Wd(this);if(this.B=Bb(a,"Keyboard")){for(var e in this.Fa)this.B.ca("led",e,this.Fa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Nc(this.u,function(){Sc(f)});Oc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Aa(this)};
function ff(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{ea(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.ea=f,Xd(a);else{a.aa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.aa("Font ROM data error: "+g.message);return}(a.j||a.K)&&Aa(a)}}
function Xd(a){a.ea&&(a.Na=a.Y==mf,a.T[nf]=[of(a,a.fa,a.ba),of(a,a.fa,a.ba,a.za)],a.T[pf]=[of(a,2*a.fa,a.ba),of(a,2*a.fa,a.ba,a.za)],a.T[qf]=a.T[rf]=[of(a,2*a.fa,2*a.ba),of(a,2*a.fa,2*a.ba,a.za)])}
function of(a,b,c,d){var e=8>=a.Ha?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,k={fa:b,ba:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,B=v;v<a.ba;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ea[y],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.fa;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.fa;ja++)h&&(C=!C),sf(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return k}l.va=function(a,b){return b||!a||this.restore(a)?!0:!1};l.ua=function(a){return!a||this.save()};l.save=function(){var a=new ld(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function ef(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Fa(a,"notifyFullScreen("+b+")")}function gf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function sf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==jf&&(208<=c&&236>c?e=a.X+kf:28<=c&&72>c&&(e=a.X+lf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Sc(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Jd(a.u,2),c=!1):Jd(a.u,1):Jd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.la>>>d.g;0<e&&g<d.b.length;)d.b[g].Ca&&(d.b[g].Ca=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Oc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.fa)switch(a.Y){case mf:for(var c=a.la,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=nf&&(B>>=1);;){var y=Kb(a.H,u++);if((y&tf)==tf){var w=Kb(a.H,u++),d=w&uf,c=(w&vf)<<8|Kb(a.H,u),c=c+(w&wf?
xf:yf);break}if(p<B)a.ga[p++]=y;else break}if(f)f--;else{for(;p<a.ga.length;)a.ga[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.ga[B];if(!u||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.wa,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.fa,T=(T>>4)*y.ba,L,ja,ua,na,Ma=y.fa,ec=y.ba;C?(L=B*w.fa,ja=e*w.ba,ua=w.fa,na=w.ba):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.fa>w.fa&&(L*=2,ua*=2);y.ba>w.ba&&(v==rf&&(T+=w.ba),ec=w.ba);C?C.drawImage(y.canvas,za,T,Ma,ec,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,ec,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.ya&&1==h&&(a.A[k]=-1,h=0);a.ya=!1;(h||b)&&a.wa&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.la;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Ob(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,sf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.wa.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var kf=0,lf=1,hf=2,df=0,jf=1,mf=2,cf={SI1978:jf,VT100:mf},nf=96,pf=64,qf=32,rf=0,tf=127,vf=15,wf=16,uf=96,xf=8192,yf=16384;
ob(function(){for(var a=qa(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=oa(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=cb().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||ib("aspect"));f&&.3<=f&&3.33>=f&&(mb("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");hb("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new bf(d,e,g,f,c);pa(d,c)}});
function zf(a){n.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:q("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Af;b&&(void 0===c&&(c="Panel"),(c=ma(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(zf,n);l=zf.prototype;l.ca=function(a,b,c,d){var e=this;switch(b){case Af:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Bf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Bf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ea=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Nc(this.u,function(){e.Ob()});this.Z=Nc(this.u,function(){Le(e)});this.W=Bb(a,"ChipSet");Tb(b,this,Cf,this.U);Xb(b,this,Df,this.U);Aa(this)};
l.Fc=function(a){if(!this.b){var b=Bc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ta(c[0]);if(d!=this.cb)return;c=Ta(c[1]);if(this.b=la(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.va=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.ua=function(a){return a?this.save():!0};l.reset=function(){Ef(this)};l.save=function(){var a=new ld(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Ef(this,a[0])};
function Ef(a,b){var c=0;b||(b=Ff);a.F=b[c++];a.M=b[c++];a.O=b[c++];a.ia=b[c++];a.B=b[c++];a.C=b[c++];a.L=b[c];return!0}function Gf(a,b){var c=a.L&b;b&15||(c>>=4);b=Hf[c];c=((a.B&If)>>2)+6;a.B&Jf&&c++;c+=((a.B&Kf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Bf(a,b){Fa(a,"receiveByte("+Ja(b)+"), status="+Ja(a.ia));return a.N||a.ia&Lf?!1:(a.M=b,a.ia|=Lf,Jd(a.u,a.X),!0)}
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Bf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.u&&Oc(this.u,this.Y,Gf(this,Mf)));return!0};l.ne=function(a){this.ia&=~Nf;a&64&&(this.ia|=Nf)};function Le(a,b){a.ia=a.ia|Vd|Of;b&&a.Ra&&a.Ra.call(a.b,b)}l.Hd=function(a,b){var c=this.M;r(this,a,null,b,"DATA",c);this.ia&=~Lf;return c};l.Gd=function(a,b){var c=this.ia;r(this,a,null,b,"STATUS",c);return c};
l.Vd=function(a,b,c){r(this,a,b,c,"DATA");this.O=b;this.ia&=~(Vd|Of);Fa(this,"transmitByte("+Ja(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ua[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=Sa("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Oc(this.u,this.Z,Gf(this,Pf))};l.Ud=function(a,b,c){r(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Qf|Rf)&&(a=0,this.D?(a|=b&Qf?32:0,a|=b&Rf?320:0):(a|=b&Qf?16:0,a|=b&Rf?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&Sf&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){r(this,a,b,c,"BAUDRATES");this.L=b};
var If=12,Jf=16,Kf=192,Rf=2,Qf=32,Sf=64,Vd=1,Lf=2,Of=4,Nf=128,Mf=15,Pf=240,Hf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Ff=[!1,0,0,133,142,39,238],Af="buffer",Cf={0:zf.prototype.Hd,1:zf.prototype.Gd},Df={0:zf.prototype.Vd,1:zf.prototype.Ud,2:zf.prototype.Td};ob(function(){for(var a=qa(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new zf(d);pa(d,c)}});
function Tf(a){n.call(this,"Debugger",a);this.na=+a.base||16;this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(Tf,n);Tf.prototype.Kb=function(){return-1};Tf.prototype.Lb=function(){};
Tf.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ta(a.substring(d,f))),d=f+1}}return b};
function Uf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Uf(a,b,c){var d;if(b){b=Vf(a,b);for(var e=0,f=!1,g=b,h=[],l=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Sa(u);if(!u){f=!0;break}u=Wf(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(u);if(e==p.length)break;var u=p[e++],B=u.length;l.length&&Xf[u]<Xf[l[l.length-1]]&&Tf(h,l,1);l.push(u);b=b.substr(v+B)}Tf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Yf(a,null,
d))}return d}function Vf(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Uf(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?Zf(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.Y}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Wf(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=Ga(b,a.na))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Yf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==l||isNaN(l),y=p=p||u;0<u--;)y||(v=","+v,y=p),v=(B?"?":l&1?"1":"0")+v,l>>=1,y--;g=v+g;d>>=8}d=t(c,0,!0)+" "+c+". "+Ha(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function $f(a,b){if(b)return Yf(a,b,a.S[b]);var c=0;for(b in a.S)Yf(a,b,a.S[b]),c++;return 0<c}function Zf(a,b){switch(a.na){case 8:a=Ha(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}var Xf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function ag(a){Sf.call(this,a);this.style=bg;this.F=cg();this.la=cg();this.O=cg();this.A=[];this.j=this.I=this.w=[];dg(this);this.W=0;eg(this);this.Z={};fg(this,a.messages);this.ea=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Ec(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Ec(b,a)})}aa(ag,Sf);k=ag.prototype;
k.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Ac(a,"messages"))&&fg(this,a);this.ga=gg;Rd(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,l=b.length;if(c){a=hg(ig(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;l--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Hb[c],u&&d.i(t(u.id)+" %"+t(e<<d.H.g)+" %%"+t(u.J)+" "+x(u.pb)+" "+
x(u.size)+" "+p),c!=cc&&(c=-1),p=0);a+=d.H.w;e++}}});ya(this)};
k.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Ec(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,kb(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Ec(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,kb(c,function(a){var b=!1;Aa(d,!0)||(Ca(d,!0),b=jg(d,a?1:0),Ca(d,!1));return b}),!0}return!1};k.Za=function(){this.U&&this.U.focus()};function hg(a){a=a&&a.J;null==a&&(a=-1);return a}k.Ga=function(a,b){var c=255,d=hg(a);-1!==d&&(c=Jb(this.H,d),b&&kg(a,b));return c};k.Gb=function(a,b){var c=65535,d=hg(a);-1!==d&&(c=Lb(this.H,d),b&&kg(a,b));return c};k.Xb=function(a,b,c){var d=hg(a);-1!==d&&(Ob(this.H,d,b),c&&kg(a,c),Fc(this.u,!0))};
k.Qc=function(a,b,c){var d=hg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&kg(a,c);Fc(this.u,!0)}};function cg(a){return{J:a,Da:!1}}function lg(a){return[a.J,a.Da]}function mg(a){return{J:a[0],Da:a[1]}}
function ig(a,b,c){var d;c=(c?a.F:a.la).J;if(void 0!==b){d=b=Vf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=cg(d));break}}if(d=e)return d;c=Uf(a,b,void 0)}null!=c&&(d=cg(c));return d}function Kg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function kg(a,b){null!=a.J&&(a.J+=b||1)}function Mg(a){return t(a,4)}
function Ng(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ga(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function fg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in yb)0<=Wa(b,c)&&(a.ha|=yb[c],a.i(c+" messages enabled"))}function Rd(a,b,c){for(var d in yb)if(b==yb[d]){a.Z[d]=c;break}}
k.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Wa(Og,a):(c=Wa(Og,a.substr(b,2)),0>c&&(c=Wa(Og,a.substr(b,1))));return c};function Pg(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case Qg:case Rg:case Sg:case Tg:case Ug:case Vg:case Wg:case Xg:c=2;break;case Yg:case Zg:case $g:case ah:case bh:case ch:case dh:c=4}return c?t(a,c):"??"}
k.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case Qg:b=c.g;break;case Rg:b=c.w;break;case Sg:b=c.A;break;case Yg:b=ld(c);break;case Tg:b=c.B;break;case Ug:b=c.C;break;case Zg:b=nd(c);break;case Vg:b=c.D;break;case Wg:b=c.F;break;case $g:b=D(c);break;case Xg:b=E(c,D(c));break;case ah:b=c.M;break;case bh:b=c.j;break;case ch:b=jd(c);break;case dh:b=jd(c)&255|c.g<<8}}return b};
function eh(a,b){b=Vf(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+Pg(a,e)+b.substr(c+1+Og[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=Ga(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=ig(a,e))?(d=e+' "'+Ng(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=ig(a,e))?(kg(d),d=e+
' "'+Ng(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}k.message=function(a,b){b&&(a+=" at "+Mg(cg(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Oc(a),a.wa=0,Fc(a)))};
function Fa(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+x(c)+","+(f?f:"unknown")+(null!=d?","+Ia(d):"")+")"+(null!=g?": "+Ia(g):"")+(null!=e?" at "+Mg(e):""))}
function eg(a){var b;if(Jd(a)){if(!a.D||!a.D.length){a.D=Array(fh);for(b=0;b<a.D.length;b++)a.D[b]=cg();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function gh(a,b){if(!hh(a))return!1;a.u.tb(b);return!0}
function jg(a,b,c,d){if(!hh(a))return!1;a.C=0;b||Jd(a)&&Kd(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Jc(a.u,e,!0),Gc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,wa(a.u,f.stack||f.message))}!1!==d&&Fc(a.u);Dc(a,c||!1);return 0<a.C}k.da=function(a){this.u&&this.u.da(a)};function Dc(a,b){void 0===b&&(b=!0);a.F=cg(a.u.j);b&&1!=a.M?ih(a):jh(a)}
function hh(a){var b;if(b=a.u&&xa(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Aa(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}k.va=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.ua=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){eg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=cg(this.u.j);this.G.ka=!1;kh(this);a||Dc(this)};
k.save=function(){var a=new kd(this);a.set(0,lg(this.F));a.set(1,lg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.F=mg(a[b++]),this.O=mg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};k.start=function(a,b){this.M||this.i("running");this.G.ka=!0;this.wa=a;this.ya=b};
k.stop=function(a,b){if(this.G.ka){this.G.ka=!1;this.C=b-this.ya;if(!this.M){b="stopped";if(this.C){a-=this.wa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Jd(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Da(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Dc(this,!0);this.Za();kh(this,this.u.j)}};function Jd(a){return 1<a.j.length||!!a.W}
function Kd(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||xc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Jb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Da=!1,++a.T==a.D.length&&(a.T=0)));return!1}function Ub(a,b,c){a.i("break on input from port "+x(b)+": "+t(c));a.da(!0)}function Yb(a,b,c){a.i("break on output to port "+x(b)+": "+t(c));a.da(!0)}
function dg(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;wc(d.b[hg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,wc(d.b[hg(c)>>>d.g],!0);a.w=["bw"];a.oa=0}k.Pa=function(a,b,c){var d=!0;c||lh(this,a,b,!1,!0);if(a!=this.j){var e=hg(b);if(-1===e)this.i("invalid address: "+Mg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Da=!0:(mh(this,a,a.length-1,"set"),eg(this)));return d};
function lh(a,b,c,d,e){var f=!1;c=hg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==hg(h)&&(!d||h.Da)){f=!0;h.Da||e||mh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,wc(d.b[c>>>d.g],b==a.w));h.Da||eg(a);break}}return f}function nh(a,b){for(var c=1;c<b.length;c++)mh(a,b,c);return b.length-1}function mh(a,b,c,d){c=b[c];a.i(b[0]+" "+Mg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function kh(a,b){if(void 0!==b)xc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Da){if(!lh(a,a.j,c,!0))break;b=0}}}
function xc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var l=hg(h),p=0;p<c;p++)if(b+p==l){var u,f=!0;h.Da&&(lh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!oh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.ka||(f=!0)}if(f){e||mh(a,d,g,"hit");break}}}a.oa--;return f}
function ph(a,b,c,d){for(var e=cg(b.J),f=a.Ga(b,1),g=a.ga[f],h="",l=(a.style!=qh?rh:sh)[g[0]],p=g.length-1,u=th,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==bg)){var w=v&uh;if(w){var C=v&vh;C?u=C:v|=u;v&wh||(v|=1==B?xh:yh);if(w&P)a:{y=a;w=v;C=b;switch(w&vh){case Q:C=t(y.Ga(C,1),2);break;case zh:C=t(y.Ga(C,1)<<24>>24,4);break;case Ah:C=t(y.Gb(C,2),4);break;default:y="imm("+x(w)+")";break a}y.style==qh&&w&Bh?C="["+C+"]":w&Ch||(C=(y.style==bg?"$":"0x")+C);y=C}else w&Ch?(y=(v&Dh)>>8,
w=Og[y],a.style==qh&&v&Bh&&(y==Xg&&(w="HL"),w="["+w+"]"),y=w):w&Eh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Mg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=t(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=Ra(f,10);g+=v&Fh?"*":" ";g+=Ra(l,7);h&&(g+=" "+h);c&&(g=Ra(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Hc(a.u).toString()+" cs="+t(a.u.ya)):g+(null!=d?"="+d.toString():""));return g}
function Gh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=vd(a.u);break;case "ZF":a=ud(a.u);break;case "AF":a=td(a.u);break;case "PF":a=sd(a.u);break;case "CF":a=qd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Hh(a,b){return Og[b]+"="+Pg(a,b)+" "}function Ih(a){return Hh(a,Qg)+Hh(a,Yg)+Hh(a,Zg)+Hh(a,$g)+Hh(a,ah)+Gh(a,"IF")+Gh(a,"SF")+Gh(a,"ZF")+Gh(a,"AF")+Gh(a,"PF")+Gh(a,"CF")}k.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jh(a,b,c){var d=[],e=hg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Ua(f.zc,[e-g],a.Ac);0<=e?Kh(a,b,e,d):c&&(e=~e,Kh(a,b,e-1,d),Kh(a,b,e,d));break}}return d}function Kh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Lh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=qh?rh:sh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ga[f][0]]+" ").substr(0,5)+" ("+Ia(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Mh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return $f(a)||a.i("no variables"),!0;if(!c[2])return $f(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Uf(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Nh(a,b,c){var d=null;if(b=ig(a,b,!0)){var e=Jh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+x(f)),f=e[0]+" ("+Mg(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+x(f)),f=e[4]+" ("+Mg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Oh(a,b){switch(b[1]){case "8080":a.style=bg;break;case "8086":a.style=qh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Cc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Ic(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
function Vf(a,b,c){var d;if(b){b=Wf(a,b);for(var e=0,f=!1,g=b,h=[],k=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,u=Ta(u);if(!u){f=!0;break}u=Xf(a,u,null,!1===c);if(void 0===u){f=!0;c=!1;break}h.push(u);if(e==p.length)break;var u=p[e++],B=u.length;k.length&&Yf[u]<Yf[k[k.length-1]]&&Uf(h,k,1);k.push(u);b=b.substr(v+B)}Uf(h,k)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Zf(a,null,
d))}return d}function Wf(a,b){for(var c,d=/\{(.*?)\}/;(c=b.match(d))&&!(0<=c[1].indexOf("{"));){var e=Vf(a,c[1]);b=b.replace("{"+c[1]+"}",null!=e?$f(a,e):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.Y}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function Xf(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=Ha(b,a.na))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Zf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var B=null==k||isNaN(k),y=p=p||u;0<u--;)y||(v=","+v,y=p),v=(B?"?":k&1?"1":"0")+v,k>>=1,y--;g=v+g;d>>=8}d=t(c,0,!0)+" "+c+". "+Ia(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function ag(a,b){if(b)return Zf(a,b,a.S[b]);var c=0;for(b in a.S)Zf(a,b,a.S[b]),c++;return 0<c}function $f(a,b){switch(a.na){case 8:a=Ia(b,NaN);break;case 10:a=b.toString();break;default:a=t(b,NaN)}return a}var Yf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function bg(a){Tf.call(this,a);this.style=cg;this.F=dg();this.la=dg();this.O=dg();this.A=[];this.j=this.I=this.w=[];eg(this);this.W=0;fg(this);this.Z={};gg(this,a.messages);this.ea=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Fc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Fc(b,a)})}aa(bg,Tf);l=bg.prototype;
l.Ea=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Bc(a,"messages"))&&gg(this,a);this.ga=hg;Sd(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=ig(jg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Ib[c],u&&d.i(t(u.id)+" %"+t(e<<d.H.g)+" %%"+t(u.J)+" "+x(u.pb)+" "+
x(u.size)+" "+p),c!=dc&&(c=-1),p=0);a+=d.H.w;e++}}});Aa(this)};
l.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Fc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,lb(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Fc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,lb(c,function(a){var b=!1;Ca(d,!0)||(Da(d,!0),b=kg(d,a?1:0),Da(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function ig(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ga=function(a,b){var c=255,d=ig(a);-1!==d&&(c=Kb(this.H,d),b&&lg(a,b));return c};l.Gb=function(a,b){var c=65535,d=ig(a);-1!==d&&(c=Ob(this.H,d),b&&lg(a,b));return c};l.Xb=function(a,b,c){var d=ig(a);-1!==d&&(Pb(this.H,d,b),c&&lg(a,c),Gc(this.u,!0))};
l.Qc=function(a,b,c){var d=ig(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&lg(a,c);Gc(this.u,!0)}};function dg(a){return{J:a,Da:!1}}function mg(a){return[a.J,a.Da]}function ng(a){return{J:a[0],Da:a[1]}}
function jg(a,b,c){var d;c=(c?a.F:a.la).J;if(void 0!==b){d=b=Wf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=dg(d));break}}if(d=e)return d;c=Vf(a,b,void 0)}null!=c&&(d=dg(c));return d}function Lg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function lg(a,b){null!=a.J&&(a.J+=b||1)}function Ng(a){return t(a,4)}
function Og(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ga(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function gg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in zb)0<=Xa(b,c)&&(a.ha|=zb[c],a.i(c+" messages enabled"))}function Sd(a,b,c){for(var d in zb)if(b==zb[d]){a.Z[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Xa(Pg,a):(c=Xa(Pg,a.substr(b,2)),0>c&&(c=Xa(Pg,a.substr(b,1))));return c};function Qg(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case Rg:case Sg:case Tg:case Ug:case Vg:case Wg:case Xg:case Yg:c=2;break;case Zg:case $g:case ah:case bh:case ch:case dh:case eh:c=4}return c?t(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case Rg:b=c.g;break;case Sg:b=c.w;break;case Tg:b=c.A;break;case Zg:b=md(c);break;case Ug:b=c.B;break;case Vg:b=c.C;break;case $g:b=od(c);break;case Wg:b=c.D;break;case Xg:b=c.F;break;case ah:b=D(c);break;case Yg:b=E(c,D(c));break;case bh:b=c.M;break;case ch:b=c.j;break;case dh:b=kd(c);break;case eh:b=kd(c)&255|c.g<<8}}return b};
function fh(a,b){b=Wf(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+Qg(a,e)+b.substr(c+1+Pg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=Ha(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=jg(a,e))?(d=e+' "'+Og(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=jg(a,e))?(lg(d),d=e+
' "'+Og(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Ng(dg(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Pc(a),a.wa=0,Gc(a)))};
function Ga(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+x(c)+","+(f?f:"unknown")+(null!=d?","+Ja(d):"")+")"+(null!=g?": "+Ja(g):"")+(null!=e?" at "+Ng(e):""))}
function fg(a){var b;if(Kd(a)){if(!a.D||!a.D.length){a.D=Array(gh);for(b=0;b<a.D.length;b++)a.D[b]=dg();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function hh(a,b){if(!ih(a))return!1;a.u.tb(b);return!0}
function kg(a,b,c,d){if(!ih(a))return!1;a.C=0;b||Kd(a)&&Ld(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Kc(a.u,e,!0),Hc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,xa(a.u,f.stack||f.message))}!1!==d&&Gc(a.u);Ec(a,c||!1);return 0<a.C}l.da=function(a){this.u&&this.u.da(a)};function Ec(a,b){void 0===b&&(b=!0);a.F=dg(a.u.j);b&&1!=a.M?jh(a):kh(a)}
function ih(a){var b;if(b=a.u&&ya(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ca(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.va=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.ua=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){fg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=dg(this.u.j);this.G.ka=!1;lh(this);a||Ec(this)};
l.save=function(){var a=new ld(this);a.set(0,mg(this.F));a.set(1,mg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=ng(a[b++]),this.O=ng(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.ka=!0;this.wa=a;this.ya=b};
l.stop=function(a,b){if(this.G.ka){this.G.ka=!1;this.C=b-this.ya;if(!this.M){b="stopped";if(this.C){a-=this.wa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Kd(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Ea(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Ec(this,!0);this.Za();lh(this,this.u.j)}};function Kd(a){return 1<a.j.length||!!a.W}
function Ld(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||yc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Kb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Da=!1,++a.T==a.D.length&&(a.T=0)));return!1}function Vb(a,b,c){a.i("break on input from port "+x(b)+": "+t(c));a.da(!0)}function Zb(a,b,c){a.i("break on output to port "+x(b)+": "+t(c));a.da(!0)}
function eg(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;xc(d.b[ig(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,xc(d.b[ig(c)>>>d.g],!0);a.w=["bw"];a.oa=0}l.Pa=function(a,b,c){var d=!0;c||mh(this,a,b,!1,!0);if(a!=this.j){var e=ig(b);if(-1===e)this.i("invalid address: "+Ng(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Da=!0:(nh(this,a,a.length-1,"set"),fg(this)));return d};
function mh(a,b,c,d,e){var f=!1;c=ig(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==ig(h)&&(!d||h.Da)){f=!0;h.Da||e||nh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,xc(d.b[c>>>d.g],b==a.w));h.Da||fg(a);break}}return f}function oh(a,b){for(var c=1;c<b.length;c++)nh(a,b,c);return b.length-1}function nh(a,b,c,d){c=b[c];a.i(b[0]+" "+Ng(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function lh(a,b){if(void 0!==b)yc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Da){if(!mh(a,a.j,c,!0))break;b=0}}}
function yc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Da)for(var k=ig(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Da&&(mh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!ph(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.u.G.ka||(f=!0)}if(f){e||nh(a,d,g,"hit");break}}}a.oa--;return f}
function qh(a,b,c,d){for(var e=dg(b.J),f=a.Ga(b,1),g=a.ga[f],h="",k=(a.style!=rh?sh:th)[g[0]],p=g.length-1,u=uh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==cg)){var w=v&vh;if(w){var C=v&wh;C?u=C:v|=u;v&xh||(v|=1==B?yh:zh);if(w&P)a:{y=a;w=v;C=b;switch(w&wh){case Q:C=t(y.Ga(C,1),2);break;case Ah:C=t(y.Ga(C,1)<<24>>24,4);break;case Bh:C=t(y.Gb(C,2),4);break;default:y="imm("+x(w)+")";break a}y.style==rh&&w&Ch?C="["+C+"]":w&Dh||(C=(y.style==cg?"$":"0x")+C);y=C}else w&Dh?(y=(v&Eh)>>8,
w=Pg[y],a.style==rh&&v&Ch&&(y==Yg&&(w="HL"),w="["+w+"]"),y=w):w&Fh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=Ng(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=t(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=Sa(f,10);g+=v&Gh?"*":" ";g+=Sa(k,7);h&&(g+=" "+h);c&&(g=Sa(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Ic(a.u).toString()+" cs="+t(a.u.ya)):g+(null!=d?"="+d.toString():""));return g}
function Hh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=wd(a.u);break;case "ZF":a=vd(a.u);break;case "AF":a=ud(a.u);break;case "PF":a=td(a.u);break;case "CF":a=rd(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Ih(a,b){return Pg[b]+"="+Qg(a,b)+" "}function Jh(a){return Ih(a,Rg)+Ih(a,Zg)+Ih(a,$g)+Ih(a,ah)+Ih(a,bh)+Hh(a,"IF")+Hh(a,"SF")+Hh(a,"ZF")+Hh(a,"AF")+Hh(a,"PF")+Hh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Kh(a,b,c){var d=[],e=ig(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Va(f.zc,[e-g],a.Ac);0<=e?Lh(a,b,e,d):c&&(e=~e,Lh(a,b,e-1,d),Lh(a,b,e,d));break}}return d}function Lh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Mh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=rh?sh:th;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.ga[f][0]]+" ").substr(0,5)+" ("+Ja(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Nh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ag(a)||a.i("no variables"),!0;if(!c[2])return ag(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=Vf(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Oh(a,b,c){var d=null;if(b=jg(a,b,!0)){var e=Kh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+x(f)),f=e[0]+" ("+Ng(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+x(f)),f=e[4]+" ("+Ng(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Ph(a,b){switch(b[1]){case "8080":a.style=cg;break;case "8086":a.style=rh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.za=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Dc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Jc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function ih(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=Uf(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=cg(d.j);break;case "PS":Wc(d,f);break;case "PSW":Wc(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?sd(d)||(d.L^=1):sd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?vd(d)||(d.L^=192):vd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Fc(d);a.i("updated registers:")}a.i(Ih(a));c&&(a.F=cg(d.j),jh(a,Mg(a.F.J)))}}function Ph(a,b){b=Sa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(eh(a,c[2])):Uf(a,b,!0)}function Qh(a,b,c){var d="t"!=b;c=Wf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);jb(c,function(){return Ca(a,!0)&&jg(a,e,d,!1)},function(){Fc(a.u);Ca(a,!1)})}
function jh(a,b,c,d){if(b=ig(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ig(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Aa(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Jh(a,b),l=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=ph(a,b,g,f);a.i(f);a.F=b;e-=b.J-l;c++}}}
k.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Sa(a.substring(d,f))),d=f+1}}return b};
function oh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Mg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(xa(a)&&0<b.length){a.L&&(b="a "+Mg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),l=1;l<g.length;l++){var p=g.charAt(l);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(l);f.unshift(g.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var u=ig(a,f[1],!0);if(u)if(a.O=
u,void 0===f[2])a.i("begin assemble at "+Mg(u.J)),a.L=!0,Fc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(ph(a,a.O))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+nh(a,a.j);za+=nh(a,a.I);(za+=nh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=Wf(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=cg();if("*"!=w&&(L=ig(a,w,!0),!L))break a;w=x(L.J);"c"==T?null==L.J?(dg(a),a.i("all breakpoints cleared")):lh(a,a.j,L)||lh(a,a.I,L)||lh(a,a.w,L)||a.i("breakpoint missing: "+Mg(L.J)):
"i"==T?a.i("breakpoint "+(Rb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(Vb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Kg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],ec=f[3];if("?"==na){var Mb="";for(ja in yb)a.Z[ja]&&(Mb&&(Mb+=","),Mb+=ja);Mb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Mb.length&&a.i("dump extension commands:\n\t"+Mb)}else if("state"==na){var ie=Rh(a.R,!0);"console"==Ma?console.log(ie):(a.ta&&(a.ta.value=""),ie&&a.i(ie))}else if("symbols"==na)for(var je=0;je<a.A.length;je++){var ke=a.A[je],Nb;for(Nb in ke.ra)if("."!=Nb.charAt(0)){var ng=ke.ra[Nb].o;if(void 0!==ng){var og=ke.ra[Nb].l;og&&(Nb=og);a.i(Mg(ng)+" "+
Nb)}}}else{if("d"==ua){for(ja in yb)if(f[1]==ja){var pg=a.Z[ja];pg?(f.shift(),f.shift(),pg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.za||"db")}else a.za=ua;if("dh"==ua){var qg=na,rg=Ma,sg="",tg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+qg||a.sa,jc=+rg||10;isNaN(Ba)?Ba=jc:sg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var le=[];"call"==rg&&(jc=1E5,le=["CALL"]);for(void 0!==qg&&a.i(Ba+" instructions earlier:");0<
jc&&Na!=a.T;){var ug=Za[Na++];if(null==ug.J)break;var kc=cg(ug.J),ui=Ba--,vg=ph(a,kc,"history",ui);(!le.length||0<=vg.indexOf(le[0]))&&a.i(vg);kc.Jb&&(Na+=kc.Jb,jc-=kc.Jb,Ba-=kc.Jb);Na>=Za.length&&(Na=0);a.sa=Ba;tg++;jc--}}tg||(a.i("no "+sg+"history available"),a.sa=void 0)}else{var Xc=ig(a,na);if(Xc){var Yc=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||ec),Yc=Wf(a,Ma)>>>0,65536<Yc&&(Yc=65536));for(var lc="",Zc="dd"==ua?4:"dw"==ua?2:1,$c=Zc*Yc||128,vi=$c+15>>4||1;vi--&&0<$c;){var ad=0,me=0,mc,ne="",
wg="",na=Mg(Xc.J);for(mc=16;0<mc&&0<$c;mc--){var bd=a.Ga(Xc,1),ad=ad|bd<<(me++<<3);me==Zc&&(ne+=t(ad,2*Zc),ne+=1==Zc?9==mc?"-":" ":" ",ad=me=0);wg+=32<=bd&&128>bd?String.fromCharCode(bd):".";$c--}lc&&(lc+="\n");lc+=na+" "+ne+(mc?"":" "+wg)}lc&&a.i(lc);a.la=Xc}}}}break;case "e":if("else"==f[0])break;var cd=1,xg=255,yg=a.Ga,zg=a.Xb;"ew"==f[0]&&(cd=2,xg=65535,yg=a.Gb,zg=a.Qc);var Ag=cd<<1,Bg=f[1];if(null==Bg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");
else{var dd=ig(a,Bg);if(dd)for(var ed=2;ed<f.length;ed++){var nc=Uf(a,f[ed]);if(void 0===nc){a.i("unrecognized value: "+f[ed]);break}nc&~xg&&a.i("warning: "+t(nc)+" exceeds "+cd+"-byte value");var wi=yg.call(a,dd);a.i("changing "+Mg(dd.J)+" from "+t(wi,Ag,!0)+" to "+t(nc,Ag,!0));zg.call(a,dd,nc,cd)}}break;case "f":Lh(a,f[1]);break;case "g":a:{var Cg=f[1],xi=b;if(void 0!==Cg){var oe=ig(a,Cg,!0);if(!oe)break a;Kg(a,oe,xi);a.Pa(a.j,oe,!0)}gh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var pe;if(a.G.ka)pe="halting",a.da();else{if(Aa(a,!0))break a;pe="already halted"}c||a.i(pe)}break;case "i":if("if"==f[0]){var qe;var oc=b.substr(2),oc=Sa(oc);Uf(a,oc)?(c||a.i("true: "+oc),qe=!0):(c||a.i("false: "+oc),qe=!1);qe||(d=!1);break}if("int"==f[0]){var fd;var yi=f[1];if(a.u.N&512){var re=Uf(a,yi);null==re?fd=!1:(a.i("requesting interrupt level "+re),Id(a.u,re),fd=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),fd=!1;fd||(d=!1);break}var se=f[1];if(se&&"?"!=se){var te=
Wf(a,se);if(void 0!==te){var zi=Tb(a.H,te);a.i(x(te)+": "+Ia(zi))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Ai=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var ue=0,Dg=cg(),pc=cg(a.u.M);for(a.i("stack trace for "+Mg(pc.J));10>ue;){for(var ub=null,Bi=256;65536>pc.J>>>0;){Dg.J=a.Gb(pc,2);if(null==pc.J||!Bi--)break;for(var Ci=a,gd=Dg,
Eg=null,qc=gd.J,Fg=qc,ve=1;6>=ve&&qc;ve++){if(2<ve){gd.J=qc;var hd=ph(Ci,gd);if(0<=hd.indexOf("CALL")){var Gg=hd.indexOf(" ");if(qc+(hd.indexOf(" ",Gg+1)-Gg-1)/2==Fg){Eg=hd;break}}}qc--}gd.J=Fg;if(ub=Eg)break}if(!ub||null==ub)break;var Hg=null;if("ks"==Ai){var Ig=ub.match(/[0-9A-F]+$/);Ig&&(Hg=Nh(a,Ig[0]))}ub=Ra(ub,50)+" ;"+(Hg||"stack="+Mg(pc.J));a.i(ub);ue++}ue||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Nh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in yb)if(ba==$a){nb=yb[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var we=0;we<a.X.length;we++)a.i(a.X[we]);a.X=[]}}var Di=0,rc="";for($a in yb)if(!ba||ba==$a){var Ei=!!(a.ha&yb[$a]);if(null===
ab||ab==Ei)rc&&(rc+=","),++Di%10||(rc+="\n\t"),"key"==$a&&($a="keys"),rc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(rc||"none"));eg(a)}break;case "o":var xe=f[1],Fi=f[2];if(xe&&"?"!=xe){var ye=Wf(a,xe,"port #"),ze=Wf(a,Fi);void 0!==ye&&void 0!==ze&&(Xb(a.H,ye,ze),a.i(x(ye)+": "+Ia(ze)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Ph(a,b.substr(5));break}var Jg="pr"==f[0]?1:0,Gi=1+Jg;if(a.M)a.i("step in progress");else{var Ae=cg(a.u.j);switch(a.Ga(Ae)){case 205:a.M=Gi,kg(Ae,3)}a.M?(a.Pa(a.j,Ae,!0),gh(a)||(a.R&&a.R.Za(),a.M=0)):Qh(a,Jg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}ih(a,f);break;case "s":Oh(a,f);break;case "t":Qh(a,f[0],f[1]);break;case "u":jh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.0 ("+a.u.xb+",RELEASE"+
(wb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(bb());break;case "?":if(f[1]){Ph(a,b.substr(1));break}var Be="commands:",Ce;for(Ce in Sh)Be+="\n"+Ra(Ce,9)+Sh[Ce];Jd(a)||(Be+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Be);break;default:a.i("unknown command: "+b),d=!1}}}catch(Lg){a.i("debugger error: "+(Lg.stack||Lg.message)),d=!1}return d}function Ec(a,b,c){b=a.Ab(b,c);for(var d in b)if(!oh(a,b[+d]))return!1;return!0}
var Sh={"?":"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"},
bg=8080,qh=8086,rh="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(" "),sh="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(" "),
Rg=0,Sg=1,Tg=2,Ug=3,Vg=4,Wg=5,Xg=6,Qg=7,Yg=8,Zg=9,$g=10,ah=11,bh=12,ch=13,dh=14,Og="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),vh=15,uh=240,Dh=3840,wh=61440,th=0,Q=1,zh=2,Ah=3,Ch=16,P=32,Bh=64,Eh=128,R=Qg<<8|Ch|Q,S=Rg<<8|Ch|Q,U=Sg<<8|Ch|Q,V=Tg<<8|Ch|Q,W=Ug<<8|Ch|Q,X=Vg<<8|Ch|Q,Y=Wg<<8|Ch|Q,Z=Xg<<8|Ch|Q|Bh,Th=Yg<<8|Ch|Ah,Uh=Zg<<8|Ch|Ah,Vh=$g<<8|Ch|Ah,Wh=ah<<8|Ch|Ah,Xh=dh<<8|Ch|Ah,yh=4096,xh=8192,O=16384,Fh=32768,gg=[[45],[42,Th,P],[71,Th|Bh,R|O],[29,Th],[28,S],[22,S],[44,S,P],[63],[45,Fh],[21,
Vh|O,Th],[40,R|O,Th|Bh],[23,Th],[28,U],[22,U],[44,U,P],[64],[45,Fh],[42,Uh,P],[71,Uh|Bh,R|O],[29,Uh],[28,V],[22,V],[44,V,P],[52],[45,Fh],[21,Vh|O,Uh],[40,R|O,Uh|Bh],[23,Uh],[28,W],[22,W],[44,W,P],[53],[45,Fh],[42,Vh,P],[68,51|Bh,Vh|O],[29,Vh],[28,X],[22,X],[44,X,P],[20],[45,Fh],[21,Vh|O,Vh],[41,Vh|O,51|Bh],[23,Vh],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Fh],[42,Wh,P],[70,51|Bh,R|O],[29,Wh],[28,Z],[22,Z],[44,Z,P],[72],[45,Fh],[21,Vh|O,Wh],[39,R|O,51|Bh],[23,Wh],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
function jh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=Vf(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=dg(d.j);break;case "PS":Xc(d,f);break;case "PSW":Xc(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?td(d)||(d.L^=1):td(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?wd(d)||(d.L^=192):wd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Gc(d);a.i("updated registers:")}a.i(Jh(a));c&&(a.F=dg(d.j),kh(a,Ng(a.F.J)))}}function Qh(a,b){b=Ta(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(fh(a,c[2])):Vf(a,b,!0)}function Rh(a,b,c){var d="t"!=b;c=Xf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);kb(c,function(){return Da(a,!0)&&kg(a,e,d,!1)},function(){Gc(a.u);Da(a,!1)})}
function kh(a,b,c,d){if(b=jg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=jg(a,c,!0);if(!d||d.J<b.J)return;e=d.J-b.J;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ca(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Kh(a,b),k=b.J;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var p=h[0]+":";h[2]&&(p+=" "+h[2]);a.i(p)}h[3]&&(g=h[3],f=null);f=qh(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ta(a.substring(d,f))),d=f+1}}return b};
function ph(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Ng(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(ya(a)&&0<b.length){a.L&&(b="a "+Ng(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var u=jg(a,f[1],!0);if(u)if(a.O=
u,void 0===f[2])a.i("begin assemble at "+Ng(u.J)),a.L=!0,Gc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Xb(u,v[B],1);a.i(qh(a,a.O))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+oh(a,a.j);za+=oh(a,a.I);(za+=oh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=Xf(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=dg();if("*"!=w&&(L=jg(a,w,!0),!L))break a;w=x(L.J);"c"==T?null==L.J?(eg(a),a.i("all breakpoints cleared")):mh(a,a.j,L)||mh(a,a.I,L)||mh(a,a.w,L)||a.i("breakpoint missing: "+Ng(L.J)):
"i"==T?a.i("breakpoint "+(Sb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(Wb(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Lg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],ec=f[3];if("?"==na){var Mb="";for(ja in zb)a.Z[ja]&&(Mb&&(Mb+=","),Mb+=ja);Mb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Mb.length&&a.i("dump extension commands:\n\t"+Mb)}else if("state"==na){var je=Sh(a.R,!0);"console"==Ma?console.log(je):(a.ta&&(a.ta.value=""),je&&a.i(je))}else if("symbols"==na)for(var ke=0;ke<a.A.length;ke++){var le=a.A[ke],Nb;for(Nb in le.ra)if("."!=Nb.charAt(0)){var og=le.ra[Nb].o;if(void 0!==og){var pg=le.ra[Nb].l;pg&&(Nb=pg);a.i(Ng(og)+" "+
Nb)}}}else{if("d"==ua){for(ja in zb)if(f[1]==ja){var qg=a.Z[ja];qg?(f.shift(),f.shift(),qg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.za||"db")}else a.za=ua;if("dh"==ua){var rg=na,sg=Ma,tg="",ug=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+rg||a.sa,jc=+sg||10;isNaN(Ba)?Ba=jc:tg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var me=[];"call"==sg&&(jc=1E5,me=["CALL"]);for(void 0!==rg&&a.i(Ba+" instructions earlier:");0<
jc&&Na!=a.T;){var vg=Za[Na++];if(null==vg.J)break;var kc=dg(vg.J),vi=Ba--,wg=qh(a,kc,"history",vi);(!me.length||0<=wg.indexOf(me[0]))&&a.i(wg);kc.Jb&&(Na+=kc.Jb,jc-=kc.Jb,Ba-=kc.Jb);Na>=Za.length&&(Na=0);a.sa=Ba;ug++;jc--}}ug||(a.i("no "+tg+"history available"),a.sa=void 0)}else{var Yc=jg(a,na);if(Yc){var Zc=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||ec),Zc=Xf(a,Ma)>>>0,65536<Zc&&(Zc=65536));for(var lc="",$c="dd"==ua?4:"dw"==ua?2:1,ad=$c*Zc||128,wi=ad+15>>4||1;wi--&&0<ad;){var bd=0,ne=0,mc,oe="",
xg="",na=Ng(Yc.J);for(mc=16;0<mc&&0<ad;mc--){var cd=a.Ga(Yc,1),bd=bd|cd<<(ne++<<3);ne==$c&&(oe+=t(bd,2*$c),oe+=1==$c?9==mc?"-":" ":" ",bd=ne=0);xg+=32<=cd&&128>cd?String.fromCharCode(cd):".";ad--}lc&&(lc+="\n");lc+=na+" "+oe+(mc?"":" "+xg)}lc&&a.i(lc);a.la=Yc}}}}break;case "e":if("else"==f[0])break;var dd=1,yg=255,zg=a.Ga,Ag=a.Xb;"ew"==f[0]&&(dd=2,yg=65535,zg=a.Gb,Ag=a.Qc);var Bg=dd<<1,Cg=f[1];if(null==Cg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");
else{var ed=jg(a,Cg);if(ed)for(var fd=2;fd<f.length;fd++){var nc=Vf(a,f[fd]);if(void 0===nc){a.i("unrecognized value: "+f[fd]);break}nc&~yg&&a.i("warning: "+t(nc)+" exceeds "+dd+"-byte value");var xi=zg.call(a,ed);a.i("changing "+Ng(ed.J)+" from "+t(xi,Bg,!0)+" to "+t(nc,Bg,!0));Ag.call(a,ed,nc,dd)}}break;case "f":Mh(a,f[1]);break;case "g":a:{var Dg=f[1],yi=b;if(void 0!==Dg){var pe=jg(a,Dg,!0);if(!pe)break a;Lg(a,pe,yi);a.Pa(a.j,pe,!0)}hh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var qe;if(a.G.ka)qe="halting",a.da();else{if(Ca(a,!0))break a;qe="already halted"}c||a.i(qe)}break;case "i":if("if"==f[0]){var re;var oc=b.substr(2),oc=Ta(oc);Vf(a,oc)?(c||a.i("true: "+oc),re=!0):(c||a.i("false: "+oc),re=!1);re||(d=!1);break}if("int"==f[0]){var gd;var zi=f[1];if(a.u.N&512){var se=Vf(a,zi);null==se?gd=!1:(a.i("requesting interrupt level "+se),Jd(a.u,se),gd=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),gd=!1;gd||(d=!1);break}var te=f[1];if(te&&"?"!=te){var ue=
Xf(a,te);if(void 0!==ue){var Ai=Ub(a.H,ue);a.i(x(ue)+": "+Ja(Ai))}}else a.i("input commands:"),a.i("\ti [p]\tread port [p]"),a.i("warning: port accesses can affect hardware state");break;case "k":var Bi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var ve=0,Eg=dg(),pc=dg(a.u.M);for(a.i("stack trace for "+Ng(pc.J));10>ve;){for(var ub=null,Ci=256;65536>pc.J>>>0;){Eg.J=a.Gb(pc,2);if(null==pc.J||!Ci--)break;for(var Di=a,hd=Eg,
Fg=null,qc=hd.J,Gg=qc,we=1;6>=we&&qc;we++){if(2<we){hd.J=qc;var id=qh(Di,hd);if(0<=id.indexOf("CALL")){var Hg=id.indexOf(" ");if(qc+(id.indexOf(" ",Hg+1)-Hg-1)/2==Gg){Fg=id;break}}}qc--}hd.J=Gg;if(ub=Fg)break}if(!ub||null==ub)break;var Ig=null;if("ks"==Bi){var Jg=ub.match(/[0-9A-F]+$/);Jg&&(Ig=Oh(a,Jg[0]))}ub=Sa(ub,50)+" ;"+(Ig||"stack="+Ng(pc.J));a.i(ub);ve++}ve||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Oh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in zb)if(ba==$a){nb=zb[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var xe=0;xe<a.X.length;xe++)a.i(a.X[xe]);a.X=[]}}var Ei=0,rc="";for($a in zb)if(!ba||ba==$a){var Fi=!!(a.ha&zb[$a]);if(null===
ab||ab==Fi)rc&&(rc+=","),++Ei%10||(rc+="\n\t"),"key"==$a&&($a="keys"),rc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(rc||"none"));fg(a)}break;case "o":var ye=f[1],Gi=f[2];if(ye&&"?"!=ye){var ze=Xf(a,ye,"port #"),Ae=Xf(a,Gi);void 0!==ze&&void 0!==Ae&&(Yb(a.H,ze,Ae),a.i(x(ze)+": "+Ja(Ae)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Qh(a,b.substr(5));break}var Kg="pr"==f[0]?1:0,Hi=1+Kg;if(a.M)a.i("step in progress");else{var Be=dg(a.u.j);switch(a.Ga(Be)){case 205:a.M=Hi,lg(Be,3)}a.M?(a.Pa(a.j,Be,!0),hh(a)||(a.R&&a.R.Za(),a.M=0)):Rh(a,Kg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}jh(a,f);break;case "s":Ph(a,f);break;case "t":Rh(a,f[0],f[1]);break;case "u":kh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Nh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.0 ("+a.u.xb+",RELEASE"+
(xb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(cb());break;case "?":if(f[1]){Qh(a,b.substr(1));break}var Ce="commands:",De;for(De in Th)Ce+="\n"+Sa(De,9)+Th[De];Kd(a)||(Ce+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ce);break;default:a.i("unknown command: "+b),d=!1}}}catch(Mg){a.i("debugger error: "+(Mg.stack||Mg.message)),d=!1}return d}function Fc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!ph(a,b[+d]))return!1;return!0}
var Th={"?":"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"},
cg=8080,rh=8086,sh="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(" "),th="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(" "),
Sg=0,Tg=1,Ug=2,Vg=3,Wg=4,Xg=5,Yg=6,Rg=7,Zg=8,$g=9,ah=10,bh=11,ch=12,dh=13,eh=14,Pg="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),wh=15,vh=240,Eh=3840,xh=61440,uh=0,Q=1,Ah=2,Bh=3,Dh=16,P=32,Ch=64,Fh=128,R=Rg<<8|Dh|Q,S=Sg<<8|Dh|Q,U=Tg<<8|Dh|Q,V=Ug<<8|Dh|Q,W=Vg<<8|Dh|Q,X=Wg<<8|Dh|Q,Y=Xg<<8|Dh|Q,Z=Yg<<8|Dh|Q|Ch,Uh=Zg<<8|Dh|Bh,Vh=$g<<8|Dh|Bh,Wh=ah<<8|Dh|Bh,Xh=bh<<8|Dh|Bh,Yh=eh<<8|Dh|Bh,zh=4096,yh=8192,O=16384,Gh=32768,hg=[[45],[42,Uh,P],[71,Uh|Ch,R|O],[29,Uh],[28,S],[22,S],[44,S,P],[63],[45,Gh],[21,
Wh|O,Uh],[40,R|O,Uh|Ch],[23,Uh],[28,U],[22,U],[44,U,P],[64],[45,Gh],[42,Vh,P],[71,Vh|Ch,R|O],[29,Vh],[28,V],[22,V],[44,V,P],[52],[45,Gh],[21,Wh|O,Vh],[40,R|O,Vh|Ch],[23,Vh],[28,W],[22,W],[44,W,P],[53],[45,Gh],[42,Wh,P],[68,51|Ch,Wh|O],[29,Wh],[28,X],[22,X],[44,X,P],[20],[45,Gh],[21,Wh|O,Wh],[41,Wh|O,51|Ch],[23,Wh],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Gh],[42,Xh,P],[70,51|Ch,R|O],[29,Xh],[28,Z],[22,Z],[44,Z,P],[72],[45,Gh],[21,Wh|O,Xh],[39,R|O,51|Ch],[23,Xh],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
S,U],[43,S,V],[43,S,W],[43,S,X],[43,S,Y],[43,S,Z],[43,S,R],[43,U,S],[43,U,U],[43,U,V],[43,U,W],[43,U,X],[43,U,Y],[43,U,Z],[43,U,R],[43,V,S],[43,V,U],[43,V,V],[43,V,W],[43,V,X],[43,V,Y],[43,V,Z],[43,V,R],[43,W,S],[43,W,U],[43,W,V],[43,W,W],[43,W,X],[43,W,Y],[43,W,Z],[43,W,R],[43,X,S],[43,X,U],[43,X,V],[43,X,W],[43,X,X],[43,X,Y],[43,X,Z],[43,X,R],[43,Y,S],[43,Y,U],[43,Y,V],[43,Y,W],[43,Y,X],[43,Y,Y],[43,Y,Z],[43,Y,R],[43,Z,S],[43,Z,U],[43,Z,V],[43,Z,W],[43,Z,X],[43,Z,Y],[26],[43,Z,R],[43,R,S],[43,R,
U],[43,R,V],[43,R,W],[43,R,X],[43,R,Y],[43,R,Z],[43,R,R],[3,R|O,S],[3,R|O,U],[3,R|O,V],[3,R|O,W],[3,R|O,X],[3,R|O,Y],[3,R|O,Z],[3,R|O,R],[2,R|O,S],[2,R|O,U],[2,R|O,V],[2,R|O,W],[2,R|O,X],[2,R|O,Y],[2,R|O,Z],[2,R|O,R],[73,R|O,S],[73,R|O,U],[73,R|O,V],[73,R|O,W],[73,R|O,X],[73,R|O,Y],[73,R|O,Z],[73,R|O,R],[66,R|O,S],[66,R|O,U],[66,R|O,V],[66,R|O,W],[66,R|O,X],[66,R|O,Y],[66,R|O,Z],[66,R|O,R],[5,R|O,S],[5,R|O,U],[5,R|O,V],[5,R|O,W],[5,R|O,X],[5,R|O,Y],[5,R|O,Z],[5,R|O,R],[76,R|O,S],[76,R|O,U],[76,R|
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,Th],[34,51],[30,51],[11,51],[51,Th],[4,R|O,P|Q],[65,Eh],[62],[54],[38,51],[30,51|Fh],[15,51],[7,51],[1,R|O,P|Q],[65,Eh],[57],[50,Uh],[33,51],[48,P|Q,R|O],[10,51],[51,Uh],[74,R|O,P|Q],[65,Eh],[55],[54,Fh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Fh],[67,R|O,P|Q],[65,
Eh],[61],[50,Vh],[37,51],[78,Wh|Bh|O,Vh|O],[14,51],[51,Vh],[6,R|O,P|Q],[65,Eh],[60],[49,Vh],[36,51],[75,Vh|O,Uh|O],[13,51],[7,51|Fh],[77,R|O,P|Q],[65,Eh],[59],[50,Xh],[35,51],[24],[12,51],[51,Xh],[47,R|O,P|Q],[65,Eh],[56],[69,Wh|O,Vh|O],[32,51],[25],[9,51],[7,51|Fh],[19,R|O,P|Q],[65,Eh]],fh=1E3;mb(function(){for(var a=qa(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new ag(d);pa(d,c)}});
function Yh(a,b,c){n.call(this,"Computer",a,67108864);this.G.ja=!1;Zh(this,b);this.L=Ac(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=$h;this.F=null;this.C=this.O=!1;this.U=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.g=ai(this);if(this.u=ma("CPU",this.id)){this.K=ma("Debugger",this.id);this.A=[];for(b=null;b=Ab(this,"Video",b);)this.A.push(b);this.H=new Cb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=ka(this.id);if((this.B=ma("Panel",this.id))&&this.B.ta)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ta=this.B.ta;this.i("PC8080 v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.H,this.u,this.K);b=null;d=Ac(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Ac(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=$h),this.b&&(this.I=new kd(this,"1.34.0"),bi(this.I)?
b=null:delete this.I);!b&&this.b&&(b=ci(this))&&(this.C=!0);if(b){var g=this;Xa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Sa(b):"")+")")):(g.F=b,g.O=!0);ya(g)})}else ya(this);this.P.power||(this.L=!0);!c&&this.L&&di(this,this.nb)}else q("Unable to find CPU component")}aa(Yh,n);function Zh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function Ac(a,b,c){var d=b.toLowerCase(),d=hb(b)||hb(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function di(a,b,c){for(var d=ka(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!xa(f)){xa(f,function(){di(a,b,c)});return}}b.call(a,c)}
function ei(a,b){var c=new kd(a,"1.34.0",fi);if(bi(c)&&gi(c)){var d=c.get(hi),e=b?b.get(hi):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Yh.prototype;
k.nb=function(a){void 0===a&&(a=this.b||(this.F?ii:$h));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new kd(this,"1.34.0");if(a==ji)b=!0;else if(a>$h){if(bi(d,this.F)){this.w=new kd(this,"1.34.0",ki);bi(this.w)&&(li(this,d),a=mi,ni(this.w));this.w.set(hi,Va());oi(this.w);var e=this.b&&!this.C;if(a==ii||ia("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=gi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?bi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(fb(pi,""),this.g=null)):this.i(f+": "+g),ni(d),bi(d)?(c=gi(d),e=!0):c=!1))}e&&ei(this,c?d:null)}else a==mi&&d.clear()}else ei(this);delete this.F;delete this.I}e=ka(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=qi(this,g,d,b,c));b=[d,a,c];a!=ji?di(this,this.Cc,b):this.Cc(b)}};
function qi(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=$h,window&&window.location.reload()):a.N=!0,b.va(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(qi(this,this.u,b,c,a),this.u.lb());this.N&&(li(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function li(a,b){if(ia("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.0"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Xa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Rh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new kd(a,"1.34.0"),g=new kd(a,"1.34.0",fi),h=Va();g.set(hi,h);f.set(hi,h);f.set(ri,"1.34.0");f.set(si,window?window.location.href:null);f.set(ti,bb());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ka(a.id),l=0;l<h.length;l++){var p=h[l];p.G.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Hi(a,
a.g,f.toString()),oi(g)&&oi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ii),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.H&&this.H.reset&&(Ea(this,"Resetting "+this.H.type),this.H.reset());for(var a=ka(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Ea(this,"Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?Rh(d,!1,!0):di(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=ia("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rh(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb($h)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(La())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=ai(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=Rh(d,b);b?Hi(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function ai(a,b){var c=a.g;c||((c=eb(pi),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=Ji(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Ji(a,b){a.g=null;b=Xa(Oa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(fb(pi,b.data),a.g=b.data)}catch(d){q(d.message+" ("+c+")")}return a.g}function ci(a){var b=null;a.g&&(b=Oa()+"/api/v1/user?req=load&user="+a.g+"&state="+Ki(a,"1.34.0"));return b}
function Hi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ki(a,"1.34.0");d.data=c;b=Xa(Oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),fb(pi,""),a.g=null)}}
function Ab(a,b,c){a=ka(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}k.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Pc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ka||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",ld(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",nd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=jd(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ka&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var ki="failsafe",fi="validate",hi="timestamp",ri="version",si="url",ti="browser",pi="user",ji=-1,$h=0,ii=1,mi=2,Ii=3;mb(function(){for(var a=qa(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=oa(c),c=qa(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=oa(f),g=new Yh(g,d,!0);pa(g,f);g.L&&di(g,g.nb)}});ob.show.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(ji)}});
ob.exit.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.G.ja&&Rh(c,!(!c.b||c.D),!0)}});function kd(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Ki(a,b,c);ni(this,a.Ad)}k=kd.prototype;k.set=function(a,b){try{this.b[a]=b}catch(c){}};k.get=function(a){return this.b[a]||null};k.data=function(){return this.b};
function bi(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:cb()&&(b=eb(a.key))?(a.g=b,a.u=!0):!1}function gi(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){q(c.message||c),b=!1}return b}function oi(a){var b=!0;if(cb()){var c=JSON.stringify(a.b);fb(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.b?JSON.stringify(this.b):this.g};function ni(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
k.clear=function(a){ni(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 Ki(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}var Li=0;
function Mi(a,b,c,d,e,f){e("Loading "+a+"...");Xa(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Ni(h,a,b,c,d,e,f)})}
function Ni(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ea(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Oi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
O,V],[76,R|O,W],[76,R|O,X],[76,R|O,Y],[76,R|O,Z],[76,R|O,R],[46,R|O,S],[46,R|O,U],[46,R|O,V],[46,R|O,W],[46,R|O,X],[46,R|O,Y],[46,R|O,Z],[46,R|O,R],[18,R|O,S],[18,R|O,U],[18,R|O,V],[18,R|O,W],[18,R|O,X],[18,R|O,Y],[18,R|O,Z],[18,R|O,R],[58],[50,Uh],[34,51],[30,51],[11,51],[51,Uh],[4,R|O,P|Q],[65,Fh],[62],[54],[38,51],[30,51|Gh],[15,51],[7,51],[1,R|O,P|Q],[65,Fh],[57],[50,Vh],[33,51],[48,P|Q,R|O],[10,51],[51,Vh],[74,R|O,P|Q],[65,Fh],[55],[54,Gh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Gh],[67,R|O,P|Q],[65,
Fh],[61],[50,Wh],[37,51],[78,Xh|Ch|O,Wh|O],[14,51],[51,Wh],[6,R|O,P|Q],[65,Fh],[60],[49,Wh],[36,51],[75,Wh|O,Vh|O],[13,51],[7,51|Gh],[77,R|O,P|Q],[65,Fh],[59],[50,Yh],[35,51],[24],[12,51],[51,Yh],[47,R|O,P|Q],[65,Fh],[56],[69,Xh|O,Wh|O],[32,51],[25],[9,51],[7,51|Gh],[19,R|O,P|Q],[65,Fh]],gh=1E3;ob(function(){for(var a=qa(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=oa(c),d=new bg(d);pa(d,c)}});
function Zh(a,b,c){n.call(this,"Computer",a,67108864);this.G.ja=!1;$h(this,b);this.L=Bc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=ai;this.F=null;this.C=this.O=!1;this.U=Bc(this,"url")||"";(Math.random()+.1).toString(36);this.g=bi(this);if(this.u=ma("CPU",this.id)){this.K=ma("Debugger",this.id);this.A=[];for(b=null;b=Bb(this,"Video",b);)this.A.push(b);this.H=new Db({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=ka(this.id);if((this.B=ma("Panel",this.id))&&this.B.ta)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ta=this.B.ta;this.i("PC8080 v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ea&&d.Ea(this,this.H,this.u,this.K);b=null;d=Bc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Bc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=ai),this.b&&(this.I=new ld(this,"1.34.0"),ci(this.I)?
b=null:delete this.I);!b&&this.b&&(b=di(this))&&(this.C=!0);if(b){var g=this;Ya(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Ta(b):"")+")")):(g.F=b,g.O=!0);Aa(g)})}else Aa(this);this.P.power||(this.L=!0);!c&&this.L&&ei(this,this.nb)}else q("Unable to find CPU component")}aa(Zh,n);function $h(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}
function Bc(a,b,c){var d=b.toLowerCase(),d=ib(b)||ib(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ei(a,b,c){for(var d=ka(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ya(f)){ya(f,function(){ei(a,b,c)});return}}b.call(a,c)}
function fi(a,b){var c=new ld(a,"1.34.0",gi);if(ci(c)&&hi(c)){var d=c.get(ii),e=b?b.get(ii):"unknown";d!=e&&(a.aa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Zh.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ji:ai));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new ld(this,"1.34.0");if(a==ki)b=!0;else if(a>ai){if(ci(d,this.F)){this.w=new ld(this,"1.34.0",li);ci(this.w)&&(mi(this,d),a=ni,oi(this.w));this.w.set(ii,Wa());pi(this.w);var e=this.b&&!this.C;if(a==ji||ia("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=hi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ci(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(gb(qi,""),this.g=null)):this.i(f+": "+g),oi(d),ci(d)?(c=hi(d),e=!0):c=!1))}e&&fi(this,c?d:null)}else a==ni&&d.clear()}else fi(this);delete this.F;delete this.I}e=ka(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=ri(this,g,d,b,c));b=[d,a,c];a!=ki?ei(this,this.Cc,b):this.Cc(b)}};
function ri(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=ai,window&&window.location.reload()):a.N=!0,b.va(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(ri(this,this.u,b,c,a),this.u.lb());this.N&&(mi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function mi(a,b){if(ia("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.0"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ya("http://www.pcjs.org/api/v1/report",d,!0)}}
function Sh(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new ld(a,"1.34.0"),g=new ld(a,"1.34.0",gi),h=Wa();g.set(ii,h);f.set(ii,h);f.set(si,"1.34.0");f.set(ti,window?window.location.href:null);f.set(ui,cb());a.u&&a.u.ua&&(c&&a.u.da(),d=a.u.ua(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=ka(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ii(a,
a.g,f.toString()),pi(g)&&pi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ji),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.H&&this.H.reset&&(Fa(this,"Resetting "+this.H.type),this.H.reset());for(var a=ka(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Fa(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=ka(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?Sh(d,!1,!0):ei(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=ia("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sh(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(ai)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(Oa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=bi(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=Sh(d,b);b?Ii(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function bi(a,b){var c=a.g;c||((c=fb(qi),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=Ki(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Ki(a,b){a.g=null;b=Ya(Pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(gb(qi,b.data),a.g=b.data)}catch(d){q(d.message+" ("+c+")")}return a.g}function di(a){var b=null;a.g&&(b=Pa()+"/api/v1/user?req=load&user="+a.g+"&state="+Li(a,"1.34.0"));return b}
function Ii(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Li(a,"1.34.0");d.data=c;b=Ya(Pa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.aa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.aa(c),gb(qi,""),a.g=null)}}
function Bb(a,b,c){a=ka(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Qc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ka||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",md(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",od(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=kd(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ka&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var li="failsafe",gi="validate",ii="timestamp",si="version",ti="url",ui="browser",qi="user",ki=-1,ai=0,ji=1,ni=2,Ji=3;ob(function(){for(var a=qa(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=oa(c),c=qa(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=oa(f),g=new Zh(g,d,!0);pa(g,f);g.L&&ei(g,g.nb)}});pb.show.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(ki)}});
pb.exit.push(function(){for(var a=qa(document,"pc8080","computer"),b=0;b<a.length;b++){var c=oa(a[b]);(c=ma("Computer",c.id))&&c.G.ja&&Sh(c,!(!c.b||c.D),!0)}});function ld(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Li(a,b,c);oi(this,a.Ad)}l=ld.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};l.data=function(){return this.b};
function ci(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:db()&&(b=fb(a.key))?(a.g=b,a.u=!0):!1}function hi(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){q(c.message||c),b=!1}return b}function pi(a){var b=!0;if(db()){var c=JSON.stringify(a.b);gb(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function oi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
l.clear=function(a){oi(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 Li(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}var Mi=0;
function Ni(a,b,c,d,e,f){e("Loading "+a+"...");Ya(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Oi(h,a,b,c,d,e,f)})}
function Oi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ea(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Pi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function Oi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Xa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Oi(a,b,c)}})}else c(a,null)}
function Pi(a,b,c,d){function e(a){if(void 0===h){var b=g&&qa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Pa(a))}function f(a){e("Error: "+a);l&&(--Li||rb(!0));l=!1}var g,h,l=!0;Li++;fa[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.0/components.xsl");p=function(d,h){h?Mi(c,null,null,!1,e,function(d,l){l?(ea(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--Li||rb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Li||rb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Mi(b,a,d,!0,e,p):Ni(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return l}window.embedPC8080=function(a,b,c,d){rb(!1);return Pi(a,b,c,d)};window.findMachineComponent=function(a,b){return ma(b,a+".machine")};
window.processMachineScript=function(a,b,c){b=!1;if("string"==typeof c){b=!0;for(var d=c.length,e=[],f=[],g="",h=null,l=0;l<d;l++){var p=c[l];if('"'==p||"'"==p)h&&p!=h?g+=p:(h?h=null:h=p,g&&(f.push(g),g=""));else{if(!h){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){g&&(f.push(g),g="");";"==p&&f.length&&(e.push(f),f=[]);continue}}g+=p}}g&&f.push(g);f.length&&e.push(f);ra(a+".machine",e,0)||(b=!1)}return b};window.enableEvents=rb;window.sendEvent=tb;})();
function Pi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ya(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],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);Pi(a,b,c)}})}else c(a,null)}
function Qi(a,b,c,d){function e(a){if(void 0===h){var b=g&&qa(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=Qa(a))}function f(a){e("Error: "+a);k&&(--Mi||sb(!0));k=!1}var g,h,k=!0;Mi++;fa[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.0/components.xsl");p=function(d,h){h?Ni(c,null,null,!1,e,function(d,k){k?(ea(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Mi||sb(!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),--Mi||sb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ni(b,a,d,!0,e,p):Oi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){sb(!1);return Qi(a,b,c,d)};window.findMachineComponent=function(a,b){return ma(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!sa[a]){for(var c=!0,d=sa,e=a,f=b.length,g=[],h=[],k="",p=null,u=0;u<f;u++){var v=b[u];if('"'==v||"'"==v)p&&v!=p?k+=v:(p?p=null:p=v,k&&(h.push(k),k=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;ra(a)||(c=!1)}return c};window.enableEvents=sb;window.sendEvent=vb;})();

View file

@ -35,185 +35,186 @@ Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:1
function p(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Tb=b.comment;this.Uc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Ya=this.id:(this.Ka=this.id.substr(0,a),this.Ya=this.id.substr(a+1));this.i={ready:!1,ab:!1,nb:!1,U:!1,error:!1};this.eb=null;this.i.error=!1;this.J=this.m=this.u=this.D=this.pa=null;r.push(this)}function ba(a,b,c){ca[a]&&b&&(ca[a][b]=c)}function ea(){return Date.now()||+new Date}
function fa(a,b,c){b||t((c?c+": ":"")+a)}function t(a){window&&window.alert(a)}function ga(a){var b=!1;window&&(b=window.confirm(a));return b}function ha(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<r.length;b++){var d=r[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ia(a){if(void 0!==a){var b;for(b=0;b<r.length;b++)if(r[b].id===a)return r[b]}return null}
function ja(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<r.length;d++)if(c)c==r[d]&&(c=null);else if(!(a!=r[d].type||b&&r[d].id.indexOf(b)))return r[d]}return null}function u(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function ka(a,b){b=x(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pc8080-binding":(g=u(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}
function x(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function la(a,b,c){for(var d=!0;c<b.length;){var e=b[c],f=e[0],g=null;0<=ma.indexOf(f)&&(g=function(c){return function(){la(a,b,c)}}(c+1));var h=na[f];if(h)if(!g)d=h(e[1],e[2],e[3]);else{if(!h(g,e[1],e[2],e[3]))break}else{var d=!1,m=ja(e[1],a);if(m)if(h=oa[f])d=h(m,e[2],e[3]);else if(h=m.exports)if(h=h[f])if(d=!0,!g)d=h.call(m,e[2],e[3]);else if(!h.call(m,g,e[2],e[3]))break}if(!d){t("Script error ("+f+")");break}c++}return d}k=p.prototype;
function ka(a,b){b=y(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pc8080-binding":(g=u(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function la(a){for(var b=!0,c=ma[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=na.indexOf(e)&&(f=function(){return function(){la(a)}}());var g=oa[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=ja(d[1],a);if(h)if(g=pa[e])b=g(h,d[2],d[3]);else{var m=h.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){t("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ma[a];return b}k=p.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.S=function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.pa=this.w[b]=c,c.value="",this.aa=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.aa(a,this.Ya)}),!0;default:return!1}};k.log=function(){};k.aa=function(){};
k.status=function(a){this.aa(this.Ya+": "+a)};k.G=function(a,b,c){fa(a,b,c||this.type)};function pa(a,b){b&&(a.i.ready?b():a.eb=b);return a.i.ready}function z(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.eb;a.eb=null;b&&b()}}function qa(a,b){if(a.i.nb)return a.i.ab=!1,a.i.nb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.ab=b;return a.i.ab}k.ca=function(){return this.i.U=!0};k.ba=function(a,b){b&&(this.i.U=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var ca=window?window.PCjs.Machines:{},r=window?window.PCjs.Components:[],ma=["hold","sleep","wait"],na={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},oa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
k.status=function(a){this.aa(this.Ya+": "+a)};k.G=function(a,b,c){fa(a,b,c||this.type)};function qa(a,b){b&&(a.i.ready?b():a.eb=b);return a.i.ready}function A(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.eb;a.eb=null;b&&b()}}function ra(a,b){if(a.i.nb)return a.i.ab=!1,a.i.nb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.ab=b;return a.i.ab}k.ca=function(){return this.i.U=!0};k.ba=function(a,b){b&&(this.i.U=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ca=window?window.PCjs.Machines:{},r=window?window.PCjs.Components:[],ma=window?window.PCjs.Commands:{},na=["hold","sleep","wait"],oa={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},pa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
function ra(a){var b=16,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 A(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 sa(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 ta(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ua(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return ya[a]})}function za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var ya={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",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 Ba(){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 Ca(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
function sa(a){var b=16,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 B(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 ta(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 ua(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function va(){var a=wa();return-1!==a.indexOf("pcjs.org",a.length-8)}function ya(a){return a.replace(/[&<>"']/g,function(a){return za[a]})}function Aa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var za={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ba={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",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 Ca(){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 Da(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var m="",q;for(q in b)b.hasOwnProperty(q)&&(m&&(m+="&"),m+=q+"="+encodeURIComponent(b[q]));m=m.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}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 Da(a,b){var c,d={W:null,sa:null,Aa:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.ta=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&
function Ea(a,b){var c,d={W:null,sa:null,Aa:null,ta:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.ta=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&
255,d.W[f++]=e[c]>>8&255,d.W[f++]=e[c]>>16&255,d.W[f++]=e[c]>>24&255;else d.W=g;d.sa=g.symbols;d.W.length?1==d.W.length&&(t(d.W[0]),d=null):(t("Empty resource: "+a),d=null)}catch(h){t("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){t("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.W=e)}return d}
function va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ea(){if(null==Fa){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}Fa=a}return Fa}function Ga(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ha(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ia(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ja(a){if(!Ka){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ka=c}return Ka[a]}function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Na.init.push(a)}
function Oa(a){if(Pa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){fa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Qa(a){!Pa&&a?(Pa=!0,Ra&&Sa("init"),Ta&&Sa("show")):Pa=a}function Sa(a){Na[a]&&Oa(Na[a])}var Ka=null,Na={init:[],show:[],exit:[]},Ra=!1,Ta=!1,Pa=!0,Fa=null;La("onload",function(){Ra=!0;Oa(Na.init)});La("onpageshow",function(){Ta=!0;Oa(Na.show)});
La(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Oa(Na.exit)});
var Ua="undefined"!==typeof ArrayBuffer,Wa=[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];function Xa(a){p.call(this,"Panel",a)}l(Xa,p);Xa.prototype.S=function(a,b,c,d){return this.D&&this.D.S(a,b,c,d)||this.m&&this.m.S(a,b,c,d)||this.h&&this.h.S(a,b,c,d)?!0:p.prototype.S.call(this,a,b,c,d)};Xa.prototype.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;this.h=Ya(a,"Keyboard")};Xa.prototype.ca=function(a,b){b||Za();return!0};Xa.prototype.ba=function(){return!0};
function Za(){for(var a=!1,b=x(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=u(d),f=ia(e.id);f||(a=!0,f=new Xa(e));ka(f,d);a&&z(f)}}Ma(Za);
function $a(a,b,c){p.call(this,"Bus",a);this.m=b;this.J=c;this.s=a.busWidth||16;this.v=Math.pow(2,this.s);this.g=this.v-1|0;this.b=(this.s>>1)+2;10>this.b&&(this.b=10);15<this.b&&(this.b=15);this.c=1<<this.b;this.A=this.c>>2;this.f=this.c-1;this.h=this.v/this.c|0;this.o=this.h-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new C;ab(a,this.J);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;z(this)}l($a,p);$a.prototype.reset=function(){};$a.prototype.ca=function(a,b){b||this.reset();return!0};
function bb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],m=g*a.c,q=a.c-(e-m);q>f&&(q=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ra)return h.ib+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.ib){q=h.size-(e-m);q>f&&(q=f);h.ib=e-h.Ra+q;e=m+a.c;f-=q;g++;continue}}return cb(db,e,f)}e=new C(e,q,a.c,d);ab(e,a.J,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+eb[d]+" at "+A(b,4,!0)),!0):cb(fb,b,c)}function gb(a,b){return a.a[(b&a.g)>>>a.b].hb(b&a.f,b)}
function hb(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Ed(c,b):a.a[d++].Ua(c,b)|a.a[d&a.o].Ua(0,b+1)<<8}function ib(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function jb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Sd(d,c&65535,b):(a.a[e++].Va(d,c&255,b),a.a[e&a.o].Va(0,c>>8&255,b+1))}
function kb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.ja||e.Zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var q=e[g],w=g+1;w<e.length&&e[w]===q;)w++;m[h++]=w-g;m[h++]=q;g=w}m.length<e.length&&(e=m)}c[f]=e}}return c}function lb(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 m=+e+d;m<=g;m++)void 0!==f.j[m]?t("Input port "+A(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
function nb(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 m=+e+d;m<=g;m++)void 0!==f.l[m]?t("Output port "+A(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function cb(a,b,c){t("Memory block error ("+a+": "+A(b)+","+A(c)+")");return!1}var db=1,fb=2,ob;if(Ua){var pb=new ArrayBuffer(2);(new DataView(pb)).setUint16(0,256,!0);ob=256===(new Uint16Array(pb))[0]}else ob=!1;var qb=ob;
function C(a,b,c,d){this.id=rb+=2;this.a=null;this.Ra=a;this.ib=b;this.size=c||0;this.type=d||sb;this.w=d==tb;ab(this);this.ja=this.Zb=!1;if(c)if(Ua)this.m=new ArrayBuffer(c),this.u=new DataView(this.m,0,c),this.b=new Uint8Array(this.m,0,c),this.g=new Uint16Array(this.m,0,c>>1),this.a=new Int32Array(this.m,0,c>>2),ub(this,qb?vb:wb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ub(this,xb)}else ub(this)}k=C.prototype;
k.save=function(){var a,b;if(Ua)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Ua)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ja=!0}return!1};function ub(a,b){b||(b=yb);zb(a,b,void 0);Ab(a,b,void 0)}function zb(a,b,c){c&&a.c||(a.Ua=b[0]||a.cc,a.Ed=b[2]||a.dc);if(c||void 0===c)a.hb=b[0]||a.cc,a.ec=b[2]||a.dc}
function Ab(a,b,c){c&&a.f||(a.Va=!a.w&&b[1]||a.hc,a.Sd=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.h=b[3]||a.ic}function ab(a,b,c){a.J=b;a.c=a.f=0;c&&((a.c=c.c)&&zb(a,Bb,!1),(a.f=c.f)&&Ab(a,Bb,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ua(a++,b++)|this.Ua(a,b)<<8};k.ic=function(a,b,c){this.Va(a++,b&255,c++);this.Va(a,b>>8,c)};k.Dd=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
function wa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Fa(){if(null==Ga){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}Ga=a}return Ga}function Ha(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ia(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ja(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ka(a){if(!La){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}La=c}return La[a]}function Ma(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Na(a){Oa.init.push(a)}
function Pa(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){fa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ra(a){!Qa&&a?(Qa=!0,Sa&&Ta("init"),Ua&&Ta("show")):Qa=a}function Ta(a){Oa[a]&&Pa(Oa[a])}var La=null,Oa={init:[],show:[],exit:[]},Sa=!1,Ua=!1,Qa=!0,Ga=null;Ma("onload",function(){Sa=!0;Pa(Oa.init)});Ma("onpageshow",function(){Ua=!0;Pa(Oa.show)});
Ma(Ja("Opera")||Ja("iOS")?"onunload":"onbeforeunload",function(){Pa(Oa.exit)});
var Wa="undefined"!==typeof ArrayBuffer,Xa=[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];function Ya(a){p.call(this,"Panel",a)}l(Ya,p);Ya.prototype.S=function(a,b,c,d){return this.D&&this.D.S(a,b,c,d)||this.m&&this.m.S(a,b,c,d)||this.h&&this.h.S(a,b,c,d)?!0:p.prototype.S.call(this,a,b,c,d)};Ya.prototype.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;this.h=Za(a,"Keyboard")};Ya.prototype.ca=function(a,b){b||$a();return!0};Ya.prototype.ba=function(){return!0};
function $a(){for(var a=!1,b=y(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=u(d),f=ia(e.id);f||(a=!0,f=new Ya(e));ka(f,d);a&&A(f)}}Na($a);
function ab(a,b,c){p.call(this,"Bus",a);this.m=b;this.J=c;this.s=a.busWidth||16;this.v=Math.pow(2,this.s);this.g=this.v-1|0;this.b=(this.s>>1)+2;10>this.b&&(this.b=10);15<this.b&&(this.b=15);this.c=1<<this.b;this.A=this.c>>2;this.f=this.c-1;this.h=this.v/this.c|0;this.o=this.h-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new C;bb(a,this.J);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;A(this)}l(ab,p);ab.prototype.reset=function(){};ab.prototype.ca=function(a,b){b||this.reset();return!0};
function cb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],m=g*a.c,q=a.c-(e-m);q>f&&(q=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ra)return h.ib+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.ib){q=h.size-(e-m);q>f&&(q=f);h.ib=e-h.Ra+q;e=m+a.c;f-=q;g++;continue}}return db(eb,e,f)}e=new C(e,q,a.c,d);bb(e,a.J,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+fb[d]+" at "+B(b,4,!0)),!0):db(gb,b,c)}function hb(a,b){return a.a[(b&a.g)>>>a.b].hb(b&a.f,b)}
function ib(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Ed(c,b):a.a[d++].Ua(c,b)|a.a[d&a.o].Ua(0,b+1)<<8}function jb(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function kb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Sd(d,c&65535,b):(a.a[e++].Va(d,c&255,b),a.a[e&a.o].Va(0,c>>8&255,b+1))}
function lb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.ja||e.Zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var q=e[g],x=g+1;x<e.length&&e[x]===q;)x++;m[h++]=x-g;m[h++]=q;g=x}m.length<e.length&&(e=m)}c[f]=e}}return c}function mb(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 m=+e+d;m<=g;m++)void 0!==f.j[m]?t("Input port "+B(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
function ob(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 m=+e+d;m<=g;m++)void 0!==f.l[m]?t("Output port "+B(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function db(a,b,c){t("Memory block error ("+a+": "+B(b)+","+B(c)+")");return!1}var eb=1,gb=2,pb;if(Wa){var qb=new ArrayBuffer(2);(new DataView(qb)).setUint16(0,256,!0);pb=256===(new Uint16Array(qb))[0]}else pb=!1;var rb=pb;
function C(a,b,c,d){this.id=sb+=2;this.a=null;this.Ra=a;this.ib=b;this.size=c||0;this.type=d||tb;this.w=d==ub;bb(this);this.ja=this.Zb=!1;if(c)if(Wa)this.m=new ArrayBuffer(c),this.u=new DataView(this.m,0,c),this.b=new Uint8Array(this.m,0,c),this.g=new Uint16Array(this.m,0,c>>1),this.a=new Int32Array(this.m,0,c>>2),vb(this,rb?wb:xb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;vb(this,yb)}else vb(this)}k=C.prototype;
k.save=function(){var a,b;if(Wa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Wa)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ja=!0}return!1};function vb(a,b){b||(b=zb);Ab(a,b,void 0);Bb(a,b,void 0)}function Ab(a,b,c){c&&a.c||(a.Ua=b[0]||a.cc,a.Ed=b[2]||a.dc);if(c||void 0===c)a.hb=b[0]||a.cc,a.ec=b[2]||a.dc}
function Bb(a,b,c){c&&a.f||(a.Va=!a.w&&b[1]||a.hc,a.Sd=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.h=b[3]||a.ic}function bb(a,b,c){a.J=b;a.c=a.f=0;c&&((a.c=c.c)&&Ab(a,Cb,!1),(a.f=c.f)&&Bb(a,Cb,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ua(a++,b++)|this.Ua(a,b)<<8};k.ic=function(a,b,c){this.Va(a++,b&255,c++);this.Va(a,b>>8,c)};k.Dd=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
k.Id=function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8};k.Rd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ja=!0};k.Wd=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ja=!0};k.Bd=function(a,b){return this.hb(a,b)};k.Gd=function(a,b){return this.ec(a,b)};k.Pd=function(a,b,c){this.w||this.gc(a,b,c)};
k.Ud=function(a,b,c){this.w||this.h(a,b,c)};k.Ad=function(a){return this.b[a]};k.Cd=function(a){return this.b[a]};k.Fd=function(a){return this.u.getUint16(a,!0)};k.Hd=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Od=function(a,b){this.b[a]=b;this.ja=!0};k.Qd=function(a,b){this.b[a]=b;this.ja=!0};k.Td=function(a,b){this.u.setUint16(a,b,!0);this.ja=!0};k.Vd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ja=!0};
var sb=0,tb=2,eb=["NONE","RAM","ROM","VID","H/W"],rb=0,yb=[],xb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd],Bb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud];if(Ua)var wb=[C.prototype.Ad,C.prototype.Od,C.prototype.Fd,C.prototype.Td],vb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];
function Cb(a,b){p.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Ea=Math.round(this.na/1E4)/100;this.X=this.Ea*this.O;this.i.ka=!1;this.i.fc=!1;this.i.Sa=a.autoStart;this.i.Xb=!1;this.i.bb=!1;this.wa=this.ea=0;this.xa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.mb=this.jb.bind(this);z(this)}l(Cb,p);k=Cb.prototype;
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.J=d;for(b=0;b<Db.length;b++)(c=this.w[Db[b]])&&this.D.S(null,Db[b],c);this.N=Ya(a,"ChipSet");a=Eb(a,"autoStart");null!=a&&(this.i.Sa="true"==a?!0:"false"==a?!1:!!a);z(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){Fb(this);if(!this.restore(a))return!1;Gb(this)}else this.reset();this.aa("No debugger detected")}Hb(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Sa=function(){return this.i.Sa||void 0===this.w.run?(this.jb(),!0):!1};k.$b=function(){return 0};function Gb(a){void 0===a.xa&&(a.xa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.bb=0<=a.xa&&0<a.ha;a.i.bb&&(a.wa=0,a.ea=a.xa-a.I)}
k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.U)a=!0;else{var b=null,c,h=ha(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.U);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.eb?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Ib(d):d.jb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Jb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Kb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Ea);a.Pa=Math.round(1E3/Lb);a.ya=Math.floor(a.na/Lb*c);b||(a.ma=a.ya);a.Ga=0}function Mb(a){return a.I+a.P+a.da-a.a}function Fb(a){a.R=0;a.Qa=0;a.I=a.P=a.da=a.a=0;Gb(a);Jb(a,1)}
function Jb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Ea*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&Nb(a.D)}a.I+=a.P;a.P=0;a.L=ea();a.V=0;Kb(a)}function Ob(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Pb(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c*=a.na*a.O/1E3,a.H[b][0]=c+Qb(a))}function Qb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.jb=function(a){if(qa(this,!0)){if(!this.i.ka){Jb(this);this.D&&this.D.start(this.L,Mb(this));this.i.ka=!0;this.i.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(Rb(this.D,!0),a&&Nb(this.D,!0))}this.Ga>=this.na&&Kb(this,!0);this.oa=0;this.va=ea();this.V&&(a=this.va-this.V,a>this.Pa&&(this.L+=a,this.L>this.va&&(this.L=this.va)));try{do{for(var c,d=this.i.bb?1:this.ya,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.vb(c);c=Qb(this,!0);
this.oa+=c;this.P+=c;a=c;this.i.bb&&(b=!1,this.wa=this.wa+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Mb(this)&&(this.ha=this.la=-1,Gb(this),Ib(this),b=!0),b&&this.aa(Mb(this)+" cycles: checksum="+A(this.wa)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.ya;++this.Qa>=Sb&&(this.D&&Rb(this.D),this.Qa=0);break}}while(this.i.ka)}catch(m){Ib(this);Hb(this);this.D&&this.D.stop(ea(),
Mb(this));qa(this,!1);c=m.stack||m.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.mb;this.V=ea();e=this.Pa;this.oa&&(e=Math.round(e*this.oa/this.ya));e-=this.V-this.va;if(f=this.V-this.L)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Jb(this));if(0>e||this.R<this.X)-1E3>e&&(this.L-=e),e=0;this.Ga+=this.oa;this.V+=e;c(d,e)}else Hb(this),this.D&&this.D.stop(ea(),Mb(this))};k.vb=function(){return 0};
function Ib(a){a.i.ab&&(a.i.nb=!0);Qb(a);a.I+=a.P;a.P=0;if(a.i.ka){a.i.ka=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.i.complete=void 0}function Hb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)Tb(b.g[c],void 0);Rb(a.D,void 0)}}var Lb=30,Sb=15,Db=["power","reset"];function Ub(a){Cb.call(this,a,1E6);this.Ma=Vb;Fb(this);this.i.complete=this.i.Vc=!1;this.Oa=0;this.ra=[];this.Na=0;Wb(this)}l(Ub,Cb);function Xb(a,b){a.ra.push(b)}k=Ub.prototype;
k.reset=function(){this.i.ka&&Ib(this);Wb(this);Fb(this);this.i.error=!1;Cb.prototype.reset.call(this)};function Wb(a){a.b=0;a.g=0;a.c=0;a.h=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.Na);Zb(a,0);a.C=0}function $b(a,b){a.Na=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.h+this.f+this.j+this.l|0;return a=a+this.A+this.s+ac(this)|0};
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.h,this.f,this.j,this.l,this.A,this.s,ac(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,kb(this.u));return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.h=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);Zb(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Jb(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.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.S=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.w[b]=c;this.Oa++;a=!0;break;default:a=Cb.prototype.S.call(this,a,b,c)}return a};function bc(a){return a.g<<8|a.c}function cc(a,b){a.g=b>>8&255;a.c=b&255}function dc(a){return a.h<<8|a.f}function ec(a,b){a.h=b>>8&255;a.f=b&255}function G(a){return a.j<<8|a.l}
function H(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function I(a){return a.o&256?1:0}function fc(a,b){a.o=a.o&255|b}function gc(a){return Wa[a.v&255]?4:0}function ac(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|gc(a)|I(a)}function Zb(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function hc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function ic(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function jc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function kc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function lc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function mc(a,b){return a.v=a.o=a.B=a.b|b}function J(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function nc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function oc(a,b){return a.v=a.o=a.B=a.b^b}
function K(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ua(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Va(b&a.f,c&255,b)}function N(a){var b=K(a,a.s);D(a,a.s+1);return b}function O(a){var b=hb(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=hb(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;jb(a.u,a.A,b)}function pc(a){if(a.a&&a.C&255&&a.F&512){for(var b=0;8>b&&!(a.C&1<<b);b++);a.C&=~(0>b?255:1<<b);a.F&=-513;a.C&=-257;a.Ma[199|b<<3].call(a)}return a.C&256?(Qb(a),!1):!0}
function qc(a,b){a.C|=1<<b;a.F&512&&Qb(a)}function R(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.i.error=!0,a.G("Value for "+b+" is invalid"),Ib(a)),c=!a.i.ka||a.i.Xb?A(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.vb=function(a){this.i.complete=!0;this.i.Vc=!1;this.i.fc=!1;this.da=this.a=a;if(pc(this)){do this.Ma[N(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1};
Ma(function(){for(var a=x(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ub(d);ka(d,c)}});function rc(){this.a-=4}function sc(){D(this,O(this));this.a-=10}function tc(){D(this,P(this));this.a-=10}function uc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
var Vb=[rc,function(){cc(this,O(this));this.a-=10},function(){M(this,bc(this),this.b);this.a-=7},function(){cc(this,bc(this)+1);this.a-=5},function(){this.g=lc(this,this.g);this.a-=5},function(){this.g=kc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;fc(this,a&256);this.a-=4},rc,function(){var a;H(this,a=G(this)+bc(this));fc(this,a>>8&256);this.a-=10},function(){this.b=K(this,bc(this));this.a-=7},function(){cc(this,bc(this)-1);this.a-=5},
function(){this.c=lc(this,this.c);this.a-=5},function(){this.c=kc(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;fc(this,a);this.a-=4},rc,function(){ec(this,O(this));this.a-=10},function(){M(this,dc(this),this.b);this.a-=7},function(){ec(this,dc(this)+1);this.a-=5},function(){this.h=lc(this,this.h);this.a-=5},function(){this.h=kc(this,this.h);this.a-=5},function(){this.h=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|I(this);
fc(this,a&256);this.a-=4},rc,function(){var a;H(this,a=G(this)+dc(this));fc(this,a>>8&256);this.a-=10},function(){this.b=K(this,dc(this));this.a-=7},function(){ec(this,dc(this)-1);this.a-=5},function(){this.f=lc(this,this.f);this.a-=5},function(){this.f=kc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(I(this)<<8|this.b)>>1;fc(this,a&256);this.a-=4},rc,function(){H(this,O(this));this.a-=10},function(){var a=O(this);jb(this.u,a,G(this));this.a-=16},
function(){H(this,G(this)+1);this.a-=5},function(){this.j=lc(this,this.j);this.a-=5},function(){this.j=kc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=I(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=hc(this,a);fc(this,b?256:0);this.a-=4},rc,function(){var a;H(this,a=G(this)+G(this));fc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=hb(this.u,a);H(this,a);this.a-=16},function(){H(this,G(this)-1);this.a-=5},function(){this.l=
lc(this,this.l);this.a-=5},function(){this.l=kc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},rc,function(){this.A=O(this)&65535;this.a-=10},function(){M(this,O(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=G(this);M(this,a,lc(this,K(this,a)));this.a-=10},function(){var a=G(this);M(this,a,kc(this,K(this,a)));this.a-=10},function(){M(this,G(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},rc,
function(){var a;H(this,a=G(this)+this.A);fc(this,a>>8&256);this.a-=10},function(){this.b=K(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=lc(this,this.b);this.a-=5},function(){this.b=kc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){fc(this,I(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=
var tb=0,ub=2,fb=["NONE","RAM","ROM","VID","H/W"],sb=0,zb=[],yb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd],Cb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud];if(Wa)var xb=[C.prototype.Ad,C.prototype.Od,C.prototype.Fd,C.prototype.Td],wb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];
function Db(a,b){p.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Ea=Math.round(this.na/1E4)/100;this.X=this.Ea*this.O;this.i.ka=!1;this.i.fc=!1;this.i.Sa=a.autoStart;this.i.Xb=!1;this.i.bb=!1;this.wa=this.ea=0;this.xa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.mb=this.jb.bind(this);A(this)}l(Db,p);k=Db.prototype;
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.J=d;for(b=0;b<Eb.length;b++)(c=this.w[Eb[b]])&&this.D.S(null,Eb[b],c);this.N=Za(a,"ChipSet");a=Fb(a,"autoStart");null!=a&&(this.i.Sa="true"==a?!0:"false"==a?!1:!!a);A(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){Gb(this);if(!this.restore(a))return!1;Hb(this)}else this.reset();this.aa("No debugger detected")}Ib(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Sa=function(){return this.i.Sa||void 0===this.w.run?(this.jb(),!0):!1};k.$b=function(){return 0};function Hb(a){void 0===a.xa&&(a.xa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.bb=0<=a.xa&&0<a.ha;a.i.bb&&(a.wa=0,a.ea=a.xa-a.I)}
k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.U)a=!0;else{var b=null,c,h=ha(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.U);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.eb?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Jb(d):d.jb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Kb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Lb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Ea);a.Pa=Math.round(1E3/Mb);a.ya=Math.floor(a.na/Mb*c);b||(a.ma=a.ya);a.Ga=0}function Nb(a){return a.I+a.P+a.da-a.a}function Gb(a){a.R=0;a.Qa=0;a.I=a.P=a.da=a.a=0;Hb(a);Kb(a,1)}
function Kb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Ea*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&Ob(a.D)}a.I+=a.P;a.P=0;a.L=ea();a.V=0;Lb(a)}function Pb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Qb(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c*=a.na*a.O/1E3,a.H[b][0]=c+Rb(a))}function Rb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.jb=function(a){if(ra(this,!0)){if(!this.i.ka){Kb(this);this.D&&this.D.start(this.L,Nb(this));this.i.ka=!0;this.i.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(Sb(this.D,!0),a&&Ob(this.D,!0))}this.Ga>=this.na&&Lb(this,!0);this.oa=0;this.va=ea();this.V&&(a=this.va-this.V,a>this.Pa&&(this.L+=a,this.L>this.va&&(this.L=this.va)));try{do{for(var c,d=this.i.bb?1:this.ya,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.vb(c);c=Rb(this,!0);
this.oa+=c;this.P+=c;a=c;this.i.bb&&(b=!1,this.wa=this.wa+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Nb(this)&&(this.ha=this.la=-1,Hb(this),Jb(this),b=!0),b&&this.aa(Nb(this)+" cycles: checksum="+B(this.wa)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.ya;++this.Qa>=Tb&&(this.D&&Sb(this.D),this.Qa=0);break}}while(this.i.ka)}catch(m){Jb(this);Ib(this);this.D&&this.D.stop(ea(),
Nb(this));ra(this,!1);c=m.stack||m.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.mb;this.V=ea();e=this.Pa;this.oa&&(e=Math.round(e*this.oa/this.ya));e-=this.V-this.va;if(f=this.V-this.L)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Kb(this));if(0>e||this.R<this.X)-1E3>e&&(this.L-=e),e=0;this.Ga+=this.oa;this.V+=e;c(d,e)}else Ib(this),this.D&&this.D.stop(ea(),Nb(this))};k.vb=function(){return 0};
function Jb(a){a.i.ab&&(a.i.nb=!0);Rb(a);a.I+=a.P;a.P=0;if(a.i.ka){a.i.ka=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.i.complete=void 0}function Ib(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)Ub(b.g[c],void 0);Sb(a.D,void 0)}}var Mb=30,Tb=15,Eb=["power","reset"];function Vb(a){Db.call(this,a,1E6);this.Ma=Wb;Gb(this);this.i.complete=this.i.Vc=!1;this.Oa=0;this.ra=[];this.Na=0;Xb(this)}l(Vb,Db);function Yb(a,b){a.ra.push(b)}k=Vb.prototype;
k.reset=function(){this.i.ka&&Jb(this);Xb(this);Gb(this);this.i.error=!1;Db.prototype.reset.call(this)};function Xb(a){a.b=0;a.g=0;a.c=0;a.h=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.Na);$b(a,0);a.C=0}function ac(a,b){a.Na=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.h+this.f+this.j+this.l|0;return a=a+this.A+this.s+bc(this)|0};
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.h,this.f,this.j,this.l,this.A,this.s,bc(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,lb(this.u));return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.h=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);$b(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Kb(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.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.S=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.w[b]=c;this.Oa++;a=!0;break;default:a=Db.prototype.S.call(this,a,b,c)}return a};function cc(a){return a.g<<8|a.c}function dc(a,b){a.g=b>>8&255;a.c=b&255}function ec(a){return a.h<<8|a.f}function fc(a,b){a.h=b>>8&255;a.f=b&255}function G(a){return a.j<<8|a.l}
function H(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function I(a){return a.o&256?1:0}function gc(a,b){a.o=a.o&255|b}function hc(a){return Xa[a.v&255]?4:0}function bc(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|hc(a)|I(a)}function $b(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function ic(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function jc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function kc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function lc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function mc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function nc(a,b){return a.v=a.o=a.B=a.b|b}function J(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function oc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function pc(a,b){return a.v=a.o=a.B=a.b^b}
function K(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ua(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Va(b&a.f,c&255,b)}function N(a){var b=K(a,a.s);D(a,a.s+1);return b}function O(a){var b=ib(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=ib(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;kb(a.u,a.A,b)}function qc(a){if(a.a&&a.C&255&&a.F&512){for(var b=0;8>b&&!(a.C&1<<b);b++);a.C&=~(0>b?255:1<<b);a.F&=-513;a.C&=-257;a.Ma[199|b<<3].call(a)}return a.C&256?(Rb(a),!1):!0}
function rc(a,b){a.C|=1<<b;a.F&512&&Rb(a)}function R(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.i.error=!0,a.G("Value for "+b+" is invalid"),Jb(a)),c=!a.i.ka||a.i.Xb?B(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.vb=function(a){this.i.complete=!0;this.i.Vc=!1;this.i.fc=!1;this.da=this.a=a;if(qc(this)){do this.Ma[N(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1};
Na(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Vb(d);ka(d,c)}});function sc(){this.a-=4}function tc(){D(this,O(this));this.a-=10}function uc(){D(this,P(this));this.a-=10}function vc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
var Wb=[sc,function(){dc(this,O(this));this.a-=10},function(){M(this,cc(this),this.b);this.a-=7},function(){dc(this,cc(this)+1);this.a-=5},function(){this.g=mc(this,this.g);this.a-=5},function(){this.g=lc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;gc(this,a&256);this.a-=4},sc,function(){var a;H(this,a=G(this)+cc(this));gc(this,a>>8&256);this.a-=10},function(){this.b=K(this,cc(this));this.a-=7},function(){dc(this,cc(this)-1);this.a-=5},
function(){this.c=mc(this,this.c);this.a-=5},function(){this.c=lc(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;gc(this,a);this.a-=4},sc,function(){fc(this,O(this));this.a-=10},function(){M(this,ec(this),this.b);this.a-=7},function(){fc(this,ec(this)+1);this.a-=5},function(){this.h=mc(this,this.h);this.a-=5},function(){this.h=lc(this,this.h);this.a-=5},function(){this.h=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|I(this);
gc(this,a&256);this.a-=4},sc,function(){var a;H(this,a=G(this)+ec(this));gc(this,a>>8&256);this.a-=10},function(){this.b=K(this,ec(this));this.a-=7},function(){fc(this,ec(this)-1);this.a-=5},function(){this.f=mc(this,this.f);this.a-=5},function(){this.f=lc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(I(this)<<8|this.b)>>1;gc(this,a&256);this.a-=4},sc,function(){H(this,O(this));this.a-=10},function(){var a=O(this);kb(this.u,a,G(this));this.a-=16},
function(){H(this,G(this)+1);this.a-=5},function(){this.j=mc(this,this.j);this.a-=5},function(){this.j=lc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=I(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=ic(this,a);gc(this,b?256:0);this.a-=4},sc,function(){var a;H(this,a=G(this)+G(this));gc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=ib(this.u,a);H(this,a);this.a-=16},function(){H(this,G(this)-1);this.a-=5},function(){this.l=
mc(this,this.l);this.a-=5},function(){this.l=lc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},sc,function(){this.A=O(this)&65535;this.a-=10},function(){M(this,O(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=G(this);M(this,a,mc(this,K(this,a)));this.a-=10},function(){var a=G(this);M(this,a,lc(this,K(this,a)));this.a-=10},function(){M(this,G(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},sc,
function(){var a;H(this,a=G(this)+this.A);gc(this,a>>8&256);this.a-=10},function(){this.b=K(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=mc(this,this.b);this.a-=5},function(){this.b=lc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){gc(this,I(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=
this.l;this.a-=5},function(){this.g=K(this,G(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.a-=5},function(){this.c=this.h;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.j;this.a-=5},function(){this.c=this.l;this.a-=5},function(){this.c=K(this,G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.c;this.a-=5},function(){this.a-=5},function(){this.h=this.f;
this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=K(this,G(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.h;this.a-=5},function(){this.a-=5},function(){this.f=this.j;this.a-=5},function(){this.f=this.l;this.a-=5},function(){this.f=K(this,G(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=
this.c;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=K(this,G(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.c;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.f;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=K(this,G(this));this.a-=7},function(){this.l=this.b;
this.a-=5},function(){M(this,G(this),this.g);this.a-=7},function(){M(this,G(this),this.c);this.a-=7},function(){M(this,G(this),this.h);this.a-=7},function(){M(this,G(this),this.f);this.a-=7},function(){M(this,G(this),this.j);this.a-=7},function(){M(this,G(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.C|=256;Qb(this);this.F&512||Ib(this)},function(){M(this,G(this),this.b);this.a-=7},function(){this.b=this.g;
this.a-=5},function(){this.b=this.c;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=K(this,G(this));this.a-=7},function(){this.a-=5},function(){this.b=hc(this,this.g);this.a-=4},function(){this.b=hc(this,this.c);this.a-=4},function(){this.b=hc(this,this.h);this.a-=4},function(){this.b=hc(this,this.f);this.a-=4},function(){this.b=hc(this,this.j);this.a-=4},function(){this.b=
hc(this,this.l);this.a-=4},function(){this.b=hc(this,K(this,G(this)));this.a-=7},function(){this.b=hc(this,this.b);this.a-=4},function(){this.b=ic(this,this.g);this.a-=4},function(){this.b=ic(this,this.c);this.a-=4},function(){this.b=ic(this,this.h);this.a-=4},function(){this.b=ic(this,this.f);this.a-=4},function(){this.b=ic(this,this.j);this.a-=4},function(){this.b=ic(this,this.l);this.a-=4},function(){this.b=ic(this,K(this,G(this)));this.a-=7},function(){this.b=ic(this,this.b);this.a-=4},function(){this.b=
J(this,this.g);this.a-=4},function(){this.b=J(this,this.c);this.a-=4},function(){this.b=J(this,this.h);this.a-=4},function(){this.b=J(this,this.f);this.a-=4},function(){this.b=J(this,this.j);this.a-=4},function(){this.b=J(this,this.l);this.a-=4},function(){this.b=J(this,K(this,G(this)));this.a-=7},function(){this.b=J(this,this.b);this.a-=4},function(){this.b=nc(this,this.g);this.a-=4},function(){this.b=nc(this,this.c);this.a-=4},function(){this.b=nc(this,this.h);this.a-=4},function(){this.b=nc(this,
this.f);this.a-=4},function(){this.b=nc(this,this.j);this.a-=4},function(){this.b=nc(this,this.l);this.a-=4},function(){this.b=nc(this,K(this,G(this)));this.a-=7},function(){this.b=nc(this,this.b);this.a-=4},function(){this.b=jc(this,this.g);this.a-=4},function(){this.b=jc(this,this.c);this.a-=4},function(){this.b=jc(this,this.h);this.a-=4},function(){this.b=jc(this,this.f);this.a-=4},function(){this.b=jc(this,this.j);this.a-=4},function(){this.b=jc(this,this.l);this.a-=4},function(){this.b=jc(this,
K(this,G(this)));this.a-=7},function(){this.b=jc(this,this.b);this.a-=4},function(){this.b=oc(this,this.g);this.a-=4},function(){this.b=oc(this,this.c);this.a-=4},function(){this.b=oc(this,this.h);this.a-=4},function(){this.b=oc(this,this.f);this.a-=4},function(){this.b=oc(this,this.j);this.a-=4},function(){this.b=oc(this,this.l);this.a-=4},function(){this.b=oc(this,K(this,G(this)));this.a-=7},function(){this.b=oc(this,this.b);this.a-=4},function(){this.b=mc(this,this.g);this.a-=4},function(){this.b=
mc(this,this.c);this.a-=4},function(){this.b=mc(this,this.h);this.a-=4},function(){this.b=mc(this,this.f);this.a-=4},function(){this.b=mc(this,this.j);this.a-=4},function(){this.b=mc(this,this.l);this.a-=4},function(){this.b=mc(this,K(this,G(this)));this.a-=7},function(){this.b=mc(this,this.b);this.a-=4},function(){J(this,this.g);this.a-=4},function(){J(this,this.c);this.a-=4},function(){J(this,this.h);this.a-=4},function(){J(this,this.f);this.a-=4},function(){J(this,this.j);this.a-=4},function(){J(this,
this.l);this.a-=4},function(){J(this,K(this,G(this)));this.a-=7},function(){J(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){cc(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},sc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,bc(this));this.a-=11},function(){this.b=hc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,0);this.a-=11},function(){this.o&
255||(D(this,P(this)),this.a-=6);this.a-=5},tc,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},sc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},uc,function(){this.b=ic(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){I(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){ec(this,P(this));this.a-=10},function(){var a=O(this);I(this)||D(this,a);this.a-=10},function(){for(var a=N(this),b=this.u,c=this.b,d=this.s+
-2&65535,e=1,f=0;0<e;){var g=b.l[a],h=b.C[a]||1,m=1==h?255:2==h?65535:-1,m=(c>>>=f)&m;if(void 0!==g&&g[0])g[0](a,m,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);I(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,dc(this));this.a-=11},function(){this.b=J(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){I(this)&&(D(this,P(this)),this.a-=6);this.a-=5},tc,function(){var a=O(this);I(this)&&D(this,a);this.a-=10},function(){for(var a=
N(this),b=this.u,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var g=b.j[a],h=b.B[a]||1,m=1==h?255:2==h?65535:-1,q=m;void 0!==g&&g[0]&&(q=g[0](a,c),void 0===q?q=m:q&=m);e|=q<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);I(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},uc,function(){this.b=nc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){gc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){H(this,P(this));this.a-=10},function(){var a=
O(this);gc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,G(this));H(this,a);this.a-=18},function(){var a=O(this);gc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,G(this));this.a-=11},function(){this.b=jc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){gc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,G(this));this.a-=5},function(){var a=O(this);gc(this)&&D(this,a);this.a-=10},function(){var a=G(this);
H(this,dc(this));ec(this,a);this.a-=5},function(){var a=O(this);gc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},uc,function(){this.b=oc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,40);this.a-=11},function(){this.v&128||(D(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);Zb(this,a&255|this.F&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.v&128||D(this,a);this.a-=10},function(){this.F&=-513;this.a-=4},function(){var a=O(this);this.v&128||(Q(this,this.s),
D(this,a),this.a-=6);this.a-=11},function(){Q(this,ac(this)&255|this.b<<8);this.a-=11},function(){this.b=mc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,48);this.a-=11},function(){this.v&128&&(D(this,P(this)),this.a-=6);this.a-=5},function(){this.A=G(this)&65535;this.a-=5},function(){var a=O(this);this.v&128&&D(this,a);this.a-=10},function(){this.F|=512;this.a-=4;pc(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},uc,function(){J(this,N(this));
this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){p.call(this,"ChipSet",a);var b=a.model;b&&!vc[b]&&fa("Unrecognized ChipSet model: "+b);this.b=vc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);z(this)}l(S,p);k=S.prototype;k.S=function(){return!1};
k.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;this.D=a;this.h=Ya(a,"Keyboard");this.g=Ya(a,"SerialPort");this.video=Ya(a,"Video");lb(b,this,this.b.fb);nb(b,this,this.b.gb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.b.INIT&&!this.restore(this.b.INIT)&&this.G("reset error")};
this.a-=5},function(){M(this,G(this),this.g);this.a-=7},function(){M(this,G(this),this.c);this.a-=7},function(){M(this,G(this),this.h);this.a-=7},function(){M(this,G(this),this.f);this.a-=7},function(){M(this,G(this),this.j);this.a-=7},function(){M(this,G(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.C|=256;Rb(this);this.F&512||Jb(this)},function(){M(this,G(this),this.b);this.a-=7},function(){this.b=this.g;
this.a-=5},function(){this.b=this.c;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=K(this,G(this));this.a-=7},function(){this.a-=5},function(){this.b=ic(this,this.g);this.a-=4},function(){this.b=ic(this,this.c);this.a-=4},function(){this.b=ic(this,this.h);this.a-=4},function(){this.b=ic(this,this.f);this.a-=4},function(){this.b=ic(this,this.j);this.a-=4},function(){this.b=
ic(this,this.l);this.a-=4},function(){this.b=ic(this,K(this,G(this)));this.a-=7},function(){this.b=ic(this,this.b);this.a-=4},function(){this.b=jc(this,this.g);this.a-=4},function(){this.b=jc(this,this.c);this.a-=4},function(){this.b=jc(this,this.h);this.a-=4},function(){this.b=jc(this,this.f);this.a-=4},function(){this.b=jc(this,this.j);this.a-=4},function(){this.b=jc(this,this.l);this.a-=4},function(){this.b=jc(this,K(this,G(this)));this.a-=7},function(){this.b=jc(this,this.b);this.a-=4},function(){this.b=
J(this,this.g);this.a-=4},function(){this.b=J(this,this.c);this.a-=4},function(){this.b=J(this,this.h);this.a-=4},function(){this.b=J(this,this.f);this.a-=4},function(){this.b=J(this,this.j);this.a-=4},function(){this.b=J(this,this.l);this.a-=4},function(){this.b=J(this,K(this,G(this)));this.a-=7},function(){this.b=J(this,this.b);this.a-=4},function(){this.b=oc(this,this.g);this.a-=4},function(){this.b=oc(this,this.c);this.a-=4},function(){this.b=oc(this,this.h);this.a-=4},function(){this.b=oc(this,
this.f);this.a-=4},function(){this.b=oc(this,this.j);this.a-=4},function(){this.b=oc(this,this.l);this.a-=4},function(){this.b=oc(this,K(this,G(this)));this.a-=7},function(){this.b=oc(this,this.b);this.a-=4},function(){this.b=kc(this,this.g);this.a-=4},function(){this.b=kc(this,this.c);this.a-=4},function(){this.b=kc(this,this.h);this.a-=4},function(){this.b=kc(this,this.f);this.a-=4},function(){this.b=kc(this,this.j);this.a-=4},function(){this.b=kc(this,this.l);this.a-=4},function(){this.b=kc(this,
K(this,G(this)));this.a-=7},function(){this.b=kc(this,this.b);this.a-=4},function(){this.b=pc(this,this.g);this.a-=4},function(){this.b=pc(this,this.c);this.a-=4},function(){this.b=pc(this,this.h);this.a-=4},function(){this.b=pc(this,this.f);this.a-=4},function(){this.b=pc(this,this.j);this.a-=4},function(){this.b=pc(this,this.l);this.a-=4},function(){this.b=pc(this,K(this,G(this)));this.a-=7},function(){this.b=pc(this,this.b);this.a-=4},function(){this.b=nc(this,this.g);this.a-=4},function(){this.b=
nc(this,this.c);this.a-=4},function(){this.b=nc(this,this.h);this.a-=4},function(){this.b=nc(this,this.f);this.a-=4},function(){this.b=nc(this,this.j);this.a-=4},function(){this.b=nc(this,this.l);this.a-=4},function(){this.b=nc(this,K(this,G(this)));this.a-=7},function(){this.b=nc(this,this.b);this.a-=4},function(){J(this,this.g);this.a-=4},function(){J(this,this.c);this.a-=4},function(){J(this,this.h);this.a-=4},function(){J(this,this.f);this.a-=4},function(){J(this,this.j);this.a-=4},function(){J(this,
this.l);this.a-=4},function(){J(this,K(this,G(this)));this.a-=7},function(){J(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){dc(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},tc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,cc(this));this.a-=11},function(){this.b=ic(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,0);this.a-=11},function(){this.o&
255||(D(this,P(this)),this.a-=6);this.a-=5},uc,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},tc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},vc,function(){this.b=jc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){I(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){fc(this,P(this));this.a-=10},function(){var a=O(this);I(this)||D(this,a);this.a-=10},function(){for(var a=N(this),b=this.u,c=this.b,d=this.s+
-2&65535,e=1,f=0;0<e;){var g=b.l[a],h=b.C[a]||1,m=1==h?255:2==h?65535:-1,m=(c>>>=f)&m;if(void 0!==g&&g[0])g[0](a,m,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);I(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,ec(this));this.a-=11},function(){this.b=J(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){I(this)&&(D(this,P(this)),this.a-=6);this.a-=5},uc,function(){var a=O(this);I(this)&&D(this,a);this.a-=10},function(){for(var a=
N(this),b=this.u,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var g=b.j[a],h=b.B[a]||1,m=1==h?255:2==h?65535:-1,q=m;void 0!==g&&g[0]&&(q=g[0](a,c),void 0===q?q=m:q&=m);e|=q<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);I(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},vc,function(){this.b=oc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){hc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){H(this,P(this));this.a-=10},function(){var a=
O(this);hc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,G(this));H(this,a);this.a-=18},function(){var a=O(this);hc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,G(this));this.a-=11},function(){this.b=kc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){hc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,G(this));this.a-=5},function(){var a=O(this);hc(this)&&D(this,a);this.a-=10},function(){var a=G(this);
H(this,ec(this));fc(this,a);this.a-=5},function(){var a=O(this);hc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},vc,function(){this.b=pc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,40);this.a-=11},function(){this.v&128||(D(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);$b(this,a&255|this.F&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.v&128||D(this,a);this.a-=10},function(){this.F&=-513;this.a-=4},function(){var a=O(this);this.v&128||(Q(this,this.s),
D(this,a),this.a-=6);this.a-=11},function(){Q(this,bc(this)&255|this.b<<8);this.a-=11},function(){this.b=nc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,48);this.a-=11},function(){this.v&128&&(D(this,P(this)),this.a-=6);this.a-=5},function(){this.A=G(this)&65535;this.a-=5},function(){var a=O(this);this.v&128&&D(this,a);this.a-=10},function(){this.F|=512;this.a-=4;qc(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},vc,function(){J(this,N(this));
this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){p.call(this,"ChipSet",a);var b=a.model;b&&!wc[b]&&fa("Unrecognized ChipSet model: "+b);this.b=wc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);A(this)}l(S,p);k=S.prototype;k.S=function(){return!1};
k.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;this.D=a;this.h=Za(a,"Keyboard");this.g=Za(a,"SerialPort");this.video=Za(a,"Video");mb(b,this,this.b.fb);ob(b,this,this.b.gb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.b.INIT&&!this.restore(this.b.INIT)&&this.G("reset error")};
k.save=function(){var a=new E(this);switch(this.b.Y){case T.Y:a.set(0,[this.V,this.f,this.X,this.B,this.H,this.P,this.R]);break;case V.Y:a.set(0,[this.N,this.s]),a.set(1,[this.l,this.o]),a.set(2,[this.c,this.C,this.O,this.L]),a.set(3,[this.A,this.a,this.v,this.F,this.j])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.Y){case T.Y:return this.V=b[0],this.f=b[1],this.X=b[2],this.B=b[3],this.H=b[4],this.P=b[5],this.R=b[6],!0;case V.Y:return this.N=b[0],this.s=b[1],b=a[1],this.l=b[0],this.o=b[1],b=a[2],this.c=b[0],this.C=b[1],this.O=b[2],this.L=b[3],b=a[3],this.A=b[0],this.a=b[1],this.v=b[2],this.F=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.dd=function(){return this.V};k.ed=function(){return this.f};k.fd=function(){return this.X};
k.cd=function(){return this.B>>8-this.H&255};k.qd=function(a,b){this.H=b};k.sd=function(a,b){this.P=b};k.rd=function(a,b){this.B=b<<8|this.B>>8};k.td=function(a,b){this.R=b};k.ud=function(){};function wc(a){var b=0,c=0,d=~a.A;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}
k.gd=function(){var a=this.s,a=a&~V.ga.Hb;if((Mb(this.m)&64)<<1&&(a|=V.ga.Hb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ia.Ca.kc:this.A=this.A<<1|b;break;case V.ia.Ca.pc:b=wc(this);this.j[b]=V.ia.Za;break;case V.ia.Ca.lc:this.a=this.a<<1|b;break;case V.ia.Ca.Pc:b=wc(this);c=this.a&V.ia.Za;this.j[b]=c;break;case V.ia.Ca.Kc:b=wc(this);c=this.j[b];null==c&&(c=V.ia.Za);this.a=c;break;case V.ia.Ca.Lc:this.a<<=1,this.F=this.a&V.ia.Za+1}}a&=~V.ga.Ib;this.F&&(a|=V.ga.Ib);a&=~V.ga.Cb;if(b=this.h){b=
this.h;if(c=b.h)c=b.m,c=Mb(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=V.ga.Cb);a&=~V.ga.Qb;this.g&&this.g.T&xc&&(a|=V.ga.Qb);return this.s=a};k.vd=function(a,b){this.N=b};k.yd=function(a,b){this.v=b};k.xd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.c=this.c&-4|a;break;case 1:this.c=this.c&-13|a<<2;this.video&&(b=this.video,a=this.c,b.la!==a&&((b.la=a)?Tb(b,!0):b.na=!0));break;case 2:switch(a){case 0:this.C=~this.C;break;case 2:case 3:this.O=3-a}break;case 3:this.L=a}};
k.wd=function(a,b){b&V.ua.Jc?(b&=V.ua.Mb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ua.Mb?50:60))):(b&=V.ua.ub,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ua.ub?132:80,a.C=b,a.M=a.va,80<b&&a.M--,yc(a)&&zc(a))))};
var T={Y:1978.1,Nc:{Z:0,Ce:1,Ge:16,Ne:32,We:64,Ve:128,Ja:14},za:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ja:8},Oc:{Z:2,Be:3,ef:4,De:8,Re:16,Se:32,Te:64,Ee:128,Ja:0},$e:{Z:3},Ye:{Z:2,Oe:7},bf:{Z:3,ff:1,af:2,Ue:4,Le:8,Fe:16,Xd:32},Ze:{Z:4},cf:{Z:5,He:1,Ie:2,Je:4,Ke:8,gf:16}},V={Y:100,ga:{Z:66,Qb:1,Cc:2,Dc:4,Qe:8,Pe:16,Ib:32,Hb:64,Cb:128},nc:{Z:66,INIT:0},ua:{Z:194,$d:0,ub:16,Jc:32,Mb:48,sc:0,tc:32},Xa:{Z:162,Xe:0,vc:0,rc:0,uc:0,qc:0},ia:{Me:{Z:98},Ca:{lc:0,kc:1,Lc:2,Pc:4,pc:5,Kc:6,df:7},Za:16383}},vc=
k.cd=function(){return this.B>>8-this.H&255};k.qd=function(a,b){this.H=b};k.sd=function(a,b){this.P=b};k.rd=function(a,b){this.B=b<<8|this.B>>8};k.td=function(a,b){this.R=b};k.ud=function(){};function xc(a){var b=0,c=0,d=~a.A;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}
k.gd=function(){var a=this.s,a=a&~V.ga.Hb;if((Nb(this.m)&64)<<1&&(a|=V.ga.Hb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ia.Ca.kc:this.A=this.A<<1|b;break;case V.ia.Ca.pc:b=xc(this);this.j[b]=V.ia.Za;break;case V.ia.Ca.lc:this.a=this.a<<1|b;break;case V.ia.Ca.Pc:b=xc(this);c=this.a&V.ia.Za;this.j[b]=c;break;case V.ia.Ca.Kc:b=xc(this);c=this.j[b];null==c&&(c=V.ia.Za);this.a=c;break;case V.ia.Ca.Lc:this.a<<=1,this.F=this.a&V.ia.Za+1}}a&=~V.ga.Ib;this.F&&(a|=V.ga.Ib);a&=~V.ga.Cb;if(b=this.h){b=
this.h;if(c=b.h)c=b.m,c=Nb(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=V.ga.Cb);a&=~V.ga.Qb;this.g&&this.g.T&yc&&(a|=V.ga.Qb);return this.s=a};k.vd=function(a,b){this.N=b};k.yd=function(a,b){this.v=b};k.xd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.c=this.c&-4|a;break;case 1:this.c=this.c&-13|a<<2;this.video&&(b=this.video,a=this.c,b.la!==a&&((b.la=a)?Ub(b,!0):b.na=!0));break;case 2:switch(a){case 0:this.C=~this.C;break;case 2:case 3:this.O=3-a}break;case 3:this.L=a}};
k.wd=function(a,b){b&V.ua.Jc?(b&=V.ua.Mb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ua.Mb?50:60))):(b&=V.ua.ub,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ua.ub?132:80,a.C=b,a.M=a.va,80<b&&a.M--,zc(a)&&Ac(a))))};
var T={Y:1978.1,Nc:{Z:0,Ce:1,Ge:16,Ne:32,We:64,Ve:128,Ja:14},za:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ja:8},Oc:{Z:2,Be:3,ef:4,De:8,Re:16,Se:32,Te:64,Ee:128,Ja:0},$e:{Z:3},Ye:{Z:2,Oe:7},bf:{Z:3,ff:1,af:2,Ue:4,Le:8,Fe:16,Xd:32},Ze:{Z:4},cf:{Z:5,He:1,Ie:2,Je:4,Ke:8,gf:16}},V={Y:100,ga:{Z:66,Qb:1,Cc:2,Dc:4,Qe:8,Pe:16,Ib:32,Hb:64,Cb:128},nc:{Z:66,INIT:0},ua:{Z:194,$d:0,ub:16,Jc:32,Mb:48,sc:0,tc:32},Xa:{Z:162,Xe:0,vc:0,rc:0,uc:0,qc:0},ia:{Me:{Z:98},Ca:{lc:0,kc:1,Lc:2,Pc:4,pc:5,Kc:6,df:7},Za:16383}},wc=
{SI1978:T,VT100:V};T.INIT=[[T.Nc.Ja,T.za.Ja,T.Oc.Ja,0,0,0,0]];
V.INIT=[[V.nc.INIT,V.ga.Cc|V.ga.Dc],[V.ua.sc,V.ua.tc],[V.Xa.vc,V.Xa.rc,V.Xa.uc,V.Xa.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]]];T.fb={0:S.prototype.dd,1:S.prototype.ed,2:S.prototype.fd,3:S.prototype.cd};
T.gb={2:S.prototype.qd,3:S.prototype.sd,4:S.prototype.rd,5:S.prototype.td,6:S.prototype.ud};V.fb={66:S.prototype.gd};V.gb={66:S.prototype.vd,98:S.prototype.yd,162:S.prototype.xd,194:S.prototype.wd};Ma(function(){for(var a=x(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new S(d);ka(d,c)}});
function Ac(a){p.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=sa(this.c);if(this.c){a=this.c;var b=ta(this.h);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;Ca(a,null,!0,function(a,b,f){Bc(c,a,b,f)})}}l(Ac,p);Ac.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Cc(this)};Ac.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0};
Ac.prototype.ba=function(){return!0};
function Bc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.a=f;else if(g)for(a.a=Array(4*g.length),d=c=0;c<g.length;c++)a.a[d++]=g[c]&255,a.a[d++]=g[c]>>8&255,a.a[d++]=g[c]>>16&255,a.a[d++]=g[c]>>24&255;else a.a=e;a.sa=e.symbols;if(!a.a.length){t("Empty ROM: "+b);return}if(1==a.a.length){t(a.a[0]);return}}catch(h){a.G("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.a=Array(b.length),e=0;e<b.length;e++)a.a[e]=ra(b[e]);Cc(a)}}
function Cc(a){if(!pa(a))if(!a.c)z(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+A(a.a.length,8,!0)+") does not match specified size ("+A(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(bb(a.u,b,a.b,tb)){var c;for(c=0;c<a.a.length;c++)ib(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],m=d.g>>>f.b;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=f.c;f=d.u;
d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=f.c}}delete a.a}}z(a)}}Ma(function(){for(var a=x(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ac(d);ka(d,c)}});
function Dc(a){p.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=sa(this.a);if(this.a){a=this.a;var b=ta(this.h);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;Ca(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(ba(c.Ka,a,b),(a=Da(a,b))?(c.b=a.W,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,Ec(c))})}}l(Dc,p);
Dc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Ec(this)};Dc.prototype.ca=function(){return!0};Dc.prototype.ba=function(){return!0};
function Ec(a){!a.c&&a.g&&bb(a.u,a.f,a.g,1)&&(a.c=!0);if(!pa(a)){if(!a.c)t("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.Aa&&(b=a.Aa);for(var c=0;c<a.b.length;c++)ib(a.u,b+c,a.b[c]);if(null!==a.ta){if(a.ta==Fc){for(c=0;c<Gc.length;c++)ib(a.u,Gc[c],118);Xb(a.m,function(a){return function(b){if(0<=Gc.indexOf(b)){var c=!1,d=a.m,e=a.J;if(b==Hc)switch(c=!0,d.c){case Ic:Jc(a,String.fromCharCode(d.f));break;case Kc:for(var m=dc(d),q="",w=255;w--;){var B=K(a.m,m++);if(36==B)break;
q+=String.fromCharCode(B)}Jc(a,q);break;default:c=!1}c?tc.call(d):e&&(a.aa("\nCP/M vector "+A(b,4,!0)),D(d,b),Ib(e));b=!0}else b=!1;return b}}(a))}$b(a.m,a.ta)}delete a.b}z(a)}}Dc.prototype.reset=function(){};function Jc(a,b){b=b.replace(/\r/g,"");a.pa&&(a.pa.value+=b,a.pa.scrollTop=a.pa.scrollHeight)}var Hc=5,Ic=2,Kc=9,Fc=256,Gc=[0,Hc];Ma(function(){for(var a=x(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Dc(d);ka(d,c)}});
function Lc(a){p.call(this,"Keyboard",a);(a=a.model)&&!Mc[a]&&fa("Unrecognized Keyboard8080 model: "+a);this.a=Mc[a]||{};this.reset();z(this)}l(Lc,p);k=Lc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.La[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Ia("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Wa[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Da)if(d.a.Da[c]==a){c=+c;break a}c=0}c&&(b?Nc(d,16,!0,!0):Nc(d,16,!1),Nc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Oc(d,a,!0)},c.onkeyup=function(a){return Oc(d,a,!1)}):(c.onkeydown=function(a){return Pc(d,a,!0)},
c.onkeyup=function(a){return Pc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ia&&a<=n.$a?d.b&(Qc|Rc)||(d.b|=Rc,Nc(d,20,!0),Sc(d)):a>=n.Wb&&a<=n.z&&d.b&Rc&&(d.b&=~Rc,Nc(d,20,!1),Sc(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Ba&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Tc(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Fa&&void 0!==this.a.Fa[b])return this.w[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Uc:20==b&&(e=Rc);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";Vc(a,b,d)}Nc(a,b,d,!e);a.D&&Nb(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.qa=function(a,b,c,d){this.D=a;this.m=c;this.J=d;var e=this;this.v=Ob(this.m,function(){Wc(e)});this.N=Ya(a,"ChipSet");this.g=Ya(a,"SerialPort");lb(b,this,this.a.fb);nb(b,this,this.a.gb)};
T.gb={2:S.prototype.qd,3:S.prototype.sd,4:S.prototype.rd,5:S.prototype.td,6:S.prototype.ud};V.fb={66:S.prototype.gd};V.gb={66:S.prototype.vd,98:S.prototype.yd,162:S.prototype.xd,194:S.prototype.wd};Na(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new S(d);ka(d,c)}});
function Bc(a){p.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=ta(this.c);if(this.c){a=this.c;var b=ua(this.h);"json"!=b&&"hex"!=b&&(a=wa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){Cc(c,a,b,f)})}}l(Bc,p);Bc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Dc(this)};Bc.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0};
Bc.prototype.ba=function(){return!0};
function Cc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.a=f;else if(g)for(a.a=Array(4*g.length),d=c=0;c<g.length;c++)a.a[d++]=g[c]&255,a.a[d++]=g[c]>>8&255,a.a[d++]=g[c]>>16&255,a.a[d++]=g[c]>>24&255;else a.a=e;a.sa=e.symbols;if(!a.a.length){t("Empty ROM: "+b);return}if(1==a.a.length){t(a.a[0]);return}}catch(h){a.G("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.a=Array(b.length),e=0;e<b.length;e++)a.a[e]=sa(b[e]);Dc(a)}}
function Dc(a){if(!qa(a))if(!a.c)A(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+B(a.a.length,8,!0)+") does not match specified size ("+B(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(cb(a.u,b,a.b,ub)){var c;for(c=0;c<a.a.length;c++)jb(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],m=d.g>>>f.b;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=f.c;f=d.u;
d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=f.c}}delete a.a}}A(a)}}Na(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Bc(d);ka(d,c)}});
function Ec(a){p.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=ta(this.a);if(this.a){a=this.a;var b=ua(this.h);"json"!=b&&"hex"!=b&&(a=wa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(ba(c.Ka,a,b),(a=Ea(a,b))?(c.b=a.W,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,Fc(c))})}}l(Ec,p);
Ec.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Fc(this)};Ec.prototype.ca=function(){return!0};Ec.prototype.ba=function(){return!0};
function Fc(a){!a.c&&a.g&&cb(a.u,a.f,a.g,1)&&(a.c=!0);if(!qa(a)){if(!a.c)t("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.Aa&&(b=a.Aa);for(var c=0;c<a.b.length;c++)jb(a.u,b+c,a.b[c]);if(null!==a.ta){if(a.ta==Gc){for(c=0;c<Hc.length;c++)jb(a.u,Hc[c],118);Yb(a.m,function(a){return function(b){if(0<=Hc.indexOf(b)){var c=!1,d=a.m,e=a.J;if(b==Ic)switch(c=!0,d.c){case Jc:Kc(a,String.fromCharCode(d.f));break;case Lc:for(var m=ec(d),q="",x=255;x--;){var w=K(a.m,m++);if(36==w)break;
q+=String.fromCharCode(w)}Kc(a,q);break;default:c=!1}c?uc.call(d):e&&(a.aa("\nCP/M vector "+B(b,4,!0)),D(d,b),Jb(e));b=!0}else b=!1;return b}}(a))}ac(a.m,a.ta)}delete a.b}A(a)}}Ec.prototype.reset=function(){};function Kc(a,b){b=b.replace(/\r/g,"");a.pa&&(a.pa.value+=b,a.pa.scrollTop=a.pa.scrollHeight)}var Ic=5,Jc=2,Lc=9,Gc=256,Hc=[0,Ic];Na(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ec(d);ka(d,c)}});
function Mc(a){p.call(this,"Keyboard",a);(a=a.model)&&!Nc[a]&&fa("Unrecognized Keyboard8080 model: "+a);this.a=Nc[a]||{};this.reset();A(this)}l(Mc,p);k=Mc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.La[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Ja("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Wa[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Da)if(d.a.Da[c]==a){c=+c;break a}c=0}c&&(b?Oc(d,16,!0,!0):Oc(d,16,!1),Oc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pc(d,a,!0)},c.onkeyup=function(a){return Pc(d,a,!1)}):(c.onkeydown=function(a){return Qc(d,a,!0)},
c.onkeyup=function(a){return Qc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ia&&a<=n.$a?d.b&(Rc|Sc)||(d.b|=Sc,Oc(d,20,!0),Tc(d)):a>=n.Wb&&a<=n.z&&d.b&Sc&&(d.b&=~Sc,Oc(d,20,!1),Tc(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Ba&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Uc(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Fa&&void 0!==this.a.Fa[b])return this.w[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Vc:20==b&&(e=Sc);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";Wc(a,b,d)}Oc(a,b,d,!e);a.D&&Ob(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.qa=function(a,b,c,d){this.D=a;this.m=c;this.J=d;var e=this;this.v=Pb(this.m,function(){Xc(e)});this.N=Za(a,"ChipSet");this.g=Za(a,"SerialPort");mb(b,this,this.a.fb);ob(b,this,this.a.gb)};
k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.c=[];this.b=0;this.a.INIT&&!this.restore(this.a.INIT)&&this.G("reset error")};k.save=function(){var a=new E(this);switch(this.a.Y){case W.Y:a.set(0,[this.l,this.j,this.h,this.o,-1])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case Xc.Y:return!0;case W.Y:return this.l=b[0],Sc(this,this.l&W.fa.Db),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1};function Sc(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.La)if(c="led-"+d,c=a.w[c]){var e=a.a.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+A(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&Rc?"#"+A(65280,6):"#000000"}
function Vc(a,b,c,d){var e=0;switch(b){case 16:e=d?Yc:Zc;break;case 17:e=d?ad:Uc;break;case 18:e=d?bd:cd;break;case 91:e=d?dd:ed;break;case 20:e=Rc,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
function Pc(a,b,c){var d=!0,e=b.keyCode,e=aa[e]||e;c=Vc(a,e,c,2==b.location);var f;a:if(e=a.a.rb[e]||e,a.a.Da[e])f=e;else{for(f in a.a.Fa)if(a.a.Fa[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.b&(fd|gd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|gd:a.b&~gd)),d=Nc(a,f,c),(!(f>=n.Ia&&f<=n.$a)||a.b|hd)&&b.preventDefault&&b.preventDefault());return d}
function Oc(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.a.Da[e],g;if(g=f){a:{for(var h in a.a.Wa)if(a.a.Wa[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Nc(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Nc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].qb==b)break a;e=-1}if(c)0>e?a.c.push({qb:b,ob:Date.now(),cb:d||!1}):(a.c[e].ob=Date.now(),a.c[e].cb=d||!1),d&&Wc(a);else if(0<=e){if(!a.c[e].cb&&(d=a.c[e].ob)&&Date.now()-d<id)return a.c[e].cb=!0,Wc(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.za.Ec;break;case "2p":d=T.za.Ic;break;case "coin":d=T.za.oc;break;case "left":d=T.za.Gc;break;case "right":d=T.za.Hc;break;case "fire":d=T.za.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
function Wc(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].cb){var d=a.c[b].qb,e=id-(Date.now()-a.c[b].ob);if(0<e){if(0>c||c>e)c=e}else{Nc(a,d,!1);b=0;continue}}b++}0<=c&&Pb(a.m,a.v,c)}k.hd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Da[a.qb],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,qc(this.m,1));return a};k.zd=function(a,b){this.l=b;this.h=!0;this.o=Mb(this.m);Sc(this,b&W.fa.Db);b&W.fa.Mc&&(this.f=0,qc(this.m,1))};
var Yc=1,Zc=2,Qc=3,ad=4,Uc=8,hd=12,bd=16,cd=32,fd=48,dd=64,ed=128,Rc=512,gd=4096,id=50,jd={};jd[n.Ia]=37;jd[n.kb]=39;jd[n.lb]=32;
var Xc={Y:1978.1,Da:{},Wa:{},rb:jd,La:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Da:(X[8]=3,X[n.Kb]=5,X[n.Jb]=6,X[n.Vb]=7,X[n.Ob]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.zb]=22,X[n.Pb]=23,X[n.Lb]=24,X[n.E]=25,X[49]=26,X[37]=32,X[40]=34,X[117]=35,X[19]=35,X[192]=36,X[189]=37,X[57]=38,X[55]=39,X[52]=40,X[51]=41,X[27]=42,X[38]=48,X[114]=49,X[112]=50,X[46]=51,X[187]=52,X[48]=53,X[56]=54,X[54]=55,X[53]=56,X[50]=57,X[9]=58,X[103]=64,X[115]=65,X[113]=66,X[96]=
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case Yc.Y:return!0;case W.Y:return this.l=b[0],Tc(this,this.l&W.fa.Db),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1};function Tc(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.La)if(c="led-"+d,c=a.w[c]){var e=a.a.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+B(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&Sc?"#"+B(65280,6):"#000000"}
function Wc(a,b,c,d){var e=0;switch(b){case 16:e=d?Zc:$c;break;case 17:e=d?bd:Vc;break;case 18:e=d?cd:dd;break;case 91:e=d?ed:fd;break;case 20:e=Sc,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
function Qc(a,b,c){var d=!0,e=b.keyCode,e=aa[e]||e;c=Wc(a,e,c,2==b.location);var f;a:if(e=a.a.rb[e]||e,a.a.Da[e])f=e;else{for(f in a.a.Fa)if(a.a.Fa[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.b&(gd|hd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|hd:a.b&~hd)),d=Oc(a,f,c),(!(f>=n.Ia&&f<=n.$a)||a.b|id)&&b.preventDefault&&b.preventDefault());return d}
function Pc(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.a.Da[e],g;if(g=f){a:{for(var h in a.a.Wa)if(a.a.Wa[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Oc(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Oc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].qb==b)break a;e=-1}if(c)0>e?a.c.push({qb:b,ob:Date.now(),cb:d||!1}):(a.c[e].ob=Date.now(),a.c[e].cb=d||!1),d&&Xc(a);else if(0<=e){if(!a.c[e].cb&&(d=a.c[e].ob)&&Date.now()-d<jd)return a.c[e].cb=!0,Xc(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.za.Ec;break;case "2p":d=T.za.Ic;break;case "coin":d=T.za.oc;break;case "left":d=T.za.Gc;break;case "right":d=T.za.Hc;break;case "fire":d=T.za.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
function Xc(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].cb){var d=a.c[b].qb,e=jd-(Date.now()-a.c[b].ob);if(0<e){if(0>c||c>e)c=e}else{Oc(a,d,!1);b=0;continue}}b++}0<=c&&Qb(a.m,a.v,c)}k.hd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Da[a.qb],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,rc(this.m,1));return a};k.zd=function(a,b){this.l=b;this.h=!0;this.o=Nb(this.m);Tc(this,b&W.fa.Db);b&W.fa.Mc&&(this.f=0,rc(this.m,1))};
var Zc=1,$c=2,Rc=3,bd=4,Vc=8,id=12,cd=16,dd=32,gd=48,ed=64,fd=128,Sc=512,hd=4096,jd=50,kd={};kd[n.Ia]=37;kd[n.kb]=39;kd[n.lb]=32;
var Yc={Y:1978.1,Da:{},Wa:{},rb:kd,La:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Da:(X[8]=3,X[n.Kb]=5,X[n.Jb]=6,X[n.Vb]=7,X[n.Ob]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.zb]=22,X[n.Pb]=23,X[n.Lb]=24,X[n.E]=25,X[49]=26,X[37]=32,X[40]=34,X[117]=35,X[19]=35,X[192]=36,X[189]=37,X[57]=38,X[55]=39,X[52]=40,X[51]=41,X[27]=42,X[38]=48,X[114]=49,X[112]=50,X[46]=51,X[187]=52,X[48]=53,X[56]=54,X[54]=55,X[53]=56,X[50]=57,X[9]=58,X[103]=64,X[115]=65,X[113]=66,X[96]=
67,X[118]=68,X[220]=69,X[n.lb]=70,X[n.Bb]=71,X[n.xb]=72,X[n.wb]=73,X[n.Ia]=74,X[104]=80,X[2013]=81,X[98]=82,X[97]=83,X[222]=85,X[186]=86,X[n.Ab]=87,X[n.yb]=88,X[n.kb]=89,X[n.Nb]=90,X[110]=96,X[116]=97,X[101]=98,X[100]=99,X[13]=100,X[190]=101,X[188]=102,X[n.Gb]=103,X[n.sb]=104,X[n.Ub]=105,X[119]=106,X[105]=112,X[99]=113,X[102]=114,X[109]=115,X[191]=117,X[n.Fb]=118,X[n[" "]]=119,X[n.Rb]=120,X[n.tb]=121,X[n.$a]=122,X[120]=123,X[17]=124,X[16]=125,X[20]=126,X),Wa:(Y[n.p]=5,Y[n.md]=6,Y[n.y]=7,Y[n.t]=8,
Y[n.Nd]=9,Y[n.q]=10,Y[n["]"]]=20,Y[n["["]]=21,Y[n.$c]=22,Y[n.Ld]=23,Y[n.r]=24,Y[n.e]=25,Y[n["1"]]=26,Y[n["`"]]=36,Y[n["-"]]=37,Y[n["9"]]=38,Y[n["7"]]=39,Y[n["4"]]=40,Y[n["3"]]=41,Y[n["="]]=52,Y[n["0"]]=53,Y[n["8"]]=54,Y[n["6"]]=55,Y[n["5"]]=56,Y[n["2"]]=57,Y[n["\\"]]=69,Y[n.kd]=70,Y[n.k]=71,Y[n.Yc]=72,Y[n.Xc]=73,Y[n.Wb]=74,Y[n["'"]]=85,Y[n[";"]]=86,Y[n.jd]=87,Y[n.Zc]=88,Y[n.d]=89,Y[n.Kd]=90,Y[13]=100,Y[n["."]]=101,Y[n[","]]=102,Y[n.n]=103,Y[n.Rc]=104,Y[n.x]=105,Y[n["/"]]=117,Y[n.ld]=118,Y[n.Md]=120,
Y[n.Tc]=121,Y[n.z]=122,Y[n.Kb]=133,Y[n.Jb]=134,Y[n.Vb]=135,Y[n.Ob]=136,Y[n.Sb]=137,Y[n.Q]=138,Y[n["}"]]=148,Y[n["{"]]=149,Y[n.zb]=150,Y[n.Pb]=151,Y[n.Lb]=152,Y[n.E]=153,Y[n["!"]]=154,Y[n["~"]]=164,Y[n._]=165,Y[n["("]]=166,Y[n["&"]]=167,Y[n.$]=168,Y[n["#"]]=169,Y[n["+"]]=180,Y[n[")"]]=181,Y[n["*"]]=182,Y[n["^"]]=183,Y[n["%"]]=184,Y[n["@"]]=185,Y[n["|"]]=197,Y[n.lb]=198,Y[n.Bb]=199,Y[n.xb]=200,Y[n.wb]=201,Y[n.Ia]=202,Y[n['"']]=213,Y[n[":"]]=214,Y[n.Ab]=215,Y[n.yb]=216,Y[n.kb]=217,Y[n.Nb]=218,Y[n[">"]]=
229,Y[n["<"]]=230,Y[n.Gb]=231,Y[n.sb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Fb]=246,Y[n.Rb]=248,Y[n.tb]=249,Y[n.$a]=250,Y),rb:{},La:{},Fa:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},mc:{Z:130,INIT:127},fa:{Z:130,Ac:1,zc:2,yc:4,xc:8,Bc:16,Eb:32,Db:63,Mc:64,Zd:128,INIT:0},wc:127};W.La={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Eb,online:~W.fa.Eb,"caps-lock":Rc};var Mc={SI1978:Xc,VT100:W};
W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.fb={130:Lc.prototype.hd};W.gb={130:Lc.prototype.zd};Ma(function(){for(var a=x(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Lc(d);ka(d,c)}});
function kd(a,b,c,d,e){p.call(this,"Video",a);var f=this;this.Ea=Ia("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Qc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&ld[h.toUpperCase()]||md;this.C=a.bufferCols;this.R=a.bufferRows;this.va=this.M=a.cellWidth||1;this.K=a.cellHeight||1;this.V=null;this.ya=!1;this.ea=a.bufferBits||1;this.Sc=a.bufferLeft||0;if(this.b=a.bufferRotate)this.b=this.b%360,0<this.b&&(this.b-=360),-90!=this.b&&(this.G("unsupported buffer rotation: "+
this.b),this.b=0);this.ha=a.interruptRate;this.Pa=a.refreshRate||60;this.o=b;this.c=c;this.L=(this.Wc=d)||b||null;this.mb=this.A;this.jc=this.s;this.wa=this.A/this.C|0;this.xa=this.s/this.R|0;1<this.K&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ja("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.c[d]){this.c[d]=b;break}if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.G("unsupported screen rotation: "+
this.f),this.f=0):(this.c.translate(0,this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this.s));if(this.a=e)if(this.a.Ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ha){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){nd(f,!!(document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement))},!1);
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){nd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=ta(this.F)&&(this.F=va()+"/api/v1/dump?file="+this.F+"&format=bytes"),Ca(this.F,null,!0,function(a,b,c){od(f,a,b,c)});this.ra={}}l(kd,p);
function yc(a){a.j=a.C*a.M;a.B=a.R*a.K;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Qc&&(a.v=(a.j*a.ea>>3)*a.B,!bb(a.u,a.da,a.v,3)))return!1;a.v?(a.Ga=a.c.createImageData(b,c),a.Na=16/a.ea|0,pd(a,a.v>>1)):pd(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+qd);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==rd&&(a.I[a.O+sd]=[255,255,0,255],a.I[a.O+td]=[0,255,0,255]);a.P==ud&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
return!0}k=kd.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ra[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1};
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;yc(this);if(this.h=Ya(a,"Keyboard")){for(var e in this.ra)this.h.S("led",e,this.ra[e]);this.o&&this.h.S(this.Wc?"textarea":"canvas","screen",this.L)}var f=this;this.Qa=Ob(this.m,function(){Tb(f)});Pb(this.m,this.Qa,1E3/Math.max(this.Pa,this.ha));this.Oa=0;this.F||z(this)};
function od(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)a.V=f,zc(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.J)&&z(a)}}
function zc(a){a.V&&(a.ya=a.P==ud,a.H[vd]=[wd(a,a.M,a.K),wd(a,a.M,a.K,a.oa)],a.H[xd]=[wd(a,2*a.M,a.K),wd(a,2*a.M,a.K,a.oa)],a.H[yd]=a.H[zd]=[wd(a,2*a.M,2*a.K),wd(a,2*a.M,2*a.K,a.oa)])}
function wd(a,b,c,d){var e=8>=a.va?8:16,f=8<e?15:0,g=a.V.length/e,h=!1===d,m={M:b,K:c};m.canvas=document.createElement("canvas");m.canvas.width=16*b;m.canvas.height=g/16*c;m.context=m.canvas.getContext("2d");for(var q=m.context.createImageData(b,c),w=0;w<g;w++){for(var B=0,L=B;B<a.K;B++)for(var y=w*e+(f+B&e-1),y=d&&8==B?255:a.V[y],v=0;v<c/a.K;v++){for(var F=0,U=0,Z=U;U<a.M;U++){for(var da=y&128>>(7<U?7:U),F=a.ya&&!da&&F?F:da,xa=0;xa<b/a.M;xa++)h&&(F=!F),Ad(a,q,Z,L,F?1:0),Z++;F=da}L++}m.context.putImageData(q,
(w&15)*b,(w>>4)*c)}return m}k.ca=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ba=function(a){return!a||this.save()};k.save=function(){var a=new E(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
229,Y[n["<"]]=230,Y[n.Gb]=231,Y[n.sb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Fb]=246,Y[n.Rb]=248,Y[n.tb]=249,Y[n.$a]=250,Y),rb:{},La:{},Fa:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},mc:{Z:130,INIT:127},fa:{Z:130,Ac:1,zc:2,yc:4,xc:8,Bc:16,Eb:32,Db:63,Mc:64,Zd:128,INIT:0},wc:127};W.La={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Eb,online:~W.fa.Eb,"caps-lock":Sc};var Nc={SI1978:Yc,VT100:W};
W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.fb={130:Mc.prototype.hd};W.gb={130:Mc.prototype.zd};Na(function(){for(var a=y(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Mc(d);ka(d,c)}});
function ld(a,b,c,d,e){p.call(this,"Video",a);var f=this;this.Ea=Ja("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Qc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&md[h.toUpperCase()]||nd;this.C=a.bufferCols;this.R=a.bufferRows;this.va=this.M=a.cellWidth||1;this.K=a.cellHeight||1;this.V=null;this.ya=!1;this.ea=a.bufferBits||1;this.Sc=a.bufferLeft||0;if(this.b=a.bufferRotate)this.b=this.b%360,0<this.b&&(this.b-=360),-90!=this.b&&(this.G("unsupported buffer rotation: "+
this.b),this.b=0);this.ha=a.interruptRate;this.Pa=a.refreshRate||60;this.o=b;this.c=c;this.L=(this.Wc=d)||b||null;this.mb=this.A;this.jc=this.s;this.wa=this.A/this.C|0;this.xa=this.s/this.R|0;1<this.K&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ka("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.c[d]){this.c[d]=b;break}if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.G("unsupported screen rotation: "+
this.f),this.f=0):(this.c.translate(0,this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this.s));if(this.a=e)if(this.a.Ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ha){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){od(f,!!(document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement))},!1);
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){od(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=ua(this.F)&&(this.F=wa()+"/api/v1/dump?file="+this.F+"&format=bytes"),Da(this.F,null,!0,function(a,b,c){pd(f,a,b,c)});this.ra={}}l(ld,p);
function zc(a){a.j=a.C*a.M;a.B=a.R*a.K;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Qc&&(a.v=(a.j*a.ea>>3)*a.B,!cb(a.u,a.da,a.v,3)))return!1;a.v?(a.Ga=a.c.createImageData(b,c),a.Na=16/a.ea|0,qd(a,a.v>>1)):qd(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+rd);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==sd&&(a.I[a.O+td]=[255,255,0,255],a.I[a.O+ud]=[0,255,0,255]);a.P==vd&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
return!0}k=ld.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ra[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1};
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;zc(this);if(this.h=Za(a,"Keyboard")){for(var e in this.ra)this.h.S("led",e,this.ra[e]);this.o&&this.h.S(this.Wc?"textarea":"canvas","screen",this.L)}var f=this;this.Qa=Pb(this.m,function(){Ub(f)});Qb(this.m,this.Qa,1E3/Math.max(this.Pa,this.ha));this.Oa=0;this.F||A(this)};
function pd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{ba(a.Ka,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){t("Empty font ROM: "+b);return}if(1==f.length){t(f[0]);return}if(2048==f.length)a.V=f,Ac(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.J)&&A(a)}}
function Ac(a){a.V&&(a.ya=a.P==vd,a.H[wd]=[xd(a,a.M,a.K),xd(a,a.M,a.K,a.oa)],a.H[yd]=[xd(a,2*a.M,a.K),xd(a,2*a.M,a.K,a.oa)],a.H[zd]=a.H[Ad]=[xd(a,2*a.M,2*a.K),xd(a,2*a.M,2*a.K,a.oa)])}
function xd(a,b,c,d){var e=8>=a.va?8:16,f=8<e?15:0,g=a.V.length/e,h=!1===d,m={M:b,K:c};m.canvas=document.createElement("canvas");m.canvas.width=16*b;m.canvas.height=g/16*c;m.context=m.canvas.getContext("2d");for(var q=m.context.createImageData(b,c),x=0;x<g;x++){for(var w=0,L=w;w<a.K;w++)for(var z=x*e+(f+w&e-1),z=d&&8==w?255:a.V[z],v=0;v<c/a.K;v++){for(var F=0,U=0,Z=U;U<a.M;U++){for(var da=z&128>>(7<U?7:U),F=a.ya&&!da&&F?F:da,xa=0;xa<b/a.M;xa++)h&&(F=!F),Bd(a,q,Z,L,F?1:0),Z++;F=da}L++}m.context.putImageData(q,
(x&15)*b,(x>>4)*c)}return m}k.ca=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ba=function(a){return!a||this.save()};k.save=function(){var a=new E(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
k.Ha=function(){var a=!1;if(this.a){if(this.a.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.A/this.s;b>c&&(a=Math.round(c/b*100)+"%")}this.Ea?(this.o.style.width=a,this.o.style.width=a,this.o.style.display="block",this.o.style.margin="auto"):(this.a.style.width=a,this.a.style.height="auto");this.a.style.backgroundColor="black";this.a.Ha();a=!0}this.L&&this.L.focus()}return a};
function nd(a,b){!b&&a.a&&(a.Ea?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function pd(a,b){a.Ma=b;a.N=!1;if(void 0===a.g||a.g.length!=a.Ma)a.g=Array(a.Ma)}function Ad(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==rd&&(208<=c&&236>c?e=a.O+sd:28<=c&&72>c&&(e=a.O+td));a=a.I[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Tb(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Oa&1?(qc(a.m,2),c=!1):qc(a.m,1):qc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.v,f=!0,g=a.da>>>d.b;0<e&&g<d.a.length;)d.a[g].ja&&(d.a[g].ja=f=!1,d.a[g].Zb=!0),e-=d.c,g++;f&&(c=!1)}Pb(a.m,a.Qa,1E3/Math.max(a.Pa,a.ha));a.Oa++}if(c)if(1<a.M)switch(a.P){case ud:for(var c=a.da,d=-1,e=0,f=60==a.bc?2:5,h=g=0,m=-1;e<a.R;){var q=0,w=c,B=d,L=a.C;for(B!=vd&&(L>>=1);;){var y=gb(a.u,w++);if((y&Bd)==Bd){var v=gb(a.u,w++),d=v&Cd,c=(v&Dd)<<8|gb(a.u,w),c=c+(v&Ed?Fd:
Gd);break}if(q<L)a.X[q++]=y;else break}if(f)f--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=B)for(w=a.N&&a.g[g]==L,a.g[g++]=L,L=0;L<q;L++){y=a.X[L];if(!w||y!==a.g[g]){a.g[m=g]=y;var v=a,F=a.ma,U=y&127;if(y=v.H[B][y&128?1:0]){var Z=(U&15)*y.M,U=(U>>4)*y.K,da,xa,Va,mb,$c=y.M,Yb=y.K;F?(da=L*v.M,xa=e*v.K,Va=v.M,mb=v.K):(da=L*v.wa,xa=e*v.xa,Va=v.wa,mb=v.xa);y.M>v.M&&(da*=2,Va*=2);y.K>v.K&&(B==zd&&(U+=v.K),Yb=v.K);F?F.drawImage(y.canvas,Z,U,$c,Yb,da,xa,Va,mb):(da+=0,xa+=0,v.c.drawImage(y.canvas,Z,U,$c,Yb,
da,xa,Va,mb))}h++}g++}e++}}a.N=!0;!b&&a.na&&1==h&&(a.g[m]=-1,h=0);a.na=!1;(h||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.K,0,0,a.mb,a.jc)}else{e=a.da;f=e+a.v;m=h=g=0;b=a.j;q=0;c=a.B;B=d=0;w=a.ea;L=(1<<w)-1;a.Sc&&(w=-w,B=16+w);for(;e<f;){v=a.u;F=e;y=F&v.f;Z=(F&v.g)>>>v.b;v=y!=v.f?v.a[Z].ec(y,F):v.a[Z++].hb(y,F)|v.a[Z&v.o].hb(0,F+1)<<8;if(a.N&&v===a.g[g])h+=a.Na;else{a.g[g]=v;(F=B)&&(v=v>>8|(v&255)<<8);h<b&&(b=h);for(y=a.Na;y--;)Z=v>>F&L,Ad(a,a.Ga,h++,m,Z),F+=w;h>q&&(q=h);m<c&&(c=m);m>=d&&(d=m+1)}e+=
2;g++;if(h>=a.j&&(h=0,m++,m>a.B))break}a.N=!0;b<a.j&&(e=q-b,d-=c,a.b&&(f=b,g=e,b=c,e=d,c=a.j-(f+g),d=g),a.ma.putImageData(a.Ga,0,0,b,c,e,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var sd=0,td=1,qd=2,md=0,rd=1,ud=2,ld={SI1978:rd,VT100:ud},vd=96,xd=64,yd=32,zd=0,Bd=127,Dd=15,Ed=16,Cd=96,Fd=8192,Gd=16384;
Ma(function(){for(var a=x(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ja("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");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new kd(d,e,g,f,c);ka(d,c)}});
function Hd(a){p.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:t("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Id;b&&(void 0===c&&(c="Panel"),(c=ja(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.ac,receiveData:this.pb,receiveStatus:this.Jd}}l(Hd,p);
k=Hd.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Id:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Jd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Jd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,c.onclick=function(){e.pb(d);return!0},!0}return!1};
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;var e=this;this.P=Ob(this.m,function(){e.pb()});this.R=Ob(this.m,function(){Tc(e)});this.N=Ya(a,"ChipSet");lb(b,this,Kd,this.I);nb(b,this,Ld,this.I);z(this)};
k.ac=function(a){if(!this.a){var b=Eb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Ya)return;c=za(c[1]);if(this.a=ia(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Ba=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.ca=function(a,b){if(!b)if(this.ac(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Md(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.T;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Md(this,a[0])};
function Md(a,b){var c=0;b||(b=Nd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.T=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Od(a,b){var c=a.v&b;b&15||(c>>=4);b=Pd[c];c=((a.h&Qd)>>2)+6;a.h&Rd&&c++;c+=((a.h&Sd)>>6)+1>>1;return 1E3/Math.round(b/c)}function Jd(a,b){return a.B||a.T&Td?!1:(a.A=b,a.T|=Td,qc(a.m,a.O),!0)}
k.pb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Jd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&Pb(this.m,this.P,Od(this,Ud)));return!0};k.Jd=function(a){this.T&=~Vd;a&64&&(this.T|=Vd)};function Tc(a,b){a.T=a.T|xc|Wd;b&&a.Ba&&a.Ba.call(a.a,b)}k.bd=function(){var a=this.A;this.T&=~Td;return a};k.ad=function(){return this.T};
k.pd=function(a,b){this.C=b;this.T&=~(xc|Wd);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ba&&this.Ba.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=Aa[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.L||8,c=b-this.f%b,this.L&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;
this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&Pb(this.m,this.R,Od(this,Xd))};k.od=function(a,b){this.o?(this.s&&(b^this.j)&(Yd|Zd)&&(a=0,this.l?(a|=b&Yd?32:0,a|=b&Zd?320:0):(a|=b&Yd?16:0,a|=b&Zd?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&$d&&(this.o=!1)):(this.h=b,this.o=!0)};k.nd=function(a,b){this.v=b};
var Qd=12,Rd=16,Sd=192,Zd=2,Yd=32,$d=64,xc=1,Td=2,Wd=4,Vd=128,Ud=15,Xd=240,Pd=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Nd=[!1,0,0,133,142,39,238],Id="buffer",Kd={0:Hd.prototype.bd,1:Hd.prototype.ad},Ld={0:Hd.prototype.pd,1:Hd.prototype.od,2:Hd.prototype.nd};Ma(function(){for(var a=x(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Hd(d);ka(d,c)}});
function ae(a,b,c){p.call(this,"Computer",a);this.i.U=!1;be(this,b);this.v=Eb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=ce;this.o=null;this.j=this.C=!1;this.I=Eb(this,"url")||"";(Math.random()+.1).toString(36);this.b=de(this);if(this.m=ja("CPU",this.id)){this.J=ja("Debugger",this.id);this.g=[];for(b=null;b=Ya(this,"Video",b);)this.g.push(b);this.u=new $a({id:this.Ka+".bus",busWidth:this.H},this.m,this.J);var d,e=ha(this.id);if((this.h=ja("Panel",this.id))&&this.h.pa)for(b=
0;b<e.length;b++)d=e[b],d.G=this.h.G,d.aa=this.h.aa,d.pa=this.h.pa;this.aa("PC8080 v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.u,this.m,this.J);b=null;d=Eb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Eb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=ce),this.a&&(this.s=new E(this,"1.34.0"),ee(this.s)?
b=null:delete this.s);!b&&this.a&&(b=fe(this))&&(this.j=!0);if(b){var g=this;Ca(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.o=b,g.C=!0);z(g)})}else z(this);this.w.power||(this.v=!0);!c&&this.v&&ge(this,this.Ta)}else t("Unable to find CPU component")}l(ae,p);function be(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.F=b}
function Eb(a,b,c){var d=b.toLowerCase(),d=Ja(b)||Ja(d);void 0===d&&a.F&&(d=a.F[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ge(a,b,c){for(var d=ha(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!pa(f)){pa(f,function(){ge(a,b,c)});return}}b.call(a,c)}
function he(a,b){var c=new E(a,"1.34.0",ie);if(ee(c)&&je(c)){var d=c.get(ke),e=b?b.get(ke):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ae.prototype;
k.Ta=function(a){void 0===a&&(a=this.a||(this.o?le:ce));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.34.0");if(a==me)b=!0;else if(a>ce){if(ee(d,this.o)){this.f=new E(this,"1.34.0",ne);ee(this.f)&&(oe(this,d),a=pe,qe(this.f));this.f.set(ke,Ba());re(this.f);var e=this.a&&!this.j;if(a==le||ga("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=je(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ee(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Ha(se,""),this.b=null)):this.aa(f+": "+g),qe(d),ee(d)?(c=je(d),e=!0):c=!1))}e&&he(this,c?d:null)}else a==pe&&d.clear()}else he(this);delete this.o;delete this.s}e=ha(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=te(this,g,d,b,c));b=[d,a,c];a!=me?ge(this,this.Yb,b):this.Yb(b)}};
function te(a,b,c,d,e){if(!b.i.U){b.i.U=!0;if(b.ca){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.ca(f,d)&&f&&(t("Unable to restore state for "+b.type),a.A&&!a.C?(c.clear(),a.a=ce,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Tb)for(a=b.Tb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Yb=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.U=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(te(this,this.m,b,c,a),this.m.Sa());this.B&&(oe(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
function oe(a,b){if(ga("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.b||"";b=b.toString();var d={app:"PC8080",ver:"1.34.0"};d.url=a.I;d.user=c;d.type="bug";d.data=b;Ca("http://www.pcjs.org/api/v1/report",d,!0)}}
function ue(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.34.0"),g=new E(a,"1.34.0",ie),h=Ba();g.set(ke,h);f.set(ke,h);f.set(ve,"1.34.0");f.set(we,window?window.location.href:null);f.set(xe,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Ib(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.U=!1,!1===d&&(e=null)));for(var h=ha(a.id),m=0;m<h.length;m++){var q=h[m];q.i.U&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.i.U=!1,!1===d&&(e=null)))}e&&
(c?(h=d=!1,b?(a.b&&ye(a,a.b,f.toString()),re(g)&&re(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==ze),d&&f.clear(h)):e=f.toString());c&&(a.i.U=!1,b=a.w.power)&&(b.textContent="Power");a.c=0;return e}k.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=ha(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
function od(a,b){!b&&a.a&&(a.Ea?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function qd(a,b){a.Ma=b;a.N=!1;if(void 0===a.g||a.g.length!=a.Ma)a.g=Array(a.Ma)}function Bd(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==sd&&(208<=c&&236>c?e=a.O+td:28<=c&&72>c&&(e=a.O+ud));a=a.I[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Ub(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Oa&1?(rc(a.m,2),c=!1):rc(a.m,1):rc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.v,f=!0,g=a.da>>>d.b;0<e&&g<d.a.length;)d.a[g].ja&&(d.a[g].ja=f=!1,d.a[g].Zb=!0),e-=d.c,g++;f&&(c=!1)}Qb(a.m,a.Qa,1E3/Math.max(a.Pa,a.ha));a.Oa++}if(c)if(1<a.M)switch(a.P){case vd:for(var c=a.da,d=-1,e=0,f=60==a.bc?2:5,h=g=0,m=-1;e<a.R;){var q=0,x=c,w=d,L=a.C;for(w!=wd&&(L>>=1);;){var z=hb(a.u,x++);if((z&Cd)==Cd){var v=hb(a.u,x++),d=v&Dd,c=(v&Ed)<<8|hb(a.u,x),c=c+(v&Fd?Gd:
Hd);break}if(q<L)a.X[q++]=z;else break}if(f)f--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=w)for(x=a.N&&a.g[g]==L,a.g[g++]=L,L=0;L<q;L++){z=a.X[L];if(!x||z!==a.g[g]){a.g[m=g]=z;var v=a,F=a.ma,U=z&127;if(z=v.H[w][z&128?1:0]){var Z=(U&15)*z.M,U=(U>>4)*z.K,da,xa,Va,nb,ad=z.M,Zb=z.K;F?(da=L*v.M,xa=e*v.K,Va=v.M,nb=v.K):(da=L*v.wa,xa=e*v.xa,Va=v.wa,nb=v.xa);z.M>v.M&&(da*=2,Va*=2);z.K>v.K&&(w==Ad&&(U+=v.K),Zb=v.K);F?F.drawImage(z.canvas,Z,U,ad,Zb,da,xa,Va,nb):(da+=0,xa+=0,v.c.drawImage(z.canvas,Z,U,ad,Zb,
da,xa,Va,nb))}h++}g++}e++}}a.N=!0;!b&&a.na&&1==h&&(a.g[m]=-1,h=0);a.na=!1;(h||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.K,0,0,a.mb,a.jc)}else{e=a.da;f=e+a.v;m=h=g=0;b=a.j;q=0;c=a.B;w=d=0;x=a.ea;L=(1<<x)-1;a.Sc&&(x=-x,w=16+x);for(;e<f;){v=a.u;F=e;z=F&v.f;Z=(F&v.g)>>>v.b;v=z!=v.f?v.a[Z].ec(z,F):v.a[Z++].hb(z,F)|v.a[Z&v.o].hb(0,F+1)<<8;if(a.N&&v===a.g[g])h+=a.Na;else{a.g[g]=v;(F=w)&&(v=v>>8|(v&255)<<8);h<b&&(b=h);for(z=a.Na;z--;)Z=v>>F&L,Bd(a,a.Ga,h++,m,Z),F+=x;h>q&&(q=h);m<c&&(c=m);m>=d&&(d=m+1)}e+=
2;g++;if(h>=a.j&&(h=0,m++,m>a.B))break}a.N=!0;b<a.j&&(e=q-b,d-=c,a.b&&(f=b,g=e,b=c,e=d,c=a.j-(f+g),d=g),a.ma.putImageData(a.Ga,0,0,b,c,e,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var td=0,ud=1,rd=2,nd=0,sd=1,vd=2,md={SI1978:sd,VT100:vd},wd=96,yd=64,zd=32,Ad=0,Cd=127,Ed=15,Fd=16,Dd=96,Gd=8192,Hd=16384;
Na(function(){for(var a=y(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ka("aspect"));f&&.3<=f&&3.33>=f&&(Ma("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");Ja("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new ld(d,e,g,f,c);ka(d,c)}});
function Id(a){p.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:t("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Jd;b&&(void 0===c&&(c="Panel"),(c=ja(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.ac,receiveData:this.pb,receiveStatus:this.Jd}}l(Id,p);
k=Id.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Jd:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Kd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,c.onclick=function(){e.pb(d);return!0},!0}return!1};
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;var e=this;this.P=Pb(this.m,function(){e.pb()});this.R=Pb(this.m,function(){Uc(e)});this.N=Za(a,"ChipSet");mb(b,this,Ld,this.I);ob(b,this,Md,this.I);A(this)};
k.ac=function(a){if(!this.a){var b=Fb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Aa(c[0]);if(d!=this.Ya)return;c=Aa(c[1]);if(this.a=ia(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Ba=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
k.ca=function(a,b){if(!b)if(this.ac(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Nd(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.T;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Nd(this,a[0])};
function Nd(a,b){var c=0;b||(b=Od);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.T=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Pd(a,b){var c=a.v&b;b&15||(c>>=4);b=Qd[c];c=((a.h&Rd)>>2)+6;a.h&Sd&&c++;c+=((a.h&Td)>>6)+1>>1;return 1E3/Math.round(b/c)}function Kd(a,b){return a.B||a.T&Ud?!1:(a.A=b,a.T|=Ud,rc(a.m,a.O),!0)}
k.pb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Kd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&Qb(this.m,this.P,Pd(this,Vd)));return!0};k.Jd=function(a){this.T&=~Wd;a&64&&(this.T|=Wd)};function Uc(a,b){a.T=a.T|yc|Xd;b&&a.Ba&&a.Ba.call(a.a,b)}k.bd=function(){var a=this.A;this.T&=~Ud;return a};k.ad=function(){return this.T};
k.pd=function(a,b){this.C=b;this.T&=~(yc|Xd);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ba&&this.Ba.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=Ba[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.L||8,c=b-this.f%b,this.L&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;
this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&Qb(this.m,this.R,Pd(this,Yd))};k.od=function(a,b){this.o?(this.s&&(b^this.j)&(Zd|$d)&&(a=0,this.l?(a|=b&Zd?32:0,a|=b&$d?320:0):(a|=b&Zd?16:0,a|=b&$d?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&ae&&(this.o=!1)):(this.h=b,this.o=!0)};k.nd=function(a,b){this.v=b};
var Rd=12,Sd=16,Td=192,$d=2,Zd=32,ae=64,yc=1,Ud=2,Xd=4,Wd=128,Vd=15,Yd=240,Qd=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Od=[!1,0,0,133,142,39,238],Jd="buffer",Ld={0:Id.prototype.bd,1:Id.prototype.ad},Md={0:Id.prototype.pd,1:Id.prototype.od,2:Id.prototype.nd};Na(function(){for(var a=y(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Id(d);ka(d,c)}});
function be(a,b,c){p.call(this,"Computer",a);this.i.U=!1;ce(this,b);this.v=Fb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=de;this.o=null;this.j=this.C=!1;this.I=Fb(this,"url")||"";(Math.random()+.1).toString(36);this.b=ee(this);if(this.m=ja("CPU",this.id)){this.J=ja("Debugger",this.id);this.g=[];for(b=null;b=Za(this,"Video",b);)this.g.push(b);this.u=new ab({id:this.Ka+".bus",busWidth:this.H},this.m,this.J);var d,e=ha(this.id);if((this.h=ja("Panel",this.id))&&this.h.pa)for(b=
0;b<e.length;b++)d=e[b],d.G=this.h.G,d.aa=this.h.aa,d.pa=this.h.pa;this.aa("PC8080 v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.u,this.m,this.J);b=null;d=Fb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Fb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=de),this.a&&(this.s=new E(this,"1.34.0"),fe(this.s)?
b=null:delete this.s);!b&&this.a&&(b=ge(this))&&(this.j=!0);if(b){var g=this;Da(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+Aa(b):"")+")")):(g.o=b,g.C=!0);A(g)})}else A(this);this.w.power||(this.v=!0);!c&&this.v&&he(this,this.Ta)}else t("Unable to find CPU component")}l(be,p);function ce(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.F=b}
function Fb(a,b,c){var d=b.toLowerCase(),d=Ka(b)||Ka(d);void 0===d&&a.F&&(d=a.F[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function he(a,b,c){for(var d=ha(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!qa(f)){qa(f,function(){he(a,b,c)});return}}b.call(a,c)}
function ie(a,b){var c=new E(a,"1.34.0",je);if(fe(c)&&ke(c)){var d=c.get(le),e=b?b.get(le):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=be.prototype;
k.Ta=function(a){void 0===a&&(a=this.a||(this.o?me:de));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.34.0");if(a==ne)b=!0;else if(a>de){if(fe(d,this.o)){this.f=new E(this,"1.34.0",oe);fe(this.f)&&(pe(this,d),a=qe,re(this.f));this.f.set(le,Ca());se(this.f);var e=this.a&&!this.j;if(a==me||ga("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ke(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?fe(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Ia(te,""),this.b=null)):this.aa(f+": "+g),re(d),fe(d)?(c=ke(d),e=!0):c=!1))}e&&ie(this,c?d:null)}else a==qe&&d.clear()}else ie(this);delete this.o;delete this.s}e=ha(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=ue(this,g,d,b,c));b=[d,a,c];a!=ne?he(this,this.Yb,b):this.Yb(b)}};
function ue(a,b,c,d,e){if(!b.i.U){b.i.U=!0;if(b.ca){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.ca(f,d)&&f&&(t("Unable to restore state for "+b.type),a.A&&!a.C?(c.clear(),a.a=de,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Tb)for(a=b.Tb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.Yb=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.U=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(ue(this,this.m,b,c,a),this.m.Sa());this.B&&(pe(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
function pe(a,b){if(ga("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.b||"";b=b.toString();var d={app:"PC8080",ver:"1.34.0"};d.url=a.I;d.user=c;d.type="bug";d.data=b;Da("http://www.pcjs.org/api/v1/report",d,!0)}}
function ve(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.34.0"),g=new E(a,"1.34.0",je),h=Ca();g.set(le,h);f.set(le,h);f.set(we,"1.34.0");f.set(xe,window?window.location.href:null);f.set(ye,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Jb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.U=!1,!1===d&&(e=null)));for(var h=ha(a.id),m=0;m<h.length;m++){var q=h[m];q.i.U&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.i.U=!1,!1===d&&(e=null)))}e&&
(c?(h=d=!1,b?(a.b&&ze(a,a.b,f.toString()),se(g)&&se(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Ae),d&&f.clear(h)):e=f.toString());c&&(a.i.U=!1,b=a.w.power)&&(b.textContent="Power");a.c=0;return e}k.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=ha(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
k.stop=function(a,b){for(var c=ha(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.S=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.c||(d.i.U?ue(d,!1,!0):ge(d,d.Ta))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.U&&!d.c)if(d.a&&!d.l){var a=ga("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ue(d,a,!0);!a&&d.A?window&&window.location.reload():d.Ta(ce)}else d.reset(),d.m&&d.m.Sa()},!0;case "save":if(ua())c.parentNode.removeChild(c);else return this.w[b]=
c,c.onclick=function(){var a=de(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=ue(d,b);b?ye(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function de(a,b){var c=a.b;c||((c=Ga(se),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=Ae(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Ae(a,b){a.b=null;b=Ca(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ha(se,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function fe(a){var b=null;a.b&&(b=va()+"/api/v1/user?req=load&user="+a.b+"&state="+Be(a,"1.34.0"));return b}
function ye(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Be(a,"1.34.0");d.data=c;b=Ca(va()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("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.G(c),Ha(se,""),a.b=null)}}
function Ya(a,b,c){a=ha(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}function Nb(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.L&&a.L.focus();!b&&window&&window.scrollTo(c,d)}}
function Rb(a,b){a.m&&(a=a.m,a.Oa&&(b||!a.i.ka||a.i.Xb)&&(R(a,"A",a.b),R(a,"B",a.g),R(a,"C",a.c),R(a,"BC",bc(a),4),R(a,"D",a.h),R(a,"E",a.f),R(a,"DE",dc(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",G(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=ac(a),R(a,"PS",b,4),R(a,"IF",b&512?1:0,1),R(a,"SF",b&128?1:0,1),R(a,"ZF",b&64?1:0,1),R(a,"AF",b&16?1:0,1),R(a,"PF",b&4?1:0,1),R(a,"CF",b&1?1:0,1)),b=a.w.speed)&&(b.textContent=a.i.ka&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")}
var ne="failsafe",ie="validate",ke="timestamp",ve="version",we="url",xe="browser",se="user",me=-1,ce=0,le=1,pe=2,ze=3;Ma(function(){for(var a=x(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=x(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new ae(g,d,!0);ka(g,f);g.v&&ge(g,g.Ta)}});Na.show.push(function(){for(var a=x(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.N&&!c.i.U&&c.Ta(me)}});
Na.exit.push(function(){for(var a=x(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.i.U&&ue(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.J=a.J;this.b="";this.a={};this.m=this.u=!1;this.key=Be(a,b,c);qe(this,a.Uc)}k=E.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};
function ee(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:Ea()&&(b=Ga(a.key))?(a.b=b,a.m=!0):!1}function je(a){var b=!0;if(!a.u)try{a.a=JSON.parse(a.b),a.u=!0}catch(c){t(c.message||c),b=!1}return b}function re(a){var b=!0;if(Ea()){var c=JSON.stringify(a.a);Ha(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function qe(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
k.clear=function(a){qe(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 Be(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}var Ce=0;
function De(a,b,c,d,e,f){e("Loading "+a+"...");Ca(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Ee(h,a,b,c,d,e,f)})}
function Ee(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ba(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(w){f=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Fe(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
k.S=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.c||(d.i.U?ve(d,!1,!0):he(d,d.Ta))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.U&&!d.c)if(d.a&&!d.l){var a=ga("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ve(d,a,!0);!a&&d.A?window&&window.location.reload():d.Ta(de)}else d.reset(),d.m&&d.m.Sa()},!0;case "save":if(va())c.parentNode.removeChild(c);else return this.w[b]=
c,c.onclick=function(){var a=ee(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=ve(d,b);b?ze(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function ee(a,b){var c=a.b;c||((c=Ha(te),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=Be(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Be(a,b){a.b=null;b=Da(wa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(te,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function ge(a){var b=null;a.b&&(b=wa()+"/api/v1/user?req=load&user="+a.b+"&state="+Ce(a,"1.34.0"));return b}
function ze(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ce(a,"1.34.0");d.data=c;b=Da(wa()+"/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.G("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.G(c),Ia(te,""),a.b=null)}}
function Za(a,b,c){a=ha(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}function Ob(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.L&&a.L.focus();!b&&window&&window.scrollTo(c,d)}}
function Sb(a,b){a.m&&(a=a.m,a.Oa&&(b||!a.i.ka||a.i.Xb)&&(R(a,"A",a.b),R(a,"B",a.g),R(a,"C",a.c),R(a,"BC",cc(a),4),R(a,"D",a.h),R(a,"E",a.f),R(a,"DE",ec(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",G(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=bc(a),R(a,"PS",b,4),R(a,"IF",b&512?1:0,1),R(a,"SF",b&128?1:0,1),R(a,"ZF",b&64?1:0,1),R(a,"AF",b&16?1:0,1),R(a,"PF",b&4?1:0,1),R(a,"CF",b&1?1:0,1)),b=a.w.speed)&&(b.textContent=a.i.ka&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")}
var oe="failsafe",je="validate",le="timestamp",we="version",xe="url",ye="browser",te="user",ne=-1,de=0,me=1,qe=2,Ae=3;Na(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new be(g,d,!0);ka(g,f);g.v&&he(g,g.Ta)}});Oa.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.N&&!c.i.U&&c.Ta(ne)}});
Oa.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=ja("Computer",c.id))&&c.i.U&&ve(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.J=a.J;this.b="";this.a={};this.m=this.u=!1;this.key=Ce(a,b,c);re(this,a.Uc)}k=E.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};
function fe(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:Fa()&&(b=Ha(a.key))?(a.b=b,a.m=!0):!1}function ke(a){var b=!0;if(!a.u)try{a.a=JSON.parse(a.b),a.u=!0}catch(c){t(c.message||c),b=!1}return b}function se(a){var b=!0;if(Fa()){var c=JSON.stringify(a.a);Ia(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function re(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
k.clear=function(a){re(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 Ce(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}var De=0;
function Ee(a,b,c,d,e,f){e("Loading "+a+"...");Da(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Fe(h,a,b,c,d,e,f)})}
function Fe(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(ba(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(x){f=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Ge(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function Fe(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ca(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 m=h[0],q,w=/( [a-z]+=)(['"])(.*?)\2/g;q=w.exec(f);)m=0>m.indexOf(q[1])?m.replace(">",q[0]+">"):m.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Fe(a,b,c)}})}else c(a,null)}
function Ge(a,b,c,d){function e(a){if(void 0===h){var b=g&&x(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);m&&(--Ce||Qa(!0));m=!1}var g,h,m=!0;Ce++;ca[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var w=document.head||document.getElementsByTagName("head")[0],B=document.createElement("style");B.type="text/css";B.styleSheet?B.styleSheet.cssText=q:B.appendChild(document.createTextNode(q));w.appendChild(B)}c||
(c="/versions/pc8080/1.34.0/components.xsl");q=function(d,h){h?De(c,null,null,!1,e,function(d,m){m?(ba(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Ce||Qa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Ce||Qa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?De(b,a,d,!0,e,q):Ee(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(L){f(L.message)}return m}window.embedPC8080=function(a,b,c,d){Qa(!1);return Ge(a,b,c,d)};window.findMachineComponent=function(a,b){return ja(b,a+".machine")};
window.processMachineScript=function(a,b,c){b=!1;if("string"==typeof c){b=!0;for(var d=c.length,e=[],f=[],g="",h=null,m=0;m<d;m++){var q=c[m];if('"'==q||"'"==q)h&&q!=h?g+=q:(h?h=null:h=q,g&&(f.push(g),g=""));else{if(!h){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){g&&(f.push(g),g="");";"==q&&f.length&&(e.push(f),f=[]);continue}}g+=q}}g&&f.push(g);f.length&&e.push(f);la(a+".machine",e,0)||(b=!1)}return b};window.enableEvents=Qa;window.sendEvent=Sa;})();
function Ge(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Da(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 m=h[0],q,x=/( [a-z]+=)(['"])(.*?)\2/g;q=x.exec(f);)m=0>m.indexOf(q[1])?m.replace(">",q[0]+">"):m.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Ge(a,b,c)}})}else c(a,null)}
function He(a,b,c,d){function e(a){if(void 0===h){var b=g&&y(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ya(a))}function f(a){e("Error: "+a);m&&(--De||Ra(!0));m=!1}var g,h,m=!0;De++;ca[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=q:w.appendChild(document.createTextNode(q));x.appendChild(w)}c||
(c="/versions/pc8080/1.34.0/components.xsl");q=function(d,h){h?Ee(c,null,null,!1,e,function(d,m){m?(ba(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--De||Ra(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--De||Ra(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ee(b,a,d,!0,e,q):Fe(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(L){f(L.message)}return m}window.embedPC8080=function(a,b,c,d){Ra(!1);return He(a,b,c,d)};window.findMachineComponent=function(a,b){return ja(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ma[a]){for(var c=!0,d=ma,e=a,f=b.length,g=[],h=[],m="",q=null,x=0;x<f;x++){var w=b[x];if('"'==w||"'"==w)q&&w!=q?m+=w:(q?q=null:q=w,m&&(h.push(m),m=""));else{if(!q){if("\r"==w||"\n"==w)w=";";if(" "==w||"\t"==w||";"==w){m&&(h.push(m),m="");";"==w&&h.length&&(g.push(h),h=[]);continue}}m+=w}}m&&h.push(m);h.length&&g.push(h);d[e]=g;la(a)||(c=!1)}return c};window.enableEvents=Ra;window.sendEvent=Ta;})();