Added MACRO-10 work-arounds for numeric values with embedded binary shift counts

This commit is contained in:
Jeff 2017-03-16 12:45:19 -07:00 committed by Jeff Parsons
commit ab0dccd866
12 changed files with 1565 additions and 1463 deletions

View file

@ -35,14 +35,15 @@ var ha=ea[ea.length-1],ia=da[ha],ka=ia?ia:function(a){a=Number(a);if(isNaN(a)||I
var m={Be:0,Ee:1,Fe:2,Ge:3,He:4,Ie:5,Je:6,Ke:7,Le:8,Me:9,Ne:10,Oe:11,Pe:12,Qe:13,Re:14,Se:15,Te:16,Ue:17,Ve:18,We:19,Xe:20,Ye:21,Ze:22,$e:23,af:24,bf:25,cf:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,ab:65,Ub:66,Vb:67,Fb:68,E:69,Yb:70,Zb:71,$b:72,ac:73,bc:74,cc:75,Hb:76,gc:77,hc:78,lc:79,mc:80,Q:81,nc:82,pc:83,qc:84,rc:85,tc:86,uc:87,
wc:88,xc:89,wb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yc:97,ud:98,xd:99,d:100,e:101,Bd:102,Dd:103,Ed:104,Fd:105,Od:106,k:107,Pd:108,Rd:109,n:110,Sd:111,p:112,q:113,r:114,oe:115,t:116,pe:117,qe:118,re:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,df:127},la={59:186,61:187,173:189,224:91};
function ma(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}
function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function n(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}function qa(a){return n(a,2,!0)}function q(a){return n(a,4,!0)}function ra(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 sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ta(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}function Aa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var xa={"&":"&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 Da(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 Ea(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}function Fa(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 f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function oa(a,b,c,d){var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));if(null==a)for(;0<c--;)e="?"+e;else for(;0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?12:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function n(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}
function qa(a){return n(a,2,!0)}function q(a){return n(a,4,!0)}function ra(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 sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}function ya(a,b){return(a+" ").slice(0,b)}
function Aa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var xa={"&":"&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 Da(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 Ea(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Fa(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
function Ga(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 Ha(a,b){var c,d={la:null,ra:null,Qa:null,Ja:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ja=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
function Ha(a,b){var c,d={la:null,ra:null,Qa:null,Ka:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Qa=g.load;d.Ka=g.exec;if(e=g.bytes)d.la=e;else if(e=g.words)for(d.la=Array(2*e.length),f=c=0;c<e.length;c++)d.la[f++]=e[c]&255,d.la[f++]=e[c]>>8&255;else if(e=g.longs)for(d.la=Array(4*e.length),f=c=0;c<e.length;c++)d.la[f++]=
e[c]&255,d.la[f++]=e[c]>>8&255,d.la[f++]=e[c]>>16&255,d.la[f++]=e[c]>>24&255;else(e=g.data)?d.Mf=e:d.la=g;d.la&&(d.la.length?1==d.la.length&&(r(d.la[0]),d=null):(r("Empty resource: "+a),d=null));d.ra=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.la=e)}return d}
function va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ia(){return window?window.navigator.userAgent:""}function Ja(){if(null==Ka){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}Ka=a}return Ka}function La(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Pa(a){if(window){var b=Ia();return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}function Qa(a){if(!Ra){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ra=c}return Ra[a]}
@ -51,11 +52,11 @@ function Va(a){Wa.init.push(a)}function Xa(a){if(Ya)try{for(var b=0;b<a.length;b
Ua(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){Xa(Wa.exit)});function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.vc=b.comment;this.Ad=b;this.exports={};this.P=this.bindings={};a=this.id.indexOf(".");0>a?this.cb=this.id:(this.eb=this.id.substr(0,a),this.cb=this.id.substr(a+1));this.G={ready:!1,mb:!1,Ib:!1,ja:!1,error:!1};this.zb=null;this.G.error=!1;this.ha=c||0;this.K=this.u=this.H=this.R=this.ua=null;gb.push(this)}
function hb(a,b,c){ib[a]&&b&&(ib[a][b]=c)}function jb(){return Date.now()||+new Date}function bb(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function kb(a){var b=!1;window&&(b=window.confirm(a));return b}function lb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<gb.length;b++){var d=gb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function mb(a){if(void 0!==a){var b;for(b=0;b<gb.length;b++)if(gb[b].id===a)return gb[b]}return null}
function ob(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<gb.length;d++)if(c)c==gb[d]&&(c=null);else if(!(a!=gb[d].type||b&&gb[d].id.indexOf(b)))return gb[d]}return null}function pb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function qb(a,b){b=rb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=pb(f))&&g.binding&&a.ca(g.type,g.binding,f,g.value),k=h.length}}}}
function qb(a,b){b=rb(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=pb(f))&&g.binding&&a.da(g.type,g.binding,f,g.value),k=h.length}}}}
function rb(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 sb(a){for(var b=!0,c=tb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){sb(a)}}());var g=wb[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=ob(d[1],a);if(h)if(g=xb[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 tb[a];return b}l=t.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ca=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.da=function(a,b,c){switch(b){case "clear":return this.P[b]||(this.P[b]=c,c.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ua=this.P[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.aa=function(a){this.i(a,this.cb)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.cb+": "+a)};l.aa=function(a,b,c){bb(a,b,c||this.type)};function yb(a,b){a.G.error=!0;a.aa(b)}function zb(a,b){b&&(a.G.ready?b():a.zb=b);return a.G.ready}function Ab(a){if(!a.G.error&&(a.G.ready=!0,a.G.ready)){var b=a.zb;a.zb=null;b&&b()}}function Bb(a,b){a.G.mb&&(b?a.G.Ib=!0:void 0===b&&a.i(a.toString()+" busy"));return a.G.mb}function Cb(a,b){if(a.G.Ib)return a.G.mb=!1,a.G.Ib=!1;if(a.G.error)return a.i(a.toString()+" error"),!1;a.G.mb=b;return a.G.mb}
l.wa=function(){return this.G.ja=!0};l.va=function(a,b){b&&(this.G.ja=!1);return!0};function Db(a,b){if(a.K){a===a.K?b|=0:b=b||a.ha;var c=a.K.ha&b;return!!b&&c===b||!!(c&a.K.wd)}return!1}function Eb(a,b){a.K&&Db(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),Fb(a.K,a,b,c,d,e,f,g))}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
@ -64,12 +65,12 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c
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 Gb="undefined"!==typeof ArrayBuffer,Hb=[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],Ib={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function Jb(a){t.call(this,"Panel",a)}aa(Jb,t);
Jb.prototype.ca=function(a,b,c,d){return this.R&&this.R.ca(a,b,c,d)||this.u&&this.u.ca(a,b,c,d)||this.B&&this.B.ca(a,b,c,d)||this.K&&this.K.ca(a,b,c,d)?!0:t.prototype.ca.call(this,a,b,c,d)};Jb.prototype.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Kb(a,"Keyboard")};Jb.prototype.wa=function(a,b){b||Lb();return!0};Jb.prototype.va=function(){return!0};
Jb.prototype.da=function(a,b,c,d){return this.R&&this.R.da(a,b,c,d)||this.u&&this.u.da(a,b,c,d)||this.B&&this.B.da(a,b,c,d)||this.K&&this.K.da(a,b,c,d)?!0:t.prototype.da.call(this,a,b,c,d)};Jb.prototype.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;this.B=Kb(a,"Keyboard")};Jb.prototype.wa=function(a,b){b||Lb();return!0};Jb.prototype.va=function(){return!0};
function Lb(){for(var a=!1,b=rb(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=pb(d),f=mb(e.id);f||(a=!0,f=new Jb(e));qb(f,d);a&&Ab(f)}}Va(Lb);
function Mb(a,b,c){t.call(this,"Bus",a);this.u=b;this.K=c;this.M=a.busWidth||16;this.N=Math.pow(2,this.M);this.C=this.N-1|0;this.g=(this.M>>1)+2;10>this.g&&(this.g=10);15<this.g&&(this.g=15);this.w=1<<this.g;this.O=this.w>>2;this.j=this.w-1;this.L=this.N/this.w|0;this.I=this.L-1;this.A=[];this.B=[];this.D=this.F=!1;this.S=[];this.T=[];a=new z;Pb(a,this.K);this.b=Array(this.L);for(b=0;b<this.L;b++)this.b[b]=a;Ab(this)}aa(Mb,t);Mb.prototype.reset=function(){};
Mb.prototype.wa=function(a,b){b||this.reset();return!0};function Qb(a,b,c,d){for(var e=b,f=c,g=e>>>a.g;0<f&&g<a.b.length;){var h=a.b[g],k=g*a.w,p=a.w-(e-k);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.J)return h.pb+=h.J-e,h.J=e,!0;if(e>=h.J+h.pb){p=h.size-(e-k);p>f&&(p=f);h.pb=e-h.J+p;e=k+a.w;f-=p;g++;continue}}return Rb(Sb,e,f)}e=new z(e,p,a.w,d);Pb(e,a.K,h);a.b[g++]=e;e=k+a.w;f-=p}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Tb[d]+" at "+q(b)),!0):Rb(Ub,b,c)}
function Vb(a,b){return a.b[(b&a.C)>>>a.g].ob(b&a.j,b)}function Wb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Hc(c,b):a.b[d++].Ya(c,b)|a.b[d&a.I].Ya(0,b+1)<<8}function Xb(a,b){var c=b&a.j,d=(b&a.C)>>>a.g;return c!=a.j?a.b[d].Nb(c,b):a.b[d++].ob(c,b)|a.b[d&a.I].ob(0,b+1)<<8}function Yb(a,b,c){a.b[(b&a.C)>>>a.g].qb(b&a.j,c&255,b)}function Zb(a,b,c){var d=b&a.j,e=(b&a.C)>>>a.g;d!=a.j?a.b[e].Kc(d,c&65535,b):(a.b[e++].$a(d,c&255,b),a.b[e&a.I].$a(0,c>>8&255,b+1))}
function $b(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ea||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],u=g+1;u<e.length&&e[u]===p;)u++;k[h++]=u-g;k[h++]=p;g=u}k.length<e.length&&(e=k)}c[f]=e}}return c}function ac(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function $b(a){for(var b=0,c=[],d=0;d<a.L;d++){var e=a.b[d];if(e.Ea||e.Dc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var p=e[g],v=g+1;v<e.length&&e[v]===p;)v++;k[h++]=v-g;k[h++]=p;g=v}k.length<e.length&&(e=k)}c[f]=e}}return c}function ac(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
function bc(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 cc(a,b,c){for(var d=1,e=0,f=0;0<d;){var g=a.A[b],h=a.S[b]||1,k=1==h?255:2==h?65535:-1,p=k;void 0!==g?(g[0]&&(p=g[0](b,c),void 0===p?p=k:p&=k),a.K&&a.D!=g[1]&&dc(a.K,b,p)):a.K&&(Fb(a.K,a,b,null,c),a.D&&dc(a.K,b,p));e|=p<<f;f+=h<<3;b+=h;d-=h}return e}
function ec(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function gc(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 hc(a,b,c,d){for(var e=1,f=0;0<e;){var g=a.B[b],h=a.T[b]||1,k=1==h?255:2==h?65535:-1,k=(c>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,d);a.K&&a.F!=g[1]&&ic(a.K,b,k)}else a.K&&(Fb(a.K,a,b,k,d),a.F&&ic(a.K,b,k));f+=h<<3;b+=h;e-=h}}function Rb(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Sb=1,Ub=2,jc;if(Gb){var tc=new ArrayBuffer(2);(new DataView(tc)).setUint16(0,256,!0);jc=256===(new Uint16Array(tc))[0]}else jc=!1;var uc=jc;
@ -77,29 +78,29 @@ function z(a,b,c,d){this.id=vc+=2;this.b=null;this.J=a;this.pb=b;this.size=c||0;
l.save=function(){var a,b;if(Gb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.R.getInt32(b<<2,!0);else a=this.b;return a};l.restore=function(a){if(a&&this.size==a.length<<2){var b;if(Gb)for(b=0;b<a.length;b++)this.R.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ea=!0}return!1};function yc(a,b){b||(b=Cc);Dc(a,b,void 0);Ec(a,b,void 0)}function Dc(a,b,c){c&&a.H||(a.Ya=b[0]||a.Gc,a.Hc=b[2]||a.Ic);if(c||void 0===c)a.ob=b[0]||a.Gc,a.Nb=b[2]||a.Ic}
function Ec(a,b,c){c&&a.P||(a.$a=!a.u&&b[1]||a.rb,a.Kc=!a.u&&b[3]||a.Rb);if(c||void 0===c)a.qb=b[1]||a.rb,a.Sb=b[3]||a.Rb}l.Pa=function(a,b){b?this.P++||Ec(this,Fc,!1):this.H++||Dc(this,Fc,!1)};function Gc(a,b){b?--a.P||(a.$a=a.u?a.rb:a.qb,a.Kc=a.u?a.Rb:a.Sb):--a.H||(a.Ya=a.ob,a.Hc=a.Nb)}function Pb(a,b,c){a.K=b;a.H=a.P=0;c&&((a.H=c.H)&&Dc(a,Fc,!1),(a.P=c.P)&&Ec(a,Fc,!1))}l.Gc=function(){this.K&&Db(this.K,129)&&this.K.message("attempt to read invalid block %"+n(this.J),!0);return 255};
l.rb=function(a,b){this.K&&Db(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.Ya(a++,b++)|this.Ya(a,b)<<8};l.Rb=function(a,b,c){this.$a(a++,b&255,c++);this.$a(a,b>>8,c)};l.ie=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};l.me=function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};l.ve=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ea=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,1,c.I)&&c.da(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,2,c.I)&&c.da(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,1,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,2,d.w)&&d.da(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ze=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ea=!0};l.ge=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,1,c.I)&&c.ea(!0)}return this.ob(a,b)};l.ke=function(a,b){if(this.K&&null!=this.J){var c=this.K;Hc(c,this.J+a,2,c.I)&&c.ea(!0)}return this.Nb(a,b)};
l.te=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,1,d.w)&&d.ea(!0)}this.u?this.rb(0,b):this.qb(a,b,c)};l.xe=function(a,b,c){if(this.K&&null!=this.J){var d=this.K;Hc(d,this.J+a,2,d.w)&&d.ea(!0)}this.u?this.rb(0,b):this.Sb(a,b,c)};l.fe=function(a){return this.g[a]};l.he=function(a){return this.g[a]};l.je=function(a){return this.R.getUint16(a,!0)};l.le=function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.w[a>>1]};l.se=function(a,b){this.g[a]=b;this.Ea=!0};
l.ue=function(a,b){this.g[a]=b;this.Ea=!0};l.we=function(a,b){this.R.setUint16(a,b,!0);this.Ea=!0};l.ye=function(a,b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.w[a>>1]=b;this.Ea=!0};var wc=0,xc=2,Tb=["NONE","RAM","ROM","VID","H/W"],vc=0,Cc=[],Bc=[z.prototype.ie,z.prototype.ve,z.prototype.me,z.prototype.ze],Fc=[z.prototype.ge,z.prototype.te,z.prototype.ke,z.prototype.xe];if(Gb)var Ac=[z.prototype.fe,z.prototype.se,z.prototype.je,z.prototype.we],zc=[z.prototype.he,z.prototype.ue,z.prototype.le,z.prototype.ye];
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.U=c;this.Ta=Math.round(this.Aa/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Jc.length;b++)(c=this.P[Jc[b]])&&this.R.ca(null,Jc[b],c);this.W=Kb(a,"ChipSet");a=Kc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Nc(a),a.fa&&(b=a.fa,a.fa=null,Oc(a,b))):this.i("No debugger detected")}Pc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Mc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.da(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.ca=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.da():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.Aa/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ka+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Sc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Tc(a,a.X);a.X=0;a.V=jb();a.ea=0;Uc(a);return d}function Wc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Xc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.Aa*a.U/1E3,a.T[b][0]=c+Yc(a))}function Yc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Cb(this,!0)){if(!this.G.ma){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.ma=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.Aa&&Uc(this,!0);this.Da=0;this.Ma=jb();this.ea&&(a=this.Ma-this.ea,a>this.jb&&(this.V+=a,this.V>this.Ma&&(this.V=this.Ma)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.da();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ea=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ea-this.Ma;if(f=this.ea-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ea+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.da=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.Ha.push(b)}l=nd.prototype;l.reset=function(){this.G.ma&&this.da();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;B(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;B(a,b)}
function Ic(a,b){t.call(this,"CPU",a,1);var c=a.multiplier||1;this.za=a.cycles||b;this.U=c;this.Ta=Math.round(this.za/1E4)/100;this.Z=this.Ta*this.U;this.G.ma=!1;this.G.Qb=!1;this.G.lb=a.autoStart;this.G.Bc=!1;this.G.Wa=!1;this.xa=this.oa=0;this.ya=a.csStart;this.na=a.csInterval;this.sa=a.csStop;this.T=[];this.Db=this.tb.bind(this);Ab(this)}aa(Ic,t);l=Ic.prototype;
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.K=d;for(b=0;b<Jc.length;b++)(c=this.P[Jc[b]])&&this.R.da(null,Jc[b],c);this.W=Kb(a,"ChipSet");a=Kc(a,"autoStart");null!=a&&(this.G.lb="true"==a?!0:"false"==a?!1:!!a);Ab(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.wa=function(a,b){if(!b){if(a&&this.restore){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.K?(a=this.K,a.i("Type ? for help with PC8080 Debugger commands"),Nc(a),a.na&&(b=a.na,a.na=null,Oc(a,b))):this.i("No debugger detected")}Pc(this);return!0};l.va=function(a){return a?this.save():!0};l.lb=function(){return this.G.lb||!this.K&&void 0===this.P.run?(this.tb(),!0):!1};l.Ec=function(){return 0};
function Mc(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.sa&&(a.sa=-1);a.G.Wa=0<=a.ya&&0<a.na;a.G.Wa&&(a.xa=0,a.oa=a.ya-a.ka)}function Qc(a,b){if(a.G.Wa){var c=!1;a.xa=a.xa+a.Ec()|0;a.oa-=b;0>=a.oa&&(a.oa+=a.na,c=!0);0<=a.sa&&a.sa<=Rc(a)&&(a.na=a.sa=-1,Mc(a),a.ea(),c=!0);c&&a.i(Rc(a)+" cycles: checksum="+n(a.xa))}}
l.da=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.P[b]=c;a=!0;break;case "run":this.P[b]=c;c.onclick=function(){var a;if(a=d.R)if(a=d.R,a.G.ja)a=!0;else{var b=null,c,h=lb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.G.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.G.ja);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.G.ready?"powered yet":"ready yet"+(b.zb?" (waiting for notification)":""))+".");a=!1}a&&(d.G.ma?d.ea():d.tb())};
a=!0;break;case "speed":this.P[b]=c;a=!0;break;case "setSpeed":this.P[b]=c,c.onclick=function(){Sc(d,d.U<<1,!0)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function Tc(a,b,c){a.ka+=b;c&&(a.fa=a.b=0)}function Uc(a,b){var c=1;b&&1<a.U&&a.Y&&(c=a.Y/a.Ta);a.jb=Math.round(1E3/Vc);a.Na=Math.floor(a.za/Vc*c);b||(a.ta=a.Na);a.Va=0}function Rc(a){return a.ka+a.X+a.fa-a.b}function Lc(a){a.Y=0;a.kb=0;a.ka=a.X=a.fa=a.b=0;Mc(a);Sc(a,1)}
function Sc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.Z?b=1:d=!0;a.U=b;b=a.Ta*a.U;if(a.Z!=b){a.Z=b;b=a.Z.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.R&&a.R.Za()}Tc(a,a.X);a.X=0;a.V=jb();a.ba=0;Uc(a);return d}function Wc(a,b){var c=a.T.length;a.T.push([-1,b]);return c}function Xc(a,b,c){0<=b&&b<a.T.length&&0>a.T[b][0]&&(c*=a.za*a.U/1E3,a.T[b][0]=c+Yc(a))}function Yc(a,b){var c=a.fa-=a.b;a.b=0;b&&(a.fa=0);return c}
l.tb=function(a){if(Cb(this,!0)){if(!this.G.ma){Sc(this);this.R&&this.R.start(this.V,Rc(this));this.G.ma=!0;this.G.Qb=!0;this.W&&this.W.start();var b=this.P.run;b&&(b.textContent="Halt");this.R&&(Zc(this.R,!0),a&&this.R.Za(!0))}this.Va>=this.za&&Uc(this,!0);this.Da=0;this.Ia=jb();this.ba&&(a=this.Ia-this.ba,a>this.jb&&(this.V+=a,this.V>this.Ia&&(this.V=this.Ia)));try{do{for(var c,d=this.G.Wa?1:this.Na,e=this.T.length-1;0<=e;e--){var f=this.T[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Eb(c);c=Yc(this,!0);
this.Da+=c;this.X+=c;Qc(this,c);a=c;for(var g=this.T.length-1;0<=g;g--){var h=this.T[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ta-=c;if(0>=this.ta){this.ta+=this.Na;++this.kb>=ld&&(this.R&&Zc(this.R),this.kb=0);break}}while(this.G.ma)}catch(k){this.ea();Pc(this);this.R&&this.R.stop(jb(),Rc(this));Cb(this,!1);yb(this,k.stack||k.message);return}c=setTimeout;d=this.Db;this.ba=jb();e=this.jb;this.Da&&(e=Math.round(e*this.Da/this.Na));e-=this.ba-this.Ia;if(f=this.ba-this.V)this.Y=Math.round(this.X/
(10*f))/100,864E5<=f&&(this.ka=0,Sc(this));if(0>e||this.Y<this.Z)-1E3>e&&(this.V-=e),e=0;this.Va+=this.Da;this.ba+=e;c(d,e)}else Pc(this),this.R&&this.R.stop(jb(),Rc(this))};l.Eb=function(){return 0};l.ea=function(a){Bb(this,!0);Yc(this);Tc(this,this.X);this.X=0;if(this.G.ma){this.G.ma=!1;this.W&&this.W.stop();var b=this.P.run;b&&(b.textContent="Run")}this.G.complete=a};function Pc(a,b){if(a.R){for(var c=a.R,d=0;d<c.A.length;d++)md(c.A[d],b);Zc(a.R,b)}}var Vc=30,ld=15,Jc=["power","reset"];
function nd(a){var b=+a.model||8080;Ic.call(this,a,1E6);this.xb=b;this.gb=od;Lc(this);this.G.complete=this.G.zd=!1;this.ib=0;this.Ha=[];this.hb=0;pd(this)}aa(nd,Ic);function qd(a,b){a.Ha.push(b)}l=nd.prototype;l.reset=function(){this.G.ma&&this.ea();pd(this);Lc(this);this.G.error=!1;Ic.prototype.reset.call(this)};function pd(a){a.g=0;a.w=0;a.A=0;a.B=0;a.C=0;a.D=0;a.F=0;a.M=0;A(a,a.hb);rd(a,0);a.S=0}function sd(a,b){a.hb=b;A(a,b)}
l.Ec=function(){var a=this.g+this.w+this.A+this.B+this.C+this.D+this.F|0;return a=a+this.M+this.j+td(this)|0};l.save=function(){var a=new ud(this);a.set(0,[this.g,this.w,this.A,this.B,this.C,this.D,this.F,this.M,this.j,td(this)]);a.set(1,[this.S,this.ka,this.U]);a.set(2,$b(this.H));return a.data()};
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;B(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Sc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.ca=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=Ic.prototype.ca.call(this,a,b,c)}return a};function vd(a){return a.w<<8|a.A}function wd(a,b){a.w=b>>8&255;a.A=b&255}function xd(a){return a.B<<8|a.C}function yd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function zd(a,b){a.D=b>>8&255;a.F=b&255}function B(a,b){a.j=b&65535}function Ad(a){return a.I&256?1:0}function Bd(a,b){a.I=a.I&255|b}function Cd(a){return Hb[a.L&255]?4:0}function Dd(a){return(a.L^a.O)&16?16:0}function Ed(a){return a.I&255?0:64}function Fd(a){return a.L&128?128:0}function td(a){return a.N&-214|Fd(a)|Ed(a)|Dd(a)|Cd(a)|Ad(a)}function rd(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
l.restore=function(a){var b=a[0];this.g=b[0];this.w=b[1];this.A=b[2];this.B=b[3];this.C=b[4];this.D=b[5];this.F=b[6];this.M=b[7]&65535;A(this,b[8]);rd(this,b[9]);b=a[1];this.S=b[0];this.ka=b[1];Sc(this,b[3]);a:{b=this.H;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.O){for(var f=0,g=Array(b.O),h=0;h<e.length-1;)for(var k=e[h++],p=e[h++];k--;)g[f++]=p;e=g}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.da=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.P[b]=c;this.ib++;a=!0;break;default:a=Ic.prototype.da.call(this,a,b,c)}return a};function vd(a){return a.w<<8|a.A}function wd(a,b){a.w=b>>8&255;a.A=b&255}function xd(a){return a.B<<8|a.C}function yd(a,b){a.B=b>>8&255;a.C=b&255}function D(a){return a.D<<8|a.F}
function zd(a,b){a.D=b>>8&255;a.F=b&255}function A(a,b){a.j=b&65535}function Ad(a){return a.I&256?1:0}function Bd(a,b){a.I=a.I&255|b}function Cd(a){return Hb[a.L&255]?4:0}function Dd(a){return(a.L^a.O)&16?16:0}function Ed(a){return a.I&255?0:64}function Fd(a){return a.L&128?128:0}function td(a){return a.N&-214|Fd(a)|Ed(a)|Dd(a)|Cd(a)|Ad(a)}function rd(a,b){a.I=a.L=a.O=0;b&1&&(a.I|=256);b&4||(a.L|=1);b&16&&(a.O|=16);b&64||(a.I|=255);b&128&&(a.L^=192);a.N=a.N&-726|b&512|2}
function Gd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b)&255}function Hd(a,b){a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?1:0))&255}function Id(a,b){a.I=a.L=a.O=a.g&b;(a.g|b)&8&&(a.O^=16);return a.I}function Jd(a,b){a.O=b^255;b=a.L=b+255&255;a.I=a.I&-256|b;return b}function Kd(a,b){a.O=b;b=a.L=b+1&255;a.I=a.I&-256|b;return b}function Ld(a,b){return a.L=a.I=a.O=a.g|b}function Md(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+1^256)&255}
function Nd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Od(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Pd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);B(a,a.j+1);return b}function G(a){var b=Wb(a.H,a.j);B(a,a.j+2);return b}function Qd(a){var b=Wb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Zb(a.H,a.M,b)}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.da()),c=!a.G.ma||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Td(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Rd(this)){do{if(b){if(Ud(this.K,this.j,c)){this.da();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Va(function(){for(var a=rb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new nd(d);qb(d,c)}});function Vd(){this.b-=4}function Wd(){B(this,G(this));this.b-=10}
function Xd(){B(this,Qd(this));this.b-=10}function Yd(){var a=G(this);H(this,this.j);B(this,a);this.b-=17}
function Nd(a,b){b^=255;a.O=a.g^b;return a.L=(a.I=a.g+b+(a.I&256?0:1)^256)&255}function Od(a,b){return a.L=a.I=a.O=a.g^b}function E(a,b){a=a.H;return a.b[(b&a.C)>>>a.g].Ya(b&a.j,b)}function Pd(a,b,c){a=a.H;a.b[(b&a.C)>>>a.g].$a(b&a.j,c&255,b)}function F(a){var b=E(a,a.j);A(a,a.j+1);return b}function G(a){var b=Wb(a.H,a.j);A(a,a.j+2);return b}function Qd(a){var b=Wb(a.H,a.M);a.M=a.M+2&65535;return b}function H(a,b){a.M=a.M-2&65535;Zb(a.H,a.M,b)}
function Rd(a){if(a.b&&a.S&255&&a.N&512){for(var b=0;8>b&&!(a.S&1<<b);b++);a.S&=~(0>b?255:1<<b);a.N&=-513;a.S&=-257;a.gb[199|b<<3].call(a)}return a.S&256?(Yc(a),!1):!0}function Sd(a,b){a.S|=1<<b;a.N&512&&Yc(a)}function I(a,b,c,d){d=d||2;a.P[b]&&(void 0===c&&(yb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.G.ma||a.G.Bc?n(c,d):"--------".substr(0,d),a.P[b].textContent!=c&&(a.P[b].textContent=c))}
l.Eb=function(a){this.G.complete=!0;var b=this.G.zd=this.K&&Td(this.K),c=a?this.G.Qb?0:1:-1;this.G.Qb=!1;this.fa=this.b=a;if(Rd(this)){do{if(b){if(Ud(this.K,this.j,c)){this.ea();break}c=1}this.gb[F(this)].call(this)}while(0<this.b)}return this.G.complete?this.fa-this.b:void 0===this.G.complete?0:-1};Va(function(){for(var a=rb(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new nd(d);qb(d,c)}});function Vd(){this.b-=4}function Wd(){A(this,G(this));this.b-=10}
function Xd(){A(this,Qd(this));this.b-=10}function Yd(){var a=G(this);H(this,this.j);A(this,a);this.b-=17}
var od=[Vd,function(){wd(this,G(this));this.b-=10},function(){Pd(this,vd(this),this.g);this.b-=7},function(){wd(this,vd(this)+1);this.b-=5},function(){this.w=Kd(this,this.w);this.b-=5},function(){this.w=Jd(this,this.w);this.b-=5},function(){this.w=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|a>>8;Bd(this,a&256);this.b-=4},Vd,function(){var a;zd(this,a=D(this)+vd(this));Bd(this,a>>8&256);this.b-=10},function(){this.g=E(this,vd(this));this.b-=7},function(){wd(this,vd(this)-1);this.b-=
5},function(){this.A=Kd(this,this.A);this.b-=5},function(){this.A=Jd(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;Bd(this,a);this.b-=4},Vd,function(){yd(this,G(this));this.b-=10},function(){Pd(this,xd(this),this.g);this.b-=7},function(){yd(this,xd(this)+1);this.b-=5},function(){this.B=Kd(this,this.B);this.b-=5},function(){this.B=Jd(this,this.B);this.b-=5},function(){this.B=F(this);this.b-=7},function(){var a=this.g<<1;this.g=a&255|
Ad(this);Bd(this,a&256);this.b-=4},Vd,function(){var a;zd(this,a=D(this)+xd(this));Bd(this,a>>8&256);this.b-=10},function(){this.g=E(this,xd(this));this.b-=7},function(){yd(this,xd(this)-1);this.b-=5},function(){this.C=Kd(this,this.C);this.b-=5},function(){this.C=Jd(this,this.C);this.b-=5},function(){this.C=F(this);this.b-=7},function(){var a=this.g<<8;this.g=(Ad(this)<<8|this.g)>>1;Bd(this,a&256);this.b-=4},Vd,function(){zd(this,G(this));this.b-=10},function(){var a=G(this);Zb(this.H,a,D(this));
@ -109,47 +110,47 @@ Kd(this,this.F);this.b-=5},function(){this.F=Jd(this,this.F);this.b-=5},function
5},function(){this.w=this.F;this.b-=5},function(){this.w=E(this,D(this));this.b-=7},function(){this.w=this.g;this.b-=5},function(){this.A=this.w;this.b-=5},function(){this.b-=5},function(){this.A=this.B;this.b-=5},function(){this.A=this.C;this.b-=5},function(){this.A=this.D;this.b-=5},function(){this.A=this.F;this.b-=5},function(){this.A=E(this,D(this));this.b-=7},function(){this.A=this.g;this.b-=5},function(){this.B=this.w;this.b-=5},function(){this.B=this.A;this.b-=5},function(){this.b-=5},function(){this.B=
this.C;this.b-=5},function(){this.B=this.D;this.b-=5},function(){this.B=this.F;this.b-=5},function(){this.B=E(this,D(this));this.b-=7},function(){this.B=this.g;this.b-=5},function(){this.C=this.w;this.b-=5},function(){this.C=this.A;this.b-=5},function(){this.C=this.B;this.b-=5},function(){this.b-=5},function(){this.C=this.D;this.b-=5},function(){this.C=this.F;this.b-=5},function(){this.C=E(this,D(this));this.b-=7},function(){this.C=this.g;this.b-=5},function(){this.D=this.w;this.b-=5},function(){this.D=
this.A;this.b-=5},function(){this.D=this.B;this.b-=5},function(){this.D=this.C;this.b-=5},function(){this.b-=5},function(){this.D=this.F;this.b-=5},function(){this.D=E(this,D(this));this.b-=7},function(){this.D=this.g;this.b-=5},function(){this.F=this.w;this.b-=5},function(){this.F=this.A;this.b-=5},function(){this.F=this.B;this.b-=5},function(){this.F=this.C;this.b-=5},function(){this.F=this.D;this.b-=5},function(){this.b-=5},function(){this.F=E(this,D(this));this.b-=7},function(){this.F=this.g;
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ha.length)for(var b=0;b<this.Ha.length;b++)if(this.Ha[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(B(this,a),this.K.da()):this.N&512||(this.K&&B(this,a),
this.da())},function(){Pd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,
this.b-=5},function(){Pd(this,D(this),this.w);this.b-=7},function(){Pd(this,D(this),this.A);this.b-=7},function(){Pd(this,D(this),this.B);this.b-=7},function(){Pd(this,D(this),this.C);this.b-=7},function(){Pd(this,D(this),this.D);this.b-=7},function(){Pd(this,D(this),this.F);this.b-=7},function(){var a=this.j-1;if(this.Ha.length)for(var b=0;b<this.Ha.length;b++)if(this.Ha[b](a))return;this.b-=7;this.S|=256;Yc(this);this.K&&Db(this,-2147483648)?(A(this,a),this.K.ea()):this.N&512||(this.K&&A(this,a),
this.ea())},function(){Pd(this,D(this),this.g);this.b-=7},function(){this.g=this.w;this.b-=5},function(){this.g=this.A;this.b-=5},function(){this.g=this.B;this.b-=5},function(){this.g=this.C;this.b-=5},function(){this.g=this.D;this.b-=5},function(){this.g=this.F;this.b-=5},function(){this.g=E(this,D(this));this.b-=7},function(){this.b-=5},function(){this.g=Gd(this,this.w);this.b-=4},function(){this.g=Gd(this,this.A);this.b-=4},function(){this.g=Gd(this,this.B);this.b-=4},function(){this.g=Gd(this,
this.C);this.b-=4},function(){this.g=Gd(this,this.D);this.b-=4},function(){this.g=Gd(this,this.F);this.b-=4},function(){this.g=Gd(this,E(this,D(this)));this.b-=7},function(){this.g=Gd(this,this.g);this.b-=4},function(){this.g=Hd(this,this.w);this.b-=4},function(){this.g=Hd(this,this.A);this.b-=4},function(){this.g=Hd(this,this.B);this.b-=4},function(){this.g=Hd(this,this.C);this.b-=4},function(){this.g=Hd(this,this.D);this.b-=4},function(){this.g=Hd(this,this.F);this.b-=4},function(){this.g=Hd(this,
E(this,D(this)));this.b-=7},function(){this.g=Hd(this,this.g);this.b-=4},function(){this.g=Md(this,this.w);this.b-=4},function(){this.g=Md(this,this.A);this.b-=4},function(){this.g=Md(this,this.B);this.b-=4},function(){this.g=Md(this,this.C);this.b-=4},function(){this.g=Md(this,this.D);this.b-=4},function(){this.g=Md(this,this.F);this.b-=4},function(){this.g=Md(this,E(this,D(this)));this.b-=7},function(){this.g=Md(this,this.g);this.b-=4},function(){this.g=Nd(this,this.w);this.b-=4},function(){this.g=
Nd(this,this.A);this.b-=4},function(){this.g=Nd(this,this.B);this.b-=4},function(){this.g=Nd(this,this.C);this.b-=4},function(){this.g=Nd(this,this.D);this.b-=4},function(){this.g=Nd(this,this.F);this.b-=4},function(){this.g=Nd(this,E(this,D(this)));this.b-=7},function(){this.g=Nd(this,this.g);this.b-=4},function(){this.g=Id(this,this.w);this.b-=4},function(){this.g=Id(this,this.A);this.b-=4},function(){this.g=Id(this,this.B);this.b-=4},function(){this.g=Id(this,this.C);this.b-=4},function(){this.g=
Id(this,this.D);this.b-=4},function(){this.g=Id(this,this.F);this.b-=4},function(){this.g=Id(this,E(this,D(this)));this.b-=7},function(){this.g=Id(this,this.g);this.b-=4},function(){this.g=Od(this,this.w);this.b-=4},function(){this.g=Od(this,this.A);this.b-=4},function(){this.g=Od(this,this.B);this.b-=4},function(){this.g=Od(this,this.C);this.b-=4},function(){this.g=Od(this,this.D);this.b-=4},function(){this.g=Od(this,this.F);this.b-=4},function(){this.g=Od(this,E(this,D(this)));this.b-=7},function(){this.g=
Od(this,this.g);this.b-=4},function(){this.g=Ld(this,this.w);this.b-=4},function(){this.g=Ld(this,this.A);this.b-=4},function(){this.g=Ld(this,this.B);this.b-=4},function(){this.g=Ld(this,this.C);this.b-=4},function(){this.g=Ld(this,this.D);this.b-=4},function(){this.g=Ld(this,this.F);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(){Md(this,this.w);this.b-=4},function(){Md(this,this.A);this.b-=4},function(){Md(this,this.B);this.b-=
4},function(){Md(this,this.C);this.b-=4},function(){Md(this,this.D);this.b-=4},function(){Md(this,this.F);this.b-=4},function(){Md(this,E(this,D(this)));this.b-=7},function(){Md(this,this.g);this.b-=4},function(){Ed(this)||(B(this,Qd(this)),this.b-=6);this.b-=5},function(){wd(this,Qd(this));this.b-=10},function(){var a=G(this);Ed(this)||B(this,a);this.b-=10},Wd,function(){var a=G(this);Ed(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,vd(this));this.b-=11},function(){this.g=
Gd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,0);this.b-=11},function(){Ed(this)&&(B(this,Qd(this)),this.b-=6);this.b-=5},Xd,function(){var a=G(this);Ed(this)&&B(this,a);this.b-=10},Wd,function(){var a=G(this);Ed(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Hd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,8);this.b-=11},function(){Ad(this)||(B(this,Qd(this)),this.b-=6);this.b-=5},function(){yd(this,Qd(this));this.b-=10},function(){var a=G(this);
Ad(this)||B(this,a);this.b-=10},function(){var a=F(this);hc(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);Ad(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,xd(this));this.b-=11},function(){this.g=Md(this,F(this));this.b-=7},function(){H(this,this.j);B(this,16);this.b-=11},function(){Ad(this)&&(B(this,Qd(this)),this.b-=6);this.b-=5},Xd,function(){var a=G(this);Ad(this)&&B(this,a);this.b-=10},function(){var a=F(this);this.g=cc(this.H,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);Ad(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Nd(this,F(this));this.b-=7},function(){H(this,this.j);B(this,24);this.b-=11},function(){Cd(this)||(B(this,Qd(this)),this.b-=6);this.b-=5},function(){zd(this,Qd(this));this.b-=10},function(){var a=G(this);Cd(this)||B(this,a);this.b-=10},function(){var a=Qd(this);H(this,D(this));zd(this,a);this.b-=18},function(){var a=G(this);Cd(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=Id(this,F(this));this.b-=7},function(){H(this,this.j);B(this,32);this.b-=11},function(){Cd(this)&&(B(this,Qd(this)),this.b-=6);this.b-=5},function(){B(this,D(this));this.b-=5},function(){var a=G(this);Cd(this)&&B(this,a);this.b-=10},function(){var a=D(this);zd(this,xd(this));yd(this,a);this.b-=5},function(){var a=G(this);Cd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Od(this,F(this));this.b-=7},function(){H(this,
this.j);B(this,40);this.b-=11},function(){Fd(this)||(B(this,Qd(this)),this.b-=6);this.b-=5},function(){var a=Qd(this);rd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Fd(this)||B(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Fd(this)||(H(this,this.j),B(this,a),this.b-=6);this.b-=11},function(){H(this,td(this)&255|this.g<<8);this.b-=11},function(){this.g=Ld(this,F(this));this.b-=7},function(){H(this,this.j);B(this,48);this.b-=11},function(){Fd(this)&&
(B(this,Qd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Fd(this)&&B(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Rd(this)},function(){var a=G(this);Fd(this)&&(H(this,this.j),B(this,a),this.b-=6);this.b-=11},Yd,function(){Md(this,F(this));this.b-=7},function(){H(this,this.j);B(this,56);this.b-=11}];
function Zd(a){t.call(this,"ChipSet",a,32768);var b=a.model;b&&!$d[b]&&bb("Unrecognized ChipSet model: "+b);this.g=$d[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Ab(this)}aa(Zd,t);l=Zd.prototype;l.ca=function(){return!1};
4},function(){Md(this,this.C);this.b-=4},function(){Md(this,this.D);this.b-=4},function(){Md(this,this.F);this.b-=4},function(){Md(this,E(this,D(this)));this.b-=7},function(){Md(this,this.g);this.b-=4},function(){Ed(this)||(A(this,Qd(this)),this.b-=6);this.b-=5},function(){wd(this,Qd(this));this.b-=10},function(){var a=G(this);Ed(this)||A(this,a);this.b-=10},Wd,function(){var a=G(this);Ed(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,vd(this));this.b-=11},function(){this.g=
Gd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,0);this.b-=11},function(){Ed(this)&&(A(this,Qd(this)),this.b-=6);this.b-=5},Xd,function(){var a=G(this);Ed(this)&&A(this,a);this.b-=10},Wd,function(){var a=G(this);Ed(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Hd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,8);this.b-=11},function(){Ad(this)||(A(this,Qd(this)),this.b-=6);this.b-=5},function(){yd(this,Qd(this));this.b-=10},function(){var a=G(this);
Ad(this)||A(this,a);this.b-=10},function(){var a=F(this);hc(this.H,a,this.g,this.j+-2&65535);this.b-=10},function(){var a=G(this);Ad(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,xd(this));this.b-=11},function(){this.g=Md(this,F(this));this.b-=7},function(){H(this,this.j);A(this,16);this.b-=11},function(){Ad(this)&&(A(this,Qd(this)),this.b-=6);this.b-=5},Xd,function(){var a=G(this);Ad(this)&&A(this,a);this.b-=10},function(){var a=F(this);this.g=cc(this.H,a,this.j+-2&65535)&
255;this.b-=10},function(){var a=G(this);Ad(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Nd(this,F(this));this.b-=7},function(){H(this,this.j);A(this,24);this.b-=11},function(){Cd(this)||(A(this,Qd(this)),this.b-=6);this.b-=5},function(){zd(this,Qd(this));this.b-=10},function(){var a=G(this);Cd(this)||A(this,a);this.b-=10},function(){var a=Qd(this);H(this,D(this));zd(this,a);this.b-=18},function(){var a=G(this);Cd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=
11},function(){H(this,D(this));this.b-=11},function(){this.g=Id(this,F(this));this.b-=7},function(){H(this,this.j);A(this,32);this.b-=11},function(){Cd(this)&&(A(this,Qd(this)),this.b-=6);this.b-=5},function(){A(this,D(this));this.b-=5},function(){var a=G(this);Cd(this)&&A(this,a);this.b-=10},function(){var a=D(this);zd(this,xd(this));yd(this,a);this.b-=5},function(){var a=G(this);Cd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){this.g=Od(this,F(this));this.b-=7},function(){H(this,
this.j);A(this,40);this.b-=11},function(){Fd(this)||(A(this,Qd(this)),this.b-=6);this.b-=5},function(){var a=Qd(this);rd(this,a&255|this.N&-256);this.g=a>>8;this.b-=10},function(){var a=G(this);Fd(this)||A(this,a);this.b-=10},function(){this.N&=-513;this.b-=4},function(){var a=G(this);Fd(this)||(H(this,this.j),A(this,a),this.b-=6);this.b-=11},function(){H(this,td(this)&255|this.g<<8);this.b-=11},function(){this.g=Ld(this,F(this));this.b-=7},function(){H(this,this.j);A(this,48);this.b-=11},function(){Fd(this)&&
(A(this,Qd(this)),this.b-=6);this.b-=5},function(){this.M=D(this)&65535;this.b-=5},function(){var a=G(this);Fd(this)&&A(this,a);this.b-=10},function(){this.N|=512;this.b-=4;Rd(this)},function(){var a=G(this);Fd(this)&&(H(this,this.j),A(this,a),this.b-=6);this.b-=11},Yd,function(){Md(this,F(this));this.b-=7},function(){H(this,this.j);A(this,56);this.b-=11}];
function Zd(a){t.call(this,"ChipSet",a,32768);var b=a.model;b&&!$d[b]&&bb("Unrecognized ChipSet model: "+b);this.g=$d[b]||{};a.sound&&(this.U=null,window&&(this.U=window.AudioContext||window.webkitAudioContext),this.U&&new this.U);Ab(this)}aa(Zd,t);l=Zd.prototype;l.da=function(){return!1};
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;this.R=a;this.B=Kb(a,"Keyboard");this.C=Kb(a,"SerialPort");this.video=Kb(a,"Video");bc(b,this,this.g.Bb);gc(b,this,this.g.Cb);if(d){var e=this;ae(d,16384,function(){for(var a="",b=0;b<e.j.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=q(e.j[b]);e.K.i(a)})}};l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.g.INIT&&!this.restore(this.g.INIT)&&this.aa("reset error")};
l.save=function(){var a=new ud(this);switch(this.g.pa){case be.pa:a.set(0,[this.ea,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case be.pa:return this.ea=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ea;y(this,a,null,b,"STATUS0",c,!0);return c};
l.save=function(){var a=new ud(this);switch(this.g.pa){case be.pa:a.set(0,[this.ba,this.A,this.fa,this.N,this.T,this.Y,this.Z]);break;case J.pa:a.set(0,[this.W,this.D]),a.set(1,[this.F,this.I]),a.set(2,[this.w,this.O,this.X,this.V]),a.set(3,[this.M,this.b,this.L,this.S,this.j])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.g.pa){case be.pa:return this.ba=b[0],this.A=b[1],this.fa=b[2],this.N=b[3],this.T=b[4],this.Y=b[5],this.Z=b[6],!0;case J.pa:return this.W=b[0],this.D=b[1],b=a[1],this.F=b[0],this.I=b[1],b=a[2],this.w=b[0],this.O=b[1],this.X=b[2],this.V=b[3],b=a[3],this.M=b[0],this.b=b[1],this.L=b[2],this.S=b[3],this.j=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Jd=function(a,b){var c=this.ba;y(this,a,null,b,"STATUS0",c,!0);return c};
l.Kd=function(a,b){var c=this.A;y(this,a,null,b,"STATUS1",c,!0);return c};l.Ld=function(a,b){var c=this.fa;y(this,a,null,b,"STATUS2",c,!0);return c};l.Id=function(a,b){var c=this.N>>8-this.T&255;y(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.Wd=function(a,b,c){y(this,a,b,c,"SHIFT.COUNT",null,!0);this.T=b};l.Yd=function(a,b,c){y(this,a,b,c,"SOUND1",null,!0);this.Y=b};l.Xd=function(a,b,c){y(this,a,b,c,"SHIFT.DATA",null,!0);this.N=b<<8|this.N>>8};
l.Zd=function(a,b,c){y(this,a,b,c,"SOUND2",null,!0);this.Z=b};l.$d=function(a,b,c){y(this,a,b,c,"WATCHDOG",null,!0)};function ce(a){var b=0,c=0,d=~a.M;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Md=function(a,b){var c=this.D,c=c&~J.za.jc;if((Rc(this.u)&64)<<1&&(c|=J.za.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.Ka.nd:break;case J.Ba.Ka.Lc:this.M=this.M<<1|d;break;case J.Ba.Ka.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.Ka.Mc:this.b=this.b<<1|d;break;case J.Ba.Ka.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.Ka.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.Ka.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.za.kc;this.S&&(c|=J.za.kc);c&=~J.za.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.Aa*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.za.dc);c&=~J.za.sc;this.C&&this.C.ia&de&&(c|=J.za.sc);this.D=c;y(this,a,null,b,"FLAGS",c);return c};
l.Md=function(a,b){var c=this.D,c=c&~J.Aa.jc;if((Rc(this.u)&64)<<1&&(c|=J.Aa.jc,c!=this.D)){var d,e;d=this.L&1;e=this.L>>1&7;switch(e){case J.Ba.La.nd:break;case J.Ba.La.Lc:this.M=this.M<<1|d;break;case J.Ba.La.Rc:d=ce(this);this.j[d]=J.Ba.vb;Eb(this,"doNVRCommand(): erase data at addr "+q(d));break;case J.Ba.La.Mc:this.b=this.b<<1|d;break;case J.Ba.La.rd:d=ce(this);e=this.b&J.Ba.vb;this.j[d]=e;Eb(this,"doNVRCommand(): write data "+q(e)+" to addr "+q(d));break;case J.Ba.La.ld:d=ce(this);e=this.j[d];
null==e&&(e=J.Ba.vb);this.b=e;Eb(this,"doNVRCommand(): read data "+q(e)+" from addr "+q(d));break;case J.Ba.La.md:this.b<<=1;this.S=this.b&J.Ba.vb+1;break;default:Eb(this,"doNVRCommand(): unrecognized command "+qa(e))}}c&=~J.Aa.kc;this.S&&(c|=J.Aa.kc);c&=~J.Aa.dc;if(d=this.B){d=this.B;if(e=d.A)e=d.u,e=Rc(d.u)>=d.F+e.za*e.U/1E3*1.2731488;e&&(d.A=!1);d=!d.A}d&&(c|=J.Aa.dc);c&=~J.Aa.sc;this.C&&this.C.ia&de&&(c|=J.Aa.sc);this.D=c;y(this,a,null,b,"FLAGS",c);return c};
l.ae=function(a,b,c){y(this,a,b,c,"BRIGHTNESS");this.W=b};l.de=function(a,b,c){y(this,a,b,c,"NVR.LATCH");this.L=b};l.ce=function(a,b,c){y(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.w=this.w&-4|a;break;case 1:this.w=this.w&-13|a<<2;this.video&&(b=this.video,a=this.w,Eb(b,"updateScrollOffset("+a+")"),b.sa!==a&&((b.sa=a)?md(b,!0):b.xa=!0));break;case 2:switch(a){case 0:this.O=~this.O;break;case 2:case 3:this.X=3-a}break;case 3:this.V=a}};
l.be=function(a,b,c){y(this,a,b,c,"DC011");b&J.La.kd?(b&=J.La.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.La.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.La.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.La.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.za.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,za:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},La:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},Ka:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
l.be=function(a,b,c){y(this,a,b,c,"DC011");b&J.Ma.kd?(b&=J.Ma.oc,this.I!=b&&(this.I=b,this.video&&(a=this.video,b=this.I==J.Ma.oc?50:60,Eb(a,"updateRate("+b+")"),a.jb=b))):(b&=J.Ma.Wb,this.F!=b&&(this.F=b,this.video&&(a=this.F==J.Ma.Wb?132:80,b=this.video,Eb(b,"updateDimensions("+a+","+(80<a&&this.D&J.Aa.ic?14:24)+")"),b.O=a,b.ga=b.Da,80<a&&b.ga--,ee(b)&&fe(b))))};
var be={pa:1978.1,pd:{qa:0,ff:1,kf:16,sf:32,Bf:64,Af:128,bb:14},Oa:{qa:1,Pc:1,jd:2,ed:4,fd:16,gd:32,hd:64,bb:8},qd:{qa:2,ef:3,Jf:4,gf:8,wf:16,xf:32,yf:64,hf:128,bb:0},Ff:{qa:3},Df:{qa:2,tf:7},Hf:{qa:3,Kf:1,Gf:2,zf:4,qf:8,jf:16,Ae:32},Ef:{qa:4},If:{qa:5,lf:1,mf:2,nf:4,pf:8,Lf:16}},J={pa:100,Aa:{qa:66,sc:1,ic:2,dd:4,vf:8,uf:16,kc:32,jc:64,dc:128},Oc:{qa:66,INIT:0},Ma:{qa:194,De:0,Wb:16,kd:32,oc:48,Uc:0,Vc:32},ub:{qa:162,Cf:0,Xc:0,Tc:0,Wc:0,Sc:0},Ba:{rf:{qa:98},La:{Mc:0,Lc:1,md:2,rd:4,Rc:5,ld:6,nd:7},
vb:16383}},$d={SI1978:be,VT100:J};be.INIT=[[be.pd.bb,be.Oa.bb,be.qd.bb,0,0,0,0]];
J.INIT=[[J.Oc.INIT,J.za.ic|J.za.dd],[J.La.Uc,J.La.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
J.INIT=[[J.Oc.INIT,J.Aa.ic|J.Aa.dd],[J.Ma.Uc,J.Ma.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J.ub.Sc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];be.Bb={0:Zd.prototype.Jd,1:Zd.prototype.Kd,2:Zd.prototype.Ld,3:Zd.prototype.Id};
be.Cb={2:Zd.prototype.Wd,3:Zd.prototype.Yd,4:Zd.prototype.Xd,5:Zd.prototype.Zd,6:Zd.prototype.$d};J.Bb={66:Zd.prototype.Md};J.Cb={66:Zd.prototype.ae,98:Zd.prototype.de,162:Zd.prototype.ce,194:Zd.prototype.be};Va(function(){for(var a=rb(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Zd(d);qb(d,c)}});
function ge(a){t.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=ra(this.j);if(this.j){a=this.j;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){he(c,a,b,f)})}}aa(ge,t);ge.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ie(this)};
ge.prototype.wa=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var u=f,k=[k>>>0,g],v=Da(u,k,a.Ac);0>v&&u.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Nf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};ge.prototype.va=function(){return!0};
ge.prototype.wa=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var v=f,k=[k>>>0,g],u=Da(v,k,a.Ac);0>u&&v.splice(-(u+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Nf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};ge.prototype.va=function(){return!0};
function he(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ma(b[e],16);ie(a)}}
function ie(a){if(!zb(a))if(!a.j)Ab(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)yb(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(Qb(a.H,b,a.g,xc)){var c;for(c=0;c<a.b.length;c++)Yb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Ab(a)}}Va(function(){for(var a=rb(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new ge(d);qb(d,c)}});
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ja=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ja&&(c.Ja=a.Ja)):c.b=null,ke(c))})}}aa(je,t);
function je(a){t.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ka=a.exec;this.j=!1;this.b=a.file;this.B=ra(this.b);if(this.b){a=this.b;var b=sa(this.B);"json"!=b&&"hex"!=b&&(a=va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ga(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(hb(c.eb,a,b),(a=Ha(a,b))?(c.g=a.la,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ka&&(c.Ka=a.Ka)):c.b=null,ke(c))})}}aa(je,t);
je.prototype.Ga=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ke(this)};je.prototype.wa=function(){return!0};je.prototype.va=function(){return!0};
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ja){if(a.Ja==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:pe(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",u=255;u--;){var v=E(a.u,k++);if(36==v)break;
p+=String.fromCharCode(v)}pe(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),B(d,b),e.da());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ja)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function pe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function ke(a){!a.j&&a.A&&Qb(a.H,a.w,a.A,1)&&(a.j=!0);if(!zb(a)){if(!a.j)r("No RAM allocated");else if(a.b){if(!a.g||!a.H)return;var b=a.w;null!==a.Qa&&(b=a.Qa);for(var c=0;c<a.g.length;c++)Yb(a.H,b+c,a.g[c]);if(null!==a.Ka){if(a.Ka==le){for(c=0;c<me.length;c++)Yb(a.H,me[c],118);qd(a.u,function(a){return function(b){if(0<=me.indexOf(b)){var c=!1,d=a.u,e=a.K;if(b==ne)switch(c=!0,d.A){case oe:pe(a,String.fromCharCode(d.C));break;case Le:for(var k=xd(d),p="",v=255;v--;){var u=E(a.u,k++);if(36==u)break;
p+=String.fromCharCode(u)}pe(a,p);break;default:c=!1}c?Xd.call(d):e&&(a.i("\nCP/M vector "+q(b)),A(d,b),e.ea());b=!0}else b=!1;return b}}(a))}sd(a.u,a.Ka)}delete a.g}Ab(a)}}je.prototype.reset=function(){};function pe(a,b){b=b.replace(/\r/g,"");a.ua&&(a.ua.value+=b,a.ua.scrollTop=a.ua.scrollHeight)}var ne=5,oe=2,Le=9,le=256,me=[0,ne];Va(function(){for(var a=rb(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new je(d);qb(d,c)}});
function Me(a){t.call(this,"Keyboard",a,65536);(a=a.model)&&!Ne[a]&&bb("Unrecognized Keyboard8080 model: "+a);this.b=Ne[a]||{};this.reset();Ab(this)}aa(Me,t);l=Me.prototype;
l.ca=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
l.da=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.P[e]){if("led"==a&&this.b.fb[b])return this.P[e]=c,!0;switch(b){case "kbd":case "screen":return Pa("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.b.sb[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.b.Sa)if(d.b.Sa[c]==a){c=+c;break a}c=0}c&&(b?Oe(d,16,!0,!0):Oe(d,16,!1),Oe(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Pe(d,a,!0)},c.onkeyup=function(a){return Pe(d,a,!1)}):(c.onkeydown=function(a){return Qe(d,a,!0)},
c.onkeyup=function(a){return Qe(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=m.ab&&a<=m.wb?d.g&(Re|Se)||(d.g|=Se,Oe(d,20,!0),Te(d)):a>=m.yc&&a<=m.z&&d.g&Se&&(d.g&=~Se,Oe(d,20,!1),Te(d));return!0}),c.onpaste=function(a){a:{if(d.C&&d.C.Ra&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){Ue(d.C,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.b.Ua&&void 0!==this.b.Ua[b])return this.P[e]=c,c.onclick=
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=Ve:20==b&&(e=Se);if(e){c.style.fontWeight="normal";if(d=!(a.g&e))c.style.fontWeight="bold";We(a,b,d)}Oe(a,b,d,!e);a.R&&a.R.Za()}}(this,this.b.Ua[b]),!0}}return!1};l.Ga=function(a,b,c,d){this.R=a;this.u=c;this.K=d;var e=this;this.L=Wc(this.u,function(){Xe(e)});this.W=Kb(a,"ChipSet");this.C=Kb(a,"SerialPort");bc(b,this,this.b.Bb);gc(b,this,this.b.Cb)};
l.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){this.j=[];this.g=0;this.b.INIT&&!this.restore(this.b.INIT)&&this.aa("reset error")};l.save=function(){var a=new ud(this);switch(this.b.pa){case K.pa:a.set(0,[this.D,this.B,this.A,this.F,-1])}return a.data()};
@ -166,27 +167,27 @@ M[96]=67,M[118]=68,M[220]=69,M[m.Hb]=70,M[m.cc]=71,M[m.Zb]=72,M[m.Yb]=73,M[m.ab]
120,N[m.xd]=121,N[m.z]=122,N[m.mc]=133,N[m.lc]=134,N[m.xc]=135,N[m.qc]=136,N[m.uc]=137,N[m.Q]=138,N[m["}"]]=148,N[m["{"]]=149,N[m.ac]=150,N[m.rc]=151,N[m.nc]=152,N[m.E]=153,N[m["!"]]=154,N[m["~"]]=164,N[m._]=165,N[m["("]]=166,N[m["&"]]=167,N[m.$]=168,N[m["#"]]=169,N[m["+"]]=180,N[m[")"]]=181,N[m["*"]]=182,N[m["^"]]=183,N[m["%"]]=184,N[m["@"]]=185,N[m["|"]]=197,N[m.Hb]=198,N[m.cc]=199,N[m.Zb]=200,N[m.Yb]=201,N[m.ab]=202,N[m['"']]=213,N[m[":"]]=214,N[m.bc]=215,N[m.$b]=216,N[m.Fb]=217,N[m.pc]=218,N[m[">"]]=
229,N[m["<"]]=230,N[m.hc]=231,N[m.Ub]=232,N[m.wc]=233,N[m["?"]]=245,N[m.gc]=246,N[m.tc]=248,N[m.Vb]=249,N[m.wb]=250,N),Tb:{},fb:{},Ua:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},Nc:{qa:130,INIT:127},Ca:{qa:130,bd:1,ad:2,$c:4,Zc:8,cd:16,fc:32,ec:63,od:64,Ce:128,INIT:0},Yc:127};K.fb={l4:K.Ca.bd,l3:K.Ca.ad,l2:K.Ca.$c,l1:K.Ca.Zc,locked:K.Ca.cd,local:K.Ca.fc,online:~K.Ca.fc,"caps-lock":Se};var Ne={SI1978:Ye,VT100:K};
K.INIT=[[K.Ca.INIT,K.Nc.INIT,!1,0,-1]];K.Bb={130:Me.prototype.Nd};K.Cb={130:Me.prototype.ee};Va(function(){for(var a=rb(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new Me(d);qb(d,c)}});
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ba=a.cellHeight||1;this.ea=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.Ha=this.M/this.O|0;this.Ma=this.I/this.Z|0;1<this.ba&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
function lf(a,b,c,d,e){t.call(this,"Video",a,262144);var f=this;this.Ta=Pa("Gecko/");var g=["","moz","ms","webkit"];this.M=a.screenWidth;this.I=a.screenHeight;this.ka=a.bufferAddr;this.vd=a.bufferRAM;var h=a.bufferFormat;this.Y=h&&mf[h.toUpperCase()]||nf;this.O=a.bufferCols;this.Z=a.bufferRows;this.Da=this.ga=a.cellWidth||1;this.ca=a.cellHeight||1;this.ba=null;this.Na=!1;this.na=a.bufferBits||1;this.yd=a.bufferLeft||0;if(this.g=a.bufferRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g&&
(this.aa("unsupported buffer rotation: "+this.g),this.g=0);this.oa=a.interruptRate;this.kb=a.refreshRate||60;this.F=b;this.j=c;this.V=(this.Cd=d)||b||null;this.Db=this.M;this.td=this.I;this.Ha=this.M/this.O|0;this.Ia=this.I/this.Z|0;1<this.ca&&(this.Z++,this.sa=0,this.xa=!1);b=a.smoothing;(c=Qa("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.j[d]){this.j[d]=b;break}if(this.w=a.screenRotate)this.w=this.w%360,
0<this.w&&(this.w-=360),-90!=this.w?(this.aa("unsupported screen rotation: "+this.w),this.w=0):(this.j.translate(0,this.I),this.j.rotate(this.w*Math.PI/180),this.j.scale(this.I/this.M,this.M/this.I));if(this.b=e)if(this.b.Xa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Xa){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){of(f,!!(document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){of(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=sa(this.S)&&(this.S=va()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ga(this.S,null,!0,function(a,b,c){pf(f,a,b,c)});this.Aa={}}aa(lf,t);
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ba;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.ca=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Aa[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;ee(this);if(this.B=Kb(a,"Keyboard")){for(var e in this.Aa)this.B.ca("led",e,this.Aa[e]);this.F&&this.B.ca(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Wc(this.u,function(){md(f)});Xc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Ab(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ea=f,fe(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)&&Ab(a)}}
function fe(a){a.ea&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ba),xf(a,a.ga,a.ba,a.ya)],a.T[yf]=[xf(a,2*a.ga,a.ba),xf(a,2*a.ga,a.ba,a.ya)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ba),xf(a,2*a.ga,2*a.ba,a.ya)])}
function xf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ea.length/e,h=!1===d,k={ga:b,ba:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),u=0;u<g;u++){for(var v=0,A=v;v<a.ba;v++)for(var x=u*e+(f+v&e-1),x=d&&8==v?255:a.ea[x],w=0;w<c/a.ba;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Bf(a,p,za,A,C?1:0),za++;C=L}A++}k.context.putImageData(p,
(u&15)*b,(u>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new ud(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
document.mozFullScreenElement||document.webkitFullscreenElement))},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){of(f,null)},!1);break}}if(this.S=a.fontROM)"json"!=sa(this.S)&&(this.S=va()+"/api/v1/dump?file="+this.S+"&format=bytes"),Ga(this.S,null,!0,function(a,b,c){pf(f,a,b,c)});this.za={}}aa(lf,t);
function ee(a){a.C=a.O*a.ga;a.N=a.Z*a.ca;var b=a.C,c=a.N;a.g&&(b=a.N,c=a.C);a.L=0;if(!a.vd&&(a.L=(a.C*a.na>>3)*a.N,!Qb(a.H,a.ka,a.L,3)))return!1;a.L?(a.Va=a.j.createImageData(b,c),a.hb=16/a.na|0,qf(a,a.L>>1)):qf(a,(a.O+1)*a.Z);a.D=document.createElement("canvas");a.D.width=b;a.D.height=c;a.ta=a.D.getContext("2d");a.T={};a.X=1<<a.na;a.U=Array(a.X+rf);a.U[0]=[0,0,0,255];a.U[1]=[255,255,255,255];a.Y==sf&&(a.U[a.X+tf]=[255,255,0,255],a.U[a.X+uf]=[0,255,0,255]);a.Y==vf&&(a.jb=60,a.ya=!1,a.fa=Array(a.O));
return!0}l=lf.prototype;l.da=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.za[b]=c,!0;switch(b){case "fullScreen":return this.P[b]=c,this.b&&this.b.Xa?c.onclick=function(){d.Xa()}:c.parentNode.removeChild(c),!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;ee(this);if(this.B=Kb(a,"Keyboard")){for(var e in this.za)this.B.da("led",e,this.za[e]);this.F&&this.B.da(this.Cd?"textarea":"canvas","screen",this.V)}var f=this;this.xb=Wc(this.u,function(){md(f)});Xc(this.u,this.xb,1E3/Math.max(this.kb,this.oa));this.ib=0;this.S||Ab(this)};
function pf(a,b,c,d){if(d)a.aa("Unable to load font ROM (error "+d+": "+b+")");else{hb(a.eb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(2048==f.length)a.ba=f,fe(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)&&Ab(a)}}
function fe(a){a.ba&&(a.Na=a.Y==vf,a.T[wf]=[xf(a,a.ga,a.ca),xf(a,a.ga,a.ca,a.ya)],a.T[yf]=[xf(a,2*a.ga,a.ca),xf(a,2*a.ga,a.ca,a.ya)],a.T[zf]=a.T[Af]=[xf(a,2*a.ga,2*a.ca),xf(a,2*a.ga,2*a.ca,a.ya)])}
function xf(a,b,c,d){var e=8>=a.Da?8:16,f=8<e?15:0,g=a.ba.length/e,h=!1===d,k={ga:b,ca:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=g/16*c;k.context=k.canvas.getContext("2d");for(var p=k.context.createImageData(b,c),v=0;v<g;v++){for(var u=0,B=u;u<a.ca;u++)for(var x=v*e+(f+u&e-1),x=d&&8==u?255:a.ba[x],w=0;w<c/a.ca;w++){for(var C=0,T=0,za=T;T<a.ga;T++){for(var L=x&128>>(7<T?7:T),C=a.Na&&!L&&C?C:L,ja=0;ja<b/a.ga;ja++)h&&(C=!C),Bf(a,p,za,B,C?1:0),za++;C=L}B++}k.context.putImageData(p,
(v&15)*b,(v>>4)*c)}return k}l.wa=function(a,b){return b||!a||this.restore(a)?!0:!1};l.va=function(a){return!a||this.save()};l.save=function(){var a=new ud(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};
l.Xa=function(){var a=!1;if(this.b){if(this.b.Xa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.M/this.I;b>c&&(a=Math.round(c/b*100)+"%")}this.Ta?(this.F.style.width=a,this.F.style.width=a,this.F.style.display="block",this.F.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Xa();a=!0}this.V&&this.V.focus()}return a};
function of(a,b){!b&&a.b&&(a.Ta?a.F.style.width=a.F.style.height="":a.b.style.width=a.b.style.height="");Eb(a,"notifyFullScreen("+b+")")}function qf(a,b){a.gb=b;a.W=!1;if(void 0===a.A||a.A.length!=a.gb)a.A=Array(a.gb)}function Bf(a,b,c,d,e){d=a.g?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.Y==sf&&(208<=c&&236>c?e=a.X+tf:28<=c&&72>c&&(e=a.X+uf));a=a.U[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,u=c,v=d,A=a.O;for(v!=wf&&(A>>=1);;){var x=Vb(a.H,u++);if((x&Cf)==Cf){var w=Vb(a.H,u++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,u),c=c+(w&Ff?
Gf:Hf);break}if(p<A)a.fa[p++]=x;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=v)for(u=a.W&&a.A[g]==A,a.A[g++]=A,A=0;A<p;A++){x=a.fa[A];if(!u||x!==a.A[g]){a.A[k=g]=x;var w=a,C=a.ta,T=x&127;if(x=w.T[v][x&128?1:0]){var za=(T&15)*x.ga,T=(T>>4)*x.ba,L,ja,ua,na,Ma=x.ga,fc=x.ba;C?(L=A*w.ga,ja=e*w.ba,ua=w.ga,na=w.ba):(L=A*w.Ha,ja=e*w.Ma,ua=w.Ha,na=w.Ma);x.ga>w.ga&&(L*=2,ua*=2);x.ba>w.ba&&(v==Af&&(T+=w.ba),fc=w.ba);C?C.drawImage(x.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(x.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ba,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;v=d=0;u=a.na;A=(1<<u)-1;a.yd&&(u=-u,v=16+u);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=v)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(x=a.hb;x--;)za=w>>C&A,Bf(a,a.Va,h++,k,za),C+=u;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
function md(a,b){var c=!0;if(!b){a.oa&&(120==a.oa?a.ib&1?(Sd(a.u,2),c=!1):Sd(a.u,1):Sd(a.u,4));if(c&&a.W&&a.L){for(var d=a.H,e=a.L,f=!0,g=a.ka>>>d.g;0<e&&g<d.b.length;)d.b[g].Ea&&(d.b[g].Ea=f=!1,d.b[g].Dc=!0),e-=d.w,g++;f&&(c=!1)}Xc(a.u,a.xb,1E3/Math.max(a.kb,a.oa));a.ib++}if(c)if(1<a.ga)switch(a.Y){case vf:for(var c=a.ka,d=-1,e=0,f=60==a.jb?2:5,h=g=0,k=-1;e<a.Z;){var p=0,v=c,u=d,B=a.O;for(u!=wf&&(B>>=1);;){var x=Vb(a.H,v++);if((x&Cf)==Cf){var w=Vb(a.H,v++),d=w&Df,c=(w&Ef)<<8|Vb(a.H,v),c=c+(w&Ff?
Gf:Hf);break}if(p<B)a.fa[p++]=x;else break}if(f)f--;else{for(;p<a.fa.length;)a.fa[p++]=0;if(0<=u)for(v=a.W&&a.A[g]==B,a.A[g++]=B,B=0;B<p;B++){x=a.fa[B];if(!v||x!==a.A[g]){a.A[k=g]=x;var w=a,C=a.ta,T=x&127;if(x=w.T[u][x&128?1:0]){var za=(T&15)*x.ga,T=(T>>4)*x.ca,L,ja,ua,na,Ma=x.ga,fc=x.ca;C?(L=B*w.ga,ja=e*w.ca,ua=w.ga,na=w.ca):(L=B*w.Ha,ja=e*w.Ia,ua=w.Ha,na=w.Ia);x.ga>w.ga&&(L*=2,ua*=2);x.ca>w.ca&&(u==Af&&(T+=w.ca),fc=w.ca);C?C.drawImage(x.canvas,za,T,Ma,fc,L,ja,ua,na):(L+=0,ja+=0,w.j.drawImage(x.canvas,
za,T,Ma,fc,L,ja,ua,na))}h++}g++}e++}}a.W=!0;!b&&a.xa&&1==h&&(a.A[k]=-1,h=0);a.xa=!1;(h||b)&&a.ta&&a.j.drawImage(a.D,0,a.sa,a.C,a.N-a.ca,0,0,a.Db,a.td)}else{e=a.ka;f=e+a.L;k=h=g=0;b=a.C;p=0;c=a.N;u=d=0;v=a.na;B=(1<<v)-1;a.yd&&(v=-v,u=16+v);for(;e<f;){w=Xb(a.H,e);if(a.W&&w===a.A[g])h+=a.hb;else{a.A[g]=w;(C=u)&&(w=w>>8|(w&255)<<8);h<b&&(b=h);for(x=a.hb;x--;)za=w>>C&B,Bf(a,a.Va,h++,k,za),C+=v;h>p&&(p=h);k<c&&(c=k);k>=d&&(d=k+1)}e+=2;g++;if(h>=a.C&&(h=0,k++,k>a.N))break}a.W=!0;b<a.C&&(e=p-b,d-=c,a.g&&
(f=b,g=e,b=c,e=d,c=a.C-(f+g),d=g),a.ta.putImageData(a.Va,0,0,b,c,e,d),a.j.drawImage(a.D,0,0,a.D.width,a.D.height,0,0,a.M,a.I))}}var tf=0,uf=1,rf=2,nf=0,sf=1,vf=2,mf={SI1978:sf,VT100:vf},wf=96,yf=64,zf=32,Af=0,Cf=127,Ef=15,Ff=16,Df=96,Gf=8192,Hf=16384;
Va(function(){for(var a=rb(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=pb(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=Ia().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Qa("aspect"));f&&.3<=f&&3.33>=f&&(Ua("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Pa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new lf(d,e,g,f,c);qb(d,c)}});
function If(a){t.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Jf;b&&(void 0===c&&(c="Panel"),(c=ob(c,this.id))&&(b=c.P[b])&&this.ca(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(If,t);l=If.prototype;l.ca=function(a,b,c,d){var e=this;switch(b){case Jf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Kf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
function If(a){t.call(this,"SerialPort",a,8388608);this.T=+a.adapter;switch(this.T){case 0:this.U=0;this.X=2;break;default:r("Unrecognized serial adapter #"+this.T);return}this.g=this.j=null;this.V=a.tabSize;this.S=a.charBOL;this.w=0;this.N=!1;this.D=!0;var b=a.binding;if("console"==b)this.j="";else{var c;a=Jf;b&&(void 0===c&&(c="Panel"),(c=ob(c,this.id))&&(b=c.P[b])&&this.da(null,a,b))}this.A="";this.b=this.Ra=this.I=null;this.exports={connect:this.Fc,receiveData:this.Ob,receiveStatus:this.ne}}
aa(If,t);l=If.prototype;l.da=function(a,b,c,d){var e=this;switch(b){case Jf:return this.P[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Kf(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Kf(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.P[b]=c,c.onclick=function(){e.Ob(d);return!0},!0}return!1};
l.Ga=function(a,b,c,d){this.R=a;this.H=b;this.u=c;this.K=d;var e=this;this.Y=Wc(this.u,function(){e.Ob()});this.Z=Wc(this.u,function(){Ue(e)});this.W=Kb(a,"ChipSet");bc(b,this,Lf,this.U);gc(b,this,Mf,this.U);Ab(this)};
l.Fc=function(a){if(!this.b){var b=Kc(this.R,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Aa(c[0]);if(d!=this.cb)return;c=Aa(c[1]);if(this.b=mb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.D);if(this.Ra=e.receiveData){this.D=a;this.I=e.receiveStatus;this.status("Connected "+this.eb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
l.wa=function(a,b){if(!b)if(this.Fc(this.D),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.va=function(a){return a?this.save():!0};l.reset=function(){Nf(this)};l.save=function(){var a=new ud(this),b=0,c=[];c[b++]=this.F;c[b++]=this.M;c[b++]=this.O;c[b++]=this.ia;c[b++]=this.B;c[b++]=this.C;c[b]=this.L;a.set(0,c);return a.data()};l.restore=function(a){return Nf(this,a[0])};
@ -195,109 +196,109 @@ l.Ob=function(a){null!=a&&(this.A="number"!=typeof a?a:this.A+String.fromCharCod
l.Vd=function(a,b,c){y(this,a,b,c,"DATA");this.O=b;this.ia&=~(de|Xf);Eb(this,"transmitByte("+qa(b)+")");if(19==b)this.N=!0;else if(17==b)this.N=!1;else if(this.Ra&&this.Ra.call(this.b,b),this.g)if(8==b)this.g.value=this.g.value.slice(0,-1),0<this.w&&this.w--;else{var d;13!=b&&10!=b&&(d=Ca[b]);a=d=d?"<"+d+">":String.fromCharCode(b);c=a.length;9==b?(b=this.V||8,c=b-this.w%b,this.V&&(a=ya("",c))):13==b&&(this.w=c=0,a="\n");this.S&&!this.w&&c&&(a=String.fromCharCode(this.S)+a);this.g.value+=a;this.g.scrollTop=
this.g.scrollHeight;this.w+=c}else if(null!=this.j){if(10==b||1024<=this.j.length)this.i(this.j),this.j="";10!=b&&(this.j+=String.fromCharCode(b))}this.u&&Xc(this.u,this.Z,Pf(this,Yf))};l.Ud=function(a,b,c){y(this,a,b,c,"CONTROL");this.F?(this.I&&(b^this.C)&(Zf|$f)&&(a=0,this.D?(a|=b&Zf?32:0,a|=b&$f?320:0):(a|=b&Zf?16:0,a|=b&$f?1048576:0),this.I.call(this.b,a)),this.C=b,this.C&ag&&(this.F=!1)):(this.B=b,this.F=!0)};l.Td=function(a,b,c){y(this,a,b,c,"BAUDRATES");this.L=b};
var Rf=12,Sf=16,Tf=192,$f=2,Zf=32,ag=64,de=1,Uf=2,Xf=4,Wf=128,Vf=15,Yf=240,Qf=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Of=[!1,0,0,133,142,39,238],Jf="buffer",Lf={0:If.prototype.Hd,1:If.prototype.Gd},Mf={0:If.prototype.Vd,1:If.prototype.Ud,2:If.prototype.Td};Va(function(){for(var a=rb(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new If(d);qb(d,c)}});
function bg(a){t.call(this,"Debugger",a);this.ta=+a.base||16;this.ka=null;this.oa=["{","}"];this.Z=["[","]"];this.N=this.Y=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
function bg(a){t.call(this,"Debugger",a);this.W=+a.base||16;this.V=-1;this.oa=null;this.ta=["{","}"];this.fa=["[","]"];this.N=this.ba=this.C=0;this.L=!1;this.b=-1;this.g=[];this.S={}}aa(bg,t);bg.prototype.Kb=function(){return-1};bg.prototype.Lb=function(){};
bg.prototype.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Aa(a.substring(d,f))),d=f+1}}return b};
function cg(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function dg(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":case "--":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=
e?1:0;break;case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(cg(d))}return!0}
function eg(a,b,c){var d;a.ka=null;b&&(b=fg(a,b));if(b){for(var e=0,f=!1,g=b,h=[],k=[],p=b.split(/(\|\||&&|\||\^\^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var u=p[e++],v=u.length,A=null,x=0;e<p.length&&(A=p[e++],x=A.length);u=Aa(u);if(!u){if("-"!=A){f=!0;break}A="--";u="0"}var w=gg(a,u,null,c);if(void 0===w)if(null==a.ka&&c)a.ka=u,w=0;else{f=!0;c=!c;break}h.push(cg(w));if(!A)break;k.length&&hg[A]<hg[k[k.length-1]]&&dg(h,k,1);k.push(A);b=b.substr(v+x)}dg(h,k)&&1==h.length||(f=!0);
f?!1===c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),!1===c&&ig(a,null,d))}return d}
function fg(a,b){var c,d=a.oa[0],e=a.oa[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=eg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?jg(a,g):"undefined")}if(a.Z.length)for(d=a.Z[0],e=a.Z[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.N-a.Y}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function gg(a,b,c,d){var e;null!=b?(e=a.Kb(b),0<=e?e=a.Lb(e):(e=a.S[b],null==e&&(e=ma(b,a.ta))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function ig(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,u=8,v="";u?32<u&&(u=32):u=32;for(var A=null==k||isNaN(k),x=p=p||u;0<u--;)x||(v=","+v,x=p),v=(A?"?":k&1?"1":"0")+v,k>>=1,x--;g=v+g;d>>=8}d=n(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function kg(a,b){if(b)return ig(a,b,a.S[b]);var c=0;for(b in a.S)ig(a,b,a.S[b]),c++;return 0<c}function jg(a,b){var c;c=void 0===c?0:c;switch(a.ta){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var hg={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"--":10};
function lg(a){bg.call(this,a);this.style=mg;this.F=ng();this.sa=ng();this.O=ng();this.A=[];this.j=this.I=this.w=[];og(this);this.W=0;pg(this);this.ea={};qg(this,a.messages);this.fa=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(lg,bg);l=lg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&qg(this,a);this.na=rg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=sg(tg(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var u=b[e];u.type==c?p++||d.i("..."):(c=u.type,p=Tb[c],u&&d.i(n(u.id)+" %"+n(e<<d.H.g)+" %%"+n(u.J)+" "+q(u.pb)+" "+
q(u.size)+" "+p),c!=wc&&(c=-1),p=0);a+=d.H.w;e++}}});Ab(this)};
l.ca=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=ug(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function sg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ia=function(a,b){var c=255,d=sg(a);-1!==d&&(c=Vb(this.H,d),b&&vg(a,b));return c};l.Gb=function(a,b){var c=65535,d=sg(a);-1!==d&&(c=Xb(this.H,d),b&&vg(a,b));return c};l.Xb=function(a,b,c){var d=sg(a);-1!==d&&(Yb(this.H,d,b),c&&vg(a,c),Pc(this.u,!0))};
l.Qc=function(a,b,c){var d=sg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&vg(a,c);Pc(this.u,!0)}};function ng(a){return{J:a,Fa:!1}}function wg(a){return[a.J,a.Fa]}function Ug(a){return{J:a[0],Fa:a[1]}}
function tg(a,b,c){var d;c=(c?a.F:a.sa).J;if(void 0!==b){d=b=fg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=ng(d));break}}if(d=e)return d;c=eg(a,b)}null!=c&&(d=ng(c));return d}function Wg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function vg(a,b){null!=a.J&&(a.J+=b||1)}function Xg(a){return n(a,4)}
function Yg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ia(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function qg(a,b){a.K=a;a.ha=a.wd=536870912;a.V=null;a.X=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ea[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Fa(Zg,a):(c=Fa(Zg,a.substr(b,2)),0>c&&(c=Fa(Zg,a.substr(b,1))));return c};function $g(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case ah:case bh:case ch:case dh:case eh:case fh:case gh:case hh:c=2;break;case ih:case jh:case kh:case lh:case mh:case nh:case oh:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case ah:b=c.g;break;case bh:b=c.w;break;case ch:b=c.A;break;case ih:b=vd(c);break;case dh:b=c.B;break;case eh:b=c.C;break;case jh:b=xd(c);break;case fh:b=c.D;break;case gh:b=c.F;break;case kh:b=D(c);break;case hh:b=E(c,D(c));break;case lh:b=c.M;break;case mh:b=c.j;break;case nh:b=td(c);break;case oh:b=td(c)&255|c.g<<8}}return b};
function ph(a,b){b=fg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+$g(a,e)+b.substr(c+1+Zg[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=tg(a,e))?(d=e+' "'+Yg(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=tg(a,e))?(vg(d),d=
e+' "'+Yg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Xg(ng(this.u.j).J));this.ha&1073741824?this.X.push(a):this.V&&a==this.V||(this.V=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Yc(a),a.ta=0,Pc(a)))};
function Fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+qa(d):"")+")"+(null!=g?": "+qa(g):"")+(null!=e?" at "+Xg(e):""))}
function pg(a){var b;if(Td(a)){if(!a.D||!a.D.length){a.D=Array(qh);for(b=0;b<a.D.length;b++)a.D[b]=ng();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function rh(a,b){if(!sh(a))return!1;a.u.tb(b);return!0}
function ug(a,b,c,d){if(!sh(a))return!1;a.C=0;b||Td(a)&&Ud(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Tc(a.u,e,!0),Qc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,yb(a.u,f.stack||f.message))}!1!==d&&Pc(a.u);Nc(a,c||!1);return 0<a.C}l.da=function(a){this.u&&this.u.da(a)};function Nc(a,b){void 0===b&&(b=!0);a.F=ng(a.u.j);b&&1!=a.M?th(a):uh(a)}
function sh(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){pg(this);this.N=this.Y=0;this.V=null;this.C=0;this.F=ng(this.u.j);this.G.ma=!1;vh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,wg(this.F));a.set(1,wg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Ug(a[b++]),this.O=Ug(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.ma=!0;this.Aa=a;this.Da=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.C=b-this.Da;if(!this.M){b="stopped";if(this.C){a-=this.Aa;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.N+" opcodes, ",this.Y-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();vh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.W}
function Ud(a,b,c){var d=a.u;if(0<c&&(a.W&&!--a.W||Hc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Vb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Fa=!1,++a.T==a.D.length&&(a.T=0)));return!1}function dc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.da(!0)}function ic(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.da(!0)}
function og(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[sg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[sg(c)>>>d.g],!0);a.w=["bw"];a.xa=0}l.Pa=function(a,b,c){var d=!0;c||wh(this,a,b,!1,!0);if(a!=this.j){var e=sg(b);if(-1===e)this.i("invalid address: "+Xg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(xh(this,a,a.length-1,"set"),pg(this)));return d};
function wh(a,b,c,d,e){var f=!1;c=sg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==sg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||xh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,Gc(d.b[c>>>d.g],b==a.w));h.Fa||pg(a);break}}return f}function yh(a,b){for(var c=1;c<b.length;c++)xh(a,b,c);return b.length-1}function xh(a,b,c,d){c=b[c];a.i(b[0]+" "+Xg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function vh(a,b){if(void 0!==b)Hc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!wh(a,a.j,c,!0))break;b=0}}}
function Hc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=sg(h),p=0;p<c;p++)if(b+p==k){var u,f=!0;h.Fa&&(wh(a,d,h,!0),e=!0);if(u=h.sd){for(var f=!1,v=0;v<u.length;v++)if(!zh(a,u[v],!0)){if(u[v].indexOf("if")){f=!0;break}for(var A=v+1;A<u.length&&u[A].indexOf("else");A++)v++;if(A==u.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||xh(a,d,g,"hit");break}}}a.xa--;return f}
function Ah(a,b,c,d){for(var e=ng(b.J),f=a.Ia(b,1),g=a.na[f],h="",k=(a.style!=Bh?Ch:Dh)[g[0]],p=g.length-1,u=Eh,v,A=1;A<=p;A++){var x="";v=g[A];if(void 0!==v&&!(v&O&&a.style==mg)){var w=v&Fh;if(w){var C=v&Gh;C?u=C:v|=u;v&Hh||(v|=1==A?Ih:Jh);if(w&P)a:{x=a;w=v;C=b;switch(w&Gh){case Q:C=n(x.Ia(C,1),2);break;case Kh:C=n(x.Ia(C,1)<<24>>24,4);break;case Lh:C=n(x.Gb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Bh&&w&Mh?C="["+C+"]":w&Nh||(C=(x.style==mg?"$":"0x")+C);x=C}else w&Nh?(x=(v&Oh)>>8,
w=Zg[x],a.style==Bh&&v&Mh&&(x==hh&&(w="HL"),w="["+w+"]"),x=w):w&Ph&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0<h.length&&(h+=",");h+=x||"???"}}}f="";g=Xg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ia(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=v&Qh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Rh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Fd(a.u);break;case "ZF":a=Ed(a.u);break;case "AF":a=Dd(a.u);break;case "PF":a=Cd(a.u);break;case "CF":a=Ad(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Sh(a,b){return Zg[b]+"="+$g(a,b)+" "}function Th(a){return Sh(a,ah)+Sh(a,ih)+Sh(a,jh)+Sh(a,kh)+Sh(a,lh)+Rh(a,"IF")+Rh(a,"SF")+Rh(a,"ZF")+Rh(a,"AF")+Rh(a,"PF")+Rh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Uh(a,b,c){var d=[],e=sg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Da(f.zc,[e-g],a.Ac);0<=e?Vh(a,b,e,d):c&&(e=~e,Vh(a,b,e-1,d),Vh(a,b,e,d));break}}return d}function Vh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Wh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Bh?Ch:Dh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.na[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Xh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return kg(a)||a.i("no variables"),!0;if(!c[2])return kg(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=eg(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Yh(a,b,c){var d=null;if(b=tg(a,b,!0)){var e=Uh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Xg(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]+" ("+Xg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Zh(a,b){switch(b[1]){case "8080":a.style=mg;break;case "8086":a.style=Bh;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
function cg(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}function dg(a){0<a.V&&(a.W=a.V,a.V=-1)}
function eg(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f=b.pop(),g=b.pop();switch(e){case "*":e=g*f;break;case "/":if(!f)return!1;e=Math.trunc(g/f);break;case "%":if(!f)return!1;e=g%f;break;case "+":e=g+f;break;case "-":e=g-f;break;case "<<":e=g<<f;break;case ">>":e=g>>f;break;case ">>>":e=g>>>f;break;case "<":e=g<f?1:0;break;case "<=":e=g<=f?1:0;break;case ">":e=g>f?1:0;break;case ">=":e=g>=f?1:0;break;case "==":e=g==f?1:0;break;case "!=":e=g!=f?1:0;break;
case "&":e=g&f;break;case "!":case "|":e=g|f;break;case "^^":e=g|f;break;case "&&":e=g&&f?1:0;break;case "||":e=g||f?1:0;break;case "><":e=g;if(f=35-(f&255))0>e&&(e+=Math.pow(2,36)),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f));dg(a);break;default:return!1}b.push(cg(e))}return!0}
function fg(a,b,c){var d;a.oa=null;b&&(b=gg(a,b));if(b){var e=0,f=!1,g=!1,h=b,k=[],p=[];b=b.replace(/([^A-Z0-9$%.][0-9]+)B/,"$1><");for(var v=b.split(/(\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<v.length;){var u=v[e++],B=u.length,x=null,w=0;e<v.length&&(x=v[e++],w=x.length);if(u=Aa(u)){g=hg(a,u,null,c,g);if(void 0===g)if(null==a.oa&&c)a.oa=u,g=0;else{f=!0;c=!c;break}k.push(cg(g));if(!x)break;p.length&&ig[x]<ig[p[p.length-1]]&&eg(a,k,p,1);p.push(x);"><"==x&&(u=a,0>u.V&&(u.V=
u.W,u.W=10));g=!1}else{if("-"!=x){f=!0;break}g=!0}b=b.substr(B+w)}eg(a,k,p)&&1==k.length||(f=!0);f?!1===c&&a.i("error parsing '"+h+"' at character "+(h.length-b.length)):(d=k.pop(),!1===c&&jg(a,null,d));dg(a)}return d}
function gg(a,b){var c,d=a.ta[0],e=a.ta[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=fg(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?kg(a,g):"undefined")}if(a.fa.length)for(d=a.fa[0],e=a.fa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=
a.N-a.ba}if(null==e)break;b=b.replace(d[0],e.toString())}return b}function hg(a,b,c,d,e){var f;null!=b?(f=a.Kb(b),0<=f?f=a.Lb(f):(f=a.S[b],null==f&&(f=ma(e?"-"+b:b,a.W),e=!1)),null!=f?e&&(f=-f):d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return f}
function jg(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,p=void 0,v=8,u="";v?32<v&&(v=32):v=32;for(var B=null==k||isNaN(k),x=p=p||v;0<v--;)x||(u=","+u,x=p),u=(B?"?":k&1?"1":"0")+u,k>>=1,x--;g=u+g;d>>=8}d=n(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function lg(a,b){if(b)return jg(a,b,a.S[b]);var c=0;for(b in a.S)jg(a,b,a.S[b]),c++;return 0<c}function kg(a,b){var c;c=void 0===c?0:c;switch(a.W){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=n(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ig={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10};
function mg(a){bg.call(this,a);this.style=ng;this.F=og();this.xa=og();this.O=og();this.A=[];this.j=this.I=this.w=[];pg(this);this.X=0;qg(this);this.ka={};rg(this,a.messages);this.na=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return Oc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return Oc(b,a)})}aa(mg,bg);l=mg.prototype;
l.Ga=function(a,b,c,d){this.H=b;this.u=c;this.R=a;(a=Kc(a,"messages"))&&rg(this,a);this.sa=sg;ae(this,64,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=tg(ug(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.g;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;k--;){var v=b[e];v.type==c?p++||d.i("..."):(c=v.type,p=Tb[c],v&&d.i(n(v.id)+" %"+n(e<<d.H.g)+" %%"+n(v.J)+" "+q(v.pb)+" "+
q(v.size)+" "+p),c!=wc&&(c=-1),p=0);a+=d.H.w;e++}}});Ab(this)};
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.P[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.b<d.g.length-1&&(b=d.g[++d.b])):40==a.keyCode&&(0<d.b?b=d.g[--d.b]:(b="",d.b=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=c,Ta(c,function(){if(d.U){var a=d.U.value;d.U.value=
"";Oc(d,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=c,Ta(c,function(a){var b=!1;Bb(d,!0)||(Cb(d,!0),b=vg(d,a?1:0),Cb(d,!1));return b}),!0}return!1};l.Za=function(){this.U&&this.U.focus()};function tg(a){a=a&&a.J;null==a&&(a=-1);return a}l.Ja=function(a,b){var c=255,d=tg(a);-1!==d&&(c=Vb(this.H,d),b&&wg(a,b));return c};l.Gb=function(a,b){var c=65535,d=tg(a);-1!==d&&(c=Xb(this.H,d),b&&wg(a,b));return c};l.Xb=function(a,b,c){var d=tg(a);-1!==d&&(Yb(this.H,d,b),c&&wg(a,c),Pc(this.u,!0))};
l.Qc=function(a,b,c){var d=tg(a);if(-1!==d){var e=this.H,f=d&e.j,g=(d&e.C)>>>e.g;f!=e.j?e.b[g].Sb(f,b&65535,d):(e.b[g++].qb(f,b&255,d),e.b[g&e.I].qb(0,b>>8&255,d+1));c&&wg(a,c);Pc(this.u,!0)}};function og(a){return{J:a,Fa:!1}}function xg(a){return[a.J,a.Fa]}function Vg(a){return{J:a[0],Fa:a[1]}}
function ug(a,b,c){var d;c=(c?a.F:a.xa).J;if(void 0!==b){d=b=gg(a,b)||b;var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.A.length;c++){var f=a.A[c].ra[d];if(void 0!==f){d=f.o;void 0!==d&&(e=og(d));break}}if(d=e)return d;c=fg(a,b)}null!=c&&(d=og(c));return d}function Xg(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.sd=a.Ab(b.Jc=c[2]))}function wg(a,b){null!=a.J&&(a.J+=b||1)}function Yg(a){return n(a,4)}
function Zg(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Ja(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function rg(a,b){a.K=a;a.ha=a.wd=536870912;a.Y=null;a.Z=[];b=a.Ab(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Ib)0<=Fa(b,c)&&(a.ha|=Ib[c],a.i(c+" messages enabled"))}function ae(a,b,c){for(var d in Ib)if(b==Ib[d]){a.ka[d]=c;break}}
l.Kb=function(a,b){var c;a=a.toUpperCase();null==b?c=Fa($g,a):(c=Fa($g,a.substr(b,2)),0>c&&(c=Fa($g,a.substr(b,1))));return c};function ah(a,b){var c=0;a=a.Lb(b);if(void 0!==a)switch(b){case bh:case ch:case dh:case eh:case fh:case gh:case hh:case ih:c=2;break;case jh:case kh:case lh:case mh:case nh:case oh:case ph:c=4}return c?n(a,c):"??"}
l.Lb=function(a){var b;if(0<=a){var c=this.u;switch(a){case bh:b=c.g;break;case ch:b=c.w;break;case dh:b=c.A;break;case jh:b=vd(c);break;case eh:b=c.B;break;case fh:b=c.C;break;case kh:b=xd(c);break;case gh:b=c.D;break;case hh:b=c.F;break;case lh:b=D(c);break;case ih:b=E(c,D(c));break;case mh:b=c.M;break;case nh:b=c.j;break;case oh:b=td(c);break;case ph:b=td(c)&255|c.g<<8}}return b};
function qh(a,b){b=gg(a,b)||b;for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Kb(b,c+1),0<=e&&(b=b.substr(0,c)+ah(a,e)+b.substr(c+1+$g[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ma(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=ug(a,e))?(d=e+' "'+Zg(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=ug(a,e))?(wg(d),d=
e+' "'+Zg(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+Yg(og(this.u.j).J));this.ha&1073741824?this.Z.push(a):this.Y&&a==this.Y||(this.Y=a,this.ha&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.i(a),this.u&&(a=this.u,Yc(a),a.ta=0,Pc(a)))};
function Fb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ha&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+q(c)+","+(f?f:"unknown")+(null!=d?","+qa(d):"")+")"+(null!=g?": "+qa(g):"")+(null!=e?" at "+Yg(e):""))}
function qg(a){var b;if(Td(a)){if(!a.D||!a.D.length){a.D=Array(rh);for(b=0;b<a.D.length;b++)a.D[b]=og();a.T=0;a.i("instruction history buffer allocated")}if(!a.B||!a.B.length)for(a.B=Array(256),b=0;b<a.B.length;b++)a.B[b]=[b,0]}else a.D&&a.D.length&&a.i("instruction history buffer freed"),a.T=0,a.D=[],a.B=[]}function sh(a,b){if(!th(a))return!1;a.u.tb(b);return!0}
function vg(a,b,c,d){if(!th(a))return!1;a.C=0;b||Td(a)&&Ud(a,a.u.j,0);try{var e=a.u.Eb(b);0<e&&(a.C+=e,Tc(a.u,e,!0),Qc(a.u,e),a.N++)}catch(f){"number"!=typeof f&&(a.C=0,yb(a.u,f.stack||f.message))}!1!==d&&Pc(a.u);Nc(a,c||!1);return 0<a.C}l.ea=function(a){this.u&&this.u.ea(a)};function Nc(a,b){void 0===b&&(b=!0);a.F=og(a.u.j);b&&1!=a.M?uh(a):vh(a)}
function th(a){var b;if(b=a.u&&zb(a.u))b=a.u,b.G.ja?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!Bb(a.u)?(a=a.u,a.G.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.va=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){qg(this);this.N=this.ba=0;this.Y=null;this.C=0;this.F=og(this.u.j);this.G.ma=!1;wh(this);a||Nc(this)};
l.save=function(){var a=new ud(this);a.set(0,xg(this.F));a.set(1,xg(this.O));a.set(2,[this.g,this.L,this.ha]);a.set(3,this.A);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.F=Vg(a[b++]),this.O=Vg(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.L=a[b][1],this.ha|=a[b][2]);a[3]&&(this.A=a[3]);return!0};l.start=function(a,b){this.M||this.i("running");this.G.ma=!0;this.Da=a;this.Ha=b};
l.stop=function(a,b){if(this.G.ma){this.G.ma=!1;this.C=b-this.Ha;if(!this.M){b="stopped";if(this.C){a-=this.Da;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Td(this)&&(b+=this.N+" opcodes, ",this.ba-=this.N,this.N=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Nc(this,!0);this.Za();wh(this,this.u.j)}};function Td(a){return 1<a.j.length||!!a.X}
function Ud(a,b,c){var d=a.u;if(0<c&&(a.X&&!--a.X||Hc(a,b,1,a.j)))return!0;0<=c&&a.B.length&&(a.N++,b=Vb(a.H,b),null!=b&&(a.B[b][1]++,b=a.D[a.T],b.J=d.j,b.Fa=!1,++a.T==a.D.length&&(a.T=0)));return!1}function dc(a,b,c){a.i("break on input from port "+q(b)+": "+n(c));a.ea(!0)}function ic(a,b,c){a.i("break on output to port "+q(b)+": "+n(c));a.ea(!0)}
function pg(a){var b,c;a.j=["bp"];if(a.I)for(b=1;b<a.I.length;b++){c=a.I[b];var d=a.H;Gc(d.b[tg(c)>>>d.g],!1)}a.I=["br"];if(a.w)for(b=1;b<a.w.length;b++)c=a.w[b],d=a.H,Gc(d.b[tg(c)>>>d.g],!0);a.w=["bw"];a.ya=0}l.Pa=function(a,b,c){var d=!0;c||xh(this,a,b,!1,!0);if(a!=this.j){var e=tg(b);if(-1===e)this.i("invalid address: "+Yg(b.J)),d=!1;else{var f=this.H;f.b[e>>>f.g].Pa(e&f.j,a==this.w)}}d&&(a.push(b),c?b.Fa=!0:(yh(this,a,a.length-1,"set"),qg(this)));return d};
function xh(a,b,c,d,e){var f=!1;c=tg(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==tg(h)&&(!d||h.Fa)){f=!0;h.Fa||e||yh(a,b,g,"cleared");b.splice(g,1);b!=a.j&&(d=a.H,Gc(d.b[c>>>d.g],b==a.w));h.Fa||qg(a);break}}return f}function zh(a,b){for(var c=1;c<b.length;c++)yh(a,b,c);return b.length-1}function yh(a,b,c,d){c=b[c];a.i(b[0]+" "+Yg(c.J)+(d?" "+d:c.Jc?' "'+c.Jc+'"':""))}
function wh(a,b){if(void 0!==b)Hc(a,b,1,a.j,!0),a.M=0;else for(b=1;b<a.j.length;b++){var c=a.j[b];if(c.Fa){if(!xh(a,a.j,c,!0))break;b=0}}}
function Hc(a,b,c,d,e){var f=!1;if(!a.ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Fa)for(var k=tg(h),p=0;p<c;p++)if(b+p==k){var v,f=!0;h.Fa&&(xh(a,d,h,!0),e=!0);if(v=h.sd){for(var f=!1,u=0;u<v.length;u++)if(!Ah(a,v[u],!0)){if(v[u].indexOf("if")){f=!0;break}for(var B=u+1;B<v.length&&v[B].indexOf("else");B++)u++;if(B==v.length){f=!0;break}}a.u.G.ma||(f=!0)}if(f){e||yh(a,d,g,"hit");break}}}a.ya--;return f}
function Bh(a,b,c,d){for(var e=og(b.J),f=a.Ja(b,1),g=a.sa[f],h="",k=(a.style!=Ch?Dh:Eh)[g[0]],p=g.length-1,v=Fh,u,B=1;B<=p;B++){var x="";u=g[B];if(void 0!==u&&!(u&O&&a.style==ng)){var w=u&Gh;if(w){var C=u&Hh;C?v=C:u|=v;u&Ih||(u|=1==B?Jh:Kh);if(w&P)a:{x=a;w=u;C=b;switch(w&Hh){case Q:C=n(x.Ja(C,1),2);break;case Lh:C=n(x.Ja(C,1)<<24>>24,4);break;case Mh:C=n(x.Gb(C,2),4);break;default:x="imm("+q(w)+")";break a}x.style==Ch&&w&Nh?C="["+C+"]":w&Oh||(C=(x.style==ng?"$":"0x")+C);x=C}else w&Oh?(x=(u&Ph)>>8,
w=$g[x],a.style==Ch&&u&Nh&&(x==ih&&(w="HL"),w="["+w+"]"),x=w):w&Qh&&(x=(f>>3&7).toString());if(!x||!x.length){h="INVALID";break}0<h.length&&(h+=",");h+=x||"???"}}}f="";g=Yg(e.J)+" ";if(-1!==e.J&&-1!==b.J){do if(f+=n(a.Ja(e,1),2),null==e.J)break;while(e.J!=b.J)}g+=ya(f,10);g+=u&Rh?"*":" ";g+=ya(k,7);h&&(g+=" "+h);c&&(g=ya(g,40)+";"+c,g=a.u.G.Wa?g+("cycles="+Rc(a.u).toString()+" cs="+n(a.u.xa)):g+(null!=d?"="+d.toString():""));return g}
function Sh(a,b){switch(b){case "IF":a=a.u.N&512;break;case "SF":a=Fd(a.u);break;case "ZF":a=Ed(a.u);break;case "AF":a=Dd(a.u);break;case "PF":a=Cd(a.u);break;case "CF":a=Ad(a.u);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Th(a,b){return $g[b]+"="+ah(a,b)+" "}function Uh(a){return Th(a,bh)+Th(a,jh)+Th(a,kh)+Th(a,lh)+Th(a,mh)+Sh(a,"IF")+Sh(a,"SF")+Sh(a,"ZF")+Sh(a,"AF")+Sh(a,"PF")+Sh(a,"CF")}l.Ac=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Vh(a,b,c){var d=[],e=tg(b)>>>0;for(b=0;b<a.A.length;b++){var f=a.A[b],g=f.J>>>0,h=f.Qd;if(e>=g&&e<g+h){e=Da(f.zc,[e-g],a.Ac);0<=e?Wh(a,b,e,d):c&&(e=~e,Wh(a,b,e-1,d),Wh(a,b,e,d));break}}return d}function Wh(a,b,c,d){var e={},f=a.A[b].zc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.A[b].ra[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Xh(a,b){if("?"==b)a.i("frequency commands:"),a.i("\tclear\tclear all frequency counts");else{var c=0;if(a.B)if("clear"==b){for(b=0;b<a.B.length;b++)a.B[b]=[b,0];a.i("frequency data cleared");c++}else if(void 0!==b)a.i("unknown frequency command: "+b),c++;else{var d=a.B.slice();d.sort(function(a,b){return b[1]-a[1]});var e=a.style!=Ch?Dh:Eh;for(b=0;b<d.length;b++){var f=d[b][0],g=d[b][1];g&&(a.i((e[a.sa[f][0]]+" ").substr(0,5)+" ("+qa(f)+"): "+g+" times"),c++)}}c||a.i("no frequency data available")}}
function Yh(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return lg(a)||a.i("no variables"),!0;if(!c[2])return lg(a,c[1]);if(!c[3])return delete a.S[c[1]],!0;b=fg(a,c[3]);return void 0!==b?(a.S[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Zh(a,b,c){var d=null;if(b=ug(a,b,!0)){var e=Vh(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.J-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+Yg(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]+" ("+Yg(e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function $h(a,b){switch(b[1]){case "8080":a.style=ng;break;case "8086":a.style=Ch;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.u.na=c;break;case "start":a.u.ya=c;break;case "stop":a.u.sa=c;break;default:a.i("unknown cs option");return}void 0!==c&&Mc(a.u);a.i("checksums "+(a.u.G.Wa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Sc(a.u,+b[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.u.Z.toFixed(2)+"Mhz")+" ("+a.u.U+
"x)");return;case "?":a.i("debugger options:");a.i("\t8080\t\tselect 8080-style mnemonics");a.i("\t8086\t\tselect 8086-style mnemonics");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.i("unknown option: "+b[1]);return}}a.i(a.style+"-style mnemonics enabled")}
function th(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=eg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":B(d,f);a.F=ng(d.j);break;case "PS":rd(d,f);break;case "PSW":rd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?Cd(d)||(d.L^=1):Cd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?Fd(d)||(d.L^=192):Fd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Th(a));c&&(a.F=ng(d.j),uh(a,Xg(a.F.J)))}}function $h(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(ph(a,c[2])):eg(a,b,!1)}function ai(a,b,c){var d="t"!=b;c=gg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&ug(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
function uh(a,b,c,d){if(b=tg(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=tg(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=Bb(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Uh(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=Ah(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
function uh(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=fg(a,b);if(void 0===f)return;switch(e.toUpperCase()){case "A":d.g=f&255;break;case "B":d.w=f&255;break;case "BC":d.w=f>>8&255;case "C":d.A=f&255;break;case "D":d.B=f&255;break;
case "DE":d.B=f>>8&255;case "E":d.C=f&255;break;case "H":d.D=f&255;break;case "HL":d.D=f>>8&255;case "L":d.F=f&255;break;case "SP":d.M=f&65535;break;case "PC":A(d,f);a.F=og(d.j);break;case "PS":rd(d,f);break;case "PSW":rd(d,f&255|d.N&-256);d.g=f>>8;break;case "CF":d.I=f?d.I|256:d.I&255;break;case "PF":f?Cd(d)||(d.L^=1):Cd(d)&&(d.L^=1);break;case "AF":d.O=f?~d.L&16|d.O&-17:d.L&16|d.O&-17;break;case "ZF":d.I=f?d.I&-256:d.I|255;break;case "SF":f?Fd(d)||(d.L^=192):Fd(d)&&(d.L^=192);break;case "IF":d.N=
f?d.N|512:d.N&-513;break;default:a.i("unknown register: "+e);return}Pc(d);a.i("updated registers:")}a.i(Uh(a));c&&(a.F=og(d.j),vh(a,Yg(a.F.J)))}}function ai(a,b){b=Aa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.i(qh(a,c[2])):fg(a,b,!1)}function bi(a,b,c){var d="t"!=b;c=hg(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Sa(c,function(){return Cb(a,!0)&&vg(a,e,d,!1)},function(){Pc(a.u);Cb(a,!1)})}
function vh(a,b,c,d){if(b=ug(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=ug(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=Bb(a,!1)||a.M?a.C:null;var g=null!=f?"cycles":null,h=Vh(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=Bh(a,b,g,f);a.i(f);a.F=b;e-=b.J-k;c++}}}
l.Ab=function(a,b,c){if(b)if(a){0>this.b&&this.g.length&&(this.b=0);if(0>this.b||a!=this.g[this.b])this.g.splice(0,0,a),this.b=0;this.b--}else this.L?a="end":a=this.g[this.b+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Aa(a.substring(d,f))),d=f+1}}return b};
function zh(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Xg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.V=null;if(zb(a)&&0<b.length){a.L&&(b="a "+Xg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var u=tg(a,f[1],!0);if(u)if(a.O=
u,void 0===f[2])a.i("begin assemble at "+Xg(u.J)),a.L=!0,Pc(a.u);else{var v;a.i("not supported yet");v=[];if(v.length){for(var A=0;A<v.length;A++)a.Xb(u,v[A],1);a.i(Ah(a,a.O))}}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 za;za=0+yh(a,a.j);za+=yh(a,a.I);(za+=yh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.W=gg(a,w),a.i("break after "+a.W+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=ng();if("*"!=w&&(L=tg(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(og(a),a.i("all breakpoints cleared")):wh(a,a.j,L)||wh(a,a.I,L)||wh(a,a.w,L)||a.i("breakpoint missing: "+Xg(L.J)):
"i"==T?a.i("breakpoint "+(ac(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ec(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Wg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Ib)a.ea[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var qe=bi(a.R,!0);"console"==Ma?console.log(qe):(a.ua&&(a.ua.value=""),qe&&a.i(qe))}else if("symbols"==na)for(var re=0;re<a.A.length;re++){var se=a.A[re],Ob;for(Ob in se.ra)if("."!=Ob.charAt(0)){var xg=se.ra[Ob].o;if(void 0!==xg){var yg=se.ra[Ob].l;yg&&(Ob=yg);a.i(Xg(xg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var zg=a.ea[ja];zg?(f.shift(),f.shift(),zg(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ha||"db")}else a.Ha=ua;if("dh"==ua){var Ag=na,Bg=Ma,Cg="",Dg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+Ag||a.ya,kc=+Bg||10;isNaN(Ba)?Ba=kc:Cg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Bg&&(kc=1E5,te=["CALL"]);for(void 0!==Ag&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.T;){var Eg=Za[Na++];if(null==Eg.J)break;var lc=ng(Eg.J),Fi=Ba--,Fg=Ah(a,lc,"history",Fi);(!te.length||0<=Fg.indexOf(te[0]))&&a.i(Fg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.ya=Ba;Dg++;kc--}}Dg||(a.i("no "+Cg+"history available"),a.ya=void 0)}else{var $c=tg(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=gg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Gi=cd+15>>4||1;Gi--&&0<
cd;){var dd=0,ue=0,nc,ve="",Gg="",na=Xg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ia($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Gg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Gg)}mc&&a.i(mc);a.sa=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Hg=255,Ig=a.Ia,Jg=a.Xb;"ew"==f[0]&&(fd=2,Hg=65535,Ig=a.Gb,Jg=a.Qc);var Kg=fd<<1,Lg=f[1];if(null==Lg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=tg(a,Lg);if(gd)for(var hd=2;hd<f.length;hd++){var oc=eg(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Hg&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Hi=Ig.call(a,gd);a.i("changing "+Xg(gd.J)+" from "+n(Hi,Kg,!0)+" to "+n(oc,Kg,!0));Jg.call(a,gd,oc,fd)}}break;case "f":Wh(a,f[1]);break;case "g":a:{var Mg=f[1],Ii=b;if(void 0!==Mg){var we=tg(a,Mg,!0);if(!we)break a;Wg(a,we,Ii);a.Pa(a.j,we,!0)}rh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var xe;if(a.G.ma)xe="halting",a.da();else{if(Bb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Aa(pc);eg(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Ji=f[1];if(a.u.N&512){var ze=eg(a,Ji);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Sd(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
gg(a,Ae);if(void 0!==Be){var Ki=cc(a.H,Be);a.i(q(Be)+": "+qa(Ki))}}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 Li=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ce=0,Ng=ng(),qc=ng(a.u.M);for(a.i("stack trace for "+Xg(qc.J));10>Ce;){for(var ub=null,Mi=256;65536>qc.J>>>0;){Ng.J=a.Gb(qc,2);if(null==qc.J||!Mi--)break;for(var Ni=a,jd=Ng,
Og=null,rc=jd.J,Pg=rc,De=1;6>=De&&rc;De++){if(2<De){jd.J=rc;var kd=Ah(Ni,jd);if(0<=kd.indexOf("CALL")){var Qg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Qg+1)-Qg-1)/2==Pg){Og=kd;break}}}rc--}jd.J=Pg;if(ub=Og)break}if(!ub||null==ub)break;var Rg=null;if("ks"==Li){var Sg=ub.match(/[0-9A-F]+$/);Sg&&(Rg=Yh(a,Sg[0]))}ub=ya(ub,50)+" ;"+(Rg||"stack="+Xg(qc.J));a.i(ub);Ce++}Ce||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Yh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Ib)if(ba==$a){nb=Ib[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var Ee=0;Ee<a.X.length;Ee++)a.i(a.X[Ee]);a.X=[]}}var Oi=0,sc="";for($a in Ib)if(!ba||ba==$a){var Pi=!!(a.ha&Ib[$a]);if(null===
ab||ab==Pi)sc&&(sc+=","),++Oi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));pg(a)}break;case "o":var Fe=f[1],Qi=f[2];if(Fe&&"?"!=Fe){var Ge=gg(a,Fe,"port #"),He=gg(a,Qi);void 0!==Ge&&void 0!==He&&(hc(a.H,Ge,He),a.i(q(Ge)+": "+qa(He)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){$h(a,b.substr(5));break}var Tg="pr"==f[0]?1:0,Ri=1+Tg;if(a.M)a.i("step in progress");else{var Ie=ng(a.u.j);switch(a.Ia(Ie)){case 205:a.M=Ri,vg(Ie,3)}a.M?(a.Pa(a.j,Ie,!0),rh(a)||(a.R&&a.R.Za(),a.M=0)):ai(a,Tg?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}th(a,f);break;case "s":Zh(a,f);break;case "t":ai(a,f[0],f[1]);break;case "u":uh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Gb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ia());break;case "?":if(f[1]){$h(a,b.substr(1));break}var Je="commands:",Ke;for(Ke in ci)Je+="\n"+ya(Ke,9)+ci[Ke];Td(a)||(Je+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Je);break;default:a.i("unknown command: "+b),d=!1}}}catch(Vg){a.i("debugger error: "+(Vg.stack||Vg.message)),d=!1}return d}function Oc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!zh(a,b[+d]))return!1;return!0}
var ci={"?":"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"},
mg=8080,Bh=8086,Ch="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(" "),Dh="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(" "),
bh=0,ch=1,dh=2,eh=3,fh=4,gh=5,hh=6,ah=7,ih=8,jh=9,kh=10,lh=11,mh=12,nh=13,oh=14,Zg="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Gh=15,Fh=240,Oh=3840,Hh=61440,Eh=0,Q=1,Kh=2,Lh=3,Nh=16,P=32,Mh=64,Ph=128,R=ah<<8|Nh|Q,S=bh<<8|Nh|Q,U=ch<<8|Nh|Q,V=dh<<8|Nh|Q,W=eh<<8|Nh|Q,X=fh<<8|Nh|Q,Y=gh<<8|Nh|Q,Z=hh<<8|Nh|Q|Mh,di=ih<<8|Nh|Lh,ei=jh<<8|Nh|Lh,fi=kh<<8|Nh|Lh,gi=lh<<8|Nh|Lh,hi=oh<<8|Nh|Lh,Jh=4096,Ih=8192,O=16384,Qh=32768,rg=[[45],[42,di,P],[71,di|Mh,R|O],[29,di],[28,S],[22,S],[44,S,P],[63],[45,Qh],[21,
fi|O,di],[40,R|O,di|Mh],[23,di],[28,U],[22,U],[44,U,P],[64],[45,Qh],[42,ei,P],[71,ei|Mh,R|O],[29,ei],[28,V],[22,V],[44,V,P],[52],[45,Qh],[21,fi|O,ei],[40,R|O,ei|Mh],[23,ei],[28,W],[22,W],[44,W,P],[53],[45,Qh],[42,fi,P],[68,51|Mh,fi|O],[29,fi],[28,X],[22,X],[44,X,P],[20],[45,Qh],[21,fi|O,fi],[41,fi|O,51|Mh],[23,fi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Qh],[42,gi,P],[70,51|Mh,R|O],[29,gi],[28,Z],[22,Z],[44,Z,P],[72],[45,Qh],[21,fi|O,gi],[39,R|O,51|Mh],[23,gi],[28,R],[22,R],[44,R,P],[17],[43,S,S],[43,
function Ah(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.L&&(a.i("ended assemble at "+Yg(a.O.J)),a.F=a.O,a.L=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Y=null;if(zb(a)&&0<b.length){a.L&&(b="a "+Yg(a.O.J)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var p=g.charAt(k);if("?"==h||"r"==h||"a">p||"z"<p){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var v=ug(a,f[1],!0);if(v)if(a.O=
v,void 0===f[2])a.i("begin assemble at "+Yg(v.J)),a.L=!0,Pc(a.u);else{var u;a.i("not supported yet");u=[];if(u.length){for(var B=0;B<u.length;B++)a.Xb(v,u[B],1);a.i(Bh(a,a.O))}}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 za;za=0+zh(a,a.j);za+=zh(a,a.I);(za+=zh(a,a.w))||a.i("no breakpoints")}else if("n"==T)a.X=hg(a,w),a.i("break after "+a.X+" instruction(s)");else if(void 0===w)a.i("missing breakpoint address");else{var L=og();if("*"!=w&&(L=ug(a,w,!0),!L))break a;w=q(L.J);"c"==T?null==L.J?(pg(a),a.i("all breakpoints cleared")):xh(a,a.j,L)||xh(a,a.I,L)||xh(a,a.w,L)||a.i("breakpoint missing: "+Yg(L.J)):
"i"==T?a.i("breakpoint "+(ac(a.H,L.J)?"enabled":"cleared")+": port "+w+" (input)"):"o"==T?a.i("breakpoint "+(ec(a.H,L.J)?"enabled":"cleared")+": port "+w+" (output)"):null!=L.J&&(Xg(a,L,C),"p"==T?a.Pa(a.j,L):"r"==T?a.Pa(a.I,L):"w"==T?a.Pa(a.w,L):a.i("unknown breakpoint command: "+T))}}}break;case "c":a.ua&&(a.ua.value="");break;case "d":a:{var ja,ua=f[0],na=f[1],Ma=f[2],fc=f[3];if("?"==na){var Nb="";for(ja in Ib)a.ka[ja]&&(Nb&&(Nb+=","),Nb+=ja);Nb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");
a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Nb.length&&a.i("dump extension commands:\n\t"+Nb)}else if("state"==na){var qe=ci(a.R,!0);"console"==Ma?console.log(qe):(a.ua&&(a.ua.value=""),qe&&a.i(qe))}else if("symbols"==na)for(var re=0;re<a.A.length;re++){var se=a.A[re],Ob;for(Ob in se.ra)if("."!=Ob.charAt(0)){var yg=se.ra[Ob].o;if(void 0!==yg){var zg=se.ra[Ob].l;zg&&(Ob=zg);a.i(Yg(yg)+" "+
Ob)}}}else{if("d"==ua){for(ja in Ib)if(f[1]==ja){var Ag=a.ka[ja];Ag?(f.shift(),f.shift(),Ag(f)):a.i("no dump registered for "+na);break a}na||(ua=a.Ia||"db")}else a.Ia=ua;if("dh"==ua){var Bg=na,Cg=Ma,Dg="",Eg=0,Na=a.T,Za=a.D;if(Za.length){var Ba=+Bg||a.za,kc=+Cg||10;isNaN(Ba)?Ba=kc:Dg="more ";Ba>Za.length&&(a.i("note: only "+Za.length+" available"),Ba=Za.length);Na-=Ba;0>Na&&(null==Za[Za.length-1].J?(Ba=Na+Ba,Na=0):Na+=Za.length);var te=[];"call"==Cg&&(kc=1E5,te=["CALL"]);for(void 0!==Bg&&a.i(Ba+
" instructions earlier:");0<kc&&Na!=a.T;){var Fg=Za[Na++];if(null==Fg.J)break;var lc=og(Fg.J),Gi=Ba--,Gg=Bh(a,lc,"history",Gi);(!te.length||0<=Gg.indexOf(te[0]))&&a.i(Gg);lc.Jb&&(Na+=lc.Jb,kc-=lc.Jb,Ba-=lc.Jb);Na>=Za.length&&(Na=0);a.za=Ba;Eg++;kc--}}Eg||(a.i("no "+Dg+"history available"),a.za=void 0)}else{var $c=ug(a,na);if($c){var ad=0;Ma&&("l"==Ma.charAt(0)&&(Ma=Ma.substr(1)||fc),ad=hg(a,Ma)>>>0,65536<ad&&(ad=65536));for(var mc="",bd="dd"==ua?4:"dw"==ua?2:1,cd=bd*ad||128,Hi=cd+15>>4||1;Hi--&&0<
cd;){var dd=0,ue=0,nc,ve="",Hg="",na=Yg($c.J);for(nc=16;0<nc&&0<cd;nc--){var ed=a.Ja($c,1),dd=dd|ed<<(ue++<<3);ue==bd&&(ve+=n(dd,2*bd),ve+=1==bd?9==nc?"-":" ":" ",dd=ue=0);Hg+=32<=ed&&128>ed?String.fromCharCode(ed):".";cd--}mc&&(mc+="\n");mc+=na+" "+ve+(nc?"":" "+Hg)}mc&&a.i(mc);a.xa=$c}}}}break;case "e":if("else"==f[0])break;var fd=1,Ig=255,Jg=a.Ja,Kg=a.Xb;"ew"==f[0]&&(fd=2,Ig=65535,Jg=a.Gb,Kg=a.Qc);var Lg=fd<<1,Mg=f[1];if(null==Mg)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),
a.i("\tew [a] [...] edit words at address a");else{var gd=ug(a,Mg);if(gd)for(var hd=2;hd<f.length;hd++){var oc=fg(a,f[hd]);if(void 0===oc){a.i("unrecognized value: "+f[hd]);break}oc&~Ig&&a.i("warning: "+n(oc)+" exceeds "+fd+"-byte value");var Ii=Jg.call(a,gd);a.i("changing "+Yg(gd.J)+" from "+n(Ii,Lg,!0)+" to "+n(oc,Lg,!0));Kg.call(a,gd,oc,fd)}}break;case "f":Xh(a,f[1]);break;case "g":a:{var Ng=f[1],Ji=b;if(void 0!==Ng){var we=ug(a,Ng,!0);if(!we)break a;Xg(a,we,Ji);a.Pa(a.j,we,!0)}sh(a,!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var xe;if(a.G.ma)xe="halting",a.ea();else{if(Bb(a,!0))break a;xe="already halted"}c||a.i(xe)}break;case "i":if("if"==f[0]){var ye;var pc=b.substr(2),pc=Aa(pc);fg(a,pc)?(c||a.i("true: "+pc),ye=!0):(c||a.i("false: "+pc),ye=!1);ye||(d=!1);break}if("int"==f[0]){var id;var Ki=f[1];if(a.u.N&512){var ze=fg(a,Ki);null==ze?id=!1:(a.i("requesting interrupt level "+ze),Sd(a.u,ze),id=!0)}else a.i("interrupts disabled (use rif=1 to enable)"),id=!1;id||(d=!1);break}var Ae=f[1];if(Ae&&"?"!=Ae){var Be=
hg(a,Ae);if(void 0!==Be){var Li=cc(a.H,Be);a.i(q(Be)+": "+qa(Li))}}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 Mi=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ce=0,Og=og(),qc=og(a.u.M);for(a.i("stack trace for "+Yg(qc.J));10>Ce;){for(var ub=null,Ni=256;65536>qc.J>>>0;){Og.J=a.Gb(qc,2);if(null==qc.J||!Ni--)break;for(var Oi=a,jd=Og,
Pg=null,rc=jd.J,Qg=rc,De=1;6>=De&&rc;De++){if(2<De){jd.J=rc;var kd=Bh(Oi,jd);if(0<=kd.indexOf("CALL")){var Rg=kd.indexOf(" ");if(rc+(kd.indexOf(" ",Rg+1)-Rg-1)/2==Qg){Pg=kd;break}}}rc--}jd.J=Qg;if(ub=Pg)break}if(!ub||null==ub)break;var Sg=null;if("ks"==Mi){var Tg=ub.match(/[0-9A-F]+$/);Tg&&(Sg=Zh(a,Tg[0]))}ub=ya(ub,50)+" ;"+(Sg||"stack="+Yg(qc.J));a.i(ub);Ce++}Ce||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&Zh(a,f[1],!0);break;case "m":a:{var $a,ab=null,ba=f[1];"?"==ba&&(ba=void 0);
if(void 0!==ba){var nb=0;if("all"==ba)nb=1878917119,ba=null;else if("on"==ba)ab=!0,ba=null;else if("off"==ba)ab=!1,ba=null;else{"keys"==ba&&(ba="key");"kbd"==ba&&(ba="keyboard");for($a in Ib)if(ba==$a){nb=Ib[$a];ab=!!(a.ha&nb);break}if(!nb){a.i("unknown message category: "+ba);break a}}if(nb)if("on"==f[2])a.ha|=nb,ab=!0;else if("off"==f[2]&&(a.ha&=~nb,ab=!1,1073741824==nb)){for(var Ee=0;Ee<a.Z.length;Ee++)a.i(a.Z[Ee]);a.Z=[]}}var Pi=0,sc="";for($a in Ib)if(!ba||ba==$a){var Qi=!!(a.ha&Ib[$a]);if(null===
ab||ab==Qi)sc&&(sc+=","),++Pi%10||(sc+="\n\t"),"key"==$a&&($a="keys"),sc+=$a}void 0===ba&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ab?ab?"messages on: ":"messages off: ":"message categories:\n\t")+(sc||"none"));qg(a)}break;case "o":var Fe=f[1],Ri=f[2];if(Fe&&"?"!=Fe){var Ge=hg(a,Fe,"port #"),He=hg(a,Ri);void 0!==Ge&&void 0!==He&&(hc(a.H,Ge,He),a.i(q(Ge)+": "+qa(He)))}else a.i("output commands:"),a.i("\to [p] [b]\twrite byte [b] to port [p]"),a.i("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){ai(a,b.substr(5));break}var Ug="pr"==f[0]?1:0,Si=1+Ug;if(a.M)a.i("step in progress");else{var Ie=og(a.u.j);switch(a.Ja(Ie)){case 205:a.M=Si,wg(Ie,3)}a.M?(a.Pa(a.j,Ie,!0),sh(a)||(a.R&&a.R.Za(),a.M=0)):bi(a,Ug?"tr":"t")}break;case "r":if("reset"==b){a.R&&a.R.reset();break}uh(a,f);break;case "s":$h(a,f);break;case "t":bi(a,f[0],f[1]);break;case "u":vh(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Yh(a,b.substr(3))||(d=!1);break}a.i("PC8080 version 1.34.2 ("+a.u.xb+",RELEASE"+
(Gb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(Ia());break;case "?":if(f[1]){ai(a,b.substr(1));break}var Je="commands:",Ke;for(Ke in di)Je+="\n"+ya(Ke,9)+di[Ke];Td(a)||(Je+="\nnote: frequency/history disabled if no exec breakpoints");a.i(Je);break;default:a.i("unknown command: "+b),d=!1}}}catch(Wg){a.i("debugger error: "+(Wg.stack||Wg.message)),d=!1}return d}function Oc(a,b,c){b=a.Ab(b,c);for(var d in b)if(!Ah(a,b[+d]))return!1;return!0}
var di={"?":"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"},
ng=8080,Ch=8086,Dh="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(" "),Eh="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(" "),
ch=0,dh=1,eh=2,fh=3,gh=4,hh=5,ih=6,bh=7,jh=8,kh=9,lh=10,mh=11,nh=12,oh=13,ph=14,$g="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Hh=15,Gh=240,Ph=3840,Ih=61440,Fh=0,Q=1,Lh=2,Mh=3,Oh=16,P=32,Nh=64,Qh=128,R=bh<<8|Oh|Q,S=ch<<8|Oh|Q,U=dh<<8|Oh|Q,V=eh<<8|Oh|Q,W=fh<<8|Oh|Q,X=gh<<8|Oh|Q,Y=hh<<8|Oh|Q,Z=ih<<8|Oh|Q|Nh,ei=jh<<8|Oh|Mh,fi=kh<<8|Oh|Mh,gi=lh<<8|Oh|Mh,hi=mh<<8|Oh|Mh,ii=ph<<8|Oh|Mh,Kh=4096,Jh=8192,O=16384,Rh=32768,sg=[[45],[42,ei,P],[71,ei|Nh,R|O],[29,ei],[28,S],[22,S],[44,S,P],[63],[45,Rh],[21,
gi|O,ei],[40,R|O,ei|Nh],[23,ei],[28,U],[22,U],[44,U,P],[64],[45,Rh],[42,fi,P],[71,fi|Nh,R|O],[29,fi],[28,V],[22,V],[44,V,P],[52],[45,Rh],[21,gi|O,fi],[40,R|O,fi|Nh],[23,fi],[28,W],[22,W],[44,W,P],[53],[45,Rh],[42,gi,P],[68,51|Nh,gi|O],[29,gi],[28,X],[22,X],[44,X,P],[20],[45,Rh],[21,gi|O,gi],[41,gi|O,51|Nh],[23,gi],[28,Y],[22,Y],[44,Y,P],[16,R|O],[45,Rh],[42,hi,P],[70,51|Nh,R|O],[29,hi],[28,Z],[22,Z],[44,Z,P],[72],[45,Rh],[21,gi|O,hi],[39,R|O,51|Nh],[23,hi],[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,di],[34,51],[30,51],[11,51],[51,di],[4,R|O,P|Q],[65,Ph],[62],[54],[38,51],[30,51|Qh],[15,51],[7,51],[1,R|O,P|Q],[65,Ph],[57],[50,ei],[33,51],[48,P|Q,R|O],[10,51],[51,ei],[74,R|O,P|Q],[65,Ph],[55],[54,Qh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Qh],[67,R|O,P|Q],[65,
Ph],[61],[50,fi],[37,51],[78,gi|Mh|O,fi|O],[14,51],[51,fi],[6,R|O,P|Q],[65,Ph],[60],[49,fi],[36,51],[75,fi|O,ei|O],[13,51],[7,51|Qh],[77,R|O,P|Q],[65,Ph],[59],[50,hi],[35,51],[24],[12,51],[51,hi],[47,R|O,P|Q],[65,Ph],[56],[69,gi|O,fi|O],[32,51],[25],[9,51],[7,51|Qh],[19,R|O,P|Q],[65,Ph]],qh=1E3;Va(function(){for(var a=rb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new lg(d);qb(d,c)}});
function ii(a,b,c){t.call(this,"Computer",a,67108864);this.G.ja=!1;ji(this,b);this.L=Kc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=ki;this.F=null;this.C=this.O=!1;this.U=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.g=li(this);if(this.u=ob("CPU",this.id)){this.K=ob("Debugger",this.id);this.A=[];for(b=null;b=Kb(this,"Video",b);)this.A.push(b);this.H=new Mb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=lb(this.id);if((this.B=ob("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.H,this.u,this.K);b=null;d=Kc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Kc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=ki),this.b&&(this.I=new ud(this,"1.34.2"),mi(this.I)?
b=null:delete this.I);!b&&this.b&&(b=ni(this))&&(this.C=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Aa(b):"")+")")):(g.F=b,g.O=!0);Ab(g)})}else Ab(this);this.P.power||(this.L=!0);!c&&this.L&&oi(this,this.nb)}else r("Unable to find CPU component")}aa(ii,t);function ji(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Kc(a,b,c){var d=b.toLowerCase(),d=Qa(b)||Qa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function oi(a,b,c){for(var d=lb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!zb(f)){zb(f,function(){oi(a,b,c)});return}}b.call(a,c)}
function pi(a,b){var c=new ud(a,"1.34.2",qi);if(mi(c)&&ri(c)){var d=c.get(si),e=b?b.get(si):"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=ii.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ti:ki));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new ud(this,"1.34.2");if(a==ui)b=!0;else if(a>ki){if(mi(d,this.F)){this.w=new ud(this,"1.34.2",vi);mi(this.w)&&(wi(this,d),a=xi,yi(this.w));this.w.set(si,Ea());zi(this.w);var e=this.b&&!this.C;if(a==ti||kb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ri(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?mi(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Oa(Ai,""),this.g=null)):this.i(f+": "+g),yi(d),mi(d)?(c=ri(d),e=!0):c=!1))}e&&pi(this,c?d:null)}else a==xi&&d.clear()}else pi(this);delete this.F;delete this.I}e=lb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Bi(this,g,d,b,c));b=[d,a,c];a!=ui?oi(this,this.Cc,b):this.Cc(b)}};
function Bi(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=ki,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Bi(this,this.u,b,c,a),this.u.lb());this.N&&(wi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function wi(a,b){if(kb("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function bi(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new ud(a,"1.34.2"),g=new ud(a,"1.34.2",qi),h=Ea();g.set(si,h);f.set(si,h);f.set(Ci,"1.34.2");f.set(Di,window?window.location.href:null);f.set(Ei,Ia());a.u&&a.u.va&&(c&&a.u.da(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=lb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Si(a,
a.g,f.toString()),zi(g)&&zi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ti),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.H&&this.H.reset&&(Eb(this,"Resetting "+this.H.type),this.H.reset());for(var a=lb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Eb(this,"Resetting "+c.type),c.reset())}};
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,ei],[34,51],[30,51],[11,51],[51,ei],[4,R|O,P|Q],[65,Qh],[62],[54],[38,51],[30,51|Rh],[15,51],[7,51],[1,R|O,P|Q],[65,Qh],[57],[50,fi],[33,51],[48,P|Q,R|O],[10,51],[51,fi],[74,R|O,P|Q],[65,Qh],[55],[54,Rh],[31,51],[27,R|O,P|Q],[8,51],[7,51|Rh],[67,R|O,P|Q],[65,
Qh],[61],[50,gi],[37,51],[78,hi|Nh|O,gi|O],[14,51],[51,gi],[6,R|O,P|Q],[65,Qh],[60],[49,gi],[36,51],[75,gi|O,fi|O],[13,51],[7,51|Rh],[77,R|O,P|Q],[65,Qh],[59],[50,ii],[35,51],[24],[12,51],[51,ii],[47,R|O,P|Q],[65,Qh],[56],[69,hi|O,gi|O],[32,51],[25],[9,51],[7,51|Rh],[19,R|O,P|Q],[65,Qh]],rh=1E3;Va(function(){for(var a=rb(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=pb(c),d=new mg(d);qb(d,c)}});
function ji(a,b,c){t.call(this,"Computer",a,67108864);this.G.ja=!1;ki(this,b);this.L=Kc(this,"autoPower",a);this.j=0;this.T=a.busWidth||a.buswidth;this.b=li;this.F=null;this.C=this.O=!1;this.U=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.g=mi(this);if(this.u=ob("CPU",this.id)){this.K=ob("Debugger",this.id);this.A=[];for(b=null;b=Kb(this,"Video",b);)this.A.push(b);this.H=new Mb({id:this.eb+".bus",busWidth:this.T},this.u,this.K);var d,e=lb(this.id);if((this.B=ob("Panel",this.id))&&this.B.ua)for(b=
0;b<e.length;b++)d=e[b],d.aa=this.B.aa,d.i=this.B.i,d.ua=this.B.ua;this.i("PC8080 v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.H,this.u,this.K);b=null;d=Kc(this,"resume",a);void 0!==d&&(1<d.length?b=this.D=d:this.b=parseInt(d,10));var f;if(a=Kc(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.C=!0,this.b=li),this.b&&(this.I=new ud(this,"1.34.2"),ni(this.I)?
b=null:delete this.I);!b&&this.b&&(b=oi(this))&&(this.C=!0);if(b){var g=this;Ga(b,null,!0,function(a,b,c){c?(g.D=null,g.C=!1,g.aa("Unable to load machine state from server (error "+c+(b?": "+Aa(b):"")+")")):(g.F=b,g.O=!0);Ab(g)})}else Ab(this);this.P.power||(this.L=!0);!c&&this.L&&pi(this,this.nb)}else r("Unable to find CPU component")}aa(ji,t);function ki(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.S=b}
function Kc(a,b,c){var d=b.toLowerCase(),d=Qa(b)||Qa(d);void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pi(a,b,c){for(var d=lb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!zb(f)){zb(f,function(){pi(a,b,c)});return}}b.call(a,c)}
function qi(a,b){var c=new ud(a,"1.34.2",ri);if(ni(c)&&si(c)){var d=c.get(ti),e=b?b.get(ti):"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=ji.prototype;
l.nb=function(a){void 0===a&&(a=this.b||(this.F?ui:li));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.I||new ud(this,"1.34.2");if(a==vi)b=!0;else if(a>li){if(ni(d,this.F)){this.w=new ud(this,"1.34.2",wi);ni(this.w)&&(xi(this,d),a=yi,zi(this.w));this.w.set(ti,Ea());Ai(this.w);var e=this.b&&!this.C;if(a==ui||kb("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=si(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ni(d,g):("error"==f&&"no machine state"!=
g?(this.aa("Error: "+g),"unable to verify user"==g&&(Oa(Bi,""),this.g=null)):this.i(f+": "+g),zi(d),ni(d)?(c=si(d),e=!0):c=!1))}e&&qi(this,c?d:null)}else a==yi&&d.clear()}else qi(this);delete this.F;delete this.I}e=lb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.u&&(c=Ci(this,g,d,b,c));b=[d,a,c];a!=vi?pi(this,this.Cc,b):this.Cc(b)}};
function Ci(a,b,c,d,e){if(!b.G.ja){b.G.ja=!0;if(b.wa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.O?(c.clear(),a.b=li,window&&window.location.reload()):a.N=!0,b.wa(null),e=!1)}if(!d&&b.vc)for(a=b.vc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.Cc=function(a){var b=a[0],c=0>a[1];a=a[2];this.W=!0;this.G.ja=!0;var d=this.P.power;d&&(d.textContent="Shutdown");this.u&&(Ci(this,this.u,b,c,a),this.u.lb());this.N&&(xi(this,b),b.clear());!c&&this.w&&(this.w.clear(),delete this.w);this.j=0};
function xi(a,b){if(kb("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PC8080",ver:"1.34.2"};d.url=a.U;d.user=c;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}}
function ci(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new ud(a,"1.34.2"),g=new ud(a,"1.34.2",ri),h=Ea();g.set(ti,h);f.set(ti,h);f.set(Di,"1.34.2");f.set(Ei,window?window.location.href:null);f.set(Fi,Ia());a.u&&a.u.va&&(c&&a.u.ea(),d=a.u.va(b,c),"object"===typeof d&&f.set(a.u.id,d),c&&(a.u.G.ja=!1,!1===d&&(e=null)));for(var h=lb(a.id),k=0;k<h.length;k++){var p=h[k];p.G.ja&&(p.va&&(d=p.va(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.G.ja=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ti(a,
a.g,f.toString()),Ai(g)&&Ai(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ui),d&&f.clear(h)):e=f.toString());c&&(a.G.ja=!1,b=a.P.power)&&(b.textContent="Power");a.j=0;return e}l.reset=function(){this.H&&this.H.reset&&(Eb(this,"Resetting "+this.H.type),this.H.reset());for(var a=lb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(Eb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=lb(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=lb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.ca=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?bi(d,!1,!0):oi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=kb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bi(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(ki)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(ta())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=li(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=bi(d,b);b?Si(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function li(a,b){var c=a.g;c||((c=La(Ai),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=Ui(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Ui(a,b){a.g=null;b=Ga(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa(Ai,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function ni(a){var b=null;a.g&&(b=va()+"/api/v1/user?req=load&user="+a.g+"&state="+Vi(a,"1.34.2"));return b}
function Si(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vi(a,"1.34.2");d.data=c;b=Ga(va()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),Oa(Ai,""),a.g=null)}}
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.P[b]=c,c.onclick=function(){d.j||(d.G.ja?ci(d,!1,!0):pi(d,d.nb))},!0;case "reset":return this.P[b]=c,c.onclick=function(){if(d.G.ja&&!d.j)if(d.b&&!d.D){var a=kb("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ci(d,a,!0);!a&&d.M?window&&window.location.reload():d.nb(li)}else d.reset(),d.u&&d.u.lb()},!0;case "save":if(ta())c.parentNode.removeChild(c);else return this.P[b]=
c,c.onclick=function(){var a=mi(d,!0);if(a){var b=!!(d.b&&!d.D||d.M),c=ci(d,b);b?Ti(d,a,c):d.aa("Resume disabled, machine state not saved")}},!0}return!1};
function mi(a,b){var c=a.g;c||((c=La(Bi),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=Vi(a,c))||a.aa("The user ID is invalid.")):b&&a.aa("Browser local storage is not available"));return c}
function Vi(a,b){a.g=null;b=Ga(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa(Bi,b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function oi(a){var b=null;a.g&&(b=va()+"/api/v1/user?req=load&user="+a.g+"&state="+Wi(a,"1.34.2"));return b}
function Ti(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wi(a,"1.34.2");d.data=c;b=Ga(va()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),Oa(Bi,""),a.g=null)}}
function Kb(a,b,c){a=lb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.Za=function(a){if(this.A.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.A[0];d.V&&d.V.focus();!a&&window&&window.scrollTo(b,c)}};
function Zc(a,b){a.u&&(a=a.u,a.ib&&(b||!a.G.ma||a.G.Bc)&&(I(a,"A",a.g),I(a,"B",a.w),I(a,"C",a.A),I(a,"BC",vd(a),4),I(a,"D",a.B),I(a,"E",a.C),I(a,"DE",xd(a),4),I(a,"H",a.D),I(a,"L",a.F),I(a,"HL",D(a),4),I(a,"SP",a.M,4),I(a,"PC",a.j,4),b=td(a),I(a,"PS",b,4),I(a,"IF",b&512?1:0,1),I(a,"SF",b&128?1:0,1),I(a,"ZF",b&64?1:0,1),I(a,"AF",b&16?1:0,1),I(a,"PF",b&4?1:0,1),I(a,"CF",b&1?1:0,1)),b=a.P.speed)&&(b.textContent=a.G.ma&&a.Y?a.Y.toFixed(2)+"Mhz":"Stopped")}
var vi="failsafe",qi="validate",si="timestamp",Ci="version",Di="url",Ei="browser",Ai="user",ui=-1,ki=0,ti=1,xi=2,Ti=3;Va(function(){for(var a=rb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=rb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ii(g,d,!0);qb(g,f);g.L&&oi(g,g.nb)}});Wa.show.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(ui)}});
Wa.exit.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.G.ja&&bi(c,!(!c.b||c.D),!0)}});function ud(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Vi(a,b,c);yi(this,a.Ad)}l=ud.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 mi(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Ja()&&(b=La(a.key))?(a.g=b,a.u=!0):!1}function ri(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){r(c.message||c),b=!1}return b}function zi(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Oa(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 yi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
l.clear=function(a){yi(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 Vi(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 Wi=0;
function Xi(a,b,c,d,e,f){e("Loading "+a+"...");Ga(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Yi(h,a,b,c,d,e,f)})}
function Yi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(hb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Zi(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
var wi="failsafe",ri="validate",ti="timestamp",Di="version",Ei="url",Fi="browser",Bi="user",vi=-1,li=0,ui=1,yi=2,Ui=3;Va(function(){for(var a=rb(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=pb(c),c=rb(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=pb(f),g=new ji(g,d,!0);qb(g,f);g.L&&pi(g,g.nb)}});Wa.show.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.W&&!c.G.ja&&c.nb(vi)}});
Wa.exit.push(function(){for(var a=rb(document,"pc8080","computer"),b=0;b<a.length;b++){var c=pb(a[b]);(c=ob("Computer",c.id))&&c.G.ja&&ci(c,!(!c.b||c.D),!0)}});function ud(a,b,c){this.id=a.id;this.K=a.K;this.g="";this.b={};this.u=this.H=!1;this.key=Wi(a,b,c);zi(this,a.Ad)}l=ud.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 ni(a,b){return b?(a.g=b,a.u=!0,a.H=!1,!0):a.u?!0:Ja()&&(b=La(a.key))?(a.g=b,a.u=!0):!1}function si(a){var b=!0;if(!a.H)try{a.b=JSON.parse(a.g),a.H=!0}catch(c){r(c.message||c),b=!1}return b}function Ai(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Oa(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 zi(a,b){a.g="";a.b={};a.u=a.H=!1;b&&a.set("parms",b)}
l.clear=function(a){zi(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 Wi(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 Xi=0;
function Yi(a,b,c,d,e,f){e("Loading "+a+"...");Ga(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Zi(h,a,b,c,d,e,f)})}
function Zi(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(hb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),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(v){f=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?$i(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
null)}
function Zi(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],p,u=/( [a-z]+=)(['"])(.*?)\2/g;p=u.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);Zi(a,b,c)}})}else c(a,null)}
function $i(a,b,c,d){function e(a){if(void 0===h){var b=g&&rb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);k&&(--Wi||cb(!0));k=!1}var g,h,k=!0;Wi++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=p:v.appendChild(document.createTextNode(p));u.appendChild(v)}c||
(c="/versions/pc8080/1.34.2/components.xsl");p=function(d,h){h?Xi(c,null,null,!1,e,function(d,k){k?(hb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Wi||cb(!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),--Wi||cb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Xi(b,a,d,!0,e,p):Yi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(A){f(A.message)}return k}window.embedPC8080=function(a,b,c,d){cb(!1);return $i(a,b,c,d)};window.findMachineComponent=function(a,b){return ob(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!tb[a]){for(var c=!0,d=tb,e=a,f=b.length,g=[],h=[],k="",p=null,u=0;u<f;u++){var v=b[u];if('"'==v||"'"==v)p&&v!=p?k+=v:(p?p=null:p=v,k&&(h.push(k),k=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){k&&(h.push(k),k="");";"==v&&h.length&&(g.push(h),h=[]);continue}}k+=v}}k&&h.push(k);h.length&&g.push(h);d[e]=g;sb(a)||(c=!1)}return c};window.enableEvents=cb;window.sendEvent=eb;})();
function $i(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(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,v=/( [a-z]+=)(['"])(.*?)\2/g;p=v.exec(f);)k=0>k.indexOf(p[1])?k.replace(">",p[0]+">"):k.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
a=a.replace(d[0],g);$i(a,b,c)}})}else c(a,null)}
function aj(a,b,c,d){function e(a){if(void 0===h){var b=g&&rb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=wa(a))}function f(a){e("Error: "+a);k&&(--Xi||cb(!0));k=!1}var g,h,k=!0;Xi++;ib[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=p:u.appendChild(document.createTextNode(p));v.appendChild(u)}c||
(c="/versions/pc8080/1.34.2/components.xsl");p=function(d,h){h?Yi(c,null,null,!1,e,function(d,k){k?(hb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Xi||cb(!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),--Xi||cb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Yi(b,a,d,!0,e,p):Zi(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(B){f(B.message)}return k}window.embedPC8080=function(a,b,c,d){cb(!1);return aj(a,b,c,d)};window.findMachineComponent=function(a,b){return ob(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!tb[a]){for(var c=!0,d=tb,e=a,f=b.length,g=[],h=[],k="",p=null,v=0;v<f;v++){var u=b[v];if('"'==u||"'"==u)p&&u!=p?k+=u:(p?p=null:p=u,k&&(h.push(k),k=""));else{if(!p){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){k&&(h.push(k),k="");";"==u&&h.length&&(g.push(h),h=[]);continue}}k+=u}}k&&h.push(k);h.length&&g.push(h);d[e]=g;sb(a)||(c=!1)}return c};window.enableEvents=cb;window.sendEvent=eb;})();

View file

@ -35,7 +35,7 @@ var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){a=Number(a);if(isNaN(a)||I
var n={Yd:0,ae:1,be:2,ce:3,de:4,ee:5,fe:6,ge:7,he:8,ie:9,je:10,ke:11,le:12,me:13,ne:14,oe:15,pe:16,qe:17,re:18,se:19,te:20,ue:21,ve:22,we:23,xe:24,ye:25,ze: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,Ia:65,sb:66,tb:67,kb:68,E:69,wb:70,xb:71,yb:72,zb:73,Ab:74,Bb:75,lb:76,Fb:77,Gb:78,Jb:79,Kb:80,Q:81,Lb:82,Nb:83,Ob:84,Pb:85,Rb:86,Sb:87,
Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,Kd:115,t:116,Ld:117,Md:118,Nd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ae:127},ja={59:186,61:187,173:189,224:91};
function ka(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d?(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)):"^"==d&&(d=a.charAt(1),"D"==d?(b=10,d=null):"O"==d?(b=8,d=null):"B"==d&&(b=2,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));
var f,d=a;((e=b)&&10!=e?16==e?d.match(/^-?[0-9a-f]+$/i):8==e?d.match(/^-?[0-7]+$/):2==e&&d.match(/^-?[01]+$/):d.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}
var f,d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);var e=a,g=b;(g&&10!=g?16==g?e.match(/^-?[0-9a-f]+$/i):8==g?e.match(/^-?[0-7]+$/):2==g&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d&&(0>f&&(f+=Math.pow(2,36)),f=0<d?f*Math.pow(2,d):Math.trunc(f/Math.pow(2,-d))),c=f)}return c}
function p(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;c=c?"0x":"";var d="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));if(null==a)for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a%16,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a=Math.trunc(a/16)}return(void 0===c?"":c)+d}function la(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){var a=oa();return-1!==a.indexOf("pcjs.org",a.length-8)}function pa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var qa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},sa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};