Code cleanup
This commit is contained in:
parent
7913ef2a0a
commit
b6cf972131
36 changed files with 561 additions and 227 deletions
|
|
@ -1 +1 @@
|
|||
<div class="pcbuild" id="{{ include.id }}"></div>
|
||||
<div class="buildpc" id="{{ include.id }}"></div>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ here and in markout.js. Examples include 'autopower' ('autoPower') and 'automou
|
|||
{% endif %}
|
||||
<script type="text/javascript">{{ machine_embed }}('{{ machine.id }}','{{ machine_config }}','{{ machine_template }}','{{ machine_parms }}');</script>
|
||||
{% if page.build %}
|
||||
<script type="text/javascript" src="{{ site.baseurl }}/modules/pcbuild/lib/build.js"></script>
|
||||
<script type="text/javascript" src="{{ site.baseurl }}/modules/build/lib/build.js"></script>
|
||||
<script type="text/javascript">buildPC("{{ page.build }}");</script>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ could only be used in PC, XT, and AT-compatible systems. I'll refer to it here
|
|||
The VGA ROM used here is assumed to have come from an original IBM VGA. It's unknown if IBM ever made any
|
||||
revisions to the VGA ROM. With the introduction of the PS/2 family and the VGA, IBM decided to no longer publish
|
||||
the source code for its ROMs, so I've created some assemblable source code from the IBM VGA ROM
|
||||
[here](/devices/pc/video/ibm/vga/ibm-vga.nasm).
|
||||
[here](/devices/pc/video/ibm/vga/).
|
||||
|
||||
I've finally started debugging a machine configuration that uses the IBM VGA ROM. Since the VGA and the 80386 are
|
||||
contemporaries, I'm using an [80386 machine configuration](/devices/pc/machine/compaq/deskpro386/vga/2048kb/machine.xml).
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ function Ta(a){if(Qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Ba("An unexp
|
|||
function Xa(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.sk=b.comment;this.wk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.ti=this.id.substr(0,b),this.ce=this.id.substr(b+1)):this.ce=this.id;this[a]=c;this.ra={Ze:!1,cd:!1,eh:!1,hc:!1,wd:!1};this.rg=null;this.ra.wd=!1;this.ya={};this.ma=null;this.wc=d||0;Ya[Ya.length]=this}var Za=void 0,ab={};
|
||||
if(window){Za||(Za=window.location.search.substr(1));for(var bb,cb=/\+/g,db=/([^&=]+)=?([^&]*)/g;bb=db.exec(Za);)ab[decodeURIComponent(bb[1].replace(cb," "))]=decodeURIComponent(bb[2].replace(cb," "))}function fb(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 gb(a,b){b||(b=Xa);a.prototype=fb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ya=[];function hb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ya.length;b++){var d=Ya[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ib(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ya.length;c++)if(Ya[c].id===a)return Ya[c]}return null}
|
||||
function jb(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<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function kb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function lb(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=jb(d,a.id))&&(b=d.ya[b])&&a.Ub(null,c,b))}
|
||||
window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function mb(a,b){for(var c=ob(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 k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=kb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
|
||||
function jb(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<Ya.length;d++)if(c)c==Ya[d]&&(c=null);else if(!(a!=Ya[d].type||b&&Ya[d].id.indexOf(b)))return Ya[d]}return null}function kb(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){Ba(c.message+" ("+a+")")}return b}function lb(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=jb(d,a.id))&&(b=d.ya[b])&&a.Ub(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
|
||||
function mb(a,b){for(var c=ob(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===document.ELEMENT_NODE){var k=g.getAttribute("class");if(k)for(var q=k.split(" "),r=0;r<q.length;r++)switch(k=q[r],k){case "pcjs-binding":(k=kb(g))&&k.binding&&a.Ub(k.type,k.binding,g,k.value),r=q.length}}}}
|
||||
function ob(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}
|
||||
Xa.prototype={constructor:Xa,parent:null,toString:function(){return this.name?this.name:this.id||this.type},Ub:function(a,b,c){switch(b){case "clear":return this.ya[b]||(this.ya[b]=c,c.onclick=function(a){return function(){a.ya.print&&(a.ya.print.value="")}}(this)),!0;case "print":return this.ya[b]||(this.Af=this.ya[b]=c,c.value="",this.S=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.Va=function(a,b,c){this.S(a,"notice",c)}),!0;default:return!1}},log:function(){},S:function(){},status:function(a){this.S(this.ce+": "+a)},Va:function(a,b){b||Ba(a)},lc:function(){return this.ra.hc=!0},kc:function(a,b){b&&(this.ra.hc=!1);return!0}};function m(a,b,c,d,e,f,g){a.ma&&(!0===g?g=0:null==g&&(g=a.wc),pb(a.ma,a,b,c,d,e,f,g))}function qb(a,b,c,d){a.ma&&(!0===c||n(a,c|0))&&a.ma.message(b,d)}
|
||||
|
|
@ -38,7 +38,7 @@ h.Ub=function(a,b,c,d){return this.ia&&this.ia.Ub(a,b,c,d)||this.M&&this.M.Ub(a,
|
|||
function Jb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.ka||(a.ka=Math.abs(a.O-d)>Math.abs(a.Y-b)?1:2),1==a.ka?b=a.Y:2==a.ka&&(d=a.O));a.O=d;a.Y=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Ne)for(f=0;f<a.A.Ne.length;f++)if(e=a.A.Ne[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.A.xf[f],g=xa(Kb.ak,a.A.Tg[d.Xk]),f=g*a.ja.Rb,d=(g+d.Qd)*a.ja.Rb-1;0<b&&(f+=e.bd*(b-1)*a.Ha);f+=c*a.Ha;f|=0;
|
||||
f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ja)){b=c;if(a.context&&a.qa&&a.ta){e=a.qa.width;a.ta.fillStyle="black";a.ta.fillRect(0,360,e,360);Lb(a,378,a.qa,a.ta);a.wa=a.Ma.width/24|0;if(null==b)Mb(a,"Mouse over memory to dump");else for(Mb(a,"0x"+l(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var k;k=a.ja;var q=b++;k=k.xa[(q&k.Lb)>>>k.Pa].pe(q&k.A,q);Mb(a,l(k,2),null,1);d+=32<=k&&128>k?String.fromCharCode(k):"."}Mb(a,d,null,0,1)}a.context.drawImage(a.qa,0,360,e,360,a.xb,a.Ib,a.cb,a.Yb)}a.Ja=
|
||||
c}}}h.qd=function(){};function Nb(a,b,c,d){a.A.xf[a.A.Ci++]={Xk:b,Qd:c,type:d};return wa(Kb,b,c,0,d)}function Lb(a,b,c,d){var e,f=null.style.color,g=a.Ua=10;a.C=g;a.W=b;a.X=a.Da=18;e||(e=a.Ba||a.Da+"px Monaco, Lucida Console, Courier New");a.la=a.Ba=e;c&&(a.Ma=c);d&&(a.R=d,a.Oa=f||"white")}
|
||||
function Mb(a,b,c,d,e){a.R.font=a.la;a.R.fillStyle=a.Oa;a.R.fillText(b,a.C,a.W);a.C+=a.wa;null!=c&&(16!=a.rb?b=c.toString():(b=8>a.Ta?"0x":"",b+=l(c,a.Ta)),a.R.fillText(b,a.C,a.W),a.C+=a.wa);d&&(a.C+=a.wa*d);e&&(a.C=a.Ua,a.W+=(a.X+2)*(e||1))}function Ib(){for(var a=!1,b=ob(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=kb(d),f=ib(e.id);f||(a=!0,f=new Cb(e));mb(f,d);a&&vb(f)}}Sa(Ib);
|
||||
function Mb(a,b,c,d,e){a.R.font=a.la;a.R.fillStyle=a.Oa;a.R.fillText(b,a.C,a.W);a.C+=a.wa;null!=c&&(16!=a.rb?b=c.toString():(b=8>a.Ta?"0x":"",b+=l(c,a.Ta)),a.R.fillText(b,a.C,a.W),a.C+=a.wa);d&&(a.C+=a.wa*d);e&&(a.C=a.Ua,a.W+=(a.X+2)*(e||1))}function Ib(){for(var a=!1,b=ob(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=kb(d),f=ib(e.id);f||(a=!0,f=new Cb(e));mb(f,d);a&&vb(f)}}Sa(Ib);
|
||||
function Ob(a,b,c){Xa.call(this,"Bus",a,Ob);this.M=b;this.ma=c;this.P=a.buswidth||20;this.X=Math.pow(2,this.P);this.wg=this.Lb=this.X-1|0;this.Pa=32==this.P||20>=this.P?12:24>=this.P?14:15;this.Rb=1<<this.Pa;this.la=this.Rb>>2;this.A=this.Rb-1;this.W=this.X/this.Rb|0;this.O=this.W-1;this.C=[];this.R=[];this.ia=this.Y=!1;this.da=[];this.ka=[];a=new Pb;Qb(a,this.ma);this.xa=Array(this.W);for(b=0;b<this.W;b++)this.xa[b]=a;a=this.M;b=this.xa;c=this.Pa;a.kd=a.xa=b;a.Pa=c;a.Rb=1<<a.Pa;a.Ha=a.Rb-1;a.Hd=
|
||||
b.length;a.jd=a.Hd-1;a=this.M;a.Lb=a.qb=this.Lb;vb(this)}gb(Ob);var Kb,Rb={ak:20,count:8,po:1,type:3},Sb=0,Tb;for(Tb in Rb){var Ub=Rb[Tb];Rb[Tb]={ph:(1<<Ub)-1<<Sb,shift:Sb};Sb+=Ub}Kb=Rb;h=Ob.prototype;h.reset=function(){Wb(this,!0)};h.lc=function(a,b){b||this.reset();return!0};
|
||||
function Xb(a,b,c,d,e){for(var f=b>>>a.Pa;0<c&&f<a.xa.length;){var g=a.xa[f],k=f*a.Rb,q=c>a.Rb?a.Rb:c;if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.Ia)return g.Le+=g.Ia-b,g.Ia=b,!0;if(b>=g.Ia+g.Le){q=g.size-(b-k);q>c&&(q=c);g.Le=b-g.Ia+q;c-=q;b=k+a.Rb;continue}}return Yb(a,1,b,c)}g=a.xa[f];b=new Pb(b,q,a.Rb,d,e);Qb(b,a.ma,g);a.xa[f++]=b;b=k+a.Rb;c-=q}return 0>=c?(Zb(a.M),!0):Yb(a,2,b,c)}
|
||||
|
|
@ -134,8 +134,7 @@ function Lf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.na)2<b.length&&
|
|||
h.qd=function(a){if(this.Qg&&(a||!this.ra.Ob||this.ra.Pi)){Lf(this,"EAX",this.F);Lf(this,"EBX",this.D);Lf(this,"ECX",this.G);Lf(this,"EDX",this.H);Lf(this,"ESP",u(this));Lf(this,"EBP",this.K);Lf(this,"ESI",this.J);Lf(this,"EDI",this.I);Lf(this,"CS",this.Ca.ga);Lf(this,"DS",this.Ab.ga);Lf(this,"SS",this.Aa.ga);Lf(this,"ES",this.bb.ga);Lf(this,"EIP",v(this));var b=Cd(this);Lf(this,"PS",b);Lf(this,"V",b&2048);Lf(this,"D",b&1024);Lf(this,"I",b&512);Lf(this,"T",b&256);Lf(this,"S",b&128);Lf(this,"Z",b&
|
||||
64);Lf(this,"A",b&16);Lf(this,"P",b&4);Lf(this,"C",b&1);80386==this.na&&(Lf(this,"FS",this.Sb.ga),Lf(this,"GS",this.Tb.ga),Lf(this,"CR0",this.hb),Lf(this,"CR2",this.qe),Lf(this,"CR3",this.Md))}if(b=this.ya.speed)b.textContent=this.ra.Ob&&this.ba.ne?this.ba.ne.toFixed(2)+"Mhz":"Stopped";this.parent.qd.call(this,a)};
|
||||
h.sf=function(a){this.ra.Sd=!0;var b=this.ra.Ni=this.ma&&Mf(this.ma),c=a?this.ra.hh?0:1:-1;this.ra.hh=!1;this.cb=this.A=a;this.R&&!a&&gd(this.R);a||n(this,1024)||(this.V|=4);do{var d=this.V&3312;if(d)this.La|=d;else if(this.Ge=this.Na,this.P=this.Ab,this.O=this.Aa,this.Z=this.Y=-1,this.La&3072&&Pe(this),this.La=this.V&256,this.za){a:{if(!(this.V&4))for(var d=80286>this.na?0:1,e=0;2>e;e++){switch(d){case 0:if(this.za&1&&this.ea&512){var f=Nf(this.R);if(-1<=f&&(this.za&=-2,0<=f)){this.za&=-5;Of.call(this,
|
||||
f);d=!0;break a}}break;case 1:if(this.za&2){this.za&=-3;80386<=this.na&&(this.Ma[6]|=16384);Of.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.S("interrupt dispatched");this.V=0;break}if(this.za&4){this.V=this.A=0;break}}if(b){if(Pf(this.ma,this.Na,c)){this.bc();break}c=1}this.V=0;this.W[this.ca()].call(this)}while(0<this.A);return this.ra.Sd?this.cb-this.A:void 0===this.ra.Sd?0:-1};
|
||||
Sa(function(){for(var a=ob(window.document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gd(d);mb(d,c)}});
|
||||
f);d=!0;break a}}break;case 1:if(this.za&2){this.za&=-3;80386<=this.na&&(this.Ma[6]|=16384);Of.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.S("interrupt dispatched");this.V=0;break}if(this.za&4){this.V=this.A=0;break}}if(b){if(Pf(this.ma,this.Na,c)){this.bc();break}c=1}this.V=0;this.W[this.ca()].call(this)}while(0<this.A);return this.ra.Sd?this.cb-this.A:void 0===this.ra.Sd?0:-1};Sa(function(){for(var a=ob(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gd(d);mb(d,c)}});
|
||||
function Qf(a){Xa.call(this,"FPU",a,Qf);this.na=a.model||8087;(a=a.stepping)&&ca(a,16);this.ja=new Float64Array(8);this.da=new Int32Array(this.ja.buffer);this.wa=new Float32Array(1);this.Ba=new Int32Array(this.wa.buffer);this.X=new Float64Array(1);this.ia=new Int32Array(this.X.buffer);this.O=Array(3);this.ka=this.la=-1;this.Y=this.W=this.qa=this.A=0;this.ta=new Float64Array(1);this.za=new Int32Array(this.ta.buffer);this.za[0]=0;this.za[1]=268402688;Rf(this)}gb(Qf);h=Qf.prototype;
|
||||
h.Jc=function(a,b,c){this.M=c;this.R=Hb(a,"ChipSet");vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)Rf(this);else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.save=function(){var a=new bf(this),b=[],c=0;b[c++]=this.mc;b[c++]=Sf(this);b[c++]=Tf(this);for(var d=0;d<this.ja.length;d++)b[c++]=this.ja[d];cf(a,0,b);return a.data()};
|
||||
h.restore=function(a){a=a[0];var b=0;this.mc=a[b++]&-57409;var c=a[b++];this.sa=c&-14337;this.C=(c&14336)>>11;Uf(this);Vf(this,a[b++]);for(c=0;c<this.ja.length;c++)this.ja[c]=a[b++];return!0};function Rf(a){a.P=0;a.mc=959;a.sa=0;a.C=0;a.R&&(a=a.R,a.na>=Wf&&Xf(a,13))}function Uf(a){a.sa&=-129;a.sa&~a.mc&63&&(a.sa|=128);if(a.sa&128&&!(a.mc&128))return a=a.R,a.na>=Wf?Yf(a,13):a.Ma&0||Of.call(a.M,2),!0;a=a.R;a.na>=Wf&&Xf(a,13);return!1}function Zf(a,b){80387<=a.na||(b&=-65);a.sa|=b;return Uf(a)}
|
||||
|
|
@ -162,9 +161,9 @@ og(this),T(this,0)))},48:function(){W(this,this.A,ag(this,T(this,this.A),T(this,
|
|||
this.nk()},3:function(){ig(this)&&(this.nk(),Dg(this))},4:Wg,6:Xg,7:bh,48:Sg,49:eh,50:function(){W(this,this.A,T(this,0))},51:Zg},222:{0:function(){W(this,0,ag(this,T(this,0),lg(this)))},1:function(){W(this,0,cg(this,T(this,0),lg(this)))},2:function(){eg(this,T(this,0),lg(this))},3:function(){eg(this,T(this,0),lg(this))&&Dg(this)},4:function(){W(this,0,bg(this,T(this,0),lg(this)))},5:function(){W(this,0,bg(this,lg(this),T(this,0)))},6:function(){W(this,0,dg(this,T(this,0),lg(this)))},7:function(){W(this,
|
||||
0,dg(this,lg(this),T(this,0)))},48:function(){W(this,this.A,ag(this,T(this,this.A),T(this,0)))&&Dg(this)},49:function(){W(this,this.A,cg(this,T(this,this.A),T(this,0)))&&Dg(this)},50:Qg,51:function(){eg(this,T(this,0),T(this,1))&&null!=Dg(this)&&Dg(this)},52:function(){W(this,this.A,bg(this,T(this,0),T(this,this.A)))&&Dg(this)},53:function(){W(this,this.A,bg(this,T(this,this.A),T(this,0)))&&Dg(this)},54:function(){W(this,this.A,dg(this,T(this,0),T(this,this.A)))&&Dg(this)},55:function(){W(this,this.A,
|
||||
dg(this,T(this,this.A),T(this,0)))&&Dg(this)}},223:{0:function(){Eg(this,lg(this))},2:function(){null!=fg(this,T(this,0),32768)&&this.M.pb(this.M.Z,this.ia[0])},3:function(){null!=fg(this,T(this,0),32768)&&(this.M.pb(this.M.Z,this.ia[0]),Dg(this))},4:function(){var a=pg(this),b=Bg(a[0],8)+1E8*Bg(a[1],8)+1E16*Bg(a[2],2);a[2]&32768&&(b=-b);Eg(this,b)},5:function(){var a;a=this.M.ua(this.M.Z);a=4294967296*this.M.ua(this.M.Z+4)+(a>>>0);Eg(this,a)},6:function(){var a=fg(this,Dg(this));null!=a&&(this.O[0]=
|
||||
Cg(a,8),this.O[1]=Cg(a/1E8,8),this.O[2]=Cg(a/1E16,2),0>a&&(this.O[2]|=32768),zg(this))},7:function(){null!=fg(this,T(this,0),Mg)&&(this.mk(),Dg(this))},48:function(){Sg.call(this);Dg(this)},49:eh,50:$g,51:$g,52:ch}},gh=[Ng,Tg,Ug,Vg,Wg,Xg,ah,Yg,bh,ch];Sa(function(){for(var a=ob(window.document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Qf(d);mb(d,c)}});
|
||||
function hh(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}function ih(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function jh(a,b){var c=a+b|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
|
||||
function kh(a,b){var c=a+b|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function lh(a,b){var c=a&b;rf(this,c,128);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c}function mh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return rf(this,a&b,this.Ja)&this.B}function nh(a,b){this.A-=10+(-1===this.Z?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Bf(this),a;zf(this);return a}
|
||||
Cg(a,8),this.O[1]=Cg(a/1E8,8),this.O[2]=Cg(a/1E16,2),0>a&&(this.O[2]|=32768),zg(this))},7:function(){null!=fg(this,T(this,0),Mg)&&(this.mk(),Dg(this))},48:function(){Sg.call(this);Dg(this)},49:eh,50:$g,51:$g,52:ch}},gh=[Ng,Tg,Ug,Vg,Wg,Xg,ah,Yg,bh,ch];Sa(function(){for(var a=ob(document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Qf(d);mb(d,c)}});function hh(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}
|
||||
function ih(a,b){var c=a+b+xf(this)|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}function jh(a,b){var c=a+b|0;kf(this,a,b,c,191);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&255}function kh(a,b){var c=a+b|0;kf(this,a,b,c,this.Ja|63);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c&this.B}
|
||||
function lh(a,b){var c=a&b;rf(this,c,128);this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return c}function mh(a,b){this.A-=-1===this.Y?-1===this.Z?this.C.yc:this.C.ac:this.C.Nc;return rf(this,a&b,this.Ja)&this.B}function nh(a,b){this.A-=10+(-1===this.Z?0:1);if((a&3)<(b&3))return a=a&-4|b&3,Bf(this),a;zf(this);return a}
|
||||
function oh(a){if(-1===this.Z)return p.call(this,6),a;var b=a,c=this.vb(this.Z),d=this.vb(this.Z+this.fa);2==this.fa&&(b=a<<16>>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.C.cj;(b<c||b>d)&&p.call(this,5);this.V|=2;return a}function ph(a,b){var c=0;if(b){zf(this);for(var d=1;d&this.B;){if(b&d){a=c;break}d<<=1;c++}}else Bf(this);this.A-=11+3*c;return a}function qh(a,b){var c=0;if(b){zf(this);for(var d=2==this.fa?15:31,e=1<<d;e;){if(b&e){a=d;break}e>>>=1;c++;d--}}else Bf(this);this.A-=11+3*c;return a}
|
||||
function rh(a,b){a&1<<(b&(2==this.fa?15:31))?sf(this):tf(this);this.A-=-1===this.Z?3:6;this.V|=2;return a}function sh(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a^c}function th(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a&~c}function uh(a,b){var c=1<<(b&(2==this.fa?15:31));a&c?sf(this):tf(this);this.A-=-1===this.Z?6:8;return a|c}
|
||||
function vh(a,b){if(-1===this.Z)return rh.call(this,a,b);var c=this.fa<<3;if(b>=c||b<-c)a=Gf(this,this.pd,this.rb+(b>>(2==this.fa?4:5))*this.fa);b=1<<(b&(2==this.fa?15:31));a&b?sf(this):tf(this);this.A-=6;this.V|=2;return a}function wh(a,b){if(-1===this.Z)return sh.call(this,a,b);var c=this.fa<<3;if(b>=c||b<-c)a=Gf(this,this.pd,this.rb+(b>>(2==this.fa?4:5))*this.fa);b=1<<(b&(2==this.fa?15:31));a&b?sf(this):tf(this);this.A-=8;return a^b}
|
||||
|
|
@ -855,18 +854,18 @@ b){return fl(this,1,a,b)},66:function(a,b){return fl(this,2,a,b)},67:Xj.prototyp
|
|||
32:function(a,b,c){bl(this,0,b,c)},33:function(a,b,c){el(this,0,b,c)},64:function(a,b,c){hl(this,0,a,b,c)},65:function(a,b,c){hl(this,1,a,b,c)},66:function(a,b,c){hl(this,2,a,b,c)},67:Xj.prototype.gn,129:function(a,b,c){Vk(this,0,2,a,b,c)},130:function(a,b,c){Vk(this,0,3,a,b,c)},131:function(a,b,c){Vk(this,0,1,a,b,c)},135:function(a,b,c){Vk(this,0,0,a,b,c)}},lk={96:Xj.prototype.hn,97:Xj.prototype.jn,98:Xj.prototype.kn,99:Xj.prototype.mn,160:Xj.prototype.fn},nk={96:Xj.prototype.tm,97:Xj.prototype.um,
|
||||
100:Xj.prototype.sm,112:Xj.prototype.Im,113:Xj.prototype.Jm,128:function(a,b,c){Xk(this,7,a,b,c)},132:function(a,b,c){Xk(this,0,a,b,c)},133:function(a,b,c){Xk(this,1,a,b,c)},134:function(a,b,c){Xk(this,2,a,b,c)},136:function(a,b,c){Xk(this,3,a,b,c)},137:function(a,b,c){Vk(this,1,2,a,b,c)},138:function(a,b,c){Vk(this,1,3,a,b,c)},139:function(a,b,c){Vk(this,1,1,a,b,c)},140:function(a,b,c){Xk(this,4,a,b,c)},141:function(a,b,c){Xk(this,5,a,b,c)},142:function(a,b,c){Xk(this,6,a,b,c)},143:function(a,b,
|
||||
c){Vk(this,1,0,a,b,c)},160:function(a,b,c){bl(this,1,b,c)},161:function(a,b,c){el(this,1,b,c)},192:function(a,b,c){Lk(this,1,0,a,b,c)},194:function(a,b,c){Nk(this,1,0,a,b,c)},196:function(a,b,c){Lk(this,1,1,a,b,c)},198:function(a,b,c){Nk(this,1,1,a,b,c)},200:function(a,b,c){Lk(this,1,2,a,b,c)},202:function(a,b,c){Nk(this,1,2,a,b,c)},204:function(a,b,c){Lk(this,1,3,a,b,c)},206:function(a,b,c){Nk(this,1,3,a,b,c)},208:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.CMD",null,!0);this.R[1].Zg=b},210:function(a,
|
||||
b,c){Pk(this,1,a,b,c)},212:function(a,b,c){Qk(this,1,a,b,c)},214:function(a,b,c){Sk(this,1,a,b,c)},216:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.RESET_FF",null,!0);this.R[1].Pb=0},218:function(a,b,c){Tk(this,1,a,b,c)},240:Xj.prototype.Tm,241:Xj.prototype.Um};Sa(function(){for(var a=ob(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Xj(d);mb(d,c);sk(d)}});
|
||||
b,c){Pk(this,1,a,b,c)},212:function(a,b,c){Qk(this,1,a,b,c)},214:function(a,b,c){Sk(this,1,a,b,c)},216:function(a,b,c){n(this,768)&&m(this,a,b,c,"DMA1.RESET_FF",null,!0);this.R[1].Pb=0},218:function(a,b,c){Tk(this,1,a,b,c)},240:Xj.prototype.Tm,241:Xj.prototype.Um};Sa(function(){for(var a=ob(document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Xj(d);mb(d,c);sk(d)}});
|
||||
function tl(a){Xa.call(this,"ROM",a,tl);this.A=null;this.ia=a.addr;this.R=a.size;this.P=a.alias;this.O=a.file;this.X=ja(this.O);this.C=a.notify;this.Y=null;if(this.C&&(a=this.C.indexOf("["),0<a)){try{this.Y=eval(this.C.substr(a))}catch(c){}this.C=this.C.substr(0,a)}if(this.O){a=this.O;var b=ka(this.X);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.O+"&format=bytes&decimal=true");za(a,!0,null,this,this.W)}}gb(tl);tl.prototype.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;ul(this)};
|
||||
tl.prototype.lc=function(){this.Nd&&(this.ma&&vl(this.ma,this.id,0,this.ia>>>4,0,this.ia,this.R,this.Nd),delete this.Nd);return!0};tl.prototype.kc=function(){return!0};
|
||||
tl.prototype.W=function(a,b,c){if(c)this.Va("Unable to load system ROM (error "+c+": "+a+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,f=d.data;if(e)this.A=e;else if(f)for(this.A=Array(4*f.length),c=b=0;b<f.length;b++)this.A[c++]=f[b]&255,this.A[c++]=f[b]>>8&255,this.A[c++]=f[b]>>16&255,this.A[c++]=f[b]>>24&255;else this.A=d;this.Nd=d.symbols;if(!this.A.length){Ba("Empty ROM: "+a);return}if(1==this.A.length){Ba(this.A[0]);return}}catch(g){this.Va("ROM data error: "+
|
||||
g.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.A=Array(a.length),d=0;d<a.length;d++)this.A[d]=ca(a[d],16);ul(this)}};
|
||||
function ul(a){if(!wb(a))if(!a.O)vb(a);else if(a.A&&a.ja){if(a.A.length!=a.R)xb(a,"ROM size (0x"+l(a.A.length)+") does not match specified size ("+("0x"+l(a.R))+")");else{var b;b=a.ia;if(Xb(a.ja,b,a.R,dc)){for(var c=0;c<a.A.length;c++){var d=a.ja,e=b+c;d.xa[(e&d.Lb)>>>d.Pa].tf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.P?b.push(a.P):null!=a.P&&a.P.length&&(b=a.P);for(c=0;c<b.length;c++){var d=a,e=b[c],f=ac(d.ja,d.ia,d.R);$b(d.ja,e,d.R,f)}a.C&&((b=ib(a.C,a.id))?(c=a.A,d=a.Y,5==
|
||||
b.nb?wl(b,c,d||[12640,8752],8):b.nb==xl&&wl(b,c,d||[14221,16269],8),vb(b)):a.Va("Unable to find component: "+a.C));delete a.A}}vb(a)}}Sa(function(){for(var a=ob(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new tl(d);mb(d,c)}});function yl(a){Xa.call(this,"RAM",a,yl);this.C=a.addr;this.A=a.size;this.ia=a.test;this.O=!!this.A;this.P=!1}gb(yl);h=yl.prototype;h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");vb(this)};
|
||||
b.nb?wl(b,c,d||[12640,8752],8):b.nb==xl&&wl(b,c,d||[14221,16269],8),vb(b)):a.Va("Unable to find component: "+a.C));delete a.A}}vb(a)}}Sa(function(){for(var a=ob(document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new tl(d);mb(d,c)}});function yl(a){Xa.call(this,"RAM",a,yl);this.C=a.addr;this.A=a.size;this.ia=a.test;this.O=!!this.A;this.P=!1}gb(yl);h=yl.prototype;h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");vb(this)};
|
||||
h.lc=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};h.kc=function(a){return a&&this.controller?this.save():!0};
|
||||
h.reset=function(){if(!this.C&&!this.O&&this.R){var a=1024*wk(this.R);this.A&&a!=this.A&&(cc(this.ja,this.C,this.A),this.P=!1);this.A=a}!this.P&&this.A&&Xb(this.ja,this.C,this.A,1)&&(this.P=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"),"ramCPQ"==this.ce&&(this.controller=new zl(this),Xb(this.ja,Al,4,4,this.controller)));if(this.P){if(this.ia||jc(this.ja,1138,4660),"ramCPQ"!=this.ce&&this.R&&(a=this.R,a.A)){var b=1048576>this.C?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+
|
||||
1]=c>>8;Ak(a)}}else Ba("No RAM allocated")};h.save=function(){var a=new bf(this);this.controller&&cf(a,0,this.controller.save());return a.data()};h.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function zl(a){this.P=a;this.ma=Bl;this.R=Cl;this.C=Dl;this.A=null}var Al=-2134900736,Bl=65535,Cl=2575,Dl=2,El=[null,0],Fl=[function(a){return this.controller.Wa(a)},null,null,function(a,b){this.controller.tc(a,b)},null,null];h=zl.prototype;h.save=function(){return[this.ma,this.C]};
|
||||
h.restore=function(a){this.tc(0,a[0]&255);this.tc(2,a[1]&255);return!0};h.Wa=function(a){var b=255;2>a?b=a&1?this.R>>8:this.R&255:4>a&&(b=a&1?this.C>>8:this.C&255);return b};h.tc=function(a,b){if(a)2==a&&(this.C=this.C&-256|b);else if(b!=(this.ma&255)){var c=this.P.ja;if(b&1)this.A&&($b(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=ac(c,917504,131072));var d=ac(c,16646144,131072);$b(c,917504,131072,d,b&2?1:dc)}this.ma=this.ma&-256|b}};h.Si=function(){return El};h.jh=function(){return Fl};
|
||||
Sa(function(){for(var a=ob(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new yl(d);mb(d,c)}});function Gl(a){Xa.call(this,"Keyboard",a,Gl,65536);Hl(this,a.model);this.ka=Ia("Mobi");this.qa=Ia("MSIE");qb(this,"mobile keyboard support: "+(this.ka?"true":"false"));this.da=0;this.la=this.fh=!1;this.C=[];this.wa=50;vb(this)}gb(Gl);
|
||||
Sa(function(){for(var a=ob(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new yl(d);mb(d,c)}});function Gl(a){Xa.call(this,"Keyboard",a,Gl,65536);Hl(this,a.model);this.ka=Ia("Mobi");this.qa=Ia("MSIE");qb(this,"mobile keyboard support: "+(this.ka?"true":"false"));this.da=0;this.la=this.fh=!1;this.C=[];this.wa=50;vb(this)}gb(Gl);
|
||||
var Il=["US83","US84","US101"],X={Bn:1,Cn:3,Dn: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,xn:65,yn:66,zn:67,En:68,E:69,Fn:70,In:71,Jn:72,Kn:73,Ln:74,Mn:75,Nn:76,On:77,Pn:78,Qn:79,Rn:80,Q:81,Sn:82,Wn:83,ao:84,fo:85,ho:86,io:87,ko:88,lo:89,mo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,no:97,oo:98,qo:99,d:100,e:101,ro:102,so:103,to:104,
|
||||
uo:105,vo:106,k:107,wo:108,xo:109,n:110,zo:111,p:112,q:113,r:114,Ao:115,t:116,Co:117,Do:118,Eo:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Jl={};Jl[186]=X[";"];Jl[187]=X["="];Jl[188]=X[","];Jl[189]=X["-"];Jl[190]=X["."];Jl[191]=X["/"];Jl[192]=X["`"];Jl[219]=X["["];Jl[220]=X["\\"];Jl[221]=X["]"];Jl[222]=X["'"];Jl[173]=X["-"];var Kl={};Kl[X["1"]]=X["!"];Kl[X["2"]]=X["@"];Kl[X["3"]]=X["#"];Kl[X["4"]]=X.$;Kl[X["5"]]=X["%"];Kl[X["6"]]=X["^"];Kl[X["7"]]=X["&"];Kl[X["8"]]=X["*"];Kl[X["9"]]=X["("];
|
||||
Kl[X["0"]]=X[")"];Kl[186]=X[":"];Kl[187]=X["+"];Kl[188]=X["<"];Kl[189]=X._;Kl[190]=X[">"];Kl[191]=X["?"];Kl[192]=X["~"];Kl[219]=X["{"];Kl[220]=X["|"];Kl[221]=X["}"];Kl[222]=X['"'];Kl[173]=X._;Kl[61]=X["+"];Kl[59]=X[":"];
|
||||
|
|
@ -888,7 +887,7 @@ function Sl(a,b,c){if(!Z[b]||!(c||a.M&&a.M.ra.Ob))return!1;for(var d=!1,e=0;e<a.
|
|||
function Yl(a,b,c){var d=b;if(65<=b&&90>=b)!(a.xc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.xc&515)==c&&(d=b-32);else if(!!(a.xc&3)==c){if(a=Kl[b])d=a}else if(a=Jl[b])d=a;return d}h.Gg=function(a){a||(this.xc&=-256)};
|
||||
function Pl(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,k=Yl(a,g,!0);a.fh&&k==X["`"]&&(g=k=27);if(Z[g+1E3])if(k+=1E3,2==b.location&&(k+=2E3),Rl(a,k,!1,c)){if(20==g||144==g||145==g)a.qa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var q=0;q<a.C.length;q++){var r=a.C[q];r.Bf=!1;0<r.Kd&&(r.Kd=0)}}else 8==g&&8==(a.xc&40)&&(k=4008),d=!1;else if(Z[k]&&a.xc&60&&(d=!1),d&&c||a.xc&192)f=!0;d||b.preventDefault();f||a.ka&&d||(c?Ql(a,k,e):Sl(a,k)||(b=Yl(a,g,!1),b!=k&&Sl(a,b)));return d}
|
||||
function Xl(a,b,c){var d=!1;Rl(a,b,!0,c);var e=Z[b]||Z[b+1E3];if(void 0!==e){14==e&&40==(a.xc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.ta)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,k=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==k?a.P&3||a.P&512&&b||(g=k):29==k?a.P&12||(g=k):56==k?a.P&48||(g=k):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.A&&(20>e.A.length?(n(e)&&qb(e,"scan code "+ga(f)+" buffered"),e.A.push(f),
|
||||
1==e.A.length&&e.R&&rl(e.R,f)):(20==e.A.length&&e.A.push(255),qb(e,"scan code buffer overflow")));d=!0}return d}Sa(function(){for(var a=ob(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gl(d);mb(d,c)}});
|
||||
1==e.A.length&&e.R&&rl(e.R,f)):(20==e.A.length&&e.A.push(255),qb(e,"scan code buffer overflow")));d=!0}return d}Sa(function(){for(var a=ob(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Gl(d);mb(d,c)}});
|
||||
function Zl(a,b,c,d,e){Xa.call(this,"Video",a,Zl,262144);this.na=a.model;this.nb=$l[this.na]||am;this.Ed=a.memory||0;this.Yf=a.switches;this.Da=a.mode;if(void 0===this.Da||void 0===bm[this.Da])this.Da=cm;this.jd=a.charCols;this.je=a.charRows;if(void 0===this.jd||void 0===this.je)this.jd=bm[this.Da][0],this.je=bm[this.Da][1];this.Ba=a.screenWidth;this.Ma=a.screenHeight;this.Rg=a.scale;this.Qg=12<=Math.round(this.Ba/this.jd);this.wa=b;this.qa=c;this.ia=(this.Bk=d)||b||null;this.dg=a.touchScreen;this.ke=
|
||||
dm;this.Y=null;this.Pg=a.autoLock;this.sb=this.gc=0;this.Ua=[];this.Ja=Array(this.nb==xl?256:16);this.xb=!1;var f=this;this.nf=Ia("Gecko/");b=["","moz","webkit","ms"];if(this.la=e)if(this.la.Ue=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.la.Ue){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){em(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
|
||||
document.msFullscreenElement?!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){em(f,null)},!1);break}}this.ia&&(this.ia.onfocus=function(){return f.Gg(!0)},this.ia.onblur=function(){return f.Gg(!1)},this.ia.ze=this.ia.requestPointerLock||this.ia.mozRequestPointerLock||this.ia.webkitRequestPointerLock,this.ia.rk=this.ia.exitPointerLock||this.ia.mozExitPointerLock||this.ia.webkitExitPointerLock,this.ia.ze&&(e=function(){f.Sf(document.pointerLockElement===
|
||||
|
|
@ -933,7 +932,7 @@ h.Gk=function(a,b,c){if(c)this.Va("Unable to load font ROM (error "+c+": "+a+")"
|
|||
function Sm(a,b){if(1==b)return a.Ja[0]=jm[0],a.Ja[1]=jm[7],a.Ja;if(2==b){var c=a.C.pf;if(a.C===a.A){var d=a.A.Uc[0],c=d&7;d&16&&(c|=8);18!=a.A.Uc[1]&&(c|=32)}a.Ja[0]=jm[c&15];c=c&32?lm:km;for(d=0;d<c.length;d++)a.Ja[d+1]=jm[c[d]];return a.Ja}if(a.da===a.Xc)return jm;a.xb&&b&&!a.Ja[16]&&(a.xb=!1);if(!a.xb){var c=a.A,d=c.qf,e,f,g,k,q;if(8==b)for(f=0;256>f;f++)g=d[f]||0,k=g<<2&252,q=g>>4&252,g=g>>10&252,a.Ja[f]=[k,q,g,255];else{var r=d&&d[255];e=null!=c.Uc[15]?c.Uc:mm;for(f=0;16>f;f++)g=e[f]&63,r?(g|=
|
||||
(c.Uc[20]&12)<<4,c.Uc[16]&128&&(g&=-49,g|=(c.Uc[20]&3)<<4),g=d[g],k=g<<2&252,q=g>>4&252,g=g>>10&252):(k=(g&4?170:0)|(g&32?85:0),q=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ja[f]=[k,q,g,255]}a.xb=!0}return a.Ja}function wl(a,b,c,d){a.Lc=b;a.sd=c;a.rb=d}
|
||||
function Om(a,b){var c=!1;if(window&&a.Lc&&(!b||a.W)){var d=0,e=a.rb?a.rb:8,f=Sm(a);Tm(a,3,a.sd[0],d,e,8,a.Lc,f)&&(c=!0);d=a.rb?0:2048;e=a.rb?a.rb:9;Tm(a,1,a.sd[1],d,e,14,a.Lc,hm,im)&&(c=!0);a.rb&&Tm(a,a.nb,a.sd[1],0,a.rb,14,a.Lc,f)&&(c=!0)}return c}function Tm(a,b,c,d,e,f,g,k,q){var r=!1;null!=c&&(Um(a,b,c,d,e,f,g,k,q)&&(r=!0),a.Qg&&Um(a,b<<1,c,d,e,f,g,k,q)&&(r=!0));return r}
|
||||
function Um(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Ua[b],y=16>k.length?k.length:16;B||(B={Rc:e<<x,Sc:f<<x,Me:Array(y),vi:k.slice(0,y),wf:q,Ug:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Me[q]?B.vi[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ha=f,da=g,eb=[0,0,0,0],ua=window.document.createElement("canvas");ua.width=r.Rc<<4;ua.height=r.Sc<<4;for(var pa=ua.getContext("2d"),Oa=void 0,$a=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=pa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
|
||||
function Um(a,b,c,d,e,f,g,k,q){var r=!1,x=b&1?0:1,B=a.Ua[b],y=16>k.length?k.length:16;B||(B={Rc:e<<x,Sc:f<<x,Me:Array(y),vi:k.slice(0,y),wf:q,Ug:Array(y)});for(q=0;q<y;q++){var J=k[q],U=B.Me[q]?B.vi[q]:[];if(J[0]!==U[0]||J[1]!==U[1]||J[2]!==U[2]){var r=B,U=q,F=x,O=c,V=d,Y=e,ha=f,da=g,eb=[0,0,0,0],ua=document.createElement("canvas");ua.width=r.Rc<<4;ua.height=r.Sc<<4;for(var pa=ua.getContext("2d"),Oa=void 0,$a=void 0,Ja=void 0,Vb=8>ha||!V?ha:8,Da=pa.createImageData(r.Rc,r.Sc),Oa=0;256>Oa;Oa++){for(Ja=
|
||||
0;Ja<ha;Ja++)for(var Ud=r.wf&&U&1&&Ja>=ha-2,Tc=da[Ja<Vb?O+Oa*Vb+Ja:V+Oa*Vb+Ja-Vb],Vd=0;Vd<=F;Vd++)for($a=0;$a<Y;$a++){var Fe=$a<<F,Wd=(Ja<<F)+Vd,Ge=Ud||Tc&128>>(8<=$a&&192<=Oa&&223>=Oa?7:$a)?J:eb;Vm(Da,Fe,Wd,Ge);F&&Vm(Da,Fe+1,Wd,Ge)}pa.putImageData(Da,(Oa&15)*r.Rc,(Oa>>4)*r.Sc)}r.Me[U]="#"+l(J[0],2)+l(J[1],2)+l(J[2],2);r.vi[U]=J;r.Ug[U]=ua;r=!0}}a.Ua[b]=B;return r}function Wm(a){0<a.cb||0<=a.ta?0>a.Yb&&(a.Yb=0):a.Yb=-1}
|
||||
function Rm(a){if(a.W){for(var b=10;15>=b;b++)if(null==a.C.zb[b])return;var c=a.C.zb[10],b=c&31,d=a.C.zb[11]&31,e=a.C.zb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Xm(a);else{c=a.C.zb[15]+((a.C.zb[14]&63)<<8);a.ta!=c&&(Xm(a),a.ta=c);d=d-b+1;if(a.fg!=b||a.ye!=d)a.fg=b,a.ye=d;a.ib=e+1;Wm(a)}}}
|
||||
function Xm(a){if(0<=a.ta){if(void 0!==a.ka){var b=a.ka[a.ta];if(b&131072){var b=b&-131073,c=a.ta%a.O,d=a.ta/a.O|0;a.W&&a.Ua[a.W]&&(a.qb&&Ym(a,c,d,b,a.qb),Ym(a,c,d,b));a.ka[a.ta]=b}}a.ta=-1}}
|
||||
|
|
@ -942,8 +941,8 @@ function $m(a,b){var c=a.C;return c&&null!=b&&b!=c.vg?(c.Ng(b),a.ja.Ng(c.sb,c.gc
|
|||
function Qm(a,b){var c,d=a.Qa,e=a.C;if(e)if(e.nb==am)d=cm;else if(5<=e.nb){var d=null,f=e.Ed>>2,g=32768<f?32768:f,k=e.Zd[6];if(null!=k){switch(k&12){case 0:e.sb=655360;e.gc=f;d=255;break;case 4:e.sb=655360;e.gc=f;d=3==a.Ha?15:16;break;case 8:e.sb=720896;e.gc=g;d=cm;break;case 12:e.sb=753664,e.gc=g,d=3==a.Ha?2:3}var q=80==(e.Zd[5]&80);!q||e.sb==a.sb&&e.gc==a.gc||(b=!0);c=e.He[1]&8;f=e.zb[6];f|=e.zb[7]&1?256:0;e.nb==xl&&(f|=e.zb[7]&32?512:0);g=e.zb[9];255!=d&&(k&1?655360!=e.sb&&!q&&350>f?d=c?7-d:6:
|
||||
e.Zd[5]&64?d=g&31?143>=e.zb[18]?19:20:21:g&128||350>f?d=c?13:14:480<=f&&(d=3==a.Ha?17:18):d-=c?2:0);c=Zm(a)}}else e.fd&8&&(e.fd&2?(d=e.fd&16?6:5,e.fd&4||--d):(d=e.fd&1?3:1,e.fd&4&&--d));else a.Qa=null,null==d&&(d=a.Da);if(!Pm(a,d,b))return!1;$m(a,c);return!0}
|
||||
function Pm(a,b,c){if(null!=b&&(b!=a.Qa||c)){a.Og=0;a.Qa=b;a.xb=!1;b=a.C||(b==cm?a.za:a.da);if(b!=a.C||b.sb!=a.sb||b.gc!=a.gc){Xm(a);if(a.sb){if(!cc(a.ja,a.sb,a.gc))return!1;a.C&&(a.C.Ic=!1)}a.C=b;b.Ic=!0;a.sb=b.sb;a.gc=b.gc;if(!Xb(a.ja,b.sb,b.gc,3,b===a.A?b:null))return!1}a.W=0;a.O=a.jd;a.X=a.je;a.Ib=a.O;a.hd=bm[cm][2];b=0;if(c=bm[a.Qa])a.O=c[0],a.X=c[1],a.hd=c[2],b=c[3],a.W=c[4],4!=a.Ha&&7!=a.Ha||a.C!==a.A||3!=a.W||(7==a.A.zb[9]?a.X=43:a.W=a.nb);a.Xf=a.O*a.X|0;a.of=a.Xf/a.hd|0;a.Vb=a.of;a.ud=0;
|
||||
void 0!==b&&(a.Vb=(a.Vb<<1)+b|0,a.ud=a.Vb+b>>1);a.Ua.length&&(a.Ra=a.Ba/a.O|0,a.Ta=a.Ma/a.X|0,a.W?(b=a.Ua[a.W],c=a.Ua[a.W<<1],a.Rg&&80==a.O?c&&a.Ra>=3*c.Rc>>2&&(a.W<<=1,b=c):(c&&a.Ra>=c.Rc&&(a.W<<=1,b=c),b&&(a.Ra=b.Rc,a.Ta=b.Sc)),a.Zb=a.cc=0,b&&(a.Zb=a.O*b.Rc,a.cc=a.X*b.Sc)):(a.Ra=a.Ta=1,a.Zb=a.O,a.cc=a.X),a.Hb=a.qa.createImageData(a.Zb,a.cc),a.lb=window.document.createElement("canvas"),a.lb.width=a.Zb,a.lb.height=a.cc,a.qb=a.lb.getContext("2d"),a.le=a.me=0,a.vd=a.Ba,a.Gd=a.Ma,b=a.Ba-a.O*a.Ra,c=a.Ma-
|
||||
a.X*a.Ta,0<b&&(a.le=b>>1,a.vd-=b),0<c&&(a.me=c>>1,a.Gd-=c),b||c)&&(a.qa.fillStyle=a.wa.style.backgroundColor,a.qa.fillRect(0,0,a.Ba,a.Ma));wn(a,!0);ad(a)}return!0}function Vm(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function xn(a){a.cb=-1;a.Oa=!1;var b=a.of;if(void 0===a.ka||a.ka.length!=b)a.ka=Array(b)}function wn(a,b){b||(a.xb=!1);xn(a)}
|
||||
void 0!==b&&(a.Vb=(a.Vb<<1)+b|0,a.ud=a.Vb+b>>1);a.Ua.length&&(a.Ra=a.Ba/a.O|0,a.Ta=a.Ma/a.X|0,a.W?(b=a.Ua[a.W],c=a.Ua[a.W<<1],a.Rg&&80==a.O?c&&a.Ra>=3*c.Rc>>2&&(a.W<<=1,b=c):(c&&a.Ra>=c.Rc&&(a.W<<=1,b=c),b&&(a.Ra=b.Rc,a.Ta=b.Sc)),a.Zb=a.cc=0,b&&(a.Zb=a.O*b.Rc,a.cc=a.X*b.Sc)):(a.Ra=a.Ta=1,a.Zb=a.O,a.cc=a.X),a.Hb=a.qa.createImageData(a.Zb,a.cc),a.lb=document.createElement("canvas"),a.lb.width=a.Zb,a.lb.height=a.cc,a.qb=a.lb.getContext("2d"),a.le=a.me=0,a.vd=a.Ba,a.Gd=a.Ma,b=a.Ba-a.O*a.Ra,c=a.Ma-a.X*
|
||||
a.Ta,0<b&&(a.le=b>>1,a.vd-=b),0<c&&(a.me=c>>1,a.Gd-=c),b||c)&&(a.qa.fillStyle=a.wa.style.backgroundColor,a.qa.fillRect(0,0,a.Ba,a.Ma));wn(a,!0);ad(a)}return!0}function Vm(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function xn(a){a.cb=-1;a.Oa=!1;var b=a.of;if(void 0===a.ka||a.ka.length!=b)a.ka=Array(b)}function wn(a,b){b||(a.xb=!1);xn(a)}
|
||||
function Ym(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var k=a.Ua[a.W];k.wf&&(d=k.wf[d]);var q=g>>4&15;k.wf&&(q=k.wf[q]);e?(b*=k.Rc,c*=k.Sc,e.fillStyle=k.Me[q],e.fillRect(b,c,k.Rc,k.Sc)):(b=b*a.Ra+a.le,c=c*a.Ta+a.me,a.qa.fillStyle=k.Me[q],a.qa.fillRect(b,c,a.Ra,a.Ta));g&256&&(q=(f&15)*k.Rc,f=(f>>4)*k.Sc,e?e.drawImage(k.Ug[d],q,f,k.Rc,k.Sc,b,c,k.Rc,k.Sc):a.qa.drawImage(k.Ug[d],q,f,k.Rc,k.Sc,b,c,a.Ra,a.Ta));g&512&&(f=a.fg,g=a.ye,e?(a.ib&&a.ib!==k.Sc&&(f=f*k.Sc/a.ib|0,g=g*k.Sc/a.ib|0),e.fillStyle=k.Me[d],
|
||||
e.fillRect(b,c+f,k.Rc,g)):(a.ib&&a.ib!==a.Ta&&(f=f*a.Ta/a.ib|0,g=g*a.Ta/a.ib|0),a.qa.fillStyle=k.Me[d],a.qa.fillRect(b,c+f,a.Ra,g)))}
|
||||
function ad(a,b){if(a.ra.hc){var c=!1,d=a.C;d&&(d!==a.A?d.fd&8&&(c=!0):d.Ld&32&&(c=!0));if(c||b){if(b)xn(a);else if(void 0===a.ka)return;var e=!1;!(b||++a.Og&15)&&0<=a.Yb&&(a.Yb++,e=!0);var f=0,g=a.Xf,k=a.sb,c=k,q=c+a.gc;19<=a.Qa&&(k=c=655360,q=c+65536);if(yn(a,d)&8||d.mf&&d.mf<d.hi)d.Uf=(d.zb[12]<<8)+d.zb[13]|0,d.mf=0;var r=d.Uf;a.W&&(r<<=1);c+=r;r=a.Vb;5<=a.nb&&d.zb[19]&&d.zb[19]<<1!=d.zb[1]+1&&(a.Ib=d.zb[19]<<(a.W?1:d.zb[20]&64?3:4),r=(a.Ib*(a.X-1)+a.O)/a.hd|0,a.Qa<=cm&&(r<<=1));c+r>q&&(r=q-c,
|
||||
|
|
@ -965,13 +964,13 @@ h.Em=function(a,b,c){c&&!n(this)||m(this,a,b,c,this.da.type+".COLOR");this.da.pf
|
|||
function Bn(a,b,c,d,e){if(b.Ac<b.qh){e&&!n(a)||m(a,c,d,e,"CRTC."+b.jg[b.Ac]);b.zb[b.Ac]=d;if(12==b.Ac||13==b.Ac)yn(a,b)&1?b.Uf=(b.zb[12]<<8)+b.zb[13]|0:b.mf||(b.mf=b.hi);(9==b.Ac&&8!=b.Jg||18==b.Ac&&223==d)&&Qm(a,!0);Rm(a)}}function Cn(a,b,c){var d=b.fd;m(a,b.port+4,null,c,"MODE",d);return d}function Dn(a,b,c){var d=yn(a,b);b===a.A?(d|=b.sa&48^48,b.Ve=!1):d=(b.sa^=9)|240;b.sa=d;m(a,b.port+6,null,c,b===a.A?"STATUS1":"STATUS",d);return d}
|
||||
var Cm={948:Zl.prototype.Jl,949:Zl.prototype.Il,952:Zl.prototype.Kl,954:Zl.prototype.Ll},Dm={948:Zl.prototype.cn,949:Zl.prototype.bn,952:Zl.prototype.dn},Em={980:Zl.prototype.ol,981:Zl.prototype.nl,984:Zl.prototype.pl,985:Zl.prototype.ml,986:Zl.prototype.ql},Fm={980:Zl.prototype.Gm,981:Zl.prototype.Fm,984:Zl.prototype.Hm,985:Zl.prototype.Em},Gm={960:Zl.prototype.il,961:Zl.prototype.Hk,962:Zl.prototype.Wl,964:Zl.prototype.Ul,965:Zl.prototype.Tl,974:Zl.prototype.Cl,975:Zl.prototype.Bl},Hm={954:Zl.prototype.fk,
|
||||
960:Zl.prototype.ek,961:Zl.prototype.ek,962:Zl.prototype.en,964:Zl.prototype.on,965:Zl.prototype.nn,970:Zl.prototype.Ym,972:Zl.prototype.Xm,974:Zl.prototype.Wm,975:Zl.prototype.Vm,986:Zl.prototype.fk},Im={963:Zl.prototype.Xl,966:Zl.prototype.vl,967:Zl.prototype.wl,969:Zl.prototype.ul,970:Zl.prototype.Yl,972:Zl.prototype.Zl},Jm={963:Zl.prototype.qn,966:Zl.prototype.Mm,967:Zl.prototype.Nm,968:Zl.prototype.Om,969:Zl.prototype.Lm};
|
||||
Sa(function(){for(var a=ob(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=kb(c),e=window.document.createElement("canvas");if(void 0===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());c.appendChild(e);var f=window.document.createElement("textarea");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Zl(d,e,g,f,c);mb(d,c)}});
|
||||
Sa(function(){for(var a=ob(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=kb(c),e=document.createElement("canvas");if(void 0===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());c.appendChild(e);var f=document.createElement("textarea");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Zl(d,e,g,f,c);mb(d,c)}});
|
||||
function En(a){this.Y=a.adapter;switch(this.Y){case 1:this.O=956;this.P=7;break;case 2:this.O=888;this.P=7;break;case 3:this.O=632;this.P=5;break;default:Ba("Unrecognized parallel adapter #"+this.Y);return}this.A=this.C=null;Xa.call(this,"ParallelPort",a,En,4194304);a=a.binding;"console"==a?this.C="":lb(this,a,Fn)}gb(En);var Fn="buffer";h=En.prototype;h.Ub=function(a,b,c){switch(b){case Fn:return this.ya[b]=this.A=c,!0}return!1};
|
||||
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");lc(b,this,Gn,this.O);pc(b,this,Hn,this.O);vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){In(this)};h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.ia;c[b++]=this.ec;c[b]=this.yf;cf(a,0,c);return a.data()};h.restore=function(a){return In(this,a[0])};
|
||||
function In(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.ia=b[c++];a.ec=b[c++];a.yf=b[c];return!0}h.xl=function(a,b){var c=this.ia;m(this,a,null,b,"DATA",c);return c};h.Vl=function(a,b){var c=this.ec;m(this,a,null,b,"STAT",c);return c};h.tl=function(a,b){var c=this.yf;m(this,a,null,b,"CTRL",c);return c};
|
||||
h.Pm=function(a,b,c){m(this,a,b,c,"DATA");this.ia=b;this.ec|=64;if(this.A)8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0;else if(null!=this.C){if(10==b||1024<=this.C.length)this.S(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.ec&=-65);Jn(this)};h.Km=function(a,b,c){m(this,a,b,c,"CTRL");this.yf=b;Jn(this)};function Jn(a){a.R&&a.P&&(a.yf&16&&!(a.ec&64)?Yf(a.R,a.P):Xf(a.R,a.P))}
|
||||
var Gn={0:En.prototype.xl,1:En.prototype.Vl,2:En.prototype.tl},Hn={0:En.prototype.Pm,2:En.prototype.Km};Sa(function(){for(var a=ob(window.document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new En(d);mb(d,c)}});
|
||||
var Gn={0:En.prototype.xl,1:En.prototype.Vl,2:En.prototype.tl},Hn={0:En.prototype.Pm,2:En.prototype.Km};Sa(function(){for(var a=ob(document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new En(d);mb(d,c)}});
|
||||
function Kn(a){this.za=a.adapter;switch(this.za){case 1:this.ta=1016;this.ka=4;break;case 2:this.ta=760;this.ka=3;break;default:Ba("Unrecognized serial adapter #"+this.za);return}this.O=this.W=null;this.Ja=a.tabSize;this.Ha=a.charBOL;this.X=0;Xa.call(this,"SerialPort",a,Kn,8388608);a=a.binding;"console"==a?this.W="":lb(this,a,Ln)}gb(Kn);var Ln="buffer";h=Kn.prototype;h.zi=function(a,b){return a==this.ce?(this.Y=b,this):null};
|
||||
h.Ub=function(a,b,c){var d=this;switch(b){case Ln:return this.ya[b]=this.O=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),Mn(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;Mn(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Hb(a,"ChipSet");lc(b,this,Nn,this.ta);pc(b,this,On,this.ta);vb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){Pn(this)};
|
||||
|
|
@ -981,13 +980,13 @@ h.Fl=function(a,b){var c=this.C;m(this,a,null,b,"LCR",c);return c};h.Hl=function
|
|||
h.pn=function(a,b,c){m(this,a,b,c,this.C&128?"DLL":"THR");if(this.C&128)this.da=this.da&-256|b;else{this.Da=b;this.A&=-97;if(this.O)13==b?this.X=0:8==b?(this.O.value=this.O.value.slice(0,-1),0<this.X&&this.X--):(a=String.fromCharCode(b),c=32<=b?1:0,9==b&&(b=this.Ja||8,c=b-this.X%b,this.Ja&&(a=oa("",c))),this.Ha&&!this.X&&c&&(a=String.fromCharCode(this.Ha)+a),this.O.value+=a,this.O.scrollTop=this.O.scrollHeight,this.X+=c),b=!0;else if(null!=this.W){if(10==b||1024<=this.W.length)this.S(this.W),this.W=
|
||||
"";10!=b&&(this.W+=String.fromCharCode(b));b=!0}else b=!1;b&&(this.A|=96)}};h.Zm=function(a,b,c){m(this,a,b,c,this.C&128?"DLM":"IER");this.C&128?this.da=this.da&255|b<<8:this.qa=b};h.$m=function(a,b,c){m(this,a,b,c,"LCR");this.C=b};
|
||||
h.an=function(a,b,c){var d=this.P;m(this,a,b,c,"MCR");this.P=b;this.Y&&(d^b)&3&&(a=this.Y,b=this.P,(c=3==(b&3))?a.Ic||(d=!1,a.P&2||(a.reset(),qb(a,"serial mouse reset"),d=!0),a.P&1||(qb(a,"serial mouse ID requested"),d=!0),d&&(Mn(a.R,[77,77]),qb(a,"serial mouse ID sent")),Rn(a),a.Ic=c):a.Ic&&(qb(a,"serial mouse inactive"),Sn(a),a.Ic=c),a.P=b)};
|
||||
var Nn={0:Kn.prototype.Sl,1:Kn.prototype.Dl,2:Kn.prototype.El,3:Kn.prototype.Fl,4:Kn.prototype.Hl,5:Kn.prototype.Gl,6:Kn.prototype.Ml},On={0:Kn.prototype.pn,1:Kn.prototype.Zm,3:Kn.prototype.$m,4:Kn.prototype.an};Sa(function(){for(var a=ob(window.document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Kn(d);mb(d,c)}});function Tn(a){Xa.call(this,"Mouse",a,Tn,16777216);if(this.ta=a.serial)this.wa="SerialPort";this.qa=this.la=this.Ic=!1;this.C=[];this.A=[];vb(this)}gb(Tn);var Mm=0;h=Tn.prototype;
|
||||
var Nn={0:Kn.prototype.Sl,1:Kn.prototype.Dl,2:Kn.prototype.El,3:Kn.prototype.Fl,4:Kn.prototype.Hl,5:Kn.prototype.Gl,6:Kn.prototype.Ml},On={0:Kn.prototype.pn,1:Kn.prototype.Zm,3:Kn.prototype.$m,4:Kn.prototype.an};Sa(function(){for(var a=ob(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Kn(d);mb(d,c)}});function Tn(a){Xa.call(this,"Mouse",a,Tn,16777216);if(this.ta=a.serial)this.wa="SerialPort";this.qa=this.la=this.Ic=!1;this.C=[];this.A=[];vb(this)}gb(Tn);var Mm=0;h=Tn.prototype;
|
||||
h.Jc=function(a,b,c,d){this.ia=a;this.ja=b;this.M=c;this.ma=d;for(b=null;b=Hb(a,"Video",b);)this.C.push(b)};h.lc=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.wa&&!this.R){for(var c=null;(c=Hb(this.ia,this.wa,c))&&(!c.zi||!(this.R=c.zi(this.ta,this))););if(this.R)for(this.A=[],c=0;c<this.C.length;c++){var d;d=this.C[c];d.Y=this;(d=d.ia)&&this.A.push(d)}else Ba(this.id+": "+this.wa+" "+this.ta+" unavailable")}this.Ic?Rn(this):Sn(this)}return!0};
|
||||
h.kc=function(a){return a?this.save():!0};h.reset=function(){Un(this)};h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.Ic;c[b++]=this.O;c[b++]=this.Y;c[b++]=this.W;c[b++]=this.X;c[b++]=this.da;c[b++]=this.ka;c[b]=this.P;cf(a,0,c);return a.data()};h.restore=function(a){return Un(this,a[0])};function Un(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Ic=d;a.O=b[c++];a.Y=b[c++];a.W=b[c++];a.X=b[c++];a.da=b[c++];a.ka=b[c++];a.P=b[c];return!0}h.Sf=function(a){this.la=a};
|
||||
function Rn(a){if(!a.qa)for(var b=0;b<a.A.length;b++)Vn(a,a.A[b])&&(a.qa=!0)}function Sn(a){if(a.qa)for(var b=0;b<a.A.length;b++){var c=a.A[b];c&&(c.style.cursor="auto")}}function Vn(a,b){return b?(b.addEventListener("mousemove",function(b){Wn(a,b)},!1),b.addEventListener("mousedown",function(b){Wn(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Wn(a,b,!1)},!1),b.style.cursor="none",!0):!1}
|
||||
function Wn(a,b,c){if(void 0!==c){var d;!(d=!1!==a.la)&&(d=a.C.length)&&(d=a.C[0],d=d.Pg?d.ze(!0):!1);d||(a.la=null);a.he(b.button,c)}else{if(0>a.O||0>a.Y)a.O=b.clientX,a.Y=b.clientY;a.la?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.O,d=b.clientY-a.Y);a.O=b.clientX;a.Y=b.clientY;a.Ef(c,d,a.O,a.Y)}}
|
||||
h.he=function(a,b){if(this.Ic&&this.M&&this.M.ra.Ob){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case Mm:this.da!=b&&(this.da=b,Xn(this,c));break;case 2:this.ka!=b&&(this.ka=b,Xn(this,c))}}};h.Ef=function(a,b,c,d){this.Ic&&this.M&&this.M.ra.Ob&&(a||b)&&(this.W=a,this.X=b,Xn(this,null,c,d))};
|
||||
function Xn(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&qb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);Mn(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=ob(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Tn(d);mb(d,c)}});
|
||||
function Xn(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&qb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);Mn(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=ob(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Tn(d);mb(d,c)}});
|
||||
function Yn(a,b,c){Xa.call(this,"Disk",{id:a.ti+".disk"+l(++Zn,4)},Yn,2097152);this.controller=a;this.ia=a.ia;this.ma=a.ma;this.C=b;this.O=b.name;this.$e=b.$e;this.qg=this.P=!1;$n(this,c,b.Nb,b.yb,b.ob,b.$a);this.W=[];this.ka=[];this.ja=null;this.qa=0;this.la=!1;vb(this)}var Zn=0;gb(Yn);function ao(a,b,c,d,e,f){this.Ga=a;this.nc=c;this.Yg=d;this.Di=e;this.te=f}var bo=[0,2],co=[24,2],eo=[60,4],fo=[0,2],go=[4,2],ho=[6,2],io=[28,2],jo=[32,2],ko=[34,2],lo=[38,2],mo=[44,4],no=[50,2];
|
||||
function oo(a,b,c){var d;c=c||2;var e=b&511,f=po(a.Ga,a.te[b>>9]);if(f){if(e+c<=f.length)return qo(a.Ga,f,e,c);for(e=d=0;c--;)d|=oo(a,b++,1)<<e,e+=8}return d}function ro(a,b,c){return oo(a,b[0]+(c||0),b[1])}function so(a,b,c){for(var d=0;!c||b<c;){var e=oo(a,b,1);if(!e)break;var f;f=a;var g=b+1,k=e,q="";for(k||(k=-1);k--;){var r=oo(f,g++,1);if(!r)break;q+=String.fromCharCode(r)}f=q;if(!f)break;b+=1+e;if(d){if(e=oo(a,b),g=a.A[e])g=g[0],a.Ad[g]&&a.Ad[g].se[e].push(f)}else c||(a.cg=f);b+=2;d++}}
|
||||
ao.prototype.Ti=function(a,b){var c=null;if(this.Ad)for(var d in this.Ad){var e=this.Ad[d];if(a>=e.ii&&a<=e.bk){d=a-=e.ii;var f,g;for(g in e.se){var k=e.se[g],q=a-k[0];if(!q){c=this.cg+"!"+k[1];break}b&&0<q&&q<d&&(f=k,d=q)}!c&&f&&(c=this.cg+"!"+f[1]+"+"+ia(d));break}}return c||this.nc+"+"+("0x"+l(a))};h=Yn.prototype;h.Jc=function(a,b,c,d){this.ma=d};h.lc=function(a,b){b||!this.qg||this.P||(vb(this,!1),this.load(this.O,this.Y,null,this.Uk,this));return!0};h.Uk=function(){vb(this,!0)};
|
||||
|
|
@ -1022,7 +1021,7 @@ function Fo(a){Xa.call(this,"FDC",a,Fo,524288);this.dmaRead=this.zk;this.dmaWrit
|
|||
h.Ub=function(a,b,c){var d=this;switch(b){case "listDisks":return this.ya[b]=c,c.onchange=function(){var a=d.ya.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){Ba("FDC option error: "+k.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.ya[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Ho(d,a)},!0;
|
||||
case "loadDrive":return this.ya[b]=c,c.onclick=function(){var a=d.ya.listDisks;a&&Io(d,a.options[a.selectedIndex].text,a.value)},!0;case "mountDrive":return this.qa?(this.ya[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Io(d,ja(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
|
||||
h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.ia=a;this.R=Hb(a,"ChipSet");if((this.W=Jo(this.ia,"autoMount")||this.W)&&"string"==typeof this.W)try{this.W=eval("("+this.W+")")}catch(e){Ba("FDC auto-mount error: "+e.message+" ("+this.W+")"),this.W=null}Ko(this);lc(b,this,Lo);pc(b,this,Mo);this.qa&&No(this,"Local Disk","?");No(this,"Remote Disk","??");Oo(this)||vb(this)};
|
||||
h.lc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ia.gh){this.C=[];for(var c=0;c<this.A.length;c++)Po(this,c,!0);Oo(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ya.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.la;d++){var e=window.document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.la&&(c.value="0",Ho(this,0))}}return!0};h.kc=function(a){return a?this.save():!0};
|
||||
h.lc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ia.gh){this.C=[];for(var c=0;c<this.A.length;c++)Po(this,c,!0);Oo(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ya.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.la;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.la&&(c.value="0",Ho(this,0))}}return!0};h.kc=function(a){return a?this.save():!0};
|
||||
h.reset=function(){Ko(this)};
|
||||
h.save=function(){var a=new bf(this),b=0,c=[];c[b++]=this.kb;c[b++]=0;c[b++]=this.sa;c[b++]=this.Y;c[b++]=this.O;c[b++]=this.P;c[b++]=this.da;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var k=e++,q=this.A[g],r=0,x=[];x[r++]=q.Gb;x[r++]=[q.name,q.Nb,q.yb,q.ob,q.$a,q.$e,q.yg,q.Kf,q.Lf];x[r++]=q.mb;x[r++]=q.ee+100;x[r++]=q.Wb;x[r++]=q.Cb;x[r++]=q.fe;x[r++]=q.Mb;x[r++]=q.jb;x[r++]=q.Ye;x[r++]=q.jk;x[r]=q.Je;f[k]=x}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.Ga&&Qo(this,f.Je,f.Ga);c[d]=
|
||||
this.C;c[b++]=this.X;c[b]=this.mc;cf(a,0,c);return a.data()};h.restore=function(a){return Ko(this,a[0])};
|
||||
|
|
@ -1032,9 +1031,9 @@ x[B++];g.jb=x[B++];g.tb=null;g.Ga||(g.Je="");y=x[B++];102==y&&(y=!1);if("boolean
|
|||
h.kk=function(a,b,c){if(a.Ga){var d=a.Ga.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Wb=Math.floor(b/f),b%=f,a.mb=Math.floor(b/e),a.Cb=b%e+1,a.Mb=c*d[3],a.Gb=0,!0}return!1};
|
||||
function Oo(a,b){b||(a.ka=0);if(a.W)for(var c in a.W){var d=a.W[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ya.listDisks)&&f.options)for(var g=0;g<f.options.length;g++)if(f.options[g].value==e){f=f.options[g].innerText;break a}f=ja(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.A.length)){!Ro(a,g,f,e,!0)&&b&&vb(a,!1);continue}a.Va("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.ka}
|
||||
function Io(a,b,c,d){var e,f=a.ya.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Va('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ja(c);a.S("Attempting to load "+c+' as "'+b+'"')}for(a.S("loading disk "+c+"...");Ro(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,k=
|
||||
void 0,k=0;k<f.C.length;k++)if(f.C[k][1]==g){f.C.splice(k,1);break}Po(a,e,!1,!0)}}else Po(a,e);else a.Va("Nothing to load")}function Ro(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Je!=d){Po(a,b,e,!0);if(g.cd)return a.Va("Drive "+b+" busy"),!0;g.cd=!0;e&&(g.we=!0,a.ka++,n(a)&&qb(a,"loading diskette '"+c+"'"));g.Ye=!!f;(new Yn(a,g,"preload")).load(c,d,f,a.Ji);return!1}return!0}
|
||||
void 0,k=0;k<f.C.length;k++)if(f.C[k][1]==g){f.C.splice(k,1);break}Po(a,e,!1,!0)}}else Po(a,e);else a.Va("Unable to load the selected drive")}function Ro(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Je!=d){Po(a,b,e,!0);if(g.cd)return a.Va("Drive "+b+" busy"),!0;g.cd=!0;e&&(g.we=!0,a.ka++,n(a)&&qb(a,"loading diskette '"+c+"'"));g.Ye=!!f;(new Yn(a,g,"preload")).load(c,d,f,a.Ji);return!1}return!0}
|
||||
h.Ji=function(a,b,c,d,e){var f;a.cd=!1;b&&(f=b.info(),b&&f[0]>a.Nb||f[1]>a.yb)&&(this.Va('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.kb)),b=null);b?(a.Ga=b,a.jk=c,a.Je=d,So(this,c,d,b),f=b.info(),this.X|=128,this.Va('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.kb),a.we||e),a.yg=f[0],a.Kf=f[1],a.Lf=f[2]):a.Ye=!1;a.we&&(a.we=!1,--this.ka||vb(this));Ho(this,a.kb)};
|
||||
function No(a,b,c){if((a=a.ya.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=window.document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
|
||||
function No(a,b,c){if((a=a.ya.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
|
||||
function Ho(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.ya.listDisks,e=a.ya.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.Ye?"?":c.Je,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Po(a,b,c,d){var e=a.A[b];e.Ga&&(Qo(a,e.Je,e.Ga),e.jk="",e.Je="",e.Ga=null,e.Ye=!1,a.X|=128,d||a.Va("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Ho(a,b))}
|
||||
function So(a,b,c,d){var e;for(e=0;e<a.C.length;e++)if(a.C[e][1]==c){d.restore(a.C[e][2]);return}a.C[e]=[b,c,[]]}function Qo(a,b,c){var d;for(d=0;d<a.C.length;d++)if(a.C[d][1]==b){a.C[d][2]=c.save();break}}h.Sm=function(a,b,c){m(this,a,b,c,"OUTPUT");b&4?this.da&4||this.da&8&&this.R&&Yf(this.R,6):Ko(this);this.da=b};h.Al=function(a,b){m(this,a,null,b,"STATUS",this.sa);return this.sa};
|
||||
h.yl=function(a,b){var c=0;this.O<this.P&&(c=this.Y[this.O]);this.da&8&&this.R&&Xf(this.R,6);n(this)&&m(this,a,null,b,"DATA["+this.O+"]",c);++this.O>=this.P&&(this.sa&=-81,this.O=this.P=0);return c};
|
||||
|
|
@ -1045,7 +1044,7 @@ d.mb=c>>2&1,c=To(this),d.Wb+=c-d.ee,0>d.Wb&&(d.Wb=0),d.Wb>=d.Nb&&(d.Wb=d.Nb-1),d
|
|||
function Wo(a,b,c,d,e,f,g,k){Uo(a);Vo(a,b.kb|b.mb<<2|b.Gb&255);Vo(a,(b.Gb&65280)>>>8);Vo(a,(b.Gb&16711680)>>>16);var q=0;if(e!=b.Wb||f!=b.mb)q=g=1;c&128&&(f^=q,d||(q=0));Vo(a,e+q);Vo(a,f);Vo(a,g);Vo(a,k)}function To(a){var b=a.Y[a.O];a.O++;return b}function Uo(a){a.O=a.P=0}function Vo(a,b){a.Y[a.P++]=b}
|
||||
h.zk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Gb&&a.Ga){do{if(a.tb&&(e=a.jb,0<=(b=a.Ga.read(a.tb,a.jb++)))){d=a.tb;break}a.tb=a.Ga.seek(a.Wb,a.mb,a.Cb);if(!a.tb){a.Gb=1088;break}a.jb=0;Xo(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};h.Ak=function(a,b){return void 0!==b&&0<=b?Yo(a,b):-1};
|
||||
h.Qk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Gb)c=-1;else{a.ld[a.Te++]=c;if(a.Te==a.ld.length){a.Wb=a.ld[0];a.mb=a.ld[1];a.Cb=a.ld[2];a.Mb=128<<a.ld[3];for(var d=a.Te=0;d<a.Mb;d++)if(0>Yo(a,a.Ai)){c=-1;break a}a.mg++}a.mg>=a.fe&&(c=-1)}else c=-1;return c};function Yo(a,b){if(a.Gb||!a.Ga)return-1;do{if(a.tb&&a.Ga.write(a.tb,a.jb++,b))break;a.tb=a.Ga.seek(a.Wb,a.mb,a.Cb);if(!a.tb){a.Gb=8256;b=-1;break}a.jb=0;Xo(a)}while(1);return b}
|
||||
function Xo(a){a.Cb++;a.Cb>=a.Lf+1&&(a.Cb=1,a.mb++,a.mb>=a.Kf&&(a.mb=0,a.Wb++))}var Lo={1012:Fo.prototype.Al,1013:Fo.prototype.yl,1015:Fo.prototype.zl},Mo={1010:Fo.prototype.Sm,1013:Fo.prototype.Rm,1015:Fo.prototype.Qm};Sa(function(){for(var a=ob(window.document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Fo(d);mb(d,c)}});
|
||||
function Xo(a){a.Cb++;a.Cb>=a.Lf+1&&(a.Cb=1,a.mb++,a.mb>=a.Kf&&(a.mb=0,a.Wb++))}var Lo={1012:Fo.prototype.Al,1013:Fo.prototype.yl,1015:Fo.prototype.zl},Mo={1010:Fo.prototype.Sm,1013:Fo.prototype.Rm,1015:Fo.prototype.Qm};Sa(function(){for(var a=ob(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Fo(d);mb(d,c)}});
|
||||
function Zo(a){Xa.call(this,"HDC",a,Zo,1048576);this.dmaRead=this.Ck;this.dmaWrite=this.Dk;this.dmaWriteBuffer=this.Rk;this.dmaWriteFormat=this.Sk;this.Ja=[];if(a.drives)try{this.Ja=eval("("+a.drives+")")}catch(b){Ba("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.qa="at"==a.type}gb(Zo);
|
||||
var $o=["XTC","ATC","COMPAQ"],ap=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
|
||||
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];h=Zo.prototype;h.Ub=function(){return!1};
|
||||
|
|
@ -1077,7 +1076,7 @@ function up(a,b,c){b.errorCode=4;b.Pe&&b.Pe.length==b.Mb||(b.Pe=Array(b.Mb));b.j
|
|||
function kp(a,b,c){var d=-1,e=null,f=0;if(a.errorCode)return b&&b(d,!1,e,f),d;var g=!1!==c?1:0;if(a.tb&&(f=a.jb,d=a.Ga.read(a.tb,a.jb),a.jb+=g,0<=d))return e=a.tb,b&&b(d,!1,e,f),d;if(b){if(a.Ga)return a.Ga.seek(a.be,a.mb,a.Cb+a.lg,!1,function(c,q){(a.tb=c)?(e=c,f=a.jb=0,vp(a),d=a.Ga.read(a.tb,a.jb),a.jb+=g):a.errorCode=20;b(d,q,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d}
|
||||
function np(a,b){if(a.errorCode)return-1;do{if(a.tb&&a.Ga.write(a.tb,a.jb++,b))break;a.Ga&&a.Ga.seek(a.be,a.mb,a.Cb+a.lg,!0,function(b){a.tb=b});if(!a.tb){a.errorCode=20;b=-1;break}a.jb=0;vp(a)}while(1);return b}function vp(a){a.Cb++;var b=1-a.lg;a.Cb>=a.ob+b&&(a.Cb=b,a.mb++,a.mb>=a.yb&&(a.mb=0,a.be++))}h.cm=function(){var a=this.M.H&255;!(this.M.F>>8)&&128<a&&(this.ta=a-128);return!0};h.dm=function(){var a;(a=this.M.F>>8||!this.R)||(a=!(this.R.vc[0].Cd&64));return a?!0:!1};
|
||||
var cp={800:Zo.prototype.am,801:Zo.prototype.bm,802:Zo.prototype.$l},bp={496:Zo.prototype.Ek,497:Zo.prototype.hl,498:Zo.prototype.jl,499:Zo.prototype.kl,500:Zo.prototype.fl,501:Zo.prototype.el,502:Zo.prototype.gl,503:Zo.prototype.ll},ep={800:Zo.prototype.rn,801:Zo.prototype.un,802:Zo.prototype.tn,803:Zo.prototype.sn,807:Zo.prototype.ji,811:Zo.prototype.ji,815:Zo.prototype.ji},dp={496:Zo.prototype.ym,497:Zo.prototype.Dm,498:Zo.prototype.Bm,499:Zo.prototype.Cm,500:Zo.prototype.xm,501:Zo.prototype.wm,
|
||||
502:Zo.prototype.zm,503:Zo.prototype.vm,1014:Zo.prototype.Am};Sa(function(){for(var a=ob(window.document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Zo(d);mb(d,c)}});
|
||||
502:Zo.prototype.zm,503:Zo.prototype.vm,1014:Zo.prototype.Am};Sa(function(){for(var a=ob(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new Zo(d);mb(d,c)}});
|
||||
function wp(a){Xa.call(this,"Debugger",a,wp);this.wa=this.Ha=this.ka=0;this.Ra=4;this.Ja=5;this.Fa=1048575;this.da=xp(this);this.Ib=xp(this);this.W=-1;this.O=[];this.Ma=!1;this.Ba=xp(this);this.C=[];this.Da={};this.A=this.za=this.la=[];yp(this);this.Ua=0;zp(this);this.ib=[];Ap(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return Bp(b,a)}):void 0===global.$&&(global.$=function(a){return Bp(b,a)})}gb(wp);
|
||||
var Cp={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Dp=[26,28,40,42,109],Ep={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
|
||||
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Fp="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FS: GS: HLT IBTS IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSHF PUSHA PUSH RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XBTS XCHG XLAT XOR".split(" "),
|
||||
|
|
@ -1200,7 +1199,7 @@ tn=!1,nb=xp(a,v(a.M),a.M.Ca.ga);do switch(yg=!1,a.Wa(nb)){case 38:case 46:case 5
|
|||
(a.P=de,iq(a,nb,1))}while(yg);a.P?(a.Od(a.A,nb,!0),a.Ie()||(a.M.Vc(),a.P=0)):ar(a,sn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}yq(a,g);break;case "t":ar(a,g[0],g[1]);break;case "u":zq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Wq(a,b.substr(3))||(d=!1);break}a.S("PCjs version 1.20.9 ("+a.M.na+",RELEASE,NOPREFETCH"+(yb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Ye;void 0!==g[3]&&(Ye=+g[3]);switch(g[2]){case "int":a.M.ba.ff=
|
||||
Ye;break;case "start":a.M.ba.Gf=Ye;break;case "stop":a.M.ba.hf=Ye;break;default:a.S("unknown cs option");break a}void 0!==Ye&&Sc(a.M);a.S("checksums "+(a.M.ra.We?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(bd(a.M,+g[2])||a.S("warning: using 1x multiplier, previous target not reached"));a.S("target speed: "+(a.M.ba.Ce.toFixed(2)+"Mhz")+" ("+a.M.ba.Ud+"x)");break;default:a.S("unknown option: "+g[1])}else a.S("execution options:"),a.S("\tcs int #\tset checksum cycle interval to #"),a.S("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.S("\tcs stop #\tset checksum cycle stop count to #"),a.S("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Zq(a,b.substr(1));break}var Ze="commands:",yi;for(yi in Ep)Ze+="\n"+oa(yi,7)+Ep[yi];Mf(a)||(Ze+="\nnote: frequency/history disabled if no exec breakpoints");a.S(Ze);break;default:a.S("unknown command: "+b),d=!1}}}catch(vn){a.S("debugger error: "+(vn.stack||vn.message)),d=!1}return d}function Bp(a,b,c){b=rq(a,b,c);for(var d in b)if(!Fq(a,b[d]))return!1;return!0}
|
||||
Sa(function(){for(var a=ob(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new wp(d);mb(d,c)}});function bf(a,b,c){this.id=a.id;this.key=cr(a,b,c);this.ma=a.ma;dr(this,a.wk)}function cr(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}
|
||||
Sa(function(){for(var a=ob(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=kb(c),d=new wp(d);mb(d,c)}});function bf(a,b,c){this.id=a.id;this.key=cr(a,b,c);this.ma=a.ma;dr(this,a.wk)}function cr(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}
|
||||
bf.prototype={constructor:bf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Fa()&&(a=Ga(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){dr(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 dr(a,b){a[a.id]={};b&&cf(a,"parms",b);a.A=!1}function er(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function fr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function gr(a,b){return a[a.id][b]||null}function cf(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function hr(a,b,c){Xa.call(this,"Computer",a,hr,67108864);this.ra.hc=!1;this.W=b;this.Y=Jo(this,"autoPower",a);this.C=0;this.la=a.busWidth||a.buswidth;this.Oc=ir;this.O=null;this.P=this.ka=!1;this.qa=Jo(this,"url")||"";this.ta=(Math.random()+.1).toString(36).substr(2,12);this.A=jr(this);if(this.M=jb("CPU",this.id)){this.ma=jb("Debugger",this.id);this.ja=new Ob({id:this.ti+".bus",buswidth:this.la},this.M,this.ma);var d,e=hb(this.id);if((this.Xd=jb("Panel",this.id))&&this.Xd.Af)for(b=0;b<e.length;b++)d=
|
||||
|
|
@ -1219,12 +1218,12 @@ h.Ub=function(a,b,c){var d=this;switch(b){case "power":return this.ya[b]=c,c.onc
|
|||
function(){var a=jr(d,!0);if(a){var b=!!(d.Oc&&!d.Eg||d.X),c=br(d,b);b?pr(d,a,c):d.Va("Resume disabled, machine state not saved")}},!0}return!1};function jr(a,b){var c=a.A;c||(c=Ga("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=qr(a,c))||a.Va("The user ID is invalid."))):b&&a.Va("Browser local storage is not available"));return c}
|
||||
function qr(a,b){a.A=null;var c=za(Aa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Ha("user",c.data),a.A=c.data)}catch(e){Ba(e.message+" ("+d+")")}return a.A}
|
||||
function pr(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cr(a,kr);d.data=c;b=za(Aa()+"/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.Va("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.Va(c),Ha("user",""),a.A=null)}}
|
||||
function Hb(a,b,c){a=hb(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}Sa(function(){for(var a=ob(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=kb(c),c=ob(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=kb(f),g=new hr(g,d,!0);mb(g,f);g.Y&&lr(g,g.Wf)}});Na.show.push(function(){for(var a=ob(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.tk&&!c.ra.hc&&c.Wf(-1)}});
|
||||
Na.exit.push(function(){for(var a=ob(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.ra.hc&&br(c,!(!c.Oc||c.Eg),!0)}});var rr=0;function sr(a,b,c,d,e,f){e("Loading "+a+"...");za(a,!0,null,null,function(g,k,q){q?(k||(k="unable to load "+a+" ("+q+")"),f(k,null)):tr(k,a,b,c,d,e,f)})}
|
||||
function Hb(a,b,c){a=hb(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}Sa(function(){for(var a=ob(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=kb(c),c=ob(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=kb(f),g=new hr(g,d,!0);mb(g,f);g.Y&&lr(g,g.Wf)}});Na.show.push(function(){for(var a=ob(document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.tk&&!c.ra.hc&&c.Wf(-1)}});
|
||||
Na.exit.push(function(){for(var a=ob(document,"pcjs","computer"),b=0;b<a.length;b++){var c=kb(a[b]);(c=jb("Computer",c.id))&&c.ra.hc&&br(c,!(!c.Oc||c.Eg),!0)}});var rr=0;function sr(a,b,c,d,e,f){e("Loading "+a+"...");za(a,!0,null,null,function(g,k,q){q?(k||(k="unable to load "+a+" ("+q+")"),f(k,null)):tr(k,a,b,c,d,e,f)})}
|
||||
function tr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+k+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(k?' url="'+k+'"':""))}k=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(k=new window.ActiveXObject("Microsoft.XMLDOM"),
|
||||
k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(B){k=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?Dr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Dr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Dr(a,b,c)}})}else c(a,null)}
|
||||
function Er(a,b,c,d){function e(a){if(void 0===k){var b=g&&ob(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--rr||Ua(!0));q=!1}var g,k,q=!0;rr++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--rr||Ua(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
|
||||
window.document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,window.document))?g.parentNode?(g.parentNode.replaceChild(r,g),--rr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};k?sr(c,null,null,!1,e,q):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?sr(b,a,d,!0,e,r):tr(b,null,a,d,!1,e,r)}else f("missing machine element: "+
|
||||
function Er(a,b,c,d){function e(a){if(void 0===k){var b=g&&ob(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=na(a))}function f(a){e("Error: "+a);q&&(--rr||Ua(!0));q=!1}var g,k,q=!0;rr++;try{if(g=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--rr||Ua(!0)):f("transformNodeToObject failed")}else document.implementation&&
|
||||
document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(r,g),--rr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};k?sr(c,null,null,!1,e,q):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?sr(b,a,d,!0,e,r):tr(b,null,a,d,!1,e,r)}else f("missing machine element: "+
|
||||
a)}catch(x){f(x.message)}return q}window.embedPC=function(a,b,c,d){Ua(!1);return Er(a,b,c,d)};window.enableEvents=Ua;window.sendEvent=Wa;})();
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ function Fa(a){if(Aa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){ra("An unexp
|
|||
function Ia(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Ch=b.comment;this.Dj=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.sh=this.id.substr(0,b),this.mf=this.id.substr(b+1)):this.mf=this.id;this[a]=c;this.ja={me:!1,Nc:!1,kg:!1,Qb:!1,Yc:!1};this.Ef=null;this.ja.Yc=!1;this.qa={};this.Ta=null;Ja[Ja.length]=this}var Ka=void 0,La={};
|
||||
if(window){Ka||(Ka=window.location.search.substr(1));for(var Ma,Na=/\+/g,Oa=/([^&=]+)=?([^&]*)/g;Ma=Oa.exec(Ka);)La[decodeURIComponent(Ma[1].replace(Na," "))]=decodeURIComponent(Ma[2].replace(Na," "))}function Pa(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 Qa(a,b){b||(b=Ia);a.prototype=Pa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var Ja=[];function Ra(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ja.length;b++){var d=Ja[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Sa(a,b){if(void 0!==a){var c;b&&0<(c=b.indexOf("."))&&(a=b.substr(0,c+1)+a);for(c=0;c<Ja.length;c++)if(Ja[c].id===a)return Ja[c]}return null}
|
||||
function Ta(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function Ua(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){ra(c.message+" ("+a+")")}return b}function Va(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Ta(d,a.id))&&(b=d.qa[b])&&a.Eb(null,c,b))}
|
||||
window&&!window.document.ELEMENT_NODE&&(window.document.ELEMENT_NODE=1);function Wa(a,b){for(var c=Xa(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,k=0;k<e.length;k++){var l=e[k];if(l.nodeType===window.document.ELEMENT_NODE){var p=l.getAttribute("class");if(p)for(var q=p.split(" "),w=0;w<q.length;w++)switch(p=q[w],p){case "pcjs-binding":(p=Ua(l))&&p.binding&&a.Eb(p.type,p.binding,l,p.value),w=q.length}}}}
|
||||
function Ta(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<Ja.length;d++)if(c)c==Ja[d]&&(c=null);else if(!(a!=Ja[d].type||b&&Ja[d].id.indexOf(b)))return Ja[d]}return null}function Ua(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){ra(c.message+" ("+a+")")}return b}function Va(a,b,c){var d;b&&(void 0===d&&(d="Panel"),(d=Ta(d,a.id))&&(b=d.qa[b])&&a.Eb(null,c,b))}document&&!document.ELEMENT_NODE&&(document.ELEMENT_NODE=1);
|
||||
function Wa(a,b){for(var c=Xa(b.parentNode,"pcjs-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,k=0;k<e.length;k++){var l=e[k];if(l.nodeType===document.ELEMENT_NODE){var p=l.getAttribute("class");if(p)for(var q=p.split(" "),w=0;w<q.length;w++)switch(p=q[w],p){case "pcjs-binding":(p=Ua(l))&&p.binding&&a.Eb(p.type,p.binding,l,p.value),w=q.length}}}}
|
||||
function Xa(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}
|
||||
Ia.prototype={constructor:Ia,parent:null,toString:function(){return this.name?this.name:this.id||this.type},Eb:function(a,b,c){switch(b){case "clear":return this.qa[b]||(this.qa[b]=c,c.onclick=function(a){return function(){a.qa.print&&(a.qa.print.value="")}}(this)),!0;case "print":return this.qa[b]||(this.ig=this.qa[b]=c,c.value="",this.cc=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.Ka=function(a,b,c){this.cc(a,"notice",c)}),!0;default:return!1}},log:function(){},cc:function(){},status:function(a){this.cc(this.mf+": "+a)},Ka:function(a,b){b||ra(a)},Tb:function(){return this.ja.Qb=!0},Sb:function(a,b){b&&(this.ja.Qb=!1);return!0}};function Ya(a,b){if(a.ja.kg)return a.ja.Nc&&(a.ja.Nc=!1),a.ja.kg=!1;if(a.ja.Yc)return a.cc(a.toString()+" error"),!1;a.ja.Nc=b;return a.ja.Nc}function Za(a,b){if(!a.ja.Yc&&(a.ja.me=!1!==b,a.ja.me)){var c=a.Ef;a.Ef=null;c&&c()}}
|
||||
|
|
@ -26,7 +26,7 @@ f.ie=function(a,b){a.button||(this.S=b?0:-1,kb(this,a,b))};f.qg=function(a){kb(t
|
|||
function kb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,k=null.getBoundingClientRect(),d=(b.clientX-k.left)*d|0;b=(b.clientY-k.top)*e|0;null==c&&(a.S||(a.S=Math.abs(a.J-d)>Math.abs(a.K-b)?1:2),1==a.S?b=a.K:2==a.S&&(d=a.J));a.J=d;a.K=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.B&&a.B.be)for(k=0;k<a.B.be.length;k++)if(e=a.B.be[k],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.B.Fe[k],l=oa(lb.ej,a.B.cg[d.Pj]),k=l*a.na.yb,d=(l+d.cd)*a.na.yb-1;0<b&&(k+=e.Fc*(b-1)*a.sa);k+=c*a.sa;k|=0;k>d&&
|
||||
(k=d);c=k;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.ta)){b=c;if(a.context&&a.Z&&a.da){e=a.Z.width;a.da.fillStyle="black";a.da.fillRect(0,360,e,360);mb(a,378,a.Z,a.da);a.ha=a.va.width/24|0;if(null==b)nb(a,"Mouse over memory to dump");else for(nb(a,"0x"+da(b),null,0,1),k=1;16>=k;k++){d="";for(l=1;8>=l;l++){var p;p=a.na;var q=b++;p=p.W[(q&p.La)>>>p.ha].Cd(q&p.B,q);nb(a,da(p,2),null,1);d+=32<=p&&128>p?String.fromCharCode(p):"."}nb(a,d,null,0,1)}a.context.drawImage(a.Z,0,360,e,360,a.Va,a.ab,a.Ia,a.La)}a.ta=
|
||||
c}}}f.Wd=function(){};function ob(a,b,c,d){a.B.Fe[a.B.Lh++]={Pj:b,cd:c,type:d};return na(lb,b,c,0,d)}function mb(a,b,c,d){var e,k=null.style.color,l=a.Fa=10;a.F=l;a.N=b;a.T=a.pa=18;e||(e=a.oa||a.pa+"px Monaco, Lucida Console, Courier New");a.W=a.oa=e;c&&(a.va=c);d&&(a.H=d,a.xa=k||"white")}
|
||||
function nb(a,b,c,d,e){a.H.font=a.W;a.H.fillStyle=a.xa;a.H.fillText(b,a.F,a.N);a.F+=a.ha;null!=c&&(16!=a.Qa?b=c.toString():(b=8>a.Da?"0x":"",b+=da(c,a.Da)),a.H.fillText(b,a.F,a.N),a.F+=a.ha);d&&(a.F+=a.ha*d);e&&(a.F=a.Fa,a.N+=(a.T+2)*(e||1))}function jb(){for(var a=!1,b=Xa(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=Ua(d),k=Sa(e.id);k||(a=!0,k=new eb(e));Wa(k,d);a&&Za(k)}}Ea(jb);
|
||||
function nb(a,b,c,d,e){a.H.font=a.W;a.H.fillStyle=a.xa;a.H.fillText(b,a.F,a.N);a.F+=a.ha;null!=c&&(16!=a.Qa?b=c.toString():(b=8>a.Da?"0x":"",b+=da(c,a.Da)),a.H.fillText(b,a.F,a.N),a.F+=a.ha);d&&(a.F+=a.ha*d);e&&(a.F=a.Fa,a.N+=(a.T+2)*(e||1))}function jb(){for(var a=!1,b=Xa(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=Ua(d),k=Sa(e.id);k||(a=!0,k=new eb(e));Wa(k,d);a&&Za(k)}}Ea(jb);
|
||||
function pb(a,b,c){Ia.call(this,"Bus",a,pb);this.A=b;this.Ta=c;this.F=a.buswidth||20;this.T=Math.pow(2,this.F);this.na=this.La=this.T-1|0;this.ha=32==this.F||20>=this.F?12:24>=this.F?14:15;this.yb=1<<this.ha;this.Z=this.yb>>2;this.B=this.yb-1;this.J=this.T/this.yb|0;this.D=this.J-1;this.K=[];this.N=[];this.O=[];this.S=[];a=new g;qb(a,this.Ta);this.W=Array(this.J);for(b=0;b<this.J;b++)this.W[b]=a;a=this.A;b=this.W;c=this.ha;a.vc=a.W=b;a.ha=c;a.yb=1<<a.ha;a.ab=a.yb-1;a.of=b.length;a.Yd=a.of-1;a=this.A;
|
||||
a.La=a.kc=this.La;Za(this)}Qa(pb);var lb,rb={ej:20,count:8,Wm:1,type:3},sb=0,tb;for(tb in rb){var ub=rb[tb];rb[tb]={pg:(1<<ub)-1<<sb,shift:sb};sb+=ub}lb=rb;f=pb.prototype;f.reset=function(){vb(this,!0)};f.Tb=function(a,b){b||this.reset();return!0};
|
||||
function wb(a,b,c,d,e){for(var k=b>>>a.ha;0<c&&k<a.W.length;){var l=a.W[k],p=k*a.yb,q=c>a.yb?a.yb:c;if(l&&l.size){if(l.type==d&&l.controller==e){if(b+c<=l.ee)return l.Be+=l.ee-b,l.ee=b,!0;if(b>=l.ee+l.Be){q=l.size-(b-p);q>c&&(q=c);l.Be=b-l.ee+q;c-=q;b=p+a.yb;continue}}return xb(a,1,b,c)}l=a.W[k];b=new g(b,q,a.yb,d,e);qb(b,a.Ta,l);a.W[k++]=b;b=p+a.yb;c-=q}return 0>=c?(a=a.A,a.Ua&-2147483648&&yb(a),!0):xb(a,2,b,c)}
|
||||
|
|
@ -117,7 +117,7 @@ function ze(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ia)2<b.length&&
|
|||
f.Wd=function(a){if(this.Bh&&(a||!this.ja.Rb||this.ja.Th)){ze(this,"EAX",this.G);ze(this,"EBX",this.B);ze(this,"ECX",this.F);ze(this,"EDX",this.I);ze(this,"ESP",r(this));ze(this,"EBP",this.K);ze(this,"ESI",this.J);ze(this,"EDI",this.H);ze(this,"CS",this.Ha.ra);ze(this,"DS",this.Ca.ra);ze(this,"SS",this.Z.ra);ze(this,"ES",this.va.ra);ze(this,"EIP",u(this));var b=Jc(this);ze(this,"PS",b);ze(this,"V",b&2048);ze(this,"D",b&1024);ze(this,"I",b&512);ze(this,"T",b&256);ze(this,"S",b&128);ze(this,"Z",b&64);
|
||||
ze(this,"A",b&16);ze(this,"P",b&4);ze(this,"C",b&1);80386==this.ia&&(ze(this,"FS",this.Qa.ra),ze(this,"GS",this.Va.ra),ze(this,"CR0",this.Ua),ze(this,"CR2",this.pd),ze(this,"CR3",this.Zc))}if(b=this.qa.speed)b.textContent=this.ja.Rb&&this.Y.zd?this.Y.zd.toFixed(2)+"Mhz":"Stopped";this.parent.Wd.call(this,a)};
|
||||
f.oj=function(a){this.ja.Je=!0;this.ja.Oj=!1;this.ja.Uh=!1;this.lc=this.A=a;this.T&&!a&&uc(this.T);a||(this.N|=4);do{if(a=this.N&3312)this.Ba|=a;else if(this.Rd=this.da,this.O=this.Ca,this.S=this.Z,this.U=this.oa=-1,this.Ba&3072&&Md(this),this.Ba=this.N&256,this.Ja){a:if(!(this.N&4)){a=80286>this.ia?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ja&1&&this.ca&512){var c=Ae(this.T);if(-1<=c&&(this.Ja&=-2,0<=c)){this.Ja&=-5;Be.call(this,c);break a}}break;case 1:if(this.Ja&2){this.Ja&=-3;80386<=this.ia&&
|
||||
(this.fb[6]|=16384);Be.call(this,1);break a}}a=1-a}}if(this.Ja&4){this.N=this.A=0;break}}this.N=0;this.pa[this.X()].call(this)}while(0<this.A);return this.ja.Je?this.lc-this.A:void 0===this.ja.Je?0:-1};Ea(function(){for(var a=Xa(window.document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Nc(d);Wa(d,c)}});
|
||||
(this.fb[6]|=16384);Be.call(this,1);break a}}a=1-a}}if(this.Ja&4){this.N=this.A=0;break}}this.N=0;this.pa[this.X()].call(this)}while(0<this.A);return this.ja.Je?this.lc-this.A:void 0===this.ja.Je?0:-1};Ea(function(){for(var a=Xa(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Nc(d);Wa(d,c)}});
|
||||
function Ce(a){Ia.call(this,"FPU",a,Ce);this.ia=a.model||8087;(a=a.stepping)&&ca(a,16);this.N=new Float64Array(8);this.la=new Int32Array(this.N.buffer);this.ua=new Float32Array(1);this.pa=new Int32Array(this.ua.buffer);this.W=new Float64Array(1);this.K=new Int32Array(this.W.buffer);this.H=Array(3);this.Z=this.na=-1;this.O=this.S=this.da=this.B=0;this.ha=new Float64Array(1);this.oa=new Int32Array(this.ha.buffer);this.oa[0]=0;this.oa[1]=268402688;De(this)}Qa(Ce);f=Ce.prototype;
|
||||
f.oc=function(a,b,c){this.A=c;this.T=ib(a,"ChipSet");Za(this)};f.Tb=function(a,b){if(!b)if(!a||!this.restore)De(this);else if(!this.restore(a))return!1;return!0};f.Sb=function(a){return a?this.save():!0};f.save=function(){var a=new Rd(this),b=[],c=0;b[c++]=this.J;b[c++]=this.ga|this.D<<11;b[c++]=Ee(this);for(var d=0;d<this.N.length;d++)b[c++]=this.N[d];D(a,0,b);return a.data()};
|
||||
f.restore=function(a){a=a[0];var b=0;this.J=a[b++]&-57409;var c=a[b++];this.ga=c&-14337;this.D=(c&14336)>>11;Fe(this);Ge(this,a[b++]);for(c=0;c<this.N.length;c++)this.N[c]=a[b++];return!0};function De(a){a.F=0;a.J=959;a.ga=0;a.D=0;a.T&&(a=a.T,a.ia>=He&&Ie(a,13))}function Fe(a){a.ga&=-129;a.ga&~a.J&63&&(a.ga|=128);if(a.ga&128&&!(a.J&128))return a=a.T,a.ia>=He?Je(a,13):a.va&0||Be.call(a.A,2),!0;a=a.T;a.ia>=He&&Ie(a,13);return!1}function Ke(a,b){80387<=a.ia||(b&=-65);a.ga|=b;return Fe(a)}
|
||||
|
|
@ -144,9 +144,9 @@ Ze(this),T(this,0)))},48:function(){U(this,this.B,Me(this,T(this,this.B),T(this,
|
|||
this.mj()},3:function(){Ue(this)&&(this.mj(),ef(this))},4:yf,6:zf,7:Ef,48:uf,49:Hf,50:function(){U(this,this.B,T(this,0))},51:Bf},222:{0:function(){U(this,0,Me(this,T(this,0),We(this)))},1:function(){U(this,0,Oe(this,T(this,0),We(this)))},2:function(){Qe(this,T(this,0),We(this))},3:function(){Qe(this,T(this,0),We(this))&&ef(this)},4:function(){U(this,0,Ne(this,T(this,0),We(this)))},5:function(){U(this,0,Ne(this,We(this),T(this,0)))},6:function(){U(this,0,Pe(this,T(this,0),We(this)))},7:function(){U(this,
|
||||
0,Pe(this,We(this),T(this,0)))},48:function(){U(this,this.B,Me(this,T(this,this.B),T(this,0)))&&ef(this)},49:function(){U(this,this.B,Oe(this,T(this,this.B),T(this,0)))&&ef(this)},50:sf,51:function(){Qe(this,T(this,0),T(this,1))&&null!=ef(this)&&ef(this)},52:function(){U(this,this.B,Ne(this,T(this,0),T(this,this.B)))&&ef(this)},53:function(){U(this,this.B,Ne(this,T(this,this.B),T(this,0)))&&ef(this)},54:function(){U(this,this.B,Pe(this,T(this,0),T(this,this.B)))&&ef(this)},55:function(){U(this,this.B,
|
||||
Pe(this,T(this,this.B),T(this,0)))&&ef(this)}},223:{0:function(){ff(this,We(this))},2:function(){null!=Re(this,T(this,0),32768)&&this.A.gb(this.A.U,this.K[0])},3:function(){null!=Re(this,T(this,0),32768)&&(this.A.gb(this.A.U,this.K[0]),ef(this))},4:function(){var a=$e(this),b=cf(a[0],8)+1E8*cf(a[1],8)+1E16*cf(a[2],2);a[2]&32768&&(b=-b);ff(this,b)},5:function(){var a;a=this.A.ka(this.A.U);a=4294967296*this.A.ka(this.A.U+4)+(a>>>0);ff(this,a)},6:function(){var a=Re(this,ef(this));null!=a&&(this.H[0]=
|
||||
df(a,8),this.H[1]=df(a/1E8,8),this.H[2]=df(a/1E16,2),0>a&&(this.H[2]|=32768),af(this))},7:function(){null!=Re(this,T(this,0),of)&&(this.lj(),ef(this))},48:function(){uf.call(this);ef(this)},49:Hf,50:Cf,51:Cf,52:Ff}},Jf=[pf,vf,wf,xf,yf,zf,Df,Af,Ef,Ff];Ea(function(){for(var a=Xa(window.document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Ce(d);Wa(d,c)}});
|
||||
function Mf(a,b){var c=a+b+je(this)|0;Xd(this,a,b,c,191);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&255}function Nf(a,b){var c=a+b+je(this)|0;Xd(this,a,b,c,this.Wa|63);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&this.C}function Of(a,b){var c=a+b|0;Xd(this,a,b,c,191);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&255}
|
||||
function Pf(a,b){var c=a+b|0;Xd(this,a,b,c,this.Wa|63);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&this.C}function Qf(a,b){var c=a&b;de(this,c,128);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c}function Rf(a,b){this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return de(this,a&b,this.Wa)&this.C}function Sf(a,b){this.A-=10+(-1===this.U?0:1);if((a&3)<(b&3))return a=a&-4|b&3,ne(this),a;le(this);return a}
|
||||
df(a,8),this.H[1]=df(a/1E8,8),this.H[2]=df(a/1E16,2),0>a&&(this.H[2]|=32768),af(this))},7:function(){null!=Re(this,T(this,0),of)&&(this.lj(),ef(this))},48:function(){uf.call(this);ef(this)},49:Hf,50:Cf,51:Cf,52:Ff}},Jf=[pf,vf,wf,xf,yf,zf,Df,Af,Ef,Ff];Ea(function(){for(var a=Xa(document,"pcjs","fpu"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Ce(d);Wa(d,c)}});function Mf(a,b){var c=a+b+je(this)|0;Xd(this,a,b,c,191);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&255}
|
||||
function Nf(a,b){var c=a+b+je(this)|0;Xd(this,a,b,c,this.Wa|63);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&this.C}function Of(a,b){var c=a+b|0;Xd(this,a,b,c,191);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&255}function Pf(a,b){var c=a+b|0;Xd(this,a,b,c,this.Wa|63);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c&this.C}
|
||||
function Qf(a,b){var c=a&b;de(this,c,128);this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return c}function Rf(a,b){this.A-=-1===this.oa?-1===this.U?this.D.ac:this.D.Db:this.D.pc;return de(this,a&b,this.Wa)&this.C}function Sf(a,b){this.A-=10+(-1===this.U?0:1);if((a&3)<(b&3))return a=a&-4|b&3,ne(this),a;le(this);return a}
|
||||
function Tf(a){if(-1===this.U)return h.call(this,6),a;var b=a,c=this.Mb(this.U),d=this.Mb(this.U+this.ba);2==this.ba&&(b=a<<16>>16,c=c<<16>>16,d=d<<16>>16);this.A-=this.D.fi;(b<c||b>d)&&h.call(this,5);this.N|=2;return a}function Uf(a,b){var c=0;if(b){le(this);for(var d=1;d&this.C;){if(b&d){a=c;break}d<<=1;c++}}else ne(this);this.A-=11+3*c;return a}function Vf(a,b){var c=0;if(b){le(this);for(var d=2==this.ba?15:31,e=1<<d;e;){if(b&e){a=d;break}e>>>=1;c++;d--}}else ne(this);this.A-=11+3*c;return a}
|
||||
function Wf(a,b){a&1<<(b&(2==this.ba?15:31))?ee(this):fe(this);this.A-=-1===this.U?3:6;this.N|=2;return a}function Xf(a,b){var c=1<<(b&(2==this.ba?15:31));a&c?ee(this):fe(this);this.A-=-1===this.U?6:8;return a^c}function Yf(a,b){var c=1<<(b&(2==this.ba?15:31));a&c?ee(this):fe(this);this.A-=-1===this.U?6:8;return a&~c}function Zf(a,b){var c=1<<(b&(2==this.ba?15:31));a&c?ee(this):fe(this);this.A-=-1===this.U?6:8;return a|c}
|
||||
function $f(a,b){if(-1===this.U)return Wf.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=se(this,this.Pc,this.mc+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?ee(this):fe(this);this.A-=6;this.N|=2;return a}function ag(a,b){if(-1===this.U)return Xf.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=se(this,this.Pc,this.mc+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?ee(this):fe(this);this.A-=8;return a^b}
|
||||
|
|
@ -827,18 +827,18 @@ var ti={0:function(){return Si(this,0,0)},1:function(){return Ui(this,0,0)},2:fu
|
|||
b){kj(this,0,b)},33:function(a,b){mj(this,0,b)},64:function(a,b){qj(this,0,b)},65:function(a,b){qj(this,1,b)},66:function(a,b){qj(this,2,b)},67:ii.prototype.Rl,129:function(a,b){fj(this,0,2,b)},130:function(a,b){fj(this,0,3,b)},131:function(a,b){fj(this,0,1,b)},135:function(a,b){fj(this,0,0,b)}},wi={96:ii.prototype.Sl,97:ii.prototype.Tl,98:ii.prototype.Ul,99:ii.prototype.Vl,160:ii.prototype.Ql},yi={96:ii.prototype.dl,97:ii.prototype.el,100:ii.prototype.cl,112:ii.prototype.sl,113:ii.prototype.tl,128:function(a,
|
||||
b){this.J[7]=b},132:function(a,b){this.J[0]=b},133:function(a,b){this.J[1]=b},134:function(a,b){this.J[2]=b},136:function(a,b){this.J[3]=b},137:function(a,b){fj(this,1,2,b)},138:function(a,b){fj(this,1,3,b)},139:function(a,b){fj(this,1,1,b)},140:function(a,b){this.J[4]=b},141:function(a,b){this.J[5]=b},142:function(a,b){this.J[6]=b},143:function(a,b){fj(this,1,0,b)},160:function(a,b){kj(this,1,b)},161:function(a,b){mj(this,1,b)},192:function(a,b){Ti(this,1,0,b)},194:function(a,b){Vi(this,1,0,b)},
|
||||
196:function(a,b){Ti(this,1,1,b)},198:function(a,b){Vi(this,1,1,b)},200:function(a,b){Ti(this,1,2,b)},202:function(a,b){Vi(this,1,2,b)},204:function(a,b){Ti(this,1,3,b)},206:function(a,b){Vi(this,1,3,b)},208:function(a,b){this.H[1].eg=b},210:function(a,b){Xi(this,1,b)},212:function(a,b){Yi(this,1,b)},214:function(a,b){this.H[1].Wb[b&3].mode=b},216:function(){this.H[1].Kb=0},218:function(){dj(this,1)},240:ii.prototype.Dl,241:ii.prototype.El};
|
||||
Ea(function(){for(var a=Xa(window.document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new ii(d);Wa(d,c);Ai(d)}});
|
||||
Ea(function(){for(var a=Xa(document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new ii(d);Wa(d,c);Ai(d)}});
|
||||
function Cj(a){Ia.call(this,"ROM",a,Cj);this.B=null;this.K=a.addr;this.F=a.size;this.H=a.alias;this.J=a.file;this.S=ea(this.J);this.D=a.notify;this.T=null;if(this.D&&(a=this.D.indexOf("["),0<a)){try{this.T=eval(this.D.substr(a))}catch(c){}this.D=this.D.substr(0,a)}if(this.J){a=this.J;var b=fa(this.S);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.J+"&format=bytes&decimal=true");pa(a,!0,null,this,this.O)}}Qa(Cj);Cj.prototype.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;Dj(this)};
|
||||
Cj.prototype.Tb=function(){this.N&&(this.Ta&&this.Ta.A(this.id,0,this.K>>>4,0,this.K,this.F,this.N),delete this.N);return!0};Cj.prototype.Sb=function(){return!0};
|
||||
Cj.prototype.O=function(a,b,c){if(c)this.Ka("Unable to load system ROM (error "+c+": "+a+")");else{if("["==b.charAt(0)||"{"==b.charAt(0))try{var d=eval("("+b+")"),e=d.bytes,k=d.data;if(e)this.B=e;else if(k)for(this.B=Array(4*k.length),c=b=0;b<k.length;b++)this.B[c++]=k[b]&255,this.B[c++]=k[b]>>8&255,this.B[c++]=k[b]>>16&255,this.B[c++]=k[b]>>24&255;else this.B=d;this.N=d.symbols;if(!this.B.length){ra("Empty ROM: "+a);return}if(1==this.B.length){ra(this.B[0]);return}}catch(l){this.Ka("ROM data error: "+
|
||||
l.message);return}else for(a=b.replace(/\n/gm," ").replace(/ +$/,"").split(" "),this.B=Array(a.length),d=0;d<a.length;d++)this.B[d]=ca(a[d],16);Dj(this)}};
|
||||
function Dj(a){if(!$a(a))if(!a.J)Za(a);else if(a.B&&a.na){if(a.B.length!=a.F)ab(a,"ROM size (0x"+da(a.B.length)+") does not match specified size ("+("0x"+da(a.F))+")");else{var b;b=a.K;if(wb(a.na,b,a.F,Eb)){for(var c=0;c<a.B.length;c++){var d=a.na,e=b+c;d.W[(e&d.La)>>>d.ha].jf(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.H?b.push(a.H):null!=a.H&&a.H.length&&(b=a.H);for(c=0;c<b.length;c++){var d=a,e=b[c],k=Ab(d.na,d.K,d.F);zb(d.na,e,d.F,k)}a.D&&((b=Sa(a.D,a.id))?(c=a.B,d=a.T,5==
|
||||
b.mb?Ej(b,c,d||[12640,8752],8):b.mb==Fj&&Ej(b,c,d||[14221,16269],8),Za(b)):a.Ka("Unable to find component: "+a.D));delete a.B}}Za(a)}}Ea(function(){for(var a=Xa(window.document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Cj(d);Wa(d,c)}});function Gj(a){Ia.call(this,"RAM",a,Gj);this.D=a.addr;this.B=a.size;this.J=a.test;this.H=!!this.B;this.F=!1}Qa(Gj);f=Gj.prototype;f.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.T=ib(a,"ChipSet");Za(this)};
|
||||
b.mb?Ej(b,c,d||[12640,8752],8):b.mb==Fj&&Ej(b,c,d||[14221,16269],8),Za(b)):a.Ka("Unable to find component: "+a.D));delete a.B}}Za(a)}}Ea(function(){for(var a=Xa(document,"pcjs","rom"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Cj(d);Wa(d,c)}});function Gj(a){Ia.call(this,"RAM",a,Gj);this.D=a.addr;this.B=a.size;this.J=a.test;this.H=!!this.B;this.F=!1}Qa(Gj);f=Gj.prototype;f.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.T=ib(a,"ChipSet");Za(this)};
|
||||
f.Tb=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};f.Sb=function(a){return a&&this.controller?this.save():!0};
|
||||
f.reset=function(){if(!this.D&&!this.H&&this.T){var a=1024*Ei(this.T);this.B&&a!=this.B&&(Db(this.na,this.D,this.B),this.F=!1);this.B=a}!this.F&&this.B&&wb(this.na,this.D,this.B,1)&&(this.F=!0,this.status(Math.floor(this.B/1024)+"Kb allocated"),"ramCPQ"==this.mf&&(this.controller=new Hj(this),wb(this.na,Ij,4,4,this.controller)));if(this.F){if(this.J||Kb(this.na,1138,4660),"ramCPQ"!=this.mf&&this.T&&(a=this.T,a.B)){var b=1048576>this.D?21:23,c=a.B[b]|a.B[b+1]<<8,c=c+(this.B>>10);a.B[b]=c&255;a.B[b+
|
||||
1]=c>>8;Ii(a)}}else ra("No RAM allocated")};f.save=function(){var a=new Rd(this);this.controller&&D(a,0,this.controller.save());return a.data()};f.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function Hj(a){this.H=a;this.D=Jj;this.F=Kj;this.B=Lj;this.A=null}var Ij=-2134900736,Jj=65535,Kj=2575,Lj=2,Mj=[null,0],Nj=[function(a){return this.controller.Lb(a)},null,null,function(a,b){this.controller.Lc(a,b)},null,null];f=Hj.prototype;f.save=function(){return[this.D,this.B]};
|
||||
f.restore=function(a){this.Lc(0,a[0]&255);this.Lc(2,a[1]&255);return!0};f.Lb=function(a){var b=255;2>a?b=a&1?this.F>>8:this.F&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};f.Lc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.D&255)){var c=this.H.na;if(b&1)this.A&&(zb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Ab(c,917504,131072));var d=Ab(c,16646144,131072);zb(c,917504,131072,d,b&2?1:Eb)}this.D=this.D&-256|b}};f.Xh=function(){return Mj};f.og=function(){return Nj};
|
||||
Ea(function(){for(var a=Xa(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Gj(d);Wa(d,c)}});function Oj(a){Ia.call(this,"Keyboard",a,Oj);Pj(this,a.model);this.Z=xa("Mobi");this.W=xa("MSIE");this.O=0;this.S=this.lg=!1;this.B=[];this.ha=50;Za(this)}Qa(Oj);
|
||||
Ea(function(){for(var a=Xa(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Gj(d);Wa(d,c)}});function Oj(a){Ia.call(this,"Keyboard",a,Oj);Pj(this,a.model);this.Z=xa("Mobi");this.W=xa("MSIE");this.O=0;this.S=this.lg=!1;this.B=[];this.ha=50;Za(this)}Qa(Oj);
|
||||
var Qj=["US83","US84","US101"],W={jm:1,km:3,lm: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,fm:65,gm:66,hm:67,mm:68,E:69,nm:70,qm:71,rm:72,sm:73,tm:74,um:75,vm:76,wm:77,xm:78,ym:79,zm:80,Q:81,Am:82,Em:83,Jm:84,Nm:85,Om:86,Pm:87,Rm:88,Sm:89,Tm:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Um:97,Vm:98,Xm:99,d:100,e:101,Ym:102,Zm:103,$m:104,
|
||||
an:105,bn:106,k:107,cn:108,dn:109,n:110,fn:111,p:112,q:113,r:114,gn:115,t:116,hn:117,jn:118,kn:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Rj={};Rj[186]=W[";"];Rj[187]=W["="];Rj[188]=W[","];Rj[189]=W["-"];Rj[190]=W["."];Rj[191]=W["/"];Rj[192]=W["`"];Rj[219]=W["["];Rj[220]=W["\\"];Rj[221]=W["]"];Rj[222]=W["'"];Rj[173]=W["-"];var Sj={};Sj[W["1"]]=W["!"];Sj[W["2"]]=W["@"];Sj[W["3"]]=W["#"];Sj[W["4"]]=W.$;Sj[W["5"]]=W["%"];Sj[W["6"]]=W["^"];Sj[W["7"]]=W["&"];Sj[W["8"]]=W["*"];Sj[W["9"]]=W["("];
|
||||
Sj[W["0"]]=W[")"];Sj[186]=W[":"];Sj[187]=W["+"];Sj[188]=W["<"];Sj[189]=W._;Sj[190]=W[">"];Sj[191]=W["?"];Sj[192]=W["~"];Sj[219]=W["{"];Sj[220]=W["|"];Sj[221]=W["}"];Sj[222]=W['"'];Sj[173]=W._;Sj[61]=W["+"];Sj[59]=W[":"];
|
||||
|
|
@ -860,7 +860,7 @@ function ak(a,b,c){if(!Y[b]||!(c||a.A&&a.A.ja.Rb))return!1;for(var d=!1,e=0;e<a.
|
|||
function gk(a,b,c){var d=b;if(65<=b&&90>=b)!(a.Zb&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.Zb&515)==c&&(d=b-32);else if(!!(a.Zb&3)==c){if(a=Sj[b])d=a}else if(a=Rj[b])d=a;return d}f.Qf=function(a){a||(this.Zb&=-256)};
|
||||
function Xj(a,b,c){var d=!0,e=!1,k=!1,l=b.keyCode,p=gk(a,l,!0);a.lg&&p==W["`"]&&(l=p=27);if(Y[l+1E3])if(p+=1E3,2==b.location&&(p+=2E3),Zj(a,p,!1,c)){if(20==l||144==l||145==l)a.W||(c=e=!0);if(!(c||91!=l&&93!=l))for(var q=0;q<a.B.length;q++){var w=a.B[q];w.Ke=!1;0<w.ad&&(w.ad=0)}}else 8==l&&8==(a.Zb&40)&&(p=4008),d=!1;else if(Y[p]&&a.Zb&60&&(d=!1),d&&c||a.Zb&192)k=!0;d||b.preventDefault();k||a.Z&&d||(c?Yj(a,p,e):ak(a,p)||(b=gk(a,l,!1),b!=p&&ak(a,b)));return d}
|
||||
function fk(a,b,c){var d=!1;Zj(a,b,!0,c);var e=Y[b]||Y[b+1E3];if(void 0!==e){14==e&&40==(a.Zb&40)&&(e=83);var d=[],k=e&255;if(83<k&&83==a.da)return!1;d.push(k|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var l=0,p=e&255;224==k||225==k?d.push(k|(c?0:128)):(42==p?a.D&3||a.D&512&&b||(l=p):29==p?a.D&12||(l=p):56==p?a.D&48||(l=p):d.push(k|(c?0:128)),l&&(c?d.unshift(l):d.push(l|128)))}for(c=0;c<d.length;c++)e=a,k=d[c],e.Xb&&(20>e.Xb.length?(e.Xb.push(k),1==e.Xb.length&&e.T&&Aj(e.T,k)):20==e.Xb.length&&
|
||||
e.Xb.push(255));d=!0}return d}Ea(function(){for(var a=Xa(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Oj(d);Wa(d,c)}});
|
||||
e.Xb.push(255));d=!0}return d}Ea(function(){for(var a=Xa(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Oj(d);Wa(d,c)}});
|
||||
function Z(a,b,c,d,e){Ia.call(this,"Video",a,Z);this.ia=a.model;this.mb=hk[this.ia]||ik;this.Wc=a.memory||0;this.od=a.switches;this.pa=a.mode;if(void 0===this.pa||void 0===jk[this.pa])this.pa=kk;this.Vb=a.charCols;this.yc=a.charRows;if(void 0===this.Vb||void 0===this.yc)this.Vb=jk[this.pa][0],this.yc=jk[this.pa][1];this.oa=a.screenWidth;this.va=a.screenHeight;this.Zd=a.scale;this.Yd=12<=Math.round(this.oa/this.Vb);this.ua=b;this.da=c;this.J=(this.Hd=d)||b||null;this.pd=a.touchScreen;this.zc=lk;this.N=
|
||||
null;this.Xd=a.autoLock;this.hb=this.Hb=0;this.Fa=[];this.ta=Array(this.mb==Fj?256:16);this.Va=!1;var k=this;this.kd=xa("Gecko/");b=["","moz","webkit","ms"];if(this.Z=e)if(this.Z.je=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.Z.je){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){mk(k,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?
|
||||
!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){mk(k,null)},!1);break}}this.J&&(this.J.onfocus=function(){return k.Qf(!0)},this.J.onblur=function(){return k.Qf(!1)},this.J.Md=this.J.requestPointerLock||this.J.mozRequestPointerLock||this.J.webkitRequestPointerLock,this.J.qj=this.J.exitPointerLock||this.J.mozExitPointerLock||this.J.webkitExitPointerLock,this.J.Md&&(e=function(){k.$e(document.pointerLockElement===k.J||document.mozPointerLockElement===
|
||||
|
|
@ -899,7 +899,7 @@ f.zj=function(a,b,c){if(c)this.Ka("Unable to load font ROM (error "+c+": "+a+")"
|
|||
function Uk(a,b){if(1==b)return a.ta[0]=rk[0],a.ta[1]=rk[7],a.ta;if(2==b){var c=a.F.ff;if(a.F===a.B){var d=a.B.Jc[0],c=d&7;d&16&&(c|=8);18!=a.B.Jc[1]&&(c|=32)}a.ta[0]=rk[c&15];c=c&32?tk:sk;for(d=0;d<c.length;d++)a.ta[d+1]=rk[c[d]];return a.ta}if(a.S===a.Jb)return rk;a.Va&&b&&!a.ta[16]&&(a.Va=!1);if(!a.Va){var c=a.B,d=c.xe,e,k,l,p,q;if(8==b)for(k=0;256>k;k++)l=d[k]||0,p=l<<2&252,q=l>>4&252,l=l>>10&252,a.ta[k]=[p,q,l,255];else{var w=d&&d[255];e=null!=c.Jc[15]?c.Jc:uk;for(k=0;16>k;k++)l=e[k]&63,w?(l|=
|
||||
(c.Jc[20]&12)<<4,c.Jc[16]&128&&(l&=-49,l|=(c.Jc[20]&3)<<4),l=d[l],p=l<<2&252,q=l>>4&252,l=l>>10&252):(p=(l&4?170:0)|(l&32?85:0),q=(l&2?170:0)|(l&16?85:0),l=(l&1?170:0)|(l&8?85:0)),a.ta[k]=[p,q,l,255]}a.Va=!0}return a.ta}function Ej(a,b,c,d){a.Fb=b;a.lc=c;a.Qa=d}
|
||||
function Qk(a,b){var c=!1;if(window&&a.Fb&&(!b||a.K)){var d=0,e=a.Qa?a.Qa:8,k=Uk(a);Vk(a,3,a.lc[0],d,e,8,a.Fb,k)&&(c=!0);d=a.Qa?0:2048;e=a.Qa?a.Qa:9;Vk(a,1,a.lc[1],d,e,14,a.Fb,pk,qk)&&(c=!0);a.Qa&&Vk(a,a.mb,a.lc[1],0,a.Qa,14,a.Fb,k)&&(c=!0)}return c}function Vk(a,b,c,d,e,k,l,p,q){var w=!1;null!=c&&(Wk(a,b,c,d,e,k,l,p,q)&&(w=!0),a.Yd&&Wk(a,b<<1,c,d,e,k,l,p,q)&&(w=!0));return w}
|
||||
function Wk(a,b,c,d,e,k,l,p,q){var w=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,ae:Array(C),Fh:p.slice(0,C),Ee:q,dg:Array(C)});for(q=0;q<C;q++){var J=p[q],V=G.ae[q]?G.Fh[q]:[];if(J[0]!==V[0]||J[1]!==V[1]||J[2]!==V[2]){var w=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,pd=l,Cm=[0,0,0,0],te=window.document.createElement("canvas");te.width=w.sc<<4;te.height=w.tc<<4;for(var Zi=te.getContext("2d"),Bb=void 0,Oc=void 0,ac=void 0,ue=8>Ca||!ka?Ca:8,Kf=Zi.createImageData(w.sc,w.tc),Bb=0;256>Bb;Bb++){for(ac=
|
||||
function Wk(a,b,c,d,e,k,l,p,q){var w=!1,B=b&1?0:1,G=a.Fa[b],C=16>p.length?p.length:16;G||(G={sc:e<<B,tc:k<<B,ae:Array(C),Fh:p.slice(0,C),Ee:q,dg:Array(C)});for(q=0;q<C;q++){var J=p[q],V=G.ae[q]?G.Fh[q]:[];if(J[0]!==V[0]||J[1]!==V[1]||J[2]!==V[2]){var w=G,V=q,X=B,ja=c,ka=d,Ba=e,Ca=k,pd=l,Cm=[0,0,0,0],te=document.createElement("canvas");te.width=w.sc<<4;te.height=w.tc<<4;for(var Zi=te.getContext("2d"),Bb=void 0,Oc=void 0,ac=void 0,ue=8>Ca||!ka?Ca:8,Kf=Zi.createImageData(w.sc,w.tc),Bb=0;256>Bb;Bb++){for(ac=
|
||||
0;ac<Ca;ac++)for(var Dm=w.Ee&&V&1&&ac>=Ca-2,Em=pd[ac<ue?ja+Bb*ue+ac:ka+Bb*ue+ac-ue],Lf=0;Lf<=X;Lf++)for(Oc=0;Oc<Ba;Oc++){var $i=Oc<<X,aj=(ac<<X)+Lf,bj=Dm||Em&128>>(8<=Oc&&192<=Bb&&223>=Bb?7:Oc)?J:Cm;Xk(Kf,$i,aj,bj);X&&Xk(Kf,$i+1,aj,bj)}Zi.putImageData(Kf,(Bb&15)*w.sc,(Bb>>4)*w.tc)}w.ae[V]="#"+da(J[0],2)+da(J[1],2)+da(J[2],2);w.Fh[V]=J;w.dg[V]=te;w=!0}}a.Fa[b]=G;return w}function Yk(a){0<a.Ia||0<=a.ha?0>a.La&&(a.La=0):a.La=-1}
|
||||
function Tk(a){if(a.K){for(var b=10;15>=b;b++)if(null==a.F.ib[b])return;var c=a.F.ib[10],b=c&31,d=a.F.ib[11]&31,e=a.F.ib[9]&31,k=!1;a.F===a.B&&(k=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!k||b>e)Zk(a);else{c=a.F.ib[15]+((a.F.ib[14]&63)<<8);a.ha!=c&&(Zk(a),a.ha=c);d=d-b+1;if(a.rd!=b||a.Zc!=d)a.rd=b,a.Zc=d;a.Ja=e+1;Yk(a)}}}
|
||||
function Zk(a){if(0<=a.ha){if(void 0!==a.W){var b=a.W[a.ha];if(b&131072){var b=b&-131073,c=a.ha%a.H,d=a.ha/a.H|0;a.K&&a.Fa[a.K]&&(a.Na&&$k(a,c,d,b,a.Na),$k(a,c,d,b));a.W[a.ha]=b}}a.ha=-1}}
|
||||
|
|
@ -908,8 +908,8 @@ function bl(a,b){var c=a.F;return c&&null!=b&&b!=c.rg?(c.Xf(b),a.na.Xf(c.hb,c.Hb
|
|||
function Sk(a,b){var c,d=a.Da,e=a.F;if(e)if(e.mb==ik)d=kk;else if(5<=e.mb){var d=null,k=e.Wc>>2,l=32768<k?32768:k,p=e.Dd[6];if(null!=p){switch(p&12){case 0:e.hb=655360;e.Hb=k;d=255;break;case 4:e.hb=655360;e.Hb=k;d=3==a.sa?15:16;break;case 8:e.hb=720896;e.Hb=l;d=kk;break;case 12:e.hb=753664,e.Hb=l,d=3==a.sa?2:3}var q=80==(e.Dd[5]&80);!q||e.hb==a.hb&&e.Hb==a.Hb||(b=!0);c=e.ze[1]&8;k=e.ib[6];k|=e.ib[7]&1?256:0;e.mb==Fj&&(k|=e.ib[7]&32?512:0);l=e.ib[9];255!=d&&(p&1?655360!=e.hb&&!q&&350>k?d=c?7-d:6:
|
||||
e.Dd[5]&64?d=l&31?143>=e.ib[18]?19:20:21:l&128||350>k?d=c?13:14:480<=k&&(d=3==a.sa?17:18):d-=c?2:0);c=al(a)}}else e.Kc&8&&(e.Kc&2?(d=e.Kc&16?6:5,e.Kc&4||--d):(d=e.Kc&1?3:1,e.Kc&4&&--d));else a.Da=null,null==d&&(d=a.pa);if(!Rk(a,d,b))return!1;bl(a,c);return!0}
|
||||
function Rk(a,b,c){if(null!=b&&(b!=a.Da||c)){a.Ed=0;a.Da=b;a.Va=!1;b=a.F||(b==kk?a.la:a.S);if(b!=a.F||b.hb!=a.hb||b.Hb!=a.Hb){Zk(a);if(a.hb){if(!Db(a.na,a.hb,a.Hb))return!1;a.F&&(a.F.$b=!1)}a.F=b;b.$b=!0;a.hb=b.hb;a.Hb=b.Hb;if(!wb(a.na,b.hb,b.Hb,3,b===a.B?b:null))return!1}a.K=0;a.H=a.Vb;a.O=a.yc;a.ab=a.H;a.Pb=jk[kk][2];b=0;if(c=jk[a.Da])a.H=c[0],a.O=c[1],a.Pb=c[2],b=c[3],a.K=c[4],4!=a.sa&&7!=a.sa||a.F!==a.B||3!=a.K||(7==a.B.ib[9]?a.O=43:a.K=a.mb);a.nd=a.H*a.O|0;a.ld=a.nd/a.Pb|0;a.fb=a.ld;a.mc=0;void 0!==
|
||||
b&&(a.fb=(a.fb<<1)+b|0,a.mc=a.fb+b>>1);a.Fa.length&&(a.ya=a.oa/a.H|0,a.Ca=a.va/a.O|0,a.K?(b=a.Fa[a.K],c=a.Fa[a.K<<1],a.Zd&&80==a.H?c&&a.ya>=3*c.sc>>2&&(a.K<<=1,b=c):(c&&a.ya>=c.sc&&(a.K<<=1,b=c),b&&(a.ya=b.sc,a.Ca=b.tc)),a.jb=a.ub=0,b&&(a.jb=a.H*b.sc,a.ub=a.O*b.tc)):(a.ya=a.Ca=1,a.jb=a.H,a.ub=a.O),a.Wa=a.da.createImageData(a.jb,a.ub),a.Ma=window.document.createElement("canvas"),a.Ma.width=a.jb,a.Ma.height=a.ub,a.Na=a.Ma.getContext("2d"),a.Gc=a.Hc=0,a.nc=a.oa,a.vc=a.va,b=a.oa-a.H*a.ya,c=a.va-a.O*a.Ca,
|
||||
0<b&&(a.Gc=b>>1,a.nc-=b),0<c&&(a.Hc=c>>1,a.vc-=c),b||c)&&(a.da.fillStyle=a.ua.style.backgroundColor,a.da.fillRect(0,0,a.oa,a.va));cl(a,!0);mc(a)}return!0}function Xk(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function dl(a){a.Ia=-1;a.xa=!1;var b=a.ld;if(void 0===a.W||a.W.length!=b)a.W=Array(b)}function cl(a,b){b||(a.Va=!1);dl(a)}
|
||||
b&&(a.fb=(a.fb<<1)+b|0,a.mc=a.fb+b>>1);a.Fa.length&&(a.ya=a.oa/a.H|0,a.Ca=a.va/a.O|0,a.K?(b=a.Fa[a.K],c=a.Fa[a.K<<1],a.Zd&&80==a.H?c&&a.ya>=3*c.sc>>2&&(a.K<<=1,b=c):(c&&a.ya>=c.sc&&(a.K<<=1,b=c),b&&(a.ya=b.sc,a.Ca=b.tc)),a.jb=a.ub=0,b&&(a.jb=a.H*b.sc,a.ub=a.O*b.tc)):(a.ya=a.Ca=1,a.jb=a.H,a.ub=a.O),a.Wa=a.da.createImageData(a.jb,a.ub),a.Ma=document.createElement("canvas"),a.Ma.width=a.jb,a.Ma.height=a.ub,a.Na=a.Ma.getContext("2d"),a.Gc=a.Hc=0,a.nc=a.oa,a.vc=a.va,b=a.oa-a.H*a.ya,c=a.va-a.O*a.Ca,0<b&&
|
||||
(a.Gc=b>>1,a.nc-=b),0<c&&(a.Hc=c>>1,a.vc-=c),b||c)&&(a.da.fillStyle=a.ua.style.backgroundColor,a.da.fillRect(0,0,a.oa,a.va));cl(a,!0);mc(a)}return!0}function Xk(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function dl(a){a.Ia=-1;a.xa=!1;var b=a.ld;if(void 0===a.W||a.W.length!=b)a.W=Array(b)}function cl(a,b){b||(a.Va=!1);dl(a)}
|
||||
function $k(a,b,c,d,e){var k=d&255,l=d>>8;d=l&15;var p=a.Fa[a.K];p.Ee&&(d=p.Ee[d]);var q=l>>4&15;p.Ee&&(q=p.Ee[q]);e?(b*=p.sc,c*=p.tc,e.fillStyle=p.ae[q],e.fillRect(b,c,p.sc,p.tc)):(b=b*a.ya+a.Gc,c=c*a.Ca+a.Hc,a.da.fillStyle=p.ae[q],a.da.fillRect(b,c,a.ya,a.Ca));l&256&&(q=(k&15)*p.sc,k=(k>>4)*p.tc,e?e.drawImage(p.dg[d],q,k,p.sc,p.tc,b,c,p.sc,p.tc):a.da.drawImage(p.dg[d],q,k,p.sc,p.tc,b,c,a.ya,a.Ca));l&512&&(k=a.rd,l=a.Zc,e?(a.Ja&&a.Ja!==p.tc&&(k=k*p.tc/a.Ja|0,l=l*p.tc/a.Ja|0),e.fillStyle=p.ae[d],
|
||||
e.fillRect(b,c+k,p.sc,l)):(a.Ja&&a.Ja!==a.Ca&&(k=k*a.Ca/a.Ja|0,l=l*a.Ca/a.Ja|0),a.da.fillStyle=p.ae[d],a.da.fillRect(b,c+k,a.ya,l)))}
|
||||
function mc(a,b){if(a.ja.Qb){var c=!1,d=a.F;d&&(d!==a.B?d.Kc&8&&(c=!0):d.Td&32&&(c=!0));if(c||b){if(b)dl(a);else if(void 0===a.W)return;var e=!1;!(b||++a.Ed&15)&&0<=a.La&&(a.La++,e=!0);var k=0,l=a.nd,p=a.hb,c=p,q=c+a.Hb;19<=a.Da&&(p=c=655360,q=c+65536);if(el(a,d)&8||d.we&&d.we<d.jh)d.bf=(d.ib[12]<<8)+d.ib[13]|0,d.we=0;var w=d.bf;a.K&&(w<<=1);c+=w;w=a.fb;5<=a.mb&&d.ib[19]&&d.ib[19]<<1!=d.ib[1]+1&&(a.ab=d.ib[19]<<(a.K?1:d.ib[20]&64?3:4),w=(a.ab*(a.O-1)+a.H)/a.Pb|0,a.Da<=kk&&(w<<=1));c+w>q&&(w=q-c,0>
|
||||
|
|
@ -926,13 +926,13 @@ f.ek=function(){var a=this.S,b;a.$b&&(b=a.qc);return b};f.ql=function(a,b){var c
|
|||
function gl(a,b,c){if(b.qc<b.sg){b.ib[b.qc]=c;if(12==b.qc||13==b.qc)el(a,b)&1?b.bf=(b.ib[12]<<8)+b.ib[13]|0:b.we||(b.we=b.jh);(9==b.qc&&8!=b.Tf||18==b.qc&&223==c)&&Sk(a,!0);Tk(a)}}function hl(a,b){var c=el(a,b);b===a.B?(c|=b.ga&48^48,b.Ie=!1):c=(b.ga^=9)|240;return b.ga=c}
|
||||
var Ek={948:Z.prototype.Ak,949:Z.prototype.zk,952:Z.prototype.Bk,954:Z.prototype.Ck},Fk={948:Z.prototype.Nl,949:Z.prototype.Ml,952:Z.prototype.Ol},Gk={980:Z.prototype.ek,981:Z.prototype.dk,984:Z.prototype.fk,985:Z.prototype.ck,986:Z.prototype.gk},Hk={980:Z.prototype.ql,981:Z.prototype.pl,984:Z.prototype.rl,985:Z.prototype.ol},Ik={960:Z.prototype.Zj,961:Z.prototype.Aj,962:Z.prototype.Nk,964:Z.prototype.Lk,965:Z.prototype.Kk,974:Z.prototype.tk,975:Z.prototype.sk},Jk={954:Z.prototype.gj,960:Z.prototype.fj,
|
||||
961:Z.prototype.fj,962:Z.prototype.Pl,964:Z.prototype.Xl,965:Z.prototype.Wl,970:Z.prototype.Il,972:Z.prototype.Hl,974:Z.prototype.Gl,975:Z.prototype.Fl,986:Z.prototype.gj},Kk={963:Z.prototype.Ok,966:Z.prototype.lk,967:Z.prototype.mk,969:Z.prototype.kk,970:Z.prototype.Pk,972:Z.prototype.Qk},Lk={963:Z.prototype.Zl,966:Z.prototype.wl,967:Z.prototype.xl,968:Z.prototype.yl,969:Z.prototype.vl};
|
||||
Ea(function(){for(var a=Xa(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),e=window.document.createElement("canvas");if(void 0===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());c.appendChild(e);var k=window.document.createElement("textarea");xa("iOS")&&(k.setAttribute("autocapitalize","off"),k.setAttribute("autocorrect","off"));c.appendChild(k);var l=e.getContext("2d"),d=new Z(d,e,l,k,c);Wa(d,c)}});
|
||||
Ea(function(){for(var a=Xa(document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),e=document.createElement("canvas");if(void 0===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());c.appendChild(e);var k=document.createElement("textarea");xa("iOS")&&(k.setAttribute("autocapitalize","off"),k.setAttribute("autocorrect","off"));c.appendChild(k);var l=e.getContext("2d"),d=new Z(d,e,l,k,c);Wa(d,c)}});
|
||||
function il(a){this.K=a.adapter;switch(this.K){case 1:this.H=956;this.F=7;break;case 2:this.H=888;this.F=7;break;case 3:this.H=632;this.F=5;break;default:ra("Unrecognized parallel adapter #"+this.K);return}this.B=this.D=null;Ia.call(this,"ParallelPort",a,il);a=a.binding;"console"==a?this.D="":Va(this,a,jl)}Qa(il);var jl="buffer";f=il.prototype;f.Eb=function(a,b,c){switch(b){case jl:return this.qa[b]=this.B=c,!0}return!1};
|
||||
f.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.T=ib(a,"ChipSet");Lb(b,this,kl,this.H);Nb(b,this,ll,this.H);Za(this)};f.Tb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};f.Sb=function(a){return a?this.save():!0};f.reset=function(){ml(this)};f.save=function(){var a=new Rd(this),b=0,c=[];c[b++]=this.J;c[b++]=this.Gb;c[b]=this.Ge;D(a,0,c);return a.data()};f.restore=function(a){return ml(this,a[0])};
|
||||
function ml(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.J=b[c++];a.Gb=b[c++];a.Ge=b[c];return!0}f.nk=function(){return this.J};f.Mk=function(){return this.Gb};f.jk=function(){return this.Ge};
|
||||
f.zl=function(a,b){this.J=b;this.Gb|=64;var c;if(this.B)8==b?this.B.value=this.B.value.slice(0,-1):(this.B.value+=String.fromCharCode(b),this.B.scrollTop=this.B.scrollHeight),c=!0;else if(null!=this.D){if(10==b||1024<=this.D.length)this.cc(this.D),this.D="";10!=b&&(this.D+=String.fromCharCode(b));c=!0}else c=!1;c&&(this.Gb&=-65);nl(this)};f.ul=function(a,b){this.Ge=b;nl(this)};function nl(a){a.T&&a.F&&(a.Ge&16&&!(a.Gb&64)?Je(a.T,a.F):Ie(a.T,a.F))}
|
||||
var kl={0:il.prototype.nk,1:il.prototype.Mk,2:il.prototype.jk},ll={0:il.prototype.zl,2:il.prototype.ul};Ea(function(){for(var a=Xa(window.document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new il(d);Wa(d,c)}});
|
||||
var kl={0:il.prototype.nk,1:il.prototype.Mk,2:il.prototype.jk},ll={0:il.prototype.zl,2:il.prototype.ul};Ea(function(){for(var a=Xa(document,"pcjs","parallel"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new il(d);Wa(d,c)}});
|
||||
function ol(a){this.la=a.adapter;switch(this.la){case 1:this.ha=1016;this.W=4;break;case 2:this.ha=760;this.W=3;break;default:ra("Unrecognized serial adapter #"+this.la);return}this.F=this.J=null;this.ta=a.tabSize;this.sa=a.charBOL;this.O=0;Ia.call(this,"SerialPort",a,ol);a=a.binding;"console"==a?this.J="":Va(this,a,pl)}Qa(ol);var pl="buffer";f=ol.prototype;f.Ih=function(a,b){return a==this.mf?(this.N=b,this):null};
|
||||
f.Eb=function(a,b,c){var d=this;switch(b){case pl:return this.qa[b]=this.F=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),ql(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;ql(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
f.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.T=ib(a,"ChipSet");Lb(b,this,rl,this.ha);Nb(b,this,sl,this.ha);Za(this)};f.Tb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};f.Sb=function(a){return a?this.save():!0};f.reset=function(){tl(this)};f.save=function(){var a=new Rd(this),b=0,c=[];c[b++]=this.ua;c[b++]=this.pa;c[b++]=this.S;c[b++]=this.da;c[b++]=this.H;c[b++]=this.K;c[b++]=this.D;c[b++]=this.B;c[b++]=this.oa;c[b]=this.Z;D(a,0,c);return a.data()};
|
||||
|
|
@ -940,12 +940,12 @@ f.restore=function(a){return tl(this,a[0])};function tl(a,b){var c=0;void 0===b&
|
|||
f.Jk=function(){var a=this.K&128?this.S&255:this.ua;this.B&=-2;ul(this);return a};f.uk=function(){return this.K&128?this.S>>8:this.da};f.vk=function(){return this.H};f.wk=function(){return this.K};f.yk=function(){return this.D};f.xk=function(){return this.B};f.Dk=function(){return this.oa};
|
||||
f.Yl=function(a,b){if(this.K&128)this.S=this.S&-256|b;else{this.pa=b;this.B&=-97;var c;if(this.F){if(13==b)this.O=0;else if(8==b)this.F.value=this.F.value.slice(0,-1),0<this.O&&this.O--;else{c=String.fromCharCode(b);var d=32<=b?1:0;9==b&&(d=this.ta||8,d=d-this.O%d,this.ta&&(c=" ".slice(0,d)));this.sa&&!this.O&&d&&(c=String.fromCharCode(this.sa)+c);this.F.value+=c;this.F.scrollTop=this.F.scrollHeight;this.O+=d}c=!0}else if(null!=this.J){if(10==b||1024<=this.J.length)this.cc(this.J),
|
||||
this.J="";10!=b&&(this.J+=String.fromCharCode(b));c=!0}else c=!1;c&&(this.B|=96)}};f.Jl=function(a,b){this.K&128?this.S=this.S&255|b<<8:this.da=b};f.Kl=function(a,b){this.K=b};f.Ll=function(a,b){var c=this.D;this.D=b;if(this.N&&(c^b)&3){var c=this.N,d=this.D,e=3==(d&3);if(e){if(!c.$b){var k=!1;c.D&2||(c.reset(),k=!0);c.D&1||(k=!0);k&&ql(c.H,[77,77]);vl(c);c.$b=e}}else c.$b&&(wl(c),c.$b=e);c.D=d}};
|
||||
var rl={0:ol.prototype.Jk,1:ol.prototype.uk,2:ol.prototype.vk,3:ol.prototype.wk,4:ol.prototype.yk,5:ol.prototype.xk,6:ol.prototype.Dk},sl={0:ol.prototype.Yl,1:ol.prototype.Jl,3:ol.prototype.Kl,4:ol.prototype.Ll};Ea(function(){for(var a=Xa(window.document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new ol(d);Wa(d,c)}});function xl(a){Ia.call(this,"Mouse",a,xl);if(this.da=a.serial)this.ha="SerialPort";this.Z=this.W=this.$b=!1;this.F=[];this.B=[];Za(this)}Qa(xl);var Ok=0;f=xl.prototype;
|
||||
var rl={0:ol.prototype.Jk,1:ol.prototype.uk,2:ol.prototype.vk,3:ol.prototype.wk,4:ol.prototype.yk,5:ol.prototype.xk,6:ol.prototype.Dk},sl={0:ol.prototype.Yl,1:ol.prototype.Jl,3:ol.prototype.Kl,4:ol.prototype.Ll};Ea(function(){for(var a=Xa(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new ol(d);Wa(d,c)}});function xl(a){Ia.call(this,"Mouse",a,xl);if(this.da=a.serial)this.ha="SerialPort";this.Z=this.W=this.$b=!1;this.F=[];this.B=[];Za(this)}Qa(xl);var Ok=0;f=xl.prototype;
|
||||
f.oc=function(a,b,c,d){this.ua=a;this.na=b;this.A=c;this.Ta=d;for(b=null;b=ib(a,"Video",b);)this.F.push(b)};f.Tb=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.ha&&!this.H){for(var c=null;(c=ib(this.ua,this.ha,c))&&(!c.Ih||!(this.H=c.Ih(this.da,this))););if(this.H)for(this.B=[],c=0;c<this.F.length;c++){var d;d=this.F[c];d.N=this;(d=d.J)&&this.B.push(d)}else ra(this.id+": "+this.ha+" "+this.da+" unavailable")}this.$b?vl(this):wl(this)}return!0};
|
||||
f.Sb=function(a){return a?this.save():!0};f.reset=function(){yl(this)};f.save=function(){var a=new Rd(this),b=0,c=[];c[b++]=this.$b;c[b++]=this.J;c[b++]=this.K;c[b++]=this.N;c[b++]=this.T;c[b++]=this.O;c[b++]=this.S;c[b]=this.D;D(a,0,c);return a.data()};f.restore=function(a){return yl(this,a[0])};function yl(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.$b=d;a.J=b[c++];a.K=b[c++];a.N=b[c++];a.T=b[c++];a.O=b[c++];a.S=b[c++];a.D=b[c];return!0}f.$e=function(a){this.W=a};
|
||||
function vl(a){if(!a.Z)for(var b=0;b<a.B.length;b++)zl(a,a.B[b])&&(a.Z=!0)}function wl(a){if(a.Z)for(var b=0;b<a.B.length;b++){var c=a.B[b];c&&(c.style.cursor="auto")}}function zl(a,b){return b?(b.addEventListener("mousemove",function(b){Al(a,b)},!1),b.addEventListener("mousedown",function(b){Al(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Al(a,b,!1)},!1),b.style.cursor="none",!0):!1}
|
||||
function Al(a,b,c){if(void 0!==c){var d;!(d=!1!==a.W)&&(d=a.F.length)&&(d=a.F[0],d=d.Xd?d.Md(!0):!1);d||(a.W=null);a.ie(b.button,c)}else{if(0>a.J||0>a.K)a.J=b.clientX,a.K=b.clientY;a.W?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.J,d=b.clientY-a.K);a.J=b.clientX;a.K=b.clientY;a.qg(c,d,a.J,a.K)}}
|
||||
f.ie=function(a,b){if(this.$b&&this.A&&this.A.ja.Rb)switch(a){case Ok:this.O!=b&&(this.O=b,Bl(this));break;case 2:this.S!=b&&(this.S=b,Bl(this))}};f.qg=function(a,b){this.$b&&this.A&&this.A.ja.Rb&&(a||b)&&(this.N=a,this.T=b,Bl(this))};function Bl(a){ql(a.H,[64|(a.O?32:0)|(a.S?16:0)|(a.T&192)>>4|(a.N&192)>>6,a.N&63,a.T&63]);a.N=a.T=0}Ea(function(){for(var a=Xa(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new xl(d);Wa(d,c)}});
|
||||
f.ie=function(a,b){if(this.$b&&this.A&&this.A.ja.Rb)switch(a){case Ok:this.O!=b&&(this.O=b,Bl(this));break;case 2:this.S!=b&&(this.S=b,Bl(this))}};f.qg=function(a,b){this.$b&&this.A&&this.A.ja.Rb&&(a||b)&&(this.N=a,this.T=b,Bl(this))};function Bl(a){ql(a.H,[64|(a.O?32:0)|(a.S?16:0)|(a.T&192)>>4|(a.N&192)>>6,a.N&63,a.T&63]);a.N=a.T=0}Ea(function(){for(var a=Xa(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new xl(d);Wa(d,c)}});
|
||||
function Cl(a,b,c){Ia.call(this,"Disk",{id:a.sh+".disk"+da(++Dl,4)},Cl);this.controller=a;this.ua=a.ua;this.Ta=a.Ta;this.D=b;this.B=b.name;this.ne=b.ne;this.Df=this.F=!1;El(this,c,b.sb,b.tb,b.xb,b.qb);this.K=[];this.O=[];this.H=null;this.W=0;this.S=!1;Za(this)}var Dl=0;Qa(Cl);f=Cl.prototype;f.oc=function(a,b,c,d){this.Ta=d};f.Tb=function(a,b){b||!this.Df||this.F||(Za(this,!1),this.load(this.B,this.J,null,this.Lj,this));return!0};f.Lj=function(){Za(this,!0)};
|
||||
f.Sb=function(a,b){if(this.F){var c,d=0;if(this.S&&!sa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Fl(this,!1);)if(d=c[0]){this.controller.Ka('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.F&&(c="action=close&volume="+this.J,c+="&machine="+this.controller.re(),c+="&user="+this.controller.yd(),pa(qa()+"/api/v1/disk?"+c,!0),this.F=!1);!d&&a&&this.controller.Ka(this.B+" saved")}return!0};
|
||||
function El(a,b,c,d,e,k){a.mode=b;a.sb=c;a.tb=d;a.xb=e;a.qb=k;a.A=[];if("preload"!=a.mode){b=Array(a.sb);for(c=0;c<b.length;c++){d=Array(a.tb);for(e=0;e<d.length;e++){k=Array(a.xb);for(var l=1;l<=k.length;l++)k[l-1]=Gl(null,c,e,l,a.qb,"local"==a.mode?0:null);d[e]=k}b[c]=d}a.A=b}a.T=null}
|
||||
|
|
@ -971,8 +971,7 @@ function Nl(a){Ia.call(this,"FDC",a,Nl);this.dmaRead=this.tj;this.dmaWrite=this.
|
|||
f.Eb=function(a,b,c){var d=this;switch(b){case "listDisks":return this.qa[b]=c,c.onchange=function(){var a=d.qa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var l={};if(b=b.getAttribute("data-value"))try{l=eval("("+b+")")}catch(p){ra("FDC option error: "+p.message)}b=l.desc;void 0===b&&(b="");l=l.href;void 0!==l&&(b='<a href="'+l+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Pl(d,a)},!0;
|
||||
case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&Ql(d,a.options[a.selectedIndex].text,a.value)},!0;case "mountDrive":return this.da?(this.qa[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Ql(d,ea(b,!0),b,a)}return!1}):c.parentNode.removeChild(c),!0}return!1};
|
||||
f.oc=function(a,b,c,d){this.na=b;this.A=c;this.Ta=d;this.ua=a;this.T=ib(a,"ChipSet");if((this.N=Rl(this.ua,"autoMount")||this.N)&&"string"==typeof this.N)try{this.N=eval("("+this.N+")")}catch(e){ra("FDC auto-mount error: "+e.message+" ("+this.N+")"),this.N=null}Sl(this);Lb(b,this,Tl);Nb(b,this,Ul);this.da&&Vl(this,"Local Disk","?");Vl(this,"Remote Disk","??");Wl(this)||Za(this)};
|
||||
f.Tb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ua.mg){this.D=[];for(var c=0;c<this.B.length;c++)Xl(this,c,!0);Wl(this,!0)}}else if(!this.restore(a))return!1;if(c=this.qa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.Z;d++){var e=window.document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Z&&(c.value="0",Pl(this,0))}}return!0};f.Sb=function(a){return a?this.save():!0};
|
||||
f.reset=function(){Sl(this)};
|
||||
f.Tb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ua.mg){this.D=[];for(var c=0;c<this.B.length;c++)Xl(this,c,!0);Wl(this,!0)}}else if(!this.restore(a))return!1;if(c=this.qa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.Z;d++){var e=document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Z&&(c.value="0",Pl(this,0))}}return!0};f.Sb=function(a){return a?this.save():!0};f.reset=function(){Sl(this)};
|
||||
f.save=function(){var a=new Rd(this),b=0,c=[];c[b++]=this.Xa;c[b++]=0;c[b++]=this.ga;c[b++]=this.K;c[b++]=this.H;c[b++]=this.F;c[b++]=this.W;for(var d=b++,e=0,k=[],l=0;l<this.B.length;l++){var p=e++,q=this.B[l],w=0,B=[];B[w++]=q.nb;B[w++]=[q.name,q.sb,q.tb,q.xb,q.qb,q.ne,q.Kf,q.Se,q.Te];B[w++]=q.bb;B[w++]=q.ud+100;B[w++]=q.Bb;B[w++]=q.pb;B[w++]=q.vd;B[w++]=q.zb;B[w++]=q.Ya;B[w++]=q.le;B[w++]=q.jj;B[w]=q.Ud;k[p]=B}c[d]=k;d=b++;for(e=0;e<this.B.length;e++)k=this.B[e],k.Aa&&Yl(this,k.Ud,k.Aa);c[d]=this.D;
|
||||
c[b++]=this.O;c[b]=this.J;D(a,0,c);return a.data()};f.restore=function(a){return Sl(this,a[0])};
|
||||
function Sl(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Xa=b[c++];c++;a.ga=b[c++];a.K=b[c++];a.H=b[c++];a.F=b[c++];a.W=b[c++];var k=b[c++];d=b[c++];null!=d&&(a.D=d);void 0===a.B&&(a.Z=4,a.T&&(a.Z=Qi(a.T)),a.B=Array(4));for(d=0;d<a.B.length;d++){var l=a.B[d];if(void 0===l){var l=a.B[d]={},p;if(a.T)a:{p=a.T;if(d<Qi(p)){if(!p.ha){p=360;break a}if(d<p.ha.length){p=p.ha[d];break a}}p=0}else p=0;switch(p){case 160:case 180:l.tb=1;default:l.sb=40;l.xb=9;break;case 720:l.sb=80;l.xb=
|
||||
|
|
@ -980,9 +979,9 @@ function Sl(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Xa
|
|||
B[G++];l.Ya=B[G++];l.Za=null;l.Aa||(l.Ud="");C=B[G++];102==C&&(C=!1);if("boolean"==typeof C){var J=C,C=B[G++],B=B[G];J?(G=C,C=q.B[w],Xl(q,w,!0,!0),C.le=!0,w=new Cl(q,C,"preload"),q.Qh(C,w,G,B,!0)):Zl(q,w,C,B,!0)?l.Aa&&B&&$l(q,C,B,l.Aa):Za(q,!1)}else void 0!==C&&l.Aa&&0>l.Aa.restore(C)&&(p=!1);p&&l.Aa&&void 0!==l.Ya&&(l.Za=l.Aa.seek(l.Bb,l.bb,l.pb));p||(e=!1)}a.O=b[c++]||0;a.J=b[c]||0;return e}
|
||||
function Wl(a,b){b||(a.S=0);if(a.N)for(var c in a.N){var d=a.N[c],e=d.path,k;if(!(k=d.name))a:{if((k=a.qa.listDisks)&&k.options)for(var l=0;l<k.options.length;l++)if(k.options[l].value==e){k=k.options[l].innerText;break a}k=ea(e,!0)}if(e&&k&&(l=c.charCodeAt(0)-65,0<=l&&l<a.B.length)){!Zl(a,l,k,e,!0)&&b&&Za(a,!1);continue}a.Ka("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.S}
|
||||
function Ql(a,b,c,d){var e,k=a.qa.listDrives;if(k&&!isNaN(e=ca(k.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ka('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=ea(c);a.cc("Attempting to load "+c+' as "'+b+'"')}for(a.cc("loading disk "+c+"...");Zl(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var k=a,l=c,
|
||||
p=void 0,p=0;p<k.D.length;p++)if(k.D[p][1]==l){k.D.splice(p,1);break}Xl(a,e,!1,!0)}}else Xl(a,e);else a.Ka("Nothing to load")}function Zl(a,b,c,d,e,k){var l=a.B[b];if(d&&l.Ud!=d){Xl(a,b,e,!0);if(l.Nc)return a.Ka("Drive "+b+" busy"),!0;l.Nc=!0;e&&(l.Kd=!0,a.S++);l.le=!!k;(new Cl(a,l,"preload")).load(c,d,k,a.Qh);return!1}return!0}
|
||||
p=void 0,p=0;p<k.D.length;p++)if(k.D[p][1]==l){k.D.splice(p,1);break}Xl(a,e,!1,!0)}}else Xl(a,e);else a.Ka("Unable to load the selected drive")}function Zl(a,b,c,d,e,k){var l=a.B[b];if(d&&l.Ud!=d){Xl(a,b,e,!0);if(l.Nc)return a.Ka("Drive "+b+" busy"),!0;l.Nc=!0;e&&(l.Kd=!0,a.S++);l.le=!!k;(new Cl(a,l,"preload")).load(c,d,k,a.Qh);return!1}return!0}
|
||||
f.Qh=function(a,b,c,d,e){var k;a.Nc=!1;b&&(k=b.info(),b&&k[0]>a.sb||k[1]>a.tb)&&(this.Ka('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Xa)),b=null);b?(a.Aa=b,a.jj=c,a.Ud=d,$l(this,c,d,b),k=b.info(),this.O|=128,this.Ka('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Xa),a.Kd||e),a.Kf=k[0],a.Se=k[1],a.Te=k[2]):a.le=!1;a.Kd&&(a.Kd=!1,--this.S||Za(this));Pl(this,a.Xa)};
|
||||
function Vl(a,b,c){if((a=a.qa.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=window.document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
|
||||
function Vl(a,b,c){if((a=a.qa.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}
|
||||
function Pl(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.qa.listDisks,e=a.qa.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.le?"?":c.Ud,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Xl(a,b,c,d){var e=a.B[b];e.Aa&&(Yl(a,e.Ud,e.Aa),e.jj="",e.Ud="",e.Aa=null,e.le=!1,a.O|=128,d||a.Ka("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Pl(a,b))}
|
||||
function $l(a,b,c,d){var e;for(e=0;e<a.D.length;e++)if(a.D[e][1]==c){d.restore(a.D[e][2]);return}a.D[e]=[b,c,[]]}function Yl(a,b,c){var d;for(d=0;d<a.D.length;d++)if(a.D[d][1]==b){a.D[d][2]=c.save();break}}f.Cl=function(a,b){b&4?this.W&4||this.W&8&&this.T&&Je(this.T,6):Sl(this);this.W=b};f.rk=function(){return this.ga};f.pk=function(){var a=0;this.H<this.F&&(a=this.K[this.H]);this.W&8&&this.T&&Ie(this.T,6);++this.H>=this.F&&(this.ga&=-81,this.H=this.F=0);return a};
|
||||
f.Bl=function(a,b){this.F<this.K.length&&(this.K[this.F++]=b);var c=this.K[0]&31;if(void 0!==Ol[c]&&this.F>=Ol[c].dd){var d=!1;this.H=0;var c=am(this),e,k,l,p,q,w=c&31;switch(w){case 3:am(this);am(this);bm(this);break;case 4:k=am(this);this.Xa=k&3;e=this.B[this.Xa];bm(this);cm(this,(e.nb&-16777216)>>>24);break;case 5:case 6:k=am(this);d=k>>2&1;this.Xa=k&3;e=this.B[this.Xa];e.bb=d;k=e.Bb=am(this);l=am(this);p=e.pb=am(this);q=am(this);e.zb=128<<q;e.vd=am(this);am(this);am(this);6==w?(w=e,w.nb=72,w.Aa&&
|
||||
|
|
@ -991,7 +990,7 @@ e.pb=1;q=0;e.nb=0;e.Aa&&(e.Za=e.Aa.seek(e.Bb,e.bb,e.pb))?q=e.Za.length>>8:e.nb=7
|
|||
k-e.ud,0>e.Bb&&(e.Bb=0),e.Bb>=e.sb&&(e.Bb=e.sb-1),e.ud=k,e.nb=32,e.Bb||(e.nb|=268435456),bm(this),d=!0}0<this.F&&(this.ga|=80);this.W&8&&(!e||e.nb&8||!d||this.T&&Je(this.T,6))}};f.qk=function(){var a=this.O;this.O&=-129;return a};f.Al=function(a,b){this.J=b};function dm(a,b,c,d,e,k,l,p){bm(a);cm(a,b.Xa|b.bb<<2|b.nb&255);cm(a,(b.nb&65280)>>>8);cm(a,(b.nb&16711680)>>>16);var q=0;if(e!=b.Bb||k!=b.bb)q=l=1;c&128&&(k^=q,d||(q=0));cm(a,e+q);cm(a,k);cm(a,l);cm(a,p)}
|
||||
function am(a){var b=a.K[a.H];a.H++;return b}function bm(a){a.H=a.F=0}function cm(a,b){a.K[a.F++]=b}f.tj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.nb&&a.Aa){do{if(a.Za&&(e=a.Ya,0<=(b=a.Aa.read(a.Za,a.Ya++)))){d=a.Za;break}a.Za=a.Aa.seek(a.Bb,a.bb,a.pb);if(!a.Za){a.nb=1088;break}a.Ya=0;em(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};f.uj=function(a,b){return void 0!==b&&0<=b?fm(a,b):-1};
|
||||
f.Hj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.nb)c=-1;else{a.Mc[a.he++]=c;if(a.he==a.Mc.length){a.Bb=a.Mc[0];a.bb=a.Mc[1];a.pb=a.Mc[2];a.zb=128<<a.Mc[3];for(var d=a.he=0;d<a.zb;d++)if(0>fm(a,a.Jh)){c=-1;break a}a.yf++}a.yf>=a.vd&&(c=-1)}else c=-1;return c};function fm(a,b){if(a.nb||!a.Aa)return-1;do{if(a.Za&&a.Aa.write(a.Za,a.Ya++,b))break;a.Za=a.Aa.seek(a.Bb,a.bb,a.pb);if(!a.Za){a.nb=8256;b=-1;break}a.Ya=0;em(a)}while(1);return b}
|
||||
function em(a){a.pb++;a.pb>=a.Te+1&&(a.pb=1,a.bb++,a.bb>=a.Se&&(a.bb=0,a.Bb++))}var Tl={1012:Nl.prototype.rk,1013:Nl.prototype.pk,1015:Nl.prototype.qk},Ul={1010:Nl.prototype.Cl,1013:Nl.prototype.Bl,1015:Nl.prototype.Al};Ea(function(){for(var a=Xa(window.document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Nl(d);Wa(d,c)}});
|
||||
function em(a){a.pb++;a.pb>=a.Te+1&&(a.pb=1,a.bb++,a.bb>=a.Se&&(a.bb=0,a.Bb++))}var Tl={1012:Nl.prototype.rk,1013:Nl.prototype.pk,1015:Nl.prototype.qk},Ul={1010:Nl.prototype.Cl,1013:Nl.prototype.Bl,1015:Nl.prototype.Al};Ea(function(){for(var a=Xa(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new Nl(d);Wa(d,c)}});
|
||||
function gm(a){Ia.call(this,"HDC",a,gm);this.dmaRead=this.vj;this.dmaWrite=this.wj;this.dmaWriteBuffer=this.Ij;this.dmaWriteFormat=this.Jj;this.ta=[];if(a.drives)try{this.ta=eval("("+a.drives+")")}catch(b){ra("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.Z="at"==a.type}Qa(gm);
|
||||
var hm=["XTC","ATC","COMPAQ"],im=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
|
||||
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];f=gm.prototype;f.Eb=function(){return!1};
|
||||
|
|
@ -1019,7 +1018,7 @@ function Fm(a,b,c){b.errorCode=4;b.de&&b.de.length==b.zb||(b.de=Array(b.zb));b.Y
|
|||
function sm(a,b,c){var d=-1,e=null,k=0;if(a.errorCode)return b&&b(d,!1,e,k),d;var l=!1!==c?1:0;if(a.Za&&(k=a.Ya,d=a.Aa.read(a.Za,a.Ya),a.Ya+=l,0<=d))return e=a.Za,b&&b(d,!1,e,k),d;if(b){if(a.Aa)return a.Aa.seek(a.Fd,a.bb,a.pb+a.xf,!1,function(c,q){(a.Za=c)?(e=c,k=a.Ya=0,Gm(a),d=a.Aa.read(a.Za,a.Ya),a.Ya+=l):a.errorCode=20;b(d,q,e,k)}),d;a.errorCode=20;b(d,!1,e,k)}return d}
|
||||
function vm(a,b){if(a.errorCode)return-1;do{if(a.Za&&a.Aa.write(a.Za,a.Ya++,b))break;a.Aa&&a.Aa.seek(a.Fd,a.bb,a.pb+a.xf,!0,function(b){a.Za=b});if(!a.Za){a.errorCode=20;b=-1;break}a.Ya=0;Gm(a)}while(1);return b}function Gm(a){a.pb++;var b=1-a.xf;a.pb>=a.xb+b&&(a.pb=b,a.bb++,a.bb>=a.tb&&(a.bb=0,a.Fd++))}f.Vk=function(){var a=this.A.I&255;!(this.A.G>>8)&&128<a&&(this.da=a-128);return!0};f.Wk=function(){var a;(a=this.A.G>>8||!this.T)||(a=!(this.T.fc[0].Vc&64));return a?!0:!1};
|
||||
var km={800:gm.prototype.Sk,801:gm.prototype.Tk,802:gm.prototype.Rk},jm={496:gm.prototype.xj,497:gm.prototype.Yj,498:gm.prototype.$j,499:gm.prototype.ak,500:gm.prototype.Wj,501:gm.prototype.Vj,502:gm.prototype.Xj,503:gm.prototype.bk},mm={800:gm.prototype.$l,801:gm.prototype.cm,802:gm.prototype.bm,803:gm.prototype.am,807:gm.prototype.kh,811:gm.prototype.kh,815:gm.prototype.kh},lm={496:gm.prototype.il,497:gm.prototype.nl,498:gm.prototype.ll,499:gm.prototype.ml,500:gm.prototype.hl,501:gm.prototype.gl,
|
||||
502:gm.prototype.jl,503:gm.prototype.fl,1014:gm.prototype.kl};Ea(function(){for(var a=Xa(window.document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new gm(d);Wa(d,c)}});function Rd(a,b,c){this.id=a.id;this.key=Hm(a,b,c);this.Ta=a.Ta;Im(this,a.Dj)}function Hm(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}
|
||||
502:gm.prototype.jl,503:gm.prototype.fl,1014:gm.prototype.kl};Ea(function(){for(var a=Xa(document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=Ua(c),d=new gm(d);Wa(d,c)}});function Rd(a,b,c){this.id=a.id;this.key=Hm(a,b,c);this.Ta=a.Ta;Im(this,a.Dj)}function Hm(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}
|
||||
Rd.prototype={constructor:Rd,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:ua()&&(a=va(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Im(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 Im(a,b){a[a.id]={};b&&D(a,"parms",b);a.A=!1}function Jm(a){var b=!0;if(ua()){var c=JSON.stringify(a[a.id]);wa(a.key,c)||(ra("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Km(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){ra(c.message||c),b=!1}return b}function Lm(a,b){return a[a.id][b]||null}function D(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function Mm(a,b,c){Ia.call(this,"Computer",a,Mm);this.ja.Qb=!1;this.T=b;this.N=Rl(this,"autoPower",a);this.D=0;this.Z=a.busWidth||a.buswidth;this.rc=Nm;this.J=null;this.H=this.W=!1;this.da=Rl(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=Om(this);if(this.A=Ta("CPU",this.id)){this.Ta=Ta("Debugger",this.id);this.na=new pb({id:this.sh+".bus",buswidth:this.Z},this.A,this.Ta);var d,e=Ra(this.id);if((this.md=Ta("Panel",this.id))&&this.md.ig)for(b=0;b<e.length;b++)d=e[b],d.Ka=
|
||||
|
|
@ -1038,12 +1037,12 @@ f.Eb=function(a,b,c){var d=this;switch(b){case "power":return this.qa[b]=c,c.onc
|
|||
function(){var a=Om(d,!0);if(a){var b=!!(d.rc&&!d.uf||d.O),c=Um(d,b);b?Vm(d,a,c):d.Ka("Resume disabled, machine state not saved")}},!0}return!1};function Om(a,b){var c=a.B;c||(c=va("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=Wm(a,c))||a.Ka("The user ID is invalid."))):b&&a.Ka("Browser local storage is not available"));return c}
|
||||
function Wm(a,b){a.B=null;var c=pa(qa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(wa("user",c.data),a.B=c.data)}catch(e){ra(e.message+" ("+d+")")}return a.B}
|
||||
function Vm(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hm(a,Pm);d.data=c;b=pa(qa()+"/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.Ka("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.Ka(c),wa("user",""),a.B=null)}}
|
||||
function ib(a,b,c){a=Ra(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}Ea(function(){for(var a=Xa(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Ua(c),c=Xa(c,"pcjs","computer"),e=0;e<c.length;e++){var k=c[e],l=Ua(k),l=new Mm(l,d,!0);Wa(l,k);l.N&&Qm(l,l.cf)}});ya.show.push(function(){for(var a=Xa(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=Ua(a[b]);(c=Ta("Computer",c.id))&&c.Dh&&!c.ja.Qb&&c.cf(-1)}});
|
||||
ya.exit.push(function(){for(var a=Xa(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=Ua(a[b]);(c=Ta("Computer",c.id))&&c.ja.Qb&&Um(c,!(!c.rc||c.uf),!0)}});var Xm=0;function Ym(a,b,c,d,e,k){e("Loading "+a+"...");pa(a,!0,null,null,function(l,p,q){q?(p||(p="unable to load "+a+" ("+q+")"),k(p,null)):Zm(p,a,b,c,d,e,k)})}
|
||||
function ib(a,b,c){a=Ra(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}Ea(function(){for(var a=Xa(document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=Ua(c),c=Xa(c,"pcjs","computer"),e=0;e<c.length;e++){var k=c[e],l=Ua(k),l=new Mm(l,d,!0);Wa(l,k);l.N&&Qm(l,l.cf)}});ya.show.push(function(){for(var a=Xa(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Ua(a[b]);(c=Ta("Computer",c.id))&&c.Dh&&!c.ja.Qb&&c.cf(-1)}});
|
||||
ya.exit.push(function(){for(var a=Xa(document,"pcjs","computer"),b=0;b<a.length;b++){var c=Ua(a[b]);(c=Ta("Computer",c.id))&&c.ja.Qb&&Um(c,!(!c.rc||c.uf),!0)}});var Xm=0;function Ym(a,b,c,d,e,k){e("Loading "+a+"...");pa(a,!0,null,null,function(l,p,q){q?(p||(p="unable to load "+a+" ("+q+")"),k(p,null)):Zm(p,a,b,c,d,e,k)})}
|
||||
function Zm(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){var p=b;p&&0>p.indexOf("/")&&(p=window.location.pathname+p);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+p+'"}';a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(p?' url="'+p+'"':""))}p=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(p=new window.ActiveXObject("Microsoft.XMLDOM"),
|
||||
p.async=!1,p.loadXML(a)):p=(new window.DOMParser).parseFromString(a,"text/xml")}catch(G){p=null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?$m(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
|
||||
function $m(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],w,B=/( [a-z]+=)(['"])(.*?)\2/g;w=B.exec(k);)q=0>q.indexOf(w[1])?q.replace(">",w[0]+">"):q.replace(new RegExp(w[1]+"(['\"])(.*?)\\1"),w[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],l);$m(a,b,c)}})}else c(a,null)}
|
||||
function an(a,b,c,d){function e(a){if(void 0===p){var b=l&&Xa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--Xm||Ga(!0));q=!1}var l,p,q=!0;Xm++;try{if(l=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--Xm||Ga(!0)):k("transformNodeToObject failed")}else window.document.implementation&&
|
||||
window.document.implementation.createDocument?(w=new XSLTProcessor,w.importStylesheet(q),(w=w.transformToFragment(p,window.document))?l.parentNode?(l.parentNode.replaceChild(w,l),--Xm||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k("failed to load XSL file: "+c);else k(d)};p?Ym(c,null,null,!1,e,q):k("failed to load XML file: "+b)}else k(d)};"<"!=b.charAt(0)?Ym(b,a,d,!0,e,w):Zm(b,null,a,d,!1,e,w)}else k("missing machine element: "+
|
||||
function an(a,b,c,d){function e(a){if(void 0===p){var b=l&&Xa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--Xm||Ga(!0));q=!1}var l,p,q=!0;Xm++;try{if(l=document.getElementById(a)){c||(c="/versions/pcjs/1.20.9/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--Xm||Ga(!0)):k("transformNodeToObject failed")}else document.implementation&&
|
||||
document.implementation.createDocument?(w=new XSLTProcessor,w.importStylesheet(q),(w=w.transformToFragment(p,document))?l.parentNode?(l.parentNode.replaceChild(w,l),--Xm||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k("failed to load XSL file: "+c);else k(d)};p?Ym(c,null,null,!1,e,q):k("failed to load XML file: "+b)}else k(d)};"<"!=b.charAt(0)?Ym(b,a,d,!0,e,w):Zm(b,null,a,d,!1,e,w)}else k("missing machine element: "+
|
||||
a)}catch(B){k(B.message)}return q}window.embedPC=function(a,b,c,d){Ga(!1);return an(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();
|
||||
|
|
|
|||
451
modules/build/lib/build.js
Normal file
451
modules/build/lib/build.js
Normal file
|
|
@ -0,0 +1,451 @@
|
|||
/**
|
||||
* @fileoverview PCjs Build Options
|
||||
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
|
||||
* @version 1.0
|
||||
* Created 2016-Feb-10
|
||||
*
|
||||
* Copyright © 2012-2016 Jeff Parsons <Jeff@pcjs.org>
|
||||
*
|
||||
* This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
|
||||
* and <http://pcjs.org/>.
|
||||
*
|
||||
* JSMachines is free software: you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation, either version 3
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with JSMachines.
|
||||
* If not, see <http://www.gnu.org/licenses/gpl.html>.
|
||||
*
|
||||
* You are required to include the above copyright notice in every source code file of every
|
||||
* copy or modified version of this work, and to display that copyright notice on every screen
|
||||
* that loads or runs any version of this software (see Computer.COPYRIGHT).
|
||||
*
|
||||
* Some JSMachines files also attempt to load external resource files, such as character-image files,
|
||||
* ROM files, and disk image files. Those external resource files are not considered part of the
|
||||
* JSMachines Project for purposes of the GNU General Public License, and the author does not claim
|
||||
* any copyright as to their contents.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* This file provides all the UI options for building a functional PCjs PC.
|
||||
*/
|
||||
|
||||
var typeAddress = {
|
||||
type: "address"
|
||||
};
|
||||
|
||||
var typeBoolean = {
|
||||
type: "boolean"
|
||||
};
|
||||
|
||||
var typeNumber = {
|
||||
type: "number"
|
||||
};
|
||||
|
||||
var typePath = {
|
||||
type: "string"
|
||||
};
|
||||
|
||||
var typeString = {
|
||||
type: "string"
|
||||
};
|
||||
|
||||
var typeElement = {
|
||||
type: "element"
|
||||
};
|
||||
|
||||
var machineOptions = {
|
||||
'ibm5150': "IBM PC (Model 5150)",
|
||||
'ibm5160': "IBM PC XT (Model 5160)",
|
||||
'ibm5170': "IBM PC AT (Model 5170)",
|
||||
'deskpro386': "COMPAQ DeskPro 386"
|
||||
};
|
||||
|
||||
var videoLEDCapsLock = {
|
||||
'control': {
|
||||
_type: typeElement,
|
||||
'type': {
|
||||
_type: typeString,
|
||||
_value: "led"
|
||||
},
|
||||
'label': {
|
||||
_type: typeString,
|
||||
_value: "Caps"
|
||||
},
|
||||
'binding': {
|
||||
_type: typeString,
|
||||
_value: "caps-lock"
|
||||
},
|
||||
'pad-left': {
|
||||
_type: typeString,
|
||||
_value: "8px"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var videoLEDNumLock = {
|
||||
'control': {
|
||||
_type: typeElement,
|
||||
'type': {
|
||||
_type: typeString,
|
||||
_value: "led"
|
||||
},
|
||||
'label': {
|
||||
_type: typeString,
|
||||
_value: "Num"
|
||||
},
|
||||
'binding': {
|
||||
_type: typeString,
|
||||
_value: "num-lock"
|
||||
},
|
||||
'pad-left': {
|
||||
_type: typeString,
|
||||
_value: "8px"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var videoLEDScrollLock = {
|
||||
'control': {
|
||||
_type: typeElement,
|
||||
'type': {
|
||||
_type: typeString,
|
||||
_value: "led"
|
||||
},
|
||||
'label': {
|
||||
_type: typeString,
|
||||
_value: "Scroll"
|
||||
},
|
||||
'binding': {
|
||||
_type: typeString,
|
||||
_value: "scroll-lock"
|
||||
},
|
||||
'pad-left': {
|
||||
_type: typeString,
|
||||
_value: "8px"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var videoLEDContainer = {
|
||||
_type: typeElement,
|
||||
_value: [videoLEDCapsLock, videoLEDNumLock, videoLEDScrollLock],
|
||||
'type': {
|
||||
_type: typeString,
|
||||
_value: "container"
|
||||
},
|
||||
'pos': {
|
||||
_type: typeString,
|
||||
_value: "right"
|
||||
}
|
||||
};
|
||||
|
||||
var videoCGALEDContainer = {
|
||||
'title': {
|
||||
_type: typeElement,
|
||||
_value: "Color Display"
|
||||
},
|
||||
'control': videoLEDContainer
|
||||
};
|
||||
|
||||
var videoCGALEDMenu = {
|
||||
'menu': {
|
||||
_type: typeElement,
|
||||
_value: videoCGALEDContainer
|
||||
}
|
||||
};
|
||||
|
||||
var machineElements = {
|
||||
'name': {
|
||||
_type: typeElement,
|
||||
_desc: "Machine Description",
|
||||
_value: "IBM PC"
|
||||
},
|
||||
'computer': {
|
||||
_type: typeElement,
|
||||
_desc: "General Computer Features",
|
||||
_value: null,
|
||||
'buswidth': {
|
||||
_type: typeNumber,
|
||||
_desc: "Bus width",
|
||||
_opts: {
|
||||
20: "20-bit bus",
|
||||
24: "24-bit bus",
|
||||
32: "32-bit bus"
|
||||
}
|
||||
},
|
||||
'resume': {
|
||||
_type: typeNumber,
|
||||
_desc: "Resume option",
|
||||
_opts: {
|
||||
0: "Resume Disabled",
|
||||
1: "Resume Enabled",
|
||||
2: "Resume with Prompt"
|
||||
}
|
||||
}
|
||||
},
|
||||
'ram': {
|
||||
_type: typeElement,
|
||||
_desc: "Read-Write Memory (Conventional or Extended)",
|
||||
_multi: true,
|
||||
_value: [
|
||||
{
|
||||
'id': "ramLow",
|
||||
'addr': "0x00000"
|
||||
}
|
||||
],
|
||||
'id': {
|
||||
_type: typeString
|
||||
},
|
||||
'addr': {
|
||||
_type: typeAddress
|
||||
},
|
||||
'size': {
|
||||
_type: typeNumber
|
||||
}
|
||||
},
|
||||
'rom': {
|
||||
_type: typeElement,
|
||||
_desc: "Read-Only Memory",
|
||||
_multi: true,
|
||||
_value: [
|
||||
{
|
||||
'id': "romBASIC",
|
||||
'addr': "0xf6000",
|
||||
'size': "0x8000",
|
||||
'file': "/devices/pc/rom/5150/basic/BASIC100.json"
|
||||
},
|
||||
{
|
||||
'id': "romBIOS",
|
||||
'addr': "0xfe000",
|
||||
'size': "0x2000",
|
||||
'file': "/devices/pc/rom/5150/bios/1981-04-24/PCBIOS-REV1.json"
|
||||
}
|
||||
],
|
||||
'addr': {
|
||||
_type: typeAddress
|
||||
},
|
||||
'size': {
|
||||
_type: typeNumber
|
||||
},
|
||||
'file': {
|
||||
_type: typePath
|
||||
}
|
||||
},
|
||||
'video': {
|
||||
_type: typeElement,
|
||||
_desc: "Video Adapter",
|
||||
_multi: false,
|
||||
_opts: {
|
||||
'cga': {
|
||||
'screenwidth': {
|
||||
_type: typeNumber,
|
||||
_opts: [960]
|
||||
},
|
||||
'screenheight': {
|
||||
_type: typeNumber,
|
||||
_opts: [480]
|
||||
},
|
||||
'scale': {
|
||||
_type: typeBoolean,
|
||||
_opts: [true]
|
||||
},
|
||||
'charset': {
|
||||
_type: typePath,
|
||||
_opts: ["/devices/pc/video/ibm/cga/ibm-cga.json"]
|
||||
},
|
||||
'pos': {
|
||||
_type: typeString,
|
||||
_opts: ["center"]
|
||||
},
|
||||
'padding': {
|
||||
_type: typeString,
|
||||
_opts: ["8px"]
|
||||
},
|
||||
'controls': videoCGALEDMenu
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var pcElements = {
|
||||
'machine': {
|
||||
_desc: "Machine",
|
||||
_type: typeElement,
|
||||
_opts: machineOptions,
|
||||
_value: machineElements,
|
||||
'id': {
|
||||
_type: typeString
|
||||
},
|
||||
'class': {
|
||||
_type: typeString,
|
||||
_value: "pc"
|
||||
},
|
||||
'border': {
|
||||
_type: typeNumber,
|
||||
_value: "1"
|
||||
},
|
||||
'pos': {
|
||||
_type: typeString,
|
||||
_value: "center"
|
||||
},
|
||||
'background': {
|
||||
_type: typeString,
|
||||
_value: "#FAEBD7"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* As we build a PC, elements will be added to pcState that mirror the template structures above. Also,
|
||||
* as choices are made, the identifier of that choice will be added as the 'id' of the corresponding element.
|
||||
*
|
||||
* 'machine': {
|
||||
* 'id': "ibm5150",
|
||||
* 'class': "pc",
|
||||
* 'border': "1",
|
||||
* 'pos': "center"
|
||||
* 'background': "#FAEBD7"
|
||||
* 'name': {
|
||||
* },
|
||||
* 'computer': {
|
||||
* },
|
||||
* 'ram': {
|
||||
* }
|
||||
* // ...
|
||||
* }
|
||||
*/
|
||||
var pcState = {};
|
||||
|
||||
/**
|
||||
* findNewItem(state, template)
|
||||
*
|
||||
* @param {Object} state (eg, pcState)
|
||||
* @param {Object} template (eg, pcElements)
|
||||
* @return {Object|null} (eg, state['machine'])
|
||||
*/
|
||||
function findNewItem(state, template)
|
||||
{
|
||||
for (var item in template) {
|
||||
|
||||
if (item.charAt(0) == '_') continue;
|
||||
|
||||
if (state[item] === undefined) {
|
||||
state[item] = {
|
||||
_template: template[item]
|
||||
};
|
||||
return state[item];
|
||||
}
|
||||
|
||||
if (typeof template[item] == "object") {
|
||||
var itemNext = findNewItem(state[item], template[item]);
|
||||
if (itemNext) return itemNext;
|
||||
}
|
||||
}
|
||||
|
||||
if (template._type == typeElement && template._value && typeof template._value == "object") {
|
||||
return findNewItem(state, template._value);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* setNewItem(idHTML, eHTML, item)
|
||||
*
|
||||
* @param {string} idHTML
|
||||
* @param {Object} eHTML
|
||||
* @param {Object} item (ie, a node in pcState with a _template that contains _opts)
|
||||
*/
|
||||
function setNewItem(idHTML, eHTML, item)
|
||||
{
|
||||
/*
|
||||
* First, remove any old options...
|
||||
*
|
||||
while (eHTML.firstChild) {
|
||||
eHTML.removeChild(eHTML.firstChild);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* Next, add a new set of options....
|
||||
*/
|
||||
var value;
|
||||
var opts = item._template._opts;
|
||||
if (!opts) {
|
||||
value = item._template._value;
|
||||
if (value) {
|
||||
populateItem(item, null);
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* Add an input field to prompt for the value...
|
||||
*/
|
||||
}
|
||||
setTimeout(function() { buildPC(idHTML) }, 0);
|
||||
}
|
||||
else {
|
||||
var eSelect = document.createElement("select");
|
||||
var eOption = document.createElement("option");
|
||||
eOption['value'] = "none";
|
||||
eOption.textContent = "Select a " + item._template._desc + "...";
|
||||
eSelect.appendChild(eOption);
|
||||
for (value in opts) {
|
||||
eOption = document.createElement("option");
|
||||
eOption['value'] = value;
|
||||
eOption.textContent = opts[value];
|
||||
eSelect.appendChild(eOption);
|
||||
}
|
||||
eSelect.onchange = function(event) {
|
||||
var id = eSelect.value;
|
||||
if (id != "none" && id != item.id) {
|
||||
populateItem(item, id);
|
||||
setTimeout(function() { buildPC(idHTML) }, 0);
|
||||
}
|
||||
};
|
||||
eHTML.appendChild(eSelect);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* populateItem(item, id)
|
||||
*
|
||||
* @param {Object} item (eg, state['machine'])
|
||||
* @param {string|null} id for item
|
||||
*/
|
||||
function populateItem(item, id)
|
||||
{
|
||||
if (id) item.id = id;
|
||||
for (var prop in item._template) {
|
||||
if (prop == '_value' && !id) {
|
||||
item[prop] = item._template[prop];
|
||||
}
|
||||
if (prop.charAt(0) != '_') {
|
||||
var attr = item._template[prop];
|
||||
if (item[prop] === undefined && typeof attr._value == "string") {
|
||||
item[prop] = attr._value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* buildPC(idHTML)
|
||||
*
|
||||
* @param {string} idHTML (the ID of the DIV where build UI options should be presented)
|
||||
*/
|
||||
function buildPC(idHTML)
|
||||
{
|
||||
var eHTML = document.getElementById(idHTML);
|
||||
if (eHTML) {
|
||||
var item = findNewItem(pcState, pcElements);
|
||||
if (item) {
|
||||
setNewItem(idHTML, eHTML, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -265,7 +265,7 @@ C1PComputer.power = function(computer)
|
|||
*/
|
||||
C1PComputer.init = function()
|
||||
{
|
||||
var aeComputers = Component.getElementsByClass(window.document, C1PJSCLASS, "computer");
|
||||
var aeComputers = Component.getElementsByClass(document, C1PJSCLASS, "computer");
|
||||
|
||||
for (var iComputer=0; iComputer < aeComputers.length; iComputer++) {
|
||||
|
||||
|
|
|
|||
|
|
@ -3879,7 +3879,7 @@ C1PCPU.prototype.opUndefined = function()
|
|||
*/
|
||||
C1PCPU.init = function()
|
||||
{
|
||||
var aeCPUs = Component.getElementsByClass(window.document, C1PJSCLASS, "cpu");
|
||||
var aeCPUs = Component.getElementsByClass(document, C1PJSCLASS, "cpu");
|
||||
for (var iCPU=0; iCPU < aeCPUs.length; iCPU++) {
|
||||
var eCPU = aeCPUs[iCPU];
|
||||
var parmsCPU = Component.getComponentParms(eCPU);
|
||||
|
|
|
|||
|
|
@ -2202,7 +2202,7 @@ if (DEBUGGER) {
|
|||
*/
|
||||
C1PDebugger.init = function()
|
||||
{
|
||||
var aeDbg = Component.getElementsByClass(window.document, C1PJSCLASS, "debugger");
|
||||
var aeDbg = Component.getElementsByClass(document, C1PJSCLASS, "debugger");
|
||||
for (var iDbg=0; iDbg < aeDbg.length; iDbg++) {
|
||||
var eDbg = aeDbg[iDbg];
|
||||
var parmsDbg = Component.getComponentParms(eDbg);
|
||||
|
|
|
|||
|
|
@ -1254,7 +1254,7 @@ C1PDiskController.prototype.writePort = function(port, reg)
|
|||
*/
|
||||
C1PDiskController.init = function()
|
||||
{
|
||||
var aeDC = Component.getElementsByClass(window.document, C1PJSCLASS, "disk");
|
||||
var aeDC = Component.getElementsByClass(document, C1PJSCLASS, "disk");
|
||||
for (var iDC=0; iDC < aeDC.length; iDC++) {
|
||||
var eDC = aeDC[iDC];
|
||||
var parmsDC = Component.getComponentParms(eDC);
|
||||
|
|
|
|||
|
|
@ -1094,7 +1094,7 @@ C1PKeyboard.prototype.updateMemory = function(fPropagate, addr, bWrite)
|
|||
*/
|
||||
C1PKeyboard.init = function()
|
||||
{
|
||||
var aeKbd = Component.getElementsByClass(window.document, C1PJSCLASS, "keyboard");
|
||||
var aeKbd = Component.getElementsByClass(document, C1PJSCLASS, "keyboard");
|
||||
for (var iKbd=0; iKbd < aeKbd.length; iKbd++) {
|
||||
var eKbd = aeKbd[iKbd];
|
||||
var parmsKbd = Component.getComponentParms(eKbd);
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ C1PPanel.prototype.setPower = function(fOn, cmp)
|
|||
C1PPanel.init = function()
|
||||
{
|
||||
var fReady = false;
|
||||
var aePanels = Component.getElementsByClass(window.document, C1PJSCLASS, "panel");
|
||||
var aePanels = Component.getElementsByClass(document, C1PJSCLASS, "panel");
|
||||
for (var iPanel=0; iPanel < aePanels.length; iPanel++) {
|
||||
var ePanel = aePanels[iPanel];
|
||||
var parmsPanel = Component.getComponentParms(ePanel);
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ C1PRAM.prototype.setBuffer = function(abMemory, start, end, cpu)
|
|||
*/
|
||||
C1PRAM.init = function()
|
||||
{
|
||||
var aeRAM = Component.getElementsByClass(window.document, C1PJSCLASS, "ram");
|
||||
var aeRAM = Component.getElementsByClass(document, C1PJSCLASS, "ram");
|
||||
for (var iRAM=0; iRAM < aeRAM.length; iRAM++) {
|
||||
var eRAM = aeRAM[iRAM];
|
||||
var parmsRAM = Component.getComponentParms(eRAM);
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ C1PROM.prototype.copyImage = function()
|
|||
*/
|
||||
C1PROM.init = function()
|
||||
{
|
||||
var aeROM = Component.getElementsByClass(window.document, C1PJSCLASS, "rom");
|
||||
var aeROM = Component.getElementsByClass(document, C1PJSCLASS, "rom");
|
||||
for (var iROM=0; iROM < aeROM.length; iROM++) {
|
||||
var eROM = aeROM[iROM];
|
||||
var parmsROM = Component.getComponentParms(eROM);
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ C1PSerialPort.prototype.updateMemory = function()
|
|||
*/
|
||||
C1PSerialPort.init = function()
|
||||
{
|
||||
var aeSerial = Component.getElementsByClass(window.document, C1PJSCLASS, "serial");
|
||||
var aeSerial = Component.getElementsByClass(document, C1PJSCLASS, "serial");
|
||||
for (var iSerial=0; iSerial < aeSerial.length; iSerial++) {
|
||||
var eSerial = aeSerial[iSerial];
|
||||
var parmsSerial = Component.getComponentParms(eSerial);
|
||||
|
|
|
|||
|
|
@ -533,7 +533,7 @@ C1PVideo.prototype.updateWindow = function(col, row, b)
|
|||
*/
|
||||
C1PVideo.init = function()
|
||||
{
|
||||
var aeVideo = Component.getElementsByClass(window.document, C1PJSCLASS, "video");
|
||||
var aeVideo = Component.getElementsByClass(document, C1PJSCLASS, "video");
|
||||
for (var iVideo=0; iVideo < aeVideo.length; iVideo++) {
|
||||
var eVideo = aeVideo[iVideo];
|
||||
var parmsVideo = Component.getComponentParms(eVideo);
|
||||
|
|
@ -547,7 +547,7 @@ C1PVideo.init = function()
|
|||
* I've since settled on a better work-around in keyboard.js, so I've stopped worrying about how to make
|
||||
* "autocapitalize" work here.
|
||||
*/
|
||||
var eCanvas = window.document.createElement("canvas");
|
||||
var eCanvas = document.createElement("canvas");
|
||||
if (eCanvas === undefined || !eCanvas.getContext) {
|
||||
eVideo.innerHTML = "<br/>Missing <canvas> support. Please try a newer web browser.";
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1908,7 +1908,7 @@ HTMLOut.prototype.processMachines = function(aMachines, buildOptions, done)
|
|||
this.addFilesToHTML(asFiles, sScriptEmbed);
|
||||
if (buildOptions.id) {
|
||||
asFiles = [];
|
||||
asFiles.push("/modules/pcbuild/lib/build.js");
|
||||
asFiles.push("/modules/build/lib/build.js");
|
||||
sScriptEmbed = '<script type="text/javascript">buildPC("' + buildOptions.id + '")</script>';
|
||||
this.addFilesToHTML(asFiles, sScriptEmbed);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1134,7 +1134,7 @@ MarkOut.prototype.convertMDMachineLinks = function(sBlock)
|
|||
reIncludes.lastIndex = 0; // reset lastIndex, since we just modified the string that reIncludes is iterating over
|
||||
}
|
||||
|
||||
sBlock = sBlock.replace(/\{%\s*include\s+build\.html\s+id=(["'])(.*?)\1\s*%}/g, '<div class="pcbuild" id=$1$2$1></div>');
|
||||
sBlock = sBlock.replace(/\{%\s*include\s+build\.html\s+id=(["'])(.*?)\1\s*%}/g, '<div class="buildpc" id=$1$2$1></div>');
|
||||
|
||||
/*
|
||||
* Start looking for Markdown-style machine links now...
|
||||
|
|
|
|||
|
|
@ -1,117 +0,0 @@
|
|||
/**
|
||||
* @fileoverview PCjs Build Options
|
||||
* @author <a href="mailto:Jeff@pcjs.org">Jeff Parsons</a>
|
||||
* @version 1.0
|
||||
* Created 2016-Feb-10
|
||||
*
|
||||
* Copyright © 2012-2016 Jeff Parsons <Jeff@pcjs.org>
|
||||
*
|
||||
* This file is part of the JavaScript Machines Project (aka JSMachines) at <http://jsmachines.net/>
|
||||
* and <http://pcjs.org/>.
|
||||
*
|
||||
* JSMachines is free software: you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation, either version 3
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* JSMachines is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
||||
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with JSMachines.
|
||||
* If not, see <http://www.gnu.org/licenses/gpl.html>.
|
||||
*
|
||||
* You are required to include the above copyright notice in every source code file of every
|
||||
* copy or modified version of this work, and to display that copyright notice on every screen
|
||||
* that loads or runs any version of this software (see Computer.COPYRIGHT).
|
||||
*
|
||||
* Some JSMachines files also attempt to load external resource files, such as character-image files,
|
||||
* ROM files, and disk image files. Those external resource files are not considered part of the
|
||||
* JSMachines Project for purposes of the GNU General Public License, and the author does not claim
|
||||
* any copyright as to their contents.
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* This file provides all the UI options for building a functional PCjs PC.
|
||||
*/
|
||||
|
||||
var typeAddress = {
|
||||
type: "address"
|
||||
};
|
||||
|
||||
var typeBoolean = {
|
||||
type: "boolean"
|
||||
};
|
||||
|
||||
var typeNumber = {
|
||||
type: "number"
|
||||
};
|
||||
|
||||
var typePath = {
|
||||
type: "string"
|
||||
};
|
||||
|
||||
var typeString = {
|
||||
type: "string"
|
||||
};
|
||||
|
||||
var machineTypes = {
|
||||
'5150': "IBM PC (Model 5150)",
|
||||
'5160': "IBM PC XT (Model 5160)",
|
||||
'5170': "IBM PC AT (Model 5170)",
|
||||
'deskpro386': "COMPAQ DeskPro 386"
|
||||
};
|
||||
|
||||
var aMachineElements = {
|
||||
'machine': {
|
||||
choices: machineTypes
|
||||
},
|
||||
'name': {
|
||||
desc: "Machine Description"
|
||||
},
|
||||
'computer': {
|
||||
desc: "General Computer Features",
|
||||
'buswidth': {
|
||||
type: typeNumber,
|
||||
values: [20, 24, 32]
|
||||
},
|
||||
'resume': {
|
||||
type: typeNumber,
|
||||
value: [0, 1, 2],
|
||||
descs: ["Resume Disabled", "Resume Enabled", "Resume with Prompt"]
|
||||
}
|
||||
},
|
||||
'ram': {
|
||||
desc: "Read-Write Memory (Conventional or Extended)",
|
||||
'addr': {
|
||||
type: typeAddress
|
||||
},
|
||||
'size': {
|
||||
type: typeNumber
|
||||
}
|
||||
},
|
||||
'rom': {
|
||||
desc: "Read-Only Memory",
|
||||
'addr': {
|
||||
type: typeAddress
|
||||
},
|
||||
'size': {
|
||||
type: typeNumber
|
||||
},
|
||||
'file': {
|
||||
type: typePath
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* buildPC(idElement)
|
||||
*
|
||||
* @param {string} idElement (the ID of the DIV where build UI options should be presented)
|
||||
*/
|
||||
function buildPC(idElement)
|
||||
{
|
||||
alert("build.js loaded: " + idElement);
|
||||
}
|
||||
|
|
@ -5379,7 +5379,7 @@ ChipSet.aPortOutput5170 = {
|
|||
*/
|
||||
ChipSet.init = function()
|
||||
{
|
||||
var aeChipSet = Component.getElementsByClass(window.document, PCJSCLASS, "chipset");
|
||||
var aeChipSet = Component.getElementsByClass(document, PCJSCLASS, "chipset");
|
||||
for (var iChip = 0; iChip < aeChipSet.length; iChip++) {
|
||||
var eChipSet = aeChipSet[iChip];
|
||||
var parmsChipSet = Component.getComponentParms(eChipSet);
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@ Computer.prototype.getMachineID = function()
|
|||
*
|
||||
* @param {string} sParm
|
||||
* @param {Object} [parmsComponent]
|
||||
* @return {Object|number|string|boolean|null|undefined}
|
||||
* @return {string|null}
|
||||
*/
|
||||
Computer.prototype.getMachineParm = function(sParm, parmsComponent)
|
||||
{
|
||||
|
|
@ -1371,7 +1371,7 @@ Computer.init = function()
|
|||
*/
|
||||
if (!COMPILED && XMLVERSION) Computer.APPVERSION = XMLVERSION;
|
||||
|
||||
var aeMachines = Component.getElementsByClass(window.document, PCJSCLASS + "-machine");
|
||||
var aeMachines = Component.getElementsByClass(document, PCJSCLASS + "-machine");
|
||||
|
||||
for (var iMachine = 0; iMachine < aeMachines.length; iMachine++) {
|
||||
|
||||
|
|
@ -1421,7 +1421,7 @@ Computer.init = function()
|
|||
*/
|
||||
Computer.show = function()
|
||||
{
|
||||
var aeComputers = Component.getElementsByClass(window.document, PCJSCLASS, "computer");
|
||||
var aeComputers = Component.getElementsByClass(document, PCJSCLASS, "computer");
|
||||
for (var iComputer = 0; iComputer < aeComputers.length; iComputer++) {
|
||||
var eComputer = aeComputers[iComputer];
|
||||
var parmsComputer = Component.getComponentParms(eComputer);
|
||||
|
|
@ -1470,7 +1470,7 @@ Computer.show = function()
|
|||
*/
|
||||
Computer.exit = function()
|
||||
{
|
||||
var aeComputers = Component.getElementsByClass(window.document, PCJSCLASS, "computer");
|
||||
var aeComputers = Component.getElementsByClass(document, PCJSCLASS, "computer");
|
||||
for (var iComputer = 0; iComputer < aeComputers.length; iComputer++) {
|
||||
var eComputer = aeComputers[iComputer];
|
||||
var parmsComputer = Component.getComponentParms(eComputer);
|
||||
|
|
|
|||
|
|
@ -8131,7 +8131,7 @@ if (DEBUGGER) {
|
|||
*/
|
||||
Debugger.init = function()
|
||||
{
|
||||
var aeDbg = Component.getElementsByClass(window.document, PCJSCLASS, "debugger");
|
||||
var aeDbg = Component.getElementsByClass(document, PCJSCLASS, "debugger");
|
||||
for (var iDbg = 0; iDbg < aeDbg.length; iDbg++) {
|
||||
var eDbg = aeDbg[iDbg];
|
||||
var parmsDbg = Component.getComponentParms(eDbg);
|
||||
|
|
|
|||
|
|
@ -592,7 +592,7 @@ FDC.prototype.powerUp = function(data, fRepower)
|
|||
}
|
||||
controlDrives.textContent = "";
|
||||
for (var iDrive = 0; iDrive < this.nDrives; iDrive++) {
|
||||
var controlOption = window.document.createElement("option");
|
||||
var controlOption = document.createElement("option");
|
||||
controlOption['value'] = iDrive;
|
||||
/*
|
||||
* TODO: This conversion of drive number to drive letter, starting with A:, is very simplistic
|
||||
|
|
@ -1416,7 +1416,7 @@ FDC.prototype.addDiskette = function(sName, sPath)
|
|||
for (var i = 0; i < controlDisks.options.length; i++) {
|
||||
if (controlDisks.options[i].value == sPath) return;
|
||||
}
|
||||
var controlOption = window.document.createElement("option");
|
||||
var controlOption = document.createElement("option");
|
||||
controlOption['value'] = sPath;
|
||||
controlOption.textContent = sName;
|
||||
controlDisks.appendChild(controlOption);
|
||||
|
|
@ -2518,7 +2518,7 @@ FDC.aPortOutput = {
|
|||
* any associated HTML controls to the new component.
|
||||
*/
|
||||
FDC.init = function() {
|
||||
var aeFDC = Component.getElementsByClass(window.document, PCJSCLASS, "fdc");
|
||||
var aeFDC = Component.getElementsByClass(document, PCJSCLASS, "fdc");
|
||||
for (var iFDC = 0; iFDC < aeFDC.length; iFDC++) {
|
||||
var eFDC = aeFDC[iFDC];
|
||||
var parmsFDC = Component.getComponentParms(eFDC);
|
||||
|
|
|
|||
|
|
@ -3001,7 +3001,7 @@ HDC.aATCPortOutput = {
|
|||
*/
|
||||
HDC.init = function()
|
||||
{
|
||||
var aeHDC = Component.getElementsByClass(window.document, PCJSCLASS, "hdc");
|
||||
var aeHDC = Component.getElementsByClass(document, PCJSCLASS, "hdc");
|
||||
for (var iHDC = 0; iHDC < aeHDC.length; iHDC++) {
|
||||
var eHDC = aeHDC[iHDC];
|
||||
var parmsHDC = Component.getComponentParms(eHDC);
|
||||
|
|
|
|||
|
|
@ -2312,7 +2312,7 @@ Keyboard.prototype.keySimulate = function(simCode, fDown)
|
|||
*/
|
||||
Keyboard.init = function()
|
||||
{
|
||||
var aeKbd = Component.getElementsByClass(window.document, PCJSCLASS, "keyboard");
|
||||
var aeKbd = Component.getElementsByClass(document, PCJSCLASS, "keyboard");
|
||||
for (var iKbd = 0; iKbd < aeKbd.length; iKbd++) {
|
||||
var eKbd = aeKbd[iKbd];
|
||||
var parmsKbd = Component.getComponentParms(eKbd);
|
||||
|
|
|
|||
|
|
@ -717,7 +717,7 @@ Mouse.prototype.notifyMCR = function(bMCR)
|
|||
*/
|
||||
Mouse.init = function()
|
||||
{
|
||||
var aeMouse = Component.getElementsByClass(window.document, PCJSCLASS, "mouse");
|
||||
var aeMouse = Component.getElementsByClass(document, PCJSCLASS, "mouse");
|
||||
for (var iMouse = 0; iMouse < aeMouse.length; iMouse++) {
|
||||
var eMouse = aeMouse[iMouse];
|
||||
var parmsMouse = Component.getComponentParms(eMouse);
|
||||
|
|
|
|||
|
|
@ -294,13 +294,13 @@ Panel.prototype.setBinding = function(sHTMLType, sBinding, control, sValue)
|
|||
this.cxDump = this.cxReg;
|
||||
this.cyDump = ((this.canvas.height * Panel.LIVEDUMP.CY) / Panel.LIVECANVAS.CY) | 0;
|
||||
|
||||
this.canvasLiveMem = window.document.createElement("canvas");
|
||||
this.canvasLiveMem = document.createElement("canvas");
|
||||
this.canvasLiveMem.width = Panel.LIVEMEM.CX;
|
||||
this.canvasLiveMem.height = Panel.LIVEMEM.CY;
|
||||
this.contextLiveMem = this.canvasLiveMem.getContext("2d");
|
||||
this.imageLiveMem = this.contextLiveMem.createImageData(this.canvasLiveMem.width, this.canvasLiveMem.height);
|
||||
|
||||
this.canvasLiveRegs = window.document.createElement("canvas");
|
||||
this.canvasLiveRegs = document.createElement("canvas");
|
||||
this.canvasLiveRegs.width = Panel.LIVEREGS.CX;
|
||||
this.canvasLiveRegs.height = Panel.LIVEREGS.CY;
|
||||
this.contextLiveRegs = this.canvasLiveRegs.getContext("2d");
|
||||
|
|
@ -969,7 +969,7 @@ Panel.prototype.centerText = function(sText)
|
|||
Panel.init = function()
|
||||
{
|
||||
var fReady = false;
|
||||
var aePanels = Component.getElementsByClass(window.document, PCJSCLASS, "panel");
|
||||
var aePanels = Component.getElementsByClass(document, PCJSCLASS, "panel");
|
||||
for (var iPanel=0; iPanel < aePanels.length; iPanel++) {
|
||||
var ePanel = aePanels[iPanel];
|
||||
var parmsPanel = Component.getComponentParms(ePanel);
|
||||
|
|
|
|||
|
|
@ -503,7 +503,7 @@ ParallelPort.aPortOutput = {
|
|||
*/
|
||||
ParallelPort.init = function()
|
||||
{
|
||||
var aeParallel = Component.getElementsByClass(window.document, PCJSCLASS, "parallel");
|
||||
var aeParallel = Component.getElementsByClass(document, PCJSCLASS, "parallel");
|
||||
for (var iParallel = 0; iParallel < aeParallel.length; iParallel++) {
|
||||
var eParallel = aeParallel[iParallel];
|
||||
var parmsParallel = Component.getComponentParms(eParallel);
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ RAM.prototype.restore = function(data)
|
|||
*/
|
||||
RAM.init = function()
|
||||
{
|
||||
var aeRAM = Component.getElementsByClass(window.document, PCJSCLASS, "ram");
|
||||
var aeRAM = Component.getElementsByClass(document, PCJSCLASS, "ram");
|
||||
for (var iRAM = 0; iRAM < aeRAM.length; iRAM++) {
|
||||
var eRAM = aeRAM[iRAM];
|
||||
var parmsRAM = Component.getComponentParms(eRAM);
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ ROM.prototype.cloneROM = function(addr)
|
|||
*/
|
||||
ROM.init = function()
|
||||
{
|
||||
var aeROM = Component.getElementsByClass(window.document, PCJSCLASS, "rom");
|
||||
var aeROM = Component.getElementsByClass(document, PCJSCLASS, "rom");
|
||||
for (var iROM = 0; iROM < aeROM.length; iROM++) {
|
||||
var eROM = aeROM[iROM];
|
||||
var parmsROM = Component.getComponentParms(eROM);
|
||||
|
|
|
|||
|
|
@ -897,7 +897,7 @@ SerialPort.aPortOutput = {
|
|||
*/
|
||||
SerialPort.init = function()
|
||||
{
|
||||
var aeSerial = Component.getElementsByClass(window.document, PCJSCLASS, "serial");
|
||||
var aeSerial = Component.getElementsByClass(document, PCJSCLASS, "serial");
|
||||
for (var iSerial = 0; iSerial < aeSerial.length; iSerial++) {
|
||||
var eSerial = aeSerial[iSerial];
|
||||
var parmsSerial = Component.getComponentParms(eSerial);
|
||||
|
|
|
|||
|
|
@ -3232,7 +3232,7 @@ Video.prototype.onFocusChange = function(fFocus)
|
|||
*
|
||||
* if (fFocus) {
|
||||
* window.scrollTo(0, 0);
|
||||
* window.document.body.scrollTop = 0;
|
||||
* document.body.scrollTop = 0;
|
||||
* }
|
||||
*/
|
||||
this.fHasFocus = fFocus;
|
||||
|
|
@ -4221,7 +4221,7 @@ Video.prototype.createFontColor = function(font, iColor, rgbColor, nDouble, offD
|
|||
* We still have to use putImageData() to build the font canvas, but that's a one-time operation.
|
||||
*/
|
||||
var rgbOff = [0x00, 0x00, 0x00, 0x00];
|
||||
var canvasFont = window.document.createElement("canvas");
|
||||
var canvasFont = document.createElement("canvas");
|
||||
canvasFont.width = font.cxCell << 4;
|
||||
canvasFont.height = (font.cyCell << 4);
|
||||
var contextFont = canvasFont.getContext("2d");
|
||||
|
|
@ -4780,7 +4780,7 @@ Video.prototype.setDimensions = function()
|
|||
* Allocate the off-screen buffers
|
||||
*/
|
||||
this.imageScreenBuffer = this.contextScreen.createImageData(this.cxBuffer, this.cyBuffer);
|
||||
this.canvasScreenBuffer = window.document.createElement("canvas");
|
||||
this.canvasScreenBuffer = document.createElement("canvas");
|
||||
this.canvasScreenBuffer.width = this.cxBuffer;
|
||||
this.canvasScreenBuffer.height = this.cyBuffer;
|
||||
this.contextScreenBuffer = this.canvasScreenBuffer.getContext("2d");
|
||||
|
|
@ -7116,12 +7116,12 @@ Video.aVGAPortOutput = {
|
|||
*/
|
||||
Video.init = function()
|
||||
{
|
||||
var aeVideo = Component.getElementsByClass(window.document, PCJSCLASS, "video");
|
||||
var aeVideo = Component.getElementsByClass(document, PCJSCLASS, "video");
|
||||
for (var iVideo = 0; iVideo < aeVideo.length; iVideo++) {
|
||||
var eVideo = aeVideo[iVideo];
|
||||
var parmsVideo = Component.getComponentParms(eVideo);
|
||||
|
||||
var eCanvas = window.document.createElement("canvas");
|
||||
var eCanvas = document.createElement("canvas");
|
||||
if (eCanvas === undefined || !eCanvas.getContext) {
|
||||
eVideo.innerHTML = "<br/>Missing <canvas> support. Please try a newer web browser.";
|
||||
return;
|
||||
|
|
@ -7176,14 +7176,14 @@ Video.init = function()
|
|||
* clearly see the overlaid semi-transparent input field, but none of the input characters were passed along,
|
||||
* with the exception of the "Go" (Enter) key.
|
||||
*
|
||||
* var eInput = window.document.createElement("input");
|
||||
* var eInput = document.createElement("input");
|
||||
* eInput.setAttribute("type", "password");
|
||||
* eInput.setAttribute("style", "position:absolute; left:0; top:0; width:100%; height:100%; opacity:0.5");
|
||||
* eVideo.appendChild(eInput);
|
||||
*
|
||||
* See this Chromium issue for more information: https://code.google.com/p/chromium/issues/detail?id=118639
|
||||
*/
|
||||
var eTextArea = window.document.createElement("textarea");
|
||||
var eTextArea = document.createElement("textarea");
|
||||
|
||||
/*
|
||||
* As noted in keyboard.js, the keyboard on an iOS device tends to pop up with the SHIFT key depressed,
|
||||
|
|
|
|||
|
|
@ -4358,7 +4358,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles)
|
|||
*/
|
||||
X86CPU.init = function()
|
||||
{
|
||||
var aeCPUs = Component.getElementsByClass(window.document, PCJSCLASS, "cpu");
|
||||
var aeCPUs = Component.getElementsByClass(document, PCJSCLASS, "cpu");
|
||||
for (var iCPU = 0; iCPU < aeCPUs.length; iCPU++) {
|
||||
var eCPU = aeCPUs[iCPU];
|
||||
var parmsCPU = Component.getComponentParms(eCPU);
|
||||
|
|
|
|||
|
|
@ -3363,7 +3363,7 @@ X86FPU.afnPreserveExceptions = [
|
|||
*/
|
||||
X86FPU.init = function()
|
||||
{
|
||||
var aeFPUs = Component.getElementsByClass(window.document, PCJSCLASS, "fpu");
|
||||
var aeFPUs = Component.getElementsByClass(document, PCJSCLASS, "fpu");
|
||||
for (var iFPU = 0; iFPU < aeFPUs.length; iFPU++) {
|
||||
var eFPU = aeFPUs[iFPU];
|
||||
var parmsFPU = Component.getComponentParms(eFPU);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
/* global window: true, DEBUG: true */
|
||||
/* global document: true, window: true, DEBUG: true */
|
||||
|
||||
if (NODE) {
|
||||
require("./defines");
|
||||
|
|
@ -494,7 +494,7 @@ Component.bindExternalControl = function(component, sControl, sBinding, sType)
|
|||
}
|
||||
};
|
||||
|
||||
if (window && !window.document.ELEMENT_NODE) window.document.ELEMENT_NODE = 1;
|
||||
if (document && !document.ELEMENT_NODE) document.ELEMENT_NODE = 1;
|
||||
|
||||
/**
|
||||
* Component.bindComponentControls(component, element, sAppClass)
|
||||
|
|
@ -513,7 +513,7 @@ Component.bindComponentControls = function(component, element, sAppClass)
|
|||
|
||||
for (var iNode = 0; iNode < aeChildNodes.length; iNode++) {
|
||||
var control = aeChildNodes[iNode];
|
||||
if (control.nodeType !== window.document.ELEMENT_NODE) {
|
||||
if (control.nodeType !== document.ELEMENT_NODE) {
|
||||
continue;
|
||||
}
|
||||
var sClass = control.getAttribute("class");
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
/* global window: true, XSLTProcessor: false, APPNAME: false, APPVERSION: false, DEBUG: true */
|
||||
/* global document: true, window: true, XSLTProcessor: false, APPNAME: false, APPVERSION: false, DEBUG: true */
|
||||
|
||||
if (NODE) {
|
||||
var Component;
|
||||
|
|
@ -189,11 +189,13 @@ function parseXML(sXML, sXMLFile, idMachine, sParms, fResolve, display, done)
|
|||
* 'ActiveXObject' crud has gone away; but of course, this code must remain in place if
|
||||
* we want to continue supporting older Internet Explorer browsers (ie, back to IE9).
|
||||
*/
|
||||
/** @namespace window.ActiveXObject */
|
||||
if (window.ActiveXObject || 'ActiveXObject' in window) { // second test is required for IE11 on Windows 8.1
|
||||
xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
|
||||
xmlDoc.async = false;
|
||||
xmlDoc['loadXML'](sXML);
|
||||
} else {
|
||||
/** @namespace window.DOMParser */
|
||||
xmlDoc = (new window.DOMParser()).parseFromString(sXML, "text/xml");
|
||||
}
|
||||
} catch(e) {
|
||||
|
|
@ -356,7 +358,7 @@ function embedMachine(sName, sVersion, idElement, sXMLFile, sXSLFile, sParms)
|
|||
};
|
||||
|
||||
try {
|
||||
eMachine = window.document.getElementById(idElement);
|
||||
eMachine = document.getElementById(idElement);
|
||||
if (eMachine) {
|
||||
var sAppClass = sName.toLowerCase(); // eg, "pcjs" or "c1pjs"
|
||||
if (!sXSLFile) {
|
||||
|
|
@ -420,10 +422,10 @@ function embedMachine(sName, sVersion, idElement, sXMLFile, sXSLFile, sParms)
|
|||
displayError("transformNodeToObject failed");
|
||||
}
|
||||
}
|
||||
else if (window.document.implementation && window.document.implementation.createDocument) {
|
||||
else if (document.implementation && document.implementation.createDocument) {
|
||||
var xsltProcessor = new XSLTProcessor();
|
||||
xsltProcessor['importStylesheet'](xsl);
|
||||
var eFragment = xsltProcessor['transformToFragment'](xml, window.document);
|
||||
var eFragment = xsltProcessor['transformToFragment'](xml, document);
|
||||
if (eFragment) {
|
||||
/*
|
||||
* This fails in Microsoft Edge...
|
||||
|
|
|
|||
Loading…
Reference in a new issue