Started work on v1.35.2

This commit is contained in:
Jeff Parsons 2017-06-27 12:01:17 -07:00 • committed by Jeff Parsons
commit 0ec54f6da4
592 changed files with 179382 additions and 87684 deletions

View file

@ -0,0 +1,309 @@
(function(){/*
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/cpudef.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/messages.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/panel.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/bus.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/memory.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/cpu.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/cpustate.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/cpuops.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/chipset.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/rom.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/ram.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/keyboard.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/video.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/serial.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017
*/
var l;function aa(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
for(var ca="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},da="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ea=["Math","trunc"],fa=0;fa<ea.length-1;fa++){var ga=ea[fa];ga in da||(da[ga]={});da=da[ga]}
var ha=ea[ea.length-1],ia=da[ha],ka=ia?ia:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ka!=ia&&null!=ka&&ca(da,ha,{configurable:!0,writable:!0,value:ka});
var m={De:0,Ge:1,He:2,Ie:3,Je:4,Ke:5,Le:6,Me:7,Ne:8,Oe:9,Pe:10,Qe:11,Re:12,Se:13,Te:14,Ue:15,Ve:16,We:17,Xe:18,Ye:19,Ze:20,$e:21,af:22,bf:23,cf:24,df:25,ef:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Vb:66,Wb:67,Fb:68,E:69,Zb:70,$b:71,ac:72,bc:73,cc:74,dc:75,Hb:76,hc:77,ic:78,mc:79,nc:80,Q:81,oc:82,qc:83,rc:84,sc:85,uc:86,vc:87,
xc:88,yc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,zc:97,vd:98,yd:99,d:100,e:101,Cd:102,Ed:103,Fd:104,Gd:105,Pd:106,k:107,Qd:108,Sd:109,n:110,Td:111,p:112,q:113,r:114,pe:115,t:116,re:117,se:118,te:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,ff:127},la={59:186,61:187,173:189,224:91};
function ma(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function oa(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 oa(a,16,b,c?"0x":"")}function pa(a){return n(a,2,!0)}
function q(a){return n(a,4,!0)}function qa(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 ra(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function sa(){var a=ta();return-1!==a.indexOf("pcjs.org",a.length-8)}function va(a){return a.replace(/[&<>"']/g,function(a){return wa[a]})}function xa(a,b){return(a+" ").slice(0,b)}
function ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var wa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Aa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
function Ca(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 Da(){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 Ea(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 Fa(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 Ga(a,b){var c,d={la:null,ra:null,Qa:null,Ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ia=g.exec;if(e=g.bytes)d.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.Of=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 ta(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){return window?window.navigator.userAgent:""}function Ia(){if(null==Ja){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}Ja=a}return Ja}function Ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function La(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Oa(a){if(window){var b=Ha();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Pa(a){if(!Qa){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," "))}Qa=c}return Qa[a]||Qa[a.toLowerCase()]}function Ra(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Sa(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 Ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ua(a){Va.init.push(a)}
function Wa(a){if(Xa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ya("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Za(a){!Xa&&a?(Xa=!0,$a&&db("init"),eb&&db("show")):Xa=a}function db(a){Va[a]&&Wa(Va[a])}var Qa=null,Va={init:[],show:[],exit:[]},$a=!1,eb=!1,Xa=!0,Ja=null;Ta("onload",function(){$a=!0;Wa(Va.init)});Ta("onpageshow",function(){eb=!0;Wa(Va.show)});
Ta(Oa("iOS")?"onpagehide":Oa("Opera")?"onunload":"onbeforeunload",function(){Wa(Va.exit)});function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.wc=b.comment;this.Bd=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.F={ready:!1,mb:!1,Ib:!1,ja:!1,Rb:!1,error:!1};this.zb=null;this.F.error=!1;this.ha=c||0;this.K=this.w=this.I=this.R=this.ua=null;fb.push(this)}
function gb(a,b,c){hb[a]&&b&&(hb[a][b]=c)}function ib(){return Date.now()||+new Date}function Ya(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function jb(a){var b=!1;window&&(b=window.confirm(a));return b}function kb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<fb.length;b++){var d=fb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function lb(a){if(void 0!==a){var b;for(b=0;b<fb.length;b++)if(fb[b].id===a)return fb[b]}return null}
function mb(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<fb.length;d++)if(c)c==fb[d]&&(c=null);else if(!(a!=fb[d].type||b&&fb[d].id.indexOf(b)))return fb[d]}return null}function ob(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
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=ob(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}
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 rb(a){for(var b=!0,c=sb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=tb.indexOf(e)&&(f=function(){return function(){rb(a)}}());var g=ub[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=mb(d[1],a);if(h)if(g=wb[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 sb[a];return b}l=t.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.ua=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb);return!0}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.cb+": "+a)};l.aa=function(a,b,c){if(!b){var d=mb("Computer",this.id);if(d&&d.F.Rb)return console.log("ignoring notice during unload: "+a),!1}Ya(a,b,c||this.type);return!0};function xb(a,b){a.F.error=!0;a.aa(b)}function yb(a,b){b&&(a.F.ready?b():a.zb=b);return a.F.ready}function zb(a){if(!a.F.error&&(a.F.ready=!0,a.F.ready)){var b=a.zb;a.zb=null;b&&b()}}function Ab(a,b){a.F.mb&&(b?a.F.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.F.mb}
function Bb(a,b){if(a.F.Ib)return a.F.mb=!1,a.F.Ib=!1;if(a.F.error)return a.i(a.toString()+" error"),!1;a.F.mb=b;return a.F.mb}l.wa=function(){return this.F.ja=!0};l.va=function(a,b){b&&(this.F.ja=!1);return!0};function Cb(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 Db(a,b){a.K&&Cb(a,0)&&a.K.message(b,void 0)}function x(a,b,c,d,e,f,g){a.K&&(!0===g?g=0:null==g&&(g=a.ha),Eb(a.K,a,b,c,d,e,f,g))}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var hb=window?window.PCjs.Machines:{},fb=window?window.PCjs.Components:[],sb=window?window.PCjs.Commands:{},tb=["hold","sleep","wait"],ub={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},wb={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],Hb={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 Ib(a){t.call(this,"Panel",a)}aa(Ib,t);
Ib.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:t.prototype.da.call(this,a,b,c,d)};Ib.prototype.Ga=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;this.B=Jb(a,"Keyboard")};Ib.prototype.wa=function(a,b){b||Kb();return!0};Ib.prototype.va=function(){return!0};
function Kb(){for(var a=!1,b=qb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=ob(d),f=lb(e.id);f||(a=!0,f=new Ib(e));pb(f,d);a&&zb(f)}}Ua(Kb);
function Lb(a,b,c){t.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 z;Mb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;zb(this)}aa(Lb,t);Lb.prototype.reset=function(){};
Lb.prototype.wa=function(a,b){b||this.reset();return!0};function Nb(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.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-k);p>f&&(p=f);h.pb=e-h.J+p;e=k+a.u;f-=p;g++;continue}}return Ob(Rb,e,f)}e=new z(e,p,a.u,d);Mb(e,a.K,h);a.b[g++]=e;e=k+a.u;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Sb[d]+" at "+q(b)),!0):Ob(Tb,b,c)}
function Ub(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Vb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Ic(c,b):a.b[d++].Ya(c,b)|a.b[d&a.H].Ya(0,b+1)<<8}function Wb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.H].ob(0,b+1)<<8}function Xb(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Yb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Lc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.H].$a(0,c>>8&255,b+1))}
function Zb(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ea||e.Ec){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],u=g+1;u<e.length&&e[u]===p;)u++;k[h++]=u-g;k[h++]=p;g=u}k.length<e.length&&(e=k)}c[f]=e}}return c}function $b(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 ac(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 bc(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]&&cc(a.K,b,p)):a.K&&(Eb(a.K,a,b,null,c),a.D&&cc(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function dc(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 ec(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 fc(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]&&gc(a.K,b,k)}else a.K&&(Eb(a.K,a,b,k,d),a.G&&gc(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Ob(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Rb=1,Tb=2,ic;if(Fb){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic;
function z(a,b,c,d){this.id=lc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;this.type=d||vc;this.w=d==wc;Mb(this);this.Ea=this.Ec=!1;if(c)if(Fb)this.j=new ArrayBuffer(c),this.R=new DataView(this.j,0,c),this.g=new Uint8Array(this.j,0,c),this.u=new Uint16Array(this.j,0,c>>1),this.b=new Int32Array(this.j,0,c>>2),xc(this,kc?yc:zc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;xc(this,Ac)}else xc(this)}l=z.prototype;
l.save=function(){var a,b;if(Fb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Fb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ea=!0}return!1};function xc(a,b){b||(b=Bc);Cc(a,b,void 0);Dc(a,b,void 0)}function Cc(a,b,c){c&&a.I||(a.Ya=b[0]||a.Hc,a.Ic=b[2]||a.Jc);if(c||void 0===c)a.ob=b[0]||a.Hc,a.Nb=b[2]||a.Jc}
function Dc(a,b,c){c&&a.P||(a.$a=!a.w&&b[1]||a.rb,a.Lc=!a.w&&b[3]||a.Sb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Tb=b[3]||a.Sb}l.Pa=function(a,b){b?this.P++||Dc(this,Ec,!1):this.I++||Cc(this,Ec,!1)};function Fc(a,b){b?--a.P||(a.$a=a.w?a.rb:a.qb,a.Lc=a.w?a.Sb:a.Tb):--a.I||(a.Ya=a.ob,a.Ic=a.Nb)}function Mb(a,b,c){a.K=b;a.I=a.P=0;c&&((a.I=c.I)&&Cc(a,Ec,!1),(a.P=c.P)&&Dc(a,Ec,!1))}l.Hc=function(){this.K&&Cb(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.rb=function(a,b){this.K&&Cb(this.K,129)&&this.K.message("attempt to write "+q(b)+" to invalid block %"+n(this.J),!0)};l.Jc=function(a,b){return this.Ya(a++,b++)|this.Ya(a,b)<<8};l.Sb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(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.Ea=!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.Ea=!0};l.he=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,1,c.M)&&c.ea(!0)}return this.ob(a,b)};l.le=function(a,b){if(this.K&&null!=this.J){var c=this.K;Gc(c,this.J+a,2,c.M)&&c.ea(!0)}return this.Nb(a,b)};
l.ve=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,1,d.B)&&d.ea(!0)}this.w?this.rb(0,b):this.qb(a,b,c)};l.ze=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Gc(d,this.J+a,2,d.B)&&d.ea(!0)}this.w?this.rb(0,b):this.Tb(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.R.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.Ea=!0};
l.we=function(a,b){this.g[a]=b;this.Ea=!0};l.ye=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.Ae=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.u[a>>1]=b;this.Ea=!0};var vc=0,wc=2,Sb=["NONE","RAM","ROM","VID","H/W"],lc=0,Bc=[],Ac=[z.prototype.je,z.prototype.xe,z.prototype.ne,z.prototype.Be],Ec=[z.prototype.he,z.prototype.ve,z.prototype.le,z.prototype.ze];if(Fb)var zc=[z.prototype.ge,z.prototype.ue,z.prototype.ke,z.prototype.ye],yc=[z.prototype.ie,z.prototype.we,z.prototype.me,z.prototype.Ae];
function Hc(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.F.ma=!1;this.F.Qb=!1;this.F.lb=a.autoStart;this.F.Cc=!1;this.F.Wa=!1;this.xa=this.oa=0;this.za=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);zb(this)}aa(Hc,t);l=Hc.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.K=d;for(b=0;b<Ic.length;b++)(c=this.P[Ic[b]])&&this.R.da(null,Ic[b],c);this.V=Jb(a,"ChipSet");a=Jc(a,"autoStart");null!=a&&(this.F.lb="true"==a?!0:"false"==a?!1:!!a);zb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Kc(this);if(!this.restore(a))return!1;Lc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Mc(a),a.na&&(b=a.na,a.na=null,Nc(a,b))):this.i("No debugger detected")}Oc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.F.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Fc=function(){return 0};
function Lc(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.F.Wa=0<=a.za&&0<a.na;a.F.Wa&&(a.xa=0,a.oa=a.za-a.ka)}function Pc(a,b){if(a.F.Wa){var c=!1;a.xa=a.xa+a.Fc()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Qc(a)&&(a.na=a.sa=-1,Lc(a),a.ea(),c=!0);c&&a.i(Qc(a)+" cycles: checksum="+n(a.xa))}}
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=kb(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.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.F.ma?d.ea():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Rc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Sc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Tc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Uc);a.Na=Math.floor(a.Aa/Uc*c);b||(a.ta=a.Na);a.Va=0}function Qc(a){return a.ka+a.X+a.fa-a.b}function Kc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Lc(a);Rc(a,1)}
function Rc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Sc(a,a.X);a.X=0;a.W=ib();a.ba=0;Tc(a);return d}function Vc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Wc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Xc(a))}function Xc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Bb(this,!0)){if(!this.F.ma){Rc(this);this.R&&this.R.start(this.W,Qc(this));this.F.ma=!0;this.F.Qb=!0;this.V&&this.V.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Yc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Tc(this,!0);this.Da=0;this.Ma=ib();this.ba&&(a=this.Ma-this.ba,a>this.jb&&(this.W+=a,this.W>this.Ma&&(this.W=this.Ma)));try{do{for(var c,d=this.F.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Xc(this,!0);
this.Da+=c;this.X+=c;Pc(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.Na;++this.kb>=Zc&&(this.R&&Yc(this.R),this.kb=0);break}}while(this.F.ma)}catch(k){this.ea();Oc(this);this.R&&this.R.stop(ib(),Qc(this));Bb(this,!1);xb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=ib();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ma;if(f=this.ba-this.W)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Rc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.W-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Oc(this),this.R&&this.R.stop(ib(),Qc(this))};l.Eb=function(){return 0};l.ea=function(a){Ab(this,!0);Xc(this);Sc(this,this.X);this.X=0;if(this.F.ma){this.F.ma=!1;this.V&&this.V.stop();var b=this.P.run;b&&(b.textContent="Run")}this.F.complete=a};function Oc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)$c(c.A[d],b);Yc(a.R,b)}}var Uc=30,Zc=15,Ic=["power","reset"];
function ad(a){var b=+a.model||8080;Hc.call(this,a,1E6);this.xb=b;this.gb=bd;Kc(this);this.F.complete=this.F.Ad=!1;this.ib=0;this.La=[];this.hb=0;cd(this)}aa(ad,Hc);function pd(a,b){a.La.push(b)}l=ad.prototype;l.reset=function(){this.F.ma&&this.ea();cd(this);Kc(this);this.F.error=!1;Hc.prototype.reset.call(this)};function cd(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;A(a,a.hb);qd(a,0);a.S=0}function rd(a,b){a.hb=b;A(a,b)}
l.Fc=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+sd(this)|0};l.save=function(){var a=new td(this);a.set(0,[this.g,this.u,this.A,this.B,this.C,this.D,this.G,this.M,this.j,sd(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,Zb(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;A(this,b[8]);qd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Rc(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.ib++;a=!0;break;default:a=Hc.prototype.da.call(this,a,b,c)}return a};function ud(a){return a.u<<8|a.A}function vd(a,b){a.u=b>>8&255;a.A=b&255}function wd(a){return a.B<<8|a.C}function xd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.G}
function yd(a,b){a.D=b>>8&255;a.G=b&255}function A(a,b){a.j=b&65535}function zd(a){return a.H&256?1:0}function Ad(a,b){a.H=a.H&255|b}function Bd(a){return Gb[a.L&255]?4:0}function Cd(a){return(a.L^a.O)&16?16:0}function Dd(a){return a.H&255?0:64}function Ed(a){return a.L&128?128:0}function sd(a){return a.N&-214|Ed(a)|Dd(a)|Cd(a)|Bd(a)|zd(a)}function qd(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 Fd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b)&255}function Gd(a,b){a.O=a.g^b;return a.L=(a.H=a.g+b+(a.H&256?1:0))&255}function Hd(a,b){a.H=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.H}function Id(a,b){a.O=b^255;b=a.L=b+255&255;a.H=a.H&-256|b;return b}function Jd(a,b){a.O=b;b=a.L=b+1&255;a.H=a.H&-256|b;return b}function Kd(a,b){return a.L=a.H=a.O=a.g|b}function Ld(a,b){b^=255;a.O=a.g^b;return a.L=(a.H=a.g+b+1^256)&255}
function Md(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 Nd(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].Ya(b&a.j,b)}function Od(a,b,c){a=a.I;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Vb(a.I,a.j);A(a,a.j+2);return b}function Pd(a){var b=Vb(a.I,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Yb(a.I,a.M,b)}
function Qd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Xc(a),!1):!0}function Rd(a,b){a.S|=1<<b;a.N&512&&Xc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(xb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.F.ma||a.F.Cc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.F.complete=!0;var b=this.F.Ad=this.K&&Sd(this.K),c=a?this.F.Qb?0:1:-1;this.F.Qb=!1;this.fa=this.b=a;if(Qd(this)){do{if(b){if(Td(this.K,this.j,c)){this.ea();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.F.complete?this.fa-this.b:void 0===this.F.complete?0:-1};Ua(function(){for(var a=qb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ad(d);pb(d,c)}});function Ud(){this.b-=4}function Vd(){A(this,G(this));this.b-=10}
function Wd(){A(this,Pd(this));this.b-=10}function Xd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var bd=[Ud,function(){vd(this,G(this));this.b-=10},function(){Od(this,ud(this),this.g);this.b-=7},function(){vd(this,ud(this)+1);this.b-=5},function(){this.u=Jd(this,this.u);this.b-=5},function(){this.u=Id(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;Ad(this,a&256);this.b-=4},Ud,function(){var a;yd(this,a=D(this)+ud(this));Ad(this,a>>8&256);this.b-=10},function(){this.g=E(this,ud(this));this.b-=7},function(){vd(this,ud(this)-1);this.b-=
5},function(){this.A=Jd(this,this.A);this.b-=5},function(){this.A=Id(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;Ad(this,a);this.b-=4},Ud,function(){xd(this,G(this));this.b-=10},function(){Od(this,wd(this),this.g);this.b-=7},function(){xd(this,wd(this)+1);this.b-=5},function(){this.B=Jd(this,this.B);this.b-=5},function(){this.B=Id(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
zd(this);Ad(this,a&256);this.b-=4},Ud,function(){var a;yd(this,a=D(this)+wd(this));Ad(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.C=Jd(this,this.C);this.b-=5},function(){this.C=Id(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(zd(this)<<8|this.g)>>1;Ad(this,a&256);this.b-=4},Ud,function(){yd(this,G(this));this.b-=10},function(){var a=G(this);Yb(this.I,a,D(this));
this.b-=16},function(){yd(this,D(this)+1);this.b-=5},function(){this.D=Jd(this,this.D);this.b-=5},function(){this.D=Id(this,this.D);this.b-=5},function(){this.D=F(this);this.b-=7},function(){var a=0,b=zd(this);if(Cd(this)||9<(this.g&15))a|=6;if(b||154<=this.g)a|=96,b=1;this.g=Fd(this,a);Ad(this,b?256:0);this.b-=4},Ud,function(){var a;yd(this,a=D(this)+D(this));Ad(this,a>>8&256);this.b-=10},function(){var a;a=G(this);a=Vb(this.I,a);yd(this,a);this.b-=16},function(){yd(this,D(this)-1);this.b-=5},function(){this.G=
Jd(this,this.G);this.b-=5},function(){this.G=Id(this,this.G);this.b-=5},function(){this.G=F(this);this.b-=7},function(){this.g=~this.g&255;this.b-=4},Ud,function(){this.M=G(this)&65535;this.b-=10},function(){Od(this,G(this),this.g);this.b-=13},function(){this.M=this.M+1&65535;this.b-=5},function(){var a=D(this);Od(this,a,Jd(this,E(this,a)));this.b-=10},function(){var a=D(this);Od(this,a,Id(this,E(this,a)));this.b-=10},function(){Od(this,D(this),F(this));this.b-=10},function(){this.H|=256;this.b-=
4},Ud,function(){var a;yd(this,a=D(this)+this.M);Ad(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=Jd(this,this.g);this.b-=5},function(){this.g=Id(this,this.g);this.b-=5},function(){this.g=F(this);this.b-=7},function(){Ad(this,zd(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(){Od(this,D(this),this.u);this.b-=7},function(){Od(this,D(this),this.A);this.b-=7},function(){Od(this,D(this),this.B);this.b-=7},function(){Od(this,D(this),this.C);this.b-=7},function(){Od(this,D(this),this.D);this.b-=7},function(){Od(this,D(this),this.G);this.b-=7},function(){var a=this.j-1;if(this.La.length)for(var b=0;b<this.La.length;b++)if(this.La[b](a))return;this.b-=7;this.S|=256;Xc(this);this.K&&Cb(this,-2147483648)?(A(this,a),this.K.ea()):this.N&512||(this.K&&A(this,a),
this.ea())},function(){Od(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=Fd(this,this.u);this.b-=4},function(){this.g=Fd(this,this.A);this.b-=4},function(){this.g=Fd(this,this.B);this.b-=4},function(){this.g=Fd(this,
this.C);this.b-=4},function(){this.g=Fd(this,this.D);this.b-=4},function(){this.g=Fd(this,this.G);this.b-=4},function(){this.g=Fd(this,E(this,D(this)));this.b-=7},function(){this.g=Fd(this,this.g);this.b-=4},function(){this.g=Gd(this,this.u);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,this.C);this.b-=4},function(){this.g=Gd(this,this.D);this.b-=4},function(){this.g=Gd(this,this.G);this.b-=4},function(){this.g=Gd(this,
E(this,D(this)));this.b-=7},function(){this.g=Gd(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.D);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=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(){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=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=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.D);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(){Ld(this,this.u);this.b-=4},function(){Ld(this,this.A);this.b-=4},function(){Ld(this,this.B);this.b-=
4},function(){Ld(this,this.C);this.b-=4},function(){Ld(this,this.D);this.b-=4},function(){Ld(this,this.G);this.b-=4},function(){Ld(this,E(this,D(this)));this.b-=7},function(){Ld(this,this.g);this.b-=4},function(){Dd(this)||(A(this,Pd(this)),this.b-=6);this.b-=5},function(){vd(this,Pd(this));this.b-=10},function(){var a=G(this);Dd(this)||A(this,a);this.b-=10},Vd,function(){var a=G(this);Dd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,ud(this));this.b-=11},function(){this.g=
Fd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,0);this.b-=11},function(){Dd(this)&&(A(this,Pd(this)),this.b-=6);this.b-=5},Wd,function(){var a=G(this);Dd(this)&&A(this,a);this.b-=10},Vd,function(){var a=G(this);Dd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){this.g=Gd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,8);this.b-=11},function(){zd(this)||(A(this,Pd(this)),this.b-=6);this.b-=5},function(){xd(this,Pd(this));this.b-=10},function(){var a=G(this);
zd(this)||A(this,a);this.b-=10},function(){var a=F(this);fc(this.I,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);zd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,wd(this));this.b-=11},function(){this.g=Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,16);this.b-=11},function(){zd(this)&&(A(this,Pd(this)),this.b-=6);this.b-=5},Wd,function(){var a=G(this);zd(this)&&A(this,a);this.b-=10},function(){var a=F(this);this.g=bc(this.I,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);zd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){this.g=Md(this,F(this));this.b-=7},function(){H(this,this.j);A(this,24);this.b-=11},function(){Bd(this)||(A(this,Pd(this)),this.b-=6);this.b-=5},function(){yd(this,Pd(this));this.b-=10},function(){var a=G(this);Bd(this)||A(this,a);this.b-=10},function(){var a=Pd(this);H(this,D(this));yd(this,a);this.b-=18},function(){var a=G(this);Bd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=Hd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){Bd(this)&&(A(this,Pd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);Bd(this)&&A(this,a);this.b-=10},function(){var a=D(this);yd(this,wd(this));xd(this,a);this.b-=5},function(){var a=G(this);Bd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){this.g=Nd(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){Ed(this)||(A(this,Pd(this)),this.b-=6);this.b-=5},function(){var a=Pd(this);qd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Ed(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Ed(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,sd(this)&255|this.g<<8);this.b-=11},function(){this.g=Kd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){Ed(this)&&
(A(this,Pd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Ed(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Qd(this)},function(){var a=G(this);Ed(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Xd,function(){Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Yd(a){t.call(this,"ChipSet",a,32768);var b=a.model;b&&!Zd[b]&&Ya("Unrecognized ChipSet model: "+b);this.g=Zd[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);zb(this)}aa(Yd,t);l=Yd.prototype;l.da=function(){return!1};
l.Ga=function(a,b,c,d){this.I=b;this.w=c;this.K=d;this.R=a;this.B=Jb(a,"Keyboard");this.C=Jb(a,"SerialPort");this.video=Jb(a,"Video");ac(b,this,this.g.Bb);ec(b,this,this.g.Cb);if(d){var e=this;$d(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.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=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 td(this);switch(this.g.pa){case ae.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.V,this.D]),a.set(1,[this.G,this.H]),a.set(2,[this.u,this.O,this.X,this.W]),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 ae.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.V=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.W=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;x(this,a,null,b,"STATUS0",c,!0);return c};
l.Ld=function(a,b){var c=this.A;x(this,a,null,b,"STATUS1",c,!0);return c};l.Md=function(a,b){var c=this.fa;x(this,a,null,b,"STATUS2",c,!0);return c};l.Jd=function(a,b){var c=this.N>>8-this.T&255;x(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Xd=function(a,b,c){x(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Zd=function(a,b,c){x(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Yd=function(a,b,c){x(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.$d=function(a,b,c){x(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.ae=function(a,b,c){x(this,a,b,c,"WATCHDOG",null,!0)};function be(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.ya.kc;if((Qc(this.w)&64)<<1&&(c|=J.ya.kc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ja.od:break;case J.Ba.Ja.Mc:this.M=this.M<<1|d;break;case J.Ba.Ja.Sc:d=be(this);this.j[d]=J.Ba.vb;Db(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ja.Nc:this.b=this.b<<1|d;break;case J.Ba.Ja.sd:d=be(this);e=this.b&J.Ba.vb;this.j[d]=e;Db(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ja.md:d=be(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Db(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ja.nd:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Db(this,"doNVRCommand(): unrecognized command "+pa(e))}}c&=~J.ya.lc;this.S&&(c|=J.ya.lc);c&=~J.ya.ec;if(d=this.B){d=this.B;if(e=d.A)e=d.w,e=Qc(d.w)>=d.G+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.ya.ec);c&=~J.ya.tc;this.C&&this.C.ia&ce&&(c|=J.ya.tc);this.D=c;x(this,a,null,b,"FLAGS",c);return c};
l.be=function(a,b,c){x(this,a,b,c,"BRIGHTNESS");this.V=b};l.ee=function(a,b,c){x(this,a,b,c,"NVR.LATCH");this.L=b};l.de=function(a,b,c){x(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,Db(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?$c(b,!0):b.xa=!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.W=a}};
l.ce=function(a,b,c){x(this,a,b,c,"DC011");b&J.Ka.ld?(b&=J.Ka.pc,this.H!=b&&(this.H=b,this.video&&(a=this.video,b=this.H==J.Ka.pc?50:60,Db(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ka.Xb,this.G!=b&&(this.G=b,this.video&&(a=this.G==J.Ka.Xb?132:80,b=this.video,Db(b,"updateDimensions("+a+","+(80<a&&this.D&J.ya.jc?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,de(b)&&ee(b))))};
var ae={pa:1978.1,qd:{qa:0,hf:1,mf:16,uf:32,Df:64,Cf:128,bb:14},Oa:{qa:1,Qc:1,kd:2,fd:4,gd:16,hd:32,jd:64,bb:8},rd:{qa:2,gf:3,Lf:4,jf:8,yf:16,zf:32,Af:64,kf:128,bb:0},Hf:{qa:3},Ff:{qa:2,vf:7},Jf:{qa:3,Mf:1,If:2,Bf:4,sf:8,lf:16,Ce:32},Gf:{qa:4},Kf:{qa:5,nf:1,pf:2,qf:4,rf:8,Nf:16}},J={pa:100,ya:{qa:66,tc:1,jc:2,ed:4,xf:8,wf:16,lc:32,kc:64,ec:128},Pc:{qa:66,INIT:0},Ka:{qa:194,Fe:0,Xb:16,ld:32,pc:48,Vc:0,Wc:32},ub:{qa:162,Ef:0,Yc:0,Uc:0,Xc:0,Tc:0},Ba:{tf:{qa:98},Ja:{Nc:0,Mc:1,nd:2,sd:4,Sc:5,md:6,od:7},
vb:16383}},Zd={SI1978:ae,VT100:J};ae.INIT=[[ae.qd.bb,ae.Oa.bb,ae.rd.bb,0,0,0,0]];
J.INIT=[[J.Pc.INIT,J.ya.jc|J.ya.ed],[J.Ka.Vc,J.Ka.Wc],[J.ub.Yc,J.ub.Uc,J.ub.Xc,J.ub.Tc],[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]]];ae.Bb={0:Yd.prototype.Kd,1:Yd.prototype.Ld,2:Yd.prototype.Md,3:Yd.prototype.Jd};
ae.Cb={2:Yd.prototype.Xd,3:Yd.prototype.Zd,4:Yd.prototype.Yd,5:Yd.prototype.$d,6:Yd.prototype.ae};J.Bb={66:Yd.prototype.Nd};J.Cb={66:Yd.prototype.be,98:Yd.prototype.ee,162:Yd.prototype.de,194:Yd.prototype.ce};Ua(function(){for(var a=qb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Yd(d);pb(d,c)}});
function fe(a){t.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=qa(this.j);if(this.j){a=this.j;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){ge(c,a,b,f)})}}aa(fe,t);fe.prototype.Ga=function(a,b,c,d){this.I=b;this.w=c;this.K=d;he(this)};
fe.prototype.wa=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var u=f,k=[k>>>0,g],v=Ca(u,k,a.Bc);0>v&&u.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.C.push({Pf:b,J:c,Rd:d,ra:e,Ac:f})}delete this.ra}return!0};fe.prototype.va=function(){return!0};
function ge(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{gb(a.eb,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]=ma(b[e],16);he(a)}}
function he(a){if(!yb(a))if(!a.j)zb(a);else if(a.b&&a.I){a.g||(a.g=a.b.length);if(a.b.length!=a.g)xb(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(Nb(a.I,b,a.g,wc)){var c;for(c=0;c<a.b.length;c++)Xb(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}}zb(a)}}Ua(function(){for(var a=qb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new fe(d);pb(d,c)}});
function ie(a){t.call(this,"RAM",a);this.ra=this.g=null;this.u=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ta()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(gb(c.eb,a,b),(a=Ga(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,je(c))})}}aa(ie,t);
ie.prototype.Ga=function(a,b,c,d){this.I=b;this.w=c;this.K=d;je(this)};ie.prototype.wa=function(){return!0};ie.prototype.va=function(){return!0};
function je(a){!a.j&&a.A&&Nb(a.I,a.u,a.A,1)&&(a.j=!0);if(!yb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.I)return;var b=a.u;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Xb(a.I,b+c,a.g[c]);if(null!==a.Ia){if(a.Ia==ke){for(c=0;c<le.length;c++)Xb(a.I,le[c],118);pd(a.w,function(a){return function(b){if(0<=le.indexOf(b)){var c=!1,d=a.w,e=a.K;if(b==me)switch(c=!0,d.A){case ne:oe(a,String.fromCharCode(d.C));break;case pe:for(var k=wd(d),p="",u=255;u--;){var v=E(a.w,k++);if(36==v)break;
p+=String.fromCharCode(v)}oe(a,p);break;default:c=!1}c?Wd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}rd(a.w,a.Ia)}delete a.g}zb(a)}}ie.prototype.reset=function(){};function oe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var me=5,ne=2,pe=9,ke=256,le=[0,me];Ua(function(){for(var a=qb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new ie(d);pb(d,c)}});
function qe(a){t.call(this,"Keyboard",a,65536);(a=a.model)&&!Me[a]&&Ya("Unrecognized Keyboard8080 model: "+a);this.b=Me[a]||{};this.reset();zb(this)}aa(qe,t);l=qe.prototype;
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Oa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Ne(d,16,!0,!0):Ne(d,16,!1),Ne(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Oe(d,a,!0)},c.onkeyup=function(a){return Oe(d,a,!1)}):(c.onkeydown=function(a){return Pe(d,a,!0)},
c.onkeyup=function(a){return Pe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Qe|Re)||(d.g|=Re,Ne(d,20,!0),Se(d)):a>=m.zc&&a<=m.z&&d.g&Re&&(d.g&=~Re,Ne(d,20,!1),Se(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Te(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ue:20==b&&(e=Re);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";Ve(a,b,d)}Ne(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.w=c;this.K=d;var e=this;this.L=Vc(this.w,function(){We(e)});this.V=Jb(a,"ChipSet");this.C=Jb(a,"SerialPort");ac(b,this,this.b.Bb);ec(b,this,this.b.Cb)};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=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 td(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 Xe.pa:return!0;case K.pa:return this.D=b[0],Se(this,this.D&K.Ca.fc),this.B=b[1],this.A=b[2],this.G=b[3],this.u=b[4],!0}return!1};function Se(a,b){var c;null!=b?a.H=b:b=a.H;for(var d in a.b.fb)if(c="led-"+d,c=a.P[c]){var e=a.b.fb[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+n(16711680,6):"#000000"}if(c=a.P["led-caps-lock"])c.style.backgroundColor=a.g&Re?"#"+n(65280,6):"#000000"}
function Ve(a,b,c,d){var e=0;switch(b){case 16:e=d?Ye:Ze;break;case 17:e=d?$e:Ue;break;case 18:e=d?af:bf;break;case 91:e=d?cf:df;break;case 20:e=Re,c=!(a.g&e)}e&&(a.g=c?a.g|e:a.g&~e);return c}
function Pe(a,b,c){var d=!0,e=b.keyCode,e=la[e]||e;c=Ve(a,e,c,2==b.location);var f;a:if(e=a.b.Ub[e]||e,a.b.Sa[e])f=e;else{for(f in a.b.Ua)if(a.b.Ua[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.g&(ef|ff)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.g=c?a.g|ff:a.g&~ff)),d=Ne(a,f,c),(!(f>=m.ab&&f<=m.wb)||a.g|gf)&&b.preventDefault&&b.preventDefault());return d}
function Oe(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.b.Sa[e],g;if(g=f){a:{for(var h in a.b.sb)if(a.b.sb[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Ne(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
function Ne(a,b,c,d){var e;a:{for(e=0;e<a.j.length;e++)if(a.j[e].Pb==b)break a;e=-1}if(c)0>e?a.j.push({Pb:b,Mb:Date.now(),yb:d||!1}):(a.j[e].Mb=Date.now(),a.j[e].yb=d||!1),d&&We(a);else if(0<=e){if(!a.j[e].yb&&(d=a.j[e].Mb)&&Date.now()-d<hf)return a.j[e].yb=!0,We(a),!0;a.j.splice(e,1)}if(a.V){d=0;switch(b){case "1p":d=ae.Oa.fd;break;case "2p":d=ae.Oa.kd;break;case "coin":d=ae.Oa.Qc;break;case "left":d=ae.Oa.hd;break;case "right":d=ae.Oa.jd;break;case "fire":d=ae.Oa.gd}d&&(a=a.V,b=d,a.A&=~b,c&&(a.A|=
b))}return!0}function We(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].yb){var d=a.j[b].Pb,e=hf-(Date.now()-a.j[b].Mb);if(0<e){if(0>c||c>e)c=e}else{Ne(a,d,!1);b=0;continue}}b++}0<=c&&Wc(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.Sa[c.Pb],c&128&&(c&=127)):(this.u=-1,c=K.Zc),this.B=c,Rd(this.w,1));x(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.fe=function(a,b,c){x(this,a,b,c,"KBDUART.STATUS");this.D=b;this.A=!0;this.G=Qc(this.w);Se(this,b&K.Ca.fc);b&K.Ca.pd&&(this.u=0,Rd(this.w,1))};var Ye=1,Ze=2,Qe=3,$e=4,Ue=8,gf=12,af=16,bf=32,ef=48,cf=64,df=128,Re=512,ff=4096,hf=50,jf={};jf[m.ab]=37;jf[m.Fb]=39;jf[m.Hb]=32;
var Xe={pa:1978.1,Sa:{},sb:{},Ub:jf,fb:{},Ua:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},M={},N={},K={pa:100,Sa:(M[8]=3,M[m.nc]=5,M[m.mc]=6,M[m.yc]=7,M[m.rc]=8,M[m.vc]=9,M[m.Q]=10,M[39]=16,M[221]=20,M[219]=21,M[m.bc]=22,M[m.sc]=23,M[m.oc]=24,M[m.E]=25,M[49]=26,M[37]=32,M[40]=34,M[117]=35,M[19]=35,M[192]=36,M[189]=37,M[57]=38,M[55]=39,M[52]=40,M[51]=41,M[27]=42,M[38]=48,M[114]=49,M[112]=50,M[46]=51,M[187]=52,M[48]=53,M[56]=54,M[54]=55,M[53]=56,M[50]=57,M[9]=58,M[103]=64,M[115]=65,M[113]=66,
M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.dc]=71,M[m.$b]=72,M[m.Zb]=73,M[m.ab]=74,M[104]=80,M[2013]=81,M[98]=82,M[97]=83,M[222]=85,M[186]=86,M[m.cc]=87,M[m.ac]=88,M[m.Fb]=89,M[m.qc]=90,M[110]=96,M[116]=97,M[101]=98,M[100]=99,M[13]=100,M[190]=101,M[188]=102,M[m.ic]=103,M[m.Vb]=104,M[m.xc]=105,M[119]=106,M[105]=112,M[99]=113,M[102]=114,M[109]=115,M[191]=117,M[m.hc]=118,M[m[" "]]=119,M[m.uc]=120,M[m.Wb]=121,M[m.wb]=122,M[120]=123,M[17]=124,M[16]=125,M[20]=126,M),sb:(N[m.p]=5,N[m.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.zc]=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.nc]=133,N[m.mc]=134,N[m.yc]=135,N[m.rc]=136,N[m.vc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.bc]=150,N[m.sc]=151,N[m.oc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.dc]=199,N[m.$b]=200,N[m.Zb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.cc]=215,N[m.ac]=216,N[m.Fb]=217,N[m.qc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.ic]=231,N[m.Vb]=232,N[m.xc]=233,N[m["?"]]=245,N[m.hc]=246,N[m.uc]=248,N[m.Wb]=249,N[m.wb]=250,N),Ub:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Oc:{qa:130,INIT:127},Ca:{qa:130,cd:1,bd:2,ad:4,$c:8,dd:16,gc:32,fc:63,pd:64,Ee:128,INIT:0},Zc:127};K.fb={l4:K.Ca.cd,l3:K.Ca.bd,l2:K.Ca.ad,l1:K.Ca.$c,locked:K.Ca.dd,local:K.Ca.gc,online:~K.Ca.gc,"caps-lock":Re};var Me={SI1978:Xe,VT100:K};
K.INIT=[[K.Ca.INIT,K.Oc.INIT,!1,0,-1]];K.Bb={130:qe.prototype.Od};K.Cb={130:qe.prototype.fe};Ua(function(){for(var a=qb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qe(d);pb(d,c)}});
function kf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Oa("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&&lf[h.toUpperCase()]||mf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Na=!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.kb=a.refreshRate||60;this.G=b;this.j=c;this.W=(this.Dd=d)||b||null;this.Db=this.M;this.ud=this.H;this.La=this.M/this.O|0;this.Ma=this.H/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Pa("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.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){nf(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(){nf(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=ra(this.S)&&(this.S=ta()+"/api/v1/dump?file="+this.S+"&format=bytes"),Fa(this.S,null,!0,function(a,b,c){of(f,a,b,c)});this.Aa={}}aa(kf,t);
function de(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,!Nb(a.I,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,pf(a,a.L>>1)):pf(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+qf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==rf&&(a.U[a.X+sf]=[255,255,0,255],a.U[a.X+tf]=[0,255,0,255]);a.Y==uf&&(a.jb=60,a.za=!1,a.fa=Array(a.O));
return!0}l=kf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;de(this);if(this.B=Jb(a,"Keyboard")){for(var e in this.Aa)this.B.da("led",e,this.Aa[e]);this.G&&this.B.da(this.Dd?"textarea":"canvas","screen",this.W)}var f=this;this.xb=Vc(this.w,function(){$c(f)});Wc(this.w,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||zb(this)};
function of(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{gb(a.eb,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,ee(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)&&zb(a)}}
function ee(a){a.ba&&(a.Na=a.Y==uf,a.T[vf]=[wf(a,a.ga,a.ca),wf(a,a.ga,a.ca,a.za)],a.T[xf]=[wf(a,2*a.ga,a.ca),wf(a,2*a.ga,a.ca,a.za)],a.T[yf]=a.T[zf]=[wf(a,2*a.ga,2*a.ca),wf(a,2*a.ga,2*a.ca,a.za)])}
function wf(a,b,c,d){var e=8>=a.Da?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),u=0;u<g;u++){for(var v=0,B=v;v<a.ca;v++)for(var y=u*e+(f+v&e-1),y=d&&8==v?255:a.ba[y],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=y&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Af(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new td(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.H;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(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.Xa();a=!0}this.W&&this.W.focus()}return a};
function nf(a,b){!b&&a.b&&(a.Ta?a.G.style.width=a.G.style.height="":a.b.style.width=a.b.style.height="");Db(a,"notifyFullScreen("+b+")")}function pf(a,b){a.gb=b;a.V=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Af(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==rf&&(208<=c&&236>c?e=a.X+sf:28<=c&&72>c&&(e=a.X+tf));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 $c(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Rd(a.w,2),c=!1):Rd(a.w,1):Rd(a.w,4));if(c&&a.V&&a.L){for(var d=a.I,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Ec=!0),e-=d.u,g++;f&&(c=!1)}Wc(a.w,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case uf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,B=a.O;for(v!=vf&&(B>>=1);;){var y=Ub(a.I,u++);if((y&Bf)==Bf){var w=Ub(a.I,u++),d=w&Cf,c=(w&Df)<<8|Ub(a.I,u),c=c+(w&Ef?
Ff:Gf);break}if(p<B)a.fa[p++]=y;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.V&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){y=a.fa[B];if(!u||y!==a.A[g]){a.A[k=g]=y;var w=a,C=a.ta,T=y&127;if(y=w.T[v][y&128?1:0]){var za=(T&15)*y.ga,T=(T>>4)*y.ca,L,ja,ua,na,Ma=y.ga,hc=y.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.La,ja=e*w.Ma,ua=w.La,na=w.Ma);y.ga>w.ga&&(L*=2,ua*=2);y.ca>w.ca&&(v==zf&&(T+=w.ca),hc=w.ca);C?C.drawImage(y.canvas,za,T,Ma,hc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(y.canvas,
za,T,Ma,hc,L,ja,ua,na))}h++}g++}e++}}a.V=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.ud)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;B=(1<<u)-1;a.zd&&(u=-u,v=16+u);for(;e<f;){w=Wb(a.I,e);if(a.V&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(y=a.hb;y--;)za=w>>C&B,Af(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.V=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.H))}}var sf=0,tf=1,qf=2,mf=0,rf=1,uf=2,lf={SI1978:rf,VT100:uf},vf=96,xf=64,yf=32,zf=0,Bf=127,Df=15,Ef=16,Cf=96,Ff=8192,Gf=16384;
Ua(function(){for(var a=qb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=ob(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<=Ha().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||Pa("aspect"));f&&.3<=f&&3.33>=f&&(Ta("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");Oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new kf(d,e,g,f,c);pb(d,c)}});
function Hf(a){t.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.W=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=If;b&&(void 0===c&&(c="Panel"),(c=mb(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.H=null;this.exports={connect:this.Gc,receiveData:this.Ob,receiveStatus:this.oe}}
aa(Hf,t);l=Hf.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case If: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),Jf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Jf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.I=b;this.w=c;this.K=d;var e=this;this.Y=Vc(this.w,function(){e.Ob()});this.Z=Vc(this.w,function(){Te(e)});this.V=Jb(a,"ChipSet");ac(b,this,Kf,this.U);ec(b,this,Lf,this.U);zb(this)};
l.Gc=function(a){if(!this.b){var b=Jc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.cb)return;c=ya(c[1]);if(this.b=lb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.H=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Gc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Mf(this)};l.save=function(){var a=new td(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 Mf(this,a[0])};
function Mf(a,b){var c=0;b||(b=Nf);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 Of(a,b){var c=a.L&b;b&15||(c>>=4);b=Pf[c];c=((a.B&Qf)>>2)+6;a.B&Rf&&c++;c+=((a.B&Sf)>>6)+1>>1;return 1E3/Math.round(b/c)}function Jf(a,b){Db(a,"receiveByte("+pa(b)+"), status="+pa(a.ia));return a.N||a.ia&Tf?!1:(a.M=b,a.ia|=Tf,Rd(a.w,a.X),!0)}
l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCode(a));this.A&&(Jf(this,this.A.charCodeAt(0))&&(this.A=this.A.substr(1)),this.A&&this.w&&Wc(this.w,this.Y,Of(this,Uf)));return!0};l.oe=function(a){this.ia&=~Vf;a&64&&(this.ia|=Vf)};function Te(a,b){a.ia=a.ia|ce|Wf;b&&a.Ra&&a.Ra.call(a.b,b)}l.Id=function(a,b){var c=this.M;x(this,a,null,b,"DATA",c);this.ia&=~Tf;return c};l.Hd=function(a,b){var c=this.ia;x(this,a,null,b,"STATUS",c);return c};
l.Wd=function(a,b,c){x(this,a,b,c,"DATA");this.O=b;this.ia&=~(ce|Wf);Db(this,"transmitByte("+pa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.u&&this.u--;else{var d;13!=b&&10!=b&&(d=Aa[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.W||8,c=b-this.u%b,this.W&&(a=xa("",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&&Wc(this.w,this.Z,Of(this,Xf))};l.Vd=function(a,b,c){x(this,a,b,c,"CONTROL");this.G?(this.H&&(b^this.C)&(Yf|Zf)&&(a=0,this.D?(a|=b&Yf?32:0,a|=b&Zf?320:0):(a|=b&Yf?16:0,a|=b&Zf?1048576:0),this.H.call(this.b,a)),this.C=b,this.C&$f&&(this.G=!1)):(this.B=b,this.G=!0)};l.Ud=function(a,b,c){x(this,a,b,c,"BAUDRATES");this.L=b};
var Qf=12,Rf=16,Sf=192,Zf=2,Yf=32,$f=64,ce=1,Tf=2,Wf=4,Vf=128,Uf=15,Xf=240,Pf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Nf=[!1,0,0,133,142,39,238],If="buffer",Kf={0:Hf.prototype.Id,1:Hf.prototype.Hd},Lf={0:Hf.prototype.Wd,1:Hf.prototype.Vd,2:Hf.prototype.Ud};Ua(function(){for(var a=qb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hf(d);pb(d,c)}});
function ag(a){t.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(ag,t);ag.prototype.Kb=function(){return-1};ag.prototype.Lb=function(){};
ag.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.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(ya(a.substring(d,f))),d=f+1}}return b};
function bg(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 cg(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=bg(e,18,!0)*Math.pow(2,18)+bg(f,18,!0);break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=bg(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(bg(e))}return!0}
function dg(a,b,c,d,e,f){var g,h,k,p=!1,u=0,v=[],B=[],y=a.u;for(a.u=e;c<d;){var w;h=b[c++].trim();k=c<d?b[c++]:"";if(h)w=eg(a,h,null,f,u);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=dg(a,b,w,c-1,a.u,f);null!=w&&u&&(w=fg(w,u));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(!(u&-1073741824)){if("+"==k)continue;if("-"==k){u=u<<2|1;continue}if("~"==
k||"^-"==k){u=u<<2|2;continue}if("^L"==k){u=u<<2|3;continue}}p=!0;break}if(void 0===w)if(f)f.push(h),w=0;else{p=!0;f=[];break}v.push(bg(w));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{p=!0;break}if(!k)break;u="<"==a.U[0]?gg:hg;if(!u[k]){p=!0;break}B.length&&u[k]<=u[B[B.length-1]]&&cg(v,B,1);B.push(k);a.u="^_"==k?10:e;u=0}if(p||!cg(v,B)||1!=v.length)p=!0;p?f||a.i("parse error ("+(h||k)+")"):g=v.pop();a.u=y;return g}
function ig(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=bg(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)+jg(a,g,-1)+b.substr(h)}return b}
function kg(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=ig(a,b,'"',7,5);if(!b)return d;b=ig(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=dg(a,b,0,b.length,a.u,c);void 0!==d&&e&&lg(a,null,d)}return d}
function mg(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=kg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?jg(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 fg(a,b){for(;b;){switch(b&3){case 1:a=-bg(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 eg(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.Kb(b);if(0<=f)f=a.Lb(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=kg(a,h,d),void 0!==g?f+=g:(d||a.i("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=ma(b,1<b.length||10<a.u?a.u:10);null!=f?f=bg(fg(f,e)):d||a.i("invalid "+(c||"value")+": "+b)}else d||a.i("missing "+(c||"value"));return f}
function lg(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.u?jg(a,c,32,8,1)+" "+c+".":jg(a,c,32,16,1)+" "+jg(a,c,32,8,1)+" "+jg(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.i((null!=b?b+": ":"")+d);return e}function ng(a,b){var c=0;if(a.A){if(b)return lg(a,b,a.A[b]&&a.A[b].value);b=Object.keys(a.A);b.sort();for(var d=0;d<b.length;d++)lg(a,b[d],a.A[b[d]].value),c++}return 0<c}
function jg(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=oa(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=oa(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=oa(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 hg={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},gg={",,":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 og(a){ag.call(this,a);this.style=pg;this.L=qg();this.sa=qg();this.T=qg();this.C=[];this.j=this.M=this.B=[];rg(this);this.X=0;sg(this);this.ka={};tg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Nc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Nc(b,a)})}aa(og,ag);l=og.prototype;
l.Ga=function(a,b,c,d){this.I=b;this.w=c;this.R=a;(a=Jc(a,"messages"))&&tg(this,a);this.oa=ug;$d(this,64,function(a){a:{var b=d.I.b,c=a[0],e=a=0,k=b.length;if(c){a=vg(wg(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 u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Sb[c],u&&d.i(n(u.id)+" %"+n(e<<d.I.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
q(u.size)+" "+p),c!=vc&&(c=-1),p=0);a+=d.I.u;e++}}});zb(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.W=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Nc(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,Sa(c,function(){if(d.W){var a=d.W.value;d.W.value=
"";Nc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Sa(c,function(a){var b=!1;Ab(d,!0)||(Bb(d,!0),b=xg(d,a?1:0),Bb(d,!1));return b}),!0}return!1};l.Za=function(){this.W&&this.W.focus()};function vg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ha=function(a,b){var c=255,d=vg(a);-1!==d&&(c=Ub(this.I,d),b&&yg(a,b));return c};l.Gb=function(a,b){var c=65535,d=vg(a);-1!==d&&(c=Wb(this.I,d),b&&yg(a,b));return c};l.Yb=function(a,b,c){var d=vg(a);-1!==d&&(Xb(this.I,d,b),c&&yg(a,c),Oc(this.w,!0))};
l.Rc=function(a,b,c){var d=vg(a);if(-1!==d){var e=this.I,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Tb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.H].qb(0,b>>8&255,d+1));c&&yg(a,c);Oc(this.w,!0)}};function qg(a){return{J:a,Fa:!1}}function Wg(a){return[a.J,a.Fa]}function Yg(a){return{J:a[0],Fa:a[1]}}
function wg(a,b,c){var d;c=(c?a.L:a.sa).J;if(void 0!==b){d=b=mg(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=qg(d));break}}if(d=e)return d;c=kg(a,b)}null!=c&&(d=qg(c));return d}function Zg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.td=a.Ab(b.Kc=c[2]))}function yg(a,b){null!=a.J&&(a.J+=b||1)}function $g(a){return n(a,4)}
function ah(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ha(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function tg(a,b){a.K=a;a.ha=a.xd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Hb)0<=Ea(b,c)&&(a.ha|=Hb[c],a.i(c+" messages enabled"))}function $d(a,b,c){for(var d in Hb)if(b==Hb[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Ea(bh,a):(c=Ea(bh,a.substr(b,2)),0>c&&(c=Ea(bh,a.substr(b,1))));return c};function ch(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case dh:case eh:case fh:case gh:case hh:case ih:case jh:case kh:c=2;break;case lh:case mh:case nh:case oh:case ph:case qh:case rh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.w;switch(a){case dh:b=c.g;break;case eh:b=c.u;break;case fh:b=c.A;break;case lh:b=ud(c);break;case gh:b=c.B;break;case hh:b=c.C;break;case mh:b=wd(c);break;case ih:b=c.D;break;case jh:b=c.G;break;case nh:b=D(c);break;case kh:b=E(c,D(c));break;case oh:b=c.M;break;case ph:b=c.j;break;case qh:b=sd(c);break;case rh:b=sd(c)&255|c.g<<8}}return b};
function sh(a,b){b=mg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+ch(a,e)+b.substr(c+1+bh[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(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=wg(a,e))?(d=e+' "'+ah(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=wg(a,e))?(yg(d),d=
e+' "'+ah(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+$g(qg(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,Xc(a),a.ta=0,Oc(a)))};
function Eb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+pa(d):"")+")"+(null!=g?": "+pa(g):"")+(null!=e?" at "+$g(e):""))}
function sg(a){var b;if(Sd(a)){if(!a.H||!a.H.length){a.H=Array(th);for(b=0;b<a.H.length;b++)a.H[b]=qg();a.V=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.V=0,a.H=[],a.D=[]}function uh(a,b){if(!vh(a))return!1;a.w.tb(b);return!0}
function xg(a,b,c,d){if(!vh(a))return!1;a.G=0;b||Sd(a)&&Td(a,a.w.j,0);try{var e=a.w.Eb(b);0<e&&(a.G+=e,Sc(a.w,e,!0),Pc(a.w,e),a.S++)}catch(f){"number"!=typeof f&&(a.G=0,xb(a.w,f.stack||f.message))}!1!==d&&Oc(a.w);Mc(a,c||!1);return 0<a.G}l.ea=function(a){this.w&&this.w.ea(a)};function Mc(a,b){void 0===b&&(b=!0);a.L=qg(a.w.j);b&&1!=a.O?wh(a):xh(a)}
function vh(a){var b;if(b=a.w&&yb(a.w))b=a.w,b.F.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Ab(a.w)?(a=a.w,a.F.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){sg(this);this.S=this.ba=0;this.Y=null;this.G=0;this.L=qg(this.w.j);this.F.ma=!1;yh(this);a||Mc(this)};
l.save=function(){var a=new td(this);a.set(0,Wg(this.L));a.set(1,Wg(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=Yg(a[b++]),this.T=Yg(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.za=a;this.Aa=b};
l.stop=function(a,b){if(this.F.ma){this.F.ma=!1;this.G=b-this.Aa;if(!this.O){b="stopped";if(this.G){a-=this.za;var c=0<a?Math.round(1E3*this.G/a):0;b+=" (";Sd(this)&&(b+=this.S+" opcodes, ",this.ba-=this.S,this.S=0);b+=this.G+" cycles, "+a+" ms, "+c+" hz)"}else Cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Mc(this,!0);this.Za();yh(this,this.w.j)}};function Sd(a){return 1<a.j.length||!!a.X}
function Td(a,b,c){var d=a.w;if(0<c&&(a.X&&!--a.X||Gc(a,b,1,a.j)))return!0;0<=c&&a.D.length&&(a.S++,b=Ub(a.I,b),null!=b&&(a.D[b][1]++,b=a.H[a.V],b.J=d.j,b.Fa=!1,++a.V==a.H.length&&(a.V=0)));return!1}function cc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function gc(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function rg(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;Fc(d.b[vg(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,Fc(d.b[vg(c)>>>d.g],!0);a.B=["bw"];a.ta=0}l.Pa=function(a,b,c){var d=!0;c||zh(this,a,b,!1,!0);if(a!=this.j){var e=vg(b);if(-1===e)this.i("invalid address: "+$g(b.J)),d=!1;else{var f=this.I;f.b[e>>>f.g].Pa(e&f.j,a==this.B)}}d&&(a.push(b),c?b.Fa=!0:(Ah(this,a,a.length-1,"set"),sg(this)));return d};
function zh(a,b,c,d,e){var f=!1;c=vg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==vg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||Ah(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.I,Fc(d.b[c>>>d.g],b==a.B));h.Fa||sg(a);break}}return f}function Bh(a,b){for(var c=1;c<b.length;c++)Ah(a,b,c);return b.length-1}function Ah(a,b,c,d){c=b[c];a.i(b[0]+" "+$g(c.J)+(d?" "+d:c.Kc?' "'+c.Kc+'"':""))}
function yh(a,b){if(void 0!==b)Gc(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.Fa){if(!zh(a,a.j,c,!0))break;b=0}}}
function Gc(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.Fa)for(var k=vg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(zh(a,d,h,!0),e=!0);if(u=h.td){for(var f=!1,v=0;v<u.length;v++)if(!Ch(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var B=v+1;B<u.length&&u[B].indexOf("else");B++)v++;if(B==u.length){f=!0;break}}a.w.F.ma||(f=!0)}if(f){e||Ah(a,d,g,"hit");break}}}a.ta--;return f}
function Dh(a,b,c,d){for(var e=qg(b.J),f=a.Ha(b,1),g=a.oa[f],h="",k=(a.style!=Eh?Fh:Gh)[g[0]],p=g.length-1,u=Hh,v,B=1;B<=p;B++){var y="";v=g[B];if(void 0!==v&&!(v&O&&a.style==pg)){var w=v&Ih;if(w){var C=v&Jh;C?u=C:v|=u;v&Kh||(v|=1==B?Lh:Mh);if(w&P)a:{y=a;w=v;C=b;switch(w&Jh){case Q:C=n(y.Ha(C,1),2);break;case Nh:C=n(y.Ha(C,1)<<24>>24,4);break;case Oh:C=n(y.Gb(C,2),4);break;default:y="imm("+q(w)+")";break a}y.style==Eh&&w&Ph?C="["+C+"]":w&Qh||(C=(y.style==pg?"$":"0x")+C);y=C}else w&Qh?(y=(v&Rh)>>8,
w=bh[y],a.style==Eh&&v&Ph&&(y==kh&&(w="HL"),w="["+w+"]"),y=w):w&Sh&&(y=(f>>3&7).toString());if(!y||!y.length){h="INVALID";break}0<h.length&&(h+=",");h+=y||"???"}}}f="";g=$g(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ha(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=xa(f,10);g+=v&Th?"*":" ";g+=xa(k,7);h&&(g+=" "+h);c&&(g=xa(g,40)+";"+c,g=a.w.F.Wa?g+("cycles="+Qc(a.w).toString()+" cs="+n(a.w.xa)):g+(null!=d?"="+d.toString():""));return g}
function Uh(a,b){switch(b){case "IF":a=a.w.N&512;break;case "SF":a=Ed(a.w);break;case "ZF":a=Dd(a.w);break;case "AF":a=Cd(a.w);break;case "PF":a=Bd(a.w);break;case "CF":a=zd(a.w);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Vh(a,b){return bh[b]+"="+ch(a,b)+" "}function Wh(a){return Vh(a,dh)+Vh(a,lh)+Vh(a,mh)+Vh(a,nh)+Vh(a,oh)+Uh(a,"IF")+Uh(a,"SF")+Uh(a,"ZF")+Uh(a,"AF")+Uh(a,"PF")+Uh(a,"CF")}l.Bc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Xh(a,b,c){var d=[],e=vg(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=Ca(f.Ac,[e-g],a.Bc);0<=e?Yh(a,b,e,d):c&&(e=~e,Yh(a,b,e-1,d),Yh(a,b,e,d));break}}return d}function Yh(a,b,c,d){var e={},f=a.C[b].Ac,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 Zh(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!=Eh?Fh:Gh;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)+" ("+pa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function $h(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ng(a)||a.i("no variables"),!0;if(!c[2])return ng(a,c[1]);if(!c[3])return delete a.A[c[1]],!0;b=kg(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 ai(a,b,c){var d=null;if(b=wg(a,b,!0)){var e=Xh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+$g(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]+" ("+$g(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function bi(a,b){switch(b[1]){case "8080":a.style=pg;break;case "8086":a.style=Eh;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.za=c;break;case "stop":a.w.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Lc(a.w);a.i("checksums "+(a.w.F.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Rc(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 wh(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=kg(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":A(d,f);a.L=qg(d.j);break;case "PS":qd(d,f);break;case "PSW":qd(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?Bd(d)||(d.L^=1):Bd(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?Ed(d)||(d.L^=192):Ed(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Oc(d);a.i("updated registers:")}a.i(Wh(a));c&&(a.L=qg(d.j),xh(a,$g(a.L.J)))}}function ci(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(sh(a,c[2])):kg(a,b,!1)}function di(a,b,c){var d="t"!=b;c=eg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ra(c,function(){return Bb(a,!0)&&xg(a,e,d,!1)},function(){Oc(a.w);Bb(a,!1)})}
function xh(a,b,c,d){if(b=wg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=wg(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=Ab(a,!1)||a.O?a.G:null;var g=null!=f?"cycles":null,h=Xh(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=Dh(a,b,g,f);a.i(f);a.L=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.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(ya(a.substring(d,f))),d=f+1}}return b};
function Ch(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.N&&(a.i("ended assemble at "+$g(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(yb(a)&&0<b.length){a.N&&(b="a "+$g(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 u=wg(a,f[1],!0);if(u)if(a.T=
u,void 0===f[2])a.i("begin assemble at "+$g(u.J)),a.N=!0,Oc(a.w);else{var v;a.i("not supported yet");v=[];if(v.length){for(var B=0;B<v.length;B++)a.Yb(u,v[B],1);a.i(Dh(a,a.T))}}break;case "b":a:{var y=f[0],w=f[1],C=b;if("?"==w)a.i("breakpoint commands:"),a.i("\tbi [p]\ttoggle break on input port [p]"),a.i("\tbo [p]\ttoggle break on output port [p]"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),
a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var T=y.charAt(1);if("l"==T){var za;za=0+Bh(a,a.j);za+=Bh(a,a.M);(za+=Bh(a,a.B))||a.i("no breakpoints")}else if("n"==T)a.X=eg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=qg();if("*"!=w&&(L=wg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(rg(a),a.i("all breakpoints cleared")):zh(a,a.j,L)||zh(a,a.M,L)||zh(a,a.B,L)||a.i("breakpoint missing: "+$g(L.J)):
"i"==T?a.i("breakpoint "+($b(a.I,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(dc(a.I,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Zg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.M,L):"w"==T?a.Pa(a.B,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],hc=f[3];if("?"==na){var Pb="";for(ja in Hb)a.ka[ja]&&(Pb&&(Pb+=","),Pb+=ja);Pb+=",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");Pb.length&&a.i("dump extension commands:\n\t"+Pb)}else if("state"==na){var re=ei(a.R,!0);"console"==Ma?console.log(re):(a.ua&&(a.ua.value=""),re&&a.i(re))}else if("symbols"==na)for(var se=0;se<a.C.length;se++){var te=a.C[se],Qb;for(Qb in te.ra)if("."!=Qb.charAt(0)){var zg=te.ra[Qb].o;if(void 0!==zg){var Ag=te.ra[Qb].l;Ag&&(Qb=Ag);a.i($g(zg)+" "+
Qb)}}}else{if("d"==ua){for(ja in Hb)if(f[1]==ja){var Bg=a.ka[ja];Bg?(f.shift(),f.shift(),Bg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Da||"db")}else a.Da=ua;if("dh"==ua){var Cg=na,Dg=Ma,Eg="",Fg=0,Na=a.V,ab=a.H;if(ab.length){var Ba=+Cg||a.xa,mc=+Dg||10;isNaN(Ba)?Ba=mc:Eg="more ";Ba>ab.length&&(a.i("note: only "+ab.length+" available"),Ba=ab.length);Na-=Ba;0>Na&&(null==ab[ab.length-1].J?(Ba=Na+Ba,Na=0):Na+=ab.length);var ue=[];"call"==Dg&&(mc=1E5,ue=["CALL"]);for(void 0!==Cg&&a.i(Ba+
" instructions earlier:");0<mc&&Na!=a.V;){var Gg=ab[Na++];if(null==Gg.J)break;var nc=qg(Gg.J),Ii=Ba--,Hg=Dh(a,nc,"history",Ii);(!ue.length||0<=Hg.indexOf(ue[0]))&&a.i(Hg);nc.Jb&&(Na+=nc.Jb,mc-=nc.Jb,Ba-=nc.Jb);Na>=ab.length&&(Na=0);a.xa=Ba;Fg++;mc--}}Fg||(a.i("no "+Eg+"history available"),a.xa=void 0)}else{var dd=wg(a,na);if(dd){var ed=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||hc),ed=eg(a,Ma)>>>0,65536<ed&&(ed=65536));for(var oc="",fd="dd"==ua?4:"dw"==ua?2:1,gd=fd*ed||128,Ji=gd+15>>4||1;Ji--&&0<
gd;){var hd=0,ve=0,pc,we="",Ig="",na=$g(dd.J);for(pc=16;0<pc&&0<gd;pc--){var id=a.Ha(dd,1),hd=hd|id<<(ve++<<3);ve==fd&&(we+=n(hd,2*fd),we+=1==fd?9==pc?"-":" ":" ",hd=ve=0);Ig+=32<=id&&128>id?String.fromCharCode(id):".";gd--}oc&&(oc+="\n");oc+=na+" "+we+(pc?"":" "+Ig)}oc&&a.i(oc);a.sa=dd}}}}break;case "e":if("else"==f[0])break;var jd=1,Jg=255,Kg=a.Ha,Lg=a.Yb;"ew"==f[0]&&(jd=2,Jg=65535,Kg=a.Gb,Lg=a.Rc);var Mg=jd<<1,Ng=f[1];if(null==Ng)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=wg(a,Ng);if(kd)for(var ld=2;ld<f.length;ld++){var qc=kg(a,f[ld]);if(void 0===qc){a.i("unrecognized value: "+f[ld]);break}qc&~Jg&&a.i("warning: "+n(qc)+" exceeds "+jd+"-byte value");var Ki=Kg.call(a,kd);a.i("changing "+$g(kd.J)+" from "+n(Ki,Mg,!0)+" to "+n(qc,Mg,!0));Lg.call(a,kd,qc,jd)}}break;case "f":Zh(a,f[1]);break;case "g":a:{var Og=f[1],Li=b;if(void 0!==Og){var xe=wg(a,Og,!0);if(!xe)break a;Zg(a,xe,Li);a.Pa(a.j,xe,!0)}uh(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(Ab(a,!0))break a;ye="already halted"}c||a.i(ye)}break;case "i":if("if"==f[0]){var ze;var rc=b.substr(2),rc=ya(rc);kg(a,rc)?(c||a.i("true: "+rc),ze=!0):(c||a.i("false: "+rc),ze=!1);ze||(d=!1);break}if("int"==f[0]){var md;var Mi=f[1];if(a.w.N&512){var Ae=kg(a,Mi);null==Ae?md=!1:(a.i("requesting interrupt level "+Ae),Rd(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=
eg(a,Be);if(void 0!==Ce){var Ni=bc(a.I,Ce);a.i(q(Ce)+": "+pa(Ni))}}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 Oi=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,Pg=qg(),sc=qg(a.w.M);for(a.i("stack trace for "+$g(sc.J));10>De;){for(var vb=null,Pi=256;65536>sc.J>>>0;){Pg.J=a.Gb(sc,2);if(null==sc.J||!Pi--)break;for(var Qi=a,nd=Pg,
Qg=null,tc=nd.J,Rg=tc,Ee=1;6>=Ee&&tc;Ee++){if(2<Ee){nd.J=tc;var od=Dh(Qi,nd);if(0<=od.indexOf("CALL")){var Sg=od.indexOf(" ");if(tc+(od.indexOf(" ",Sg+1)-Sg-1)/2==Rg){Qg=od;break}}}tc--}nd.J=Rg;if(vb=Qg)break}if(!vb||null==vb)break;var Tg=null;if("ks"==Oi){var Ug=vb.match(/[0-9A-F]+$/);Ug&&(Tg=ai(a,Ug[0]))}vb=xa(vb,50)+" ;"+(Tg||"stack="+$g(sc.J));a.i(vb);De++}De||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&ai(a,f[1],!0);break;case "m":a:{var bb,cb=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)cb=!0,ba=null;else if("off"==ba)cb=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for(bb in Hb)if(ba==bb){nb=Hb[bb];cb=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,cb=!0;else if("off"==f[2]&&(a.ha&=~nb,cb=!1,1073741824==nb)){for(var Fe=0;Fe<a.Z.length;Fe++)a.i(a.Z[Fe]);a.Z=[]}}var Ri=0,uc="";for(bb in Hb)if(!ba||ba==bb){var Si=!!(a.ha&Hb[bb]);if(null===
cb||cb==Si)uc&&(uc+=","),++Ri%10||(uc+="\n\t"),"key"==bb&&(bb="keys"),uc+=bb}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==cb?cb?"messages on: ":"messages off: ":"message categories:\n\t")+(uc||"none"));sg(a)}break;case "o":var Ge=f[1],Ti=f[2];if(Ge&&"?"!=Ge){var He=eg(a,Ge,"port #"),Ie=eg(a,Ti);void 0!==He&&void 0!==Ie&&(fc(a.I,He,Ie),a.i(q(He)+": "+pa(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]){ci(a,b.substr(5));break}var Vg="pr"==f[0]?1:0,Ui=1+Vg;if(a.O)a.i("step in progress");else{var Je=qg(a.w.j);switch(a.Ha(Je)){case 205:a.O=Ui,yg(Je,3)}a.O?(a.Pa(a.j,Je,!0),uh(a)||(a.R&&a.R.Za(),a.O=0)):di(a,Vg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}wh(a,f);break;case "s":bi(a,f);break;case "t":di(a,f[0],f[1]);break;case "u":xh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){$h(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.35.2 ("+a.w.xb+",RELEASE"+
(Fb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ha());break;case "?":if(f[1]){ci(a,b.substr(1));break}var Ke="commands:",Le;for(Le in fi)Ke+="\n"+xa(Le,9)+fi[Le];Sd(a)||(Ke+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Ke);break;default:a.i("unknown command: "+b),d=!1}}}catch(Xg){a.i("debugger error: "+(Xg.stack||Xg.message)),d=!1}return d}function Nc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Ch(a,b[+d]))return!1;return!0}
var fi={"?":"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"},
pg=8080,Eh=8086,Fh="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(" "),Gh="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(" "),
eh=0,fh=1,gh=2,hh=3,ih=4,jh=5,kh=6,dh=7,lh=8,mh=9,nh=10,oh=11,ph=12,qh=13,rh=14,bh="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Jh=15,Ih=240,Rh=3840,Kh=61440,Hh=0,Q=1,Nh=2,Oh=3,Qh=16,P=32,Ph=64,Sh=128,R=dh<<8|Qh|Q,S=eh<<8|Qh|Q,U=fh<<8|Qh|Q,V=gh<<8|Qh|Q,W=hh<<8|Qh|Q,X=ih<<8|Qh|Q,Y=jh<<8|Qh|Q,Z=kh<<8|Qh|Q|Ph,gi=lh<<8|Qh|Oh,hi=mh<<8|Qh|Oh,ii=nh<<8|Qh|Oh,ji=oh<<8|Qh|Oh,ki=rh<<8|Qh|Oh,Mh=4096,Lh=8192,O=16384,Th=32768,ug=[[45],[42,gi,P],[71,gi|Ph,R|O],[29,gi],[28,S],[22,S],[44,S,P],[63],[45,Th],[21,
ii|O,gi],[40,R|O,gi|Ph],[23,gi],[28,U],[22,U],[44,U,P],[64],[45,Th],[42,hi,P],[71,hi|Ph,R|O],[29,hi],[28,V],[22,V],[44,V,P],[52],[45,Th],[21,ii|O,hi],[40,R|O,hi|Ph],[23,hi],[28,W],[22,W],[44,W,P],[53],[45,Th],[42,ii,P],[68,51|Ph,ii|O],[29,ii],[28,X],[22,X],[44,X,P],[20],[45,Th],[21,ii|O,ii],[41,ii|O,51|Ph],[23,ii],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Th],[42,ji,P],[70,51|Ph,R|O],[29,ji],[28,Z],[22,Z],[44,Z,P],[72],[45,Th],[21,ii|O,ji],[39,R|O,51|Ph],[23,ji],[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,gi],[34,51],[30,51],[11,51],[51,gi],[4,R|O,P|Q],[65,Sh],[62],[54],[38,51],[30,51|Th],[15,51],[7,51],[1,R|O,P|Q],[65,Sh],[57],[50,hi],[33,51],[48,P|Q,R|O],[10,51],[51,hi],[74,R|O,P|Q],[65,Sh],[55],[54,Th],[31,51],[27,R|O,P|Q],[8,51],[7,51|Th],[67,R|O,P|Q],[65,
Sh],[61],[50,ii],[37,51],[78,ji|Ph|O,ii|O],[14,51],[51,ii],[6,R|O,P|Q],[65,Sh],[60],[49,ii],[36,51],[75,ii|O,hi|O],[13,51],[7,51|Th],[77,R|O,P|Q],[65,Sh],[59],[50,ki],[35,51],[24],[12,51],[51,ki],[47,R|O,P|Q],[65,Sh],[56],[69,ji|O,ii|O],[32,51],[25],[9,51],[7,51|Th],[19,R|O,P|Q],[65,Sh]],th=1E3;Ua(function(){for(var a=qb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new og(d);pb(d,c)}});
function li(a,b,c){t.call(this,"Computer",a,67108864);this.F.ja=!1;mi(this,b);this.L=Jc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=ni;this.G=null;this.C=this.O=!1;this.U=Jc(this,"url")||"";(Math.random()+.1).toString(36);this.g=oi(this);if(this.w=mb("CPU",this.id)){this.K=mb("Debugger",this.id);this.A=[];for(b=null;b=Jb(this,"Video",b);)this.A.push(b);this.I=new Lb({id:this.eb+".bus",busWidth:this.T},this.w,this.K);var d,e=kb(this.id);if((this.B=mb("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.35.2\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.Ga&&d.Ga(this,this.I,this.w,this.K);b=null;d=Jc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Jc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=ni),this.b&&(this.H=new td(this,"1.35.2"),pi(this.H)?
b=null:delete this.H);!b&&this.b&&(b=qi(this))&&(this.C=!0);if(b){var g=this;Fa(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.G=b,g.O=!0);zb(g)})}else zb(this);this.P.power||(this.L=!0);!c&&this.L&&ri(this,this.nb)}else r("Unable to find CPU component")}aa(li,t);function mi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Jc(a,b,c){var d=b.toLowerCase(),d=Pa(b)||Pa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ri(a,b,c){for(var d=kb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){ri(a,b,c)});return}}b.call(a,c)}
function si(a,b){var c=new td(a,"1.35.2",ti);if(pi(c)&&ui(c)){var d=c.get(vi),e=b?b.get(vi):"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=li.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.G?wi:ni));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.H||new td(this,"1.35.2");if(a==xi)b=!0;else if(a>ni){if(pi(d,this.G)){this.u=new td(this,"1.35.2",yi);pi(this.u)&&(zi(this,d),a=Ai,Bi(this.u));this.u.set(vi,Da());Ci(this.u);var e=this.b&&!this.C;if(a==wi||jb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ui(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?pi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(La(Di,""),this.g=null)):this.i(f+": "+g),Bi(d),pi(d)?(c=ui(d),e=!0):c=!1))}e&&si(this,c?d:null)}else a==Ai&&d.clear()}else si(this);delete this.G;delete this.H}e=kb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.w&&(c=Ei(this,g,d,b,c));b=[d,a,c];a!=xi?ri(this,this.Dc,b):this.Dc(b)}};
function Ei(a,b,c,d,e){if(!b.F.ja){b.F.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=ni,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.wc)for(a=b.wc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Dc=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&&(Ei(this,this.w,b,c,a),this.w.lb());this.N&&(zi(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function zi(a,b){if(jb("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.35.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function ei(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new td(a,"1.35.2"),g=new td(a,"1.35.2",ti),h=Da();g.set(vi,h);f.set(vi,h);f.set(Fi,"1.35.2");f.set(Gi,window?window.location.href:null);f.set(Hi,Ha());a.w&&a.w.va&&(c&&a.w.ea(),d=a.w.va(b,c),"object"===typeof d&&f.set(a.w.id,d),c&&(a.w.F.ja=!1,!1===d&&(e=null)));for(var h=kb(a.id),k=0;k<h.length;k++){var p=h[k];p.F.ja&&(p.va&&(d=p.va(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&&Vi(a,
a.g,f.toString()),Ci(g)&&Ci(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Wi),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&&(Db(this,"Resetting "+this.I.type),this.I.reset());for(var a=kb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.I&&c.reset&&(Db(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=kb(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=kb(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?ei(d,!1,!0):ri(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.F.ja&&!d.j)if(d.b&&!d.D){var a=jb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ei(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(ni)}else d.reset(),d.w&&d.w.lb()},!0;case "save":if(sa())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=oi(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=ei(d,b);b?Vi(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function oi(a,b){var c=a.g;c||((c=Ka(Di),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=Xi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Xi(a,b){a.g=null;b=Fa(ta()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(Di,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function qi(a){var b=null;a.g&&(b=ta()+"/api/v1/user?req=load&user="+a.g+"&state="+Yi(a,"1.35.2"));return b}
function Vi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Yi(a,"1.35.2");d.data=c;b=Fa(ta()+"/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),La(Di,""),a.g=null)}}
function Jb(a,b,c){a=kb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.W&&d.W.focus();!a&&window&&window.scrollTo(b,c)}};
function Yc(a,b){a.w&&(a=a.w,a.ib&&(b||!a.F.ma||a.F.Cc)&&(I(a,"A",a.g),I(a,"B",a.u),I(a,"C",a.A),I(a,"BC",ud(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",wd(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=sd(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 yi="failsafe",ti="validate",vi="timestamp",Fi="version",Gi="url",Hi="browser",Di="user",xi=-1,ni=0,wi=1,Ai=2,Wi=3;Ua(function(){for(var a=qb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=qb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new li(g,d,!0);pb(g,f);g.L&&ri(g,g.nb)}});Va.show.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);if(c=mb("Computer",c.id))c.F.Rb=!1,c.V&&!c.F.ja&&c.nb(xi)}});
Va.exit.push(function(){for(var a=qb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=ob(a[b]);if(c=mb("Computer",c.id))c.F.Rb=!0,c.F.ja&&ei(c,!(!c.b||c.D),!0)}});function td(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.w=this.I=!1;this.key=Yi(a,b,c);Bi(this,a.Bd)}l=td.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 pi(a,b){return b?(a.g=b,a.w=!0,a.I=!1,!0):a.w?!0:Ia()&&(b=Ka(a.key))?(a.g=b,a.w=!0):!1}function ui(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 Ci(a){var b=!0;if(Ia()){var c=JSON.stringify(a.b);La(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 Bi(a,b){a.g="";a.b={};a.w=a.I=!1;b&&a.set("parms",b)}
l.clear=function(a){Bi(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 Yi(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 Zi=0;
function $i(a,b,c,d,e,f){e("Loading "+a+"...");Fa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):aj(h,a,b,c,d,e,f)})}
function aj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(gb(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(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?bj(a,f,h):h(a,null):g("no data"+(b?" for file: "+
b:""),null)}
function bj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);bj(a,b,c)}})}else c(a,null)}
function cj(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=va(a))}function f(a){e("Error: "+a);k&&(--Zi||Za(!0));k=!1}var g,h,k=!0;Zi++;hb[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.35.2/components.xsl");p=function(d,h){h?$i(c,null,null,!1,e,function(d,k){k?(gb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Zi||Za(!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),--Zi||Za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?$i(b,a,d,!0,e,p):aj(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){Za(!1);return cj(a,b,c,d)};window.findMachineComponent=function(a,b){return mb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!sb[a]){for(var c=!0,d=sb,e=a,f=b.length,g=[],h=[],k="",p=null,u=0;u<f;u++){var v=b[u];if('"'==v||"'"==v)p&&v!=p?k+=v:(p?p=null:p=v,k&&(h.push(k),k=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;rb(a)||(c=!1)}return c};window.enableEvents=Za;window.sendEvent=db;})();//# sourceMappingURL=/versions/pc8080/1.35.2/pc8080-dbg.map