Removed useless sHTMLClass parameter from all setBinding() methods

HTML controls with bindings are now identified by the single class attribute of "{APPCLASS}-binding" instead of the somewhat arbitrary "{APPCLASS}-input" or "{APPCLASS}-output" classes
This commit is contained in:
Jeff Parsons 2014-11-15 18:16:48 -08:00 • committed by jeffpar
commit 64b2494eef
32 changed files with 221 additions and 246 deletions

View file

@ -13,13 +13,13 @@ function z(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.na
if(window){Na||(Na=window.location.search.substr(1));for(var Pa,Sa=/\+/g,Ta=/([^&=]+)=?([^&]*)/g;Pa=Ta.exec(Na);)Oa[decodeURIComponent(Pa[1].replace(Sa," "))]=decodeURIComponent(Pa[2].replace(Sa," "))}function Ua(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}function A(a,b){b.prototype=Ua(a.prototype)}var La=[];
function Va(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<La.length;b++){var d=La[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Wa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<La.length;c++)if(La[c].id===a)return La[c]}return null}
function Xa(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<La.length;d++)if(c)c==La[d]&&(c=null);else if(!(a!=La[d].type||b&&La[d].id.indexOf(b)))return La[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("({"+a+"})")}catch(c){x(c.message+" ("+a+")")}return b}window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);
function Za(a,b){for(var c=D(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===window.document.ELEMENT_NODE){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),n=0;n<l.length;n++)switch(h=l[n],h){case "pcjs-input":case "pcjs-output":(n=C(g))&&n.binding&&a.Db(h,n.type,n.binding,g),n=l.length}}}}
function Za(a,b){for(var c=D(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(g.nodeType===window.document.ELEMENT_NODE){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),n=0;n<l.length;n++)switch(h=l[n],h){case "pcjs-binding":(h=C(g))&&h.binding&&a.Db(h.type,h.binding,g),n=l.length}}}}
function D(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}
z.prototype={toString:function(){return this.name?this.name:this.id||this.type},Db:function(a,b,c,d){switch(c){case "clear":return this.wa[c]||(this.wa[c]=d,d.onclick=function(a){return function(){a.wa.print&&(a.wa.print.value="")}}(this)),!0;case "print":return this.wa[c]||(this.$f=this.wa[c]=d,d.value="",this.da=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}}(d),this.Ja=
function(a,b,c){this.da(a,"notice",c)}),!0;default:return!1}},log:function(){},da:function(){},status:function(a){this.da(this.yh+": "+a)},Ja:function(a,b){b||x(a)},Ua:function(a){this.qa.ad||(this.qa.th=!1!==a,this.qa.th&&(this.name&&this.log("ready"),a=this.Hi,this.Hi=null,a&&a()))},$b:function(){return this.qa.Qb=!0},Zb:function(a,b){b&&(this.qa.Qb=!1);return!0}};
function $a(a,b){if(a.qa.zi)return a.qa.Ec&&(a.qa.Ec=!1),a.qa.zi=!1;if(a.qa.ad)return a.da(a.toString()+" error"),!1;a.qa.Ec=b;return a.qa.Ec}function ab(a,b){a.qa.Ec&&(b?a.qa.zi=!0:void 0===b&&a.da(a.toString()+" busy"));return a.qa.Ec}function bb(a,b){b&&(a.qa.th?b():a.Hi=b);return a.qa.th}function cb(a,b){a.qa.ad=!0;a.Ja("Fatal error: "+b)}function db(a){z.call(this,"Panel",a,db)}A(z,db);
db.prototype.Db=function(a,b,c,d){return this.Ka&&this.Ka.Db(a,b,c,d)||this.T&&this.T.Db(a,b,c,d)||this.Ra&&this.Ra.Db(a,b,c,d)||this.fa&&this.fa.Db(a,b,c,d)?!0:z.prototype.Db.call(this,a,b,c,d)};db.prototype.pc=function(a,b,c,d){this.Ka=a;this.T=c;this.fa=d;this.Ra=eb(a,"Keyboard")};db.prototype.$b=function(a,b){b||fb();return!0};db.prototype.Zb=function(){return!0};
function fb(){for(var a=!1,b=D(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=C(d),f=Wa(e.id);f||(a=!0,f=new db(e));Za(f,d);a&&f.Ua()}}Ha(fb);function gb(a,b,c){z.call(this,"Bus",a,gb);this.T=b;this.fa=c;this.hg=a.buswidth||20;this.Pf=this.gd=(1<<this.hg)-1;this.zb=20>=this.hg?12:14;this.gc=1<<this.zb;this.nk=this.gc>>2;this.mb=this.gc-1;this.bh=(this.Pf+this.gc)/this.gc|0;this.Ee=this.bh-1;this.vd=[];this.wd=[];this.dg=this.eg=!1;this.Ni();this.Ua()}A(z,gb);
z.prototype={toString:function(){return this.name?this.name:this.id||this.type},Db:function(a,b,c){switch(b){case "clear":return this.wa[b]||(this.wa[b]=c,c.onclick=function(a){return function(){a.wa.print&&(a.wa.print.value="")}}(this)),!0;case "print":return this.wa[b]||(this.$f=this.wa[b]=c,c.value="",this.da=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.Ja=function(a,
b,c){this.da(a,"notice",c)}),!0;default:return!1}},log:function(){},da:function(){},status:function(a){this.da(this.yh+": "+a)},Ja:function(a,b){b||x(a)},Ua:function(a){this.qa.ad||(this.qa.th=!1!==a,this.qa.th&&(this.name&&this.log("ready"),a=this.Hi,this.Hi=null,a&&a()))},$b:function(){return this.qa.Qb=!0},Zb:function(a,b){b&&(this.qa.Qb=!1);return!0}};function $a(a,b){if(a.qa.zi)return a.qa.Ec&&(a.qa.Ec=!1),a.qa.zi=!1;if(a.qa.ad)return a.da(a.toString()+" error"),!1;a.qa.Ec=b;return a.qa.Ec}
function ab(a,b){a.qa.Ec&&(b?a.qa.zi=!0:void 0===b&&a.da(a.toString()+" busy"));return a.qa.Ec}function bb(a,b){b&&(a.qa.th?b():a.Hi=b);return a.qa.th}function cb(a,b){a.qa.ad=!0;a.Ja("Fatal error: "+b)}function db(a){z.call(this,"Panel",a,db)}A(z,db);db.prototype.Db=function(a,b,c){return this.Ka&&this.Ka.Db(a,b,c)||this.T&&this.T.Db(a,b,c)||this.Ra&&this.Ra.Db(a,b,c)||this.fa&&this.fa.Db(a,b,c)?!0:z.prototype.Db.call(this,a,b,c)};
db.prototype.pc=function(a,b,c,d){this.Ka=a;this.T=c;this.fa=d;this.Ra=eb(a,"Keyboard")};db.prototype.$b=function(a,b){b||fb();return!0};db.prototype.Zb=function(){return!0};function fb(){for(var a=!1,b=D(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=C(d),f=Wa(e.id);f||(a=!0,f=new db(e));Za(f,d);a&&f.Ua()}}Ha(fb);
function gb(a,b,c){z.call(this,"Bus",a,gb);this.T=b;this.fa=c;this.hg=a.buswidth||20;this.Pf=this.gd=(1<<this.hg)-1;this.zb=20>=this.hg?12:14;this.gc=1<<this.zb;this.nk=this.gc>>2;this.mb=this.gc-1;this.bh=(this.Pf+this.gc)/this.gc|0;this.Ee=this.bh-1;this.vd=[];this.wd=[];this.dg=this.eg=!1;this.Ni();this.Ua()}A(z,gb);
gb.prototype.Ni=function(){this.Fa=Array(this.bh);for(var a=0;a<this.bh;a++){var b=a*this.gc;hb(this.Fa[a]=new ib(b),this.T,this.fa,b,this.gc)}this.T.Ni(this.Fa,this.Pf,this.zb,this.mb,this.Ee);this.T.Ae=this.gd};gb.prototype.reset=function(){jb(this,!0)};gb.prototype.$b=function(a,b){b||this.reset();return!0};
function kb(a,b,c,d,e){if(!(b&a.mb||!c||c&a.mb)){for(var f=b>>a.zb;0<c&&f<a.Fa.length;){var g=a.Fa[f];if(void 0!==g&&g.size)return lb(1,b,c);b=f*a.gc;g=a.Fa[f++]=new ib(b,a.gc,d,e);hb(g,a.T,a.fa,b,a.gc);c-=a.gc}return!0}return lb(2,b,c)}function jb(a,b){if(void 0!==b&&20<a.hg){var c=a.gd&-1048577|(b?1048576:0);c!=a.gd&&(a.gd=c,a.T&&(a.T.Ae=c))}}
gb.prototype.Uh=function(a,b,c){if(!(a&this.mb||!b||b&this.mb)){for(var d=a>>this.zb;0<b;){var e=this.Fa[d];if(!e.ia)return lb(5,a,b);e.Ze(c);b-=this.gc;d++}return!0}return lb(3,a,b)};function mb(a,b,c){if(!(b&a.mb||!c||c&a.mb)){for(var d=b>>a.zb;0<c;)b=d*a.gc,hb(a.Fa[d++]=new ib(b),a.T,a.fa,b,a.gc),c-=a.gc;return!0}return lb(4,b,c)}function nb(a,b){return a.Fa[(b&a.gd)>>a.zb].Bg(b&a.mb)}
@ -37,7 +37,7 @@ function Lb(a,b){z.call(this,"CPU",a,Lb);var c=a.cycles||b,d=a.multiplier||1;thi
k.pc=function(a,b,c,d){this.ra=b;this.fa=d;this.Ka=a;var e=eb(a,"Video");e&&(this.ti=function(){Mb(e)},this.Tc=function(){e.Tc()});this.oa=eb(a,"ChipSet");this.Ua()};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.$b=function(a,b){if(!b){if(a&&this.restore){Nb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.fa?this.fa.Mn():this.da("No debugger detected")}this.qa.Qb=!0;!Pb(this)&&this.fa&&Rb(this.fa);Sb(this);return!0};
k.Zb=function(a){this.qa.Qb=!1;return a&&this.save?this.save():!0};function Pb(a){return!0===a.qa.yi||null===a.qa.yi&&!a.fa&&void 0===a.wa.run?(a.Ve(),!0):!1}k.Tc=function(){};k.Hk=function(){return 0};function Ob(a){void 0===a.ca.kg&&(a.ca.kg=0);void 0===a.ca.xf&&(a.ca.xf=-1);void 0===a.ca.zf&&(a.ca.zf=-1);a.qa.nf=0<=a.ca.kg&&0<a.ca.xf;a.qa.nf&&(a.ca.ig=0,a.ca.yf=a.ca.kg-a.Te)}
function Tb(a,b){if(a.qa.nf){var c=!1;a.ca.ig=a.ca.ig+a.Hk()|0;a.ca.yf-=b;0>=a.ca.yf&&(a.ca.yf+=a.ca.xf,c=!0);0<=a.ca.zf&&a.ca.zf<=Ub(a)&&(a.ca.xf=a.ca.zf=-1,Ob(a),a.Fb(),c=!0);c&&a.da(Ub(a)+" cycles: checksum="+p(a.ca.ig))}}function F(a,b,c,d){void 0!==a.wa[b]&&(void 0===d&&(d=4),void 0===c&&(cb(a,"Register "+b+" is invalid"),a.Fb()),c=p(c,d),a.wa[b].innerHTML!=c&&(a.wa[b].innerHTML=c))}k.jh=function(){};k.ti=function(){};
k.Db=function(a,b,c,d){var e=this;a=!1;switch(c){case "run":this.wa[c]=d;d.onclick=function(){e.qa.Rb?e.Fb(!0):e.Ve(!0)};a=!0;break;case "reset":this.wa[c]=d;d.onclick=function(){e.Ka&&Vb(e.Ka)};a=!0;break;case "speed":this.wa[c]=d;a=!0;break;case "setSpeed":this.wa[c]=d,d.onclick=function(){Wb(e,e.ca.Kd<<1,!0)},d.innerHTML=this.ca.Pe.toFixed(2)+"Mhz",a=!0}return a};function Xb(a,b,c){a.Te+=b;c&&(a.Qc=a.A=0)}
k.Db=function(a,b,c){var d=this;a=!1;switch(b){case "run":this.wa[b]=c;c.onclick=function(){d.qa.Rb?d.Fb(!0):d.Ve(!0)};a=!0;break;case "reset":this.wa[b]=c;c.onclick=function(){d.Ka&&Vb(d.Ka)};a=!0;break;case "speed":this.wa[b]=c;a=!0;break;case "setSpeed":this.wa[b]=c,c.onclick=function(){Wb(d,d.ca.Kd<<1,!0)},c.innerHTML=this.ca.Pe.toFixed(2)+"Mhz",a=!0}return a};function Xb(a,b,c){a.Te+=b;c&&(a.Qc=a.A=0)}
function Yb(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.ca.Kd&&a.ca.pd&&(d=a.ca.pd/a.ca.Bh);a.ca.Ok=Math.round(1E3/30);a.ca.Yn=Math.floor(a.ca.Ld/c*d);a.ca.Ti=Math.floor(a.ca.Ld/30*d);a.ca.Sk=Math.floor(a.ca.Ld/60*d);a.ca.Rk=Math.floor(a.ca.Ld/2*d);b||(a.ca.Af=a.ca.Ti,a.ca.mg=a.ca.Sk,a.ca.lg=a.ca.Rk);a.ca.Ui=0}function Ub(a,b){var c=a.Te+a.qe+a.Qc-a.A;b&&1<a.ca.Kd&&a.ca.pd>a.ca.Bh&&(c=Math.round(c/a.ca.Kd));return c}function Nb(a){a.ca.pd=0;a.Eh=1;a.Te=a.qe=a.Qc=a.A=0;Ob(a);Wb(a,1)}
function Wb(a,b,c){if(void 0!==b){0.8>a.ca.pd/a.ca.Pe&&(b=1);a.ca.Kd=b;b=a.ca.Bh*a.ca.Kd;if(a.ca.Pe!=b){a.ca.Pe=b;b=a.ca.Pe.toFixed(2)+"Mhz";var d=a.wa.setSpeed;d&&(d.innerHTML=b);a.da("target speed: "+b)}c&&a.Tc()}Xb(a,a.qe);a.qe=0;a.ca.wf=oa();a.ca.Qe=0;Yb(a)}
k.Ve=function(a){if($a(this,!0)){if(!this.qa.Rb){Wb(this);this.Ka&&this.Ka.start(this.ca.wf,Ub(this));this.qa.Rb=!0;this.oa&&Zb(this.oa);var b=this.wa.run;b&&(b.innerHTML="Halt");a&&this.Tc()}this.ca.Ui>=this.ca.Ld&&Yb(this,!0);this.ca.ng=0;this.ca.Ch=oa();this.ca.Qe&&(a=this.ca.Ch-this.ca.Qe,a>this.ca.Ok&&(this.ca.wf+=a,this.ca.wf>this.ca.Ch&&(this.ca.wf=this.ca.Ch)));try{do{this.Gf(this.qa.nf?1:Math.round(this.ca.Yn/this.Eh));var c=this.Qc-this.A;this.qe+=c;this.ca.ng+=c;Xb(this,0,!0);Tb(this,c);
@ -63,7 +63,7 @@ function hd(a,b){switch(b){case "CS":return a.ya;case "DS":return a.Hb;case "SS"
function jd(a,b){a.Ga=a.ya.load(b)+a.va;a.aa|=a.Lg}function kd(a,b){a.Hb.load(b);a.aa|=a.Lg}function ld(a,b){a.Cb.load(b);a.aa|=4}function md(a,b){a.ab.load(b);a.aa|=a.Lg}function G(a,b){a.Ga=a.ya.Ya+(a.va=b&65535)}function Tc(a,b,c){a.Ga=a.ya.load(c)+(a.va=b)}function nd(a,b){a.Ga=a.ya.Ya+(a.va=a.va+b&65535)}function od(a){return a.Z&a.ga?1:0}function pd(a){return ac[a.ma&255]?4:0}function qd(a){return(a.ma^a.pa)&16?16:0}function rd(a){return a.Z&a.ga-1?0:64}
function sd(a){return a.ma&a.ga>>1?128:0}function td(a){return(a.ma^a.pa^a.ma>>1)&a.ga>>1?2048:0}function ud(a){a.Z&=~a.ga}function vd(a){a.pa=a.ma&16|a.pa&-17}function wd(a){a.Z|=a.ga-1}function xd(a){sd(a)&&(a.ma^=a.ga>>1|a.ga>>2,a.pa^=32896)}function yd(a){a.ma&=~a.ga;a.pa=a.ma&32896|a.pa&-32897}function zd(a){a.Z|=a.ga}function Ad(a){a.pa=~(a.ma&16)&16|a.pa&-17}function Bd(a){a.Z&=~(a.ga-1)}function Cd(a){sd(a)||(a.ma^=a.ga>>1|a.ga>>2,a.pa^=32896)}
function Dd(a){a.ma|=a.ga;a.pa=a.ma&32896|a.pa&-32897}function Wc(a){return a.Ca&-2262|od(a)|pd(a)|qd(a)|rd(a)|sd(a)|td(a)}function Uc(a,b){a.ga=256;a.Z=a.ma=a.pa=0;b&1&&zd(a);b&4||(a.ma|=1);b&16&&(a.pa|=16);b&64||wd(a);b&128&&Cd(a);b&2048&&Dd(a);a.ya.Mc?b=b&-12289|a.Ca&12288:(a.ne=(b&12288)>>12,!a.ne||a.Gc&1||(a.ne=0));a.ya.Mc>a.ne&&(b=b&-513|a.Ca&512);a.Ca=a.Ca&-1793|b&1792|a.ck;a.Ca&256&&(a.ub|=2,a.aa|=4)}
k.Db=function(a,b,c,d){var e=!1;switch(c){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.wa[c]=d;e=!0;break;default:e=Lb.prototype.Db.call(this,a,b,c,d)}return e};k.tb=function(a){return this.Fa[(a&this.Ae)>>this.zb].sc(a&this.mb)};
k.Db=function(a,b,c){var d=!1;switch(b){case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "CS":case "DS":case "SS":case "ES":case "IP":case "PC":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "O":this.wa[b]=c;d=!0;break;default:d=Lb.prototype.Db.call(this,a,b,c)}return d};k.tb=function(a){return this.Fa[(a&this.Ae)>>this.zb].sc(a&this.mb)};
k.ua=function(a){var b=a&this.mb;a=(a&this.Ae)>>this.zb;this.A-=this.B.Jj;return b!=this.mb?this.Fa[a].Zl(b):this.Fa[a++].sc(b)|this.Fa[a&this.Ee].sc(0)<<8};k.Pd=function(a,b){this.Fa[(a&this.Ae)>>this.zb].Hc(a&this.mb,b&255)};k.ed=function(a,b){var c=a&this.mb,d=(a&this.Ae)>>this.zb;this.A-=this.B.Jj;c!=this.mb?this.Fa[d].mm(c,b&65535):(this.Fa[d++].Hc(c,b&255),this.Fa[d&this.Ee].Hc(0,b>>8&255))};k.Km=function(a,b){this.Hg=a;this.la=a.ld(this.zg=b,0);return this.aa&1?0:this.tb(this.la)};
k.Lm=function(a,b){this.Hg=a;this.la=a.ld(this.zg=b,1);return this.aa&1?0:this.ua(this.la)};k.Rn=function(a,b){this.Hg=a;this.Ma=this.la=a.ld(this.zg=b,0);return this.aa&1?0:this.tb(this.la)};k.Sn=function(a,b){this.Hg=a;this.Ma=this.la=a.ld(this.zg=b,1);return this.aa&1?0:this.ua(this.la)};k.mp=function(a){this.aa&2||this.Pd(this.Hg.hc(this.zg,1),a)};k.np=function(a){this.aa&2||this.ed(this.Hg.hc(this.zg,2),a)};k.ha=function(){var a=this.tb(this.Ga);this.Ga=this.ya.Ya+(this.va=this.va+1&65535);return a};
k.M=function(){var a=this.tb(this.Ga)<<24>>24;this.Ga=this.ya.Ya+(this.va=this.va+1&65535);return a&65535};k.L=function(){var a=this.ua(this.Ga);this.Ga=this.ya.Ya+(this.va=this.va+2&65535);return a};k.La=function(){var a=this.Y;this.Y=this.Y+2&65535;return this.ua(this.Cb.ld(a,1))};function H(a,b){var c=a.Y=a.Y-2&65535;a.ed(a.Cb.hc(c,1),b)}
@ -429,7 +429,7 @@ this.H&255,this.Ga-2);Ab(this.ra,a+1&65535,this.H>>8,this.Ga-2);this.A-=this.B.t
De,ue);0<=this.Nb&&(this.H=this.Nb)},function(){this.Nb=-1;Bh[this.ha()].call(this,Ee,ue);0<=this.Nb&&(this.H=this.Nb,this.K=this.Cg)},function(){this.Z&=~this.ga;this.A-=2},function(){this.Z|=this.ga;this.A-=2},function(){this.Ca&=-513;this.A-=this.B.Xk},function(){this.Ca|=512;this.aa|=4;this.A-=2},function(){this.Ca&=-1025;this.A-=2},function(){this.Ca|=1024;this.A-=2},function(){Ah[this.ha()].call(this,Mc,ue)},function(){Bh[this.ha()].call(this,Oc,ue)}];
function O(a){z.call(this,"ChipSet",a,O);this.Ia=(this.Ia=a.model)?parseInt(this.Ia,10):ai;this.ac=0;var b=a.sw1;if(b)this.ac=bi(b,ci|di.rm);else{this.Vd=[360,360];(b=a.floppies)&&b.length&&(this.Vd=b);if(b=this.Vd.length)this.ac|=ei.Zh,b--,this.ac|=(b&3)<<ei.Kf;if(b=a.monitor||(this.Ia<fi?"mono":"ega"),void 0!==gi[b])this.ac|=gi[b]<<di.Kf}this.ve=bi(a.sw2||"11110000",0);this.Qn=this.Ia==ai?16:64;this.dh=this.gh=1;this.Ia>=fi&&(this.dh=this.gh=2);this.uh=a.scaleTimers||!1;this.lp=a.rtcDate;this.Fk=
!1;a.sound&&window&&"webkitAudioContext"in window&&(this.qi=new window.webkitAudioContext);this.reset(!0);this.Ua()}A(z,O);var ai=5150,fi=5170,gi={none:0,tv:1,color:2,mono:3,ega:0},ei={Zh:1,ONE:0,eq:64,cq:128,Cp:192,Jf:192,Kf:6},ci=12,di={dq:16,vp:32,rm:48,Jf:48,Kf:4};k=O.prototype;
k.Db=function(a,b,c,d){switch(c){case "sw1":return this.wa[c]=d,hi(this,c,d,this.ac,{0:this.Ia==ai?"Bootable Floppy Drive":"Loop on POST",1:this.Ia==ai?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ia==ai)return this.wa[c]=d,hi(this,c,d,this.ve,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.wa[c]=d,!0}return!1};
k.Db=function(a,b,c){switch(b){case "sw1":return this.wa[b]=c,hi(this,b,c,this.ac,{0:this.Ia==ai?"Bootable Floppy Drive":"Loop on POST",1:this.Ia==ai?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.Ia==ai)return this.wa[b]=c,hi(this,b,c,this.ve,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.wa[b]=c,!0}return!1};
k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.Ka=a;this.Ra=eb(a,"Keyboard");this.Ul=Math.round(c.ca.Ld/1193181);tb(b,this,ii);zb(b,this,ji);this.Ia<fi?(tb(b,this,ki),zb(b,this,li)):(tb(b,this,mi),zb(b,this,ni));if(d){var e=this;oi(d,Fd,function(){for(var a=0;a<e.Eb.length;a++){for(var b=e.Eb[a],c="PIC"+a+":",d=0;d<b.vc.length;d++)c+=" IC"+(d+1)+"="+t(b.vc[d]);c+=" IMR="+t(b.zd)+" IRR="+t(b.Pb)+" ISR="+t(b.Kc);e.fa.message(c)}});oi(d,pi,function(){for(var a=0;a<e.Ob.length;a++){qi(e,a);
var b=e.Ob[a],c="TIMER"+a+":",d=0;if(null!=b.md)for(var n=0;n<=b.md;n++)d|=b.Za[n]<<8*n;c+=" MODE"+b.mode+" BYTES="+b.md+" COUNT="+v(d);e.fa.message(c)}});oi(d,ri,function(){for(var a="",b=0;64>b;b++){var c=13>=b?si(e,b):e.ta[b];a&&(a+="\n");a+="CMOS[0x"+t(b)+"]: 0x"+t(c)}e.fa.message(a)})}Xc(c,ti,this,this.Pn)};k.$b=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.Zb=function(a){return a&&this.save?this.save():!0};
k.reset=function(a){var b;this.fd=this.ac;this.af=this.ve;ui(this);this.jb=Array(this.dh);for(b=0;b<this.dh;b++)vi(this,b);this.Eb=Array(this.gh);wi(this,0,32);1<this.gh&&wi(this,1,160);this.ni=null;this.Ob=Array(3);for(b=0;b<this.Ob.length;b++)xi(this,b);this.Wf=this.li=this.Ac=this.Zg=null;this.Yg=0;if(this.Ia>=fi){this.qb=16;this.yd=0;this.jd=16;this.Ug=0;this.Be=160;512<=yi(this)&&(this.Be|=16);3==zi(this)&&(this.Be|=64);this.ji=3;this.Uf=0;this.Pg=Array(7);this.Ce=0;a&&(this.ta=Array(64));Ai(this,
@ -493,9 +493,9 @@ bs:14,tab:15,q:16,w:17,e:18,r:19,t:20,y:21,u:22,i:23,o:24,p:25,"[":26,"]":27,ent
S[Q["7"]]=8;S[Q["&"]]=10760;S[Q["8"]]=9;S[Q["*"]]=10761;S[Q["9"]]=10;S[Q["("]]=10762;S[Q["0"]]=11;S[Q[")"]]=10763;S[Q["-"]]=12;S[Q._]=10764;S[Q["="]]=13;S[Q["+"]]=10765;S[1008]=14;S[1009]=15;S[113]=16;S[81]=10768;S[119]=17;S[87]=10769;S[101]=18;S[69]=10770;S[114]=19;S[82]=10771;S[116]=20;S[84]=10772;S[121]=21;S[89]=10773;S[117]=22;S[85]=10774;S[105]=23;S[73]=10775;S[111]=24;S[79]=10776;S[112]=25;S[80]=10777;S[Q["["]]=26;S[Q["{"]]=10778;S[Q["]"]]=27;S[Q["}"]]=10779;S[13]=28;S[1017]=29;S[97]=30;
S[65]=10782;S[115]=31;S[83]=10783;S[100]=32;S[68]=10784;S[102]=33;S[70]=10785;S[103]=34;S[71]=10786;S[104]=35;S[72]=10787;S[106]=36;S[74]=10788;S[107]=37;S[75]=10789;S[108]=38;S[76]=10790;S[Q[";"]]=39;S[Q[":"]]=10791;S[Q["'"]]=40;S[Q['"']]=10792;S[Q["`"]]=41;S[Q["~"]]=10793;S[1016]=42;S[Q["\\"]]=43;S[Q["|"]]=10795;S[122]=44;S[90]=10796;S[120]=45;S[88]=10797;S[99]=46;S[67]=10798;S[118]=47;S[86]=10799;S[98]=48;S[66]=10800;S[110]=49;S[78]=10801;S[109]=50;S[77]=10802;S[Q[","]]=51;S[Q["<"]]=10803;
S[Q["."]]=52;S[Q[">"]]=10804;S[Q["/"]]=53;S[Q["?"]]=10805;S[3016]=54;S[1018]=56;S[Q[" "]]=57;S[1020]=58;S[1112]=59;S[1113]=60;S[1114]=61;S[1115]=62;S[1116]=63;S[1117]=64;S[1118]=65;S[1119]=66;S[1120]=67;S[1121]=68;S[1144]=69;S[1145]=70;S[1036]=71;S[1038]=72;S[1033]=73;S[1037]=75;S[1039]=77;S[1035]=79;S[1040]=80;S[1034]=81;S[1045]=82;S[1046]=83;S[1122]=87;S[1123]=88;S[4003]=7470;S[4063]=7494;S[4081]=3677523;k=Gj.prototype;
k.Db=function(a,b,c,d){var e=this;a=b+"-"+c;if(void 0===this.wa[a])switch(c){case "kbd":return this.wa[a]=d,d.onkeydown=function(a){return Lj(e,a,!0)},d.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:e.bb&64?e.bb&=-65:e.bb&40?b=!1:(e.Ak&&a==Q["`"]&&(a=27),b=!Mj(e,a));return b},d.onkeyup=function(a){return Lj(e,a,!1)},!0;case "caps-lock":return this.wa[a]=d,d.onclick=function(){e.T&&e.T.Tc();Mj(e,1020,!0)},!0;case "num-lock":return this.wa[a]=d,d.onclick=function(){e.T&&
e.T.Tc();Mj(e,1144,!0)},!0;case "scroll-lock":return this.wa[a]=d,d.onclick=function(){e.T&&e.T.Tc();Mj(e,1145,!0)},!0;default:if(void 0!==Jj[c]&&"button"==b)return this.wa[a]=d,d.onclick=function(a,b,c){return function(){a.T&&a.T.Tc();Nj(a,c);return!Mj(a,c)}}(this,c,Jj[c]),!0;if(void 0!==Kj[c])return this.wa[a]=d,b=function(a,b,c){return function(){Oj(a,c)}}(this,c,Kj[c]),c=function(a,b,c){return function(){Oj(a,c)}}(this,c,Kj[c]|128),"ontouchstart"in window?(d.ontouchstart=b,d.ontouchend=c):(d.onmousedown=
b,d.onmouseup=d.onmouseout=c),!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.oa=eb(a,"ChipSet")};k.Ua=function(){this.Dk=(this.Pm=Aa("iOS"))||Aa("Android");this.Sa("mobile keyboard support: "+(this.Dk?"true":"false"));return z.prototype.Ua.call(this)};function sj(a){a.Sa("keyboard reset",Pj);a.yc=[170];a.oa&&vj(a.oa)}function nj(a,b,c){var d=!1;a.Bi!==c&&(a.Bi=a.Fi=c);a.ph!==b&&(a.ph=b)&&!a.Fi&&uj(a);a.ph&&a.Fi&&(sj(a),a.Fi=!1,d=!0);return d}
k.Db=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.wa[e])switch(b){case "kbd":return this.wa[e]=c,c.onkeydown=function(a){return Lj(d,a,!0)},c.onkeypress=function(a){var b=!0;a=a||window.event;a=a.which||a.keyCode;8==a||9==a?b=!1:d.bb&64?d.bb&=-65:d.bb&40?b=!1:(d.Ak&&a==Q["`"]&&(a=27),b=!Mj(d,a));return b},c.onkeyup=function(a){return Lj(d,a,!1)},!0;case "caps-lock":return this.wa[e]=c,c.onclick=function(){d.T&&d.T.Tc();Mj(d,1020,!0)},!0;case "num-lock":return this.wa[e]=c,c.onclick=function(){d.T&&
d.T.Tc();Mj(d,1144,!0)},!0;case "scroll-lock":return this.wa[e]=c,c.onclick=function(){d.T&&d.T.Tc();Mj(d,1145,!0)},!0;default:if(void 0!==Jj[b]&&"button"==a)return this.wa[e]=c,c.onclick=function(a,b,c){return function(){a.T&&a.T.Tc();Nj(a,c);return!Mj(a,c)}}(this,b,Jj[b]),!0;if(void 0!==Kj[b])return this.wa[e]=c,a=function(a,b,c){return function(){Oj(a,c)}}(this,b,Kj[b]),b=function(a,b,c){return function(){Oj(a,c)}}(this,b,Kj[b]|128),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=
a,c.onmouseup=c.onmouseout=b),!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.oa=eb(a,"ChipSet")};k.Ua=function(){this.Dk=(this.Pm=Aa("iOS"))||Aa("Android");this.Sa("mobile keyboard support: "+(this.Dk?"true":"false"));return z.prototype.Ua.call(this)};function sj(a){a.Sa("keyboard reset",Pj);a.yc=[170];a.oa&&vj(a.oa)}function nj(a,b,c){var d=!1;a.Bi!==c&&(a.Bi=a.Fi=c);a.ph!==b&&(a.ph=b)&&!a.Fi&&uj(a);a.ph&&a.Fi&&(sj(a),a.Fi=!1,d=!0);return d}
function kj(a,b){var c=0;a.yc.length&&(c=a.yc[0],a.Sa("scan code 0x"+t(c)+" delivered"),b&&uj(a));return c}function uj(a,b){0<a.yc.length&&(b?a.yc=[]:(a.yc.shift(),0<a.yc.length&&a.oa&&vj(a.oa)))}k.$b=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};k.Zb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le();this.bb=0;this.yc=[];if(this.ud)for(var a in this.ud)ca(a)||this.ud[a]&&clearTimeout(this.ud[a]);this.ud=[];this.Yl=this.Ue=0};
k.save=function(){var a=new gd(this);a.set(0,this.Wj());return a.data()};k.restore=function(a){return this.le(a[0])};k.le=function(a){var b=0;void 0===a&&(a=[]);this.Bi=a[b++];this.ph=a[b];return!0};k.Wj=function(){var a=0,b=[];b[a++]=this.Bi;b[a]=this.ph;return b};
function Oj(a,b){var c=b&127,d=c==b;if(a.yc)if(20>a.yc.length){if(!(!d&&!a.di[c]||d&&a.di[c])){a.di[c]=d;a.Sa("scan code 0x"+t(b)+" buffered");a.yc.push(b);1==a.yc.length&&a.oa&&vj(a.oa);for(var e in Kj)if(Kj[e]==c){(c=a.wa["key-"+e])&&void 0!==d&&(c.style.color=d?"#ffffff":"#000000",c.style.backgroundColor=d?"#000000":"#ffffff");break}}}else 20==a.yc.length&&a.yc.push(255),a.Sa("scan code buffer overflow")}function Qj(a,b){var c=b?a.Un:a.Tn;a.T&&a.T.ca.pd&&(c/=a.T.ca.pd);return c}
@ -527,7 +527,7 @@ a.Dh;c[16]=a.Ij;c[17]=a.ob;c[18]=a.qd;c[19]=a.vb;c[20]=a.Jh;c[21]=a.re;c[22]=a.S
fk.prototype.Uh=function(a){if(null!=a&&a!=this.Dh){var b=a&255,c=wk[b];c||b&1&&(c=wk[1]);var b=a&65280,d=wk[b];d||b&256&&(d=wk[256]);this.Rf||(this.Rf=[null,uk,null,vk]);this.Rf[0]=c;this.Rf[2]=d;this.Dh=a}};var gk=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];k=T.prototype;
k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;tb(b,this,zk);zb(b,this,Ak);"ega"==this.Ia&&(tb(b,this,Bk),zb(b,this,Ck));if(d){var e=this;oi(d,Dk,function(a){if(e.Ha)if(a){var b=e.Ha;if(b.hd){a=da(a);a=void 0!==a?a-b.Va:b.cp||0;0>a&&(a=0);for(var c="",d=0;8>d;d++){for(var f=p(b.Va+a)+":",r=0;8>r&&a<b.hd.length;r++)var s=b.hd[a++],f=f+(" "+p(s));c&&(c+="\n");c+=f}c&&b.fa.message(c);b.cp=a}else b.fa.message("no buffer")}else{e.fa.message("BIOSMODE: "+t(e.Nd));b=e.Ha;yk(b,"CRTC",b.oc,b.ec,b.Tg);
if(1==b.ke||3==b.ke)yk(b," MODEREG",b.Fc),yk(b," STATUS1",b.Ff);3==b.ke&&yk(b," COLOR",b.jf);5==b.ke&&(b.fa.message(" ATCDATA: "+b.nd),yk(b," ATC",b.Fd,b.Td,b.gi),yk(b," GRC",b.Gd,b.ye,b.hi),yk(b," SEQ",b.Hd,b.Mf,b.ii),yk(b," FEAT",b.wh),yk(b," MISC",b.gg),yk(b," STATUS0",b.Xh),yk(b," LATCHES",b.Gb),b.fa.message(" ACCESS: "+v(b.Dh)),b.fa.message("Use 'dump video buffer' to dump video memory"))}else e.fa.message("no active video card")})}if((this.Ra=eb(a,"Keyboard"))&&this.fb){for(var f in this.wa)0<
f.indexOf("lock")&&this.Ra.Db("input","led",f,this.wa[f]);this.Ra.Db("input",this.km?"textarea":"canvas","kbd",this.km||this.fb)}this.Vg=9;(this.oa=eb(a,"ChipSet"))&&this.fm&&(this.Vg=bi(this.fm,this.Vg));this.Ra&&this.Im&&Ek(this)};k.Db=function(a,b,c,d){var e=this;if(!this.wa[c])switch(this.wa[c]=d,c){case "lockPointer":return this.jp=d.innerHTML,this.fb&&this.fb.vf?d.onclick=function(){e.vf(!0)}:d.parentNode.removeChild(d),!0;case "refresh":return d.onclick=function(){Mb(e,!0)},!0}return!1};
f.indexOf("lock")&&this.Ra.Db("led",f,this.wa[f]);this.Ra.Db(this.km?"textarea":"canvas","kbd",this.km||this.fb)}this.Vg=9;(this.oa=eb(a,"ChipSet"))&&this.fm&&(this.Vg=bi(this.fm,this.Vg));this.Ra&&this.Im&&Ek(this)};k.Db=function(a,b,c){var d=this;if(!this.wa[b])switch(this.wa[b]=c,b){case "lockPointer":return this.jp=c.innerHTML,this.fb&&this.fb.vf?c.onclick=function(){d.vf(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){Mb(d,!0)},!0}return!1};
k.Tc=function(){this.fb&&this.fb.focus()};k.vf=function(a){if(this.fb)if(a){if(this.fb.vf)return this.fb.vf(),this.me.yg(!0),!0}else if(this.fb.lm)return this.fb.lm(),this.me.yg(!1),!0;return!1};k.yg=function(a){this.me&&(this.me.yg(a),this.Ra&&(this.Ra.Ak=a));var b=this.wa.lockPointer;b&&(b.innerHTML=a?"Press Esc to Unlock Pointer":this.jp)};
function Ek(a){var b=a.fb;b&&!a.Ai&&(b.addEventListener("touchstart",function(b){Fk(a,b)},!1),b.addEventListener("touchmove",function(b){Fk(a,b)},!0),b.addEventListener("touchend",function(){},!1),a.Ai=!0)}
function Fk(a,b){a.Ci&&b.preventDefault();var c=0,d=0,e=a.fb;do isNaN(e.offsetLeft)||(c+=e.offsetLeft,d+=e.offsetTop);while(e=e.offsetParent);c=a.Bd/a.fb.offsetWidth*(b.targetTouches[0].pageX-c)/(a.Bd/3)|0;d=a.ie/a.fb.offsetHeight*(b.targetTouches[0].pageY-d)/(a.ie/3)|0;1!=d?d?Mj(a.Ra,40,!0):Mj(a.Ra,38,!0):1!=c&&(c?Mj(a.Ra,39,!0):Mj(a.Ra,37,!0))}k.$b=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Zb=function(a){return a&&this.save?this.save():!0};
@ -565,8 +565,8 @@ var zk={948:T.prototype.vn,949:T.prototype.un,952:T.prototype.wn,954:T.prototype
960:T.prototype.Wl,961:T.prototype.Wl,962:T.prototype.Oo,964:T.prototype.Vo,965:T.prototype.Uo,970:T.prototype.Go,972:T.prototype.Fo,974:T.prototype.Eo,975:T.prototype.Do,986:T.prototype.Xl};
Ha(function(){for(var a=D(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=window.document.createElement("canvas");if(void 0===e){c.innerHTML="<br/>Missing &lt;canvas&gt; support; try a new web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.setAttribute("contenteditable","true");e.setAttribute("autocapitalize","off");e.setAttribute("autocorrect","off");e.style.backgroundColor=d.screenColor;
e.style.height=c.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(e.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,e,d.screenWidth,d.screenHeight));c.appendChild(e);var f=e.getContext("2d"),d=new T(d,e,f);Za(d,c)}});
function Zk(a){this.Jk=a.adapter;switch(this.Jk){case 1:this.Oj=1016;this.rg=4;break;case 2:this.Oj=760;this.rg=3;break;default:x("Unrecognized serial adapter #"+this.Jk);return}this.fe=null;z.call(this,"SerialPort",a,Zk);var b=a.binding,c;a=$k;b&&(void 0===c&&(c="Panel"),(c=Xa(c,this.id))&&(b=c.wa[b])&&this.Db(null,null,a,b))}A(z,Zk);var $k="buffer";k=Zk.prototype;k.hk=function(a,b){return a==this.yh?(this.me=b,this):null};
k.Db=function(a,b,c,d){var e=this;switch(c){case $k:return this.wa[c]=this.fe=d,d.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),al(e,[b]))},d.onkeypress=function(a){a=a||window.event;al(e,[a.which||a.keyCode])},!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.oa=eb(a,"ChipSet");tb(b,this,bl,this.Oj);zb(b,this,cl,this.Oj);this.Ua()};
function Zk(a){this.Jk=a.adapter;switch(this.Jk){case 1:this.Oj=1016;this.rg=4;break;case 2:this.Oj=760;this.rg=3;break;default:x("Unrecognized serial adapter #"+this.Jk);return}this.fe=null;z.call(this,"SerialPort",a,Zk);var b=a.binding,c;a=$k;b&&(void 0===c&&(c="Panel"),(c=Xa(c,this.id))&&(b=c.wa[b])&&this.Db(null,a,b))}A(z,Zk);var $k="buffer";k=Zk.prototype;k.hk=function(a,b){return a==this.yh?(this.me=b,this):null};
k.Db=function(a,b,c){var d=this;switch(b){case $k:return this.wa[b]=this.fe=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),al(d,[b]))},c.onkeypress=function(a){a=a||window.event;al(d,[a.which||a.keyCode])},!0}return!1};k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.oa=eb(a,"ChipSet");tb(b,this,bl,this.Oj);zb(b,this,cl,this.Oj);this.Ua()};
k.$b=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Zb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.le()};k.save=function(){var a=new gd(this),b=0,c=[];c[b++]=this.mi;c[b++]=this.lk;c[b++]=this.bf;c[b++]=this.Wg;c[b++]=this.be;c[b++]=this.Wc;c[b++]=this.kd;c[b++]=this.Lc;c[b++]=this.jk;c[b]=this.Of;a.set(0,c);return a.data()};k.restore=function(a){return this.le(a[0])};
k.le=function(a){var b=0;void 0===a&&(a=[0,0,384,0,1,0,0,96,48,[]]);this.mi=a[b++];this.lk=a[b++];this.bf=a[b++];this.Wg=a[b++];this.be=a[b++];this.Wc=a[b++];this.kd=a[b++];this.Lc=a[b++];this.jk=a[b++];this.Of=a[b];return!0};function al(a,b){a.Of=a.Of.concat(b);dl(a)}function dl(a){0<a.Of.length&&!(a.Lc&1)&&(a.mi=a.Of.shift(),a.Lc|=1);var b=-1;a.Lc&1&&a.Wg&1&&(b=4);0<=b?(a.be&=-8,a.be|=b,a.oa&&a.rg&&ej(a.oa,a.rg)):(a.be|=1,a.oa&&a.rg&&fj(a.oa,a.rg))}
k.En=function(a,b){var c=this.Wc&128?this.bf&255:this.mi;this.ea(a,null,b,this.Wc&128?"DLL":"RBR",c);this.Lc&=-2;dl(this);return c};k.pn=function(a,b){var c=this.Wc&128?this.bf>>8:this.Wg;this.ea(a,null,b,this.Wc&128?"DLM":"IER",c);return c};k.qn=function(a,b){var c=this.be;this.ea(a,null,b,"IIR",c);return c};k.rn=function(a,b){var c=this.Wc;this.ea(a,null,b,"LCR",c);return c};k.tn=function(a,b){var c=this.kd;this.ea(a,null,b,"MCR",c);return c};
@ -603,8 +603,8 @@ k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){v
b+" changes applied)";b=-1;break}if(this.rf){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.cb[h][l][n]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.bd=e;for(h.Bc=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&this.ia.Ja("unable to restore disk '"+this.sd+": "+c);return b};k.Sa=function(a){this.fa&&E(this.fa,wl)&&this.fa.message(a)};
function xl(a){z.call(this,"FDC",a,xl);this.dmaRead=this.ui;this.dmaWrite=this.vi;this.dmaFormat=this.xm;this.Je=null;if(a.autoMount&&(this.Je=a.autoMount,"string"==typeof this.Je))try{this.Je=eval("("+a.autoMount+")")}catch(b){x("FDC auto-mount error: "+b.message+" ("+a.autoMount+")"),this.Je=null}this.uc=[];this.Ck=!1}A(z,xl);m={};aa={};
var yl={3:{Ad:3,ee:0,name:aa.Xp},4:{Ad:2,ee:1,name:aa.Vp},5:{Ad:9,ee:7,name:aa.iq},6:{Ad:9,ee:7,name:aa.Pp},7:{Ad:2,ee:0,name:aa.Rp},8:{Ad:1,ee:2,name:aa.Wp},10:{Ad:2,ee:7,name:aa.Qp},13:{Ad:6,ee:7,name:aa.Bp},15:{Ad:3,ee:0,name:aa.Up}};k=xl.prototype;
k.Db=function(a,b,c,d){var e=this;switch(c){case "listDisks":return this.wa[c]=d,d.onchange=function(){var a=e.wa.descDisk,b=d.options[d.selectedIndex];if(a&&b){var c={};if(b=b.getAttribute("data-value"))try{c=eval("({"+b+"})")}catch(l){x("FDC option error: "+l.message)}b=c.desc;void 0===b&&(b="");c=c.href;void 0!==c&&(b='<a href="'+c+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.wa[c]=d,d.onchange=function(){var a=da(d.value,10);null!=a&&zl(e,a)},
!0;case "loadDrive":return this.wa[c]=d,d.onclick=function(){var a=e.wa.listDisks;a&&Al(e,a.options[a.selectedIndex].text,a.value)},!0;case "mountDrive":return window&&"FileReader"in window?(this.Ck=!0,this.wa[c]=d,d.addEventListener("change",function(){var a=d.children[0];a.children[1].disabled=0==a.children[0].files.length}),d.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Al(e,fa(b,!0),b,a)}return!1}):d.parentNode.removeChild(d),!0}return!1};
k.Db=function(a,b,c){var d=this;switch(b){case "listDisks":return this.wa[b]=c,c.onchange=function(){var a=d.wa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("({"+b+"})")}catch(h){x("FDC option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.wa[b]=c,c.onchange=function(){var a=da(c.value,10);null!=a&&zl(d,a)},!0;
case "loadDrive":return this.wa[b]=c,c.onclick=function(){var a=d.wa.listDisks;a&&Al(d,a.options[a.selectedIndex].text,a.value)},!0;case "mountDrive":return window&&"FileReader"in window?(this.Ck=!0,this.wa[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=0==a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Al(d,fa(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.fa=d;this.Ka=a;this.oa=eb(a,"ChipSet");this.Id();tb(b,this,Bl);zb(b,this,Cl);this.Ck&&Dl(this,"Local Disk","?");Dl(this,"Remote Disk","??");this.Sf()||this.Ua()};
k.$b=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.Ka.Ei){this.uc=[];for(var c=0;c<this.Ea.length;c++)El(this,c,!0);this.Sf(!0)}}else if(!this.restore(a))return!1;if(c=this.wa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.innerHTML="";for(var d=0;d<this.Wi;d++){var e=window.document.createElement("option");e.value=d;e.innerHTML=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Wi&&(c.value="0",zl(this,0))}}return!0};
k.Zb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.Id()};k.save=function(){var a=new gd(this);a.set(0,this.Tj());return a.data()};k.restore=function(a){return this.Id(a[0])};
@ -683,7 +683,7 @@ Z="AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI ES CS SS DS IP".split(" "),bm
82:"get system variables (es:bx)",83:"translate bpb DS:SI to dpb (es:bp)",84:"get verify flag (al)",85:"create child psp at segment DX",86:"rename file DS:DX to name ES:DI",87:"get(0)/set(1) file date DX and time CX (AL)",88:"get(0)/set(1) memory allocation strategy (AL)",89:"get extended error information",90:"create temporary file DS:DX with attributes CX",91:"create file DS:DX with attributes CX",92:"lock(0)/unlock(1) file BX region CX:DX length SI:DI (AL)"}};k=Ul.prototype;
k.pc=function(a,b,c,d){this.ra=b;this.T=c;this.Ka=a;this.Jm=eb(a,"FDC");this.Ik=eb(a,"HDC");this.Nf=dm;80186<=this.T.Ia&&(this.Nf=dm.slice(),this.Nf[15]=$,80286<=this.T.Ia&&(this.Nf[15]=cm));oi(this,2097152,function(a){if(a)for(d.da("dumpDOS("+a+")"),a=da(a);a;){var b=[0,a,void 0],c=d.tb(b,1),e=d.ua(b,2),n=d.ua(b,5);if(77!=c&&90!=c)break;d.da(ea(0,a)+": '"+String.fromCharCode(c)+"' PID="+v(e)+" LEN="+v(n)+' "'+hm(d,b)+'"');a+=1+n}});this.Ua();if(this.Sj){a=Xl(this,this.Sj);delete this.Sj;for(var e in a)im(this,
a[e])}};
k.Db=function(a,b,c,d){var e=this;switch(c){case "debugInput":return this.Zf=this.wa[c]=d,d.onkeypress=function(a){if(13==a.keyCode){var b=d.value;d.value="";var c=Xl(e,b,!0);for(b in c)im(e,c[b]);a.preventDefault&&a.preventDefault()}},!0;case "debugEnter":return this.wa[c]=d,Ca(d,function(){if(e.Zf){var a=e.Zf.value;e.Zf.value="";var b=Xl(e,a,!0);for(a in b)im(e,b[a]);return!0}return!1}),!0;case "step":return this.wa[c]=d,Ca(d,function(a){var b=!1;ab(e,!0)||($a(e,!0),b=e.Gf(a?1:0),$a(e,!1));return b}),
k.Db=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Zf=this.wa[b]=c,c.onkeypress=function(a){if(13==a.keyCode){var b=c.value;c.value="";var g=Xl(d,b,!0);for(b in g)im(d,g[b]);a.preventDefault&&a.preventDefault()}},!0;case "debugEnter":return this.wa[b]=c,Ca(c,function(){if(d.Zf){var a=d.Zf.value;d.Zf.value="";var b=Xl(d,a,!0);for(a in b)im(d,b[a]);return!0}return!1}),!0;case "step":return this.wa[b]=c,Ca(c,function(a){var b=!1;ab(d,!0)||($a(d,!0),b=d.Gf(a?1:0),$a(d,!1));return b}),
!0}return!1};k.Tc=function(){this.Zf&&this.Zf.focus()};function hm(a,b){var c,d="";for(c=8;d.length<c;){var e=a.tb(b,1);if(!e)break;d+=32<=e&&128>e?String.fromCharCode(e):"."}return d}function oi(a,b,c){for(var d in Yl)if(b==Yl[d]){a.fi[d]=c;break}}function E(a,b){return(a.kc&b)===b}
function $c(a,b,c){var d=Zl[b],e=d&&E(a,d);if(e){var f=a.T.H>>8,g=a.T.K&255;if(33==b&&11==f||d==zj&&128<=g||d==Tl&&128>g)e=!1}if(e){if(d=(d=gm[b])&&d[f]||"")g=a.T,a.pb[Z[0]]=t(g.H&255),a.pb[Z[1]]=t(g.J&255),a.pb[Z[2]]=t(g.K&255),a.pb[Z[3]]=t(g.C&255),a.pb[Z[4]]=t(g.H>>8),a.pb[Z[5]]=t(g.J>>8),a.pb[Z[6]]=t(g.K>>8),a.pb[Z[7]]=t(g.C>>8),a.pb[Z[8]]=v(g.H),a.pb[Z[9]]=v(g.J),a.pb[Z[10]]=v(g.K),a.pb[Z[11]]=v(g.C),a.pb[Z[12]]=v(g.Y),a.pb[Z[13]]=v(g.I),a.pb[Z[14]]=v(g.G),a.pb[Z[15]]=v(g.F),a.pb[Z[16]]=v(g.ab.sa),
a.pb[Z[17]]=v(g.ya.sa),a.pb[Z[18]]=v(g.Cb.sa),a.pb[Z[19]]=v(g.Hb.sa),a.pb[Z[20]]=v(g.va),d=" "+ka(a.pb,d);a.message("INT 0x"+t(b)+": AH="+t(f)+" at "+ea(c-a.T.ya.Ya,a.T.ya.sa)+d)}return e}function bd(a,b,c,d,e){a.message("INT 0x"+t(b)+": C="+(od(a.T)?1:0)+(e||"")+" (cycles="+d+(c?",level="+(c+1):"")+")")}
@ -752,7 +752,7 @@ function Om(a,b){if(ua("There may be a problem with your PCjs machine.\n\nTo hel
function Fm(a,b,c){var d,e="none",f=new gd(a,"1.16.0"),g=new gd(a,"1.16.0","validate"),h=pa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.16.0");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Zb&&(c&&a.T.Fb(),d=a.T.Zb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.qa.Qb=!1,!1===d&&(e=null)));for(var h=Va(a.id),l=0;l<h.length;l++){var n=h[l];n.qa.Qb&&(n.Zb&&(d=n.Zb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.qa.Qb=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.Sc&&Qm(a,a.Sc,f.toString()),Im(g)&&Im(f)||(e=null,d=h=!0)):a.Rc&&(d=!0,h=3==a.Rc),d&&f.clear(h)):e=f.toString());c&&(a.qa.Qb=!1);return e}k.reset=function(){this.ra&&this.ra.reset&&(this.Sa("Resetting "+this.ra.type,!0),this.ra.reset());for(var a=Va(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ra&&c.reset&&(this.Sa("Resetting "+c.type,!0),c.reset())}};
k.start=function(a,b){for(var c=Va(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=Va(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.Db=function(a,b,c,d){var e=this;switch(c){case "save":return this.wa[c]=d,d.onclick=function(){var a=Lm(e,!0);if(a){var b=!(!e.Rc||e.Th),c=Fm(e,b);b?Qm(e,a,c):e.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.wa[c]=d,d.onclick=function(){Vb(e)},!0}return!1};
k.Db=function(a,b,c){var d=this;switch(b){case "save":return this.wa[b]=c,c.onclick=function(){var a=Lm(d,!0);if(a){var b=!(!d.Rc||d.Th),c=Fm(d,b);b?Qm(d,a,c):d.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.wa[b]=c,c.onclick=function(){Vb(d)},!0}return!1};
function Lm(a,b){var c=a.Sc;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("To save machine states on the pcjs.org server, you need a user ID (email support@pcjs.org).\n\nOnce you have an ID, enter it below.","")),c&&((c=Rm(a,c))||a.Ja("Your user ID has not been approved."))):b&&a.Ja("Browser local storage is not available"));return c}
function Rm(a,b){a.Sc=null;var c=sa(ta()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.Sc=c.data)}catch(e){x(e.message+" ("+d+")")}return a.Sc}
function Qm(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gm(a,"1.16.0");d.data=c;b=sa(ta()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ja("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.Ja(c),za("user",""),a.Sc=null)}}