Cleaned up browser support for full-screen and pointer-locking in the Video component, and reduced the default scale factor for mouse movement events from 1.0 to 0.5, since modern screens are generally much higher resolution

This commit is contained in:
Jeff Parsons 2017-08-02 10:37:45 -07:00 committed by Jeff Parsons
commit a3c252bf99
24 changed files with 4060 additions and 4000 deletions

View file

@ -39,274 +39,275 @@ function la(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replac
function ma(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function n(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return ma(a,16,b,c?"0x":"")}function na(a){return n(a,2,!0)}
function q(a){return n(a,4,!0)}function oa(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 pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function qa(){var a=ra();return-1!==a.indexOf("pcjs.org",a.length-8)}function ua(a){return a.replace(/[&<>"']/g,function(a){return va[a]})}function wa(a,b){return(a+" ").slice(0,b)}
function xa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ca={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 Ea(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 Fa(){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 Ga(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 Ha(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 Ea(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 Fa(){var a,b="";a||(a=new Date);for(var c=a.getHours(),d=a.getDate(),e=a.getMonth()+1,f=0;11>f;f++){var g;switch(g="Y-m-d H:i:s".charAt(f)){case "a":b+=12>c?"am":"pm";break;case "d":b+=("0"+d).slice(-2);break;case "D":b+=Ga[a.getDay()].substr(0,3);break;case "F":b+=Ha[e-1];break;case "g":b+=c?12<c?c-12:c:12;break;case "h":b+=c;break;case "H":b+=("0"+c).slice(-2);break;case "i":b+=("0"+a.getMinutes()).slice(-2);break;case "j":b+=d;break;case "l":b+=Ga[a.getDay()];break;case "m":b+=("0"+e).slice(-2);
break;case "M":b+=Ha[e-1].substr(0,3);break;case "n":b+=e;break;case "s":b+=("0"+a.getSeconds()).slice(-2);break;case "y":b+=(""+a.getFullYear()).slice(-2);break;case "Y":b+=a.getFullYear();break;default:b+=g}}return b}function Ia(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}var Ga="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Ha="January February March April May June July August September October November December".split(" ");
function Ja(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 Ia(a,b){var c,d={la:null,ra:null,Pa:null,Ha:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Pa=g.load;d.Ha=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Qf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function ra(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ja(){return window?window.navigator.userAgent:""}function Ka(){if(null==La){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}La=a}return La}function Ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=Ja();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Qa(a){if(!Ra){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ra=c}return Ra[a]||Ra[a.toLowerCase()]}function Sa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ta(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Va(a){Wa.init.push(a)}
function Xa(a){if(Ya)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Za("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function $a(a){!Ya&&a?(Ya=!0,ab&&eb("init"),fb&&eb("show")):Ya=a}function eb(a){Wa[a]&&Xa(Wa[a])}var Ra=null,Wa={init:[],show:[],exit:[]},ab=!1,fb=!1,Ya=!0,La=null;Ua("onload",function(){ab=!0;Xa(Wa.init)});Ua("onpageshow",function(){fb=!0;Xa(Wa.show)});
Ua(Pa("iOS")?"onpagehide":Pa("Opera")?"onunload":"onbeforeunload",function(){Xa(Wa.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Bd=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.Gb=this.id:(this.bb=this.id.substr(0,a),this.Gb=this.id.substr(a+1));this.F={ready:!1,kb:!1,Hb:!1,Rf:!1,ja:!1,Qb:!1,error:!1};this.xb=null;this.F.error=!1;this.ha=c||0;this.K=this.w=this.I=this.R=null;gb.push(this)}
function hb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function jb(){return Date.now()||+new Date}function Za(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function kb(a){var b=!1;window&&(b=window.confirm(a));return b}function lb(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function mb(a,b){b=nb(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=pb(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<gb.length;b++){var d=gb[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function rb(a){if(void 0!==a){var b;for(b=0;b<gb.length;b++)if(gb[b].id===a)return gb[b]}return null}function sb(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<gb.length;d++)if(c)c==gb[d]&&(c=null);else if(!(a!=gb[d].type||b&&gb[d].id.indexOf(b)))return gb[d]}return null}function pb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function nb(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 tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=xb[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=sb(d[1],a);if(h)if(g=yb[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){r("Script error: '"+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}l=u.prototype;
function Ka(a,b){var c,d={ma:null,ra:null,Pa:null,Ha:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Pa=g.load;d.Ha=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.longs)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(e=g.data)?d.Qf=e:d.ma=g;d.ma&&(d.ma.length?1==d.ma.length&&(r(d.ma[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ma=e)}return d}
function ra(){return"http://"+(window?window.location.host:"www.pcjs.org")}function La(){return window?window.navigator.userAgent:""}function Ma(){if(null==Na){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}Na=a}return Na}function Pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(a){if(window){var b=La();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Sa(a){if(!Ta){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," "))}Ta=c}return Ta[a]||Ta[a.toLowerCase()]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Va(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 Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ab("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function eb(a){!$a&&a?($a=!0,fb&&gb("init"),hb&&gb("show")):$a=a}function gb(a){Ya[a]&&Za(Ya[a])}var Ta=null,Ya={init:[],show:[],exit:[]},fb=!1,hb=!1,$a=!0,Na=null;Wa("onload",function(){fb=!0;Za(Ya.init)});Wa("onpageshow",function(){hb=!0;Za(Ya.show)});
Wa(Ra("iOS")?"onpagehide":Ra("Opera")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Bd=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.Gb=this.id:(this.bb=this.id.substr(0,a),this.Gb=this.id.substr(a+1));this.D={ready:!1,kb:!1,Hb:!1,Rf:!1,ja:!1,Qb:!1,error:!1};this.xb=null;this.D.error=!1;this.ha=c||0;this.K=this.w=this.I=this.R=null;ib.push(this)}
function jb(a,b,c){kb[a]&&b&&(kb[a][b]=c)}function lb(){return Date.now()||+new Date}function ab(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function mb(a){var b=!1;window&&(b=window.confirm(a));return b}function nb(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function pb(a,b){b=qb(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=rb(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}function sb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<ib.length;b++){var d=ib[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function tb(a){if(void 0!==a){var b;for(b=0;b<ib.length;b++)if(ib[b].id===a)return ib[b]}return null}function ub(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<ib.length;d++)if(c)c==ib[d]&&(c=null);else if(!(a!=ib[d].type||b&&ib[d].id.indexOf(b)))return ib[d]}return null}function rb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function qb(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 vb(a){for(var b=!0,c=xb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=yb.indexOf(e)&&(f=function(){return function(){vb(a)}}());var g=zb[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=ub(d[1],a);if(h)if(g=Ab[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){r("Script error: '"+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete xb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.da=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.P[b]=c,this.aa=function(a){this.i(a,this.type);return!0},c.value="",this.print=function(a){return function(b){lb(a,b)}}(c),this.i=function(a,b){return function(a,c){a||(a="");if(c!=zb.kd||"..."!=a.slice(-3))c&&(a=c+": "+a),lb(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};l.log=function(){};l.print=function(){};l.i=function(){};l.status=function(a){this.i(this.type+": "+a)};l.aa=function(a,b,c){if(!b){var d=sb("Computer",this.id);if(d&&d.F.Qb)return console.log("ignoring notice during unload: "+a),!1}Za(a,b,c||this.type);return!0};function Ab(a,b){a.F.error=!0;a.aa(b)}
function Bb(a,b){b&&(a.F.ready?b():a.xb=b);return a.F.ready}function Cb(a){if(!a.F.error&&(a.F.ready=!0,a.F.ready)){var b=a.xb;a.xb=null;b&&b()}}function Db(a,b){a.F.kb&&(b?a.F.Hb=!0:void 0===b&&a.i(a.toString()+" busy"));return a.F.kb}function Eb(a,b){if(a.F.Hb)return a.F.kb=!1,a.F.Hb=!1;if(a.F.error)return a.i(a.toString()+" error"),!1;a.F.kb=b;return a.F.kb}l.va=function(){return this.F.ja=!0};l.ua=function(a,b){b&&(this.F.ja=!1);return!0};
function Fb(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.xd)}return!1}function Gb(a,b){a.K&&Fb(a,0)&&a.K.message(b,void 0)}function y(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Hb(a.K,a,b,c,d,e,f,g))}var zb={ERROR:"error",wf:"notice",kd:"progress",SCRIPT:"script",Pf:"warning"};
l.da=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.P[b]=c,this.aa=function(a){this.i(a,this.type);return!0},c.value="",this.print=function(a){return function(b){nb(a,b)}}(c),this.i=function(a,b){return function(a,c){a||(a="");if(c!=Bb.kd||"..."!=a.slice(-3))c&&(a=c+": "+a),nb(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};l.log=function(){};l.print=function(){};l.i=function(){};l.status=function(a){this.i(this.type+": "+a)};l.aa=function(a,b,c){if(!b){var d=ub("Computer",this.id);if(d&&d.D.Qb)return console.log("ignoring notice during unload: "+a),!1}ab(a,b,c||this.type);return!0};function Cb(a,b){a.D.error=!0;a.aa(b)}
function Db(a,b){b&&(a.D.ready?b():a.xb=b);return a.D.ready}function Eb(a){if(!a.D.error&&(a.D.ready=!0,a.D.ready)){var b=a.xb;a.xb=null;b&&b()}}function Fb(a,b){a.D.kb&&(b?a.D.Hb=!0:void 0===b&&a.i(a.toString()+" busy"));return a.D.kb}function Gb(a,b){if(a.D.Hb)return a.D.kb=!1,a.D.Hb=!1;if(a.D.error)return a.i(a.toString()+" error"),!1;a.D.kb=b;return a.D.kb}l.va=function(){return this.D.ja=!0};l.ua=function(a,b){b&&(this.D.ja=!1);return!0};
function Hb(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.xd)}return!1}function Ib(a,b){a.K&&Hb(a,0)&&a.K.message(b,void 0)}function y(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Jb(a.K,a,b,c,d,e,f,g))}var Bb={ERROR:"error",wf:"notice",kd:"progress",SCRIPT:"script",Pf:"warning"};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ib=window?window.PCjs.Machines:{},gb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],xb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},yb={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}};
var kb=window?window.PCjs.Machines:{},ib=window?window.PCjs.Components:[],xb=window?window.PCjs.Commands:{},yb=["hold","sleep","wait"],zb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ab={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});
var Ib="undefined"!==typeof ArrayBuffer,Jb=[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],Kb={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 Lb(a){u.call(this,"Panel",a)}aa(Lb,u);
Lb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.w&&this.w.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:u.prototype.da.call(this,a,b,c,d)};Lb.prototype.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;this.B=Mb(a,"Keyboard")};Lb.prototype.va=function(a,b){b||Nb();return!0};Lb.prototype.ua=function(){return!0};
function Nb(){for(var a=!1,b=nb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=pb(d),f=rb(e.id);f||(a=!0,f=new Lb(e));mb(f,d);a&&Cb(f)}}Va(Nb);
function Ob(a,b,c){u.call(this,"Bus",a);this.w=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.u=1<<this.g;this.O=this.u>>2;this.j=this.u-1;this.L=this.N/this.u|0;this.H=this.L-1;this.A=[];this.B=[];this.D=this.G=!1;this.S=[];this.T=[];a=new A;Pb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Cb(this)}aa(Ob,u);Ob.prototype.reset=function(){};
Ob.prototype.va=function(a,b){b||this.reset();return!0};function Sb(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.u,p=a.u-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.nb+=h.J-e,h.J=e,!0;if(e>=h.J+h.nb){p=h.size-(e-k);p>f&&(p=f);h.nb=e-h.J+p;e=k+a.u;f-=p;g++;continue}}return Tb(Ub,e,f)}e=new A(e,p,a.u,d);Pb(e,a.K,h);a.b[g++]=e;e=k+a.u;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Vb[d]+" at "+q(b)),!0):Tb(Wb,b,c)}
function Xb(a,b){return a.b[(b&a.C)>>>a.g].mb(b&a.j,b)}function Yb(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++].Xa(c,b)|a.b[d&a.H].Xa(0,b+1)<<8}function Zb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Mb(c,b):a.b[d++].mb(c,b)|a.b[d&a.H].mb(0,b+1)<<8}function $b(a,b,c){a.b[(b&a.C)>>>a.g].ob(b&a.j,c&255,b)}function ac(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++].Za(d,c&255,b),a.b[e&a.H].Za(0,c>>8&255,b+1))}
function bc(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Da||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],t=g+1;t<e.length&&e[t]===p;)t++;k[h++]=t-g;k[h++]=p;g=t}k.length<e.length&&(e=k)}c[f]=e}}return c}function cc(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 dc(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]?r("Input port "+q(k)+" already registered"):f.A[k]=[h,!1]}}function ec(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]&&fc(a.K,b,p)):a.K&&(Hb(a.K,a,b,null,c),a.D&&fc(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function gc(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function hc(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]?r("Output port "+q(k)+" already registered"):f.B[k]=[h,!1]}}
function ic(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.G!=g[1]&&jc(a.K,b,k)}else a.K&&(Hb(a.K,a,b,k,d),a.G&&jc(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Tb(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ub=1,Wb=2,kc;if(Ib){var lc=new ArrayBuffer(2);(new DataView(lc)).setUint16(0,256,!0);kc=256===(new Uint16Array(lc))[0]}else kc=!1;var mc=kc;
function A(a,b,c,d){this.id=wc+=2;this.b=null;this.J=a;this.nb=b;this.size=c||0;this.type=d||xc;this.w=d==yc;Pb(this);this.Da=this.Dc=!1;if(c)if(Ib)this.R=new ArrayBuffer(c),this.j=new DataView(this.R,0,c),this.g=new Uint8Array(this.R,0,c),this.u=new Uint16Array(this.R,0,c>>1),this.b=new Int32Array(this.R,0,c>>2),zc(this,mc?Ac:Bc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;zc(this,Cc)}else zc(this)}l=A.prototype;
l.save=function(){var a,b;if(Ib)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.j.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Ib)for(b=0;b<a.length;b++)this.j.setInt32(b<<2,a[b],!0);else this.b=a;return this.Da=!0}return!1};function zc(a,b){b||(b=Dc);Ec(a,b,void 0);Fc(a,b,void 0)}function Ec(a,b,c){c&&a.I||(a.Xa=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.mb=b[0]||a.Gc,a.Mb=b[2]||a.Ic}
function Fc(a,b,c){c&&a.P||(a.Za=!a.w&&b[1]||a.pb,a.Kc=!a.w&&b[3]||a.Rb);if(c||void 0===c)a.ob=b[1]||a.pb,a.Sb=b[3]||a.Rb}l.Oa=function(a,b){b?this.P++||Fc(this,Gc,!1):this.I++||Ec(this,Gc,!1)};function Hc(a,b){b?--a.P||(a.Za=a.w?a.pb:a.ob,a.Kc=a.w?a.Rb:a.Sb):--a.I||(a.Xa=a.mb,a.Hc=a.Mb)}function Pb(a,b,c){a.K=b;a.I=a.P=0;c&&((a.I=c.I)&&Ec(a,Gc,!1),(a.P=c.P)&&Fc(a,Gc,!1))}l.Gc=function(){this.K&&Fb(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.pb=function(a,b){this.K&&Fb(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Ic=function(a,b){return this.Xa(a++,b++)|this.Xa(a,b)<<8};l.Rb=function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)};l.je=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.ne=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.xe=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Da=!0};
l.Be=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.Da=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Ic(c,this.J+a,1,c.M)&&c.ea(!0)}return this.mb(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Ic(c,this.J+a,2,c.M)&&c.ea(!0)}return this.Mb(a,b)};
l.ve=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Ic(d,this.J+a,1,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.ob(a,b,c)};l.ze=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Ic(d,this.J+a,2,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.Sb(a,b,c)};l.ge=function(a){return this.g[a]};l.ie=function(a){return this.g[a]};l.ke=function(a){return this.j.getUint16(a,!0)};l.me=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.u[a>>1]};l.ue=function(a,b){this.g[a]=b;this.Da=!0};
l.we=function(a,b){this.g[a]=b;this.Da=!0};l.ye=function(a,b){this.j.setUint16(a,b,!0);this.Da=!0};l.Ae=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.u[a>>1]=b;this.Da=!0};var xc=0,yc=2,Vb=["NONE","RAM","ROM","VID","H/W"],wc=0,Dc=[],Cc=[A.prototype.je,A.prototype.xe,A.prototype.ne,A.prototype.Be],Gc=[A.prototype.he,A.prototype.ve,A.prototype.le,A.prototype.ze];if(Ib)var Bc=[A.prototype.ge,A.prototype.ue,A.prototype.ke,A.prototype.ye],Ac=[A.prototype.ie,A.prototype.we,A.prototype.me,A.prototype.Ae];
function Jc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.U=c;this.Sa=Math.round(this.za/1E4)/100;this.Z=this.Sa*this.U;this.F.ma=!1;this.F.Pb=!1;this.F.jb=a.autoStart;this.F.Bc=!1;this.F.Va=!1;this.wa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Bb=this.rb.bind(this);Cb(this)}aa(Jc,u);l=Jc.prototype;
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Kc.length;b++)(c=this.P[Kc[b]])&&this.R.da(null,Kc[b],c);this.W=Mb(a,"ChipSet");a=Lc(a,"autoStart");null!=a&&(this.F.jb="true"==a?!0:"false"==a?!1:!!a);Cb(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){Mc(this);if(!this.restore(a))return!1;Nc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Oc(a),a.na&&(b=a.na,a.na=null,Pc(a,b))):this.i("No debugger detected")}Qc(this);return!0};l.ua=function(a){return a?this.save():!0};l.jb=function(){return this.F.jb||!this.K&&void 0===this.P.run?(this.rb(),!0):!1};l.Ec=function(){return 0};
function Nc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.F.Va=0<=a.ya&&0<a.na;a.F.Va&&(a.wa=0,a.oa=a.ya-a.ka)}function Rc(a,b){if(a.F.Va){var c=!1;a.wa=a.wa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Sc(a)&&(a.na=a.sa=-1,Nc(a),a.ea(),c=!0);c&&a.i(Sc(a)+" cycles: checksum="+n(a.wa))}}
l.da=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.F.ja)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.F.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.F.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.F.ready?"powered yet":"ready yet"+(b.xb?" (waiting for notification)":""))+".");a=!1}a&&(d.F.ma?d.ea():d.rb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Tc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Vc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Sa);a.hb=Math.round(1E3/Wc);a.Ma=Math.floor(a.za/Wc*c);b||(a.ta=a.Ma);a.Ua=0}function Sc(a){return a.ka+a.X+a.fa-a.b}function Mc(a){a.Y=0;a.ib=0;a.ka=a.X=a.fa=a.b=0;Nc(a);Tc(a,1)}
function Tc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Sa*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.Ya()}Uc(a,a.X);a.X=0;a.V=jb();a.ba=0;Vc(a);return d}function Xc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Yc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.za*a.U/1E3,a.T[b][0]=c+Zc(a))}function Zc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.rb=function(a){if(Eb(this,!0)){if(!this.F.ma){Tc(this);this.R&&this.R.start(this.V,Sc(this));this.F.ma=!0;this.F.Pb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&($c(this.R,!0),a&&this.R.Ya(!0))}this.Ua>=this.za&&Vc(this,!0);this.Ca=0;this.La=jb();this.ba&&(a=this.La-this.ba,a>this.hb&&(this.V+=a,this.V>this.La&&(this.V=this.La)));try{do{for(var c,d=this.F.Va?1:this.Ma,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.Cb(c);c=Zc(this,!0);
this.Ca+=c;this.X+=c;Rc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Ma;++this.ib>=ad&&(this.R&&$c(this.R),this.ib=0);break}}while(this.F.ma)}catch(k){this.ea();Qc(this);this.R&&this.R.stop(jb(),Sc(this));Eb(this,!1);Ab(this,k.stack||k.message);return}c=setTimeout;d=this.Bb;this.ba=jb();e=this.hb;this.Ca&&(e=Math.round(e*this.Ca/this.Ma));e-=this.ba-this.La;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Tc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Ua+=this.Ca;this.ba+=e;c(d,e)}else Qc(this),this.R&&this.R.stop(jb(),Sc(this))};l.Cb=function(){return 0};l.ea=function(a){Db(this,!0);Zc(this);Uc(this,this.X);this.X=0;if(this.F.ma){this.F.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.F.complete=a};function Qc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)bd(c.A[d],b);$c(a.R,b)}}var Wc=30,ad=15,Kc=["power","reset"];
function cd(a){var b=+a.model||8080;Jc.call(this,a,1E6);this.vb=b;this.eb=pd;Mc(this);this.F.complete=this.F.Ad=!1;this.gb=0;this.Ka=[];this.fb=0;qd(this)}aa(cd,Jc);function rd(a,b){a.Ka.push(b)}l=cd.prototype;l.reset=function(){this.F.ma&&this.ea();qd(this);Mc(this);this.F.error=!1;Jc.prototype.reset.call(this)};function qd(a){a.g=0;a.u=0;a.A=0;a.B=0;a.C=0;a.D=0;a.G=0;a.M=0;B(a,a.fb);sd(a,0);a.S=0}function td(a,b){a.fb=b;B(a,b)}
l.Ec=function(){var a=this.g+this.u+this.A+this.B+this.C+this.D+this.G|0;return a=a+this.M+this.j+ud(this)|0};l.save=function(){var a=new vd(this);a.set(0,[this.g,this.u,this.A,this.B,this.C,this.D,this.G,this.M,this.j,ud(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,bc(this.I));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.u=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.G=b[6];this.M=b[7]&65535;B(this,b[8]);sd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Tc(this,b[3]);a:{b=this.I;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=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.gb++;a=!0;break;default:a=Jc.prototype.da.call(this,a,b,c)}return a};function wd(a){return a.u<<8|a.A}function xd(a,b){a.u=b>>8&255;a.A=b&255}function yd(a){return a.B<<8|a.C}function zd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.G}
function Ad(a,b){a.D=b>>8&255;a.G=b&255}function B(a,b){a.j=b&65535}function Bd(a){return a.H&256?1:0}function Cd(a,b){a.H=a.H&255|b}function Dd(a){return Jb[a.L&255]?4:0}function Ed(a){return(a.L^a.O)&16?16:0}function Fd(a){return a.H&255?0:64}function Gd(a){return a.L&128?128:0}function ud(a){return a.N&-214|Gd(a)|Fd(a)|Ed(a)|Dd(a)|Bd(a)}function sd(a,b){a.H=a.L=a.O=0;b&1&&(a.H|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.H|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Hd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b)&255}function Id(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?1:0))&255}function Jd(a,b){a.H=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.H}function Kd(a,b){a.O=b^255;b=a.L=b+255&255;a.H=a.H&-256|b;return b}function Ld(a,b){a.O=b;b=a.L=b+1&255;a.H=a.H&-256|b;return b}function Md(a,b){return a.L=a.H=a.O=a.g|b}function Nd(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+1^256)&255}
function Od(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?0:1)^256)&255}function Pd(a,b){return a.L=a.H=a.O=a.g^b}function E(a,b){a=a.I;return a.b[(b&a.C)>>>a.g].Xa(b&a.j,b)}function Qd(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].Za(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);B(a,a.j+1);return b}function G(a){var b=Yb(a.I,a.j);B(a,a.j+2);return b}function Rd(a){var b=Yb(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;ac(a.I,a.M,b)}
function Sd(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.eb[199|b<<3].call(a)}return a.S&256?(Zc(a),!1):!0}function Td(a,b){a.S|=1<<b;a.N&512&&Zc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(Ab(a,"Value for "+b+" is invalid"),a.ea()),c=!a.F.ma||a.F.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Cb=function(a){this.F.complete=!0;var b=this.F.Ad=this.K&&Ud(this.K),c=a?this.F.Pb?0:1:-1;this.F.Pb=!1;this.fa=this.b=a;if(Sd(this)){do{if(b){if(Vd(this.K,this.j,c)){this.ea();break}c=1}this.eb[F(this)].call(this)}while(0<this.b)}return this.F.complete?this.fa-this.b:void 0===this.F.complete?0:-1};Va(function(){for(var a=nb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new cd(d);mb(d,c)}});function Wd(){this.b-=4}function Xd(){B(this,G(this));this.b-=10}
function Yd(){B(this,Rd(this));this.b-=10}function Zd(){var a=G(this);H(this,this.j);B(this,a);this.b-=17}
var pd=[Wd,function(){xd(this,G(this));this.b-=10},function(){Qd(this,wd(this),this.g);this.b-=7},function(){xd(this,wd(this)+1);this.b-=5},function(){this.u=Ld(this,this.u);this.b-=5},function(){this.u=Kd(this,this.u);this.b-=5},function(){this.u=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Cd(this,a&256);this.b-=4},Wd,function(){var a;Ad(this,a=D(this)+wd(this));Cd(this,a>>8&256);this.b-=10},function(){this.g=E(this,wd(this));this.b-=7},function(){xd(this,wd(this)-1);this.b-=
5},function(){this.A=Ld(this,this.A);this.b-=5},function(){this.A=Kd(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;Cd(this,a);this.b-=4},Wd,function(){zd(this,G(this));this.b-=10},function(){Qd(this,yd(this),this.g);this.b-=7},function(){zd(this,yd(this)+1);this.b-=5},function(){this.B=Ld(this,this.B);this.b-=5},function(){this.B=Kd(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
Bd(this);Cd(this,a&256);this.b-=4},Wd,function(){var a;Ad(this,a=D(this)+yd(this));Cd(this,a>>8&256);this.b-=10},function(){this.g=E(this,yd(this));this.b-=7},function(){zd(this,yd(this)-1);this.b-=5},function(){this.C=Ld(this,this.C);this.b-=5},function(){this.C=Kd(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(Bd(this)<<8|this.g)>>1;Cd(this,a&256);this.b-=4},Wd,function(){Ad(this,G(this));this.b-=10},function(){var a=G(this);ac(this.I,a,D(this));
this.b-=16},function(){Ad(this,D(this)+1);this.b-=5},function(){this.D=Ld(this,this.D);this.b-=5},function(){this.D=Kd(this,this.D);this.b-=5},function(){this.D=F(this);this.b-=7},function(){var a=0,b=Bd(this);if(Ed(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=Hd(this,a);Cd(this,b?256:0);this.b-=4},Wd,function(){var a;Ad(this,a=D(this)+D(this));Cd(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=Yb(this.I,a);Ad(this,a);this.b-=16},function(){Ad(this,D(this)-1);this.b-=5},function(){this.G=
Ld(this,this.G);this.b-=5},function(){this.G=Kd(this,this.G);this.b-=5},function(){this.G=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Wd,function(){this.M=G(this)&65535;this.b-=10},function(){Qd(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Qd(this,a,Ld(this,E(this,a)));this.b-=10},function(){var a=D(this);Qd(this,a,Kd(this,E(this,a)));this.b-=10},function(){Qd(this,D(this),F(this));this.b-=10},function(){this.H|=256;this.b-=
4},Wd,function(){var a;Ad(this,a=D(this)+this.M);Cd(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=Ld(this,this.g);this.b-=5},function(){this.g=Kd(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){Cd(this,Bd(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.u=this.A;this.b-=5},function(){this.u=this.B;this.b-=5},function(){this.u=this.C;this.b-=5},function(){this.u=this.D;this.b-=
5},function(){this.u=this.G;this.b-=5},function(){this.u=E(this,D(this));this.b-=7},function(){this.u=this.g;this.b-=5},function(){this.A=this.u;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.G;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.u;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.G;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.u;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.G;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.u;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.G;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.G=this.u;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.b-=5},function(){this.G=E(this,D(this));this.b-=7},function(){this.G=this.g;
this.b-=5},function(){Qd(this,D(this),this.u);this.b-=7},function(){Qd(this,D(this),this.A);this.b-=7},function(){Qd(this,D(this),this.B);this.b-=7},function(){Qd(this,D(this),this.C);this.b-=7},function(){Qd(this,D(this),this.D);this.b-=7},function(){Qd(this,D(this),this.G);this.b-=7},function(){var a=this.j-1;if(this.Ka.length)for(var b=0;b<this.Ka.length;b++)if(this.Ka[b](a))return;this.b-=7;this.S|=256;Zc(this);this.K&&Fb(this,-2147483648)?(B(this,a),this.K.ea()):this.N&512||(this.K&&B(this,a),
this.ea())},function(){Qd(this,D(this),this.g);this.b-=7},function(){this.g=this.u;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.G;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Hd(this,this.u);this.b-=4},function(){this.g=Hd(this,this.A);this.b-=4},function(){this.g=Hd(this,this.B);this.b-=4},function(){this.g=Hd(this,
this.C);this.b-=4},function(){this.g=Hd(this,this.D);this.b-=4},function(){this.g=Hd(this,this.G);this.b-=4},function(){this.g=Hd(this,E(this,D(this)));this.b-=7},function(){this.g=Hd(this,this.g);this.b-=4},function(){this.g=Id(this,this.u);this.b-=4},function(){this.g=Id(this,this.A);this.b-=4},function(){this.g=Id(this,this.B);this.b-=4},function(){this.g=Id(this,this.C);this.b-=4},function(){this.g=Id(this,this.D);this.b-=4},function(){this.g=Id(this,this.G);this.b-=4},function(){this.g=Id(this,
E(this,D(this)));this.b-=7},function(){this.g=Id(this,this.g);this.b-=4},function(){this.g=Nd(this,this.u);this.b-=4},function(){this.g=Nd(this,this.A);this.b-=4},function(){this.g=Nd(this,this.B);this.b-=4},function(){this.g=Nd(this,this.C);this.b-=4},function(){this.g=Nd(this,this.D);this.b-=4},function(){this.g=Nd(this,this.G);this.b-=4},function(){this.g=Nd(this,E(this,D(this)));this.b-=7},function(){this.g=Nd(this,this.g);this.b-=4},function(){this.g=Od(this,this.u);this.b-=4},function(){this.g=
Od(this,this.A);this.b-=4},function(){this.g=Od(this,this.B);this.b-=4},function(){this.g=Od(this,this.C);this.b-=4},function(){this.g=Od(this,this.D);this.b-=4},function(){this.g=Od(this,this.G);this.b-=4},function(){this.g=Od(this,E(this,D(this)));this.b-=7},function(){this.g=Od(this,this.g);this.b-=4},function(){this.g=Jd(this,this.u);this.b-=4},function(){this.g=Jd(this,this.A);this.b-=4},function(){this.g=Jd(this,this.B);this.b-=4},function(){this.g=Jd(this,this.C);this.b-=4},function(){this.g=
Jd(this,this.D);this.b-=4},function(){this.g=Jd(this,this.G);this.b-=4},function(){this.g=Jd(this,E(this,D(this)));this.b-=7},function(){this.g=Jd(this,this.g);this.b-=4},function(){this.g=Pd(this,this.u);this.b-=4},function(){this.g=Pd(this,this.A);this.b-=4},function(){this.g=Pd(this,this.B);this.b-=4},function(){this.g=Pd(this,this.C);this.b-=4},function(){this.g=Pd(this,this.D);this.b-=4},function(){this.g=Pd(this,this.G);this.b-=4},function(){this.g=Pd(this,E(this,D(this)));this.b-=7},function(){this.g=
Pd(this,this.g);this.b-=4},function(){this.g=Md(this,this.u);this.b-=4},function(){this.g=Md(this,this.A);this.b-=4},function(){this.g=Md(this,this.B);this.b-=4},function(){this.g=Md(this,this.C);this.b-=4},function(){this.g=Md(this,this.D);this.b-=4},function(){this.g=Md(this,this.G);this.b-=4},function(){this.g=Md(this,E(this,D(this)));this.b-=7},function(){this.g=Md(this,this.g);this.b-=4},function(){Nd(this,this.u);this.b-=4},function(){Nd(this,this.A);this.b-=4},function(){Nd(this,this.B);this.b-=
4},function(){Nd(this,this.C);this.b-=4},function(){Nd(this,this.D);this.b-=4},function(){Nd(this,this.G);this.b-=4},function(){Nd(this,E(this,D(this)));this.b-=7},function(){Nd(this,this.g);this.b-=4},function(){Fd(this)||(B(this,Rd(this)),this.b-=6);this.b-=5},function(){xd(this,Rd(this));this.b-=10},function(){var a=G(this);Fd(this)||B(this,a);this.b-=10},Xd,function(){var a=G(this);Fd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,wd(this));this.b-=11},function(){this.g=
Hd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,0);this.b-=11},function(){Fd(this)&&(B(this,Rd(this)),this.b-=6);this.b-=5},Yd,function(){var a=G(this);Fd(this)&&B(this,a);this.b-=10},Xd,function(){var a=G(this);Fd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Zd,function(){this.g=Id(this,F(this));this.b-=7},function(){H(this,this.j);B(this,8);this.b-=11},function(){Bd(this)||(B(this,Rd(this)),this.b-=6);this.b-=5},function(){zd(this,Rd(this));this.b-=10},function(){var a=G(this);
Bd(this)||B(this,a);this.b-=10},function(){var a=F(this);ic(this.I,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);Bd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,yd(this));this.b-=11},function(){this.g=Nd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,16);this.b-=11},function(){Bd(this)&&(B(this,Rd(this)),this.b-=6);this.b-=5},Yd,function(){var a=G(this);Bd(this)&&B(this,a);this.b-=10},function(){var a=F(this);this.g=ec(this.I,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);Bd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Zd,function(){this.g=Od(this,F(this));this.b-=7},function(){H(this,this.j);B(this,24);this.b-=11},function(){Dd(this)||(B(this,Rd(this)),this.b-=6);this.b-=5},function(){Ad(this,Rd(this));this.b-=10},function(){var a=G(this);Dd(this)||B(this,a);this.b-=10},function(){var a=Rd(this);H(this,D(this));Ad(this,a);this.b-=18},function(){var a=G(this);Dd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=Jd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,32);this.b-=11},function(){Dd(this)&&(B(this,Rd(this)),this.b-=6);this.b-=5},function(){B(this,D(this));this.b-=5},function(){var a=G(this);Dd(this)&&B(this,a);this.b-=10},function(){var a=D(this);Ad(this,yd(this));zd(this,a);this.b-=5},function(){var a=G(this);Dd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Zd,function(){this.g=Pd(this,F(this));this.b-=7},function(){H(this,
this.j);B(this,40);this.b-=11},function(){Gd(this)||(B(this,Rd(this)),this.b-=6);this.b-=5},function(){var a=Rd(this);sd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Gd(this)||B(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Gd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,ud(this)&255|this.g<<8);this.b-=11},function(){this.g=Md(this,F(this));this.b-=7},function(){H(this,this.j);B(this,48);this.b-=11},function(){Gd(this)&&
(B(this,Rd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Gd(this)&&B(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Sd(this)},function(){var a=G(this);Gd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Zd,function(){Nd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,56);this.b-=11}];
function $d(a){u.call(this,"ChipSet",a,32768);var b=a.model;b&&!ae[b]&&Za("Unrecognized ChipSet model: "+b);this.g=ae[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Cb(this)}aa($d,u);l=$d.prototype;l.da=function(){return!1};
l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;this.R=a;this.B=Mb(a,"Keyboard");this.C=Mb(a,"SerialPort");this.video=Mb(a,"Video");dc(b,this,this.g.zb);hc(b,this,this.g.Ab);if(d){var e=this;be(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(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 vd(this);switch(this.g.pa){case ce.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.G,this.H]),a.set(2,[this.u,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 ce.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.G=b[0],this.H=b[1],b=a[2],this.u=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.Kd=function(a,b){var c=this.ba;y(this,a,null,b,"STATUS0",c,!0);return c};
var Kb="undefined"!==typeof ArrayBuffer,Lb=[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],Mb={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 Nb(a){u.call(this,"Panel",a)}aa(Nb,u);
Nb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.w&&this.w.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:u.prototype.da.call(this,a,b,c,d)};Nb.prototype.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;this.B=Ob(a,"Keyboard")};Nb.prototype.va=function(a,b){b||Pb();return!0};Nb.prototype.ua=function(){return!0};
function Pb(){for(var a=!1,b=qb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=rb(d),f=tb(e.id);f||(a=!0,f=new Nb(e));pb(f,d);a&&Eb(f)}}Xa(Pb);
function Sb(a,b,c){u.call(this,"Bus",a);this.w=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.u=1<<this.g;this.O=this.u>>2;this.j=this.u-1;this.L=this.N/this.u|0;this.H=this.L-1;this.A=[];this.B=[];this.F=this.G=!1;this.S=[];this.T=[];a=new A;Tb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Eb(this)}aa(Sb,u);Sb.prototype.reset=function(){};
Sb.prototype.va=function(a,b){b||this.reset();return!0};function Ub(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.u,p=a.u-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.nb+=h.J-e,h.J=e,!0;if(e>=h.J+h.nb){p=h.size-(e-k);p>f&&(p=f);h.nb=e-h.J+p;e=k+a.u;f-=p;g++;continue}}return Vb(Wb,e,f)}e=new A(e,p,a.u,d);Tb(e,a.K,h);a.b[g++]=e;e=k+a.u;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Xb[d]+" at "+q(b)),!0):Vb(Yb,b,c)}
function Zb(a,b){return a.b[(b&a.C)>>>a.g].mb(b&a.j,b)}function $b(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++].Xa(c,b)|a.b[d&a.H].Xa(0,b+1)<<8}function ac(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Mb(c,b):a.b[d++].mb(c,b)|a.b[d&a.H].mb(0,b+1)<<8}function bc(a,b,c){a.b[(b&a.C)>>>a.g].ob(b&a.j,c&255,b)}function cc(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++].Za(d,c&255,b),a.b[e&a.H].Za(0,c>>8&255,b+1))}
function dc(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Da||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],t=g+1;t<e.length&&e[t]===p;)t++;k[h++]=t-g;k[h++]=p;g=t}k.length<e.length&&(e=k)}c[f]=e}}return c}function ec(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function fc(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]?r("Input port "+q(k)+" already registered"):f.A[k]=[h,!1]}}function gc(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.F!=g[1]&&hc(a.K,b,p)):a.K&&(Jb(a.K,a,b,null,c),a.F&&hc(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function ic(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function jc(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]?r("Output port "+q(k)+" already registered"):f.B[k]=[h,!1]}}
function kc(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.G!=g[1]&&lc(a.K,b,k)}else a.K&&(Jb(a.K,a,b,k,d),a.G&&lc(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Vb(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Wb=1,Yb=2,mc;if(Kb){var wc=new ArrayBuffer(2);(new DataView(wc)).setUint16(0,256,!0);mc=256===(new Uint16Array(wc))[0]}else mc=!1;var xc=mc;
function A(a,b,c,d){this.id=yc+=2;this.b=null;this.J=a;this.nb=b;this.size=c||0;this.type=d||zc;this.w=d==Ac;Tb(this);this.Da=this.Dc=!1;if(c)if(Kb)this.R=new ArrayBuffer(c),this.j=new DataView(this.R,0,c),this.g=new Uint8Array(this.R,0,c),this.u=new Uint16Array(this.R,0,c>>1),this.b=new Int32Array(this.R,0,c>>2),Bc(this,xc?Cc:Dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Bc(this,Ec)}else Bc(this)}l=A.prototype;
l.save=function(){var a,b;if(Kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.j.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Kb)for(b=0;b<a.length;b++)this.j.setInt32(b<<2,a[b],!0);else this.b=a;return this.Da=!0}return!1};function Bc(a,b){b||(b=Fc);Gc(a,b,void 0);Hc(a,b,void 0)}function Gc(a,b,c){c&&a.I||(a.Xa=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.mb=b[0]||a.Gc,a.Mb=b[2]||a.Ic}
function Hc(a,b,c){c&&a.P||(a.Za=!a.w&&b[1]||a.pb,a.Kc=!a.w&&b[3]||a.Rb);if(c||void 0===c)a.ob=b[1]||a.pb,a.Sb=b[3]||a.Rb}l.Oa=function(a,b){b?this.P++||Hc(this,Ic,!1):this.I++||Gc(this,Ic,!1)};function Jc(a,b){b?--a.P||(a.Za=a.w?a.pb:a.ob,a.Kc=a.w?a.Rb:a.Sb):--a.I||(a.Xa=a.mb,a.Hc=a.Mb)}function Tb(a,b,c){a.K=b;a.I=a.P=0;c&&((a.I=c.I)&&Gc(a,Ic,!1),(a.P=c.P)&&Hc(a,Ic,!1))}l.Gc=function(){this.K&&Hb(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.pb=function(a,b){this.K&&Hb(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Ic=function(a,b){return this.Xa(a++,b++)|this.Xa(a,b)<<8};l.Rb=function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)};l.je=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.ne=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.xe=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Da=!0};
l.Be=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.Da=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Kc(c,this.J+a,1,c.M)&&c.ea(!0)}return this.mb(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Kc(c,this.J+a,2,c.M)&&c.ea(!0)}return this.Mb(a,b)};
l.ve=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Kc(d,this.J+a,1,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.ob(a,b,c)};l.ze=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Kc(d,this.J+a,2,d.B)&&d.ea(!0)}this.w?this.pb(0,b):this.Sb(a,b,c)};l.ge=function(a){return this.g[a]};l.ie=function(a){return this.g[a]};l.ke=function(a){return this.j.getUint16(a,!0)};l.me=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.u[a>>1]};l.ue=function(a,b){this.g[a]=b;this.Da=!0};
l.we=function(a,b){this.g[a]=b;this.Da=!0};l.ye=function(a,b){this.j.setUint16(a,b,!0);this.Da=!0};l.Ae=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.u[a>>1]=b;this.Da=!0};var zc=0,Ac=2,Xb=["NONE","RAM","ROM","VID","H/W"],yc=0,Fc=[],Ec=[A.prototype.je,A.prototype.xe,A.prototype.ne,A.prototype.Be],Ic=[A.prototype.he,A.prototype.ve,A.prototype.le,A.prototype.ze];if(Kb)var Dc=[A.prototype.ge,A.prototype.ue,A.prototype.ke,A.prototype.ye],Cc=[A.prototype.ie,A.prototype.we,A.prototype.me,A.prototype.Ae];
function Lc(a,b){u.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.U=c;this.Sa=Math.round(this.za/1E4)/100;this.Z=this.Sa*this.U;this.D.ka=!1;this.D.Pb=!1;this.D.jb=a.autoStart;this.D.Bc=!1;this.D.Va=!1;this.wa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Bb=this.rb.bind(this);Eb(this)}aa(Lc,u);l=Lc.prototype;
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Mc.length;b++)(c=this.P[Mc[b]])&&this.R.da(null,Mc[b],c);this.W=Ob(a,"ChipSet");a=Nc(a,"autoStart");null!=a&&(this.D.jb="true"==a?!0:"false"==a?!1:!!a);Eb(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){Oc(this);if(!this.restore(a))return!1;Pc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Qc(a),a.na&&(b=a.na,a.na=null,Rc(a,b))):this.i("No debugger detected")}Sc(this);return!0};l.ua=function(a){return a?this.save():!0};l.jb=function(){return this.D.jb||!this.K&&void 0===this.P.run?(this.rb(),!0):!1};l.Ec=function(){return 0};
function Pc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.D.Va=0<=a.ya&&0<a.na;a.D.Va&&(a.wa=0,a.oa=a.ya-a.la)}function Tc(a,b){if(a.D.Va){var c=!1;a.wa=a.wa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Uc(a)&&(a.na=a.sa=-1,Pc(a),a.ea(),c=!0);c&&a.i(Uc(a)+" cycles: checksum="+n(a.wa))}}
l.da=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.D.ja)a=!0;else{var b=null,c,h=sb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.D.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.D.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.D.ready?"powered yet":"ready yet"+(b.xb?" (waiting for notification)":""))+".");a=!1}a&&(d.D.ka?d.ea():d.rb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Vc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Wc(a,b,c){a.la+=b;c&&(a.fa=a.b=0)}function Xc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Sa);a.hb=Math.round(1E3/Yc);a.Ma=Math.floor(a.za/Yc*c);b||(a.ta=a.Ma);a.Ua=0}function Uc(a){return a.la+a.X+a.fa-a.b}function Oc(a){a.Y=0;a.ib=0;a.la=a.X=a.fa=a.b=0;Pc(a);Vc(a,1)}
function Vc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Sa*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.Ya()}Wc(a,a.X);a.X=0;a.V=lb();a.ba=0;Xc(a);return d}function Zc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function $c(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c=a.za*a.U/1E3*c|0,a.D.ka&&(c+=ad(a)),a.T[b][0]=c)}function ad(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.rb=function(a){if(Gb(this,!0)){if(!this.D.ka){Vc(this);this.R&&this.R.start(this.V,Uc(this));this.D.ka=!0;this.D.Pb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(bd(this.R,!0),a&&this.R.Ya(!0))}this.Ua>=this.za&&Xc(this,!0);this.Ca=0;this.La=lb();this.ba&&(a=this.La-this.ba,a>this.hb&&(this.V+=a,this.V>this.La&&(this.V=this.La)));try{do{for(var c,d=this.D.Va?1:this.Ma,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.Cb(c);c=ad(this,!0);
this.Ca+=c;this.X+=c;Tc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Ma;++this.ib>=cd&&(this.R&&bd(this.R),this.ib=0);break}}while(this.D.ka)}catch(k){this.ea();Sc(this);this.R&&this.R.stop(lb(),Uc(this));Gb(this,!1);Cb(this,k.stack||k.message);return}c=setTimeout;d=this.Bb;this.ba=lb();e=this.hb;this.Ca&&(e=Math.round(e*this.Ca/this.Ma));e-=this.ba-this.La;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.la=0,Vc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Ua+=this.Ca;this.ba+=e;c(d,e)}else Sc(this),this.R&&this.R.stop(lb(),Uc(this))};l.Cb=function(){return 0};l.ea=function(a){Fb(this,!0);ad(this);Wc(this,this.X);this.X=0;if(this.D.ka){this.D.ka=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.D.complete=a};function Sc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)pd(c.A[d],b);bd(a.R,b)}}var Yc=30,cd=15,Mc=["power","reset"];
function qd(a){var b=+a.model||8080;Lc.call(this,a,1E6);this.vb=b;this.eb=rd;Oc(this);this.D.complete=this.D.Ad=!1;this.gb=0;this.Ka=[];this.fb=0;sd(this)}aa(qd,Lc);function td(a,b){a.Ka.push(b)}l=qd.prototype;l.reset=function(){this.D.ka&&this.ea();sd(this);Oc(this);this.D.error=!1;Lc.prototype.reset.call(this)};function sd(a){a.g=0;a.u=0;a.A=0;a.B=0;a.C=0;a.F=0;a.G=0;a.M=0;B(a,a.fb);ud(a,0);a.S=0}function vd(a,b){a.fb=b;B(a,b)}
l.Ec=function(){var a=this.g+this.u+this.A+this.B+this.C+this.F+this.G|0;return a=a+this.M+this.j+wd(this)|0};l.save=function(){var a=new xd(this);a.set(0,[this.g,this.u,this.A,this.B,this.C,this.F,this.G,this.M,this.j,wd(this)]);a.set(1,[this.S,this.la,this.U]);a.set(2,dc(this.I));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.u=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.F=b[5];this.G=b[6];this.M=b[7]&65535;B(this,b[8]);ud(this,b[9]);b=a[1];this.S=b[0];this.la=b[1];Vc(this,b[3]);a:{b=this.I;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=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.gb++;a=!0;break;default:a=Lc.prototype.da.call(this,a,b,c)}return a};function yd(a){return a.u<<8|a.A}function zd(a,b){a.u=b>>8&255;a.A=b&255}function Ad(a){return a.B<<8|a.C}function Bd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.F<<8|a.G}
function Cd(a,b){a.F=b>>8&255;a.G=b&255}function B(a,b){a.j=b&65535}function Dd(a){return a.H&256?1:0}function Ed(a,b){a.H=a.H&255|b}function Fd(a){return Lb[a.L&255]?4:0}function Gd(a){return(a.L^a.O)&16?16:0}function Hd(a){return a.H&255?0:64}function Id(a){return a.L&128?128:0}function wd(a){return a.N&-214|Id(a)|Hd(a)|Gd(a)|Fd(a)|Dd(a)}function ud(a,b){a.H=a.L=a.O=0;b&1&&(a.H|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.H|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Jd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b)&255}function Kd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?1:0))&255}function Ld(a,b){a.H=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.H}function Md(a,b){a.O=b^255;b=a.L=b+255&255;a.H=a.H&-256|b;return b}function Nd(a,b){a.O=b;b=a.L=b+1&255;a.H=a.H&-256|b;return b}function Od(a,b){return a.L=a.H=a.O=a.g|b}function Pd(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+1^256)&255}
function Qd(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?0:1)^256)&255}function Rd(a,b){return a.L=a.H=a.O=a.g^b}function E(a,b){a=a.I;return a.b[(b&a.C)>>>a.g].Xa(b&a.j,b)}function Sd(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].Za(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);B(a,a.j+1);return b}function G(a){var b=$b(a.I,a.j);B(a,a.j+2);return b}function Td(a){var b=$b(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;cc(a.I,a.M,b)}
function Ud(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.eb[199|b<<3].call(a)}return a.S&256?(ad(a),!1):!0}function Vd(a,b){a.S|=1<<b;a.N&512&&ad(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(Cb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.D.ka||a.D.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Cb=function(a){this.D.complete=!0;var b=this.D.Ad=this.K&&Wd(this.K),c=a?this.D.Pb?0:1:-1;this.D.Pb=!1;this.fa=this.b=a;if(Ud(this)){do{if(b){if(Xd(this.K,this.j,c)){this.ea();break}c=1}this.eb[F(this)].call(this)}while(0<this.b)}return this.D.complete?this.fa-this.b:void 0===this.D.complete?0:-1};Xa(function(){for(var a=qb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new qd(d);pb(d,c)}});function Yd(){this.b-=4}function Zd(){B(this,G(this));this.b-=10}
function $d(){B(this,Td(this));this.b-=10}function ae(){var a=G(this);H(this,this.j);B(this,a);this.b-=17}
var rd=[Yd,function(){zd(this,G(this));this.b-=10},function(){Sd(this,yd(this),this.g);this.b-=7},function(){zd(this,yd(this)+1);this.b-=5},function(){this.u=Nd(this,this.u);this.b-=5},function(){this.u=Md(this,this.u);this.b-=5},function(){this.u=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Ed(this,a&256);this.b-=4},Yd,function(){var a;Cd(this,a=D(this)+yd(this));Ed(this,a>>8&256);this.b-=10},function(){this.g=E(this,yd(this));this.b-=7},function(){zd(this,yd(this)-1);this.b-=
5},function(){this.A=Nd(this,this.A);this.b-=5},function(){this.A=Md(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;Ed(this,a);this.b-=4},Yd,function(){Bd(this,G(this));this.b-=10},function(){Sd(this,Ad(this),this.g);this.b-=7},function(){Bd(this,Ad(this)+1);this.b-=5},function(){this.B=Nd(this,this.B);this.b-=5},function(){this.B=Md(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
Dd(this);Ed(this,a&256);this.b-=4},Yd,function(){var a;Cd(this,a=D(this)+Ad(this));Ed(this,a>>8&256);this.b-=10},function(){this.g=E(this,Ad(this));this.b-=7},function(){Bd(this,Ad(this)-1);this.b-=5},function(){this.C=Nd(this,this.C);this.b-=5},function(){this.C=Md(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(Dd(this)<<8|this.g)>>1;Ed(this,a&256);this.b-=4},Yd,function(){Cd(this,G(this));this.b-=10},function(){var a=G(this);cc(this.I,a,D(this));
this.b-=16},function(){Cd(this,D(this)+1);this.b-=5},function(){this.F=Nd(this,this.F);this.b-=5},function(){this.F=Md(this,this.F);this.b-=5},function(){this.F=F(this);this.b-=7},function(){var a=0,b=Dd(this);if(Gd(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=Jd(this,a);Ed(this,b?256:0);this.b-=4},Yd,function(){var a;Cd(this,a=D(this)+D(this));Ed(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=$b(this.I,a);Cd(this,a);this.b-=16},function(){Cd(this,D(this)-1);this.b-=5},function(){this.G=
Nd(this,this.G);this.b-=5},function(){this.G=Md(this,this.G);this.b-=5},function(){this.G=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Yd,function(){this.M=G(this)&65535;this.b-=10},function(){Sd(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Sd(this,a,Nd(this,E(this,a)));this.b-=10},function(){var a=D(this);Sd(this,a,Md(this,E(this,a)));this.b-=10},function(){Sd(this,D(this),F(this));this.b-=10},function(){this.H|=256;this.b-=
4},Yd,function(){var a;Cd(this,a=D(this)+this.M);Ed(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=Nd(this,this.g);this.b-=5},function(){this.g=Md(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){Ed(this,Dd(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.u=this.A;this.b-=5},function(){this.u=this.B;this.b-=5},function(){this.u=this.C;this.b-=5},function(){this.u=this.F;this.b-=
5},function(){this.u=this.G;this.b-=5},function(){this.u=E(this,D(this));this.b-=7},function(){this.u=this.g;this.b-=5},function(){this.A=this.u;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.F;this.b-=5},function(){this.A=this.G;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.u;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.F;this.b-=5},function(){this.B=this.G;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.u;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.F;this.b-=5},function(){this.C=this.G;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.F=this.u;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.b-=5},function(){this.F=this.G;this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;this.b-=5},function(){this.G=this.u;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.F;this.b-=5},function(){this.b-=5},function(){this.G=E(this,D(this));this.b-=7},function(){this.G=this.g;
this.b-=5},function(){Sd(this,D(this),this.u);this.b-=7},function(){Sd(this,D(this),this.A);this.b-=7},function(){Sd(this,D(this),this.B);this.b-=7},function(){Sd(this,D(this),this.C);this.b-=7},function(){Sd(this,D(this),this.F);this.b-=7},function(){Sd(this,D(this),this.G);this.b-=7},function(){var a=this.j-1;if(this.Ka.length)for(var b=0;b<this.Ka.length;b++)if(this.Ka[b](a))return;this.b-=7;this.S|=256;ad(this);this.K&&Hb(this,-2147483648)?(B(this,a),this.K.ea()):this.N&512||(this.K&&B(this,a),
this.ea())},function(){Sd(this,D(this),this.g);this.b-=7},function(){this.g=this.u;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.F;this.b-=5},function(){this.g=this.G;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Jd(this,this.u);this.b-=4},function(){this.g=Jd(this,this.A);this.b-=4},function(){this.g=Jd(this,this.B);this.b-=4},function(){this.g=Jd(this,
this.C);this.b-=4},function(){this.g=Jd(this,this.F);this.b-=4},function(){this.g=Jd(this,this.G);this.b-=4},function(){this.g=Jd(this,E(this,D(this)));this.b-=7},function(){this.g=Jd(this,this.g);this.b-=4},function(){this.g=Kd(this,this.u);this.b-=4},function(){this.g=Kd(this,this.A);this.b-=4},function(){this.g=Kd(this,this.B);this.b-=4},function(){this.g=Kd(this,this.C);this.b-=4},function(){this.g=Kd(this,this.F);this.b-=4},function(){this.g=Kd(this,this.G);this.b-=4},function(){this.g=Kd(this,
E(this,D(this)));this.b-=7},function(){this.g=Kd(this,this.g);this.b-=4},function(){this.g=Pd(this,this.u);this.b-=4},function(){this.g=Pd(this,this.A);this.b-=4},function(){this.g=Pd(this,this.B);this.b-=4},function(){this.g=Pd(this,this.C);this.b-=4},function(){this.g=Pd(this,this.F);this.b-=4},function(){this.g=Pd(this,this.G);this.b-=4},function(){this.g=Pd(this,E(this,D(this)));this.b-=7},function(){this.g=Pd(this,this.g);this.b-=4},function(){this.g=Qd(this,this.u);this.b-=4},function(){this.g=
Qd(this,this.A);this.b-=4},function(){this.g=Qd(this,this.B);this.b-=4},function(){this.g=Qd(this,this.C);this.b-=4},function(){this.g=Qd(this,this.F);this.b-=4},function(){this.g=Qd(this,this.G);this.b-=4},function(){this.g=Qd(this,E(this,D(this)));this.b-=7},function(){this.g=Qd(this,this.g);this.b-=4},function(){this.g=Ld(this,this.u);this.b-=4},function(){this.g=Ld(this,this.A);this.b-=4},function(){this.g=Ld(this,this.B);this.b-=4},function(){this.g=Ld(this,this.C);this.b-=4},function(){this.g=
Ld(this,this.F);this.b-=4},function(){this.g=Ld(this,this.G);this.b-=4},function(){this.g=Ld(this,E(this,D(this)));this.b-=7},function(){this.g=Ld(this,this.g);this.b-=4},function(){this.g=Rd(this,this.u);this.b-=4},function(){this.g=Rd(this,this.A);this.b-=4},function(){this.g=Rd(this,this.B);this.b-=4},function(){this.g=Rd(this,this.C);this.b-=4},function(){this.g=Rd(this,this.F);this.b-=4},function(){this.g=Rd(this,this.G);this.b-=4},function(){this.g=Rd(this,E(this,D(this)));this.b-=7},function(){this.g=
Rd(this,this.g);this.b-=4},function(){this.g=Od(this,this.u);this.b-=4},function(){this.g=Od(this,this.A);this.b-=4},function(){this.g=Od(this,this.B);this.b-=4},function(){this.g=Od(this,this.C);this.b-=4},function(){this.g=Od(this,this.F);this.b-=4},function(){this.g=Od(this,this.G);this.b-=4},function(){this.g=Od(this,E(this,D(this)));this.b-=7},function(){this.g=Od(this,this.g);this.b-=4},function(){Pd(this,this.u);this.b-=4},function(){Pd(this,this.A);this.b-=4},function(){Pd(this,this.B);this.b-=
4},function(){Pd(this,this.C);this.b-=4},function(){Pd(this,this.F);this.b-=4},function(){Pd(this,this.G);this.b-=4},function(){Pd(this,E(this,D(this)));this.b-=7},function(){Pd(this,this.g);this.b-=4},function(){Hd(this)||(B(this,Td(this)),this.b-=6);this.b-=5},function(){zd(this,Td(this));this.b-=10},function(){var a=G(this);Hd(this)||B(this,a);this.b-=10},Zd,function(){var a=G(this);Hd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,yd(this));this.b-=11},function(){this.g=
Jd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,0);this.b-=11},function(){Hd(this)&&(B(this,Td(this)),this.b-=6);this.b-=5},$d,function(){var a=G(this);Hd(this)&&B(this,a);this.b-=10},Zd,function(){var a=G(this);Hd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},ae,function(){this.g=Kd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,8);this.b-=11},function(){Dd(this)||(B(this,Td(this)),this.b-=6);this.b-=5},function(){Bd(this,Td(this));this.b-=10},function(){var a=G(this);
Dd(this)||B(this,a);this.b-=10},function(){var a=F(this);kc(this.I,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);Dd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,Ad(this));this.b-=11},function(){this.g=Pd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,16);this.b-=11},function(){Dd(this)&&(B(this,Td(this)),this.b-=6);this.b-=5},$d,function(){var a=G(this);Dd(this)&&B(this,a);this.b-=10},function(){var a=F(this);this.g=gc(this.I,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);Dd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},ae,function(){this.g=Qd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,24);this.b-=11},function(){Fd(this)||(B(this,Td(this)),this.b-=6);this.b-=5},function(){Cd(this,Td(this));this.b-=10},function(){var a=G(this);Fd(this)||B(this,a);this.b-=10},function(){var a=Td(this);H(this,D(this));Cd(this,a);this.b-=18},function(){var a=G(this);Fd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=Ld(this,F(this));this.b-=7},function(){H(this,this.j);B(this,32);this.b-=11},function(){Fd(this)&&(B(this,Td(this)),this.b-=6);this.b-=5},function(){B(this,D(this));this.b-=5},function(){var a=G(this);Fd(this)&&B(this,a);this.b-=10},function(){var a=D(this);Cd(this,Ad(this));Bd(this,a);this.b-=5},function(){var a=G(this);Fd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},ae,function(){this.g=Rd(this,F(this));this.b-=7},function(){H(this,
this.j);B(this,40);this.b-=11},function(){Id(this)||(B(this,Td(this)),this.b-=6);this.b-=5},function(){var a=Td(this);ud(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Id(this)||B(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Id(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,wd(this)&255|this.g<<8);this.b-=11},function(){this.g=Od(this,F(this));this.b-=7},function(){H(this,this.j);B(this,48);this.b-=11},function(){Id(this)&&
(B(this,Td(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Id(this)&&B(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Ud(this)},function(){var a=G(this);Id(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},ae,function(){Pd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,56);this.b-=11}];
function be(a){u.call(this,"ChipSet",a,32768);var b=a.model;b&&!ce[b]&&ab("Unrecognized ChipSet model: "+b);this.g=ce[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Eb(this)}aa(be,u);l=be.prototype;l.da=function(){return!1};
l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;this.R=a;this.B=Ob(a,"Keyboard");this.C=Ob(a,"SerialPort");this.video=Ob(a,"Video");fc(b,this,this.g.zb);jc(b,this,this.g.Ab);if(d){var e=this;de(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(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 xd(this);switch(this.g.pa){case ee.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.F]),a.set(1,[this.G,this.H]),a.set(2,[this.u,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 ee.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.F=b[1],b=a[1],this.G=b[0],this.H=b[1],b=a[2],this.u=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.Kd=function(a,b){var c=this.ba;y(this,a,null,b,"STATUS0",c,!0);return c};
l.Ld=function(a,b){var c=this.A;y(this,a,null,b,"STATUS1",c,!0);return c};l.Md=function(a,b){var c=this.fa;y(this,a,null,b,"STATUS2",c,!0);return c};l.Jd=function(a,b){var c=this.N>>8-this.T&255;y(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Xd=function(a,b,c){y(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Zd=function(a,b,c){y(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Yd=function(a,b,c){y(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.$d=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function de(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.Nd=function(a,b){var c=this.D,c=c&~J.xa.jc;if((Sc(this.w)&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.Ia.od:break;case J.Aa.Ia.Lc:this.M=this.M<<1|d;break;case J.Aa.Ia.Rc:d=de(this);this.j[d]=J.Aa.tb;Gb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Aa.Ia.Mc:this.b=this.b<<1|d;break;case J.Aa.Ia.sd:d=de(this);e=this.b&J.Aa.tb;this.j[d]=e;Gb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Aa.Ia.md:d=de(this);e=this.j[d];
null==e&&(e=J.Aa.tb);this.b=e;Gb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Aa.Ia.nd:this.b<<=1;this.S=this.b&J.Aa.tb+1;break;default:Gb(this,"doNVRCommand(): unrecognized command "+na(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.w,e=Sc(d.w)>=d.G+e.za*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&ee&&(c|=J.xa.sc);this.D=c;y(this,a,null,b,"FLAGS",c);return c};
l.be=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.ee=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.u=this.u&-4|a;break;case 1:this.u=this.u&-13|a<<2;this.video&&(b=this.video,a=this.u,Gb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?bd(b,!0):b.wa=!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.ce=function(a,b,c){y(this,a,b,c,"DC011");b&J.Ja.ld?(b&=J.Ja.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.Ja.oc?50:60,Gb(a,"updateRate("+b+")"),a.hb=b))):(b&=J.Ja.Wb,this.G!=b&&(this.G=b,this.video&&(a=this.G==J.Ja.Wb?132:80,b=this.video,Gb(b,"updateDimensions("+a+","+(80<a&&this.D&J.xa.ic?14:24)+")"),b.O=a,b.ga=b.Ca,80<a&&b.ga--,fe(b)&&ge(b))))};
var ce={pa:1978.1,qd:{qa:0,hf:1,mf:16,uf:32,Ef:64,Df:128,ab:14},Na:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,ab:8},rd:{qa:2,gf:3,Mf:4,jf:8,zf:16,Af:32,Bf:64,kf:128,ab:0},If:{qa:3},Gf:{qa:2,vf:7},Kf:{qa:3,Nf:1,Jf:2,Cf:4,sf:8,lf:16,Ce:32},Hf:{qa:4},Lf:{qa:5,nf:1,pf:2,qf:4,rf:8,Of:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,yf:8,xf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ja:{qa:194,Fe:0,Wb:16,ld:32,oc:48,Uc:0,Vc:32},sb:{qa:162,Ff:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{tf:{qa:98},Ia:{Mc:0,Lc:1,nd:2,sd:4,Rc:5,md:6,od:7},
tb:16383}},ae={SI1978:ce,VT100:J};ce.INIT=[[ce.qd.ab,ce.Na.ab,ce.rd.ab,0,0,0,0]];
l.$d=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function fe(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.Nd=function(a,b){var c=this.F,c=c&~J.xa.jc;if((Uc(this.w)&64)<<1&&(c|=J.xa.jc,c!=this.F)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Aa.Ia.od:break;case J.Aa.Ia.Lc:this.M=this.M<<1|d;break;case J.Aa.Ia.Rc:d=fe(this);this.j[d]=J.Aa.tb;Ib(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Aa.Ia.Mc:this.b=this.b<<1|d;break;case J.Aa.Ia.sd:d=fe(this);e=this.b&J.Aa.tb;this.j[d]=e;Ib(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Aa.Ia.md:d=fe(this);e=this.j[d];
null==e&&(e=J.Aa.tb);this.b=e;Ib(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Aa.Ia.nd:this.b<<=1;this.S=this.b&J.Aa.tb+1;break;default:Ib(this,"doNVRCommand(): unrecognized command "+na(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.w,e=Uc(d.w)>=d.G+(e.za*e.U/1E3*1.2731488|0);e&&(d.A=!1);d=!d.A}d&&(c|=J.xa.dc);c&=~J.xa.sc;this.C&&this.C.ia&ge&&(c|=J.xa.sc);this.F=c;y(this,a,null,b,"FLAGS",c);return c};
l.be=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.ee=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.u=this.u&-4|a;break;case 1:this.u=this.u&-13|a<<2;this.video&&(b=this.video,a=this.u,Ib(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?pd(b,!0):b.wa=!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.ce=function(a,b,c){y(this,a,b,c,"DC011");b&J.Ja.ld?(b&=J.Ja.oc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.Ja.oc?50:60,Ib(a,"updateRate("+b+")"),a.hb=b))):(b&=J.Ja.Wb,this.G!=b&&(this.G=b,this.video&&(a=this.G==J.Ja.Wb?132:80,b=this.video,Ib(b,"updateDimensions("+a+","+(80<a&&this.F&J.xa.ic?14:24)+")"),b.O=a,b.ga=b.Ca,80<a&&b.ga--,he(b)&&ie(b))))};
var ee={pa:1978.1,qd:{qa:0,hf:1,mf:16,uf:32,Ef:64,Df:128,ab:14},Na:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,ab:8},rd:{qa:2,gf:3,Mf:4,jf:8,zf:16,Af:32,Bf:64,kf:128,ab:0},If:{qa:3},Gf:{qa:2,vf:7},Kf:{qa:3,Nf:1,Jf:2,Cf:4,sf:8,lf:16,Ce:32},Hf:{qa:4},Lf:{qa:5,nf:1,pf:2,qf:4,rf:8,Of:16}},J={pa:100,xa:{qa:66,sc:1,ic:2,dd:4,yf:8,xf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ja:{qa:194,Fe:0,Wb:16,ld:32,oc:48,Uc:0,Vc:32},sb:{qa:162,Ff:0,Xc:0,Tc:0,Wc:0,Sc:0},Aa:{tf:{qa:98},Ia:{Mc:0,Lc:1,nd:2,sd:4,Rc:5,md:6,od:7},
tb:16383}},ce={SI1978:ee,VT100:J};ee.INIT=[[ee.qd.ab,ee.Na.ab,ee.rd.ab,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.xa.ic|J.xa.dd],[J.Ja.Uc,J.Ja.Vc],[J.sb.Xc,J.sb.Tc,J.sb.Wc,J.sb.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]]];ce.zb={0:$d.prototype.Kd,1:$d.prototype.Ld,2:$d.prototype.Md,3:$d.prototype.Jd};
ce.Ab={2:$d.prototype.Xd,3:$d.prototype.Zd,4:$d.prototype.Yd,5:$d.prototype.$d,6:$d.prototype.ae};J.zb={66:$d.prototype.Nd};J.Ab={66:$d.prototype.be,98:$d.prototype.ee,162:$d.prototype.de,194:$d.prototype.ce};Va(function(){for(var a=nb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new $d(d);mb(d,c)}});
function he(a){u.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.u=a.alias;this.j=a.file;this.B=oa(this.j);if(this.j){a=this.j;var b=pa(this.B);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){ie(c,a,b,f)})}}aa(he,u);he.prototype.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;je(this)};
he.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 t=f,k=[k>>>0,g],v=Ea(t,k,a.Ac);0>v&&t.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.C.push({Sf:b,J:c,Rd:d,ra:e,zc:f})}delete this.ra}return!0};he.prototype.ua=function(){return!0};
function ie(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{hb(a.bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||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){r("Empty ROM: "+b);return}if(1==a.b.length){r(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]=la(b[e],16);je(a)}}
function je(a){if(!Bb(a))if(!a.j)Cb(a);else if(a.b&&a.I){a.g||(a.g=a.b.length);if(a.b.length!=a.g)Ab(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.g,8,!0)+")");else{var b;b=a.A;if(Sb(a.I,b,a.g,yc)){var c;for(c=0;c<a.b.length;c++)$b(a.I,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.u?b.push(a.u):null!=a.u&&a.u.length&&(b=a.u);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.I,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.u;f=d.I;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.u}}delete a.b}}Cb(a)}}Va(function(){for(var a=nb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new he(d);mb(d,c)}});
function ke(a){u.call(this,"RAM",a);this.ra=this.g=null;this.u=a.addr;this.A=a.size;this.Pa=a.load;this.Ha=a.exec;this.j=!1;this.b=a.file;this.B=oa(this.b);if(this.b){a=this.b;var b=pa(this.B);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.bb,a,b),(a=Ia(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Pa&&(c.Pa=a.Pa),null==c.Ha&&(c.Ha=a.Ha)):c.b=null,le(c))})}}aa(ke,u);
ke.prototype.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;le(this)};ke.prototype.va=function(){return!0};ke.prototype.ua=function(){return!0};
function le(a){!a.j&&a.A&&Sb(a.I,a.u,a.A,1)&&(a.j=!0);if(!Bb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.I)return;var b=a.u;null!==a.Pa&&(b=a.Pa);for(var c=0;c<a.g.length;c++)$b(a.I,b+c,a.g[c]);if(null!==a.Ha){if(a.Ha==me){for(c=0;c<ne.length;c++)$b(a.I,ne[c],118);rd(a.w,function(a){return function(b){if(0<=ne.indexOf(b)){var c=!1,d=a.w,e=a.K;if(b==oe)switch(c=!0,d.A){case pe:a.print(String.fromCharCode(d.C).replace(/\r/g,""));break;case qe:for(var k=yd(d),p="",t=255;t--;){var v=E(a.w,
k++);if(36==v)break;p+=String.fromCharCode(v)}a.print(p.replace(/\r/g,""));break;default:c=!1}c?Yd.call(d):e&&(a.i("\nCP/M vector "+q(b)),B(d,b),e.ea());b=!0}else b=!1;return b}}(a))}td(a.w,a.Ha)}delete a.g}Cb(a)}}ke.prototype.reset=function(){};var oe=5,pe=2,qe=9,me=256,ne=[0,oe];Va(function(){for(var a=nb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new ke(d);mb(d,c)}});
function Me(a){u.call(this,"Keyboard",a,65536);(a=a.model)&&!Ne[a]&&Za("Unrecognized Keyboard8080 model: "+a);this.b=Ne[a]||{};this.reset();Cb(this)}aa(Me,u);l=Me.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.cb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.qb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Ra)if(d.b.Ra[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
c.onkeyup=function(a){return Qe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.$a&&a<=m.ub?d.g&(Re|Se)||(d.g|=Se,Oe(d,20,!0),Te(d)):a>=m.yc&&a<=m.z&&d.g&Se&&(d.g&=~Se,Oe(d,20,!1),Te(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Qa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ue(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ta&&void 0!==this.b.Ta[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=Ve:20==b&&(e=Se);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";We(a,b,d)}Oe(a,b,d,!e);a.R&&a.R.Ya()}}(this,this.b.Ta[b]),!0}}return!1};l.Fa=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=Xc(this.w,function(){Xe(e)});this.W=Mb(a,"ChipSet");this.C=Mb(a,"SerialPort");dc(b,this,this.b.zb);hc(b,this,this.b.Ab)};
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 vd(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.G,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case Ye.pa:return!0;case K.pa:return this.D=b[0],Te(this,this.D&K.Ba.ec),this.B=b[1],this.A=b[2],this.G=b[3],this.u=b[4],!0}return!1};function Te(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.cb)if(c="led-"+d,c=a.P[c]){var e=a.b.cb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Se?"#"+n(65280,6):"#000000"}
function We(a,b,c,d){var e=0;switch(b){case 16:e=d?Ze:$e;break;case 17:e=d?af:Ve;break;case 18:e=d?bf:cf;break;case 91:e=d?df:ef;break;case 20:e=Se,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Qe(a,b,c){var d=!0,e=b.keyCode,e=ka[e]||e;c=We(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Ra[e])f=e;else{for(f in a.b.Ta)if(a.b.Ta[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ff|gf)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|gf:a.g&~gf)),d=Oe(a,f,c),(!(f>=m.$a&&f<=m.ub)||a.g|hf)&&b.preventDefault&&b.preventDefault());return d}
function Pe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Ra[e],g;if(g=f){a:{for(var h in a.b.qb)if(a.b.qb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Oe(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Oe(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Ob==b)break a;e=-1}if(c)0>e?a.j.push({Ob:b,Lb:Date.now(),wb:d||!1}):(a.j[e].Lb=Date.now(),a.j[e].wb=d||!1),d&&Xe(a);else if(0<=e){if(!a.j[e].wb&&(d=a.j[e].Lb)&&Date.now()-d<jf)return a.j[e].wb=!0,Xe(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=ce.Na.ed;break;case "2p":d=ce.Na.jd;break;case "coin":d=ce.Na.Pc;break;case "left":d=ce.Na.gd;break;case "right":d=ce.Na.hd;break;case "fire":d=ce.Na.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function Xe(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].wb){var d=a.j[b].Ob,e=jf-(Date.now()-a.j[b].Lb);if(0<e){if(0>c||c>e)c=e}else{Oe(a,d,!1);b=0;continue}}b++}0<=c&&Yc(a.w,a.L,c)}l.Od=function(a,b){var c=this.B;0<=this.u&&(this.u<this.j.length?(c=this.j[this.u],this.u++,c=K.Ra[c.Ob],c&128&&(c&=127)):(this.u=-1,c=K.Yc),this.B=c,Td(this.w,1));y(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.fe=function(a,b,c){y(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.G=Sc(this.w);Te(this,b&K.Ba.ec);b&K.Ba.pd&&(this.u=0,Td(this.w,1))};var Ze=1,$e=2,Re=3,af=4,Ve=8,hf=12,bf=16,cf=32,ff=48,df=64,ef=128,Se=512,gf=4096,jf=50,kf={};kf[m.$a]=37;kf[m.Db]=39;kf[m.Fb]=32;
var Ye={pa:1978.1,Ra:{},qb:{},Tb:kf,cb:{},Ta:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Ra:(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]]];ee.zb={0:be.prototype.Kd,1:be.prototype.Ld,2:be.prototype.Md,3:be.prototype.Jd};
ee.Ab={2:be.prototype.Xd,3:be.prototype.Zd,4:be.prototype.Yd,5:be.prototype.$d,6:be.prototype.ae};J.zb={66:be.prototype.Nd};J.Ab={66:be.prototype.be,98:be.prototype.ee,162:be.prototype.de,194:be.prototype.ce};Xa(function(){for(var a=qb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new be(d);pb(d,c)}});
function je(a){u.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.u=a.alias;this.j=a.file;this.B=oa(this.j);if(this.j){a=this.j;var b=pa(this.B);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){ke(c,a,b,f)})}}aa(je,u);je.prototype.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;le(this)};
je.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 t=f,k=[k>>>0,g],v=Ea(t,k,a.Ac);0>v&&t.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.C.push({Sf:b,J:c,Rd:d,ra:e,zc:f})}delete this.ra}return!0};je.prototype.ua=function(){return!0};
function ke(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||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){r("Empty ROM: "+b);return}if(1==a.b.length){r(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]=la(b[e],16);le(a)}}
function le(a){if(!Db(a))if(!a.j)Eb(a);else if(a.b&&a.I){a.g||(a.g=a.b.length);if(a.b.length!=a.g)Cb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.g,8,!0)+")");else{var b;b=a.A;if(Ub(a.I,b,a.g,Ac)){var c;for(c=0;c<a.b.length;c++)bc(a.I,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.u?b.push(a.u):null!=a.u&&a.u.length&&(b=a.u);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.I,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.u;f=d.I;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.u}}delete a.b}}Eb(a)}}Xa(function(){for(var a=qb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new je(d);pb(d,c)}});
function me(a){u.call(this,"RAM",a);this.ra=this.g=null;this.u=a.addr;this.A=a.size;this.Pa=a.load;this.Ha=a.exec;this.j=!1;this.b=a.file;this.B=oa(this.b);if(this.b){a=this.b;var b=pa(this.B);"json"!=b&&"hex"!=b&&(a=ra()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(jb(c.bb,a,b),(a=Ka(a,b))?(c.g=a.ma,c.ra=a.ra,null==c.Pa&&(c.Pa=a.Pa),null==c.Ha&&(c.Ha=a.Ha)):c.b=null,ne(c))})}}aa(me,u);
me.prototype.Fa=function(a,b,c,d){this.I=b;this.w=c;this.K=d;ne(this)};me.prototype.va=function(){return!0};me.prototype.ua=function(){return!0};
function ne(a){!a.j&&a.A&&Ub(a.I,a.u,a.A,1)&&(a.j=!0);if(!Db(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.I)return;var b=a.u;null!==a.Pa&&(b=a.Pa);for(var c=0;c<a.g.length;c++)bc(a.I,b+c,a.g[c]);if(null!==a.Ha){if(a.Ha==oe){for(c=0;c<pe.length;c++)bc(a.I,pe[c],118);td(a.w,function(a){return function(b){if(0<=pe.indexOf(b)){var c=!1,d=a.w,e=a.K;if(b==qe)switch(c=!0,d.A){case Me:a.print(String.fromCharCode(d.C).replace(/\r/g,""));break;case Ne:for(var k=Ad(d),p="",t=255;t--;){var v=E(a.w,
k++);if(36==v)break;p+=String.fromCharCode(v)}a.print(p.replace(/\r/g,""));break;default:c=!1}c?$d.call(d):e&&(a.i("\nCP/M vector "+q(b)),B(d,b),e.ea());b=!0}else b=!1;return b}}(a))}vd(a.w,a.Ha)}delete a.g}Eb(a)}}me.prototype.reset=function(){};var qe=5,Me=2,Ne=9,oe=256,pe=[0,qe];Xa(function(){for(var a=qb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new me(d);pb(d,c)}});
function Oe(a){u.call(this,"Keyboard",a,65536);(a=a.model)&&!Pe[a]&&ab("Unrecognized Keyboard8080 model: "+a);this.b=Pe[a]||{};this.reset();Eb(this)}aa(Oe,u);l=Oe.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.cb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Ra("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.qb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Ra)if(d.b.Ra[c]==a){c=+c;break a}c=0}c&&(b?Qe(d,16,!0,!0):Qe(d,16,!1),Qe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Re(d,a,!0)},c.onkeyup=function(a){return Re(d,a,!1)}):(c.onkeydown=function(a){return Se(d,a,!0)},
c.onkeyup=function(a){return Se(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.$a&&a<=m.ub?d.g&(Te|Ue)||(d.g|=Ue,Qe(d,20,!0),Ve(d)):a>=m.yc&&a<=m.z&&d.g&Ue&&(d.g&=~Ue,Qe(d,20,!1),Ve(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Qa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){We(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ta&&void 0!==this.b.Ta[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=Xe:20==b&&(e=Ue);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ye(a,b,d)}Qe(a,b,d,!e);a.R&&a.R.Ya()}}(this,this.b.Ta[b]),!0}}return!1};l.Fa=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=Zc(this.w,function(){Ze(e)});this.W=Ob(a,"ChipSet");this.C=Ob(a,"SerialPort");fc(b,this,this.b.zb);jc(b,this,this.b.Ab)};
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 xd(this);switch(this.b.pa){case K.pa:a.set(0,[this.F,this.B,this.A,this.G,-1])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.pa){case $e.pa:return!0;case K.pa:return this.F=b[0],Ve(this,this.F&K.Ba.ec),this.B=b[1],this.A=b[2],this.G=b[3],this.u=b[4],!0}return!1};function Ve(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.cb)if(c="led-"+d,c=a.P[c]){var e=a.b.cb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Ue?"#"+n(65280,6):"#000000"}
function Ye(a,b,c,d){var e=0;switch(b){case 16:e=d?af:bf;break;case 17:e=d?cf:Xe;break;case 18:e=d?df:ef;break;case 91:e=d?ff:gf;break;case 20:e=Ue,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Se(a,b,c){var d=!0,e=b.keyCode,e=ka[e]||e;c=Ye(a,e,c,2==b.location);var f;a:if(e=a.b.Tb[e]||e,a.b.Ra[e])f=e;else{for(f in a.b.Ta)if(a.b.Ta[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(hf|jf)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|jf:a.g&~jf)),d=Qe(a,f,c),(!(f>=m.$a&&f<=m.ub)||a.g|kf)&&b.preventDefault&&b.preventDefault());return d}
function Re(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Ra[e],g;if(g=f){a:{for(var h in a.b.qb)if(a.b.qb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Qe(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Qe(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Ob==b)break a;e=-1}if(c)0>e?a.j.push({Ob:b,Lb:Date.now(),wb:d||!1}):(a.j[e].Lb=Date.now(),a.j[e].wb=d||!1),d&&Ze(a);else if(0<=e){if(!a.j[e].wb&&(d=a.j[e].Lb)&&Date.now()-d<lf)return a.j[e].wb=!0,Ze(a),!0;a.j.splice(e,1)}if(a.W){d=0;switch(b){case "1p":d=ee.Na.ed;break;case "2p":d=ee.Na.jd;break;case "coin":d=ee.Na.Pc;break;case "left":d=ee.Na.gd;break;case "right":d=ee.Na.hd;break;case "fire":d=ee.Na.fd}d&&(a=a.W,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function Ze(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].wb){var d=a.j[b].Ob,e=lf-(Date.now()-a.j[b].Lb);if(0<e){if(0>c||c>e)c=e}else{Qe(a,d,!1);b=0;continue}}b++}0<=c&&$c(a.w,a.L,c)}l.Od=function(a,b){var c=this.B;0<=this.u&&(this.u<this.j.length?(c=this.j[this.u],this.u++,c=K.Ra[c.Ob],c&128&&(c&=127)):(this.u=-1,c=K.Yc),this.B=c,Vd(this.w,1));y(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.fe=function(a,b,c){y(this,a,b,c,"KBDUART.STATUS");this.F=b;this.A=!0;this.G=Uc(this.w);Ve(this,b&K.Ba.ec);b&K.Ba.pd&&(this.u=0,Vd(this.w,1))};var af=1,bf=2,Te=3,cf=4,Xe=8,kf=12,df=16,ef=32,hf=48,ff=64,gf=128,Ue=512,jf=4096,lf=50,mf={};mf[m.$a]=37;mf[m.Db]=39;mf[m.Fb]=32;
var $e={pa:1978.1,Ra:{},qb:{},Tb:mf,cb:{},Ta:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Ra:(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.Fb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.$a]=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.Db]=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.ub]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),qb:(N[m.p]=5,N[m.Td]=6,N[m.y]=7,N[m.t]=
8,N[m.te]=9,N[m.q]=10,N[m["]"]]=20,N[m["["]]=21,N[m.Gd]=22,N[m.re]=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.Qd]=70,N[m.k]=71,N[m.Ed]=72,N[m.Cd]=73,N[m.yc]=74,N[m["'"]]=85,N[m[";"]]=86,N[m.Pd]=87,N[m.Fd]=88,N[m.d]=89,N[m.pe]=90,N[13]=100,N[m["."]]=101,N[m[","]]=102,N[m.n]=103,N[m.vd]=104,N[m.x]=105,N[m["/"]]=117,N[m.Sd]=118,N[m.se]=
120,N[m.yd]=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.Fb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.$a]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Db]=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.ub]=250,N),Tb:{},cb:{},Ta:{"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,pd:64,Ee:128,INIT:0},Yc:127};K.cb={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":Se};var Ne={SI1978:Ye,VT100:K};
K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.zb={130:Me.prototype.Od};K.Ab={130:Me.prototype.fe};Va(function(){for(var a=nb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Me(d);mb(d,c)}});
function lf(a,b,c,d,e){u.call(this,"Video",a,262144);var f=this;this.Sa=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.H=a.screenHeight;this.ka=a.bufferAddr;this.wd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ca=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Ma=!1;this.na=a.bufferBits||1;this.zd=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.ib=a.refreshRate||60;this.G=b;this.j=c;this.V=(this.Dd=d)||b||null;this.Bb=this.M;this.ud=this.H;this.Ka=this.M/this.O|0;this.La=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.wa=!1);b=a.smoothing;(c=Qa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.u=a.screenRotate)this.u=this.u%360,
0<this.u&&(this.u-=360),-90!=this.u?(this.aa("unsupported screen rotation: "+this.u),this.u=0):(this.j.translate(0,this.H),this.j.rotate(this.u*Math.PI/180),this.j.scale(this.H/this.M,this.M/this.H));if(this.b=e)if(this.b.Wa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Wa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){of(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){of(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=pa(this.S)&&(this.S=ra()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ha(this.S,null,!0,function(a,b,c){pf(f,a,b,c)});this.za={}}aa(lf,u);
function fe(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.wd&&(a.L=(a.C*a.na>>3)*a.N,!Sb(a.I,a.ka,a.L,3)))return!1;a.L?(a.Ua=a.j.createImageData(b,c),a.fb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.hb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.za[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Wa?c.onclick=function(){d.Wa()}:c.parentNode.removeChild(c),!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;fe(this);if(this.B=Mb(a,"Keyboard")){for(var e in this.za)this.B.da("led",e,this.za[e]);this.G&&this.B.da(this.Dd?"textarea":"canvas","screen",this.V)}var f=this;this.vb=Xc(this.w,function(){bd(f)});Yc(this.w,this.vb,1E3/Math.max(this.ib,this.oa));this.gb=0;this.S||Cb(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ge(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)&&Cb(a)}}
function ge(a){a.ba&&(a.Ma=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ca),xf(a,a.ga,a.ca,a.ya)],a.T[yf]=[xf(a,2*a.ga,a.ca),xf(a,2*a.ga,a.ca,a.ya)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ca),xf(a,2*a.ga,2*a.ca,a.ya)])}
function xf(a,b,c,d){var e=8>=a.Ca?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca: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),t=0;t<g;t++){for(var v=0,z=v;v<a.ca;v++)for(var x=t*e+(f+v&e-1),x=d&&8==v?255:a.ba[x],w=0;w<c/a.ca;w++){for(var C=0,T=0,ya=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Ma&&!L&&C?C:L,za=0;za<b/a.ga;za++)h&&(C=!C),Bf(a,p,ya,z,C?1:0),ya++;C=L}z++}k.context.putImageData(p,
(t&15)*b,(t>>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 vd(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
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.ub]=250,N),Tb:{},cb:{},Ta:{"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,pd:64,Ee:128,INIT:0},Yc:127};K.cb={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":Ue};var Pe={SI1978:$e,VT100:K};
K.INIT=[[K.Ba.INIT,K.Nc.INIT,!1,0,-1]];K.zb={130:Oe.prototype.Od};K.Ab={130:Oe.prototype.fe};Xa(function(){for(var a=qb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new Oe(d);pb(d,c)}});
function nf(a,b,c,d,e){u.call(this,"Video",a,262144);var f=this;this.Sa=Ra("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.H=a.screenHeight;this.la=a.bufferAddr;this.wd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&of[h.toUpperCase()]||pf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Ca=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Ma=!1;this.na=a.bufferBits||1;this.zd=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.ib=a.refreshRate||60;this.G=b;this.j=c;this.V=(this.Dd=d)||b||null;this.Bb=this.M;this.ud=this.H;this.Ka=this.M/this.O|0;this.La=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.wa=!1);b=a.smoothing;(c=Sa("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.u=a.screenRotate)this.u=this.u%360,
0<this.u&&(this.u-=360),-90!=this.u?(this.aa("unsupported screen rotation: "+this.u),this.u=0):(this.j.translate(0,this.H),this.j.rotate(this.u*Math.PI/180),this.j.scale(this.H/this.M,this.M/this.H));if(this.b=e)if(this.b.Wa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Wa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){qf(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(){qf(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=pa(this.S)&&(this.S=ra()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ja(this.S,null,!0,function(a,b,c){rf(f,a,b,c)});this.za={}}aa(nf,u);
function he(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.wd&&(a.L=(a.C*a.na>>3)*a.N,!Ub(a.I,a.la,a.L,3)))return!1;a.L?(a.Ua=a.j.createImageData(b,c),a.fb=16/a.na|0,sf(a,a.L>>1)):sf(a,(a.O+1)*a.Z);a.F=document.createElement("canvas");a.F.width=b;a.F.height=c;a.ta=a.F.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+tf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==uf&&(a.U[a.X+vf]=[255,255,0,255],a.U[a.X+wf]=[0,255,0,255]);a.Y==xf&&(a.hb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=nf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.za[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Wa?c.onclick=function(){d.Wa()}:c.parentNode.removeChild(c),!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;he(this);if(this.B=Ob(a,"Keyboard")){for(var e in this.za)this.B.da("led",e,this.za[e]);this.G&&this.B.da(this.Dd?"textarea":"canvas","screen",this.V)}var f=this;this.vb=Zc(this.w,function(){pd(f)});$c(this.w,this.vb,1E3/Math.max(this.ib,this.oa));this.gb=0;this.S||Eb(this)};
function rf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{jb(a.bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,ie(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)&&Eb(a)}}
function ie(a){a.ba&&(a.Ma=a.Y==xf,a.T[yf]=[zf(a,a.ga,a.ca),zf(a,a.ga,a.ca,a.ya)],a.T[Af]=[zf(a,2*a.ga,a.ca),zf(a,2*a.ga,a.ca,a.ya)],a.T[Bf]=a.T[Cf]=[zf(a,2*a.ga,2*a.ca),zf(a,2*a.ga,2*a.ca,a.ya)])}
function zf(a,b,c,d){var e=8>=a.Ca?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca: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),t=0;t<g;t++){for(var v=0,z=v;v<a.ca;v++)for(var x=t*e+(f+v&e-1),x=d&&8==v?255:a.ba[x],w=0;w<c/a.ca;w++){for(var C=0,T=0,ya=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Ma&&!L&&C?C:L,za=0;za<b/a.ga;za++)h&&(C=!C),Df(a,p,ya,z,C?1:0),ya++;C=L}z++}k.context.putImageData(p,
(t&15)*b,(t>>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 xd(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Wa=function(){var a=!1;if(this.b){if(this.b.Wa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Sa?(this.G.style.width=a,this.G.style.width=a,this.G.style.display="block",this.G.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Wa();a=!0}this.V&&this.V.focus()}return a};
function of(a,b){!b&&a.b&&(a.Sa?a.G.style.width=a.G.style.height="":a.b.style.width=a.b.style.height="");Gb(a,"notifyFullScreen("+b+")")}function qf(a,b){a.eb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.eb)a.A=Array(a.eb)}function Bf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==sf&&(208<=c&&236>c?e=a.X+tf:28<=c&&72>c&&(e=a.X+uf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function bd(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.gb&1?(Td(a.w,2),c=!1):Td(a.w,1):Td(a.w,4));if(c&&a.W&&a.L){for(var d=a.I,e=a.ka,f=a.L,g=!0,h=e>>>d.g,e=d.u-(e&d.j);0<f&&h<d.b.length;)d.b[h].Da&&(d.b[h].Da=g=!1,d.b[h].Dc=!0),f-=e,e=d.u,h++;g&&(c=!1)}Yc(a.w,a.vb,1E3/Math.max(a.ib,a.oa));a.gb++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ka,d=-1,f=0,g=60==a.hb?2:5,e=h=0,k=-1;f<a.Z;){var p=0,t=c,v=d,z=a.O;for(v!=wf&&(z>>=1);;){var x=Xb(a.I,t++);if((x&Cf)==Cf){var w=Xb(a.I,t++),d=w&Df,c=(w&Ef)<<
8|Xb(a.I,t),c=c+(w&Ff?Gf:Hf);break}if(p<z)a.fa[p++]=x;else break}if(g)g--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.W&&a.A[h]==z,a.A[h++]=z,z=0;z<p;z++){x=a.fa[z];if(!t||x!==a.A[h]){a.A[k=h]=x;var w=a,C=a.ta,T=x&127;if(x=w.T[v][x&128?1:0]){var ya=(T&15)*x.ga,T=(T>>4)*x.ca,L,za,sa,Aa,ta=x.ga,Ba=x.ca;C?(L=z*w.ga,za=f*w.ca,sa=w.ga,Aa=w.ca):(L=z*w.Ka,za=f*w.La,sa=w.Ka,Aa=w.La);x.ga>w.ga&&(L*=2,sa*=2);x.ca>w.ca&&(v==Af&&(T+=w.ca),Ba=w.ca);C?C.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa):(L+=0,
za+=0,w.j.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa))}e++}h++}f++}}a.W=!0;!b&&a.wa&&1==e&&(a.A[k]=-1,e=0);a.wa=!1;(e||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Bb,a.ud)}else{f=a.ka;g=f+a.L;k=e=h=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;z=(1<<t)-1;a.zd&&(t=-t,v=16+t);for(;f<g;){w=Zb(a.I,f);if(a.W&&w===a.A[h])e+=a.fb;else{a.A[h]=w;(C=v)&&(w=w>>8|(w&255)<<8);e<b&&(b=e);for(x=a.fb;x--;)ya=w>>C&z,Bf(a,a.Ua,e++,k,ya),C+=t;e>p&&(p=e);k<c&&(c=k);k>=d&&(d=k+1)}f+=2;h++;if(e>=a.C&&(e=0,k++,k>a.N))break}a.W=
!0;b<a.C&&(f=p-b,d-=c,a.g&&(g=b,h=f,b=c,f=d,c=a.C-(g+h),d=h),a.ta.putImageData(a.Ua,0,0,b,c,f,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.H))}}var tf=0,uf=1,rf=2,nf=0,sf=1,vf=2,mf={SI1978:sf,VT100:vf},wf=96,yf=64,zf=32,Af=0,Cf=127,Ef=15,Ff=16,Df=96,Gf=8192,Hf=16384;
Va(function(){for(var a=nb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=pb(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ja().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Qa("aspect"));f&&.3<=f&&3.33>=f&&(Ua("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Pa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new lf(d,e,g,f,c);mb(d,c)}});
function If(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.u=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Jf;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Qa=this.H=null;this.exports={connect:this.Fc,receiveData:this.Nb,receiveStatus:this.oe}}
aa(If,u);l=If.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Jf: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),Kf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kf(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.Nb(d);return!0},!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;var e=this;this.Y=Xc(this.w,function(){e.Nb()});this.Z=Xc(this.w,function(){Ue(e)});this.W=Mb(a,"ChipSet");dc(b,this,Lf,this.U);hc(b,this,Mf,this.U);Cb(this)};
l.Fc=function(a){if(!this.b){var b=Lc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=xa(c[0]);if(d!=this.Gb)return;c=xa(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Qa=e.receiveData){this.D=a;this.H=e.receiveStatus;this.status("Connected "+this.bb+"."+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(){Nf(this)};l.save=function(){var a=new vd(this),b=0,c=[];c[b++]=this.G;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 Nf(this,a[0])};
function Nf(a,b){var c=0;b||(b=Of);a.G=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 Pf(a,b){var c=a.L&b;b&15||(c>>=4);b=Qf[c];c=((a.B&Rf)>>2)+6;a.B&Sf&&c++;c+=((a.B&Tf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Kf(a,b){Gb(a,"receiveByte("+na(b)+"), status="+na(a.ia));return a.N||a.ia&Uf?!1:(a.M=b,a.ia|=Uf,Td(a.w,a.X),!0)}
l.Nb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Kf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.w&&Yc(this.w,this.Y,Pf(this,Vf)));return!0};l.oe=function(a){this.ia&=~Wf;a&64&&(this.ia|=Wf)};function Ue(a,b){a.ia=a.ia|ee|Xf;b&&a.Qa&&a.Qa.call(a.b,b)}l.Id=function(a,b){var c=this.M;y(this,a,null,b,"DATA",c);this.ia&=~Uf;return c};l.Hd=function(a,b){var c=this.ia;y(this,a,null,b,"STATUS",c);return c};
l.Wd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(ee|Xf);Gb(this,"transmitByte("+na(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Qa&&this.Qa.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.u&&this.u--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.u%b,this.V&&(a=wa("",c))):13==b&&(this.u=c=0,a="\n");this.S&&!this.u&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.u+=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.w&&Yc(this.w,this.Z,Pf(this,Yf))};l.Vd=function(a,b,c){y(this,a,b,c,"CONTROL");this.G?(this.H&&(b^this.C)&(Zf|$f)&&(a=0,this.D?(a|=b&Zf?32:0,a|=b&$f?320:0):(a|=b&Zf?16:0,a|=b&$f?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&ag&&(this.G=!1)):(this.B=b,this.G=!0)};l.Ud=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b};
var Rf=12,Sf=16,Tf=192,$f=2,Zf=32,ag=64,ee=1,Uf=2,Xf=4,Wf=128,Vf=15,Yf=240,Qf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Of=[!1,0,0,133,142,39,238],Jf="buffer",Lf={0:If.prototype.Id,1:If.prototype.Hd},Mf={0:If.prototype.Wd,1:If.prototype.Vd,2:If.prototype.Ud};Va(function(){for(var a=nb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new If(d);mb(d,c)}});
function bg(a){u.call(this,"Debugger",a);this.u=+a.base||16;this.U=["{","}"];this.fa=["[","]"];this.S=this.ba=this.G=0;this.N=!1;this.b=-1;this.g=[];this.A={}}aa(bg,u);bg.prototype.Jb=function(){return-1};bg.prototype.Kb=function(){};
bg.prototype.yb=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.N?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(xa(a.substring(d,f))),d=f+1}}return b};
function cg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a<<32-b>>32-b:(b=Math.pow(2,b-1),a>=b?(d=a%b,(a/b|0)&1&&(d-=b)):a<-b&&(d=a%b,((-a-1)/b|0)&1?d&&(d+=b):d||(d-=b)));a!=d&&(a=d);return a}
function dg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case ",,":e=cg(e,18,!0)*Math.pow(2,18)+cg(f,18,!0);break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=cg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(cg(e))}return!0}
function eg(a,b,c,d,e,f){var g,h,k,p=!1,t=0,v=[],z=[],x=a.u;for(a.u=e;c<d;){var w;h=b[c++].trim();k=c<d?b[c++]:"";if(h)w=fg(a,h,null,f,t);else if("{"==k){h=1;for(w=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;w=eg(a,b,w,c-1,a.u,f);null!=w&&t&&(w=gg(w,t));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.u=2;continue}if("^O"==k){a.u=8;continue}if("^D"==k){a.u=10;continue}if(!(t&-1073741824)){if("+"==k)continue;if("-"==k){t=t<<2|1;continue}if("~"==
k||"^-"==k){t=t<<2|2;continue}if("^L"==k){t=t<<2|3;continue}}p=!0;break}if(void 0===w)if(f)f.push(h),w=0;else{p=!0;f=[];break}v.push(cg(w));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?hg:ig;if(!t[k]){p=!0;break}z.length&&t[k]<=t[z[z.length-1]]&&dg(v,z,1);z.push(k);a.u="^_"==k?10:e;t=0}if(p||!dg(v,z)||1!=v.length)p=!0;p?f||a.i("parse error ("+(h||k)+")"):g=v.pop();a.u=x;return g}
function jg(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var p=b[h++];if(p==c){k=-1;break}if(!k)break;k--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;g=cg(g*Math.pow(2,d)+p,d*e,!0)}if(0<=k){a.i("parse error ("+c+b+c+")");return}b=b.substr(0,f)+kg(a,g,-1)+b.substr(h)}return b}
function lg(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=jg(a,b,'"',7,5);if(!b)return d;b=jg(a,b,"'",6,6);if(!b)return d;16!=a.u&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=eg(a,b,0,b.length,a.u,c);void 0!==d&&e&&mg(a,null,d)}return d}
function ng(a,b){var c,d=a.U[0],e=a.U[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=lg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?kg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.S-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b){for(;b;){switch(b&3){case 1:a=-cg(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a}
function fg(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.Jb(b);if(0<=f)f=a.Kb(f);else if(f=b,a.A[f]?f=a.A[f].value:(f=f.substr(0,6),f=a.A[f]&&a.A[f].value),null!=f){var h=a.A[b]&&a.A[b].qe;h&&(g?g.push(h):(g=lg(a,h,d),void 0!==g?f+=g:(d||a.i("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=la(b,1<b.length||10<a.u?a.u:10);null!=f?f=cg(gg(f,e)):d||a.i("invalid "+(c||"value")+": "+b)}else d||a.i("missing "+(c||"value"));return f}
function mg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.u?kg(a,c,32,8,1)+" "+c+".":kg(a,c,32,16,1)+" "+kg(a,c,32,8,1)+" "+kg(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function og(a,b){var c=0;if(a.A){if(b)return mg(a,b,a.A[b]&&a.A[b].value);b=Object.keys(a.A);b.sort();for(var d=0;d<b.length;d++)mg(a,b[d],a.A[b[d]].value),c++}return 0<c}
function kg(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.u){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ma(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=ma(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=ma(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ig={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},hg={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function pg(a){bg.call(this,a);this.style=qg;this.L=rg();this.sa=rg();this.T=rg();this.C=[];this.j=this.M=this.B=[];sg(this);this.X=0;tg(this);this.ka={};ug(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Pc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Pc(b,a)})}aa(pg,bg);l=pg.prototype;
l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.R=a;(a=Lc(a,"messages"))&&ug(this,a);this.oa=vg;be(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=wg(xg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Vb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.nb)+" "+
q(t.size)+" "+p),c!=xc&&(c=-1),p=0);a+=d.I.u;e++}}});Cb(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Pc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";Pc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Db(d,!0)||(Eb(d,!0),b=yg(d,a?1:0),Eb(d,!1));return b}),!0}return!1};l.Ya=function(){this.V&&this.V.focus()};function wg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ga=function(a,b){var c=255,d=wg(a);-1!==d&&(c=Xb(this.I,d),b&&Xg(a,b));return c};l.Eb=function(a,b){var c=65535,d=wg(a);-1!==d&&(c=Zb(this.I,d),b&&Xg(a,b));return c};l.Xb=function(a,b,c){var d=wg(a);-1!==d&&($b(this.I,d,b),c&&Xg(a,c),Qc(this.w,!0))};
l.Qc=function(a,b,c){var d=wg(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].ob(f,b&255,d),e.b[g&e.H].ob(0,b>>8&255,d+1));c&&Xg(a,c);Qc(this.w,!0)}};function rg(a){return{J:a,Ea:!1}}function Zg(a){return[a.J,a.Ea]}function $g(a){return{J:a[0],Ea:a[1]}}
function xg(a,b,c){var d;c=(c?a.L:a.sa).J;if(void 0!==b){d=b=ng(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.C.length;c++){var f=a.C[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=rg(d));break}}if(d=e)return d;c=lg(a,b)}null!=c&&(d=rg(c));return d}function ah(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.td=a.yb(b.Jc=c[2]))}function Xg(a,b){null!=a.J&&(a.J+=b||1)}function bh(a){return n(a,4)}
function ch(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 ug(a,b){a.K=a;a.ha=a.xd=536870912;a.Y=null;a.Z=[];b=a.yb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Kb)0<=Ga(b,c)&&(a.ha|=Kb[c],a.i(c+" messages enabled"))}function be(a,b,c){for(var d in Kb)if(b==Kb[d]){a.ka[d]=c;break}}
l.Jb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ga(dh,a):(c=Ga(dh,a.substr(b,2)),0>c&&(c=Ga(dh,a.substr(b,1))));return c};function eh(a,b){var c=0;a=a.Kb(b);if(void 0!==a)switch(b){case fh:case gh:case hh:case ih:case jh:case kh:case lh:case mh:c=2;break;case nh:case oh:case ph:case qh:case rh:case sh:case th:c=4}return c?n(a,c):"??"}
l.Kb=function(a){var b;if(0<=a){var c=this.w;switch(a){case fh:b=c.g;break;case gh:b=c.u;break;case hh:b=c.A;break;case nh:b=wd(c);break;case ih:b=c.B;break;case jh:b=c.C;break;case oh:b=yd(c);break;case kh:b=c.D;break;case lh:b=c.G;break;case ph:b=D(c);break;case mh:b=E(c,D(c));break;case qh:b=c.M;break;case rh:b=c.j;break;case sh:b=ud(c);break;case th:b=ud(c)&255|c.g<<8}}return b};
function uh(a,b){b=ng(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Jb(b,c+1),0<=e&&(b=b.substr(0,c)+eh(a,e)+b.substr(c+1+dh[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=la(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=xg(a,e))?(d=e+' "'+ch(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=xg(a,e))?(Xg(d),d=
e+' "'+ch(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+bh(rg(this.w.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.w&&(a=this.w,Zc(a),a.ta=0,Qc(a)))};
function Hb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.Gb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+na(d):"")+")"+(null!=g?": "+na(g):"")+(null!=e?" at "+bh(e):""))}
function tg(a){var b;if(Ud(a)){if(!a.H||!a.H.length){a.H=Array(vh);for(b=0;b<a.H.length;b++)a.H[b]=rg();a.W=0;a.i("instruction history buffer allocated")}if(!a.D||!a.D.length)for(a.D=Array(256),b=0;b<a.D.length;b++)a.D[b]=[b,0]}else a.H&&a.H.length&&a.i("instruction history buffer freed"),a.W=0,a.H=[],a.D=[]}function wh(a,b){if(!xh(a))return!1;a.w.rb(b);return!0}
function yg(a,b,c,d){if(!xh(a))return!1;a.G=0;b||Ud(a)&&Vd(a,a.w.j,0);try{var e=a.w.Cb(b);0<e&&(a.G+=e,Uc(a.w,e,!0),Rc(a.w,e),a.S++)}catch(f){"number"!=typeof f&&(a.G=0,Ab(a.w,f.stack||f.message))}!1!==d&&Qc(a.w);Oc(a,c||!1);return 0<a.G}l.ea=function(a){this.w&&this.w.ea(a)};function Oc(a,b){void 0===b&&(b=!0);a.L=rg(a.w.j);b&&1!=a.O?yh(a):zh(a)}
function xh(a){var b;if(b=a.w&&Bb(a.w))b=a.w,b.F.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Db(a.w)?(a=a.w,a.F.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){tg(this);this.S=this.ba=0;this.Y=null;this.G=0;this.L=rg(this.w.j);this.F.ma=!1;Ah(this);a||Oc(this)};
l.save=function(){var a=new vd(this);a.set(0,Zg(this.L));a.set(1,Zg(this.T));a.set(2,[this.g,this.N,this.ha]);a.set(3,this.C);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=$g(a[b++]),this.T=$g(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.N=a[b][1],this.ha|=a[b][2]);a[3]&&(this.C=a[3]);return!0};l.start=function(a,b){this.O||this.i("running");this.F.ma=!0;this.ya=a;this.za=b};
l.stop=function(a,b){if(this.F.ma){this.F.ma=!1;this.G=b-this.za;if(!this.O){b="stopped";if(this.G){a-=this.ya;var c=0<a?Math.round(1E3*this.G/a):0;b+=" (";Ud(this)&&(b+=this.S+" opcodes, ",this.ba-=this.S,this.S=0);b+=this.G+" cycles, "+a+" ms, "+c+" hz)"}else Fb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Oc(this,!0);this.Ya();Ah(this,this.w.j)}};function Ud(a){return 1<a.j.length||!!a.X}
function Vd(a,b,c){var d=a.w;if(0<c&&(a.X&&!--a.X||Ic(a,b,1,a.j)))return!0;0<=c&&a.D.length&&(a.S++,b=Xb(a.I,b),null!=b&&(a.D[b][1]++,b=a.H[a.W],b.J=d.j,b.Ea=!1,++a.W==a.H.length&&(a.W=0)));return!1}function fc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function jc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function sg(a){var b,c;a.j=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.I;Hc(d.b[wg(c)>>>d.g],!1)}a.M=["br"];if(a.B)for(b=1;b<a.B.length;b++)c=a.B[b],d=a.I,Hc(d.b[wg(c)>>>d.g],!0);a.B=["bw"];a.ta=0}l.Oa=function(a,b,c){var d=!0;c||Bh(this,a,b,!1,!0);if(a!=this.j){var e=wg(b);if(-1===e)this.i("invalid address: "+bh(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Oa(e&f.j,a==this.B)}}d&&(a.push(b),c?b.Ea=!0:(Ch(this,a,a.length-1,"set"),tg(this)));return d};
function Bh(a,b,c,d,e){var f=!1;c=wg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==wg(h)&&(!d||h.Ea)){f=!0;h.Ea||e||Ch(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Hc(d.b[c>>>d.g],b==a.B));h.Ea||tg(a);break}}return f}function Dh(a,b){for(var c=1;c<b.length;c++)Ch(a,b,c);return b.length-1}function Ch(a,b,c,d){c=b[c];a.i(b[0]+" "+bh(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function Ah(a,b){if(void 0!==b)Ic(a,b,1,a.j,!0),a.O=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Ea){if(!Bh(a,a.j,c,!0))break;b=0}}}
function Ic(a,b,c,d,e){var f=!1;if(!a.ta++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ea)for(var k=wg(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Ea&&(Bh(a,d,h,!0),e=!0);if(t=h.td){for(var f=!1,v=0;v<t.length;v++)if(!Eh(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var z=v+1;z<t.length&&t[z].indexOf("else");z++)v++;if(z==t.length){f=!0;break}}a.w.F.ma||(f=!0)}if(f){e||Ch(a,d,g,"hit");break}}}a.ta--;return f}
function Fh(a,b,c,d){for(var e=rg(b.J),f=a.Ga(b,1),g=a.oa[f],h="",k=(a.style!=Gh?Hh:Ih)[g[0]],p=g.length-1,t=Jh,v,z=1;z<=p;z++){var x="";v=g[z];if(void 0!==v&&!(v&O&&a.style==qg)){var w=v&Kh;if(w){var C=v&Lh;C?t=C:v|=t;v&Mh||(v|=1==z?Nh:Oh);if(w&P)a:{x=a;w=v;C=b;switch(w&Lh){case Q:C=n(x.Ga(C,1),2);break;case Ph:C=n(x.Ga(C,1)<<24>>24,4);break;case Qh:C=n(x.Eb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Gh&&w&Rh?C="["+C+"]":w&Sh||(C=(x.style==qg?"$":"0x")+C);x=C}else w&Sh?(x=(v&Th)>>8,
w=dh[x],a.style==Gh&&v&Rh&&(x==mh&&(w="HL"),w="["+w+"]"),x=w):w&Uh&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0<h.length&&(h+=",");h+=x||"???"}}}f="";g=bh(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=wa(f,10);g+=v&Vh?"*":" ";g+=wa(k,7);h&&(g+=" "+h);c&&(g=wa(g,40)+";"+c,g=a.w.F.Va?g+("cycles="+Sc(a.w).toString()+" cs="+n(a.w.wa)):g+(null!=d?"="+d.toString():""));return g}
function Wh(a,b){switch(b){case "IF":a=a.w.N&512;break;case "SF":a=Gd(a.w);break;case "ZF":a=Fd(a.w);break;case "AF":a=Ed(a.w);break;case "PF":a=Dd(a.w);break;case "CF":a=Bd(a.w);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Xh(a,b){return dh[b]+"="+eh(a,b)+" "}function Yh(a){return Xh(a,fh)+Xh(a,nh)+Xh(a,oh)+Xh(a,ph)+Xh(a,qh)+Wh(a,"IF")+Wh(a,"SF")+Wh(a,"ZF")+Wh(a,"AF")+Wh(a,"PF")+Wh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Zh(a,b,c){var d=[],e=wg(b)>>>0;for(b=0;b<a.C.length;b++){var f=a.C[b],g=f.J>>>0,h=f.Rd;if(e>=g&&e<g+h){e=Ea(f.zc,[e-g],a.Ac);0<=e?$h(a,b,e,d):c&&(e=~e,$h(a,b,e-1,d),$h(a,b,e,d));break}}return d}function $h(a,b,c,d){var e={},f=a.C[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.C[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 ai(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.D)if("clear"==b){for(b=0;b<a.D.length;b++)a.D[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.D.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Gh?Hh:Ih;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.oa[f][0]]+" ").substr(0,5)+" ("+na(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function bi(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return og(a)||a.i("no variables"),!0;if(!c[2])return og(a,c[1]);if(!c[3])return delete a.A[c[1]],!0;b=lg(a,c[3]);return void 0!==b?(a.A[c[1]]={value:b,qe:void 0},!0):!1}a.i("invalid assignment:"+b);return!1}
function ci(a,b,c){var d=null;if(b=xg(a,b,!0)){var e=Zh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+bh(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+bh(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function di(a,b){switch(b[1]){case "8080":a.style=qg;break;case "8086":a.style=Gh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.w.na=c;break;case "start":a.w.ya=c;break;case "stop":a.w.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Nc(a.w);a.i("checksums "+(a.w.F.Va?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Tc(a.w,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.w.Z.toFixed(2)+"Mhz")+" ("+a.w.U+
function qf(a,b){!b&&a.b&&(a.Sa?a.G.style.width=a.G.style.height="":a.b.style.width=a.b.style.height="");Ib(a,"notifyFullScreen("+b+")")}function sf(a,b){a.eb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.eb)a.A=Array(a.eb)}function Df(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==uf&&(208<=c&&236>c?e=a.X+vf:28<=c&&72>c&&(e=a.X+wf));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 pd(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.gb&1?(Vd(a.w,2),c=!1):Vd(a.w,1):Vd(a.w,4));if(c&&a.W&&a.L){for(var d=a.I,e=a.la,f=a.L,g=!0,h=e>>>d.g,e=d.u-(e&d.j);0<f&&h<d.b.length;)d.b[h].Da&&(d.b[h].Da=g=!1,d.b[h].Dc=!0),f-=e,e=d.u,h++;g&&(c=!1)}$c(a.w,a.vb,1E3/Math.max(a.ib,a.oa));a.gb++}if(c)if(1<a.ga)switch(a.Y){case xf:for(var c=a.la,d=-1,f=0,g=60==a.hb?2:5,e=h=0,k=-1;f<a.Z;){var p=0,t=c,v=d,z=a.O;for(v!=yf&&(z>>=1);;){var x=Zb(a.I,t++);if((x&Ef)==Ef){var w=Zb(a.I,t++),d=w&Ff,c=(w&Gf)<<
8|Zb(a.I,t),c=c+(w&Hf?If:Jf);break}if(p<z)a.fa[p++]=x;else break}if(g)g--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(t=a.W&&a.A[h]==z,a.A[h++]=z,z=0;z<p;z++){x=a.fa[z];if(!t||x!==a.A[h]){a.A[k=h]=x;var w=a,C=a.ta,T=x&127;if(x=w.T[v][x&128?1:0]){var ya=(T&15)*x.ga,T=(T>>4)*x.ca,L,za,sa,Aa,ta=x.ga,Ba=x.ca;C?(L=z*w.ga,za=f*w.ca,sa=w.ga,Aa=w.ca):(L=z*w.Ka,za=f*w.La,sa=w.Ka,Aa=w.La);x.ga>w.ga&&(L*=2,sa*=2);x.ca>w.ca&&(v==Cf&&(T+=w.ca),Ba=w.ca);C?C.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa):(L+=0,
za+=0,w.j.drawImage(x.canvas,ya,T,ta,Ba,L,za,sa,Aa))}e++}h++}f++}}a.W=!0;!b&&a.wa&&1==e&&(a.A[k]=-1,e=0);a.wa=!1;(e||b)&&a.ta&&a.j.drawImage(a.F,0,a.sa,a.C,a.N-a.ca,0,0,a.Bb,a.ud)}else{f=a.la;g=f+a.L;k=e=h=0;b=a.C;p=0;c=a.N;v=d=0;t=a.na;z=(1<<t)-1;a.zd&&(t=-t,v=16+t);for(;f<g;){w=ac(a.I,f);if(a.W&&w===a.A[h])e+=a.fb;else{a.A[h]=w;(C=v)&&(w=w>>8|(w&255)<<8);e<b&&(b=e);for(x=a.fb;x--;)ya=w>>C&z,Df(a,a.Ua,e++,k,ya),C+=t;e>p&&(p=e);k<c&&(c=k);k>=d&&(d=k+1)}f+=2;h++;if(e>=a.C&&(e=0,k++,k>a.N))break}a.W=
!0;b<a.C&&(f=p-b,d-=c,a.g&&(g=b,h=f,b=c,f=d,c=a.C-(g+h),d=h),a.ta.putImageData(a.Ua,0,0,b,c,f,d),a.j.drawImage(a.F,0,0,a.F.width,a.F.height,0,0,a.M,a.H))}}var vf=0,wf=1,tf=2,pf=0,uf=1,xf=2,of={SI1978:uf,VT100:xf},yf=96,Af=64,Bf=32,Cf=0,Ef=127,Gf=15,Hf=16,Ff=96,If=8192,Jf=16384;
Xa(function(){for(var a=qb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=rb(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<=La().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Sa("aspect"));f&&.3<=f&&3.33>=f&&(Wa("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");Ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new nf(d,e,g,f,c);pb(d,c)}});
function Kf(a){u.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.u=0;this.N=!1;this.F=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Lf;b&&(void 0===c&&(c="Panel"),(c=ub(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Qa=this.H=null;this.exports={connect:this.Fc,receiveData:this.Nb,receiveStatus:this.oe}}
aa(Kf,u);l=Kf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Lf: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),Mf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Mf(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.Nb(d);return!0},!0}return!1};
l.Fa=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;var e=this;this.Y=Zc(this.w,function(){e.Nb()});this.Z=Zc(this.w,function(){We(e)});this.W=Ob(a,"ChipSet");fc(b,this,Nf,this.U);jc(b,this,Of,this.U);Eb(this)};
l.Fc=function(a){if(!this.b){var b=Nc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=xa(c[0]);if(d!=this.Gb)return;c=xa(c[1]);if(this.b=tb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.F);if(this.Qa=e.receiveData){this.F=a;this.H=e.receiveStatus;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.va=function(a,b){if(!b)if(this.Fc(this.F),!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(){Pf(this)};l.save=function(){var a=new xd(this),b=0,c=[];c[b++]=this.G;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 Pf(this,a[0])};
function Pf(a,b){var c=0;b||(b=Qf);a.G=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 Rf(a,b){var c=a.L&b;b&15||(c>>=4);b=Sf[c];c=((a.B&Tf)>>2)+6;a.B&Uf&&c++;c+=((a.B&Vf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Mf(a,b){Ib(a,"receiveByte("+na(b)+"), status="+na(a.ia));return a.N||a.ia&Wf?!1:(a.M=b,a.ia|=Wf,Vd(a.w,a.X),!0)}
l.Nb=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Mf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.w&&$c(this.w,this.Y,Rf(this,Xf)));return!0};l.oe=function(a){this.ia&=~Yf;a&64&&(this.ia|=Yf)};function We(a,b){a.ia=a.ia|ge|Zf;b&&a.Qa&&a.Qa.call(a.b,b)}l.Id=function(a,b){var c=this.M;y(this,a,null,b,"DATA",c);this.ia&=~Wf;return c};l.Hd=function(a,b){var c=this.ia;y(this,a,null,b,"STATUS",c);return c};
l.Wd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(ge|Zf);Ib(this,"transmitByte("+na(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Qa&&this.Qa.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.u&&this.u--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.u%b,this.V&&(a=wa("",c))):13==b&&(this.u=c=0,a="\n");this.S&&!this.u&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.u+=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.w&&$c(this.w,this.Z,Rf(this,$f))};l.Vd=function(a,b,c){y(this,a,b,c,"CONTROL");this.G?(this.H&&(b^this.C)&(ag|bg)&&(a=0,this.F?(a|=b&ag?32:0,a|=b&bg?320:0):(a|=b&ag?16:0,a|=b&bg?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&cg&&(this.G=!1)):(this.B=b,this.G=!0)};l.Ud=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b};
var Tf=12,Uf=16,Vf=192,bg=2,ag=32,cg=64,ge=1,Wf=2,Zf=4,Yf=128,Xf=15,$f=240,Sf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Qf=[!1,0,0,133,142,39,238],Lf="buffer",Nf={0:Kf.prototype.Id,1:Kf.prototype.Hd},Of={0:Kf.prototype.Wd,1:Kf.prototype.Vd,2:Kf.prototype.Ud};Xa(function(){for(var a=qb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new Kf(d);pb(d,c)}});
function dg(a){u.call(this,"Debugger",a);this.u=+a.base||16;this.U=["{","}"];this.fa=["[","]"];this.S=this.ba=this.G=0;this.N=!1;this.b=-1;this.g=[];this.A={}}aa(dg,u);dg.prototype.Jb=function(){return-1};dg.prototype.Kb=function(){};
dg.prototype.yb=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.N?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(xa(a.substring(d,f))),d=f+1}}return b};
function eg(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a<<32-b>>32-b:(b=Math.pow(2,b-1),a>=b?(d=a%b,(a/b|0)&1&&(d-=b)):a<-b&&(d=a%b,((-a-1)/b|0)&1?d&&(d+=b):d||(d-=b)));a!=d&&(a=d);return a}
function fg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "^/":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case ",,":e=eg(e,18,!0)*Math.pow(2,18)+eg(f,18,!0);break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=eg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(eg(e))}return!0}
function gg(a,b,c,d,e,f){var g,h,k,p=!1,t=0,v=[],z=[],x=a.u;for(a.u=e;c<d;){var w;h=b[c++].trim();k=c<d?b[c++]:"";if(h)w=hg(a,h,null,f,t);else if("{"==k){h=1;for(w=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;w=gg(a,b,w,c-1,a.u,f);null!=w&&t&&(w=ig(w,t));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.u=2;continue}if("^O"==k){a.u=8;continue}if("^D"==k){a.u=10;continue}if(!(t&-1073741824)){if("+"==k)continue;if("-"==k){t=t<<2|1;continue}if("~"==
k||"^-"==k){t=t<<2|2;continue}if("^L"==k){t=t<<2|3;continue}}p=!0;break}if(void 0===w)if(f)f.push(h),w=0;else{p=!0;f=[];break}v.push(eg(w));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;t="<"==a.U[0]?jg:kg;if(!t[k]){p=!0;break}z.length&&t[k]<=t[z[z.length-1]]&&fg(v,z,1);z.push(k);a.u="^_"==k?10:e;t=0}if(p||!fg(v,z)||1!=v.length)p=!0;p?f||a.i("parse error ("+(h||k)+")"):g=v.pop();a.u=x;return g}
function lg(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var p=b[h++];if(p==c){k=-1;break}if(!k)break;k--;p=p.charCodeAt(0);7==d?p&=127:p=p-32&63;g=eg(g*Math.pow(2,d)+p,d*e,!0)}if(0<=k){a.i("parse error ("+c+b+c+")");return}b=b.substr(0,f)+mg(a,g,-1)+b.substr(h)}return b}
function ng(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=lg(a,b,'"',7,5);if(!b)return d;b=lg(a,b,"'",6,6);if(!b)return d;16!=a.u&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=gg(a,b,0,b.length,a.u,c);void 0!==d&&e&&og(a,null,d)}return d}
function pg(a,b){var c,d=a.U[0],e=a.U[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=ng(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?mg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.S-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function ig(a,b){for(;b;){switch(b&3){case 1:a=-eg(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a}
function hg(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.Jb(b);if(0<=f)f=a.Kb(f);else if(f=b,a.A[f]?f=a.A[f].value:(f=f.substr(0,6),f=a.A[f]&&a.A[f].value),null!=f){var h=a.A[b]&&a.A[b].qe;h&&(g?g.push(h):(g=ng(a,h,d),void 0!==g?f+=g:(d||a.i("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=la(b,1<b.length||10<a.u?a.u:10);null!=f?f=eg(ig(f,e)):d||a.i("invalid "+(c||"value")+": "+b)}else d||a.i("missing "+(c||"value"));return f}
function og(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.u?mg(a,c,32,8,1)+" "+c+".":mg(a,c,32,16,1)+" "+mg(a,c,32,8,1)+" "+mg(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function qg(a,b){var c=0;if(a.A){if(b)return og(a,b,a.A[b]&&a.A[b].value);b=Object.keys(a.A);b.sort();for(var d=0;d<b.length;d++)og(a,b[d],a.A[b[d]].value),c++}return 0<c}
function mg(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.u){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=ma(b,2,a,"",e);break;case 8:(a=0<c?(c+2)/3|0:0)?12<a&&(a=12):(a=Math.abs(b),a=262143>=a?6:16777215>=a?8:12);b=ma(b,8,a,e?"0o":"");break;case 10:(e=0<c?Math.ceil(.3*c):0)?11<e&&(e=11):e=99999>=Math.abs(b)?5:11;b=ma(b,10,e);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var kg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},jg={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20};
function rg(a){dg.call(this,a);this.style=sg;this.L=tg();this.sa=tg();this.T=tg();this.C=[];this.j=this.M=this.B=[];ug(this);this.X=0;vg(this);this.la={};wg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Rc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Rc(b,a)})}aa(rg,dg);l=rg.prototype;
l.Fa=function(a,b,c,d){this.I=b;this.w=c;this.R=a;(a=Nc(a,"messages"))&&wg(this,a);this.oa=xg;de(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=yg(zg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.I.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var t=b[e];t.type==c?p++||d.i("..."):(c=t.type,p=Xb[c],t&&d.i(n(t.id)+" %"+n(e<<d.I.g)+" %%"+n(t.J)+" "+q(t.nb)+" "+
q(t.size)+" "+p),c!=zc&&(c=-1),p=0);a+=d.I.u;e++}}});Eb(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Rc(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,Va(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";Rc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Va(c,function(a){var b=!1;Fb(d,!0)||(Gb(d,!0),b=Ag(d,a?1:0),Gb(d,!1));return b}),!0}return!1};l.Ya=function(){this.V&&this.V.focus()};function yg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ga=function(a,b){var c=255,d=yg(a);-1!==d&&(c=Zb(this.I,d),b&&Zg(a,b));return c};l.Eb=function(a,b){var c=65535,d=yg(a);-1!==d&&(c=ac(this.I,d),b&&Zg(a,b));return c};l.Xb=function(a,b,c){var d=yg(a);-1!==d&&(bc(this.I,d,b),c&&Zg(a,c),Sc(this.w,!0))};
l.Qc=function(a,b,c){var d=yg(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].ob(f,b&255,d),e.b[g&e.H].ob(0,b>>8&255,d+1));c&&Zg(a,c);Sc(this.w,!0)}};function tg(a){return{J:a,Ea:!1}}function ah(a){return[a.J,a.Ea]}function bh(a){return{J:a[0],Ea:a[1]}}
function zg(a,b,c){var d;c=(c?a.L:a.sa).J;if(void 0!==b){d=b=pg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.C.length;c++){var f=a.C[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=tg(d));break}}if(d=e)return d;c=ng(a,b)}null!=c&&(d=tg(c));return d}function ch(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.td=a.yb(b.Jc=c[2]))}function Zg(a,b){null!=a.J&&(a.J+=b||1)}function dh(a){return n(a,4)}
function eh(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 wg(a,b){a.K=a;a.ha=a.xd=536870912;a.Y=null;a.Z=[];b=a.yb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Mb)0<=Ia(b,c)&&(a.ha|=Mb[c],a.i(c+" messages enabled"))}function de(a,b,c){for(var d in Mb)if(b==Mb[d]){a.la[d]=c;break}}
l.Jb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ia(fh,a):(c=Ia(fh,a.substr(b,2)),0>c&&(c=Ia(fh,a.substr(b,1))));return c};function gh(a,b){var c=0;a=a.Kb(b);if(void 0!==a)switch(b){case hh:case ih:case jh:case kh:case lh:case mh:case nh:case oh:c=2;break;case ph:case qh:case rh:case sh:case th:case uh:case vh:c=4}return c?n(a,c):"??"}
l.Kb=function(a){var b;if(0<=a){var c=this.w;switch(a){case hh:b=c.g;break;case ih:b=c.u;break;case jh:b=c.A;break;case ph:b=yd(c);break;case kh:b=c.B;break;case lh:b=c.C;break;case qh:b=Ad(c);break;case mh:b=c.F;break;case nh:b=c.G;break;case rh:b=D(c);break;case oh:b=E(c,D(c));break;case sh:b=c.M;break;case th:b=c.j;break;case uh:b=wd(c);break;case vh:b=wd(c)&255|c.g<<8}}return b};
function wh(a,b){b=pg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Jb(b,c+1),0<=e&&(b=b.substr(0,c)+gh(a,e)+b.substr(c+1+fh[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=la(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=zg(a,e))?(d=e+' "'+eh(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=zg(a,e))?(Zg(d),d=
e+' "'+eh(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+dh(tg(this.w.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.w&&(a=this.w,ad(a),a.ta=0,Sc(a)))};
function Jb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.Gb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+na(d):"")+")"+(null!=g?": "+na(g):"")+(null!=e?" at "+dh(e):""))}
function vg(a){var b;if(Wd(a)){if(!a.H||!a.H.length){a.H=Array(xh);for(b=0;b<a.H.length;b++)a.H[b]=tg();a.W=0;a.i("instruction history buffer allocated")}if(!a.F||!a.F.length)for(a.F=Array(256),b=0;b<a.F.length;b++)a.F[b]=[b,0]}else a.H&&a.H.length&&a.i("instruction history buffer freed"),a.W=0,a.H=[],a.F=[]}function yh(a,b){if(!zh(a))return!1;a.w.rb(b);return!0}
function Ag(a,b,c,d){if(!zh(a))return!1;a.G=0;b||Wd(a)&&Xd(a,a.w.j,0);try{var e=a.w.Cb(b);0<e&&(a.G+=e,Wc(a.w,e,!0),Tc(a.w,e),a.S++)}catch(f){"number"!=typeof f&&(a.G=0,Cb(a.w,f.stack||f.message))}!1!==d&&Sc(a.w);Qc(a,c||!1);return 0<a.G}l.ea=function(a){this.w&&this.w.ea(a)};function Qc(a,b){void 0===b&&(b=!0);a.L=tg(a.w.j);b&&1!=a.O?Ah(a):Bh(a)}
function zh(a){var b;if(b=a.w&&Db(a.w))b=a.w,b.D.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Fb(a.w)?(a=a.w,a.D.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){vg(this);this.S=this.ba=0;this.Y=null;this.G=0;this.L=tg(this.w.j);this.D.ka=!1;Ch(this);a||Qc(this)};
l.save=function(){var a=new xd(this);a.set(0,ah(this.L));a.set(1,ah(this.T));a.set(2,[this.g,this.N,this.ha]);a.set(3,this.C);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.L=bh(a[b++]),this.T=bh(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.N=a[b][1],this.ha|=a[b][2]);a[3]&&(this.C=a[3]);return!0};l.start=function(a,b){this.O||this.i("running");this.D.ka=!0;this.ya=a;this.za=b};
l.stop=function(a,b){if(this.D.ka){this.D.ka=!1;this.G=b-this.za;if(!this.O){b="stopped";if(this.G){a-=this.ya;var c=0<a?Math.round(1E3*this.G/a):0;b+=" (";Wd(this)&&(b+=this.S+" opcodes, ",this.ba-=this.S,this.S=0);b+=this.G+" cycles, "+a+" ms, "+c+" hz)"}else Hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Qc(this,!0);this.Ya();Ch(this,this.w.j)}};function Wd(a){return 1<a.j.length||!!a.X}
function Xd(a,b,c){var d=a.w;if(0<c&&(a.X&&!--a.X||Kc(a,b,1,a.j)))return!0;0<=c&&a.F.length&&(a.S++,b=Zb(a.I,b),null!=b&&(a.F[b][1]++,b=a.H[a.W],b.J=d.j,b.Ea=!1,++a.W==a.H.length&&(a.W=0)));return!1}function hc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function lc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function ug(a){var b,c;a.j=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.I;Jc(d.b[yg(c)>>>d.g],!1)}a.M=["br"];if(a.B)for(b=1;b<a.B.length;b++)c=a.B[b],d=a.I,Jc(d.b[yg(c)>>>d.g],!0);a.B=["bw"];a.ta=0}l.Oa=function(a,b,c){var d=!0;c||Dh(this,a,b,!1,!0);if(a!=this.j){var e=yg(b);if(-1===e)this.i("invalid address: "+dh(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Oa(e&f.j,a==this.B)}}d&&(a.push(b),c?b.Ea=!0:(Eh(this,a,a.length-1,"set"),vg(this)));return d};
function Dh(a,b,c,d,e){var f=!1;c=yg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==yg(h)&&(!d||h.Ea)){f=!0;h.Ea||e||Eh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Jc(d.b[c>>>d.g],b==a.B));h.Ea||vg(a);break}}return f}function Fh(a,b){for(var c=1;c<b.length;c++)Eh(a,b,c);return b.length-1}function Eh(a,b,c,d){c=b[c];a.i(b[0]+" "+dh(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function Ch(a,b){if(void 0!==b)Kc(a,b,1,a.j,!0),a.O=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Ea){if(!Dh(a,a.j,c,!0))break;b=0}}}
function Kc(a,b,c,d,e){var f=!1;if(!a.ta++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ea)for(var k=yg(h),p=0;p<c;p++)if(b+p==k){var t,f=!0;h.Ea&&(Dh(a,d,h,!0),e=!0);if(t=h.td){for(var f=!1,v=0;v<t.length;v++)if(!Gh(a,t[v],!0)){if(t[v].indexOf("if")){f=!0;break}for(var z=v+1;z<t.length&&t[z].indexOf("else");z++)v++;if(z==t.length){f=!0;break}}a.w.D.ka||(f=!0)}if(f){e||Eh(a,d,g,"hit");break}}}a.ta--;return f}
function Hh(a,b,c,d){for(var e=tg(b.J),f=a.Ga(b,1),g=a.oa[f],h="",k=(a.style!=Ih?Jh:Kh)[g[0]],p=g.length-1,t=Lh,v,z=1;z<=p;z++){var x="";v=g[z];if(void 0!==v&&!(v&O&&a.style==sg)){var w=v&Mh;if(w){var C=v&Nh;C?t=C:v|=t;v&Oh||(v|=1==z?Ph:Qh);if(w&P)a:{x=a;w=v;C=b;switch(w&Nh){case Q:C=n(x.Ga(C,1),2);break;case Rh:C=n(x.Ga(C,1)<<24>>24,4);break;case Sh:C=n(x.Eb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Ih&&w&Th?C="["+C+"]":w&Uh||(C=(x.style==sg?"$":"0x")+C);x=C}else w&Uh?(x=(v&Vh)>>8,
w=fh[x],a.style==Ih&&v&Th&&(x==oh&&(w="HL"),w="["+w+"]"),x=w):w&Wh&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0<h.length&&(h+=",");h+=x||"???"}}}f="";g=dh(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ga(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=wa(f,10);g+=v&Xh?"*":" ";g+=wa(k,7);h&&(g+=" "+h);c&&(g=wa(g,40)+";"+c,g=a.w.D.Va?g+("cycles="+Uc(a.w).toString()+" cs="+n(a.w.wa)):g+(null!=d?"="+d.toString():""));return g}
function Yh(a,b){switch(b){case "IF":a=a.w.N&512;break;case "SF":a=Id(a.w);break;case "ZF":a=Hd(a.w);break;case "AF":a=Gd(a.w);break;case "PF":a=Fd(a.w);break;case "CF":a=Dd(a.w);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Zh(a,b){return fh[b]+"="+gh(a,b)+" "}function $h(a){return Zh(a,hh)+Zh(a,ph)+Zh(a,qh)+Zh(a,rh)+Zh(a,sh)+Yh(a,"IF")+Yh(a,"SF")+Yh(a,"ZF")+Yh(a,"AF")+Yh(a,"PF")+Yh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ai(a,b,c){var d=[],e=yg(b)>>>0;for(b=0;b<a.C.length;b++){var f=a.C[b],g=f.J>>>0,h=f.Rd;if(e>=g&&e<g+h){e=Ea(f.zc,[e-g],a.Ac);0<=e?bi(a,b,e,d):c&&(e=~e,bi(a,b,e-1,d),bi(a,b,e,d));break}}return d}function bi(a,b,c,d){var e={},f=a.C[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.C[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 ci(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.F)if("clear"==b){for(b=0;b<a.F.length;b++)a.F[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.F.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Ih?Jh:Kh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.oa[f][0]]+" ").substr(0,5)+" ("+na(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function di(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return qg(a)||a.i("no variables"),!0;if(!c[2])return qg(a,c[1]);if(!c[3])return delete a.A[c[1]],!0;b=ng(a,c[3]);return void 0!==b?(a.A[c[1]]={value:b,qe:void 0},!0):!1}a.i("invalid assignment:"+b);return!1}
function ei(a,b,c){var d=null;if(b=zg(a,b,!0)){var e=ai(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+dh(e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.J)&&(g=" - "+q(f)),f=e[4]+" ("+dh(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function fi(a,b){switch(b[1]){case "8080":a.style=sg;break;case "8086":a.style=Ih;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.w.na=c;break;case "start":a.w.ya=c;break;case "stop":a.w.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Pc(a.w);a.i("checksums "+(a.w.D.Va?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Vc(a.w,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.w.Z.toFixed(2)+"Mhz")+" ("+a.w.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 yh(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.w;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=lg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.u=f&255;break;case "BC":d.u=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.G=f&255;break;case "SP":d.M=f&65535;break;case "PC":B(d,f);a.L=rg(d.j);break;case "PS":sd(d,f);break;case "PSW":sd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Dd(d)||(d.L^=1):Dd(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.H=f?d.H&-256:d.H|255;break;case "SF":f?Gd(d)||(d.L^=192):Gd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Qc(d);a.i("updated registers:")}a.i(Yh(a));c&&(a.L=rg(d.j),zh(a,bh(a.L.J)))}}function ei(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(uh(a,c[2])):lg(a,b,!1)}function fi(a,b,c){var d="t"!=b;c=fg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Eb(a,!0)&&yg(a,e,d,!1)},function(){Qc(a.w);Eb(a,!1)})}
function zh(a,b,c,d){if(b=xg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=xg(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=Db(a,!1)||a.O?a.G:null;var g=null!=f?"cycles":null,h=Zh(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=Fh(a,b,g,f);a.i(f);a.L=b;e-=b.J-k;c++}}}
function Ah(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.w;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=ng(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.u=f&255;break;case "BC":d.u=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.F=f&255;break;case "HL":d.F=f>>8&255;case "L":d.G=f&255;break;case "SP":d.M=f&65535;break;case "PC":B(d,f);a.L=tg(d.j);break;case "PS":ud(d,f);break;case "PSW":ud(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.H=f?d.H|256:d.H&255;break;case "PF":f?Fd(d)||(d.L^=1):Fd(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.H=f?d.H&-256:d.H|255;break;case "SF":f?Id(d)||(d.L^=192):Id(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Sc(d);a.i("updated registers:")}a.i($h(a));c&&(a.L=tg(d.j),Bh(a,dh(a.L.J)))}}function gi(a,b){b=xa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(wh(a,c[2])):ng(a,b,!1)}function hi(a,b,c){var d="t"!=b;c=hg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ua(c,function(){return Gb(a,!0)&&Ag(a,e,d,!1)},function(){Sc(a.w);Gb(a,!1)})}
function Bh(a,b,c,d){if(b=zg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=zg(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=Fb(a,!1)||a.O?a.G:null;var g=null!=f?"cycles":null,h=ai(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=Hh(a,b,g,f);a.i(f);a.L=b;e-=b.J-k;c++}}}
l.yb=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.N?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(xa(a.substring(d,f))),d=f+1}}return b};
function Eh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+bh(a.T.J)),a.L=a.T,a.N=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(Bb(a)&&0<b.length){a.N&&(b="a "+bh(a.T.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 t=xg(a,f[1],!0);if(t)if(a.T=
t,void 0===f[2])a.i("begin assemble at "+bh(t.J)),a.N=!0,Qc(a.w);else{var v;a.i("not supported yet");v=[];if(v.length){for(var z=0;z<v.length;z++)a.Xb(t,v[z],1);a.i(Fh(a,a.T))}}break;case "b":a:{var x=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=x.charAt(1);if("l"==T){var ya;ya=0+Dh(a,a.j);ya+=Dh(a,a.M);(ya+=Dh(a,a.B))||a.i("no breakpoints")}else if("n"==T)a.X=fg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=rg();if("*"!=w&&(L=xg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(sg(a),a.i("all breakpoints cleared")):Bh(a,a.j,L)||Bh(a,a.M,L)||Bh(a,a.B,L)||a.i("breakpoint missing: "+bh(L.J)):
"i"==T?a.i("breakpoint "+(cc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(gc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(ah(a,L,C),"p"==T?a.Oa(a.j,L):"r"==T?a.Oa(a.M,L):"w"==T?a.Oa(a.B,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":var za=a.R;za.B&&(za.B.value="");break;case "d":a:{var sa,Aa=f[0],ta=f[1],Ba=f[2],Ki=f[3];if("?"==ta){var Qb="";for(sa in Kb)a.ka[sa]&&(Qb&&(Qb+=","),Qb+=sa);Qb+=",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");Qb.length&&a.i("dump extension commands:\n\t"+Qb)}else if("state"==ta){var re=gi(a.R,!0);if("console"==Ba)console.log(re);else{var zg=a.R;zg.B&&(zg.B.value="");re&&a.i(re)}}else if("symbols"==ta)for(var se=0;se<a.C.length;se++){var te=a.C[se],Rb;for(Rb in te.ra)if("."!=Rb.charAt(0)){var Ag=te.ra[Rb].o;
if(void 0!==Ag){var Bg=te.ra[Rb].l;Bg&&(Rb=Bg);a.i(bh(Ag)+" "+Rb)}}}else{if("d"==Aa){for(sa in Kb)if(f[1]==sa){var Cg=a.ka[sa];Cg?(f.shift(),f.shift(),Cg(f)):a.i("no dump registered for "+ta);break a}ta||(Aa=a.Ca||"db")}else a.Ca=Aa;if("dh"==Aa){var Dg=ta,Eg=Ba,Fg="",Gg=0,Oa=a.W,bb=a.H;if(bb.length){var Da=+Dg||a.wa,nc=+Eg||10;isNaN(Da)?Da=nc:Fg="more ";Da>bb.length&&(a.i("note: only "+bb.length+" available"),Da=bb.length);Oa-=Da;0>Oa&&(null==bb[bb.length-1].J?(Da=Oa+Da,Oa=0):Oa+=bb.length);var ue=
[];"call"==Eg&&(nc=1E5,ue=["CALL"]);for(void 0!==Dg&&a.i(Da+" instructions earlier:");0<nc&&Oa!=a.W;){var Hg=bb[Oa++];if(null==Hg.J)break;var oc=rg(Hg.J),Li=Da--,Ig=Fh(a,oc,"history",Li);(!ue.length||0<=Ig.indexOf(ue[0]))&&a.i(Ig);oc.Ib&&(Oa+=oc.Ib,nc-=oc.Ib,Da-=oc.Ib);Oa>=bb.length&&(Oa=0);a.wa=Da;Gg++;nc--}}Gg||(a.i("no "+Fg+"history available"),a.wa=void 0)}else{var dd=xg(a,ta);if(dd){var ed=0;Ba&&("l"==Ba.charAt(0)&&(Ba=Ba.substr(1)||Ki),ed=fg(a,Ba)>>>0,65536<ed&&(ed=65536));for(var pc="",fd=
"dd"==Aa?4:"dw"==Aa?2:1,gd=fd*ed||128,Mi=gd+15>>4||1;Mi--&&0<gd;){var hd=0,ve=0,qc,we="",Jg="",ta=bh(dd.J);for(qc=16;0<qc&&0<gd;qc--){var id=a.Ga(dd,1),hd=hd|id<<(ve++<<3);ve==fd&&(we+=n(hd,2*fd),we+=1==fd?9==qc?"-":" ":" ",hd=ve=0);Jg+=32<=id&&128>id?String.fromCharCode(id):".";gd--}pc&&(pc+="\n");pc+=ta+" "+we+(qc?"":" "+Jg)}pc&&a.i(pc);a.sa=dd}}}}break;case "e":if("else"==f[0])break;var jd=1,Kg=255,Lg=a.Ga,Mg=a.Xb;"ew"==f[0]&&(jd=2,Kg=65535,Lg=a.Eb,Mg=a.Qc);var Ng=jd<<1,Og=f[1];if(null==Og)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 kd=xg(a,Og);if(kd)for(var ld=2;ld<f.length;ld++){var rc=lg(a,f[ld]);if(void 0===rc){a.i("unrecognized value: "+f[ld]);break}rc&~Kg&&a.i("warning: "+n(rc)+" exceeds "+jd+"-byte value");var Ni=Lg.call(a,kd);a.i("changing "+bh(kd.J)+" from "+n(Ni,Ng,!0)+" to "+n(rc,Ng,!0));Mg.call(a,kd,rc,jd)}}break;case "f":ai(a,f[1]);break;case "g":a:{var Pg=f[1],Oi=b;if(void 0!==Pg){var xe=xg(a,Pg,!0);if(!xe)break a;
ah(a,xe,Oi);a.Oa(a.j,xe,!0)}wh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ye;if(a.F.ma)ye="halting",a.ea();else{if(Db(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var sc=b.substr(2),sc=xa(sc);lg(a,sc)?(c||a.i("true: "+sc),ze=!0):(c||a.i("false: "+sc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var md;var Pi=f[1];if(a.w.N&512){var Ae=lg(a,Pi);null==Ae?md=!1:(a.i("requesting interrupt level "+Ae),Td(a.w,Ae),md=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),
md=!1;md||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=fg(a,Be);if(void 0!==Ce){var Qi=ec(a.I,Ce);a.i(q(Ce)+": "+na(Qi))}}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 Ri=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Qg=rg(),tc=rg(a.w.M);for(a.i("stack trace for "+bh(tc.J));10>De;){for(var wb=null,Si=256;65536>tc.J>>>0;){Qg.J=
a.Eb(tc,2);if(null==tc.J||!Si--)break;for(var Ti=a,nd=Qg,Rg=null,uc=nd.J,Sg=uc,Ee=1;6>=Ee&&uc;Ee++){if(2<Ee){nd.J=uc;var od=Fh(Ti,nd);if(0<=od.indexOf("CALL")){var Tg=od.indexOf(" ");if(uc+(od.indexOf(" ",Tg+1)-Tg-1)/2==Sg){Rg=od;break}}}uc--}nd.J=Sg;if(wb=Rg)break}if(!wb||null==wb)break;var Ug=null;if("ks"==Ri){var Vg=wb.match(/[0-9A-F]+$/);Vg&&(Ug=ci(a,Vg[0]))}wb=wa(wb,50)+" ;"+(Ug||"stack="+bh(tc.J));a.i(wb);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&ci(a,f[1],!0);break;
case "m":a:{var cb,db=null,ba=f[1];"?"==ba&&(ba=void 0);if(void 0!==ba){var ob=0;if("all"==ba)ob=1878917119,ba=null;else if("on"==ba)db=!0,ba=null;else if("off"==ba)db=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for(cb in Kb)if(ba==cb){ob=Kb[cb];db=!!(a.ha&ob);break}if(!ob){a.i("unknown message category: "+ba);break a}}if(ob)if("on"==f[2])a.ha|=ob,db=!0;else if("off"==f[2]&&(a.ha&=~ob,db=!1,1073741824==ob)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Ui=0,vc="";
for(cb in Kb)if(!ba||ba==cb){var Vi=!!(a.ha&Kb[cb]);if(null===db||db==Vi)vc&&(vc+=","),++Ui%10||(vc+="\n\t"),"key"==cb&&(cb="keys"),vc+=cb}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==db?db?"messages on: ":"messages off: ":"message categories:\n\t")+(vc||"none"));tg(a)}break;case "o":var Ge=f[1],Wi=f[2];if(Ge&&"?"!=Ge){var He=fg(a,Ge,"port #"),Ie=fg(a,Wi);void 0!==He&&void 0!==Ie&&(ic(a.I,He,Ie),a.i(q(He)+": "+na(Ie)))}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]){ei(a,b.substr(5));break}var Wg="pr"==f[0]?1:0,Xi=1+Wg;if(a.O)a.i("step in progress");else{var Je=rg(a.w.j);switch(a.Ga(Je)){case 205:a.O=Xi,Xg(Je,3)}a.O?(a.Oa(a.j,Je,!0),wh(a)||(a.R&&a.R.Ya(),a.O=0)):fi(a,Wg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}yh(a,f);break;case "s":di(a,f);break;case "t":fi(a,f[0],f[1]);break;case "u":zh(a,f[1],f[2],8);
break;case "v":if("var"==f[0]){bi(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.36.0 ("+a.w.vb+",RELEASE"+(Ib?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ja());break;case "?":if(f[1]){ei(a,b.substr(1));break}var Ke="commands:",Le;for(Le in hi)Ke+="\n"+wa(Le,9)+hi[Le];Ud(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Yg){a.i("debugger error: "+(Yg.stack||Yg.message)),d=!1}return d}
function Pc(a,b,c){b=a.yb(b,c);for(var d in b)if(!Eh(a,b[+d]))return!1;return!0}
var hi={"?":"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"},
qg=8080,Gh=8086,Hh="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(" "),Ih="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(" "),
gh=0,hh=1,ih=2,jh=3,kh=4,lh=5,mh=6,fh=7,nh=8,oh=9,ph=10,qh=11,rh=12,sh=13,th=14,dh="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Lh=15,Kh=240,Th=3840,Mh=61440,Jh=0,Q=1,Ph=2,Qh=3,Sh=16,P=32,Rh=64,Uh=128,R=fh<<8|Sh|Q,S=gh<<8|Sh|Q,U=hh<<8|Sh|Q,V=ih<<8|Sh|Q,W=jh<<8|Sh|Q,X=kh<<8|Sh|Q,Y=lh<<8|Sh|Q,Z=mh<<8|Sh|Q|Rh,ii=nh<<8|Sh|Qh,ji=oh<<8|Sh|Qh,ki=ph<<8|Sh|Qh,li=qh<<8|Sh|Qh,mi=th<<8|Sh|Qh,Oh=4096,Nh=8192,O=16384,Vh=32768,vg=[[45],[42,ii,P],[71,ii|Rh,R|O],[29,ii],[28,S],[22,S],[44,S,P],[63],[45,Vh],[21,
ki|O,ii],[40,R|O,ii|Rh],[23,ii],[28,U],[22,U],[44,U,P],[64],[45,Vh],[42,ji,P],[71,ji|Rh,R|O],[29,ji],[28,V],[22,V],[44,V,P],[52],[45,Vh],[21,ki|O,ji],[40,R|O,ji|Rh],[23,ji],[28,W],[22,W],[44,W,P],[53],[45,Vh],[42,ki,P],[68,51|Rh,ki|O],[29,ki],[28,X],[22,X],[44,X,P],[20],[45,Vh],[21,ki|O,ki],[41,ki|O,51|Rh],[23,ki],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Vh],[42,li,P],[70,51|Rh,R|O],[29,li],[28,Z],[22,Z],[44,Z,P],[72],[45,Vh],[21,ki|O,li],[39,R|O,51|Rh],[23,li],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
function Gh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+dh(a.T.J)),a.L=a.T,a.N=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(Db(a)&&0<b.length){a.N&&(b="a "+dh(a.T.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 t=zg(a,f[1],!0);if(t)if(a.T=
t,void 0===f[2])a.i("begin assemble at "+dh(t.J)),a.N=!0,Sc(a.w);else{var v;a.i("not supported yet");v=[];if(v.length){for(var z=0;z<v.length;z++)a.Xb(t,v[z],1);a.i(Hh(a,a.T))}}break;case "b":a:{var x=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=x.charAt(1);if("l"==T){var ya;ya=0+Fh(a,a.j);ya+=Fh(a,a.M);(ya+=Fh(a,a.B))||a.i("no breakpoints")}else if("n"==T)a.X=hg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=tg();if("*"!=w&&(L=zg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(ug(a),a.i("all breakpoints cleared")):Dh(a,a.j,L)||Dh(a,a.M,L)||Dh(a,a.B,L)||a.i("breakpoint missing: "+dh(L.J)):
"i"==T?a.i("breakpoint "+(ec(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ic(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(ch(a,L,C),"p"==T?a.Oa(a.j,L):"r"==T?a.Oa(a.M,L):"w"==T?a.Oa(a.B,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":var za=a.R;za.B&&(za.B.value="");break;case "d":a:{var sa,Aa=f[0],ta=f[1],Ba=f[2],Mi=f[3];if("?"==ta){var Qb="";for(sa in Mb)a.la[sa]&&(Qb&&(Qb+=","),Qb+=sa);Qb+=",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");Qb.length&&a.i("dump extension commands:\n\t"+Qb)}else if("state"==ta){var re=ii(a.R,!0);if("console"==Ba)console.log(re);else{var Bg=a.R;Bg.B&&(Bg.B.value="");re&&a.i(re)}}else if("symbols"==ta)for(var se=0;se<a.C.length;se++){var te=a.C[se],Rb;for(Rb in te.ra)if("."!=Rb.charAt(0)){var Cg=te.ra[Rb].o;
if(void 0!==Cg){var Dg=te.ra[Rb].l;Dg&&(Rb=Dg);a.i(dh(Cg)+" "+Rb)}}}else{if("d"==Aa){for(sa in Mb)if(f[1]==sa){var Eg=a.la[sa];Eg?(f.shift(),f.shift(),Eg(f)):a.i("no dump registered for "+ta);break a}ta||(Aa=a.Ca||"db")}else a.Ca=Aa;if("dh"==Aa){var Fg=ta,Gg=Ba,Hg="",Ig=0,Oa=a.W,bb=a.H;if(bb.length){var Da=+Fg||a.wa,nc=+Gg||10;isNaN(Da)?Da=nc:Hg="more ";Da>bb.length&&(a.i("note: only "+bb.length+" available"),Da=bb.length);Oa-=Da;0>Oa&&(null==bb[bb.length-1].J?(Da=Oa+Da,Oa=0):Oa+=bb.length);var ue=
[];"call"==Gg&&(nc=1E5,ue=["CALL"]);for(void 0!==Fg&&a.i(Da+" instructions earlier:");0<nc&&Oa!=a.W;){var Jg=bb[Oa++];if(null==Jg.J)break;var oc=tg(Jg.J),Ni=Da--,Kg=Hh(a,oc,"history",Ni);(!ue.length||0<=Kg.indexOf(ue[0]))&&a.i(Kg);oc.Ib&&(Oa+=oc.Ib,nc-=oc.Ib,Da-=oc.Ib);Oa>=bb.length&&(Oa=0);a.wa=Da;Ig++;nc--}}Ig||(a.i("no "+Hg+"history available"),a.wa=void 0)}else{var dd=zg(a,ta);if(dd){var ed=0;Ba&&("l"==Ba.charAt(0)&&(Ba=Ba.substr(1)||Mi),ed=hg(a,Ba)>>>0,65536<ed&&(ed=65536));for(var pc="",fd=
"dd"==Aa?4:"dw"==Aa?2:1,gd=fd*ed||128,Oi=gd+15>>4||1;Oi--&&0<gd;){var hd=0,ve=0,qc,we="",Lg="",ta=dh(dd.J);for(qc=16;0<qc&&0<gd;qc--){var id=a.Ga(dd,1),hd=hd|id<<(ve++<<3);ve==fd&&(we+=n(hd,2*fd),we+=1==fd?9==qc?"-":" ":" ",hd=ve=0);Lg+=32<=id&&128>id?String.fromCharCode(id):".";gd--}pc&&(pc+="\n");pc+=ta+" "+we+(qc?"":" "+Lg)}pc&&a.i(pc);a.sa=dd}}}}break;case "e":if("else"==f[0])break;var jd=1,Mg=255,Ng=a.Ga,Og=a.Xb;"ew"==f[0]&&(jd=2,Mg=65535,Ng=a.Eb,Og=a.Qc);var Pg=jd<<1,Qg=f[1];if(null==Qg)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 kd=zg(a,Qg);if(kd)for(var ld=2;ld<f.length;ld++){var rc=ng(a,f[ld]);if(void 0===rc){a.i("unrecognized value: "+f[ld]);break}rc&~Mg&&a.i("warning: "+n(rc)+" exceeds "+jd+"-byte value");var Pi=Ng.call(a,kd);a.i("changing "+dh(kd.J)+" from "+n(Pi,Pg,!0)+" to "+n(rc,Pg,!0));Og.call(a,kd,rc,jd)}}break;case "f":ci(a,f[1]);break;case "g":a:{var Rg=f[1],Qi=b;if(void 0!==Rg){var xe=zg(a,Rg,!0);if(!xe)break a;
ch(a,xe,Qi);a.Oa(a.j,xe,!0)}yh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ye;if(a.D.ka)ye="halting",a.ea();else{if(Fb(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var sc=b.substr(2),sc=xa(sc);ng(a,sc)?(c||a.i("true: "+sc),ze=!0):(c||a.i("false: "+sc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var md;var Ri=f[1];if(a.w.N&512){var Ae=ng(a,Ri);null==Ae?md=!1:(a.i("requesting interrupt level "+Ae),Vd(a.w,Ae),md=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),
md=!1;md||(d=!1);break}var Be=f[1];if(Be&&"?"!=Be){var Ce=hg(a,Be);if(void 0!==Ce){var Si=gc(a.I,Ce);a.i(q(Ce)+": "+na(Si))}}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 Ti=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var De=0,Sg=tg(),tc=tg(a.w.M);for(a.i("stack trace for "+dh(tc.J));10>De;){for(var wb=null,Ui=256;65536>tc.J>>>0;){Sg.J=
a.Eb(tc,2);if(null==tc.J||!Ui--)break;for(var Vi=a,nd=Sg,Tg=null,uc=nd.J,Ug=uc,Ee=1;6>=Ee&&uc;Ee++){if(2<Ee){nd.J=uc;var od=Hh(Vi,nd);if(0<=od.indexOf("CALL")){var Vg=od.indexOf(" ");if(uc+(od.indexOf(" ",Vg+1)-Vg-1)/2==Ug){Tg=od;break}}}uc--}nd.J=Ug;if(wb=Tg)break}if(!wb||null==wb)break;var Wg=null;if("ks"==Ti){var Xg=wb.match(/[0-9A-F]+$/);Xg&&(Wg=ei(a,Xg[0]))}wb=wa(wb,50)+" ;"+(Wg||"stack="+dh(tc.J));a.i(wb);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&ei(a,f[1],!0);break;
case "m":a:{var cb,db=null,ba=f[1];"?"==ba&&(ba=void 0);if(void 0!==ba){var ob=0;if("all"==ba)ob=1878917119,ba=null;else if("on"==ba)db=!0,ba=null;else if("off"==ba)db=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for(cb in Mb)if(ba==cb){ob=Mb[cb];db=!!(a.ha&ob);break}if(!ob){a.i("unknown message category: "+ba);break a}}if(ob)if("on"==f[2])a.ha|=ob,db=!0;else if("off"==f[2]&&(a.ha&=~ob,db=!1,1073741824==ob)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Wi=0,vc="";
for(cb in Mb)if(!ba||ba==cb){var Xi=!!(a.ha&Mb[cb]);if(null===db||db==Xi)vc&&(vc+=","),++Wi%10||(vc+="\n\t"),"key"==cb&&(cb="keys"),vc+=cb}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==db?db?"messages on: ":"messages off: ":"message categories:\n\t")+(vc||"none"));vg(a)}break;case "o":var Ge=f[1],Yi=f[2];if(Ge&&"?"!=Ge){var He=hg(a,Ge,"port #"),Ie=hg(a,Yi);void 0!==He&&void 0!==Ie&&(kc(a.I,He,Ie),a.i(q(He)+": "+na(Ie)))}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]){gi(a,b.substr(5));break}var Yg="pr"==f[0]?1:0,Zi=1+Yg;if(a.O)a.i("step in progress");else{var Je=tg(a.w.j);switch(a.Ga(Je)){case 205:a.O=Zi,Zg(Je,3)}a.O?(a.Oa(a.j,Je,!0),yh(a)||(a.R&&a.R.Ya(),a.O=0)):hi(a,Yg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}Ah(a,f);break;case "s":fi(a,f);break;case "t":hi(a,f[0],f[1]);break;case "u":Bh(a,f[1],f[2],8);
break;case "v":if("var"==f[0]){di(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.36.0 ("+a.w.vb+",RELEASE"+(Kb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(La());break;case "?":if(f[1]){gi(a,b.substr(1));break}var Ke="commands:",Le;for(Le in ji)Ke+="\n"+wa(Le,9)+ji[Le];Wd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch($g){a.i("debugger error: "+($g.stack||$g.message)),d=!1}return d}
function Rc(a,b,c){b=a.yb(b,c);for(var d in b)if(!Gh(a,b[+d]))return!1;return!0}
var ji={"?":"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"},
sg=8080,Ih=8086,Jh="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(" "),Kh="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(" "),
ih=0,jh=1,kh=2,lh=3,mh=4,nh=5,oh=6,hh=7,ph=8,qh=9,rh=10,sh=11,th=12,uh=13,vh=14,fh="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Nh=15,Mh=240,Vh=3840,Oh=61440,Lh=0,Q=1,Rh=2,Sh=3,Uh=16,P=32,Th=64,Wh=128,R=hh<<8|Uh|Q,S=ih<<8|Uh|Q,U=jh<<8|Uh|Q,V=kh<<8|Uh|Q,W=lh<<8|Uh|Q,X=mh<<8|Uh|Q,Y=nh<<8|Uh|Q,Z=oh<<8|Uh|Q|Th,ki=ph<<8|Uh|Sh,li=qh<<8|Uh|Sh,mi=rh<<8|Uh|Sh,ni=sh<<8|Uh|Sh,oi=vh<<8|Uh|Sh,Qh=4096,Ph=8192,O=16384,Xh=32768,xg=[[45],[42,ki,P],[71,ki|Th,R|O],[29,ki],[28,S],[22,S],[44,S,P],[63],[45,Xh],[21,
mi|O,ki],[40,R|O,ki|Th],[23,ki],[28,U],[22,U],[44,U,P],[64],[45,Xh],[42,li,P],[71,li|Th,R|O],[29,li],[28,V],[22,V],[44,V,P],[52],[45,Xh],[21,mi|O,li],[40,R|O,li|Th],[23,li],[28,W],[22,W],[44,W,P],[53],[45,Xh],[42,mi,P],[68,51|Th,mi|O],[29,mi],[28,X],[22,X],[44,X,P],[20],[45,Xh],[21,mi|O,mi],[41,mi|O,51|Th],[23,mi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Xh],[42,ni,P],[70,51|Th,R|O],[29,ni],[28,Z],[22,Z],[44,Z,P],[72],[45,Xh],[21,mi|O,ni],[39,R|O,51|Th],[23,ni],[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,ii],[34,51],[30,51],[11,51],[51,ii],[4,R|O,P|Q],[65,Uh],[62],[54],[38,51],[30,51|Vh],[15,51],[7,51],[1,R|O,P|Q],[65,Uh],[57],[50,ji],[33,51],[48,P|Q,R|O],[10,51],[51,ji],[74,R|O,P|Q],[65,Uh],[55],[54,Vh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Vh],[67,R|O,P|Q],[65,
Uh],[61],[50,ki],[37,51],[78,li|Rh|O,ki|O],[14,51],[51,ki],[6,R|O,P|Q],[65,Uh],[60],[49,ki],[36,51],[75,ki|O,ji|O],[13,51],[7,51|Vh],[77,R|O,P|Q],[65,Uh],[59],[50,mi],[35,51],[24],[12,51],[51,mi],[47,R|O,P|Q],[65,Uh],[56],[69,li|O,ki|O],[32,51],[25],[9,51],[7,51|Vh],[19,R|O,P|Q],[65,Uh]],vh=1E3;Va(function(){for(var a=nb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new pg(d);mb(d,c)}});
function ni(a,b,c){u.call(this,"Computer",a,67108864);this.F.ja=!1;oi(this,b);this.M=Lc(this,"autoPower",a);this.j=0;this.U=a.busWidth||a.buswidth;this.b=pi;this.H=null;this.D=this.S=!1;this.W=Lc(this,"url")||"";(Math.random()+.1).toString(36);this.g=qi(this);if(this.w=sb("CPU",this.id)){this.K=sb("Debugger",this.id);this.A=[];for(b=null;b=Mb(this,"Video",b);)this.A.push(b);this.I=new Ob({id:this.bb+".bus",busWidth:this.U},this.w,this.K);var d,e=qb(this.id);if(this.B=(this.C=sb("Panel",this.id))&&
this.C.P.print)for(b=0;b<e.length;b++)d=e[b],d.aa=this.C.aa,d.print=this.C.print,d.i=this.C.i;this.i("PC8080 v1.36.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.Fa&&d.Fa(this,this.I,this.w,this.K);b=null;d=Lc(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var f;if(a=Lc(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.D=!0,this.b=pi),this.b&&(this.L=new vd(this,
"1.36.0"),ri(this.L)?b=null:delete this.L);!b&&this.b&&(b=si(this))&&(this.D=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.G=null,g.D=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+xa(b):"")+")")):(g.H=b,g.S=!0);Cb(g)})}else Cb(this);this.P.power||(this.M=!0);!c&&this.M&&ti(this,this.lb)}else r("Unable to find CPU component")}aa(ni,u);
function oi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b}function Lc(a,b,c){var d=b.toLowerCase(),d=Qa(b)||Qa(d);void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ti(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){ti(a,b,c)});return}}b.call(a,c)}
function ui(a,b){var c=new vd(a,"1.36.0",vi);if(ri(c)&&wi(c)){var d=c.get(xi),e=b?b.get(xi):"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=ni.prototype;
l.lb=function(a){void 0===a&&(a=this.b||(this.H?yi:pi));if(!this.j){this.j++;var b=!1,c=!1;this.O=!1;var d=this.L||new vd(this,"1.36.0");if(a==zi)b=!0;else if(a>pi){if(ri(d,this.H)){this.u=new vd(this,"1.36.0",Ai);ri(this.u)&&(Bi(this,d),a=Ci,Di(this.u));this.u.set(xi,Fa());Ei(this.u);var e=this.b&&!this.D;if(a==yi||kb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=wi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ri(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Na(Fi,""),this.g=null)):this.i(f+": "+g),Di(d),ri(d)?(c=wi(d),e=!0):c=!1))}e&&ui(this,c?d:null)}else a==Ci&&d.clear()}else ui(this);delete this.H;delete this.L}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.w&&(c=Gi(this,g,d,b,c));b=[d,a,c];a!=zi?ti(this,this.Cc,b):this.Cc(b)}};
function Gi(a,b,c,d,e){if(!b.F.ja){b.F.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.b=pi,window&&window.location.reload()):a.O=!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.V=!0;this.F.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.w&&(Gi(this,this.w,b,c,a),this.w.jb());this.O&&(Bi(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function Bi(a,b){if(kb("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.36.0"};d.url=a.W;d.user=c;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function gi(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new vd(a,"1.36.0"),g=new vd(a,"1.36.0",vi),h=Fa();g.set(xi,h);f.set(xi,h);f.set(Hi,"1.36.0");f.set(Ii,window?window.location.href:null);f.set(Ji,Ja());a.w&&a.w.ua&&(c&&a.w.ea(),d=a.w.ua(b,c),"object"===typeof d&&f.set(a.w.id,d),c&&(a.w.F.ja=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var p=h[k];p.F.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.F.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Yi(a,
a.g,f.toString()),Ei(g)&&Ei(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Zi),d&&f.clear(h)):e=f.toString());c&&(a.F.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.I&&this.I.reset&&(Gb(this,"Resetting "+this.I.type),this.I.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Gb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=qb(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=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.F.ja?gi(d,!1,!0):ti(d,d.lb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.F.ja&&!d.j)if(d.b&&!d.G){var a=kb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gi(d,a,!0);!a&&d.N?window&&window.location.reload():d.lb(pi)}else d.reset(),d.w&&d.w.jb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=qi(d,!0);if(a){var b=!!(d.b&&!d.G||d.N),c=gi(d,b);b?Yi(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function qi(a,b){var c=a.g;c||((c=Ma(Fi),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=$i(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function $i(a,b){a.g=null;b=Ha(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Na(Fi,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function si(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+aj(a,"1.36.0"));return b}
function Yi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=aj(a,"1.36.0");d.data=c;b=Ha(ra()+"/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),Na(Fi,""),a.g=null)}}
function Mb(a,b,c){a=qb(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.Ya=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 $c(a,b){a.w&&(a=a.w,a.gb&&(b||!a.F.ma||a.F.Bc)&&(I(a,"A",a.g),I(a,"B",a.u),I(a,"C",a.A),I(a,"BC",wd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",yd(a),4),I(a,"H",a.D),I(a,"L",a.G),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=ud(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.F.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var Ai="failsafe",vi="validate",xi="timestamp",Hi="version",Ii="url",Ji="browser",Fi="user",zi=-1,pi=0,yi=1,Ci=2,Zi=3;Va(function(){for(var a=nb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=nb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ni(g,d,!0);mb(g,f);g.M&&ti(g,g.lb)}});Wa.show.push(function(){for(var a=nb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);if(c=sb("Computer",c.id))c.F.Qb=!1,c.V&&!c.F.ja&&c.lb(zi)}});
Wa.exit.push(function(){for(var a=nb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);if(c=sb("Computer",c.id))c.F.Qb=!0,c.F.ja&&gi(c,!(!c.b||c.G),!0)}});function vd(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.w=this.I=!1;this.key=aj(a,b,c);Di(this,a.Bd)}l=vd.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 ri(a,b){return b?(a.g=b,a.w=!0,a.I=!1,!0):a.w?!0:Ka()&&(b=Ma(a.key))?(a.g=b,a.w=!0):!1}function wi(a){var b=!0;if(!a.I)try{a.b=JSON.parse(a.g),a.I=!0}catch(c){r(c.message||c),b=!1}return b}function Ei(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Na(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function Di(a,b){a.g="";a.b={};a.w=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){Di(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 aj(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 bj=0;
function cj(a,b,c,d,e,f){e("Loading "+a+"...");Ha(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):dj(h,a,b,c,d,e,f)})}
function dj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(hb(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),d=d.replace(/\$/g,"$$$$"),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(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?ej(a,f,h):h(a,null):g("no data"+(b?" for file: "+
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,ki],[34,51],[30,51],[11,51],[51,ki],[4,R|O,P|Q],[65,Wh],[62],[54],[38,51],[30,51|Xh],[15,51],[7,51],[1,R|O,P|Q],[65,Wh],[57],[50,li],[33,51],[48,P|Q,R|O],[10,51],[51,li],[74,R|O,P|Q],[65,Wh],[55],[54,Xh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Xh],[67,R|O,P|Q],[65,
Wh],[61],[50,mi],[37,51],[78,ni|Th|O,mi|O],[14,51],[51,mi],[6,R|O,P|Q],[65,Wh],[60],[49,mi],[36,51],[75,mi|O,li|O],[13,51],[7,51|Xh],[77,R|O,P|Q],[65,Wh],[59],[50,oi],[35,51],[24],[12,51],[51,oi],[47,R|O,P|Q],[65,Wh],[56],[69,ni|O,mi|O],[32,51],[25],[9,51],[7,51|Xh],[19,R|O,P|Q],[65,Wh]],xh=1E3;Xa(function(){for(var a=qb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=rb(c),d=new rg(d);pb(d,c)}});
function pi(a,b,c){u.call(this,"Computer",a,67108864);this.D.ja=!1;qi(this,b);this.M=Nc(this,"autoPower",a);this.j=0;this.U=a.busWidth||a.buswidth;this.b=ri;this.H=null;this.F=this.S=!1;this.W=Nc(this,"url")||"";(Math.random()+.1).toString(36);this.g=si(this);if(this.w=ub("CPU",this.id)){this.K=ub("Debugger",this.id);this.A=[];for(b=null;b=Ob(this,"Video",b);)this.A.push(b);this.I=new Sb({id:this.bb+".bus",busWidth:this.U},this.w,this.K);var d,e=sb(this.id);if(this.B=(this.C=ub("Panel",this.id))&&
this.C.P.print)for(b=0;b<e.length;b++)d=e[b],d.aa=this.C.aa,d.print=this.C.print,d.i=this.C.i;this.i("PC8080 v1.36.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.Fa&&d.Fa(this,this.I,this.w,this.K);b=null;d=Nc(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.F=!0,this.b=ri),this.b&&(this.L=new xd(this,
"1.36.0"),ti(this.L)?b=null:delete this.L);!b&&this.b&&(b=ui(this))&&(this.F=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.G=null,g.F=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+xa(b):"")+")")):(g.H=b,g.S=!0);Eb(g)})}else Eb(this);this.P.power||(this.M=!0);!c&&this.M&&vi(this,this.lb)}else r("Unable to find CPU component")}aa(pi,u);
function qi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.T=b}function Nc(a,b,c){var d=b.toLowerCase(),d=Sa(b)||Sa(d);void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function vi(a,b,c){for(var d=sb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Db(f)){Db(f,function(){vi(a,b,c)});return}}b.call(a,c)}
function wi(a,b){var c=new xd(a,"1.36.0",xi);if(ti(c)&&yi(c)){var d=c.get(zi),e=b?b.get(zi):"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=pi.prototype;
l.lb=function(a){void 0===a&&(a=this.b||(this.H?Ai:ri));if(!this.j){this.j++;var b=!1,c=!1;this.O=!1;var d=this.L||new xd(this,"1.36.0");if(a==Bi)b=!0;else if(a>ri){if(ti(d,this.H)){this.u=new xd(this,"1.36.0",Ci);ti(this.u)&&(Di(this,d),a=Ei,Fi(this.u));this.u.set(zi,Fa());Gi(this.u);var e=this.b&&!this.F;if(a==Ai||mb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=yi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ti(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Qa(Hi,""),this.g=null)):this.i(f+": "+g),Fi(d),ti(d)?(c=yi(d),e=!0):c=!1))}e&&wi(this,c?d:null)}else a==Ei&&d.clear()}else wi(this);delete this.H;delete this.L}e=sb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.w&&(c=Ii(this,g,d,b,c));b=[d,a,c];a!=Bi?vi(this,this.Cc,b):this.Cc(b)}};
function Ii(a,b,c,d,e){if(!b.D.ja){b.D.ja=!0;if(b.va){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.va(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.S?(c.clear(),a.b=ri,window&&window.location.reload()):a.O=!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.V=!0;this.D.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.w&&(Ii(this,this.w,b,c,a),this.w.jb());this.O&&(Di(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function Di(a,b){if(mb("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.36.0"};d.url=a.W;d.user=c;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
function ii(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new xd(a,"1.36.0"),g=new xd(a,"1.36.0",xi),h=Fa();g.set(zi,h);f.set(zi,h);f.set(Ji,"1.36.0");f.set(Ki,window?window.location.href:null);f.set(Li,La());a.w&&a.w.ua&&(c&&a.w.ea(),d=a.w.ua(b,c),"object"===typeof d&&f.set(a.w.id,d),c&&(a.w.D.ja=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k<h.length;k++){var p=h[k];p.D.ja&&(p.ua&&(d=p.ua(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.D.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&$i(a,
a.g,f.toString()),Gi(g)&&Gi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==aj),d&&f.clear(h)):e=f.toString());c&&(a.D.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.I&&this.I.reset&&(Ib(this,"Resetting "+this.I.type),this.I.reset());for(var a=sb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Ib(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=sb(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=sb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.D.ja?ii(d,!1,!0):vi(d,d.lb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.D.ja&&!d.j)if(d.b&&!d.G){var a=mb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ii(d,a,!0);!a&&d.N?window&&window.location.reload():d.lb(ri)}else d.reset(),d.w&&d.w.jb()},!0;case "save":if(qa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=si(d,!0);if(a){var b=!!(d.b&&!d.G||d.N),c=ii(d,b);b?$i(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function si(a,b){var c=a.g;c||((c=Pa(Hi),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=bj(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function bj(a,b){a.g=null;b=Ja(ra()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(Hi,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function ui(a){var b=null;a.g&&(b=ra()+"/api/v1/user?req=load&user="+a.g+"&state="+cj(a,"1.36.0"));return b}
function $i(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cj(a,"1.36.0");d.data=c;b=Ja(ra()+"/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),Qa(Hi,""),a.g=null)}}
function Ob(a,b,c){a=sb(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.Ya=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 bd(a,b){a.w&&(a=a.w,a.gb&&(b||!a.D.ka||a.D.Bc)&&(I(a,"A",a.g),I(a,"B",a.u),I(a,"C",a.A),I(a,"BC",yd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",Ad(a),4),I(a,"H",a.F),I(a,"L",a.G),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=wd(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.D.ka&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var Ci="failsafe",xi="validate",zi="timestamp",Ji="version",Ki="url",Li="browser",Hi="user",Bi=-1,ri=0,Ai=1,Ei=2,aj=3;Xa(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=rb(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=rb(f),g=new pi(g,d,!0);pb(g,f);g.M&&vi(g,g.lb)}});Ya.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=rb(a[b]);if(c=ub("Computer",c.id))c.D.Qb=!1,c.V&&!c.D.ja&&c.lb(Bi)}});
Ya.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=rb(a[b]);if(c=ub("Computer",c.id))c.D.Qb=!0,c.D.ja&&ii(c,!(!c.b||c.G),!0)}});function xd(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.w=this.I=!1;this.key=cj(a,b,c);Fi(this,a.Bd)}l=xd.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 ti(a,b){return b?(a.g=b,a.w=!0,a.I=!1,!0):a.w?!0:Ma()&&(b=Pa(a.key))?(a.g=b,a.w=!0):!1}function yi(a){var b=!0;if(!a.I)try{a.b=JSON.parse(a.g),a.I=!0}catch(c){r(c.message||c),b=!1}return b}function Gi(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};function Fi(a,b){a.g="";a.b={};a.w=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){Fi(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 cj(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 dj=0;
function ej(a,b,c,d,e,f){e("Loading "+a+"...");Ja(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):fj(h,a,b,c,d,e,f)})}
function fj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(jb(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),d=d.replace(/\$/g,"$$$$"),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(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?gj(a,f,h):h(a,null):g("no data"+(b?" for file: "+
b:""),null)}
function ej(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(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,t=/( [a-z]+=)(['"])(.*?)\2/gi;p=t.exec(f);)k=0>k.toLowerCase().indexOf(p[1].toLowerCase())?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);ej(a,b,c)}})}else c(a,null)}
function fj(a,b,c,d){function e(a){if(void 0===h){var b=g&&nb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ua(a))}function f(a){e("Error: "+a);k&&(--bj||$a(!0));k=!1}var g,h,k=!0;bj++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=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));t.appendChild(v)}c||
(c="/versions/pc8080/1.36.0/components.xsl");p=function(d,h){h?cj(c,null,null,!1,e,function(d,k){k?(hb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--bj||$a(!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),--bj||$a(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?cj(b,a,d,!0,e,p):dj(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){$a(!1);return fj(a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete ub[c],d=!0;else if("string"==typeof f&&!ub[c]){d=!0;e=ub;for(var g=c,h=f.length,k=[],p=[],t="",v=null,z=0;z<h;z++){var x=f[z];if('"'==x||"'"==x)v&&x!=v?t+=x:(v?v=null:v=x,t&&(p.push(t),t=""));else{if(!v){if("\r"==x||"\n"==x)x=";";if(" "==x||"\t"==x||";"==x){t&&(p.push(t),t="");";"==x&&p.length&&(k.push(p),p=[]);continue}}t+=x}}t&&p.push(t);p.length&&k.push(p);e[g]=k;tb(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=sb(d,c+".machine"))&&(h=g.exports)&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=$a;window.sendEvent=eb;})();//# sourceMappingURL=/versions/pc8080/1.36.0/pc8080-dbg.map
function gj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(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,t=/( [a-z]+=)(['"])(.*?)\2/gi;p=t.exec(f);)k=0>k.toLowerCase().indexOf(p[1].toLowerCase())?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);gj(a,b,c)}})}else c(a,null)}
function hj(a,b,c,d){function e(a){if(void 0===h){var b=g&&qb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ua(a))}function f(a){e("Error: "+a);k&&(--dj||eb(!0));k=!1}var g,h,k=!0;dj++;kb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=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));t.appendChild(v)}c||
(c="/versions/pc8080/1.36.0/components.xsl");p=function(d,h){h?ej(c,null,null,!1,e,function(d,k){k?(jb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--dj||eb(!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),--dj||eb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ej(b,a,d,!0,e,p):fj(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){eb(!1);return hj(a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete xb[c],d=!0;else if("string"==typeof f&&!xb[c]){d=!0;e=xb;for(var g=c,h=f.length,k=[],p=[],t="",v=null,z=0;z<h;z++){var x=f[z];if('"'==x||"'"==x)v&&x!=v?t+=x:(v?v=null:v=x,t&&(p.push(t),t=""));else{if(!v){if("\r"==x||"\n"==x)x=";";if(" "==x||"\t"==x||";"==x){t&&(p.push(t),t="");";"==x&&p.length&&(k.push(p),p=[]);continue}}t+=x}}t&&p.push(t);p.length&&k.push(p);e[g]=k;vb(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=ub(d,c+".machine"))&&(h=g.exports)&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=eb;window.sendEvent=gb;})();//# sourceMappingURL=/versions/pc8080/1.36.0/pc8080-dbg.map

File diff suppressed because one or more lines are too long

View file

@ -1237,12 +1237,7 @@ class Usr {
*/
static getTimestamp()
{
var date = new Date();
var padNum = function(n)
{
return (n < 10 ? "0" : "") + n;
};
return date.getFullYear() + "-" + padNum(date.getMonth() + 1) + "-" + padNum(date.getDate()) + " " + padNum(date.getHours()) + ":" + padNum(date.getMinutes()) + ":" + padNum(date.getSeconds());
return Usr.formatDate("Y-m-d H:i:s");
}
/**
@ -2099,6 +2094,45 @@ class Web {
return Web.isUserAgent("Mobi");
}
/**
* findProperty(obj, sProp, sSuffix)
*
* If both sProp and sSuffix are set, then any browser-specific prefixes are inserted between sProp and sSuffix,
* and if a match is found, it is returned without sProp.
*
* For example, if findProperty(document, 'on', 'fullscreenchange') discovers that 'onwebkitfullscreenchange' exists,
* it will return 'webkitfullscreenchange', in preparation for an addEventListener() call.
*
* More commonly, sSuffix is not used, so whatever property is found is returned as-is.
*
* @param {Object|null|undefined} obj
* @param {string} sProp
* @param {string} [sSuffix]
* @return {string|null}
*/
static findProperty(obj, sProp, sSuffix)
{
if (obj) {
for (var i = 0; i < Web.asBrowserPrefixes.length; i++) {
var sName = Web.asBrowserPrefixes[i];
if (sSuffix) {
sName += sSuffix;
var sEvent = sProp + sName;
if (sEvent in obj) return sName;
} else {
if (!sName) {
sName = sProp[0].toLowerCase();
} else {
sName += sProp[0].toUpperCase();
}
sName += sProp.substr(1);
if (sName in obj) return sName;
}
}
}
return null;
}
/**
* getURLParm(sParm)
*
@ -2408,6 +2442,8 @@ Web.aPageEventHandlers = {
'exit': [] // list of window 'onunload' handlers (although we prefer to use 'onbeforeunload' if possible)
};
Web.asBrowserPrefixes = ['', 'moz', 'ms', 'webkit'];
Web.fPageLoaded = false; // set once the page's first 'onload' event has occurred
Web.fPageShowed = false; // set once the page's first 'onpageshow' event has occurred
Web.fPageEventsEnabled = true; // default is true, set to false (or true) by enablePageEvents()
@ -7152,7 +7188,10 @@ class CPU8080 extends Component {
* timeout we're about to set. The simplest way to resolve that is to immediately call endBurst()
* and bias the above cycle timeout by the number of cycles that the burst executed.
*/
this.aTimers[iTimer][0] = nCycles + this.endBurst();
if (this.flags.running) {
nCycles += this.endBurst();
}
this.aTimers[iTimer][0] = nCycles;
}
}
return nCycles;
@ -7167,7 +7206,7 @@ class CPU8080 extends Component {
*/
getMSCycles(ms)
{
return (this.nCyclesPerSecond * this.nCyclesMultiplier) / 1000 * ms;
return ((this.nCyclesPerSecond * this.nCyclesMultiplier) / 1000 * ms)|0;
}
/**
@ -7183,6 +7222,7 @@ class CPU8080 extends Component {
{
for (var i = this.aTimers.length - 1; i >= 0; i--) {
var timer = this.aTimers[i];
if (timer[0] < 0) continue;
if (nCycles > timer[0]) {
nCycles = timer[0];
@ -7205,6 +7245,7 @@ class CPU8080 extends Component {
{
for (var i = this.aTimers.length - 1; i >= 0; i--) {
var timer = this.aTimers[i];
if (timer[0] < 0) continue;
timer[0] -= nCycles;
if (timer[0] <= 0) {

View file

@ -39,186 +39,187 @@ a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=
function p(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d||-1;0<b--;){f||(e=","+e,f=d);if(null==a)e="?"+e;else{var g=a%16,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e}
function la(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 ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){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){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var qa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},sa={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 ta(){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 ua(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 ta(){var a,b="";a||(a=new Date);for(var c=a.getHours(),d=a.getDate(),e=a.getMonth()+1,f=0;11>f;f++){var g;switch(g="Y-m-d H:i:s".charAt(f)){case "a":b+=12>c?"am":"pm";break;case "d":b+=("0"+d).slice(-2);break;case "D":b+=ua[a.getDay()].substr(0,3);break;case "F":b+=va[e-1];break;case "g":b+=c?12<c?c-12:c:12;break;case "h":b+=c;break;case "H":b+=("0"+c).slice(-2);break;case "i":b+=("0"+a.getMinutes()).slice(-2);break;case "j":b+=d;break;case "l":b+=ua[a.getDay()];break;case "m":b+=("0"+e).slice(-2);
break;case "M":b+=va[e-1].substr(0,3);break;case "n":b+=e;break;case "s":b+=("0"+a.getSeconds()).slice(-2);break;case "y":b+=(""+a.getFullYear()).slice(-2);break;case "Y":b+=a.getFullYear();break;default:b+=g}}return b}var ua="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),va="January February March April May June July August September October November December".split(" ");
function wa(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 va(a,b){var c,d={T:null,ra:null,za:null,sa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.za=g.load;d.sa=g.exec;if(e=g.bytes)d.T=e;else if(e=g.words)for(d.T=Array(2*e.length),f=c=0;c<e.length;c++)d.T[f++]=e[c]&255,d.T[f++]=e[c]>>8&255;else if(e=g.longs)for(d.T=Array(4*e.length),f=c=0;c<e.length;c++)d.T[f++]=
function ya(a,b){var c,d={T:null,ra:null,za:null,sa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.za=g.load;d.sa=g.exec;if(e=g.bytes)d.T=e;else if(e=g.words)for(d.T=Array(2*e.length),f=c=0;c<e.length;c++)d.T[f++]=e[c]&255,d.T[f++]=e[c]>>8&255;else if(e=g.longs)for(d.T=Array(4*e.length),f=c=0;c<e.length;c++)d.T[f++]=
e[c]&255,d.T[f++]=e[c]>>8&255,d.T[f++]=e[c]>>16&255,d.T[f++]=e[c]>>24&255;else(e=g.data)?d.lf=e:d.T=g;d.T&&(d.T.length?1==d.T.length&&(t(d.T[0]),d=null):(t("Empty resource: "+a),d=null));d.ra=g.symbols}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.T=e)}return d}
function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function wa(){if(null==ya){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}ya=a}return ya}function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=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 Ca(a){if(!Da){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," "))}Da=c}return Da[a]||Da[a.toLowerCase()]}function Ea(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Fa(a){Ga.init.push(a)}
function Ha(a){if(Ia)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ja("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ka(a){!Ia&&a?(Ia=!0,La&&Ma("init"),Na&&Ma("show")):Ia=a}function Ma(a){Ga[a]&&Ha(Ga[a])}var Da=null,Ga={init:[],show:[],exit:[]},La=!1,Na=!1,Ia=!0,ya=null;Ea("onload",function(){La=!0;Ha(Ga.init)});Ea("onpageshow",function(){Na=!0;Ha(Ga.show)});
Ea(Ba("iOS")?"onpagehide":Ba("Opera")?"onunload":"onbeforeunload",function(){Ha(Ga.exit)});function v(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Rb=b.comment;this.Vc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Tb=this.id:(this.Ja=this.id.substr(0,a),this.Tb=this.id.substr(a+1));this.i={ready:!1,Za:!1,lb:!1,mf:!1,V:!1,pb:!1,error:!1};this.bb=null;this.i.error=!1;this.K=this.m=this.u=this.D=null;w.push(this)}
function Oa(a,b,c){Pa[a]&&b&&(Pa[a][b]=c)}function Qa(){return Date.now()||+new Date}function Ja(a,b,c){b||t((c?c+": ":"")+a)}function t(a){window&&window.alert(a)}function Ra(a){var b=!1;window&&(b=window.confirm(a));return b}function Sa(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function Ta(a,b){b=z(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=A(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}function Ua(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Va(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}function Wa(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function za(){if(null==Aa){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}Aa=a}return Aa}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Da(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 Ea(a){if(!Fa){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," "))}Fa=c}return Fa[a]||Fa[a.toLowerCase()]}function Ga(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ha(a){Ia.init.push(a)}
function Ja(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){La("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ma(a){!Ka&&a?(Ka=!0,Na&&Oa("init"),Pa&&Oa("show")):Ka=a}function Oa(a){Ia[a]&&Ja(Ia[a])}var Fa=null,Ia={init:[],show:[],exit:[]},Na=!1,Pa=!1,Ka=!0,Aa=null;Ga("onload",function(){Na=!0;Ja(Ia.init)});Ga("onpageshow",function(){Pa=!0;Ja(Ia.show)});
Ga(Da("iOS")?"onpagehide":Da("Opera")?"onunload":"onbeforeunload",function(){Ja(Ia.exit)});function v(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Rb=b.comment;this.Vc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Tb=this.id:(this.Ja=this.id.substr(0,a),this.Tb=this.id.substr(a+1));this.h={ready:!1,Za:!1,lb:!1,mf:!1,V:!1,pb:!1,error:!1};this.bb=null;this.h.error=!1;this.K=this.m=this.u=this.D=null;w.push(this)}
function Qa(a,b,c){Ra[a]&&b&&(Ra[a][b]=c)}function Sa(){return Date.now()||+new Date}function La(a,b,c){b||t((c?c+": ":"")+a)}function t(a){window&&window.alert(a)}function Ta(a){var b=!1;window&&(b=window.confirm(a));return b}function Ua(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function Va(a,b){b=z(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=A(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}function Wa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ya(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}function Za(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function z(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 Ya(a){for(var b=!0,c=Za[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=$a.indexOf(e)&&(f=function(){return function(){Ya(a)}}());var g=ab[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=Wa(d[1],a);if(h)if(g=bb[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 Za[a];return b}k=v.prototype;
function $a(a){for(var b=!0,c=ab[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=bb.indexOf(e)&&(f=function(){return function(){$a(a)}}());var g=cb[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=Za(d[1],a);if(h)if(g=db[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 ab[a];return b}k=v.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.w[b]=c,this.G=function(a){this.aa(a,this.type);return!0},c.value="",this.print=function(a){return function(b){Sa(a,b)}}(c),this.aa=function(a,b){return function(a,c){a||(a="");if(c!=cb.Jc||"..."!=a.slice(-3))c&&(a=c+": "+a),Sa(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};k.log=function(){};k.print=function(){};k.aa=function(){};k.status=function(a){this.aa(this.type+": "+a)};k.G=function(a,b,c){if(!b){var d=Wa("Computer",this.id);if(d&&d.i.pb)return console.log("ignoring notice during unload: "+a),!1}Ja(a,b,c||this.type);return!0};function db(a,b){b&&(a.i.ready?b():a.bb=b);return a.i.ready}
function B(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.bb;a.bb=null;b&&b()}}function eb(a,b){if(a.i.lb)return a.i.Za=!1,a.i.lb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.Za=b;return a.i.Za}k.ca=function(){return this.i.V=!0};k.ba=function(a,b){b&&(this.i.V=!1);return!0};var cb={ERROR:"error",Qe:"notice",Jc:"progress",SCRIPT:"script",kf:"warning"};
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.w[b]=c,this.G=function(a){this.aa(a,this.type);return!0},c.value="",this.print=function(a){return function(b){Ua(a,b)}}(c),this.aa=function(a,b){return function(a,c){a||(a="");if(c!=eb.Jc||"..."!=a.slice(-3))c&&(a=c+": "+a),Ua(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+
".")+c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};k.log=function(){};k.print=function(){};k.aa=function(){};k.status=function(a){this.aa(this.type+": "+a)};k.G=function(a,b,c){if(!b){var d=Za("Computer",this.id);if(d&&d.h.pb)return console.log("ignoring notice during unload: "+a),!1}La(a,b,c||this.type);return!0};function fb(a,b){b&&(a.h.ready?b():a.bb=b);return a.h.ready}
function B(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.bb;a.bb=null;b&&b()}}function gb(a,b){if(a.h.lb)return a.h.Za=!1,a.h.lb=!1;if(a.h.error)return a.aa(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}k.ca=function(){return this.h.V=!0};k.ba=function(a,b){b&&(this.h.V=!1);return!0};var eb={ERROR:"error",Qe:"notice",Jc:"progress",SCRIPT:"script",kf:"warning"};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var Pa=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],Za=window?window.PCjs.Commands:{},$a=["hold","sleep","wait"],ab={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},bb={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}};
var Ra=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],ab=window?window.PCjs.Commands:{},bb=["hold","sleep","wait"],cb={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},db={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});
var fb="undefined"!==typeof ArrayBuffer,gb=[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 hb(a){v.call(this,"Panel",a)}l(hb,v);hb.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:v.prototype.S.call(this,a,b,c,d)};hb.prototype.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;this.h=ib(a,"Keyboard")};hb.prototype.ca=function(a,b){b||jb();return!0};hb.prototype.ba=function(){return!0};
function jb(){for(var a=!1,b=z(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=Va(e.id);f||(a=!0,f=new hb(e));Ta(f,d);a&&B(f)}}Fa(jb);
function kb(a,b,c){v.call(this,"Bus",a);this.m=b;this.K=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;lb(a,this.K);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;B(this)}l(kb,v);kb.prototype.reset=function(){};kb.prototype.ca=function(a,b){b||this.reset();return!0};
function mb(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.Qa)return h.gb+=h.Qa-e,h.Qa=e,!0;if(e>=h.Qa+h.gb){q=h.size-(e-m);q>f&&(q=f);h.gb=e-h.Qa+q;e=m+a.c;f-=q;g++;continue}}return nb(ob,e,f)}e=new C(e,q,a.c,d);lb(e,a.K,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+pb[d]+" at "+p(b,4,!0)),!0):nb(rb,b,c)}function sb(a,b){return a.a[(b&a.g)>>>a.b].fb(b&a.f,b)}
function tb(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Fd(c,b):a.a[d++].Ta(c,b)|a.a[d&a.o].Ta(0,b+1)<<8}function ub(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function vb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Td(d,c&65535,b):(a.a[e++].Ua(d,c&255,b),a.a[e&a.o].Ua(0,c>>8&255,b+1))}
function wb(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],r=g+1;r<e.length&&e[r]===q;)r++;m[h++]=r-g;m[h++]=q;g=r}m.length<e.length&&(e=m)}c[f]=e}}return c}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 m=+e+d;m<=g;m++)void 0!==f.j[m]?t("Input port "+p(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
function yb(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 "+p(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function nb(a,b,c){t("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var ob=1,rb=2,zb;if(fb){var Ab=new ArrayBuffer(2);(new DataView(Ab)).setUint16(0,256,!0);zb=256===(new Uint16Array(Ab))[0]}else zb=!1;var Bb=zb;
function C(a,b,c,d){this.id=Cb+=2;this.a=null;this.Qa=a;this.gb=b;this.size=c||0;this.type=d||Db;this.w=d==Eb;lb(this);this.ja=this.Zb=!1;if(c)if(fb)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),Fb(this,Bb?Gb:Hb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Fb(this,Ib)}else Fb(this)}k=C.prototype;
k.save=function(){var a,b;if(fb)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(fb)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 Fb(a,b){b||(b=Jb);Kb(a,b,void 0);Lb(a,b,void 0)}function Kb(a,b,c){c&&a.c||(a.Ta=b[0]||a.cc,a.Fd=b[2]||a.dc);if(c||void 0===c)a.fb=b[0]||a.cc,a.ec=b[2]||a.dc}
function Lb(a,b,c){c&&a.f||(a.Ua=!a.w&&b[1]||a.hc,a.Td=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.h=b[3]||a.ic}function lb(a,b,c){a.K=b;a.c=a.f=0;c&&((a.c=c.c)&&Kb(a,Mb,!1),(a.f=c.f)&&Lb(a,Mb,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ta(a++,b++)|this.Ta(a,b)<<8};k.ic=function(a,b,c){this.Ua(a++,b&255,c++);this.Ua(a,b>>8,c)};k.Ed=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
k.Jd=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.Sd=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.Xd=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.Cd=function(a,b){return this.fb(a,b)};k.Hd=function(a,b){return this.ec(a,b)};k.Qd=function(a,b,c){this.w||this.gc(a,b,c)};
k.Vd=function(a,b,c){this.w||this.h(a,b,c)};k.Bd=function(a){return this.b[a]};k.Dd=function(a){return this.b[a]};k.Gd=function(a){return this.u.getUint16(a,!0)};k.Id=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Pd=function(a,b){this.b[a]=b;this.ja=!0};k.Rd=function(a,b){this.b[a]=b;this.ja=!0};k.Ud=function(a,b){this.u.setUint16(a,b,!0);this.ja=!0};k.Wd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ja=!0};
var Db=0,Eb=2,pb=["NONE","RAM","ROM","VID","H/W"],Cb=0,Jb=[],Ib=[C.prototype.Ed,C.prototype.Sd,C.prototype.Jd,C.prototype.Xd],Mb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];if(fb)var Hb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud],Gb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd];
function Nb(a,b){v.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Da=Math.round(this.na/1E4)/100;this.X=this.Da*this.O;this.i.ka=!1;this.i.fc=!1;this.i.Ra=a.autoStart;this.i.Xb=!1;this.i.$a=!1;this.va=this.ea=0;this.wa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.kb=this.hb.bind(this);B(this)}l(Nb,v);k=Nb.prototype;
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.K=d;for(b=0;b<Ob.length;b++)(c=this.w[Ob[b]])&&this.D.S(null,Ob[b],c);this.N=ib(a,"ChipSet");a=Pb(a,"autoStart");null!=a&&(this.i.Ra="true"==a?!0:"false"==a?!1:!!a);B(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){Qb(this);if(!this.restore(a))return!1;Rb(this)}else this.reset();this.aa("No debugger detected")}Sb(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Ra=function(){return this.i.Ra||void 0===this.w.run?(this.hb(),!0):!1};k.$b=function(){return 0};function Rb(a){void 0===a.wa&&(a.wa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.$a=0<=a.wa&&0<a.ha;a.i.$a&&(a.va=0,a.ea=a.wa-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.V)a=!0;else{var b=null,c,h=Ua(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.V);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.bb?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Tb(d):d.hb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Ub(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Vb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Da);a.Oa=Math.round(1E3/Wb);a.xa=Math.floor(a.na/Wb*c);b||(a.ma=a.xa);a.Ea=0}function Xb(a){return a.I+a.P+a.da-a.a}function Qb(a){a.R=0;a.Pa=0;a.I=a.P=a.da=a.a=0;Rb(a);Ub(a,1)}
function Ub(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Da*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&&Yb(a.D)}a.I+=a.P;a.P=0;a.J=Qa();a.W=0;Vb(a)}function Zb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function $b(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+ac(a))}function ac(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.hb=function(a){if(eb(this,!0)){if(!this.i.ka){Ub(this);this.D&&this.D.start(this.J,Xb(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&&(bc(this.D,!0),a&&Yb(this.D,!0))}this.Ea>=this.na&&Vb(this,!0);this.oa=0;this.ua=Qa();this.W&&(a=this.ua-this.W,a>this.Oa&&(this.J+=a,this.J>this.ua&&(this.J=this.ua)));try{do{for(var c,d=this.i.$a?1:this.xa,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.ub(c);c=ac(this,!0);
this.oa+=c;this.P+=c;a=c;this.i.$a&&(b=!1,this.va=this.va+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Xb(this)&&(this.ha=this.la=-1,Rb(this),Tb(this),b=!0),b&&this.aa(Xb(this)+" cycles: checksum="+p(this.va)));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.xa;++this.Pa>=cc&&(this.D&&bc(this.D),this.Pa=0);break}}while(this.i.ka)}catch(m){Tb(this);Sb(this);this.D&&this.D.stop(Qa(),
Xb(this));eb(this,!1);c=m.stack||m.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.kb;this.W=Qa();e=this.Oa;this.oa&&(e=Math.round(e*this.oa/this.xa));e-=this.W-this.ua;if(f=this.W-this.J)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Ub(this));if(0>e||this.R<this.X)-1E3>e&&(this.J-=e),e=0;this.Ea+=this.oa;this.W+=e;c(d,e)}else Sb(this),this.D&&this.D.stop(Qa(),Xb(this))};k.ub=function(){return 0};
function Tb(a){a.i.Za&&(a.i.lb=!0);ac(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 Sb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)dc(b.g[c],void 0);bc(a.D,void 0)}}var Wb=30,cc=15,Ob=["power","reset"];function fc(a){Nb.call(this,a,1E6);this.La=gc;Qb(this);this.i.complete=this.i.Wc=!1;this.Na=0;this.qa=[];this.Ma=0;hc(this)}l(fc,Nb);function ic(a,b){a.qa.push(b)}k=fc.prototype;
k.reset=function(){this.i.ka&&Tb(this);hc(this);Qb(this);this.i.error=!1;Nb.prototype.reset.call(this)};function hc(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.Ma);jc(a,0);a.C=0}function kc(a,b){a.Ma=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+lc(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,lc(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,wb(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]);jc(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Ub(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.Na++;a=!0;break;default:a=Nb.prototype.S.call(this,a,b,c)}return a};function mc(a){return a.g<<8|a.c}function nc(a,b){a.g=b>>8&255;a.c=b&255}function oc(a){return a.h<<8|a.f}function pc(a,b){a.h=b>>8&255;a.f=b&255}function H(a){return a.j<<8|a.l}
function I(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function J(a){return a.o&256?1:0}function qc(a,b){a.o=a.o&255|b}function rc(a){return gb[a.v&255]?4:0}function lc(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|rc(a)|J(a)}function jc(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 sc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function tc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function uc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function vc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function wc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function xc(a,b){return a.v=a.o=a.B=a.b|b}function K(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function yc(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 zc(a,b){return a.v=a.o=a.B=a.b^b}
function L(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ta(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Ua(b&a.f,c&255,b)}function N(a){var b=L(a,a.s);D(a,a.s+1);return b}function O(a){var b=tb(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=tb(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;vb(a.u,a.A,b)}function Ac(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.La[199|b<<3].call(a)}return a.C&256?(ac(a),!1):!0}
function Bc(a,b){a.C|=1<<b;a.F&512&&ac(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"),Tb(a)),c=!a.i.ka||a.i.Xb?p(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.ub=function(a){this.i.complete=!0;this.i.Wc=!1;this.i.fc=!1;this.da=this.a=a;if(Ac(this)){do this.La[N(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1};
Fa(function(){for(var a=z(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new fc(d);Ta(d,c)}});function Cc(){this.a-=4}function Dc(){D(this,O(this));this.a-=10}function Ec(){D(this,P(this));this.a-=10}function Fc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
var gc=[Cc,function(){nc(this,O(this));this.a-=10},function(){M(this,mc(this),this.b);this.a-=7},function(){nc(this,mc(this)+1);this.a-=5},function(){this.g=wc(this,this.g);this.a-=5},function(){this.g=vc(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;qc(this,a&256);this.a-=4},Cc,function(){var a;I(this,a=H(this)+mc(this));qc(this,a>>8&256);this.a-=10},function(){this.b=L(this,mc(this));this.a-=7},function(){nc(this,mc(this)-1);this.a-=5},
function(){this.c=wc(this,this.c);this.a-=5},function(){this.c=vc(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;qc(this,a);this.a-=4},Cc,function(){pc(this,O(this));this.a-=10},function(){M(this,oc(this),this.b);this.a-=7},function(){pc(this,oc(this)+1);this.a-=5},function(){this.h=wc(this,this.h);this.a-=5},function(){this.h=vc(this,this.h);this.a-=5},function(){this.h=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this);
qc(this,a&256);this.a-=4},Cc,function(){var a;I(this,a=H(this)+oc(this));qc(this,a>>8&256);this.a-=10},function(){this.b=L(this,oc(this));this.a-=7},function(){pc(this,oc(this)-1);this.a-=5},function(){this.f=wc(this,this.f);this.a-=5},function(){this.f=vc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;qc(this,a&256);this.a-=4},Cc,function(){I(this,O(this));this.a-=10},function(){var a=O(this);vb(this.u,a,H(this));this.a-=16},
function(){I(this,H(this)+1);this.a-=5},function(){this.j=wc(this,this.j);this.a-=5},function(){this.j=vc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=sc(this,a);qc(this,b?256:0);this.a-=4},Cc,function(){var a;I(this,a=H(this)+H(this));qc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=tb(this.u,a);I(this,a);this.a-=16},function(){I(this,H(this)-1);this.a-=5},function(){this.l=
wc(this,this.l);this.a-=5},function(){this.l=vc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Cc,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=H(this);M(this,a,wc(this,L(this,a)));this.a-=10},function(){var a=H(this);M(this,a,vc(this,L(this,a)));this.a-=10},function(){M(this,H(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},Cc,
function(){var a;I(this,a=H(this)+this.A);qc(this,a>>8&256);this.a-=10},function(){this.b=L(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=wc(this,this.b);this.a-=5},function(){this.b=vc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){qc(this,J(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=L(this,H(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=L(this,H(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=L(this,H(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=L(this,H(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=L(this,H(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=L(this,H(this));this.a-=7},function(){this.l=this.b;
this.a-=5},function(){M(this,H(this),this.g);this.a-=7},function(){M(this,H(this),this.c);this.a-=7},function(){M(this,H(this),this.h);this.a-=7},function(){M(this,H(this),this.f);this.a-=7},function(){M(this,H(this),this.j);this.a-=7},function(){M(this,H(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.qa.length)for(var b=0;b<this.qa.length;b++)if(this.qa[b](a))return;this.a-=7;this.C|=256;ac(this);this.F&512||Tb(this)},function(){M(this,H(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=L(this,H(this));this.a-=7},function(){this.a-=5},function(){this.b=sc(this,this.g);this.a-=4},function(){this.b=sc(this,this.c);this.a-=4},function(){this.b=sc(this,this.h);this.a-=4},function(){this.b=sc(this,this.f);this.a-=4},function(){this.b=sc(this,this.j);this.a-=4},function(){this.b=
sc(this,this.l);this.a-=4},function(){this.b=sc(this,L(this,H(this)));this.a-=7},function(){this.b=sc(this,this.b);this.a-=4},function(){this.b=tc(this,this.g);this.a-=4},function(){this.b=tc(this,this.c);this.a-=4},function(){this.b=tc(this,this.h);this.a-=4},function(){this.b=tc(this,this.f);this.a-=4},function(){this.b=tc(this,this.j);this.a-=4},function(){this.b=tc(this,this.l);this.a-=4},function(){this.b=tc(this,L(this,H(this)));this.a-=7},function(){this.b=tc(this,this.b);this.a-=4},function(){this.b=
K(this,this.g);this.a-=4},function(){this.b=K(this,this.c);this.a-=4},function(){this.b=K(this,this.h);this.a-=4},function(){this.b=K(this,this.f);this.a-=4},function(){this.b=K(this,this.j);this.a-=4},function(){this.b=K(this,this.l);this.a-=4},function(){this.b=K(this,L(this,H(this)));this.a-=7},function(){this.b=K(this,this.b);this.a-=4},function(){this.b=yc(this,this.g);this.a-=4},function(){this.b=yc(this,this.c);this.a-=4},function(){this.b=yc(this,this.h);this.a-=4},function(){this.b=yc(this,
this.f);this.a-=4},function(){this.b=yc(this,this.j);this.a-=4},function(){this.b=yc(this,this.l);this.a-=4},function(){this.b=yc(this,L(this,H(this)));this.a-=7},function(){this.b=yc(this,this.b);this.a-=4},function(){this.b=uc(this,this.g);this.a-=4},function(){this.b=uc(this,this.c);this.a-=4},function(){this.b=uc(this,this.h);this.a-=4},function(){this.b=uc(this,this.f);this.a-=4},function(){this.b=uc(this,this.j);this.a-=4},function(){this.b=uc(this,this.l);this.a-=4},function(){this.b=uc(this,
L(this,H(this)));this.a-=7},function(){this.b=uc(this,this.b);this.a-=4},function(){this.b=zc(this,this.g);this.a-=4},function(){this.b=zc(this,this.c);this.a-=4},function(){this.b=zc(this,this.h);this.a-=4},function(){this.b=zc(this,this.f);this.a-=4},function(){this.b=zc(this,this.j);this.a-=4},function(){this.b=zc(this,this.l);this.a-=4},function(){this.b=zc(this,L(this,H(this)));this.a-=7},function(){this.b=zc(this,this.b);this.a-=4},function(){this.b=xc(this,this.g);this.a-=4},function(){this.b=
xc(this,this.c);this.a-=4},function(){this.b=xc(this,this.h);this.a-=4},function(){this.b=xc(this,this.f);this.a-=4},function(){this.b=xc(this,this.j);this.a-=4},function(){this.b=xc(this,this.l);this.a-=4},function(){this.b=xc(this,L(this,H(this)));this.a-=7},function(){this.b=xc(this,this.b);this.a-=4},function(){K(this,this.g);this.a-=4},function(){K(this,this.c);this.a-=4},function(){K(this,this.h);this.a-=4},function(){K(this,this.f);this.a-=4},function(){K(this,this.j);this.a-=4},function(){K(this,
this.l);this.a-=4},function(){K(this,L(this,H(this)));this.a-=7},function(){K(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){nc(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},Dc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,mc(this));this.a-=11},function(){this.b=sc(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},Ec,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},Dc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Fc,function(){this.b=tc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){J(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){pc(this,P(this));this.a-=10},function(){var a=O(this);J(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);J(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,oc(this));this.a-=11},function(){this.b=K(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){J(this)&&(D(this,P(this)),this.a-=6);this.a-=5},Ec,function(){var a=O(this);J(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);J(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Fc,function(){this.b=yc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){rc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){I(this,P(this));this.a-=10},function(){var a=
O(this);rc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,H(this));I(this,a);this.a-=18},function(){var a=O(this);rc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,H(this));this.a-=11},function(){this.b=uc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){rc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,H(this));this.a-=5},function(){var a=O(this);rc(this)&&D(this,a);this.a-=10},function(){var a=H(this);
I(this,oc(this));pc(this,a);this.a-=5},function(){var a=O(this);rc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Fc,function(){this.b=zc(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);jc(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,lc(this)&255|this.b<<8);this.a-=11},function(){this.b=xc(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=H(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;Ac(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Fc,function(){K(this,N(this));
this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){v.call(this,"ChipSet",a);var b=a.model;b&&!Gc[b]&&Ja("Unrecognized ChipSet model: "+b);this.b=Gc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}l(S,v);k=S.prototype;k.S=function(){return!1};
k.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;this.D=a;this.h=ib(a,"Keyboard");this.g=ib(a,"SerialPort");this.video=ib(a,"Video");xb(b,this,this.b.cb);yb(b,this,this.b.eb)};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")};
var hb="undefined"!==typeof ArrayBuffer,ib=[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 jb(a){v.call(this,"Panel",a)}l(jb,v);jb.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.i&&this.i.S(a,b,c,d)?!0:v.prototype.S.call(this,a,b,c,d)};jb.prototype.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;this.i=kb(a,"Keyboard")};jb.prototype.ca=function(a,b){b||lb();return!0};jb.prototype.ba=function(){return!0};
function lb(){for(var a=!1,b=z(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=Ya(e.id);f||(a=!0,f=new jb(e));Va(f,d);a&&B(f)}}Ha(lb);
function mb(a,b,c){v.call(this,"Bus",a);this.m=b;this.K=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.i=this.v/this.c|0;this.o=this.i-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new C;nb(a,this.K);this.a=Array(this.i);for(b=0;b<this.i;b++)this.a[b]=a;B(this)}l(mb,v);mb.prototype.reset=function(){};mb.prototype.ca=function(a,b){b||this.reset();return!0};
function ob(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.Qa)return h.gb+=h.Qa-e,h.Qa=e,!0;if(e>=h.Qa+h.gb){q=h.size-(e-m);q>f&&(q=f);h.gb=e-h.Qa+q;e=m+a.c;f-=q;g++;continue}}return pb(rb,e,f)}e=new C(e,q,a.c,d);nb(e,a.K,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+sb[d]+" at "+p(b,4,!0)),!0):pb(tb,b,c)}function ub(a,b){return a.a[(b&a.g)>>>a.b].fb(b&a.f,b)}
function vb(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Fd(c,b):a.a[d++].Ta(c,b)|a.a[d&a.o].Ta(0,b+1)<<8}function wb(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function xb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Td(d,c&65535,b):(a.a[e++].Ua(d,c&255,b),a.a[e&a.o].Ua(0,c>>8&255,b+1))}
function yb(a){for(var b=0,c=[],d=0;d<a.i;d++){var e=a.a[d];if(e.ka||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],r=g+1;r<e.length&&e[r]===q;)r++;m[h++]=r-g;m[h++]=q;g=r}m.length<e.length&&(e=m)}c[f]=e}}return c}function zb(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 "+p(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
function Ab(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 "+p(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function pb(a,b,c){t("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var rb=1,tb=2,Bb;if(hb){var Cb=new ArrayBuffer(2);(new DataView(Cb)).setUint16(0,256,!0);Bb=256===(new Uint16Array(Cb))[0]}else Bb=!1;var Db=Bb;
function C(a,b,c,d){this.id=Eb+=2;this.a=null;this.Qa=a;this.gb=b;this.size=c||0;this.type=d||Fb;this.w=d==Gb;nb(this);this.ka=this.Zb=!1;if(c)if(hb)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),Hb(this,Db?Ib:Jb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Hb(this,Kb)}else Hb(this)}k=C.prototype;
k.save=function(){var a,b;if(hb)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(hb)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ka=!0}return!1};function Hb(a,b){b||(b=Lb);Mb(a,b,void 0);Nb(a,b,void 0)}function Mb(a,b,c){c&&a.c||(a.Ta=b[0]||a.cc,a.Fd=b[2]||a.dc);if(c||void 0===c)a.fb=b[0]||a.cc,a.ec=b[2]||a.dc}
function Nb(a,b,c){c&&a.f||(a.Ua=!a.w&&b[1]||a.hc,a.Td=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.i=b[3]||a.ic}function nb(a,b,c){a.K=b;a.c=a.f=0;c&&((a.c=c.c)&&Mb(a,Ob,!1),(a.f=c.f)&&Nb(a,Ob,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ta(a++,b++)|this.Ta(a,b)<<8};k.ic=function(a,b,c){this.Ua(a++,b&255,c++);this.Ua(a,b>>8,c)};k.Ed=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
k.Jd=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.Sd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ka=!0};k.Xd=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.ka=!0};k.Cd=function(a,b){return this.fb(a,b)};k.Hd=function(a,b){return this.ec(a,b)};k.Qd=function(a,b,c){this.w||this.gc(a,b,c)};
k.Vd=function(a,b,c){this.w||this.i(a,b,c)};k.Bd=function(a){return this.b[a]};k.Dd=function(a){return this.b[a]};k.Gd=function(a){return this.u.getUint16(a,!0)};k.Id=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Pd=function(a,b){this.b[a]=b;this.ka=!0};k.Rd=function(a,b){this.b[a]=b;this.ka=!0};k.Ud=function(a,b){this.u.setUint16(a,b,!0);this.ka=!0};k.Wd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ka=!0};
var Fb=0,Gb=2,sb=["NONE","RAM","ROM","VID","H/W"],Eb=0,Lb=[],Kb=[C.prototype.Ed,C.prototype.Sd,C.prototype.Jd,C.prototype.Xd],Ob=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];if(hb)var Jb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud],Ib=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd];
function Pb(a,b){v.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Da=Math.round(this.na/1E4)/100;this.X=this.Da*this.O;this.h.ga=!1;this.h.fc=!1;this.h.Ra=a.autoStart;this.h.Xb=!1;this.h.$a=!1;this.va=this.ea=0;this.wa=a.csStart;this.ia=a.csInterval;this.la=a.csStop;this.H=[];this.kb=this.hb.bind(this);B(this)}l(Pb,v);k=Pb.prototype;
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.K=d;for(b=0;b<Qb.length;b++)(c=this.w[Qb[b]])&&this.D.S(null,Qb[b],c);this.N=kb(a,"ChipSet");a=Rb(a,"autoStart");null!=a&&(this.h.Ra="true"==a?!0:"false"==a?!1:!!a);B(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){Sb(this);if(!this.restore(a))return!1;Tb(this)}else this.reset();this.aa("No debugger detected")}Ub(this);return!0};
k.ba=function(a){return a?this.save():!0};k.Ra=function(){return this.h.Ra||void 0===this.w.run?(this.hb(),!0):!1};k.$b=function(){return 0};function Tb(a){void 0===a.wa&&(a.wa=0);void 0===a.ia&&(a.ia=-1);void 0===a.la&&(a.la=-1);a.h.$a=0<=a.wa&&0<a.ia;a.h.$a&&(a.va=0,a.ea=a.wa-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.h.V)a=!0;else{var b=null,c,h=Wa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.V);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.bb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?Vb(d):d.hb())};a=!0;
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Wb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Xb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Da);a.Oa=Math.round(1E3/Yb);a.xa=Math.floor(a.na/Yb*c);b||(a.ma=a.xa);a.Ea=0}function Zb(a){return a.I+a.P+a.da-a.a}function Sb(a){a.R=0;a.Pa=0;a.I=a.P=a.da=a.a=0;Tb(a);Wb(a,1)}
function Wb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Da*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&&$b(a.D)}a.I+=a.P;a.P=0;a.J=Sa();a.W=0;Xb(a)}function ac(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function bc(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c=a.na*a.O/1E3*c|0,a.h.ga&&(c+=cc(a)),a.H[b][0]=c)}function cc(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
k.hb=function(a){if(gb(this,!0)){if(!this.h.ga){Wb(this);this.D&&this.D.start(this.J,Zb(this));this.h.ga=!0;this.h.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&(dc(this.D,!0),a&&$b(this.D,!0))}this.Ea>=this.na&&Xb(this,!0);this.oa=0;this.ua=Sa();this.W&&(a=this.ua-this.W,a>this.Oa&&(this.J+=a,this.J>this.ua&&(this.J=this.ua)));try{do{for(var c,d=this.h.$a?1:this.xa,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.ub(c);c=cc(this,!0);
this.oa+=c;this.P+=c;a=c;this.h.$a&&(b=!1,this.va=this.va+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ia,b=!0),0<=this.la&&this.la<=Zb(this)&&(this.ia=this.la=-1,Tb(this),Vb(this),b=!0),b&&this.aa(Zb(this)+" cycles: checksum="+p(this.va)));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.xa;++this.Pa>=fc&&(this.D&&dc(this.D),this.Pa=0);break}}while(this.h.ga)}catch(m){Vb(this);Ub(this);this.D&&this.D.stop(Sa(),
Zb(this));gb(this,!1);c=m.stack||m.message;this.h.error=!0;this.G(c);return}c=setTimeout;d=this.kb;this.W=Sa();e=this.Oa;this.oa&&(e=Math.round(e*this.oa/this.xa));e-=this.W-this.ua;if(f=this.W-this.J)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Wb(this));if(0>e||this.R<this.X)-1E3>e&&(this.J-=e),e=0;this.Ea+=this.oa;this.W+=e;c(d,e)}else Ub(this),this.D&&this.D.stop(Sa(),Zb(this))};k.ub=function(){return 0};
function Vb(a){a.h.Za&&(a.h.lb=!0);cc(a);a.I+=a.P;a.P=0;if(a.h.ga){a.h.ga=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.h.complete=void 0}function Ub(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)gc(b.g[c],void 0);dc(a.D,void 0)}}var Yb=30,fc=15,Qb=["power","reset"];function hc(a){Pb.call(this,a,1E6);this.La=ic;Sb(this);this.h.complete=this.h.Wc=!1;this.Na=0;this.qa=[];this.Ma=0;jc(this)}l(hc,Pb);function kc(a,b){a.qa.push(b)}k=hc.prototype;
k.reset=function(){this.h.ga&&Vb(this);jc(this);Sb(this);this.h.error=!1;Pb.prototype.reset.call(this)};function jc(a){a.b=0;a.g=0;a.c=0;a.i=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.Ma);lc(a,0);a.C=0}function mc(a,b){a.Ma=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.i+this.f+this.j+this.l|0;return a=a+this.A+this.s+nc(this)|0};
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.i,this.f,this.j,this.l,this.A,this.s,nc(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,yb(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.i=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);lc(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Wb(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.Na++;a=!0;break;default:a=Pb.prototype.S.call(this,a,b,c)}return a};function oc(a){return a.g<<8|a.c}function pc(a,b){a.g=b>>8&255;a.c=b&255}function qc(a){return a.i<<8|a.f}function rc(a,b){a.i=b>>8&255;a.f=b&255}function H(a){return a.j<<8|a.l}
function I(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function J(a){return a.o&256?1:0}function sc(a,b){a.o=a.o&255|b}function tc(a){return ib[a.v&255]?4:0}function nc(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|tc(a)|J(a)}function lc(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 uc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
function vc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function wc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function xc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function yc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function zc(a,b){return a.v=a.o=a.B=a.b|b}function K(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function Ac(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 Bc(a,b){return a.v=a.o=a.B=a.b^b}
function L(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ta(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Ua(b&a.f,c&255,b)}function N(a){var b=L(a,a.s);D(a,a.s+1);return b}function O(a){var b=vb(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=vb(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;xb(a.u,a.A,b)}function Cc(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.La[199|b<<3].call(a)}return a.C&256?(cc(a),!1):!0}
function Dc(a,b){a.C|=1<<b;a.F&512&&cc(a)}function R(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.h.error=!0,a.G("Value for "+b+" is invalid"),Vb(a)),c=!a.h.ga||a.h.Xb?p(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.ub=function(a){this.h.complete=!0;this.h.Wc=!1;this.h.fc=!1;this.da=this.a=a;if(Cc(this)){do this.La[N(this)].call(this);while(0<this.a)}return this.h.complete?this.da-this.a:void 0===this.h.complete?0:-1};
Ha(function(){for(var a=z(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new hc(d);Va(d,c)}});function Ec(){this.a-=4}function Fc(){D(this,O(this));this.a-=10}function Gc(){D(this,P(this));this.a-=10}function Hc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
var ic=[Ec,function(){pc(this,O(this));this.a-=10},function(){M(this,oc(this),this.b);this.a-=7},function(){pc(this,oc(this)+1);this.a-=5},function(){this.g=yc(this,this.g);this.a-=5},function(){this.g=xc(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;sc(this,a&256);this.a-=4},Ec,function(){var a;I(this,a=H(this)+oc(this));sc(this,a>>8&256);this.a-=10},function(){this.b=L(this,oc(this));this.a-=7},function(){pc(this,oc(this)-1);this.a-=5},
function(){this.c=yc(this,this.c);this.a-=5},function(){this.c=xc(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;sc(this,a);this.a-=4},Ec,function(){rc(this,O(this));this.a-=10},function(){M(this,qc(this),this.b);this.a-=7},function(){rc(this,qc(this)+1);this.a-=5},function(){this.i=yc(this,this.i);this.a-=5},function(){this.i=xc(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this);
sc(this,a&256);this.a-=4},Ec,function(){var a;I(this,a=H(this)+qc(this));sc(this,a>>8&256);this.a-=10},function(){this.b=L(this,qc(this));this.a-=7},function(){rc(this,qc(this)-1);this.a-=5},function(){this.f=yc(this,this.f);this.a-=5},function(){this.f=xc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;sc(this,a&256);this.a-=4},Ec,function(){I(this,O(this));this.a-=10},function(){var a=O(this);xb(this.u,a,H(this));this.a-=16},
function(){I(this,H(this)+1);this.a-=5},function(){this.j=yc(this,this.j);this.a-=5},function(){this.j=xc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=uc(this,a);sc(this,b?256:0);this.a-=4},Ec,function(){var a;I(this,a=H(this)+H(this));sc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=vb(this.u,a);I(this,a);this.a-=16},function(){I(this,H(this)-1);this.a-=5},function(){this.l=
yc(this,this.l);this.a-=5},function(){this.l=xc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ec,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=H(this);M(this,a,yc(this,L(this,a)));this.a-=10},function(){var a=H(this);M(this,a,xc(this,L(this,a)));this.a-=10},function(){M(this,H(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},Ec,
function(){var a;I(this,a=H(this)+this.A);sc(this,a>>8&256);this.a-=10},function(){this.b=L(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=yc(this,this.b);this.a-=5},function(){this.b=xc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){sc(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.i;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=L(this,H(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.i;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=L(this,H(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.i=this.c;this.a-=5},function(){this.a-=5},function(){this.i=this.f;
this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=L(this,H(this));this.a-=7},function(){this.i=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.i;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=L(this,H(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.i;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=L(this,H(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.i;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=L(this,H(this));this.a-=7},function(){this.l=this.b;
this.a-=5},function(){M(this,H(this),this.g);this.a-=7},function(){M(this,H(this),this.c);this.a-=7},function(){M(this,H(this),this.i);this.a-=7},function(){M(this,H(this),this.f);this.a-=7},function(){M(this,H(this),this.j);this.a-=7},function(){M(this,H(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.qa.length)for(var b=0;b<this.qa.length;b++)if(this.qa[b](a))return;this.a-=7;this.C|=256;cc(this);this.F&512||Vb(this)},function(){M(this,H(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.i;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=L(this,H(this));this.a-=7},function(){this.a-=5},function(){this.b=uc(this,this.g);this.a-=4},function(){this.b=uc(this,this.c);this.a-=4},function(){this.b=uc(this,this.i);this.a-=4},function(){this.b=uc(this,this.f);this.a-=4},function(){this.b=uc(this,this.j);this.a-=4},function(){this.b=
uc(this,this.l);this.a-=4},function(){this.b=uc(this,L(this,H(this)));this.a-=7},function(){this.b=uc(this,this.b);this.a-=4},function(){this.b=vc(this,this.g);this.a-=4},function(){this.b=vc(this,this.c);this.a-=4},function(){this.b=vc(this,this.i);this.a-=4},function(){this.b=vc(this,this.f);this.a-=4},function(){this.b=vc(this,this.j);this.a-=4},function(){this.b=vc(this,this.l);this.a-=4},function(){this.b=vc(this,L(this,H(this)));this.a-=7},function(){this.b=vc(this,this.b);this.a-=4},function(){this.b=
K(this,this.g);this.a-=4},function(){this.b=K(this,this.c);this.a-=4},function(){this.b=K(this,this.i);this.a-=4},function(){this.b=K(this,this.f);this.a-=4},function(){this.b=K(this,this.j);this.a-=4},function(){this.b=K(this,this.l);this.a-=4},function(){this.b=K(this,L(this,H(this)));this.a-=7},function(){this.b=K(this,this.b);this.a-=4},function(){this.b=Ac(this,this.g);this.a-=4},function(){this.b=Ac(this,this.c);this.a-=4},function(){this.b=Ac(this,this.i);this.a-=4},function(){this.b=Ac(this,
this.f);this.a-=4},function(){this.b=Ac(this,this.j);this.a-=4},function(){this.b=Ac(this,this.l);this.a-=4},function(){this.b=Ac(this,L(this,H(this)));this.a-=7},function(){this.b=Ac(this,this.b);this.a-=4},function(){this.b=wc(this,this.g);this.a-=4},function(){this.b=wc(this,this.c);this.a-=4},function(){this.b=wc(this,this.i);this.a-=4},function(){this.b=wc(this,this.f);this.a-=4},function(){this.b=wc(this,this.j);this.a-=4},function(){this.b=wc(this,this.l);this.a-=4},function(){this.b=wc(this,
L(this,H(this)));this.a-=7},function(){this.b=wc(this,this.b);this.a-=4},function(){this.b=Bc(this,this.g);this.a-=4},function(){this.b=Bc(this,this.c);this.a-=4},function(){this.b=Bc(this,this.i);this.a-=4},function(){this.b=Bc(this,this.f);this.a-=4},function(){this.b=Bc(this,this.j);this.a-=4},function(){this.b=Bc(this,this.l);this.a-=4},function(){this.b=Bc(this,L(this,H(this)));this.a-=7},function(){this.b=Bc(this,this.b);this.a-=4},function(){this.b=zc(this,this.g);this.a-=4},function(){this.b=
zc(this,this.c);this.a-=4},function(){this.b=zc(this,this.i);this.a-=4},function(){this.b=zc(this,this.f);this.a-=4},function(){this.b=zc(this,this.j);this.a-=4},function(){this.b=zc(this,this.l);this.a-=4},function(){this.b=zc(this,L(this,H(this)));this.a-=7},function(){this.b=zc(this,this.b);this.a-=4},function(){K(this,this.g);this.a-=4},function(){K(this,this.c);this.a-=4},function(){K(this,this.i);this.a-=4},function(){K(this,this.f);this.a-=4},function(){K(this,this.j);this.a-=4},function(){K(this,
this.l);this.a-=4},function(){K(this,L(this,H(this)));this.a-=7},function(){K(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){pc(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},Fc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,oc(this));this.a-=11},function(){this.b=uc(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},Gc,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},Fc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Hc,function(){this.b=vc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){J(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){rc(this,P(this));this.a-=10},function(){var a=O(this);J(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);J(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,qc(this));this.a-=11},function(){this.b=K(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){J(this)&&(D(this,P(this)),this.a-=6);this.a-=5},Gc,function(){var a=O(this);J(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);J(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Hc,function(){this.b=Ac(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){tc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){I(this,P(this));this.a-=10},function(){var a=
O(this);tc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,H(this));I(this,a);this.a-=18},function(){var a=O(this);tc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,H(this));this.a-=11},function(){this.b=wc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){tc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,H(this));this.a-=5},function(){var a=O(this);tc(this)&&D(this,a);this.a-=10},function(){var a=H(this);
I(this,qc(this));rc(this,a);this.a-=5},function(){var a=O(this);tc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Hc,function(){this.b=Bc(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);lc(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,nc(this)&255|this.b<<8);this.a-=11},function(){this.b=zc(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=H(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;Cc(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Hc,function(){K(this,N(this));
this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){v.call(this,"ChipSet",a);var b=a.model;b&&!Ic[b]&&La("Unrecognized ChipSet model: "+b);this.b=Ic[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}l(S,v);k=S.prototype;k.S=function(){return!1};
k.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;this.D=a;this.i=kb(a,"Keyboard");this.g=kb(a,"SerialPort");this.video=kb(a,"Video");zb(b,this,this.b.cb);Ab(b,this,this.b.eb)};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.W,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.J]),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.W=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.J=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.ed=function(){return this.W};k.fd=function(){return this.f};k.gd=function(){return this.X};
k.dd=function(){return this.B>>8-this.H&255};k.rd=function(a,b){this.H=b};k.td=function(a,b){this.P=b};k.sd=function(a,b){this.B=b<<8|this.B>>8};k.ud=function(a,b){this.R=b};k.vd=function(){};function Hc(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.hd=function(){var a=this.s,a=a&~V.ga.Gb;if((Xb(this.m)&64)<<1&&(a|=V.ga.Gb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ia.Ba.kc:this.A=this.A<<1|b;break;case V.ia.Ba.pc:b=Hc(this);this.j[b]=V.ia.Xa;break;case V.ia.Ba.lc:this.a=this.a<<1|b;break;case V.ia.Ba.Qc:b=Hc(this);c=this.a&V.ia.Xa;this.j[b]=c;break;case V.ia.Ba.Lc:b=Hc(this);c=this.j[b];null==c&&(c=V.ia.Xa);this.a=c;break;case V.ia.Ba.Mc:this.a<<=1,this.F=this.a&V.ia.Xa+1}}a&=~V.ga.Hb;this.F&&(a|=V.ga.Hb);a&=~V.ga.Bb;if(b=this.h){b=
this.h;if(c=b.h)c=b.m,c=Xb(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=V.ga.Bb);a&=~V.ga.Pb;this.g&&this.g.U&Ic&&(a|=V.ga.Pb);return this.s=a};k.wd=function(a,b){this.N=b};k.zd=function(a,b){this.v=b};k.yd=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)?dc(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.J=a}};
k.xd=function(a,b){b&V.ta.Kc?(b&=V.ta.Lb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ta.Lb?50:60))):(b&=V.ta.tb,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ta.tb?132:80,a.C=b,a.M=a.ua,80<b&&a.M--,Jc(a)&&Kc(a))))};
var T={Y:1978.1,Oc:{Z:0,De:1,He:16,Oe:32,Ye:64,Xe:128,Ia:14},ya:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ia:8},Pc:{Z:2,Ce:3,gf:4,Ee:8,Te:16,Ue:32,Ve:64,Fe:128,Ia:0},bf:{Z:3},$e:{Z:2,Pe:7},df:{Z:3,hf:1,cf:2,We:4,Me:8,Ge:16,Yd:32},af:{Z:4},ef:{Z:5,Ie:1,Je:2,Ke:4,Le:8,jf:16}},V={Y:100,ga:{Z:66,Pb:1,Cc:2,Dc:4,Se:8,Re:16,Hb:32,Gb:64,Bb:128},nc:{Z:66,INIT:0},ta:{Z:194,ae:0,tb:16,Kc:32,Lb:48,sc:0,tc:32},Wa:{Z:162,Ze:0,vc:0,rc:0,uc:0,qc:0},ia:{Ne:{Z:98},Ba:{lc:0,kc:1,Mc:2,Qc:4,pc:5,Lc:6,ff:7},Xa:16383}},Gc=
k.dd=function(){return this.B>>8-this.H&255};k.rd=function(a,b){this.H=b};k.td=function(a,b){this.P=b};k.sd=function(a,b){this.B=b<<8|this.B>>8};k.ud=function(a,b){this.R=b};k.vd=function(){};function Jc(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.hd=function(){var a=this.s,a=a&~V.ha.Gb;if((Zb(this.m)&64)<<1&&(a|=V.ha.Gb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ja.Ba.kc:this.A=this.A<<1|b;break;case V.ja.Ba.pc:b=Jc(this);this.j[b]=V.ja.Xa;break;case V.ja.Ba.lc:this.a=this.a<<1|b;break;case V.ja.Ba.Qc:b=Jc(this);c=this.a&V.ja.Xa;this.j[b]=c;break;case V.ja.Ba.Lc:b=Jc(this);c=this.j[b];null==c&&(c=V.ja.Xa);this.a=c;break;case V.ja.Ba.Mc:this.a<<=1,this.F=this.a&V.ja.Xa+1}}a&=~V.ha.Hb;this.F&&(a|=V.ha.Hb);a&=~V.ha.Bb;if(b=this.i){b=
this.i;if(c=b.i)c=b.m,c=Zb(b.m)>=b.o+(c.na*c.O/1E3*1.2731488|0);c&&(b.i=!1);b=!b.i}b&&(a|=V.ha.Bb);a&=~V.ha.Pb;this.g&&this.g.U&Kc&&(a|=V.ha.Pb);return this.s=a};k.wd=function(a,b){this.N=b};k.zd=function(a,b){this.v=b};k.yd=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)?gc(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.J=a}};
k.xd=function(a,b){b&V.ta.Kc?(b&=V.ta.Lb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ta.Lb?50:60))):(b&=V.ta.tb,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ta.tb?132:80,a.C=b,a.M=a.ua,80<b&&a.M--,Lc(a)&&Mc(a))))};
var T={Y:1978.1,Oc:{Z:0,De:1,He:16,Oe:32,Ye:64,Xe:128,Ia:14},ya:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ia:8},Pc:{Z:2,Ce:3,gf:4,Ee:8,Te:16,Ue:32,Ve:64,Fe:128,Ia:0},bf:{Z:3},$e:{Z:2,Pe:7},df:{Z:3,hf:1,cf:2,We:4,Me:8,Ge:16,Yd:32},af:{Z:4},ef:{Z:5,Ie:1,Je:2,Ke:4,Le:8,jf:16}},V={Y:100,ha:{Z:66,Pb:1,Cc:2,Dc:4,Se:8,Re:16,Hb:32,Gb:64,Bb:128},nc:{Z:66,INIT:0},ta:{Z:194,ae:0,tb:16,Kc:32,Lb:48,sc:0,tc:32},Wa:{Z:162,Ze:0,vc:0,rc:0,uc:0,qc:0},ja:{Ne:{Z:98},Ba:{lc:0,kc:1,Mc:2,Qc:4,pc:5,Lc:6,ff:7},Xa:16383}},Ic=
{SI1978:T,VT100:V};T.INIT=[[T.Oc.Ia,T.ya.Ia,T.Pc.Ia,0,0,0,0]];
V.INIT=[[V.nc.INIT,V.ga.Cc|V.ga.Dc],[V.ta.sc,V.ta.tc],[V.Wa.vc,V.Wa.rc,V.Wa.uc,V.Wa.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],
V.INIT=[[V.nc.INIT,V.ha.Cc|V.ha.Dc],[V.ta.sc,V.ta.tc],[V.Wa.vc,V.Wa.rc,V.Wa.uc,V.Wa.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.cb={0:S.prototype.ed,1:S.prototype.fd,2:S.prototype.gd,3:S.prototype.dd};
T.eb={2:S.prototype.rd,3:S.prototype.td,4:S.prototype.sd,5:S.prototype.ud,6:S.prototype.vd};V.cb={66:S.prototype.hd};V.eb={66:S.prototype.wd,98:S.prototype.zd,162:S.prototype.yd,194:S.prototype.xd};Fa(function(){for(var a=z(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);Ta(d,c)}});
function Lc(a){v.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=la(this.c);if(this.c){a=this.c;var b=ma(this.h);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){Mc(c,a,b,f)})}}l(Lc,v);Lc.prototype.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;Nc(this)};Lc.prototype.ca=function(){this.ra&&(this.K&&this.K.a(this.id,this.g,this.b,this.ra),delete this.ra);return!0};
Lc.prototype.ba=function(){return!0};
function Mc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{Oa(a.Ja,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||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.ra=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]=ka(b[e]);Nc(a)}}
function Nc(a){if(!db(a))if(!a.c)B(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+p(a.a.length,8,!0)+") does not match specified size ("+p(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(mb(a.u,b,a.b,Eb)){var c;for(c=0;c<a.a.length;c++)ub(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}}B(a)}}Fa(function(){for(var a=z(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lc(d);Ta(d,c)}});
function Oc(a){v.call(this,"RAM",a);this.ra=this.b=null;this.f=a.addr;this.g=a.size;this.za=a.load;this.sa=a.exec;this.c=!1;this.a=a.file;this.h=la(this.a);if(this.a){a=this.a;var b=ma(this.h);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(Oa(c.Ja,a,b),(a=va(a,b))?(c.b=a.T,c.ra=a.ra,null==c.za&&(c.za=a.za),null==c.sa&&(c.sa=a.sa)):c.a=null,Pc(c))})}}l(Oc,v);
Oc.prototype.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;Pc(this)};Oc.prototype.ca=function(){return!0};Oc.prototype.ba=function(){return!0};
function Pc(a){!a.c&&a.g&&mb(a.u,a.f,a.g,1)&&(a.c=!0);if(!db(a)){if(!a.c)t("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.za&&(b=a.za);for(var c=0;c<a.b.length;c++)ub(a.u,b+c,a.b[c]);if(null!==a.sa){if(a.sa==Qc){for(c=0;c<Rc.length;c++)ub(a.u,Rc[c],118);ic(a.m,function(a){return function(b){if(0<=Rc.indexOf(b)){var c=!1,d=a.m,e=a.K;if(b==Sc)switch(c=!0,d.c){case Tc:a.print(String.fromCharCode(d.f).replace(/\r/g,""));break;case Uc:for(var m=oc(d),q="",r=255;r--;){var y=L(a.m,
m++);if(36==y)break;q+=String.fromCharCode(y)}a.print(q.replace(/\r/g,""));break;default:c=!1}c?Ec.call(d):e&&(a.aa("\nCP/M vector "+p(b,4,!0)),D(d,b),Tb(e));b=!0}else b=!1;return b}}(a))}kc(a.m,a.sa)}delete a.b}B(a)}}Oc.prototype.reset=function(){};var Sc=5,Tc=2,Uc=9,Qc=256,Rc=[0,Sc];Fa(function(){for(var a=z(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Oc(d);Ta(d,c)}});
function Vc(a){v.call(this,"Keyboard",a);(a=a.model)&&!Wc[a]&&Ja("Unrecognized Keyboard8080 model: "+a);this.a=Wc[a]||{};this.reset();B(this)}l(Vc,v);k=Vc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.Ka[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Ba("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Va[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Ca)if(d.a.Ca[c]==a){c=+c;break a}c=0}c&&(b?Xc(d,16,!0,!0):Xc(d,16,!1),Xc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Yc(d,a,!0)},c.onkeyup=function(a){return Yc(d,a,!1)}):(c.onkeydown=function(a){return Zc(d,a,!0)},
c.onkeyup=function(a){return Zc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ha&&a<=n.Ya?d.b&($c|ad)||(d.b|=ad,Xc(d,20,!0),bd(d)):a>=n.Wb&&a<=n.z&&d.b&ad&&(d.b&=~ad,Xc(d,20,!1),bd(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Aa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){cd(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=dd:20==b&&(e=ad);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";ed(a,b,d)}Xc(a,b,d,!e);a.D&&Yb(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.pa=function(a,b,c,d){this.D=a;this.m=c;this.K=d;var e=this;this.v=Zb(this.m,function(){fd(e)});this.N=ib(a,"ChipSet");this.g=ib(a,"SerialPort");xb(b,this,this.a.cb);yb(b,this,this.a.eb)};
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 gd.Y:return!0;case W.Y:return this.l=b[0],bd(this,this.l&W.fa.Cb),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1};function bd(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.Ka)if(c="led-"+d,c=a.w[c]){var e=a.a.Ka[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&ad?"#"+p(65280,6):"#000000"}
function ed(a,b,c,d){var e=0;switch(b){case 16:e=d?id:jd;break;case 17:e=d?kd:dd;break;case 18:e=d?ld:md;break;case 91:e=d?nd:od;break;case 20:e=ad,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
function Zc(a,b,c){var d=!0,e=b.keyCode,e=ja[e]||e;c=ed(a,e,c,2==b.location);var f;a:if(e=a.a.qb[e]||e,a.a.Ca[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&(pd|qd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|qd:a.b&~qd)),d=Xc(a,f,c),(!(f>=n.Ha&&f<=n.Ya)||a.b|rd)&&b.preventDefault&&b.preventDefault());return d}
function Yc(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.a.Ca[e],g;if(g=f){a:{for(var h in a.a.Va)if(a.a.Va[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Xc(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Xc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].ob==b)break a;e=-1}if(c)0>e?a.c.push({ob:b,mb:Date.now(),ab:d||!1}):(a.c[e].mb=Date.now(),a.c[e].ab=d||!1),d&&fd(a);else if(0<=e){if(!a.c[e].ab&&(d=a.c[e].mb)&&Date.now()-d<sd)return a.c[e].ab=!0,fd(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.ya.Ec;break;case "2p":d=T.ya.Ic;break;case "coin":d=T.ya.oc;break;case "left":d=T.ya.Gc;break;case "right":d=T.ya.Hc;break;case "fire":d=T.ya.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
function fd(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].ab){var d=a.c[b].ob,e=sd-(Date.now()-a.c[b].mb);if(0<e){if(0>c||c>e)c=e}else{Xc(a,d,!1);b=0;continue}}b++}0<=c&&$b(a.m,a.v,c)}k.jd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Ca[a.ob],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,Bc(this.m,1));return a};k.Ad=function(a,b){this.l=b;this.h=!0;this.o=Xb(this.m);bd(this,b&W.fa.Cb);b&W.fa.Nc&&(this.f=0,Bc(this.m,1))};
var id=1,jd=2,$c=3,kd=4,dd=8,rd=12,ld=16,md=32,pd=48,nd=64,od=128,ad=512,qd=4096,sd=50,td={};td[n.Ha]=37;td[n.ib]=39;td[n.jb]=32;
var gd={Y:1978.1,Ca:{},Va:{},qb:td,Ka:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Ca:(X[8]=3,X[n.Jb]=5,X[n.Ib]=6,X[n.Vb]=7,X[n.Nb]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.yb]=22,X[n.Ob]=23,X[n.Kb]=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]=
T.eb={2:S.prototype.rd,3:S.prototype.td,4:S.prototype.sd,5:S.prototype.ud,6:S.prototype.vd};V.cb={66:S.prototype.hd};V.eb={66:S.prototype.wd,98:S.prototype.zd,162:S.prototype.yd,194:S.prototype.xd};Ha(function(){for(var a=z(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);Va(d,c)}});
function Nc(a){v.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.i=la(this.c);if(this.c){a=this.c;var b=ma(this.i);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;wa(a,null,!0,function(a,b,f){Oc(c,a,b,f)})}}l(Nc,v);Nc.prototype.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;Pc(this)};Nc.prototype.ca=function(){this.ra&&(this.K&&this.K.a(this.id,this.g,this.b,this.ra),delete this.ra);return!0};
Nc.prototype.ba=function(){return!0};
function Oc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{Qa(a.Ja,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||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.ra=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]=ka(b[e]);Pc(a)}}
function Pc(a){if(!fb(a))if(!a.c)B(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+p(a.a.length,8,!0)+") does not match specified size ("+p(a.b,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.g;if(ob(a.u,b,a.b,Gb)){var c;for(c=0;c<a.a.length;c++)wb(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}}B(a)}}Ha(function(){for(var a=z(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nc(d);Va(d,c)}});
function Qc(a){v.call(this,"RAM",a);this.ra=this.b=null;this.f=a.addr;this.g=a.size;this.za=a.load;this.sa=a.exec;this.c=!1;this.a=a.file;this.i=la(this.a);if(this.a){a=this.a;var b=ma(this.i);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;wa(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(Qa(c.Ja,a,b),(a=ya(a,b))?(c.b=a.T,c.ra=a.ra,null==c.za&&(c.za=a.za),null==c.sa&&(c.sa=a.sa)):c.a=null,Rc(c))})}}l(Qc,v);
Qc.prototype.pa=function(a,b,c,d){this.u=b;this.m=c;this.K=d;Rc(this)};Qc.prototype.ca=function(){return!0};Qc.prototype.ba=function(){return!0};
function Rc(a){!a.c&&a.g&&ob(a.u,a.f,a.g,1)&&(a.c=!0);if(!fb(a)){if(!a.c)t("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.za&&(b=a.za);for(var c=0;c<a.b.length;c++)wb(a.u,b+c,a.b[c]);if(null!==a.sa){if(a.sa==Sc){for(c=0;c<Tc.length;c++)wb(a.u,Tc[c],118);kc(a.m,function(a){return function(b){if(0<=Tc.indexOf(b)){var c=!1,d=a.m,e=a.K;if(b==Uc)switch(c=!0,d.c){case Vc:a.print(String.fromCharCode(d.f).replace(/\r/g,""));break;case Wc:for(var m=qc(d),q="",r=255;r--;){var y=L(a.m,
m++);if(36==y)break;q+=String.fromCharCode(y)}a.print(q.replace(/\r/g,""));break;default:c=!1}c?Gc.call(d):e&&(a.aa("\nCP/M vector "+p(b,4,!0)),D(d,b),Vb(e));b=!0}else b=!1;return b}}(a))}mc(a.m,a.sa)}delete a.b}B(a)}}Qc.prototype.reset=function(){};var Uc=5,Vc=2,Wc=9,Sc=256,Tc=[0,Uc];Ha(function(){for(var a=z(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Qc(d);Va(d,c)}});
function Xc(a){v.call(this,"Keyboard",a);(a=a.model)&&!Yc[a]&&La("Unrecognized Keyboard8080 model: "+a);this.a=Yc[a]||{};this.reset();B(this)}l(Xc,v);k=Xc.prototype;
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.Ka[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Da("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Va[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Ca)if(d.a.Ca[c]==a){c=+c;break a}c=0}c&&(b?Zc(d,16,!0,!0):Zc(d,16,!1),Zc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return $c(d,a,!0)},c.onkeyup=function(a){return $c(d,a,!1)}):(c.onkeydown=function(a){return ad(d,a,!0)},
c.onkeyup=function(a){return ad(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ha&&a<=n.Ya?d.b&(bd|cd)||(d.b|=cd,Zc(d,20,!0),dd(d)):a>=n.Wb&&a<=n.z&&d.b&cd&&(d.b&=~cd,Zc(d,20,!1),dd(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Aa&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){ed(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=fd:20==b&&(e=cd);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";gd(a,b,d)}Zc(a,b,d,!e);a.D&&$b(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.pa=function(a,b,c,d){this.D=a;this.m=c;this.K=d;var e=this;this.v=ac(this.m,function(){hd(e)});this.N=kb(a,"ChipSet");this.g=kb(a,"SerialPort");zb(b,this,this.a.cb);Ab(b,this,this.a.eb)};
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.i,this.o,-1])}return a.data()};
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case id.Y:return!0;case W.Y:return this.l=b[0],dd(this,this.l&W.fa.Cb),this.j=b[1],this.i=b[2],this.o=b[3],this.f=b[4],!0}return!1};function dd(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.Ka)if(c="led-"+d,c=a.w[c]){var e=a.a.Ka[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&cd?"#"+p(65280,6):"#000000"}
function gd(a,b,c,d){var e=0;switch(b){case 16:e=d?kd:ld;break;case 17:e=d?md:fd;break;case 18:e=d?nd:od;break;case 91:e=d?pd:qd;break;case 20:e=cd,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
function ad(a,b,c){var d=!0,e=b.keyCode,e=ja[e]||e;c=gd(a,e,c,2==b.location);var f;a:if(e=a.a.qb[e]||e,a.a.Ca[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&(rd|sd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|sd:a.b&~sd)),d=Zc(a,f,c),(!(f>=n.Ha&&f<=n.Ya)||a.b|td)&&b.preventDefault&&b.preventDefault());return d}
function $c(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.a.Ca[e],g;if(g=f){a:{for(var h in a.a.Va)if(a.a.Va[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Zc(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Zc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].ob==b)break a;e=-1}if(c)0>e?a.c.push({ob:b,mb:Date.now(),ab:d||!1}):(a.c[e].mb=Date.now(),a.c[e].ab=d||!1),d&&hd(a);else if(0<=e){if(!a.c[e].ab&&(d=a.c[e].mb)&&Date.now()-d<ud)return a.c[e].ab=!0,hd(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.ya.Ec;break;case "2p":d=T.ya.Ic;break;case "coin":d=T.ya.oc;break;case "left":d=T.ya.Gc;break;case "right":d=T.ya.Hc;break;case "fire":d=T.ya.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
function hd(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].ab){var d=a.c[b].ob,e=ud-(Date.now()-a.c[b].mb);if(0<e){if(0>c||c>e)c=e}else{Zc(a,d,!1);b=0;continue}}b++}0<=c&&bc(a.m,a.v,c)}k.jd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Ca[a.ob],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,Dc(this.m,1));return a};k.Ad=function(a,b){this.l=b;this.i=!0;this.o=Zb(this.m);dd(this,b&W.fa.Cb);b&W.fa.Nc&&(this.f=0,Dc(this.m,1))};
var kd=1,ld=2,bd=3,md=4,fd=8,td=12,nd=16,od=32,rd=48,pd=64,qd=128,cd=512,sd=4096,ud=50,vd={};vd[n.Ha]=37;vd[n.ib]=39;vd[n.jb]=32;
var id={Y:1978.1,Ca:{},Va:{},qb:vd,Ka:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Ca:(X[8]=3,X[n.Jb]=5,X[n.Ib]=6,X[n.Vb]=7,X[n.Nb]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.yb]=22,X[n.Ob]=23,X[n.Kb]=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.jb]=70,X[n.Ab]=71,X[n.wb]=72,X[n.vb]=73,X[n.Ha]=74,X[104]=80,X[2013]=81,X[98]=82,X[97]=83,X[222]=85,X[186]=86,X[n.zb]=87,X[n.xb]=88,X[n.ib]=89,X[n.Mb]=90,X[110]=96,X[116]=97,X[101]=98,X[100]=99,X[13]=100,X[190]=101,X[188]=102,X[n.Fb]=103,X[n.rb]=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.Eb]=118,X[n[" "]]=119,X[n.Qb]=120,X[n.sb]=121,X[n.Ya]=122,X[120]=123,X[17]=124,X[16]=125,X[20]=126,X),Va:(Y[n.p]=5,Y[n.nd]=6,Y[n.y]=7,Y[n.t]=8,
Y[n.Od]=9,Y[n.q]=10,Y[n["]"]]=20,Y[n["["]]=21,Y[n.ad]=22,Y[n.Md]=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.ld]=70,Y[n.k]=71,Y[n.Zc]=72,Y[n.Yc]=73,Y[n.Wb]=74,Y[n["'"]]=85,Y[n[";"]]=86,Y[n.kd]=87,Y[n.$c]=88,Y[n.d]=89,Y[n.Ld]=90,Y[13]=100,Y[n["."]]=101,Y[n[","]]=102,Y[n.n]=103,Y[n.Sc]=104,Y[n.x]=105,Y[n["/"]]=117,Y[n.md]=118,Y[n.Nd]=120,
Y[n.Uc]=121,Y[n.z]=122,Y[n.Jb]=133,Y[n.Ib]=134,Y[n.Vb]=135,Y[n.Nb]=136,Y[n.Sb]=137,Y[n.Q]=138,Y[n["}"]]=148,Y[n["{"]]=149,Y[n.yb]=150,Y[n.Ob]=151,Y[n.Kb]=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.jb]=198,Y[n.Ab]=199,Y[n.wb]=200,Y[n.vb]=201,Y[n.Ha]=202,Y[n['"']]=213,Y[n[":"]]=214,Y[n.zb]=215,Y[n.xb]=216,Y[n.ib]=217,Y[n.Mb]=218,Y[n[">"]]=
229,Y[n["<"]]=230,Y[n.Fb]=231,Y[n.rb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Eb]=246,Y[n.Qb]=248,Y[n.sb]=249,Y[n.Ya]=250,Y),qb:{},Ka:{},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,Db:32,Cb:63,Nc:64,$d:128,INIT:0},wc:127};W.Ka={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Db,online:~W.fa.Db,"caps-lock":ad};var Wc={SI1978:gd,VT100:W};
W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.cb={130:Vc.prototype.jd};W.eb={130:Vc.prototype.Ad};Fa(function(){for(var a=z(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Vc(d);Ta(d,c)}});
function ud(a,b,c,d,e){v.call(this,"Video",a);var f=this;this.Da=Ba("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Rc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&vd[h.toUpperCase()]||wd;this.C=a.bufferCols;this.R=a.bufferRows;this.ua=this.M=a.cellWidth||1;this.L=a.cellHeight||1;this.W=null;this.xa=!1;this.ea=a.bufferBits||1;this.Tc=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.Oa=a.refreshRate||60;this.o=b;this.c=c;this.J=(this.Xc=d)||b||null;this.kb=this.A;this.jc=this.s;this.va=this.A/this.C|0;this.wa=this.s/this.R|0;1<this.L&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ca("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.Ga=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ga){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){xd(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(){xd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=ma(this.F)&&(this.F=oa()+"/api/v1/dump?file="+this.F+"&format=bytes"),ua(this.F,null,!0,function(a,b,c){yd(f,a,b,c)});this.qa={}}l(ud,v);
function Jc(a){a.j=a.C*a.M;a.B=a.R*a.L;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Rc&&(a.v=(a.j*a.ea>>3)*a.B,!mb(a.u,a.da,a.v,3)))return!1;a.v?(a.Ea=a.c.createImageData(b,c),a.Ma=16/a.ea|0,zd(a,a.v>>1)):zd(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+Ad);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==Bd&&(a.I[a.O+Cd]=[255,255,0,255],a.I[a.O+Dd]=[0,255,0,255]);a.P==Ed&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
return!0}k=ud.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.qa[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ga?c.onclick=function(){d.Ga()}:c.parentNode.removeChild(c),!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;Jc(this);if(this.h=ib(a,"Keyboard")){for(var e in this.qa)this.h.S("led",e,this.qa[e]);this.o&&this.h.S(this.Xc?"textarea":"canvas","screen",this.J)}var f=this;this.Pa=Zb(this.m,function(){dc(f)});$b(this.m,this.Pa,1E3/Math.max(this.Oa,this.ha));this.Na=0;this.F||B(this)};
function yd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{Oa(a.Ja,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.W=f,Kc(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.K)&&B(a)}}
function Kc(a){a.W&&(a.xa=a.P==Ed,a.H[Fd]=[Gd(a,a.M,a.L),Gd(a,a.M,a.L,a.oa)],a.H[Hd]=[Gd(a,2*a.M,a.L),Gd(a,2*a.M,a.L,a.oa)],a.H[Id]=a.H[Jd]=[Gd(a,2*a.M,2*a.L),Gd(a,2*a.M,2*a.L,a.oa)])}
function Gd(a,b,c,d){var e=8>=a.ua?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,m={M:b,L: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),r=0;r<g;r++){for(var y=0,F=y;y<a.L;y++)for(var u=r*e+(f+y&e-1),u=d&&8==y?255:a.W[u],x=0;x<c/a.L;x++){for(var G=0,U=0,Z=U;U<a.M;U++){for(var da=u&128>>(7<U?7:U),G=a.xa&&!da&&G?G:da,xa=0;xa<b/a.M;xa++)h&&(G=!G),Kd(a,q,Z,F,G?1:0),Z++;G=da}F++}m.context.putImageData(q,
229,Y[n["<"]]=230,Y[n.Fb]=231,Y[n.rb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Eb]=246,Y[n.Qb]=248,Y[n.sb]=249,Y[n.Ya]=250,Y),qb:{},Ka:{},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,Db:32,Cb:63,Nc:64,$d:128,INIT:0},wc:127};W.Ka={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Db,online:~W.fa.Db,"caps-lock":cd};var Yc={SI1978:id,VT100:W};
W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.cb={130:Xc.prototype.jd};W.eb={130:Xc.prototype.Ad};Ha(function(){for(var a=z(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Xc(d);Va(d,c)}});
function wd(a,b,c,d,e){v.call(this,"Video",a);var f=this;this.Da=Da("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Rc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&xd[h.toUpperCase()]||yd;this.C=a.bufferCols;this.R=a.bufferRows;this.ua=this.M=a.cellWidth||1;this.L=a.cellHeight||1;this.W=null;this.xa=!1;this.ea=a.bufferBits||1;this.Tc=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.ia=a.interruptRate;this.Oa=a.refreshRate||60;this.o=b;this.c=c;this.J=(this.Xc=d)||b||null;this.kb=this.A;this.jc=this.s;this.va=this.A/this.C|0;this.wa=this.s/this.R|0;1<this.L&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ea("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.Ga=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ga){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){zd(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(){zd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=ma(this.F)&&(this.F=oa()+"/api/v1/dump?file="+this.F+"&format=bytes"),wa(this.F,null,!0,function(a,b,c){Ad(f,a,b,c)});this.qa={}}l(wd,v);
function Lc(a){a.j=a.C*a.M;a.B=a.R*a.L;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Rc&&(a.v=(a.j*a.ea>>3)*a.B,!ob(a.u,a.da,a.v,3)))return!1;a.v?(a.Ea=a.c.createImageData(b,c),a.Ma=16/a.ea|0,Bd(a,a.v>>1)):Bd(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+Cd);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==Dd&&(a.I[a.O+Ed]=[255,255,0,255],a.I[a.O+Fd]=[0,255,0,255]);a.P==Gd&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
return!0}k=wd.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.qa[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ga?c.onclick=function(){d.Ga()}:c.parentNode.removeChild(c),!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;Lc(this);if(this.i=kb(a,"Keyboard")){for(var e in this.qa)this.i.S("led",e,this.qa[e]);this.o&&this.i.S(this.Xc?"textarea":"canvas","screen",this.J)}var f=this;this.Pa=ac(this.m,function(){gc(f)});bc(this.m,this.Pa,1E3/Math.max(this.Oa,this.ia));this.Na=0;this.F||B(this)};
function Ad(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{Qa(a.Ja,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.W=f,Mc(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.K)&&B(a)}}
function Mc(a){a.W&&(a.xa=a.P==Gd,a.H[Hd]=[Id(a,a.M,a.L),Id(a,a.M,a.L,a.oa)],a.H[Jd]=[Id(a,2*a.M,a.L),Id(a,2*a.M,a.L,a.oa)],a.H[Kd]=a.H[Ld]=[Id(a,2*a.M,2*a.L),Id(a,2*a.M,2*a.L,a.oa)])}
function Id(a,b,c,d){var e=8>=a.ua?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,m={M:b,L: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),r=0;r<g;r++){for(var y=0,F=y;y<a.L;y++)for(var u=r*e+(f+y&e-1),u=d&&8==y?255:a.W[u],x=0;x<c/a.L;x++){for(var G=0,U=0,Z=U;U<a.M;U++){for(var da=u&128>>(7<U?7:U),G=a.xa&&!da&&G?G:da,xa=0;xa<b/a.M;xa++)h&&(G=!G),Md(a,q,Z,F,G?1:0),Z++;G=da}F++}m.context.putImageData(q,
(r&15)*b,(r>>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.Ga=function(){var a=!1;if(this.a){if(this.a.Ga){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.Da?(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.Ga();a=!0}this.J&&this.J.focus()}return a};
function xd(a,b){!b&&a.a&&(a.Da?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function zd(a,b){a.La=b;a.N=!1;if(void 0===a.g||a.g.length!=a.La)a.g=Array(a.La)}function Kd(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==Bd&&(208<=c&&236>c?e=a.O+Cd:28<=c&&72>c&&(e=a.O+Dd));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 dc(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Na&1?(Bc(a.m,2),c=!1):Bc(a.m,1):Bc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.da,f=a.v,g=!0,h=e>>>d.b,e=d.c-(e&d.f);0<f&&h<d.a.length;)d.a[h].ja&&(d.a[h].ja=g=!1,d.a[h].Zb=!0),f-=e,e=d.c,h++;g&&(c=!1)}$b(a.m,a.Pa,1E3/Math.max(a.Oa,a.ha));a.Na++}if(c)if(1<a.M)switch(a.P){case Ed:for(var c=a.da,d=-1,f=0,g=60==a.bc?2:5,e=h=0,m=-1;f<a.R;){var q=0,r=c,y=d,F=a.C;for(y!=Fd&&(F>>=1);;){var u=sb(a.u,r++);if((u&Ld)==Ld){var x=sb(a.u,r++),d=x&Md,c=(x&Nd)<<8|
sb(a.u,r),c=c+(x&Od?Pd:Qd);break}if(q<F)a.X[q++]=u;else break}if(g)g--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=y)for(r=a.N&&a.g[h]==F,a.g[h++]=F,F=0;F<q;F++){u=a.X[F];if(!r||u!==a.g[h]){a.g[m=h]=u;var x=a,G=a.ma,U=u&127;if(u=x.H[y][u&128?1:0]){var Z=(U&15)*u.M,U=(U>>4)*u.L,da,xa,Xa,qb,hd=u.M,ec=u.L;G?(da=F*x.M,xa=f*x.L,Xa=x.M,qb=x.L):(da=F*x.va,xa=f*x.wa,Xa=x.va,qb=x.wa);u.M>x.M&&(da*=2,Xa*=2);u.L>x.L&&(y==Jd&&(U+=x.L),ec=x.L);G?G.drawImage(u.canvas,Z,U,hd,ec,da,xa,Xa,qb):(da+=0,xa+=0,x.c.drawImage(u.canvas,
Z,U,hd,ec,da,xa,Xa,qb))}e++}h++}f++}}a.N=!0;!b&&a.na&&1==e&&(a.g[m]=-1,e=0);a.na=!1;(e||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.L,0,0,a.kb,a.jc)}else{f=a.da;g=f+a.v;m=e=h=0;b=a.j;q=0;c=a.B;y=d=0;r=a.ea;F=(1<<r)-1;a.Tc&&(r=-r,y=16+r);for(;f<g;){x=a.u;G=f;u=G&x.f;Z=(G&x.g)>>>x.b;x=u!=x.f?x.a[Z].ec(u,G):x.a[Z++].fb(u,G)|x.a[Z&x.o].fb(0,G+1)<<8;if(a.N&&x===a.g[h])e+=a.Ma;else{a.g[h]=x;(G=y)&&(x=x>>8|(x&255)<<8);e<b&&(b=e);for(u=a.Ma;u--;)Z=x>>G&F,Kd(a,a.Ea,e++,m,Z),G+=r;e>q&&(q=e);m<c&&(c=m);m>=
d&&(d=m+1)}f+=2;h++;if(e>=a.j&&(e=0,m++,m>a.B))break}a.N=!0;b<a.j&&(f=q-b,d-=c,a.b&&(g=b,h=f,b=c,f=d,c=a.j-(g+h),d=h),a.ma.putImageData(a.Ea,0,0,b,c,f,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var Cd=0,Dd=1,Ad=2,wd=0,Bd=1,Ed=2,vd={SI1978:Bd,VT100:Ed},Fd=96,Hd=64,Id=32,Jd=0,Ld=127,Nd=15,Od=16,Md=96,Pd=8192,Qd=16384;
Fa(function(){for(var a=z(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(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||Ca("aspect"));f&&.3<=f&&3.33>=f&&(Ea("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new ud(d,e,g,f,c);Ta(d,c)}});
function Rd(a){v.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.J=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=Sd;b&&(void 0===c&&(c="Panel"),(c=Wa(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Aa=this.s=null;this.exports={connect:this.ac,receiveData:this.nb,receiveStatus:this.Kd}}l(Rd,v);
k=Rd.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Sd: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),Td(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Td(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.nb(d);return!0},!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;var e=this;this.P=Zb(this.m,function(){e.nb()});this.R=Zb(this.m,function(){cd(e)});this.N=ib(a,"ChipSet");xb(b,this,Ud,this.I);yb(b,this,Vd,this.I);B(this)};
k.ac=function(a){if(!this.a){var b=Pb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.Tb)return;c=ra(c[1]);if(this.a=Va(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Aa=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ja+"."+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(){Wd(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.U;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Wd(this,a[0])};
function Wd(a,b){var c=0;b||(b=Xd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.U=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Yd(a,b){var c=a.v&b;b&15||(c>>=4);b=Zd[c];c=((a.h&$d)>>2)+6;a.h&ae&&c++;c+=((a.h&be)>>6)+1>>1;return 1E3/Math.round(b/c)}function Td(a,b){return a.B||a.U&ce?!1:(a.A=b,a.U|=ce,Bc(a.m,a.O),!0)}
k.nb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Td(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&$b(this.m,this.P,Yd(this,de)));return!0};k.Kd=function(a){this.U&=~ee;a&64&&(this.U|=ee)};function cd(a,b){a.U=a.U|Ic|fe;b&&a.Aa&&a.Aa.call(a.a,b)}k.cd=function(){var a=this.A;this.U&=~ce;return a};k.bd=function(){return this.U};
k.qd=function(a,b){this.C=b;this.U&=~(Ic|fe);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Aa&&this.Aa.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=sa[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.J||8,c=b-this.f%b,this.J&&(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&&$b(this.m,this.R,Yd(this,ge))};k.pd=function(a,b){this.o?(this.s&&(b^this.j)&(he|ie)&&(a=0,this.l?(a|=b&he?32:0,a|=b&ie?320:0):(a|=b&he?16:0,a|=b&ie?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&je&&(this.o=!1)):(this.h=b,this.o=!0)};k.od=function(a,b){this.v=b};
var $d=12,ae=16,be=192,ie=2,he=32,je=64,Ic=1,ce=2,fe=4,ee=128,de=15,ge=240,Zd=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Xd=[!1,0,0,133,142,39,238],Sd="buffer",Ud={0:Rd.prototype.cd,1:Rd.prototype.bd},Vd={0:Rd.prototype.qd,1:Rd.prototype.pd,2:Rd.prototype.od};Fa(function(){for(var a=z(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Rd(d);Ta(d,c)}});
function ke(a,b,c){v.call(this,"Computer",a);this.i.V=!1;le(this,b);this.v=Pb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=me;this.o=null;this.j=this.C=!1;this.I=Pb(this,"url")||"";(Math.random()+.1).toString(36);this.b=ne(this);if(this.m=Wa("CPU",this.id)){this.K=Wa("Debugger",this.id);this.g=[];for(b=null;b=ib(this,"Video",b);)this.g.push(b);this.u=new kb({id:this.Ja+".bus",busWidth:this.H},this.m,this.K);var d,e=Ua(this.id);if(this.N=(this.h=Wa("Panel",this.id))&&this.h.w.print)for(b=
0;b<e.length;b++)d=e[b],d.G=this.h.G,d.print=this.h.print,d.aa=this.h.aa;this.aa("PC8080 v1.36.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.pa&&d.pa(this,this.u,this.m,this.K);b=null;d=Pb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Pb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=me),this.a&&(this.s=new E(this,"1.36.0"),oe(this.s)?
b=null:delete this.s);!b&&this.a&&(b=pe(this))&&(this.j=!0);if(b){var g=this;ua(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?": "+ra(b):"")+")")):(g.o=b,g.C=!0);B(g)})}else B(this);this.w.power||(this.v=!0);!c&&this.v&&qe(this,this.Sa)}else t("Unable to find CPU component")}l(ke,v);function le(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 Pb(a,b,c){var d=b.toLowerCase(),d=Ca(b)||Ca(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 qe(a,b,c){for(var d=Ua(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!db(f)){db(f,function(){qe(a,b,c)});return}}b.call(a,c)}
function re(a,b){var c=new E(a,"1.36.0",se);if(oe(c)&&te(c)){var d=c.get(ue),e=b?b.get(ue):"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=ke.prototype;
k.Sa=function(a){void 0===a&&(a=this.a||(this.o?ve:me));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.36.0");if(a==we)b=!0;else if(a>me){if(oe(d,this.o)){this.f=new E(this,"1.36.0",xe);oe(this.f)&&(ye(this,d),a=ze,Ae(this.f));this.f.set(ue,ta());Be(this.f);var e=this.a&&!this.j;if(a==ve||Ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=te(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?oe(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Aa(Ce,""),this.b=null)):this.aa(f+": "+g),Ae(d),oe(d)?(c=te(d),e=!0):c=!1))}e&&re(this,c?d:null)}else a==ze&&d.clear()}else re(this);delete this.o;delete this.s}e=Ua(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=De(this,g,d,b,c));b=[d,a,c];a!=we?qe(this,this.Yb,b):this.Yb(b)}};
function De(a,b,c,d,e){if(!b.i.V){b.i.V=!0;if(b.ca){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-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=me,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Rb)for(a=b.Rb.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.J=!0;this.i.V=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(De(this,this.m,b,c,a),this.m.Ra());this.B&&(ye(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
function ye(a,b){if(Ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.b||"";b=b.toString();var d={app:"PC8080",ver:"1.36.0"};d.url=a.I;d.user=c;d.type="bug";d.data=b;ua("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ee(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.36.0"),g=new E(a,"1.36.0",se),h=ta();g.set(ue,h);f.set(ue,h);f.set(Fe,"1.36.0");f.set(Ge,window?window.location.href:null);f.set(He,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Tb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.V=!1,!1===d&&(e=null)));for(var h=Ua(a.id),m=0;m<h.length;m++){var q=h[m];q.i.V&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.i.V=!1,!1===d&&(e=null)))}e&&
(c?(h=d=!1,b?(a.b&&Ie(a,a.b,f.toString()),Be(g)&&Be(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Je),d&&f.clear(h)):e=f.toString());c&&(a.i.V=!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=Ua(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=Ua(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=Ua(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.V?Ee(d,!1,!0):qe(d,d.Sa))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.V&&!d.c)if(d.a&&!d.l){var a=Ra("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ee(d,a,!0);!a&&d.A?window&&window.location.reload():d.Sa(me)}else d.reset(),d.m&&d.m.Ra()},!0;case "save":if(na())c.parentNode.removeChild(c);else return this.w[b]=
c,c.onclick=function(){var a=ne(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=Ee(d,b);b?Ie(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function ne(a,b){var c=a.b;c||((c=za(Ce),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=Ke(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Ke(a,b){a.b=null;b=ua(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&&(Aa(Ce,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function pe(a){var b=null;a.b&&(b=oa()+"/api/v1/user?req=load&user="+a.b+"&state="+Le(a,"1.36.0"));return b}
function Ie(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Le(a,"1.36.0");d.data=c;b=ua(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.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),Aa(Ce,""),a.b=null)}}
function ib(a,b,c){a=Ua(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 Yb(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.J&&a.J.focus();!b&&window&&window.scrollTo(c,d)}}
function bc(a,b){a.m&&(a=a.m,a.Na&&(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",mc(a),4),R(a,"D",a.h),R(a,"E",a.f),R(a,"DE",oc(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",H(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=lc(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 xe="failsafe",se="validate",ue="timestamp",Fe="version",Ge="url",He="browser",Ce="user",we=-1,me=0,ve=1,ze=2,Je=3;Fa(function(){for(var a=z(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=z(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new ke(g,d,!0);Ta(g,f);g.v&&qe(g,g.Sa)}});Ga.show.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);if(c=Wa("Computer",c.id))c.i.pb=!1,c.J&&!c.i.V&&c.Sa(we)}});
Ga.exit.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);if(c=Wa("Computer",c.id))c.i.pb=!0,c.i.V&&Ee(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.K=a.K;this.b="";this.a={};this.m=this.u=!1;this.key=Le(a,b,c);Ae(this,a.Vc)}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 oe(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:wa()&&(b=za(a.key))?(a.b=b,a.m=!0):!1}function te(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 Be(a){var b=!0;if(wa()){var c=JSON.stringify(a.a);Aa(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 Ae(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
k.clear=function(a){Ae(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 Le(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 Me=0;
function Ne(a,b,c,d,e,f){e("Loading "+a+"...");ua(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Oe(h,a,b,c,d,e,f)})}
function Oe(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(Oa(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),d=d.replace(/\$/g,"$$$$"),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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Pe(a,f,h):h(a,null):g("no data"+(b?" for file: "+
function zd(a,b){!b&&a.a&&(a.Da?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function Bd(a,b){a.La=b;a.N=!1;if(void 0===a.g||a.g.length!=a.La)a.g=Array(a.La)}function Md(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==Dd&&(208<=c&&236>c?e=a.O+Ed:28<=c&&72>c&&(e=a.O+Fd));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 gc(a,b){var c=!0;if(!b){a.ia&&(120==a.ia?a.Na&1?(Dc(a.m,2),c=!1):Dc(a.m,1):Dc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.da,f=a.v,g=!0,h=e>>>d.b,e=d.c-(e&d.f);0<f&&h<d.a.length;)d.a[h].ka&&(d.a[h].ka=g=!1,d.a[h].Zb=!0),f-=e,e=d.c,h++;g&&(c=!1)}bc(a.m,a.Pa,1E3/Math.max(a.Oa,a.ia));a.Na++}if(c)if(1<a.M)switch(a.P){case Gd:for(var c=a.da,d=-1,f=0,g=60==a.bc?2:5,e=h=0,m=-1;f<a.R;){var q=0,r=c,y=d,F=a.C;for(y!=Hd&&(F>>=1);;){var u=ub(a.u,r++);if((u&Nd)==Nd){var x=ub(a.u,r++),d=x&Od,c=(x&Pd)<<8|
ub(a.u,r),c=c+(x&Qd?Rd:Sd);break}if(q<F)a.X[q++]=u;else break}if(g)g--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=y)for(r=a.N&&a.g[h]==F,a.g[h++]=F,F=0;F<q;F++){u=a.X[F];if(!r||u!==a.g[h]){a.g[m=h]=u;var x=a,G=a.ma,U=u&127;if(u=x.H[y][u&128?1:0]){var Z=(U&15)*u.M,U=(U>>4)*u.L,da,xa,Xa,qb,jd=u.M,ec=u.L;G?(da=F*x.M,xa=f*x.L,Xa=x.M,qb=x.L):(da=F*x.va,xa=f*x.wa,Xa=x.va,qb=x.wa);u.M>x.M&&(da*=2,Xa*=2);u.L>x.L&&(y==Ld&&(U+=x.L),ec=x.L);G?G.drawImage(u.canvas,Z,U,jd,ec,da,xa,Xa,qb):(da+=0,xa+=0,x.c.drawImage(u.canvas,
Z,U,jd,ec,da,xa,Xa,qb))}e++}h++}f++}}a.N=!0;!b&&a.na&&1==e&&(a.g[m]=-1,e=0);a.na=!1;(e||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.L,0,0,a.kb,a.jc)}else{f=a.da;g=f+a.v;m=e=h=0;b=a.j;q=0;c=a.B;y=d=0;r=a.ea;F=(1<<r)-1;a.Tc&&(r=-r,y=16+r);for(;f<g;){x=a.u;G=f;u=G&x.f;Z=(G&x.g)>>>x.b;x=u!=x.f?x.a[Z].ec(u,G):x.a[Z++].fb(u,G)|x.a[Z&x.o].fb(0,G+1)<<8;if(a.N&&x===a.g[h])e+=a.Ma;else{a.g[h]=x;(G=y)&&(x=x>>8|(x&255)<<8);e<b&&(b=e);for(u=a.Ma;u--;)Z=x>>G&F,Md(a,a.Ea,e++,m,Z),G+=r;e>q&&(q=e);m<c&&(c=m);m>=
d&&(d=m+1)}f+=2;h++;if(e>=a.j&&(e=0,m++,m>a.B))break}a.N=!0;b<a.j&&(f=q-b,d-=c,a.b&&(g=b,h=f,b=c,f=d,c=a.j-(g+h),d=h),a.ma.putImageData(a.Ea,0,0,b,c,f,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var Ed=0,Fd=1,Cd=2,yd=0,Dd=1,Gd=2,xd={SI1978:Dd,VT100:Gd},Hd=96,Jd=64,Kd=32,Ld=0,Nd=127,Pd=15,Qd=16,Od=96,Rd=8192,Sd=16384;
Ha(function(){for(var a=z(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(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||Ea("aspect"));f&&.3<=f&&3.33>=f&&(Ga("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");Da("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new wd(d,e,g,f,c);Va(d,c)}});
function Td(a){v.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.J=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=Ud;b&&(void 0===c&&(c="Panel"),(c=Za(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Aa=this.s=null;this.exports={connect:this.ac,receiveData:this.nb,receiveStatus:this.Kd}}l(Td,v);
k=Td.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Ud: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),Vd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Vd(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.nb(d);return!0},!0}return!1};
k.pa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.K=d;var e=this;this.P=ac(this.m,function(){e.nb()});this.R=ac(this.m,function(){ed(e)});this.N=kb(a,"ChipSet");zb(b,this,Wd,this.I);Ab(b,this,Xd,this.I);B(this)};
k.ac=function(a){if(!this.a){var b=Rb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.Tb)return;c=ra(c[1]);if(this.a=Ya(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Aa=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ja+"."+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(){Yd(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.U;c[b++]=this.i;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Yd(this,a[0])};
function Yd(a,b){var c=0;b||(b=Zd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.U=b[c++];a.i=b[c++];a.j=b[c++];a.v=b[c];return!0}function $d(a,b){var c=a.v&b;b&15||(c>>=4);b=ae[c];c=((a.i&be)>>2)+6;a.i&ce&&c++;c+=((a.i&de)>>6)+1>>1;return 1E3/Math.round(b/c)}function Vd(a,b){return a.B||a.U&ee?!1:(a.A=b,a.U|=ee,Dc(a.m,a.O),!0)}
k.nb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Vd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&bc(this.m,this.P,$d(this,fe)));return!0};k.Kd=function(a){this.U&=~ge;a&64&&(this.U|=ge)};function ed(a,b){a.U=a.U|Kc|he;b&&a.Aa&&a.Aa.call(a.a,b)}k.cd=function(){var a=this.A;this.U&=~ee;return a};k.bd=function(){return this.U};
k.qd=function(a,b){this.C=b;this.U&=~(Kc|he);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Aa&&this.Aa.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=sa[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.J||8,c=b-this.f%b,this.J&&(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&&bc(this.m,this.R,$d(this,ie))};k.pd=function(a,b){this.o?(this.s&&(b^this.j)&(je|ke)&&(a=0,this.l?(a|=b&je?32:0,a|=b&ke?320:0):(a|=b&je?16:0,a|=b&ke?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&le&&(this.o=!1)):(this.i=b,this.o=!0)};k.od=function(a,b){this.v=b};
var be=12,ce=16,de=192,ke=2,je=32,le=64,Kc=1,ee=2,he=4,ge=128,fe=15,ie=240,ae=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Zd=[!1,0,0,133,142,39,238],Ud="buffer",Wd={0:Td.prototype.cd,1:Td.prototype.bd},Xd={0:Td.prototype.qd,1:Td.prototype.pd,2:Td.prototype.od};Ha(function(){for(var a=z(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Td(d);Va(d,c)}});
function me(a,b,c){v.call(this,"Computer",a);this.h.V=!1;ne(this,b);this.v=Rb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=oe;this.o=null;this.j=this.C=!1;this.I=Rb(this,"url")||"";(Math.random()+.1).toString(36);this.b=pe(this);if(this.m=Za("CPU",this.id)){this.K=Za("Debugger",this.id);this.g=[];for(b=null;b=kb(this,"Video",b);)this.g.push(b);this.u=new mb({id:this.Ja+".bus",busWidth:this.H},this.m,this.K);var d,e=Wa(this.id);if(this.N=(this.i=Za("Panel",this.id))&&this.i.w.print)for(b=
0;b<e.length;b++)d=e[b],d.G=this.i.G,d.print=this.i.print,d.aa=this.i.aa;this.aa("PC8080 v1.36.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.pa&&d.pa(this,this.u,this.m,this.K);b=null;d=Rb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Rb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=oe),this.a&&(this.s=new E(this,"1.36.0"),qe(this.s)?
b=null:delete this.s);!b&&this.a&&(b=re(this))&&(this.j=!0);if(b){var g=this;wa(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?": "+ra(b):"")+")")):(g.o=b,g.C=!0);B(g)})}else B(this);this.w.power||(this.v=!0);!c&&this.v&&se(this,this.Sa)}else t("Unable to find CPU component")}l(me,v);function ne(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 Rb(a,b,c){var d=b.toLowerCase(),d=Ea(b)||Ea(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 se(a,b,c){for(var d=Wa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!fb(f)){fb(f,function(){se(a,b,c)});return}}b.call(a,c)}
function te(a,b){var c=new E(a,"1.36.0",ue);if(qe(c)&&ve(c)){var d=c.get(we),e=b?b.get(we):"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=me.prototype;
k.Sa=function(a){void 0===a&&(a=this.a||(this.o?xe:oe));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.36.0");if(a==ye)b=!0;else if(a>oe){if(qe(d,this.o)){this.f=new E(this,"1.36.0",ze);qe(this.f)&&(Ae(this,d),a=Be,Ce(this.f));this.f.set(we,ta());De(this.f);var e=this.a&&!this.j;if(a==xe||Ta("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ve(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?qe(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Ca(Ee,""),this.b=null)):this.aa(f+": "+g),Ce(d),qe(d)?(c=ve(d),e=!0):c=!1))}e&&te(this,c?d:null)}else a==Be&&d.clear()}else te(this);delete this.o;delete this.s}e=Wa(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=Fe(this,g,d,b,c));b=[d,a,c];a!=ye?se(this,this.Yb,b):this.Yb(b)}};
function Fe(a,b,c,d,e){if(!b.h.V){b.h.V=!0;if(b.ca){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-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=oe,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Rb)for(a=b.Rb.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.J=!0;this.h.V=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(Fe(this,this.m,b,c,a),this.m.Ra());this.B&&(Ae(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
function Ae(a,b){if(Ta("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.b||"";b=b.toString();var d={app:"PC8080",ver:"1.36.0"};d.url=a.I;d.user=c;d.type="bug";d.data=b;wa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ge(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.36.0"),g=new E(a,"1.36.0",ue),h=ta();g.set(we,h);f.set(we,h);f.set(He,"1.36.0");f.set(Ie,window?window.location.href:null);f.set(Je,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Vb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.h.V=!1,!1===d&&(e=null)));for(var h=Wa(a.id),m=0;m<h.length;m++){var q=h[m];q.h.V&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.h.V=!1,!1===d&&(e=null)))}e&&
(c?(h=d=!1,b?(a.b&&Ke(a,a.b,f.toString()),De(g)&&De(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Le),d&&f.clear(h)):e=f.toString());c&&(a.h.V=!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=Wa(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=Wa(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=Wa(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.h.V?Ge(d,!1,!0):se(d,d.Sa))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.h.V&&!d.c)if(d.a&&!d.l){var a=Ta("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ge(d,a,!0);!a&&d.A?window&&window.location.reload():d.Sa(oe)}else d.reset(),d.m&&d.m.Ra()},!0;case "save":if(na())c.parentNode.removeChild(c);else return this.w[b]=
c,c.onclick=function(){var a=pe(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=Ge(d,b);b?Ke(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function pe(a,b){var c=a.b;c||((c=Ba(Ee),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=Me(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Me(a,b){a.b=null;b=wa(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&&(Ca(Ee,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function re(a){var b=null;a.b&&(b=oa()+"/api/v1/user?req=load&user="+a.b+"&state="+Ne(a,"1.36.0"));return b}
function Ke(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ne(a,"1.36.0");d.data=c;b=wa(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.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),Ca(Ee,""),a.b=null)}}
function kb(a,b,c){a=Wa(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 $b(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.J&&a.J.focus();!b&&window&&window.scrollTo(c,d)}}
function dc(a,b){a.m&&(a=a.m,a.Na&&(b||!a.h.ga||a.h.Xb)&&(R(a,"A",a.b),R(a,"B",a.g),R(a,"C",a.c),R(a,"BC",oc(a),4),R(a,"D",a.i),R(a,"E",a.f),R(a,"DE",qc(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",H(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=nc(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.h.ga&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")}
var ze="failsafe",ue="validate",we="timestamp",He="version",Ie="url",Je="browser",Ee="user",ye=-1,oe=0,xe=1,Be=2,Le=3;Ha(function(){for(var a=z(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=z(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new me(g,d,!0);Va(g,f);g.v&&se(g,g.Sa)}});Ia.show.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);if(c=Za("Computer",c.id))c.h.pb=!1,c.J&&!c.h.V&&c.Sa(ye)}});
Ia.exit.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);if(c=Za("Computer",c.id))c.h.pb=!0,c.h.V&&Ge(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.K=a.K;this.b="";this.a={};this.m=this.u=!1;this.key=Ne(a,b,c);Ce(this,a.Vc)}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 qe(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:za()&&(b=Ba(a.key))?(a.b=b,a.m=!0):!1}function ve(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 De(a){var b=!0;if(za()){var c=JSON.stringify(a.a);Ca(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 Ce(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
k.clear=function(a){Ce(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 Ne(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 Oe=0;
function Pe(a,b,c,d,e,f){e("Loading "+a+"...");wa(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Qe(h,a,b,c,d,e,f)})}
function Qe(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(Qa(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),d=d.replace(/\$/g,"$$$$"),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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Re(a,f,h):h(a,null):g("no data"+(b?" for file: "+
b:""),null)}
function Pe(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ua(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,r=/( [a-z]+=)(['"])(.*?)\2/gi;q=r.exec(f);)m=0>m.toLowerCase().indexOf(q[1].toLowerCase())?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);Pe(a,b,c)}})}else c(a,null)}
function Qe(a,b,c,d){function e(a){if(void 0===h){var b=g&&z(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=pa(a))}function f(a){e("Error: "+a);m&&(--Me||Ka(!0));m=!1}var g,h,m=!0;Me++;Pa[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=q:y.appendChild(document.createTextNode(q));r.appendChild(y)}c||
(c="/versions/pc8080/1.36.0/components.xsl");q=function(d,h){h?Ne(c,null,null,!1,e,function(d,m){m?(Oa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Me||Ka(!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),--Me||Ka(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Ne(b,a,d,!0,e,q):Oe(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(F){f(F.message)}return m}window.embedPC8080=function(a,b,c,d){Ka(!1);return Qe(a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete Za[c],d=!0;else if("string"==typeof f&&!Za[c]){d=!0;e=Za;for(var g=c,h=f.length,m=[],q=[],r="",y=null,F=0;F<h;F++){var u=f[F];if('"'==u||"'"==u)y&&u!=y?r+=u:(y?y=null:y=u,r&&(q.push(r),r=""));else{if(!y){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){r&&(q.push(r),r="");";"==u&&q.length&&(m.push(q),q=[]);continue}}r+=u}}r&&q.push(r);q.length&&m.push(q);e[g]=m;Ya(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=Wa(d,c+".machine"))&&(h=g.exports)&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=Ka;window.sendEvent=Ma;})();//# sourceMappingURL=/versions/pc8080/1.36.0/pc8080.map
function Re(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");wa(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,r=/( [a-z]+=)(['"])(.*?)\2/gi;q=r.exec(f);)m=0>m.toLowerCase().indexOf(q[1].toLowerCase())?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);Re(a,b,c)}})}else c(a,null)}
function Se(a,b,c,d){function e(a){if(void 0===h){var b=g&&z(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=pa(a))}function f(a){e("Error: "+a);m&&(--Oe||Ma(!0));m=!1}var g,h,m=!0;Oe++;Ra[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=q:y.appendChild(document.createTextNode(q));r.appendChild(y)}c||
(c="/versions/pc8080/1.36.0/components.xsl");q=function(d,h){h?Pe(c,null,null,!1,e,function(d,m){m?(Qa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Oe||Ma(!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),--Oe||Ma(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Pe(b,a,d,!0,e,q):Qe(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(F){f(F.message)}return m}window.embedPC8080=function(a,b,c,d){Ma(!1);return Se(a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete ab[c],d=!0;else if("string"==typeof f&&!ab[c]){d=!0;e=ab;for(var g=c,h=f.length,m=[],q=[],r="",y=null,F=0;F<h;F++){var u=f[F];if('"'==u||"'"==u)y&&u!=y?r+=u:(y?y=null:y=u,r&&(q.push(r),r=""));else{if(!y){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){r&&(q.push(r),r="");";"==u&&q.length&&(m.push(q),q=[]);continue}}r+=u}}r&&q.push(r);q.length&&m.push(q);e[g]=m;$a(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=Za(d,c+".machine"))&&(h=g.exports)&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=Ma;window.sendEvent=Oa;})();//# sourceMappingURL=/versions/pc8080/1.36.0/pc8080.map

File diff suppressed because one or more lines are too long