pcjs/versions/pc8080/1.36.1/pc8080-dbg.js

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