222 lines
78 KiB
JavaScript
222 lines
78 KiB
JavaScript
(function(){/*
|
|
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/cpudef.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/messages.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/defines.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/panel.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/bus.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/memory.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/cpu.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/cpustate.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/cpuops.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/chipset.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/rom.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/ram.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/keyboard.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/video.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/serial.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pc8080/lib/computer.js (C) Jeff Parsons 2012-2017
|
|
*/
|
|
var k;function l(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}
|
|
for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,ca=["Math","trunc"],ea=0;ea<ca.length-1;ea++){var fa=ca[ea];fa in ba||(ba[fa]={});ba=ba[fa]}
|
|
var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ia!=ha&&null!=ia&&aa(ba,ga,{configurable:!0,writable:!0,value:ia});
|
|
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,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
|
|
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
|
|
function p(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?-1:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d;0<b--;){f||(e=","+e,f=d);if(null==a)e="?"+e;else{var g=a%16,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e}
|
|
function la(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){var a=oa();return-1!==a.indexOf("pcjs.org",a.length-8)}function pa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
|
var qa={"&":"&","<":"<",">":">",'"':""","'":"'"},sa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
|
|
function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
|
function ua(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
|
f,e))});if(b&&"object"==typeof b){var m="",q;for(q in b)b.hasOwnProperty(q)&&(m&&(m+="&"),m+=q+"="+encodeURIComponent(b[q]));m=m.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
|
function va(a,b){var c,d={T:null,sa:null,Aa:null,ta: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.Aa=g.load;d.ta=g.exec;if(e=g.bytes)d.T=e;else if(e=g.words)for(d.T=Array(2*e.length),f=c=0;c<e.length;c++)d.T[f++]=e[c]&255,d.T[f++]=e[c]>>8&255;else if(e=g.longs)for(d.T=Array(4*e.length),f=c=0;c<e.length;c++)d.T[f++]=
|
|
e[c]&255,d.T[f++]=e[c]>>8&255,d.T[f++]=e[c]>>16&255,d.T[f++]=e[c]>>24&255;else(e=g.data)?d.hf=e:d.T=g;d.T&&(d.T.length?1==d.T.length&&(r(d.T[0]),d=null):(r("Empty resource: "+a),d=null));d.sa=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.T=e)}return d}
|
|
function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function wa(){if(null==ya){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ya=a}return ya}function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
|
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
|
|
function Ca(a){if(!Da){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Da=c}return Da[a]}function Ea(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Fa(a){Ga.init.push(a)}
|
|
function Ha(a){if(Ia)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ja("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ka(a){!Ia&&a?(Ia=!0,La&&Ma("init"),Na&&Ma("show")):Ia=a}function Ma(a){Ga[a]&&Ha(Ga[a])}var Da=null,Ga={init:[],show:[],exit:[]},La=!1,Na=!1,Ia=!0,ya=null;Ea("onload",function(){La=!0;Ha(Ga.init)});Ea("onpageshow",function(){Na=!0;Ha(Ga.show)});
|
|
Ea(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ha(Ga.exit)});function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Tb=b.comment;this.Uc=b;this.exports={};this.w=this.bindings={};a=this.id.indexOf(".");0>a?this.Ya=this.id:(this.Ka=this.id.substr(0,a),this.Ya=this.id.substr(a+1));this.i={ready:!1,ab:!1,nb:!1,V:!1,error:!1};this.eb=null;this.i.error=!1;this.J=this.m=this.u=this.D=this.pa=null;u.push(this)}
|
|
function Oa(a,b,c){Pa[a]&&b&&(Pa[a][b]=c)}function Qa(){return Date.now()||+new Date}function Ja(a,b,c){b||r((c?c+": ":"")+a)}function r(a){window&&window.alert(a)}function Ra(a){var b=!1;window&&(b=window.confirm(a));return b}function Sa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ta(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
|
function Ua(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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
|
function Va(a,b){b=A(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),m=0;m<h.length;m++)switch(g=h[m],g){case "pc8080-binding":(g=y(f))&&g.binding&&a.S(g.type,g.binding,f,g.value),m=h.length}}}}
|
|
function A(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 Xa(a){for(var b=!0,c=Ya[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Za.indexOf(e)&&(f=function(){return function(){Xa(a)}}());var g=$a[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=Ua(d[1],a);if(h)if(g=ab[e])b=g(h,d[2],d[3]);else{var m=h.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Ya[a];return b}k=t.prototype;
|
|
k.toString=function(){return this.name?this.name:this.id||this.type};
|
|
k.S=function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.pa=this.w[b]=c,c.value="",this.aa=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.G=function(a){this.aa(a,this.Ya)}),!0;default:return!1}};k.log=function(){};k.aa=function(){};
|
|
k.status=function(a){this.aa(this.Ya+": "+a)};k.G=function(a,b,c){Ja(a,b,c||this.type)};function bb(a,b){b&&(a.i.ready?b():a.eb=b);return a.i.ready}function B(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.eb;a.eb=null;b&&b()}}function cb(a,b){if(a.i.nb)return a.i.ab=!1,a.i.nb=!1;if(a.i.error)return a.aa(a.toString()+" error"),!1;a.i.ab=b;return a.i.ab}k.ca=function(){return this.i.V=!0};k.ba=function(a,b){b&&(this.i.V=!1);return!0};
|
|
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
|
var Pa=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ya=window?window.PCjs.Commands:{},Za=["hold","sleep","wait"],$a={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ab={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
|
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
|
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
|
var db="undefined"!==typeof ArrayBuffer,eb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
|
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function fb(a){t.call(this,"Panel",a)}l(fb,t);fb.prototype.S=function(a,b,c,d){return this.D&&this.D.S(a,b,c,d)||this.m&&this.m.S(a,b,c,d)||this.h&&this.h.S(a,b,c,d)?!0:t.prototype.S.call(this,a,b,c,d)};fb.prototype.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;this.h=gb(a,"Keyboard")};fb.prototype.ca=function(a,b){b||hb();return!0};fb.prototype.ba=function(){return!0};
|
|
function hb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f=Ta(e.id);f||(a=!0,f=new fb(e));Va(f,d);a&&B(f)}}Fa(hb);
|
|
function ib(a,b,c){t.call(this,"Bus",a);this.m=b;this.J=c;this.s=a.busWidth||16;this.v=Math.pow(2,this.s);this.g=this.v-1|0;this.b=(this.s>>1)+2;10>this.b&&(this.b=10);15<this.b&&(this.b=15);this.c=1<<this.b;this.A=this.c>>2;this.f=this.c-1;this.h=this.v/this.c|0;this.o=this.h-1;this.j=[];this.l=[];this.B=[];this.C=[];a=new C;jb(a,this.J);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;B(this)}l(ib,t);ib.prototype.reset=function(){};ib.prototype.ca=function(a,b){b||this.reset();return!0};
|
|
function kb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],m=g*a.c,q=a.c-(e-m);q>f&&(q=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ra)return h.ib+=h.Ra-e,h.Ra=e,!0;if(e>=h.Ra+h.ib){q=h.size-(e-m);q>f&&(q=f);h.ib=e-h.Ra+q;e=m+a.c;f-=q;g++;continue}}return lb(mb,e,f)}e=new C(e,q,a.c,d);jb(e,a.J,h);a.a[g++]=e;e=m+a.c;f-=q}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+nb[d]+" at "+p(b,4,!0)),!0):lb(ob,b,c)}function qb(a,b){return a.a[(b&a.g)>>>a.b].hb(b&a.f,b)}
|
|
function rb(a,b){var c=b&a.f,d=(b&a.g)>>>a.b;return c!=a.f?a.a[d].Ed(c,b):a.a[d++].Ua(c,b)|a.a[d&a.o].Ua(0,b+1)<<8}function sb(a,b,c){a.a[(b&a.g)>>>a.b].gc(b&a.f,c&255,b)}function tb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.b;d!=a.f?a.a[e].Sd(d,c&65535,b):(a.a[e++].Va(d,c&255,b),a.a[e&a.o].Va(0,c>>8&255,b+1))}
|
|
function ub(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.ja||e.Zb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var q=e[g],x=g+1;x<e.length&&e[x]===q;)x++;m[h++]=x-g;m[h++]=q;g=x}m.length<e.length&&(e=m)}c[f]=e}}return c}function vb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var m=+e+d;m<=g;m++)void 0!==f.j[m]?r("Input port "+p(m,4,!0)+" already registered"):f.j[m]=[h,!1]}}
|
|
function wb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var m=+e+d;m<=g;m++)void 0!==f.l[m]?r("Output port "+p(m,4,!0)+" already registered"):f.l[m]=[h,!1]}}function lb(a,b,c){r("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var mb=1,ob=2,xb;if(db){var yb=new ArrayBuffer(2);(new DataView(yb)).setUint16(0,256,!0);xb=256===(new Uint16Array(yb))[0]}else xb=!1;var zb=xb;
|
|
function C(a,b,c,d){this.id=Ab+=2;this.a=null;this.Ra=a;this.ib=b;this.size=c||0;this.type=d||Bb;this.w=d==Cb;jb(this);this.ja=this.Zb=!1;if(c)if(db)this.m=new ArrayBuffer(c),this.u=new DataView(this.m,0,c),this.b=new Uint8Array(this.m,0,c),this.g=new Uint16Array(this.m,0,c>>1),this.a=new Int32Array(this.m,0,c>>2),Db(this,zb?Eb:Fb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Db(this,Gb)}else Db(this)}k=C.prototype;
|
|
k.save=function(){var a,b;if(db)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a};k.restore=function(a){if(a&&this.size==a.length<<2){var b;if(db)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.ja=!0}return!1};function Db(a,b){b||(b=Hb);Ib(a,b,void 0);Jb(a,b,void 0)}function Ib(a,b,c){c&&a.c||(a.Ua=b[0]||a.cc,a.Ed=b[2]||a.dc);if(c||void 0===c)a.hb=b[0]||a.cc,a.ec=b[2]||a.dc}
|
|
function Jb(a,b,c){c&&a.f||(a.Va=!a.w&&b[1]||a.hc,a.Sd=!a.w&&b[3]||a.ic);if(c||void 0===c)a.gc=b[1]||a.hc,a.h=b[3]||a.ic}function jb(a,b,c){a.J=b;a.c=a.f=0;c&&((a.c=c.c)&&Ib(a,Kb,!1),(a.f=c.f)&&Jb(a,Kb,!1))}k.cc=function(){return 255};k.hc=function(){};k.dc=function(a,b){return this.Ua(a++,b++)|this.Ua(a,b)<<8};k.ic=function(a,b,c){this.Va(a++,b&255,c++);this.Va(a,b>>8,c)};k.Dd=function(a){return this.a[a>>2]>>>((a&3)<<3)&255};
|
|
k.Id=function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8};k.Rd=function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ja=!0};k.Wd=function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ja=!0};k.Bd=function(a,b){return this.hb(a,b)};k.Gd=function(a,b){return this.ec(a,b)};k.Pd=function(a,b,c){this.w||this.gc(a,b,c)};
|
|
k.Ud=function(a,b,c){this.w||this.h(a,b,c)};k.Ad=function(a){return this.b[a]};k.Cd=function(a){return this.b[a]};k.Fd=function(a){return this.u.getUint16(a,!0)};k.Hd=function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.g[a>>1]};k.Od=function(a,b){this.b[a]=b;this.ja=!0};k.Qd=function(a,b){this.b[a]=b;this.ja=!0};k.Td=function(a,b){this.u.setUint16(a,b,!0);this.ja=!0};k.Vd=function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.g[a>>1]=b;this.ja=!0};
|
|
var Bb=0,Cb=2,nb=["NONE","RAM","ROM","VID","H/W"],Ab=0,Hb=[],Gb=[C.prototype.Dd,C.prototype.Rd,C.prototype.Id,C.prototype.Wd],Kb=[C.prototype.Bd,C.prototype.Pd,C.prototype.Gd,C.prototype.Ud];if(db)var Fb=[C.prototype.Ad,C.prototype.Od,C.prototype.Fd,C.prototype.Td],Eb=[C.prototype.Cd,C.prototype.Qd,C.prototype.Hd,C.prototype.Vd];
|
|
function Lb(a,b){t.call(this,"CPU",a);var c=a.multiplier||1;this.na=a.cycles||b;this.O=c;this.Ea=Math.round(this.na/1E4)/100;this.X=this.Ea*this.O;this.i.ka=!1;this.i.fc=!1;this.i.Sa=a.autoStart;this.i.Xb=!1;this.i.bb=!1;this.wa=this.ea=0;this.xa=a.csStart;this.ha=a.csInterval;this.la=a.csStop;this.H=[];this.mb=this.jb.bind(this);B(this)}l(Lb,t);k=Lb.prototype;
|
|
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.J=d;for(b=0;b<Mb.length;b++)(c=this.w[Mb[b]])&&this.D.S(null,Mb[b],c);this.N=gb(a,"ChipSet");a=Nb(a,"autoStart");null!=a&&(this.i.Sa="true"==a?!0:"false"==a?!1:!!a);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ca=function(a,b){if(!b){if(a&&this.restore){Ob(this);if(!this.restore(a))return!1;Pb(this)}else this.reset();this.aa("No debugger detected")}Qb(this);return!0};
|
|
k.ba=function(a){return a?this.save():!0};k.Sa=function(){return this.i.Sa||void 0===this.w.run?(this.jb(),!0):!1};k.$b=function(){return 0};function Pb(a){void 0===a.xa&&(a.xa=0);void 0===a.ha&&(a.ha=-1);void 0===a.la&&(a.la=-1);a.i.bb=0<=a.xa&&0<a.ha;a.i.bb&&(a.wa=0,a.ea=a.xa-a.I)}
|
|
k.S=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.V)a=!0;else{var b=null,c,h=Sa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.eb?" (waiting for notification)":""))+".");a=!1}a&&(d.i.ka?Rb(d):d.jb())};a=!0;
|
|
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){Sb(d,d.O<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",a=!0}return a};function Tb(a,b){var c=1;b&&1<a.O&&a.R&&(c=a.R/a.Ea);a.Pa=Math.round(1E3/Ub);a.ya=Math.floor(a.na/Ub*c);b||(a.ma=a.ya);a.Ga=0}function Vb(a){return a.I+a.P+a.da-a.a}function Ob(a){a.R=0;a.Qa=0;a.I=a.P=a.da=a.a=0;Pb(a);Sb(a,1)}
|
|
function Sb(a,b,c){if(void 0!==b){.8>a.R/a.X&&(b=1);a.O=b;b=a.Ea*a.O;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.w.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.D&&Wb(a.D)}a.I+=a.P;a.P=0;a.L=Qa();a.W=0;Tb(a)}function Xb(a,b){var c=a.H.length;a.H.push([-1,b]);return c}function Yb(a,b,c){0<=b&&b<a.H.length&&0>a.H[b][0]&&(c*=a.na*a.O/1E3,a.H[b][0]=c+Zb(a))}function Zb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
|
|
k.jb=function(a){if(cb(this,!0)){if(!this.i.ka){Sb(this);this.D&&this.D.start(this.L,Vb(this));this.i.ka=!0;this.i.fc=!0;this.N&&this.N.start();var b=this.w.run;b&&(b.textContent="Halt");this.D&&($b(this.D,!0),a&&Wb(this.D,!0))}this.Ga>=this.na&&Tb(this,!0);this.oa=0;this.va=Qa();this.W&&(a=this.va-this.W,a>this.Pa&&(this.L+=a,this.L>this.va&&(this.L=this.va)));try{do{for(var c,d=this.i.bb?1:this.ya,e=this.H.length-1;0<=e;e--){var f=this.H[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.vb(c);c=Zb(this,!0);
|
|
this.oa+=c;this.P+=c;a=c;this.i.bb&&(b=!1,this.wa=this.wa+this.$b()|0,this.ea-=a,0>=this.ea&&(this.ea+=this.ha,b=!0),0<=this.la&&this.la<=Vb(this)&&(this.ha=this.la=-1,Pb(this),Rb(this),b=!0),b&&this.aa(Vb(this)+" cycles: checksum="+p(this.wa)));a=c;for(var g=this.H.length-1;0<=g;g--){var h=this.H[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ma-=c;if(0>=this.ma){this.ma+=this.ya;++this.Qa>=ac&&(this.D&&$b(this.D),this.Qa=0);break}}while(this.i.ka)}catch(m){Rb(this);Qb(this);this.D&&this.D.stop(Qa(),
|
|
Vb(this));cb(this,!1);c=m.stack||m.message;this.i.error=!0;this.G(c);return}c=setTimeout;d=this.mb;this.W=Qa();e=this.Pa;this.oa&&(e=Math.round(e*this.oa/this.ya));e-=this.W-this.va;if(f=this.W-this.L)this.R=Math.round(this.P/(10*f))/100,864E5<=f&&(this.I=0,Sb(this));if(0>e||this.R<this.X)-1E3>e&&(this.L-=e),e=0;this.Ga+=this.oa;this.W+=e;c(d,e)}else Qb(this),this.D&&this.D.stop(Qa(),Vb(this))};k.vb=function(){return 0};
|
|
function Rb(a){a.i.ab&&(a.i.nb=!0);Zb(a);a.I+=a.P;a.P=0;if(a.i.ka){a.i.ka=!1;a.N&&a.N.stop();var b=a.w.run;b&&(b.textContent="Run")}a.i.complete=void 0}function Qb(a){if(a.D){for(var b=a.D,c=0;c<b.g.length;c++)bc(b.g[c],void 0);$b(a.D,void 0)}}var Ub=30,ac=15,Mb=["power","reset"];function cc(a){Lb.call(this,a,1E6);this.Ma=dc;Ob(this);this.i.complete=this.i.Vc=!1;this.Oa=0;this.ra=[];this.Na=0;fc(this)}l(cc,Lb);function gc(a,b){a.ra.push(b)}k=cc.prototype;
|
|
k.reset=function(){this.i.ka&&Rb(this);fc(this);Ob(this);this.i.error=!1;Lb.prototype.reset.call(this)};function fc(a){a.b=0;a.g=0;a.c=0;a.h=0;a.f=0;a.j=0;a.l=0;a.A=0;D(a,a.Na);hc(a,0);a.C=0}function ic(a,b){a.Na=b;D(a,b)}k.$b=function(){var a=this.b+this.g+this.c+this.h+this.f+this.j+this.l|0;return a=a+this.A+this.s+jc(this)|0};
|
|
k.save=function(){var a=new E(this);a.set(0,[this.b,this.g,this.c,this.h,this.f,this.j,this.l,this.A,this.s,jc(this)]);a.set(1,[this.C,this.I,this.O]);a.set(2,ub(this.u));return a.data()};
|
|
k.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.c=b[2];this.h=b[3];this.f=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);hc(this,b[9]);b=a[1];this.C=b[0];this.I=b[1];Sb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,g=Array(b.A),h=0;h<e.length-1;)for(var m=e[h++],q=e[h++];m--;)g[f++]=q;e=g}f=b.a[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
|
k.S=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.Oa++;a=!0;break;default:a=Lb.prototype.S.call(this,a,b,c)}return a};function kc(a){return a.g<<8|a.c}function lc(a,b){a.g=b>>8&255;a.c=b&255}function mc(a){return a.h<<8|a.f}function nc(a,b){a.h=b>>8&255;a.f=b&255}function G(a){return a.j<<8|a.l}
|
|
function H(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.s=b&65535}function I(a){return a.o&256?1:0}function oc(a,b){a.o=a.o&255|b}function pc(a){return eb[a.v&255]?4:0}function jc(a){return a.F&-214|(a.v&128?128:0)|(a.o&255?0:64)|((a.v^a.B)&16?16:0)|pc(a)|I(a)}function hc(a,b){a.o=a.v=a.B=0;b&1&&(a.o|=256);b&4||(a.v|=1);b&16&&(a.B|=16);b&64||(a.o|=255);b&128&&(a.v^=192);a.F=a.F&-726|b&512|2}function qc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b)&255}
|
|
function rc(a,b){a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?1:0))&255}function sc(a,b){a.o=a.v=a.B=a.b&b;(a.b|b)&8&&(a.B^=16);return a.o}function tc(a,b){a.B=b^255;b=a.v=b+255&255;a.o=a.o&-256|b;return b}function uc(a,b){a.B=b;b=a.v=b+1&255;a.o=a.o&-256|b;return b}function vc(a,b){return a.v=a.o=a.B=a.b|b}function J(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+1^256)&255}function wc(a,b){b^=255;a.B=a.b^b;return a.v=(a.o=a.b+b+(a.o&256?0:1)^256)&255}function xc(a,b){return a.v=a.o=a.B=a.b^b}
|
|
function K(a,b){a=a.u;return a.a[(b&a.g)>>>a.b].Ua(b&a.f,b)}function M(a,b,c){a=a.u;a.a[(b&a.g)>>>a.b].Va(b&a.f,c&255,b)}function N(a){var b=K(a,a.s);D(a,a.s+1);return b}function O(a){var b=rb(a.u,a.s);D(a,a.s+2);return b}function P(a){var b=rb(a.u,a.A);a.A=a.A+2&65535;return b}function Q(a,b){a.A=a.A-2&65535;tb(a.u,a.A,b)}function yc(a){if(a.a&&a.C&255&&a.F&512){for(var b=0;8>b&&!(a.C&1<<b);b++);a.C&=~(0>b?255:1<<b);a.F&=-513;a.C&=-257;a.Ma[199|b<<3].call(a)}return a.C&256?(Zb(a),!1):!0}
|
|
function zc(a,b){a.C|=1<<b;a.F&512&&Zb(a)}function R(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.i.error=!0,a.G("Value for "+b+" is invalid"),Rb(a)),c=!a.i.ka||a.i.Xb?p(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}k.vb=function(a){this.i.complete=!0;this.i.Vc=!1;this.i.fc=!1;this.da=this.a=a;if(yc(this)){do this.Ma[N(this)].call(this);while(0<this.a)}return this.i.complete?this.da-this.a:void 0===this.i.complete?0:-1};
|
|
Fa(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new cc(d);Va(d,c)}});function Ac(){this.a-=4}function Bc(){D(this,O(this));this.a-=10}function Cc(){D(this,P(this));this.a-=10}function Dc(){var a=O(this);Q(this,this.s);D(this,a);this.a-=17}
|
|
var dc=[Ac,function(){lc(this,O(this));this.a-=10},function(){M(this,kc(this),this.b);this.a-=7},function(){lc(this,kc(this)+1);this.a-=5},function(){this.g=uc(this,this.g);this.a-=5},function(){this.g=tc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;oc(this,a&256);this.a-=4},Ac,function(){var a;H(this,a=G(this)+kc(this));oc(this,a>>8&256);this.a-=10},function(){this.b=K(this,kc(this));this.a-=7},function(){lc(this,kc(this)-1);this.a-=5},
|
|
function(){this.c=uc(this,this.c);this.a-=5},function(){this.c=tc(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;oc(this,a);this.a-=4},Ac,function(){nc(this,O(this));this.a-=10},function(){M(this,mc(this),this.b);this.a-=7},function(){nc(this,mc(this)+1);this.a-=5},function(){this.h=uc(this,this.h);this.a-=5},function(){this.h=tc(this,this.h);this.a-=5},function(){this.h=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|I(this);
|
|
oc(this,a&256);this.a-=4},Ac,function(){var a;H(this,a=G(this)+mc(this));oc(this,a>>8&256);this.a-=10},function(){this.b=K(this,mc(this));this.a-=7},function(){nc(this,mc(this)-1);this.a-=5},function(){this.f=uc(this,this.f);this.a-=5},function(){this.f=tc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(I(this)<<8|this.b)>>1;oc(this,a&256);this.a-=4},Ac,function(){H(this,O(this));this.a-=10},function(){var a=O(this);tb(this.u,a,G(this));this.a-=16},
|
|
function(){H(this,G(this)+1);this.a-=5},function(){this.j=uc(this,this.j);this.a-=5},function(){this.j=tc(this,this.j);this.a-=5},function(){this.j=N(this);this.a-=7},function(){var a=0,b=I(this);if((this.v^this.B)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=qc(this,a);oc(this,b?256:0);this.a-=4},Ac,function(){var a;H(this,a=G(this)+G(this));oc(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=rb(this.u,a);H(this,a);this.a-=16},function(){H(this,G(this)-1);this.a-=5},function(){this.l=
|
|
uc(this,this.l);this.a-=5},function(){this.l=tc(this,this.l);this.a-=5},function(){this.l=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ac,function(){this.A=O(this)&65535;this.a-=10},function(){M(this,O(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=G(this);M(this,a,uc(this,K(this,a)));this.a-=10},function(){var a=G(this);M(this,a,tc(this,K(this,a)));this.a-=10},function(){M(this,G(this),N(this));this.a-=10},function(){this.o|=256;this.a-=4},Ac,
|
|
function(){var a;H(this,a=G(this)+this.A);oc(this,a>>8&256);this.a-=10},function(){this.b=K(this,O(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=uc(this,this.b);this.a-=5},function(){this.b=tc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){oc(this,I(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.h;this.a-=5},function(){this.g=this.f;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=
|
|
this.l;this.a-=5},function(){this.g=K(this,G(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.a-=5},function(){this.c=this.h;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.j;this.a-=5},function(){this.c=this.l;this.a-=5},function(){this.c=K(this,G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.h=this.g;this.a-=5},function(){this.h=this.c;this.a-=5},function(){this.a-=5},function(){this.h=this.f;
|
|
this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=K(this,G(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.f=this.g;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.h;this.a-=5},function(){this.a-=5},function(){this.f=this.j;this.a-=5},function(){this.f=this.l;this.a-=5},function(){this.f=K(this,G(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=
|
|
this.c;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.f;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=K(this,G(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.c;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.f;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=K(this,G(this));this.a-=7},function(){this.l=this.b;
|
|
this.a-=5},function(){M(this,G(this),this.g);this.a-=7},function(){M(this,G(this),this.c);this.a-=7},function(){M(this,G(this),this.h);this.a-=7},function(){M(this,G(this),this.f);this.a-=7},function(){M(this,G(this),this.j);this.a-=7},function(){M(this,G(this),this.l);this.a-=7},function(){var a=this.s-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.C|=256;Zb(this);this.F&512||Rb(this)},function(){M(this,G(this),this.b);this.a-=7},function(){this.b=this.g;
|
|
this.a-=5},function(){this.b=this.c;this.a-=5},function(){this.b=this.h;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=K(this,G(this));this.a-=7},function(){this.a-=5},function(){this.b=qc(this,this.g);this.a-=4},function(){this.b=qc(this,this.c);this.a-=4},function(){this.b=qc(this,this.h);this.a-=4},function(){this.b=qc(this,this.f);this.a-=4},function(){this.b=qc(this,this.j);this.a-=4},function(){this.b=
|
|
qc(this,this.l);this.a-=4},function(){this.b=qc(this,K(this,G(this)));this.a-=7},function(){this.b=qc(this,this.b);this.a-=4},function(){this.b=rc(this,this.g);this.a-=4},function(){this.b=rc(this,this.c);this.a-=4},function(){this.b=rc(this,this.h);this.a-=4},function(){this.b=rc(this,this.f);this.a-=4},function(){this.b=rc(this,this.j);this.a-=4},function(){this.b=rc(this,this.l);this.a-=4},function(){this.b=rc(this,K(this,G(this)));this.a-=7},function(){this.b=rc(this,this.b);this.a-=4},function(){this.b=
|
|
J(this,this.g);this.a-=4},function(){this.b=J(this,this.c);this.a-=4},function(){this.b=J(this,this.h);this.a-=4},function(){this.b=J(this,this.f);this.a-=4},function(){this.b=J(this,this.j);this.a-=4},function(){this.b=J(this,this.l);this.a-=4},function(){this.b=J(this,K(this,G(this)));this.a-=7},function(){this.b=J(this,this.b);this.a-=4},function(){this.b=wc(this,this.g);this.a-=4},function(){this.b=wc(this,this.c);this.a-=4},function(){this.b=wc(this,this.h);this.a-=4},function(){this.b=wc(this,
|
|
this.f);this.a-=4},function(){this.b=wc(this,this.j);this.a-=4},function(){this.b=wc(this,this.l);this.a-=4},function(){this.b=wc(this,K(this,G(this)));this.a-=7},function(){this.b=wc(this,this.b);this.a-=4},function(){this.b=sc(this,this.g);this.a-=4},function(){this.b=sc(this,this.c);this.a-=4},function(){this.b=sc(this,this.h);this.a-=4},function(){this.b=sc(this,this.f);this.a-=4},function(){this.b=sc(this,this.j);this.a-=4},function(){this.b=sc(this,this.l);this.a-=4},function(){this.b=sc(this,
|
|
K(this,G(this)));this.a-=7},function(){this.b=sc(this,this.b);this.a-=4},function(){this.b=xc(this,this.g);this.a-=4},function(){this.b=xc(this,this.c);this.a-=4},function(){this.b=xc(this,this.h);this.a-=4},function(){this.b=xc(this,this.f);this.a-=4},function(){this.b=xc(this,this.j);this.a-=4},function(){this.b=xc(this,this.l);this.a-=4},function(){this.b=xc(this,K(this,G(this)));this.a-=7},function(){this.b=xc(this,this.b);this.a-=4},function(){this.b=vc(this,this.g);this.a-=4},function(){this.b=
|
|
vc(this,this.c);this.a-=4},function(){this.b=vc(this,this.h);this.a-=4},function(){this.b=vc(this,this.f);this.a-=4},function(){this.b=vc(this,this.j);this.a-=4},function(){this.b=vc(this,this.l);this.a-=4},function(){this.b=vc(this,K(this,G(this)));this.a-=7},function(){this.b=vc(this,this.b);this.a-=4},function(){J(this,this.g);this.a-=4},function(){J(this,this.c);this.a-=4},function(){J(this,this.h);this.a-=4},function(){J(this,this.f);this.a-=4},function(){J(this,this.j);this.a-=4},function(){J(this,
|
|
this.l);this.a-=4},function(){J(this,K(this,G(this)));this.a-=7},function(){J(this,this.b);this.a-=4},function(){this.o&255&&(D(this,P(this)),this.a-=6);this.a-=5},function(){lc(this,P(this));this.a-=10},function(){var a=O(this);this.o&255&&D(this,a);this.a-=10},Bc,function(){var a=O(this);this.o&255&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,kc(this));this.a-=11},function(){this.b=qc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,0);this.a-=11},function(){this.o&
|
|
255||(D(this,P(this)),this.a-=6);this.a-=5},Cc,function(){var a=O(this);this.o&255||D(this,a);this.a-=10},Bc,function(){var a=O(this);this.o&255||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Dc,function(){this.b=rc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,8);this.a-=11},function(){I(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){nc(this,P(this));this.a-=10},function(){var a=O(this);I(this)||D(this,a);this.a-=10},function(){for(var a=N(this),b=this.u,c=this.b,d=this.s+
|
|
-2&65535,e=1,f=0;0<e;){var g=b.l[a],h=b.C[a]||1,m=1==h?255:2==h?65535:-1,m=(c>>>=f)&m;if(void 0!==g&&g[0])g[0](a,m,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);I(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,mc(this));this.a-=11},function(){this.b=J(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,16);this.a-=11},function(){I(this)&&(D(this,P(this)),this.a-=6);this.a-=5},Cc,function(){var a=O(this);I(this)&&D(this,a);this.a-=10},function(){for(var a=
|
|
N(this),b=this.u,c=this.s+-2&65535,d=1,e=0,f=0;0<d;){var g=b.j[a],h=b.B[a]||1,m=1==h?255:2==h?65535:-1,q=m;void 0!==g&&g[0]&&(q=g[0](a,c),void 0===q?q=m:q&=m);e|=q<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);I(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Dc,function(){this.b=wc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,24);this.a-=11},function(){pc(this)||(D(this,P(this)),this.a-=6);this.a-=5},function(){H(this,P(this));this.a-=10},function(){var a=
|
|
O(this);pc(this)||D(this,a);this.a-=10},function(){var a=P(this);Q(this,G(this));H(this,a);this.a-=18},function(){var a=O(this);pc(this)||(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},function(){Q(this,G(this));this.a-=11},function(){this.b=sc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,32);this.a-=11},function(){pc(this)&&(D(this,P(this)),this.a-=6);this.a-=5},function(){D(this,G(this));this.a-=5},function(){var a=O(this);pc(this)&&D(this,a);this.a-=10},function(){var a=G(this);
|
|
H(this,mc(this));nc(this,a);this.a-=5},function(){var a=O(this);pc(this)&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Dc,function(){this.b=xc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,40);this.a-=11},function(){this.v&128||(D(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);hc(this,a&255|this.F&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.v&128||D(this,a);this.a-=10},function(){this.F&=-513;this.a-=4},function(){var a=O(this);this.v&128||(Q(this,this.s),
|
|
D(this,a),this.a-=6);this.a-=11},function(){Q(this,jc(this)&255|this.b<<8);this.a-=11},function(){this.b=vc(this,N(this));this.a-=7},function(){Q(this,this.s);D(this,48);this.a-=11},function(){this.v&128&&(D(this,P(this)),this.a-=6);this.a-=5},function(){this.A=G(this)&65535;this.a-=5},function(){var a=O(this);this.v&128&&D(this,a);this.a-=10},function(){this.F|=512;this.a-=4;yc(this)},function(){var a=O(this);this.v&128&&(Q(this,this.s),D(this,a),this.a-=6);this.a-=11},Dc,function(){J(this,N(this));
|
|
this.a-=7},function(){Q(this,this.s);D(this,56);this.a-=11}];function S(a){t.call(this,"ChipSet",a);var b=a.model;b&&!Ec[b]&&Ja("Unrecognized ChipSet model: "+b);this.b=Ec[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}l(S,t);k=S.prototype;k.S=function(){return!1};
|
|
k.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;this.D=a;this.h=gb(a,"Keyboard");this.g=gb(a,"SerialPort");this.video=gb(a,"Video");vb(b,this,this.b.fb);wb(b,this,this.b.gb)};k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.b.INIT&&!this.restore(this.b.INIT)&&this.G("reset error")};
|
|
k.save=function(){var a=new E(this);switch(this.b.Y){case T.Y:a.set(0,[this.W,this.f,this.X,this.B,this.H,this.P,this.R]);break;case V.Y:a.set(0,[this.N,this.s]),a.set(1,[this.l,this.o]),a.set(2,[this.c,this.C,this.O,this.L]),a.set(3,[this.A,this.a,this.v,this.F,this.j])}return a.data()};
|
|
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.Y){case T.Y:return this.W=b[0],this.f=b[1],this.X=b[2],this.B=b[3],this.H=b[4],this.P=b[5],this.R=b[6],!0;case V.Y:return this.N=b[0],this.s=b[1],b=a[1],this.l=b[0],this.o=b[1],b=a[2],this.c=b[0],this.C=b[1],this.O=b[2],this.L=b[3],b=a[3],this.A=b[0],this.a=b[1],this.v=b[2],this.F=b[3],this.j=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.dd=function(){return this.W};k.ed=function(){return this.f};k.fd=function(){return this.X};
|
|
k.cd=function(){return this.B>>8-this.H&255};k.qd=function(a,b){this.H=b};k.sd=function(a,b){this.P=b};k.rd=function(a,b){this.B=b<<8|this.B>>8};k.td=function(a,b){this.R=b};k.ud=function(){};function Fc(a){var b=0,c=0,d=~a.A;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
|
|
k.gd=function(){var a=this.s,a=a&~V.ga.Hb;if((Vb(this.m)&64)<<1&&(a|=V.ga.Hb,a!=this.s)){var b,c;b=this.v&1;switch(this.v>>1&7){case V.ia.Ca.kc:this.A=this.A<<1|b;break;case V.ia.Ca.pc:b=Fc(this);this.j[b]=V.ia.Za;break;case V.ia.Ca.lc:this.a=this.a<<1|b;break;case V.ia.Ca.Pc:b=Fc(this);c=this.a&V.ia.Za;this.j[b]=c;break;case V.ia.Ca.Kc:b=Fc(this);c=this.j[b];null==c&&(c=V.ia.Za);this.a=c;break;case V.ia.Ca.Lc:this.a<<=1,this.F=this.a&V.ia.Za+1}}a&=~V.ga.Ib;this.F&&(a|=V.ga.Ib);a&=~V.ga.Cb;if(b=this.h){b=
|
|
this.h;if(c=b.h)c=b.m,c=Vb(b.m)>=b.o+c.na*c.O/1E3*1.2731488;c&&(b.h=!1);b=!b.h}b&&(a|=V.ga.Cb);a&=~V.ga.Qb;this.g&&this.g.U&Gc&&(a|=V.ga.Qb);return this.s=a};k.vd=function(a,b){this.N=b};k.yd=function(a,b){this.v=b};k.xd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.c=this.c&-4|a;break;case 1:this.c=this.c&-13|a<<2;this.video&&(b=this.video,a=this.c,b.la!==a&&((b.la=a)?bc(b,!0):b.na=!0));break;case 2:switch(a){case 0:this.C=~this.C;break;case 2:case 3:this.O=3-a}break;case 3:this.L=a}};
|
|
k.wd=function(a,b){b&V.ua.Jc?(b&=V.ua.Mb,this.o!=b&&(this.o=b,this.video&&(this.video.bc=this.o==V.ua.Mb?50:60))):(b&=V.ua.ub,this.l!=b&&(this.l=b,this.video&&(a=this.video,b=this.l==V.ua.ub?132:80,a.C=b,a.M=a.va,80<b&&a.M--,Hc(a)&&Ic(a))))};
|
|
var T={Y:1978.1,Nc:{Z:0,Ce:1,Ge:16,Ne:32,We:64,Ve:128,Ja:14},za:{Z:1,oc:1,Ic:2,Ec:4,Fc:16,Gc:32,Hc:64,Ja:8},Oc:{Z:2,Be:3,ef:4,De:8,Re:16,Se:32,Te:64,Ee:128,Ja:0},$e:{Z:3},Ye:{Z:2,Oe:7},bf:{Z:3,ff:1,af:2,Ue:4,Le:8,Fe:16,Xd:32},Ze:{Z:4},cf:{Z:5,He:1,Ie:2,Je:4,Ke:8,gf:16}},V={Y:100,ga:{Z:66,Qb:1,Cc:2,Dc:4,Qe:8,Pe:16,Ib:32,Hb:64,Cb:128},nc:{Z:66,INIT:0},ua:{Z:194,$d:0,ub:16,Jc:32,Mb:48,sc:0,tc:32},Xa:{Z:162,Xe:0,vc:0,rc:0,uc:0,qc:0},ia:{Me:{Z:98},Ca:{lc:0,kc:1,Lc:2,Pc:4,pc:5,Kc:6,df:7},Za:16383}},Ec=
|
|
{SI1978:T,VT100:V};T.INIT=[[T.Nc.Ja,T.za.Ja,T.Oc.Ja,0,0,0,0]];
|
|
V.INIT=[[V.nc.INIT,V.ga.Cc|V.ga.Dc],[V.ua.sc,V.ua.tc],[V.Xa.vc,V.Xa.rc,V.Xa.uc,V.Xa.qc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
|
|
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];T.fb={0:S.prototype.dd,1:S.prototype.ed,2:S.prototype.fd,3:S.prototype.cd};
|
|
T.gb={2:S.prototype.qd,3:S.prototype.sd,4:S.prototype.rd,5:S.prototype.td,6:S.prototype.ud};V.fb={66:S.prototype.gd};V.gb={66:S.prototype.vd,98:S.prototype.yd,162:S.prototype.xd,194:S.prototype.wd};Fa(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new S(d);Va(d,c)}});
|
|
function Jc(a){t.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=la(this.c);if(this.c){a=this.c;var b=ma(this.h);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){Kc(c,a,b,f)})}}l(Jc,t);Jc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Lc(this)};Jc.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0};
|
|
Jc.prototype.ba=function(){return!0};
|
|
function Kc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{Oa(a.Ka,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.a=f;else if(g)for(a.a=Array(4*g.length),d=c=0;c<g.length;c++)a.a[d++]=g[c]&255,a.a[d++]=g[c]>>8&255,a.a[d++]=g[c]>>16&255,a.a[d++]=g[c]>>24&255;else a.a=e;a.sa=e.symbols;if(!a.a.length){r("Empty ROM: "+b);return}if(1==a.a.length){r(a.a[0]);return}}catch(h){a.G("ROM data error: "+h.message);return}else for(b=
|
|
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.a=Array(b.length),e=0;e<b.length;e++)a.a[e]=ka(b[e]);Lc(a)}}
|
|
function Lc(a){if(!bb(a))if(!a.c)B(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+p(a.a.length,8,!0)+") does not match specified size ("+p(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(kb(a.u,b,a.b,Cb)){var c;for(c=0;c<a.a.length;c++)sb(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],m=d.g>>>f.b;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=f.c;f=d.u;
|
|
d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=f.c}}delete a.a}}B(a)}}Fa(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Jc(d);Va(d,c)}});
|
|
function Mc(a){t.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=la(this.a);if(this.a){a=this.a;var b=ma(this.h);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(Oa(c.Ka,a,b),(a=va(a,b))?(c.b=a.T,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,Nc(c))})}}l(Mc,t);
|
|
Mc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Nc(this)};Mc.prototype.ca=function(){return!0};Mc.prototype.ba=function(){return!0};
|
|
function Nc(a){!a.c&&a.g&&kb(a.u,a.f,a.g,1)&&(a.c=!0);if(!bb(a)){if(!a.c)r("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;var b=a.f;null!==a.Aa&&(b=a.Aa);for(var c=0;c<a.b.length;c++)sb(a.u,b+c,a.b[c]);if(null!==a.ta){if(a.ta==Oc){for(c=0;c<Pc.length;c++)sb(a.u,Pc[c],118);gc(a.m,function(a){return function(b){if(0<=Pc.indexOf(b)){var c=!1,d=a.m,e=a.J;if(b==Qc)switch(c=!0,d.c){case Rc:Sc(a,String.fromCharCode(d.f));break;case Tc:for(var m=mc(d),q="",x=255;x--;){var w=K(a.m,m++);if(36==w)break;
|
|
q+=String.fromCharCode(w)}Sc(a,q);break;default:c=!1}c?Cc.call(d):e&&(a.aa("\nCP/M vector "+p(b,4,!0)),D(d,b),Rb(e));b=!0}else b=!1;return b}}(a))}ic(a.m,a.ta)}delete a.b}B(a)}}Mc.prototype.reset=function(){};function Sc(a,b){b=b.replace(/\r/g,"");a.pa&&(a.pa.value+=b,a.pa.scrollTop=a.pa.scrollHeight)}var Qc=5,Rc=2,Tc=9,Oc=256,Pc=[0,Qc];Fa(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Mc(d);Va(d,c)}});
|
|
function Uc(a){t.call(this,"Keyboard",a);(a=a.model)&&!Vc[a]&&Ja("Unrecognized Keyboard8080 model: "+a);this.a=Vc[a]||{};this.reset();B(this)}l(Uc,t);k=Uc.prototype;
|
|
k.S=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.w[e]){if("led"==a&&this.a.La[b])return this.w[e]=c,!0;switch(b){case "kbd":case "screen":return Ba("iOS")?(c.onkeypress=function(a){var b=!1;if(a=d.a.Wa[a.keyCode||a.charCode]){a&128&&(a&=127,b=!0);var c;a:{for(c in d.a.Da)if(d.a.Da[c]==a){c=+c;break a}c=0}c&&(b?Wc(d,16,!0,!0):Wc(d,16,!1),Wc(d,c,!0,!0))}return!0},c.onkeydown=function(a){return Xc(d,a,!0)},c.onkeyup=function(a){return Xc(d,a,!1)}):(c.onkeydown=function(a){return Yc(d,a,!0)},
|
|
c.onkeyup=function(a){return Yc(d,a,!1)},c.onkeypress=function(a){a=a.keyCode||a.charCode;a>=n.Ia&&a<=n.$a?d.b&(Zc|$c)||(d.b|=$c,Wc(d,20,!0),ad(d)):a>=n.Wb&&a<=n.z&&d.b&$c&&(d.b&=~$c,Wc(d,20,!1),ad(d));return!0}),c.onpaste=function(a){a:{if(d.g&&d.g.Ba&&(a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a=a.clipboardData||window.clipboardData)){bd(d.g,a.getData("Text"));a=!1;break a}a=!0}return a},!0;default:if(this.a.Fa&&void 0!==this.a.Fa[b])return this.w[e]=c,c.onclick=
|
|
function(a,b){return function(d){d.preventDefault&&d.preventDefault();d=!0;var e=0;17==b?e=cd:20==b&&(e=$c);if(e){c.style.fontWeight="normal";if(d=!(a.b&e))c.style.fontWeight="bold";dd(a,b,d)}Wc(a,b,d,!e);a.D&&Wb(a.D)}}(this,this.a.Fa[b]),!0}}return!1};k.qa=function(a,b,c,d){this.D=a;this.m=c;this.J=d;var e=this;this.v=Xb(this.m,function(){ed(e)});this.N=gb(a,"ChipSet");this.g=gb(a,"SerialPort");vb(b,this,this.a.fb);wb(b,this,this.a.gb)};
|
|
k.ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){this.c=[];this.b=0;this.a.INIT&&!this.restore(this.a.INIT)&&this.G("reset error")};k.save=function(){var a=new E(this);switch(this.a.Y){case W.Y:a.set(0,[this.l,this.j,this.h,this.o,-1])}return a.data()};
|
|
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.a.Y){case fd.Y:return!0;case W.Y:return this.l=b[0],ad(this,this.l&W.fa.Db),this.j=b[1],this.h=b[2],this.o=b[3],this.f=b[4],!0}return!1};function ad(a,b){var c;null!=b?a.s=b:b=a.s;for(var d in a.a.La)if(c="led-"+d,c=a.w[c]){var e=a.a.La[d],f=!!(b&e);e&e-1&&(f=!(b&~e));c.style.backgroundColor=f?"#"+p(16711680,6):"#000000"}if(c=a.w["led-caps-lock"])c.style.backgroundColor=a.b&$c?"#"+p(65280,6):"#000000"}
|
|
function dd(a,b,c,d){var e=0;switch(b){case 16:e=d?gd:id;break;case 17:e=d?jd:cd;break;case 18:e=d?kd:ld;break;case 91:e=d?md:nd;break;case 20:e=$c,c=!(a.b&e)}e&&(a.b=c?a.b|e:a.b&~e);return c}
|
|
function Yc(a,b,c){var d=!0,e=b.keyCode,e=ja[e]||e;c=dd(a,e,c,2==b.location);var f;a:if(e=a.a.rb[e]||e,a.a.Da[e])f=e;else{for(f in a.a.Fa)if(a.a.Fa[f]===e)break a;f=null}f&&!b.metaKey&&(d=!1,a.b&(od|pd)&&(13==f?(f=118,d=!0):8==f&&(f=46,d=!0),d&&(a.b=c?a.b|pd:a.b&~pd)),d=Wc(a,f,c),(!(f>=n.Ia&&f<=n.$a)||a.b|qd)&&b.preventDefault&&b.preventDefault());return d}
|
|
function Xc(a,b,c){var d=!0;if(c){var e=b.keyCode,f=a.a.Da[e],g;if(g=f){a:{for(var h in a.a.Wa)if(a.a.Wa[h]==f){f=+h;break a}f=0}g=!f}g&&(d=Wc(a,e,c,!0),b.preventDefault&&b.preventDefault())}return d}
|
|
function Wc(a,b,c,d){var e;a:{for(e=0;e<a.c.length;e++)if(a.c[e].qb==b)break a;e=-1}if(c)0>e?a.c.push({qb:b,ob:Date.now(),cb:d||!1}):(a.c[e].ob=Date.now(),a.c[e].cb=d||!1),d&&ed(a);else if(0<=e){if(!a.c[e].cb&&(d=a.c[e].ob)&&Date.now()-d<rd)return a.c[e].cb=!0,ed(a),!0;a.c.splice(e,1)}if(a.N){d=0;switch(b){case "1p":d=T.za.Ec;break;case "2p":d=T.za.Ic;break;case "coin":d=T.za.oc;break;case "left":d=T.za.Gc;break;case "right":d=T.za.Hc;break;case "fire":d=T.za.Fc}d&&(a=a.N,b=d,a.f&=~b,c&&(a.f|=b))}return!0}
|
|
function ed(a){for(var b=0,c=-1;b<a.c.length;){if(a.c[b].cb){var d=a.c[b].qb,e=rd-(Date.now()-a.c[b].ob);if(0<e){if(0>c||c>e)c=e}else{Wc(a,d,!1);b=0;continue}}b++}0<=c&&Yb(a.m,a.v,c)}k.hd=function(){var a=this.j;0<=this.f&&(this.f<this.c.length?(a=this.c[this.f],this.f++,a=W.Da[a.qb],a&128&&(a&=127)):(this.f=-1,a=W.wc),this.j=a,zc(this.m,1));return a};k.zd=function(a,b){this.l=b;this.h=!0;this.o=Vb(this.m);ad(this,b&W.fa.Db);b&W.fa.Mc&&(this.f=0,zc(this.m,1))};
|
|
var gd=1,id=2,Zc=3,jd=4,cd=8,qd=12,kd=16,ld=32,od=48,md=64,nd=128,$c=512,pd=4096,rd=50,sd={};sd[n.Ia]=37;sd[n.kb]=39;sd[n.lb]=32;
|
|
var fd={Y:1978.1,Da:{},Wa:{},rb:sd,La:{},Fa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},X={},Y={},W={Y:100,Da:(X[8]=3,X[n.Kb]=5,X[n.Jb]=6,X[n.Vb]=7,X[n.Ob]=8,X[n.Sb]=9,X[n.Q]=10,X[39]=16,X[221]=20,X[219]=21,X[n.zb]=22,X[n.Pb]=23,X[n.Lb]=24,X[n.E]=25,X[49]=26,X[37]=32,X[40]=34,X[117]=35,X[19]=35,X[192]=36,X[189]=37,X[57]=38,X[55]=39,X[52]=40,X[51]=41,X[27]=42,X[38]=48,X[114]=49,X[112]=50,X[46]=51,X[187]=52,X[48]=53,X[56]=54,X[54]=55,X[53]=56,X[50]=57,X[9]=58,X[103]=64,X[115]=65,X[113]=66,X[96]=
|
|
67,X[118]=68,X[220]=69,X[n.lb]=70,X[n.Bb]=71,X[n.xb]=72,X[n.wb]=73,X[n.Ia]=74,X[104]=80,X[2013]=81,X[98]=82,X[97]=83,X[222]=85,X[186]=86,X[n.Ab]=87,X[n.yb]=88,X[n.kb]=89,X[n.Nb]=90,X[110]=96,X[116]=97,X[101]=98,X[100]=99,X[13]=100,X[190]=101,X[188]=102,X[n.Gb]=103,X[n.sb]=104,X[n.Ub]=105,X[119]=106,X[105]=112,X[99]=113,X[102]=114,X[109]=115,X[191]=117,X[n.Fb]=118,X[n[" "]]=119,X[n.Rb]=120,X[n.tb]=121,X[n.$a]=122,X[120]=123,X[17]=124,X[16]=125,X[20]=126,X),Wa:(Y[n.p]=5,Y[n.md]=6,Y[n.y]=7,Y[n.t]=8,
|
|
Y[n.Nd]=9,Y[n.q]=10,Y[n["]"]]=20,Y[n["["]]=21,Y[n.$c]=22,Y[n.Ld]=23,Y[n.r]=24,Y[n.e]=25,Y[n["1"]]=26,Y[n["`"]]=36,Y[n["-"]]=37,Y[n["9"]]=38,Y[n["7"]]=39,Y[n["4"]]=40,Y[n["3"]]=41,Y[n["="]]=52,Y[n["0"]]=53,Y[n["8"]]=54,Y[n["6"]]=55,Y[n["5"]]=56,Y[n["2"]]=57,Y[n["\\"]]=69,Y[n.kd]=70,Y[n.k]=71,Y[n.Yc]=72,Y[n.Xc]=73,Y[n.Wb]=74,Y[n["'"]]=85,Y[n[";"]]=86,Y[n.jd]=87,Y[n.Zc]=88,Y[n.d]=89,Y[n.Kd]=90,Y[13]=100,Y[n["."]]=101,Y[n[","]]=102,Y[n.n]=103,Y[n.Rc]=104,Y[n.x]=105,Y[n["/"]]=117,Y[n.ld]=118,Y[n.Md]=120,
|
|
Y[n.Tc]=121,Y[n.z]=122,Y[n.Kb]=133,Y[n.Jb]=134,Y[n.Vb]=135,Y[n.Ob]=136,Y[n.Sb]=137,Y[n.Q]=138,Y[n["}"]]=148,Y[n["{"]]=149,Y[n.zb]=150,Y[n.Pb]=151,Y[n.Lb]=152,Y[n.E]=153,Y[n["!"]]=154,Y[n["~"]]=164,Y[n._]=165,Y[n["("]]=166,Y[n["&"]]=167,Y[n.$]=168,Y[n["#"]]=169,Y[n["+"]]=180,Y[n[")"]]=181,Y[n["*"]]=182,Y[n["^"]]=183,Y[n["%"]]=184,Y[n["@"]]=185,Y[n["|"]]=197,Y[n.lb]=198,Y[n.Bb]=199,Y[n.xb]=200,Y[n.wb]=201,Y[n.Ia]=202,Y[n['"']]=213,Y[n[":"]]=214,Y[n.Ab]=215,Y[n.yb]=216,Y[n.kb]=217,Y[n.Nb]=218,Y[n[">"]]=
|
|
229,Y[n["<"]]=230,Y[n.Gb]=231,Y[n.sb]=232,Y[n.Ub]=233,Y[n["?"]]=245,Y[n.Fb]=246,Y[n.Rb]=248,Y[n.tb]=249,Y[n.$a]=250,Y),rb:{},La:{},Fa:{"caps-lock":20,ctrl:17,esc:27,tab:9,"num-comma":116,"break":117,"line-feed":118,"no-scroll":119,setup:120},mc:{Z:130,INIT:127},fa:{Z:130,Ac:1,zc:2,yc:4,xc:8,Bc:16,Eb:32,Db:63,Mc:64,Zd:128,INIT:0},wc:127};W.La={l4:W.fa.Ac,l3:W.fa.zc,l2:W.fa.yc,l1:W.fa.xc,locked:W.fa.Bc,local:W.fa.Eb,online:~W.fa.Eb,"caps-lock":$c};var Vc={SI1978:fd,VT100:W};
|
|
W.INIT=[[W.fa.INIT,W.mc.INIT,!1,0,-1]];W.fb={130:Uc.prototype.hd};W.gb={130:Uc.prototype.zd};Fa(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Uc(d);Va(d,c)}});
|
|
function td(a,b,c,d,e){t.call(this,"Video",a);var f=this;this.Ea=Ba("Gecko/");var g=["","moz","ms","webkit"];this.A=a.screenWidth;this.s=a.screenHeight;this.da=a.bufferAddr;this.Qc=a.bufferRAM;var h=a.bufferFormat;this.P=h&&ud[h.toUpperCase()]||vd;this.C=a.bufferCols;this.R=a.bufferRows;this.va=this.M=a.cellWidth||1;this.K=a.cellHeight||1;this.W=null;this.ya=!1;this.ea=a.bufferBits||1;this.Sc=a.bufferLeft||0;if(this.b=a.bufferRotate)this.b=this.b%360,0<this.b&&(this.b-=360),-90!=this.b&&(this.G("unsupported buffer rotation: "+
|
|
this.b),this.b=0);this.ha=a.interruptRate;this.Pa=a.refreshRate||60;this.o=b;this.c=c;this.L=(this.Wc=d)||b||null;this.mb=this.A;this.jc=this.s;this.wa=this.A/this.C|0;this.xa=this.s/this.R|0;1<this.K&&(this.R++,this.la=0,this.na=!1);b=a.smoothing;(c=Ca("smoothing"))&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.c[d]){this.c[d]=b;break}if(this.f=a.screenRotate)this.f=this.f%360,0<this.f&&(this.f-=360),-90!=this.f?(this.G("unsupported screen rotation: "+
|
|
this.f),this.f=0):(this.c.translate(0,this.s),this.c.rotate(this.f*Math.PI/180),this.c.scale(this.s/this.A,this.A/this.s));if(this.a=e)if(this.a.Ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.a.Ha){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){wd(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(){wd(f,null)},!1);break}}if(this.F=a.fontROM)"json"!=ma(this.F)&&(this.F=oa()+"/api/v1/dump?file="+this.F+"&format=bytes"),ua(this.F,null,!0,function(a,b,c){xd(f,a,b,c)});this.ra={}}l(td,t);
|
|
function Hc(a){a.j=a.C*a.M;a.B=a.R*a.K;var b=a.j,c=a.B;a.b&&(b=a.B,c=a.j);a.v=0;if(!a.Qc&&(a.v=(a.j*a.ea>>3)*a.B,!kb(a.u,a.da,a.v,3)))return!1;a.v?(a.Ga=a.c.createImageData(b,c),a.Na=16/a.ea|0,yd(a,a.v>>1)):yd(a,(a.C+1)*a.R);a.l=document.createElement("canvas");a.l.width=b;a.l.height=c;a.ma=a.l.getContext("2d");a.H={};a.O=1<<a.ea;a.I=Array(a.O+zd);a.I[0]=[0,0,0,255];a.I[1]=[255,255,255,255];a.P==Ad&&(a.I[a.O+Bd]=[255,255,0,255],a.I[a.O+Cd]=[0,255,0,255]);a.P==Dd&&(a.bc=60,a.oa=!1,a.X=Array(a.C));
|
|
return!0}k=td.prototype;k.S=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ra[b]=c,!0;switch(b){case "fullScreen":return this.w[b]=c,this.a&&this.a.Ha?c.onclick=function(){d.Ha()}:c.parentNode.removeChild(c),!0}return!1};
|
|
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;Hc(this);if(this.h=gb(a,"Keyboard")){for(var e in this.ra)this.h.S("led",e,this.ra[e]);this.o&&this.h.S(this.Wc?"textarea":"canvas","screen",this.L)}var f=this;this.Qa=Xb(this.m,function(){bc(f)});Yb(this.m,this.Qa,1E3/Math.max(this.Pa,this.ha));this.Oa=0;this.F||B(this)};
|
|
function xd(a,b,c,d){if(d)a.G("Unable to load font ROM (error "+d+": "+b+")");else{Oa(a.Ka,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.W=f,Ic(a);else{a.G("Unrecognized font data length ("+f.length+")");return}}catch(g){a.G("Font ROM data error: "+g.message);return}(a.c||a.J)&&B(a)}}
|
|
function Ic(a){a.W&&(a.ya=a.P==Dd,a.H[Ed]=[Fd(a,a.M,a.K),Fd(a,a.M,a.K,a.oa)],a.H[Gd]=[Fd(a,2*a.M,a.K),Fd(a,2*a.M,a.K,a.oa)],a.H[Hd]=a.H[Id]=[Fd(a,2*a.M,2*a.K),Fd(a,2*a.M,2*a.K,a.oa)])}
|
|
function Fd(a,b,c,d){var e=8>=a.va?8:16,f=8<e?15:0,g=a.W.length/e,h=!1===d,m={M:b,K:c};m.canvas=document.createElement("canvas");m.canvas.width=16*b;m.canvas.height=g/16*c;m.context=m.canvas.getContext("2d");for(var q=m.context.createImageData(b,c),x=0;x<g;x++){for(var w=0,L=w;w<a.K;w++)for(var z=x*e+(f+w&e-1),z=d&&8==w?255:a.W[z],v=0;v<c/a.K;v++){for(var F=0,U=0,Z=U;U<a.M;U++){for(var da=z&128>>(7<U?7:U),F=a.ya&&!da&&F?F:da,xa=0;xa<b/a.M;xa++)h&&(F=!F),Jd(a,q,Z,L,F?1:0),Z++;F=da}L++}m.context.putImageData(q,
|
|
(x&15)*b,(x>>4)*c)}return m}k.ca=function(a,b){return b||!a||this.restore(a)?!0:!1};k.ba=function(a){return!a||this.save()};k.save=function(){var a=new E(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};
|
|
k.Ha=function(){var a=!1;if(this.a){if(this.a.Ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.A/this.s;b>c&&(a=Math.round(c/b*100)+"%")}this.Ea?(this.o.style.width=a,this.o.style.width=a,this.o.style.display="block",this.o.style.margin="auto"):(this.a.style.width=a,this.a.style.height="auto");this.a.style.backgroundColor="black";this.a.Ha();a=!0}this.L&&this.L.focus()}return a};
|
|
function wd(a,b){!b&&a.a&&(a.Ea?a.o.style.width=a.o.style.height="":a.a.style.width=a.a.style.height="")}function yd(a,b){a.Ma=b;a.N=!1;if(void 0===a.g||a.g.length!=a.Ma)a.g=Array(a.Ma)}function Jd(a,b,c,d,e){d=a.b?(b.height-c-1)*b.width+d:c+d*b.width;e&&a.P==Ad&&(208<=c&&236>c?e=a.O+Bd:28<=c&&72>c&&(e=a.O+Cd));a=a.I[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
|
|
function bc(a,b){var c=!0;if(!b){a.ha&&(120==a.ha?a.Oa&1?(zc(a.m,2),c=!1):zc(a.m,1):zc(a.m,4));if(c&&a.N&&a.v){for(var d=a.u,e=a.v,f=!0,g=a.da>>>d.b;0<e&&g<d.a.length;)d.a[g].ja&&(d.a[g].ja=f=!1,d.a[g].Zb=!0),e-=d.c,g++;f&&(c=!1)}Yb(a.m,a.Qa,1E3/Math.max(a.Pa,a.ha));a.Oa++}if(c)if(1<a.M)switch(a.P){case Dd:for(var c=a.da,d=-1,e=0,f=60==a.bc?2:5,h=g=0,m=-1;e<a.R;){var q=0,x=c,w=d,L=a.C;for(w!=Ed&&(L>>=1);;){var z=qb(a.u,x++);if((z&Kd)==Kd){var v=qb(a.u,x++),d=v&Ld,c=(v&Md)<<8|qb(a.u,x),c=c+(v&Nd?Od:
|
|
Pd);break}if(q<L)a.X[q++]=z;else break}if(f)f--;else{for(;q<a.X.length;)a.X[q++]=0;if(0<=w)for(x=a.N&&a.g[g]==L,a.g[g++]=L,L=0;L<q;L++){z=a.X[L];if(!x||z!==a.g[g]){a.g[m=g]=z;var v=a,F=a.ma,U=z&127;if(z=v.H[w][z&128?1:0]){var Z=(U&15)*z.M,U=(U>>4)*z.K,da,xa,Wa,pb,hd=z.M,ec=z.K;F?(da=L*v.M,xa=e*v.K,Wa=v.M,pb=v.K):(da=L*v.wa,xa=e*v.xa,Wa=v.wa,pb=v.xa);z.M>v.M&&(da*=2,Wa*=2);z.K>v.K&&(w==Id&&(U+=v.K),ec=v.K);F?F.drawImage(z.canvas,Z,U,hd,ec,da,xa,Wa,pb):(da+=0,xa+=0,v.c.drawImage(z.canvas,Z,U,hd,ec,
|
|
da,xa,Wa,pb))}h++}g++}e++}}a.N=!0;!b&&a.na&&1==h&&(a.g[m]=-1,h=0);a.na=!1;(h||b)&&a.ma&&a.c.drawImage(a.l,0,a.la,a.j,a.B-a.K,0,0,a.mb,a.jc)}else{e=a.da;f=e+a.v;m=h=g=0;b=a.j;q=0;c=a.B;w=d=0;x=a.ea;L=(1<<x)-1;a.Sc&&(x=-x,w=16+x);for(;e<f;){v=a.u;F=e;z=F&v.f;Z=(F&v.g)>>>v.b;v=z!=v.f?v.a[Z].ec(z,F):v.a[Z++].hb(z,F)|v.a[Z&v.o].hb(0,F+1)<<8;if(a.N&&v===a.g[g])h+=a.Na;else{a.g[g]=v;(F=w)&&(v=v>>8|(v&255)<<8);h<b&&(b=h);for(z=a.Na;z--;)Z=v>>F&L,Jd(a,a.Ga,h++,m,Z),F+=x;h>q&&(q=h);m<c&&(c=m);m>=d&&(d=m+1)}e+=
|
|
2;g++;if(h>=a.j&&(h=0,m++,m>a.B))break}a.N=!0;b<a.j&&(e=q-b,d-=c,a.b&&(f=b,g=e,b=c,e=d,c=a.j-(f+g),d=g),a.ma.putImageData(a.Ga,0,0,b,c,e,d),a.c.drawImage(a.l,0,0,a.l.width,a.l.height,0,0,a.A,a.s))}}var Bd=0,Cd=1,zd=2,vd=0,Ad=1,Dd=2,ud={SI1978:Ad,VT100:Dd},Ed=96,Gd=64,Hd=32,Id=0,Kd=127,Md=15,Nd=16,Ld=96,Od=8192,Pd=16384;
|
|
Fa(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
|
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ca("aspect"));f&&.3<=f&&3.33>=f&&(Ea("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"),f.style.fontSize="16px");c.appendChild(f);var g=e.getContext("2d"),d=new td(d,e,g,f,c);Va(d,c)}});
|
|
function Qd(a){t.call(this,"SerialPort",a);this.H=+a.adapter;switch(this.H){case 0:this.I=0;this.O=2;break;default:r("Unrecognized serial adapter #"+this.H);return}this.b=this.c=null;this.L=a.tabSize;this.F=a.charBOL;this.f=0;this.B=!1;this.l=!0;var b=a.binding;if("console"==b)this.c="";else{var c;a=Rd;b&&(void 0===c&&(c="Panel"),(c=Ua(c,this.id))&&(b=c.w[b])&&this.S(null,a,b))}this.g="";this.a=this.Ba=this.s=null;this.exports={connect:this.ac,receiveData:this.pb,receiveStatus:this.Jd}}l(Qd,t);
|
|
k=Qd.prototype;k.S=function(a,b,c,d){var e=this;switch(b){case Rd:return this.w[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Sd(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Sd(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.w[b]=c,c.onclick=function(){e.pb(d);return!0},!0}return!1};
|
|
k.qa=function(a,b,c,d){this.D=a;this.u=b;this.m=c;this.J=d;var e=this;this.P=Xb(this.m,function(){e.pb()});this.R=Xb(this.m,function(){bd(e)});this.N=gb(a,"ChipSet");vb(b,this,Td,this.I);wb(b,this,Ud,this.I);B(this)};
|
|
k.ac=function(a){if(!this.a){var b=Nb(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.Ya)return;c=ra(c[1]);if(this.a=Ta(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.l);if(this.Ba=e.receiveData){this.l=a;this.s=e.receiveStatus;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
|
k.ca=function(a,b){if(!b)if(this.ac(this.l),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.ba=function(a){return a?this.save():!0};k.reset=function(){Vd(this)};k.save=function(){var a=new E(this),b=0,c=[];c[b++]=this.o;c[b++]=this.A;c[b++]=this.C;c[b++]=this.U;c[b++]=this.h;c[b++]=this.j;c[b]=this.v;a.set(0,c);return a.data()};k.restore=function(a){return Vd(this,a[0])};
|
|
function Vd(a,b){var c=0;b||(b=Wd);a.o=b[c++];a.A=b[c++];a.C=b[c++];a.U=b[c++];a.h=b[c++];a.j=b[c++];a.v=b[c];return!0}function Xd(a,b){var c=a.v&b;b&15||(c>>=4);b=Yd[c];c=((a.h&Zd)>>2)+6;a.h&$d&&c++;c+=((a.h&ae)>>6)+1>>1;return 1E3/Math.round(b/c)}function Sd(a,b){return a.B||a.U&be?!1:(a.A=b,a.U|=be,zc(a.m,a.O),!0)}
|
|
k.pb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Sd(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.m&&Yb(this.m,this.P,Xd(this,ce)));return!0};k.Jd=function(a){this.U&=~de;a&64&&(this.U|=de)};function bd(a,b){a.U=a.U|Gc|ee;b&&a.Ba&&a.Ba.call(a.a,b)}k.bd=function(){var a=this.A;this.U&=~be;return a};k.ad=function(){return this.U};
|
|
k.pd=function(a,b){this.C=b;this.U&=~(Gc|ee);if(19==b)this.B=!0;else if(17==b)this.B=!1;else if(this.Ba&&this.Ba.call(this.a,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{var c;13!=b&&10!=b&&(c=sa[b]);a=c=c?"<"+c+">":String.fromCharCode(b);c=a.length;9==b?(b=this.L||8,c=b-this.f%b,this.L&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.F&&!this.f&&c&&(a=String.fromCharCode(this.F)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;
|
|
this.f+=c}else if(null!=this.c){if(10==b||1024<=this.c.length)this.aa(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.m&&Yb(this.m,this.R,Xd(this,fe))};k.od=function(a,b){this.o?(this.s&&(b^this.j)&(ge|he)&&(a=0,this.l?(a|=b&ge?32:0,a|=b&he?320:0):(a|=b&ge?16:0,a|=b&he?1048576:0),this.s.call(this.a,a)),this.j=b,this.j&ie&&(this.o=!1)):(this.h=b,this.o=!0)};k.nd=function(a,b){this.v=b};
|
|
var Zd=12,$d=16,ae=192,he=2,ge=32,ie=64,Gc=1,be=2,ee=4,de=128,ce=15,fe=240,Yd=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Wd=[!1,0,0,133,142,39,238],Rd="buffer",Td={0:Qd.prototype.bd,1:Qd.prototype.ad},Ud={0:Qd.prototype.pd,1:Qd.prototype.od,2:Qd.prototype.nd};Fa(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Qd(d);Va(d,c)}});
|
|
function je(a,b,c){t.call(this,"Computer",a);this.i.V=!1;ke(this,b);this.v=Nb(this,"autoPower",a);this.c=0;this.H=a.busWidth||a.buswidth;this.a=le;this.o=null;this.j=this.C=!1;this.I=Nb(this,"url")||"";(Math.random()+.1).toString(36);this.b=me(this);if(this.m=Ua("CPU",this.id)){this.J=Ua("Debugger",this.id);this.g=[];for(b=null;b=gb(this,"Video",b);)this.g.push(b);this.u=new ib({id:this.Ka+".bus",busWidth:this.H},this.m,this.J);var d,e=Sa(this.id);if((this.h=Ua("Panel",this.id))&&this.h.pa)for(b=
|
|
0;b<e.length;b++)d=e[b],d.G=this.h.G,d.aa=this.h.aa,d.pa=this.h.pa;this.aa("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.qa&&d.qa(this,this.u,this.m,this.J);b=null;d=Nb(this,"resume",a);void 0!==d&&(1<d.length?b=this.l=d:this.a=parseInt(d,10));var f;if(a=Nb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.a=le),this.a&&(this.s=new E(this,"1.34.2"),ne(this.s)?
|
|
b=null:delete this.s);!b&&this.a&&(b=oe(this))&&(this.j=!0);if(b){var g=this;ua(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+ra(b):"")+")")):(g.o=b,g.C=!0);B(g)})}else B(this);this.w.power||(this.v=!0);!c&&this.v&&pe(this,this.Ta)}else r("Unable to find CPU component")}l(je,t);function ke(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.F=b}
|
|
function Nb(a,b,c){var d=b.toLowerCase(),d=Ca(b)||Ca(d);void 0===d&&a.F&&(d=a.F[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pe(a,b,c){for(var d=Sa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!bb(f)){bb(f,function(){pe(a,b,c)});return}}b.call(a,c)}
|
|
function qe(a,b){var c=new E(a,"1.34.2",re);if(ne(c)&&se(c)){var d=c.get(te),e=b?b.get(te):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=je.prototype;
|
|
k.Ta=function(a){void 0===a&&(a=this.a||(this.o?ue:le));if(!this.c){this.c++;var b=!1,c=!1;this.B=!1;var d=this.s||new E(this,"1.34.2");if(a==ve)b=!0;else if(a>le){if(ne(d,this.o)){this.f=new E(this,"1.34.2",we);ne(this.f)&&(xe(this,d),a=ye,ze(this.f));this.f.set(te,ta());Ae(this.f);var e=this.a&&!this.j;if(a==ue||Ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=se(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ne(d,g):("error"==f&&"no machine state"!=
|
|
g?(this.G("Error: "+g),"unable to verify user"==g&&(Aa(Be,""),this.b=null)):this.aa(f+": "+g),ze(d),ne(d)?(c=se(d),e=!0):c=!1))}e&&qe(this,c?d:null)}else a==ye&&d.clear()}else qe(this);delete this.o;delete this.s}e=Sa(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.m&&(c=Ce(this,g,d,b,c));b=[d,a,c];a!=ve?pe(this,this.Yb,b):this.Yb(b)}};
|
|
function Ce(a,b,c,d,e){if(!b.i.V){b.i.V=!0;if(b.ca){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ca(f,d)&&f&&(r("Unable to restore state for "+b.type),a.A&&!a.C?(c.clear(),a.a=le,window&&window.location.reload()):a.B=!0,b.ca(null),e=!1)}if(!d&&b.Tb)for(a=b.Tb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
|
k.Yb=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.i.V=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.m&&(Ce(this,this.m,b,c,a),this.m.Sa());this.B&&(xe(this,b),b.clear());!c&&this.f&&(this.f.clear(),delete this.f);this.c=0};
|
|
function xe(a,b){if(Ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.b||"";b=b.toString();var d={app:"PC8080",ver:"1.34.2"};d.url=a.I;d.user=c;d.type="bug";d.data=b;ua("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
function De(a,b,c){var d,e="none";if(a.c)return null;a.c--;var f=new E(a,"1.34.2"),g=new E(a,"1.34.2",re),h=ta();g.set(te,h);f.set(te,h);f.set(Ee,"1.34.2");f.set(Fe,window?window.location.href:null);f.set(Ge,window?window.navigator.userAgent:"");a.m&&a.m.ba&&(c&&Rb(a.m),d=a.m.ba(b,c),"object"===typeof d&&f.set(a.m.id,d),c&&(a.m.i.V=!1,!1===d&&(e=null)));for(var h=Sa(a.id),m=0;m<h.length;m++){var q=h[m];q.i.V&&(q.ba&&(d=q.ba(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.i.V=!1,!1===d&&(e=null)))}e&&
|
|
(c?(h=d=!1,b?(a.b&&He(a,a.b,f.toString()),Ae(g)&&Ae(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Ie),d&&f.clear(h)):e=f.toString());c&&(a.i.V=!1,b=a.w.power)&&(b.textContent="Power");a.c=0;return e}k.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=Sa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};k.start=function(a,b){for(var c=Sa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
|
k.stop=function(a,b){for(var c=Sa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
|
k.S=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.c||(d.i.V?De(d,!1,!0):pe(d,d.Ta))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.i.V&&!d.c)if(d.a&&!d.l){var a=Ra("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");De(d,a,!0);!a&&d.A?window&&window.location.reload():d.Ta(le)}else d.reset(),d.m&&d.m.Sa()},!0;case "save":if(na())c.parentNode.removeChild(c);else return this.w[b]=
|
|
c,c.onclick=function(){var a=me(d,!0);if(a){var b=!!(d.a&&!d.l||d.A),c=De(d,b);b?He(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function me(a,b){var c=a.b;c||((c=za(Be),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=Je(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
|
|
function Je(a,b){a.b=null;b=ua(oa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa(Be,b.data),a.b=b.data)}catch(d){r(d.message+" ("+c+")")}return a.b}function oe(a){var b=null;a.b&&(b=oa()+"/api/v1/user?req=load&user="+a.b+"&state="+Ke(a,"1.34.2"));return b}
|
|
function He(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ke(a,"1.34.2");d.data=c;b=ua(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),Aa(Be,""),a.b=null)}}
|
|
function gb(a,b,c){a=Sa(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Wb(a,b){if(a.g.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.g[0];a.L&&a.L.focus();!b&&window&&window.scrollTo(c,d)}}
|
|
function $b(a,b){a.m&&(a=a.m,a.Oa&&(b||!a.i.ka||a.i.Xb)&&(R(a,"A",a.b),R(a,"B",a.g),R(a,"C",a.c),R(a,"BC",kc(a),4),R(a,"D",a.h),R(a,"E",a.f),R(a,"DE",mc(a),4),R(a,"H",a.j),R(a,"L",a.l),R(a,"HL",G(a),4),R(a,"SP",a.A,4),R(a,"PC",a.s,4),b=jc(a),R(a,"PS",b,4),R(a,"IF",b&512?1:0,1),R(a,"SF",b&128?1:0,1),R(a,"ZF",b&64?1:0,1),R(a,"AF",b&16?1:0,1),R(a,"PF",b&4?1:0,1),R(a,"CF",b&1?1:0,1)),b=a.w.speed)&&(b.textContent=a.i.ka&&a.R?a.R.toFixed(2)+"Mhz":"Stopped")}
|
|
var we="failsafe",re="validate",te="timestamp",Ee="version",Fe="url",Ge="browser",Be="user",ve=-1,le=0,ue=1,ye=2,Ie=3;Fa(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=y(f),g=new je(g,d,!0);Va(g,f);g.v&&pe(g,g.Ta)}});Ga.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ua("Computer",c.id))&&c.N&&!c.i.V&&c.Ta(ve)}});
|
|
Ga.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Ua("Computer",c.id))&&c.i.V&&De(c,!(!c.a||c.l),!0)}});function E(a,b,c){this.id=a.id;this.J=a.J;this.b="";this.a={};this.m=this.u=!1;this.key=Ke(a,b,c);ze(this,a.Uc)}k=E.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};
|
|
function ne(a,b){return b?(a.b=b,a.m=!0,a.u=!1,!0):a.m?!0:wa()&&(b=za(a.key))?(a.b=b,a.m=!0):!1}function se(a){var b=!0;if(!a.u)try{a.a=JSON.parse(a.b),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function Ae(a){var b=!0;if(wa()){var c=JSON.stringify(a.a);Aa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function ze(a,b){a.b="";a.a={};a.m=a.u=!1;b&&a.set("parms",b)}
|
|
k.clear=function(a){ze(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 Ke(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 Le=0;
|
|
function Me(a,b,c,d,e,f){e("Loading "+a+"...");ua(a,null,!0,function(g,h,m){m?(h||(h="unable to load "+a+" ("+m+")"),f(h,null)):Ne(h,a,b,c,d,e,f)})}
|
|
function Ne(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(Oa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),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(x){f=null,a=x.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Oe(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
|
|
null)}
|
|
function Oe(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ua(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=h[0],q,x=/( [a-z]+=)(['"])(.*?)\2/g;q=x.exec(f);)m=0>m.indexOf(q[1])?m.replace(">",q[0]+">"):m.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
|
a=a.replace(d[0],g);Oe(a,b,c)}})}else c(a,null)}
|
|
function Pe(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=pa(a))}function f(a){e("Error: "+a);m&&(--Le||Ka(!0));m=!1}var g,h,m=!0;Le++;Pa[a]={};try{if(g=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=q:w.appendChild(document.createTextNode(q));x.appendChild(w)}c||
|
|
(c="/versions/pc8080/1.34.2/components.xsl");q=function(d,h){h?Me(c,null,null,!1,e,function(d,m){m?(Oa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=h.transformNode(m))?(g.outerHTML=m,--Le||Ka(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Le||Ka(!0)):f("invalid machine element: "+
|
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Me(b,a,d,!0,e,q):Ne(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(L){f(L.message)}return m}window.embedPC8080=function(a,b,c,d){Ka(!1);return Pe(a,b,c,d)};window.findMachineComponent=function(a,b){return Ua(b,a+".machine")};
|
|
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ya[a]){for(var c=!0,d=Ya,e=a,f=b.length,g=[],h=[],m="",q=null,x=0;x<f;x++){var w=b[x];if('"'==w||"'"==w)q&&w!=q?m+=w:(q?q=null:q=w,m&&(h.push(m),m=""));else{if(!q){if("\r"==w||"\n"==w)w=";";if(" "==w||"\t"==w||";"==w){m&&(h.push(m),m="");";"==w&&h.length&&(g.push(h),h=[]);continue}}m+=w}}m&&h.push(m);h.length&&g.push(h);d[e]=g;Xa(a)||(c=!1)}return c};window.enableEvents=Ka;window.sendEvent=Ma;})();
|