(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/strlib.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/shared/lib/weblib.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/c1pjs/lib/defines.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/panel.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/cpu.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/rom.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/ram.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/keyboard.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/video.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/serial.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/disk.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/c1pjs/lib/computer.js (C) Jeff Parsons 2012-2017 */ var e;function q(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 f=Object.getOwnPropertyDescriptor(b,d);f&&Object.defineProperty(a,d,f)}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)},r="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this,t=["Math","trunc"],ba=0;baa?-b:b};fa!=ea&&null!=fa&&aa(r,da,{configurable:!0,writable:!0,value:fa}); function u(a,b,c){b?9=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var g=d||-1;0=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/16)}g--}return(void 0===c?"":c)+f} function ga(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0"']/g,function(a){return ja[a]})}var ja={"&":"&","<":"<",">":">",'"':""","'":"'"},ka=Date.now||function(){return+new Date}; function v(a,b){var c=!0,c=void 0===c?!1:c,d=0,f=null;if("object"==typeof resources&&(f=resources[a]))b&&b(a,f,d);else if(c&&"function"==typeof resources)resources(a,function(c,d){b&&b(a,c,d)});else{var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(d=g.status||-1),b&&b(a,f,d))});g.open("GET", a,c);g.send();c||(f=g.responseText,200!=g.status&&(d=g.status||-1),b&&b(a,f,d))}}function w(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 la(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function x(a){y.init.push(a)} function z(a){if(A)try{for(var b=0;ba||(this.za=this.id.substr(0,a));this.u={ready:!1,ra:!1,va:!1,ce:!1,I:!1,ae:!1,error:!1};this.ta=null;this.u.error=!1;this.G=this.J=null;F.push(this)}function B(a){window&&window.alert(a)}function pa(a,b){a.value+=b;b=a.value;8192d?c+=a+"\n":c=c.substr(0,d)+(a+".")+ c.substr(d+a.length);8192Fa(a.S,b,c,d,f)&&(a.la>b&&(a.la=b),a.maFa(a.M,b,c,d,f)&&(a.da>b&&(a.da=b),a.eaa.ka&&a.N&&(d=a.N);d>a.fa&&2>a.K&&(d=a.fa);a.eb=Math.round(1E3/30);a.ga=Math.floor(1E6/c*d);a.na=Math.floor(1E6/30*d);a.Ca=Math.floor(1E6/a.ua*d);a.Ba=Math.floor(1E6/a.oa*d);b||(a.T=a.na,a.W=a.Ca,a.V=a.Ba);a.ja=0}function Ja(a){1E6<=a.ja&&Ga(a,!0);a.ba=0;a.fb=ka()} function Ka(a){var b=ka(),c=a.eb;a.ba&&(c=Math.round(c*a.ba/a.na));c-=b-a.fb;if(b-=a.Aa)a.N=Math.round(a.U/(100*b))/10,864E5<=b&&Ca(a);0>c?c=0:1==a.K?a.N<=a.fa&&(c=0):2==a.K&&(c=0);a.ja+=a.ba;return c} function Ba(a){if(xa(a,!0)){a.u.Z||(Ca(a),a.J&&a.J.start(),a.u.Z=!0,a.A.run&&(a.A.run.innerHTML="Halt"),a.ca());Ja(a);try{do{a.step(a.ga);var b=a.O-a.H;a.U+=b;a.ba+=b;a.O=a.H=0;a.W-=a.ga;0>=a.W&&(a.W+=a.Ca,a.wa());a.V-=a.ga;0>=a.V&&(a.V+=a.Ba,Ha(a));a.T-=a.ga;if(0>=a.T){a.T+=a.na;break}}while(a.u.Z)}catch(c){P(a);a.update();xa(a,!1);wa(a,c.stack||c.message);return}setTimeout(function(a){return function(){Ba(a)}}(a),Ka(a))}else a.update(),a.J&&a.J.stop(a.Aa,a.U)} e.step=function(a){this.b=this.j=-1;this.O=this.H=a;do{a=this.a[this.f];this.f++;this.v[a].call(this);if(0<=this.b){if(this.b>=this.la&&this.b<=this.ma)for(var b=this.b,c=this.f,d=0;d=this.S[d][0]&&b<=this.S[d][1]&&this.S[d][3].call(this.S[d][2],b,c);this.b=-1}else if(0<=this.j){if(this.j>=this.da&&this.j<=this.ea)for(b=this.j,c=this.f,d=0;d=this.M[d][0]&&b<=this.M[d][1]&&this.M[d][3].call(this.M[d][2],b,c);this.j=-1}this.H-=this.bb[a]}while(0>1)&128?64:0),b=b|(a.h&128?128:0);return a.B&60|b} function S(a,b,c){var d=a.c&256?1:0,f=(b&15)+(c&15)+d;10<=f&&(f=f+6&15|16);f+=(b&240)+(c&240);a.D=b^c;a.w=f;a.h=f&255;160<=f&&(f+=96);512<=f&&(f-=256);a.c=f;a.i=b+c+d&255;a.H--;return f&255}function T(a,b,c){var d=a.c&256?0:1,f=(b&15)-(c&15)-d;0>f&&(f=(f-6&15)-16);f+=(b&240)-(c&240);0>f&&(f-=96);a.h=a.i=(a.c=b-c-d)&255;a.D=b^c;a.w=a.c;a.c^=256;a.H--;return f&255}function Aa(a){a.g=0;a.m=0;a.o=0;a.s=256;a.B=0;a.h=0;a.i=0;a.D=0;a.w=0;a.c=0;a.f=0;a.b=-1;a.j=-1;a.N=0;a.U=a.O=a.H=0} e.Jb=function(){this.f++;this.a[this.s--]=this.f>>8;this.s|=256;this.a[this.s--]=this.f&255;this.s|=256;this.B|=16;this.B=Ia(this);this.a[this.s--]=this.B;this.s|=256;this.B&=239;this.b=65534;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.bd=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g|=this.a[this.b]};e.dd=function(){this.b=this.a[this.f++];this.h=this.i=this.g|=this.a[this.b]}; e.zb=function(){this.j=this.a[this.f++];this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.gd=function(){this.B=Ia(this);this.a[this.s--]=this.B;this.s|=256};e.ad=function(){this.b=this.f++;this.h=this.i=this.g|=this.a[this.b]};e.yb=function(){this.c=this.g<<1;this.h=this.i=this.g=this.c&255};e.Yc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g|=this.a[this.b]}; e.wb=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.Ib=function(){this.f+=(this.h&128?0:(this.H--,this.a[this.f]<<24>>24))+1};e.cd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g|=this.a[this.b]};e.ed=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g|=this.a[this.b]}; e.Ab=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255};e.Mb=function(){this.c=0};e.$c=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g|=this.a[this.b]};e.Zc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g|=this.a[this.b]};e.xb=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.a[this.j]<<1;this.h=this.i=this.a[this.j]=this.c&255}; e.zc=function(){this.b=this.f++;this.a[this.s--]=this.f>>8;this.s|=256;this.a[this.s--]=this.f&255;this.s|=256;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.sb=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g&=this.a[this.b]};e.Fb=function(){this.b=this.a[this.f++];this.i=this.g&this.a[this.b];this.h=this.h&127|this.a[this.b]&128;this.w=0;this.D=this.a[this.b]&64?128:0};e.ub=function(){this.b=this.a[this.f++];this.h=this.i=this.g&=this.a[this.b]}; e.nd=function(){this.j=this.a[this.f++];this.c=this.c&65280|this.a[this.j];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.h=this.i=this.a[this.j]=this.c&255};e.jd=function(){this.s=this.s+1&255|256;this.B=this.a[this.s];this.c=this.B&1?256:0;this.i=this.B&2?0:1;this.h=this.B&128;this.w=0;this.D=this.B&64?128:0};e.rb=function(){this.b=this.f++;this.h=this.i=this.g&=this.a[this.b]}; e.md=function(){this.c=this.c&65280|this.g;this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.h=this.i=this.g=this.c&255};e.Eb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.i=this.g&this.a[this.b];this.h=this.h&127|this.a[this.b]&128;this.w=0;this.D=this.a[this.b]&64?128:0};e.ob=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g&=this.a[this.b]}; e.kd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.j];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.h=this.i=this.a[this.j]=this.c&255};e.Gb=function(){this.f+=(this.h&128?(this.H--,this.a[this.f]<<24>>24):0)+1};e.tb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g&=this.a[this.b]};e.vb=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g&=this.a[this.b]}; e.od=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65280|this.a[this.j];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.h=this.i=this.a[this.j]=this.c&255};e.Ed=function(){this.c=256};e.qb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g&=this.a[this.b]};e.pb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g&=this.a[this.b]}; e.ld=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65280|this.a[this.j];this.c<<=1;this.c=this.c&65534|(this.c&512?1:0);this.h=this.i=this.a[this.j]=this.c&255};e.ud=function(){this.s=this.s+1&255|256;this.B=this.a[this.s];this.c=this.B&1?256:0;this.i=this.B&2?0:1;this.h=this.B&128;this.w=0;this.D=this.B&64?128:0;this.s=this.s+2&255|256;this.f=this.a[this.s-1|256]|this.a[this.s]<<8}; e.nc=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g^=this.a[this.b]};e.pc=function(){this.b=this.a[this.f++];this.h=this.i=this.g^=this.a[this.b]};e.Vc=function(){this.j=this.a[this.f++];this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255};e.fd=function(){this.a[this.s--]=this.g;this.s|=256};e.mc=function(){this.b=this.f++;this.h=this.i=this.g^=this.a[this.b]}; e.Uc=function(){this.c=this.c&65279|(this.g&1?256:0);this.g=(this.c=this.c&65280|this.g>>1)&255;this.h=this.i=this.c&255};e.yc=function(){this.b=this.f;this.f=this.a[this.b]|this.a[this.b+1]<<8};e.jc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g^=this.a[this.b]};e.Sc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255}; e.Kb=function(){this.f+=((this.w&255^this.D^this.w>>1)&128?0:(this.H--,this.a[this.f]<<24>>24))+1};e.oc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g^=this.a[this.b]};e.qc=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g^=this.a[this.b]};e.Wc=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255}; e.Ob=function(){this.B&=251};e.lc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g^=this.a[this.b]};e.kc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g^=this.a[this.b]};e.Tc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65279|(this.a[this.j]&1?256:0);this.a[this.j]=(this.c=this.c&65280|this.a[this.j]>>1)&255;this.h=this.i=this.c&255}; e.vd=function(){this.s=this.s+2&255|256;this.f=(this.a[this.s-1|256]|this.a[this.s]<<8)+1};e.Ja=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.kb=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=S(this,this.g,this.a[this.b])}; e.La=function(){this.b=this.a[this.f++];this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.mb=function(){this.b=this.a[this.f++];this.g=S(this,this.g,this.a[this.b])};e.sd=function(){this.j=this.a[this.f++];this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.hd=function(){this.s=this.s+1&255|256;this.h=this.i=this.g=this.a[this.s]}; e.Ia=function(){this.b=this.f++;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.jb=function(){this.b=this.f++;this.g=S(this,this.g,this.a[this.b])};e.rd=function(){this.c=this.c&65280|this.g;this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.g=this.c&255};e.xc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.f=this.a[this.b]|this.a[this.b+1]<<8}; e.Fa=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.gb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=S(this,this.g,this.a[this.b])};e.pd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255}; e.Lb=function(){this.f+=((this.w&255^this.D^this.w>>1)&128?(this.H--,this.a[this.f]<<24>>24):0)+1};e.Ka=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.lb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=S(this,this.g,this.a[this.b])}; e.Ma=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.nb=function(){this.b=this.a[this.f++]+this.m&255;this.g=S(this,this.g,this.a[this.b])};e.td=function(){this.j=this.a[this.f++]+this.m&255;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Gd=function(){this.B|=4}; e.Ha=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255};e.ib=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=S(this,this.g,this.a[this.b])};e.Ga=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g+this.a[this.b]+(this.c&256?1:0);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255}; e.hb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=S(this,this.g,this.a[this.b])};e.qd=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.c&65280|this.a[this.j];this.c=this.c&65023|(this.c&1?512:0);this.c>>=1;this.h=this.i=this.a[this.j]=this.c&255};e.Kd=function(){this.j=this.a[this.f++]+this.m&255;this.j=this.a[this.j]|this.a[this.j+1]<<8;this.a[this.j]=this.g};e.Sd=function(){this.j=this.a[this.f++];this.a[this.j]=this.o}; e.Md=function(){this.j=this.a[this.f++];this.a[this.j]=this.g};e.Pd=function(){this.j=this.a[this.f++];this.a[this.j]=this.m};e.ic=function(){this.h=this.i=this.o=this.o-1&255};e.Yd=function(){this.h=this.i=this.g=this.m};e.Rd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.o};e.Hd=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.g};e.Od=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.a[this.j]=this.m}; e.Bb=function(){this.f+=(this.c&256?0:(this.H--,this.a[this.f]<<24>>24))+1};e.Ld=function(){this.j=this.a[this.f++];this.j=(this.a[this.j]|this.a[this.j+1]<<8)+this.o;this.a[this.j]=this.g};e.Td=function(){this.j=this.a[this.f++]+this.m&255;this.a[this.j]=this.o};e.Nd=function(){this.j=this.a[this.f++]+this.m&255;this.a[this.j]=this.g};e.Qd=function(){this.j=this.a[this.f++]+this.o&255;this.a[this.j]=this.m};e.$d=function(){this.h=this.i=this.g=this.o}; e.Jd=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.a[this.j]=this.g};e.Zd=function(){this.s=this.m|256};e.Id=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.a[this.j]=this.g};e.Pc=function(){this.b=this.f++;this.h=this.i=this.o=this.a[this.b]};e.Ec=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.g=this.a[this.b]};e.Kc=function(){this.b=this.f++;this.h=this.i=this.m=this.a[this.b]}; e.Qc=function(){this.b=this.a[this.f++];this.h=this.i=this.o=this.a[this.b]};e.Gc=function(){this.b=this.a[this.f++];this.h=this.i=this.g=this.a[this.b]};e.Lc=function(){this.b=this.a[this.f++];this.h=this.i=this.m=this.a[this.b]};e.Wd=function(){this.h=this.i=this.o=this.g};e.Dc=function(){this.b=this.f++;this.h=this.i=this.g=this.a[this.b]};e.Vd=function(){this.h=this.i=this.m=this.g};e.Nc=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.o=this.a[this.b]}; e.Ac=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.g=this.a[this.b]};e.Ic=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.m=this.a[this.b]};e.Cb=function(){this.f+=(this.c&256?(this.H--,this.a[this.f]<<24>>24):0)+1};e.Fc=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.g=this.a[this.b]};e.Rc=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.o=this.a[this.b]}; e.Hc=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.g=this.a[this.b]};e.Mc=function(){this.b=this.a[this.f++]+this.o&255;this.h=this.i=this.m=this.a[this.b]};e.Pb=function(){this.D=this.w=0};e.Cc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.g=this.a[this.b]};e.Xd=function(){this.h=this.i=this.m=this.s&255};e.Oc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.o=this.a[this.b]}; e.Bc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.g=this.a[this.b]};e.Jc=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.m=this.a[this.b]};e.bc=function(){this.b=this.f++;this.h=this.i=this.c=this.o-this.a[this.b];this.c^=256};e.Ub=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256}; e.cc=function(){this.b=this.a[this.f++];this.h=this.i=this.c=this.o-this.a[this.b];this.c^=256};e.Wb=function(){this.b=this.a[this.f++];this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.fc=function(){this.j=this.a[this.f++];this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.wc=function(){this.h=this.i=this.o=this.o+1&255};e.Tb=function(){this.b=this.f++;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.hc=function(){this.h=this.i=this.m=this.m-1&255}; e.ac=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c=this.o-this.a[this.b];this.c^=256};e.Qb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.dc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.Hb=function(){this.f+=(this.i&255?(this.H--,this.a[this.f]<<24>>24):0)+1}; e.Vb=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.Xb=function(){this.b=this.a[this.f++]+this.m&255;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.gc=function(){this.j=this.a[this.f++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255}; e.Nb=function(){this.B&=-9;this.v[97]=this.Ja;this.v[101]=this.La;this.v[105]=this.Ia;this.v[109]=this.Fa;this.v[113]=this.Ka;this.v[117]=this.Ma;this.v[121]=this.Ha;this.v[125]=this.Ga;this.v[225]=this.Ra;this.v[229]=this.Ta;this.v[233]=this.Qa;this.v[237]=this.Na;this.v[241]=this.Sa;this.v[245]=this.Ua;this.v[249]=this.Pa;this.v[253]=this.Oa};e.Sb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256}; e.Rb=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.c=this.g-this.a[this.b];this.c^=256};e.ec=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]-1&255};e.Zb=function(){this.b=this.f++;this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256}; e.Ra=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Ad=function(){this.b=this.a[this.f++]+this.m&255;this.b=this.a[this.b]|this.a[this.b+1]<<8;this.g=T(this,this.g,this.a[this.b])};e.$b=function(){this.b=this.a[this.f++];this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256}; e.Ta=function(){this.b=this.a[this.f++];this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Cd=function(){this.b=this.a[this.f++];this.g=T(this,this.g,this.a[this.b])};e.tc=function(){this.j=this.a[this.f++];this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.vc=function(){this.h=this.i=this.m=this.m+1&255}; e.Qa=function(){this.b=this.f++;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.zd=function(){this.b=this.f++;this.g=T(this,this.g,this.a[this.b])};e.Xc=function(){};e.Yb=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.c=this.m-this.a[this.b];this.c^=256}; e.Na=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.wd=function(){this.b=this.a[this.f++]|this.a[this.f++]<<8;this.g=T(this,this.g,this.a[this.b])};e.rc=function(){this.j=this.a[this.f++]|this.a[this.f++]<<8;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255};e.Db=function(){this.f+=(this.i&255?0:(this.H--,this.a[this.f]<<24>>24))+1}; e.Sa=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Bd=function(){this.b=this.a[this.f++];this.b=(this.a[this.b]|this.a[this.b+1]<<8)+this.o;this.g=T(this,this.g,this.a[this.b])}; e.Ua=function(){this.b=this.a[this.f++]+this.m&255;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.Dd=function(){this.b=this.a[this.f++]+this.m&255;this.g=T(this,this.g,this.a[this.b])};e.uc=function(){this.j=this.a[this.f++]+this.m&255;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255}; e.Fd=function(){this.B|=8;this.v[97]=this.kb;this.v[101]=this.mb;this.v[105]=this.jb;this.v[109]=this.gb;this.v[113]=this.lb;this.v[117]=this.nb;this.v[121]=this.ib;this.v[125]=this.hb;this.v[225]=this.Ad;this.v[229]=this.Cd;this.v[233]=this.zd;this.v[237]=this.wd;this.v[241]=this.Bd;this.v[245]=this.Dd;this.v[249]=this.yd;this.v[253]=this.xd}; e.Pa=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.yd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.o;this.g=T(this,this.g,this.a[this.b])}; e.Oa=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.c=this.g-this.a[this.b]-(this.c&256?0:1);this.D=this.g^this.a[this.b];this.w=this.c;this.h=this.i=this.g=this.c&255;this.c^=256};e.xd=function(){this.b=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.g=T(this,this.g,this.a[this.b])};e.sc=function(){this.j=(this.a[this.f++]|this.a[this.f++]<<8)+this.m;this.h=this.i=this.a[this.j]=this.a[this.j]+1&255}; e.Ud=function(){var a;a=this.a[this.f++];switch(a){case 0:this.F("HALT");P(this);break;case 1:a=this.f;for(var b="";a=c&&(c+=32);a.i=a.i.substr(1);Ra(a,c)}0=b&&(b+=32),Ta(a,b),V(a,b,!0,0)&&(2==a.G.K?V(a,b,!1,1):(c=!1,a.g[b]&&(clearTimeout(a.g[b]),c=!0),c=Sa(a,c),a.g[a.h=b]=setTimeout(function(a){return function(){V(a,b,!1,3)}}(a),c)),c=!0));return c} function V(a,b,c,d){var f=!1;c||(a.g[b]=null,a.h==b&&(a.h=0));var g=0,h=a.b[b];void 0===h&&(1<=b&&26>=b&&(b+=64,g=a.s),h=a.b[b]);void 0!==h&&(b=h>>12,f=h>>8&15,g||(g=h&255),c?(a.f[b]|=1<b||8192<=b));b&&(b=a.v.shift(),void 0!==b&&(a.N=b),a.B=0,a.U=d);for(b=d=0;8>b;b++)a.O&1<b[d][0]&&(f=b[d][0]),g=a.K&&(d-=a.K,dMissing <canvas> support. Please try a newer web browser.";break}f.setAttribute("class","c1pjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.setAttribute("contenteditable","true");f.setAttribute("autocapitalize","off");f.setAttribute("autocorrect","off");f.style.backgroundColor=d.screenColor; f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(f.style.height=(c.clientWidth*d.screenHeight/d.screenWidth|0)+"px",c.onresize=function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight));c.appendChild(f);var g=new Image,h=f.getContext("2d"),f=new Wa(d,f,h,g);g.onload=function(a){return function(){a.R()}}(f,d.charSet);g.src=d.charSet;G(f,c)}}); function Za(a){E.call(this,"C1PSerialPort",a);this.u.I=!1;this.j=a.demo;this.reset(!0)}q(Za,E);e=Za.prototype;e.reset=function(a){if(a||this.f!=$a){this.g=-1;this.h=0;this.c="";if(this.j){a=1;if(this.za){var b=this.za.match(/\d+/);null!==b&&(a=parseInt(b[0],10))}this.c='10 PRINT "HELLO OSI #'+a+'"\n'}this.i=!0;this.f=ab}};e.start=function(){this.b&&this.j&&(W(this.b," C\n\n",3E3),setTimeout(function(a){return function(){a.f=bb;W(a.b,"LOAD\n")}}(this),12E3));this.j=!1}; e.L=function(a,b,c){var d=this;switch(b){case "listSerial":return this.A[b]=c,!0;case "loadSerial":return this.A[b]=c,c.onclick=function(){d.A.listSerial&&v(d.A.listSerial.value,function(a,b,c){cb(d,a,b,c)})},!0;case "mountSerial":return!w("Mobi")&&window&&"FileReader"in window?(this.A[b]=c,c.onchange=function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length},c.onsubmit=function(a){var b=a.currentTarget[1].files[0],c=new FileReader;c.onload=function(){cb(d,b.name,c.result.toString(), 0)};c.readAsText(b);return!1}):c.parentNode.removeChild(c),!0}return!1};e.Y=function(a,b,c,d){this.a=a;this.m=b;this.s=c-b+1;this.o=this.m+this.s;if(this.G=d)Ea(d,b,c,this,this.X),Q(d,b,c,this,this.Za);this.R()};e.$=function(a,b){a&&!this.u.I&&(this.u.I=!0,this.J=b,this.b=O(b,"keyboard"))}; function cb(a,b,c,d){if(c){a.h=0;a.c=c;a.i=!0;a.f=ab;if(-1!==b.indexOf(".json",b.length-5))try{d="";var f=eval("("+c+")").bytes;for(c=0;c=--c.ia&&(0=c.Ea&&(c.aa=c.Ea),0>c.aa&&(c.aa=0),c.ia=20,a.f.update(a.f.C|128),jb(a))}this.C=b;a.j.C&4&&X(a,2,this)}}(a)};a.j={C:0,read:function(){}, update:function(a){return function(b){void 0!==b&&(this.C=b&-193);X(a,3,this);a.h.update();a.v.update()}}(a)};a.w={C:0,read:function(){},update:function(a){return function(b){void 0!==b&&(3==(b&3)&&(a.g.C=14),this.C=b);a.g.update()}}(a)};a.g={C:14,read:function(){},update:function(a){return function(b){void 0===b&&(b=a.g.C);b&=-2;0<=a.b&&0<=a.c[a.b].ha&&(b|=1);this.C=b;X(a,16,this)}}(a)};a.o={C:0,read:function(a){return function(){kb(a)}}(a),update:function(a){return function(b){void 0!==b&&(this.C= b);X(a,17,this)}}(a)};a.B={C:0,read:function(){},update:function(){return function(){}}(a)}}e.L=function(a,b,c){switch(b){case "listDisk":return this.A[b]=c,!0;case "loadDisk":return this.A[b]=c,c.onclick=function(a){return function(){if(a.A.listDisk){var b=a.A.listDisk.value,c=b;".json"!=b.substr(b.length-5)&&(c="http://"+window.location.host+"/api/v1/dump?disk="+b);a.F("loading "+ga(b)+"...");v(c,function(b,c,d){lb(a,b,c,d)})}}}(this),!0}return!1}; e.Y=function(a,b,c,d){this.a=a;this.m=b;if(this.G=d)Ea(d,b,c,this,this.X),Q(d,b,c,this,this.Xa);this.R()};e.$=function(a){a&&!this.u.I&&(this.u.I=!0)}; function lb(a,b,c,d){if(d)a.F("disk load error ("+d+")");else{d=[];a.F("mounting "+b+"...");try{if(d=eval("("+c+")"),d.length)if(d[0].length){var f=d[0];if(void 0===f[0].trackNum)a.F("data error: "+f[0]);else if(a.c[0]){for(c=0;c>8&255);a.push(b&255)}function mb(a,b,c){b=b[c];if(void 0===b)throw Error("missing signature: "+c);for(c=0;cb?b&=3:32>b&&(b&=17);switch(b){case 0:a=a.i.C&4?a.f:a.s;break;case 1:a=a.i;break;case 2:a=a.j.C&4?a.h:a.v;break;case 3:a=a.j;break;case 16:a=c?a.w:a.g;break;case 17:a=a.o;break;default:a=a.B}return a}e.X=function(a,b){void 0!==b&&ob(this,a-this.m,!1).read()};e.Xa=function(a,b){void 0!==b&&(b=this.G.X(a),ob(this,a-this.m,!0).update(b))};function ib(a,b,c){var d=-1;void 0!==b&&void 0!==c&&(d=0,c&32||(d|=2),a.f.C&64||(d|=1));a.b!=d&&(a.b=d,a.g.update())} function jb(a){0<=a.b&&(a.c[a.b].ha=-1,a.o.update(255),a.g.update())}function kb(a){var b;if(0<=a.b){b=a.c[a.b];var c=b.qa[b.aa];void 0!==c&&(0<=b.ha&&b.ha");b&&b.$(!0,a)} x(function(){for(var a=H(document,"c1pjs","computer"),b=0;b');return}}if(!h){B(' definition must appear first in the specification'); break}if(f=J("debugger",d.id))g["debugger"]=[f],f.Y&&f.Y(h,l,k,g.cpu[0]);l=new Z(d,g);if(k=J("panel",d.id))if(g.panel=[k],k.A.print){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;dg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/, "$1C1Pjs$2"),a=a.replace(/().*?(<\/xsl:variable>)/,"$1c1pjs$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(m){g=null,a=m.message}else a="unrecognized XML: "+(255/g.exec(a)){var f=d[2];b("Loading "+f+"...");v(f,function(g,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(g=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=l[0],n,m=/( [a-z]+=)(['"])(.*?)\2/gi;n=m.exec(g);)k=0>k.toLowerCase().indexOf(n[1].toLowerCase())?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);l[0]!=k&&(h=h.replace(l[0],k))}else{c(a,"missing <"+d[1]+"> in "+ f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(d[0],h);tb(a,b,c)}})}else c(a,null)} function vb(a,b,c){function d(a){if(void 0===h){var b=g&&H(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ia(a))}function f(a){d("Error: "+a);l&&(--qb||C(!0));l=!1}var g,h,l=!0;qb++;M[a]={};try{if(g=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],m=document.createElement("style");m.type="text/css";m.styleSheet?m.styleSheet.cssText=k:m.appendChild(document.createTextNode(k));n.appendChild(m)}c||(c= "/versions/c1pjs/1.35.2/components.xsl");k=function(h,k){k?rb(c,null,null,!1,d,function(h,l){l?(M[a]&&c&&(M[a][c]=h),d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--qb||C(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(h=new XSLTProcessor,h.importStylesheet(l),(l=h.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--qb||C(!0)):f("invalid machine element: "+ a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(h)}):f(h)};"<"!=b.charAt(0)?rb(b,a,void 0,!0,d,k):sb(b,null,a,void 0,!1,d,k)}else f("missing machine element: "+a)}catch(p){f(p.message)}return l}window.embedC1P=function(a,b,c){C(!1);return vb(a,b,c)};window.findMachineComponent=function(a,b){return qa(b,a+".machine")}; window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!K[a]){for(var c=!0,d=K,f=a,g=b.length,h=[],l=[],k="",n=null,m=0;m