pcjs/versions/pc8080/1.34.2/pc8080-dbg.js
2017-03-17 11:20:26 -07:00

304 lines
114 KiB
JavaScript

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