From 5b6f6756a2bf163a90ce396149ce3165210a1c64 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 27 Apr 2016 08:28:52 -0700 Subject: [PATCH] More 8080 improvements, including some initial "Fake CP/M" support --- .editorconfig | 2 +- devices/pc8080/machine/invaders/machine.xml | 6 +- devices/pc8080/machine/test/README.md | 14 + devices/pc8080/machine/test/machine.xml | 11 + .../pc8080/panel/{default.xml => left.xml} | 10 +- devices/pc8080/panel/wide.xml | 35 ++ devices/pc8080/rom/test/8080PRE.json | 66 ++++ docs/pcjs/examples/components.xsl | 10 +- docs/pcjs/examples/pc-dbg.js | 160 ++++---- docs/pcjs/examples/pc.js | 280 +++++++------- modules/pc8080/lib/bus.js | 37 +- modules/pc8080/lib/computer.js | 2 +- modules/pc8080/lib/cpudef.js | 1 + modules/pc8080/lib/cpuops.js | 18 +- modules/pc8080/lib/cpusim.js | 88 ++--- modules/pc8080/lib/debugger.js | 183 +++++---- modules/pc8080/lib/rom.js | 59 ++- modules/pcjs/lib/bus.js | 37 +- modules/pcjs/lib/computer.js | 2 +- modules/pcjs/lib/rom.js | 6 + modules/shared/templates/components.xsl | 10 +- versions/pc8080/1.21.7/components.xsl | 10 +- versions/pc8080/1.21.7/pc8080-dbg.js | 364 +++++++++--------- versions/pc8080/1.21.7/pc8080.js | 204 +++++----- versions/pcjs/1.21.7/pc.js | 280 +++++++------- 25 files changed, 1052 insertions(+), 843 deletions(-) create mode 100644 devices/pc8080/machine/test/README.md create mode 100644 devices/pc8080/machine/test/machine.xml rename devices/pc8080/panel/{default.xml => left.xml} (73%) create mode 100644 devices/pc8080/panel/wide.xml create mode 100644 devices/pc8080/rom/test/8080PRE.json diff --git a/.editorconfig b/.editorconfig index 4536ecd57..bc65a4709 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,7 +12,7 @@ indent_style = space indent_size = 8 trim_trailing_whitespace = true -[*.{ASM,INC,asm,inc,nasm,lst}] +[*.{ASM,INC,MAC,NASM,LST,asm,inc,mac,nasm,lst}] indent_style = tab indent_size = 8 trim_trailing_whitespace = true diff --git a/devices/pc8080/machine/invaders/machine.xml b/devices/pc8080/machine/invaders/machine.xml index 478c3cc6d..2a511465d 100644 --- a/devices/pc8080/machine/invaders/machine.xml +++ b/devices/pc8080/machine/invaders/machine.xml @@ -2,7 +2,7 @@ Space Invaders - + @@ -14,6 +14,6 @@ 224x256 Screen (Rotated) - - + + diff --git a/devices/pc8080/machine/test/README.md b/devices/pc8080/machine/test/README.md new file mode 100644 index 000000000..c662651c4 --- /dev/null +++ b/devices/pc8080/machine/test/README.md @@ -0,0 +1,14 @@ +--- +layout: page +title: 8080 Test Machine +permalink: /devices/pc8080/machine/test/ +machines: + - type: pc8080 + id: test8080 + debugger: true +--- + +8080 Test Machine +--- + +{% include machine.html id="test8080" %} diff --git a/devices/pc8080/machine/test/machine.xml b/devices/pc8080/machine/test/machine.xml new file mode 100644 index 000000000..fb2cf1019 --- /dev/null +++ b/devices/pc8080/machine/test/machine.xml @@ -0,0 +1,11 @@ + + + + 8080 Test Machine + + + + + + + diff --git a/devices/pc8080/panel/default.xml b/devices/pc8080/panel/left.xml similarity index 73% rename from devices/pc8080/panel/default.xml rename to devices/pc8080/panel/left.xml index ea9f08d02..b8126d511 100644 --- a/devices/pc8080/panel/default.xml +++ b/devices/pc8080/panel/left.xml @@ -6,13 +6,9 @@ 00 - 00 - 00 - 00 - 00 - 00 - 00 - 00 + 0000 + 0000 + 0000 0000 0000 diff --git a/devices/pc8080/panel/wide.xml b/devices/pc8080/panel/wide.xml new file mode 100644 index 000000000..f4ec9675e --- /dev/null +++ b/devices/pc8080/panel/wide.xml @@ -0,0 +1,35 @@ + + + Control Panel + + + + + 00 + 0000 + 0000 + 0000 + 0000 + 0000 + + 0 + 0 + 0 + 0 + 0 + 0 + + Speed: + Stopped + + + Run + Step + Reset + Fast + + + Enter + Clear + + diff --git a/devices/pc8080/rom/test/8080PRE.json b/devices/pc8080/rom/test/8080PRE.json new file mode 100644 index 000000000..01f0bf284 --- /dev/null +++ b/devices/pc8080/rom/test/8080PRE.json @@ -0,0 +1,66 @@ +{"bytes":[ +62,1,254,2,202,0,0,254,1,194,0,0,195,17,1,118, +255,205,23,1,195,0,0,225,124,254,1,202,33,1,195,0, +0,125,254,20,202,42,1,195,0,0,49,153,3,241,193,209, +225,49,169,3,229,213,197,245,58,161,3,254,2,194,0,0, +58,162,3,254,4,194,0,0,58,163,3,254,6,194,0,0, +58,164,3,254,8,194,0,0,58,165,3,254,10,194,0,0, +58,166,3,254,12,194,0,0,58,167,3,254,14,194,0,0, +58,168,3,254,16,194,0,0,33,169,3,126,254,165,194,0, +0,33,170,3,126,254,60,194,0,0,49,0,5,33,149,1, +229,201,195,0,0,62,255,230,15,254,15,194,0,0,62,90, +230,15,254,10,194,0,0,15,254,5,194,0,0,15,254,130, +194,0,0,15,254,65,194,0,0,15,254,160,194,0,0,33, +52,18,229,193,120,254,18,194,0,0,121,254,52,194,0,0, +33,1,0,229,241,220,219,1,195,82,3,225,33,214,0,229, +241,212,231,1,195,82,3,225,33,245,1,229,33,1,0,229, +241,216,205,82,3,33,2,2,229,33,214,0,229,241,208,205, +82,3,33,1,0,229,241,218,13,2,205,82,3,33,214,0, +229,241,210,24,2,205,82,3,33,4,0,229,241,236,35,2, +195,82,3,225,33,211,0,229,241,228,47,2,195,82,3,225, +33,61,2,229,33,4,0,229,241,232,205,82,3,33,74,2, +229,33,211,0,229,241,224,205,82,3,33,4,0,229,241,234, +85,2,205,82,3,33,211,0,229,241,226,96,2,205,82,3, +33,64,0,229,241,204,107,2,195,82,3,225,33,151,0,229, +241,196,119,2,195,82,3,225,33,133,2,229,33,64,0,229, +241,200,205,82,3,33,146,2,229,33,151,0,229,241,192,205, +82,3,33,64,0,229,241,202,157,2,205,82,3,33,151,0, +229,241,194,168,2,205,82,3,33,128,0,229,241,252,179,2, +195,82,3,225,33,87,0,229,241,244,191,2,195,82,3,225, +33,205,2,229,33,128,0,229,241,248,205,82,3,33,218,2, +229,33,87,0,229,241,240,205,82,3,33,128,0,229,241,250, +229,2,205,82,3,33,87,0,229,241,242,240,2,205,82,3, +33,247,2,233,205,82,3,62,165,6,4,15,5,194,251,2, +254,90,196,82,3,6,16,60,5,194,7,3,254,106,196,82, +3,6,0,33,0,0,35,5,194,22,3,124,254,1,196,82, +3,125,254,0,196,82,3,17,50,3,14,9,205,5,0,195, +0,0,56,48,56,48,32,80,114,101,108,105,109,105,110,97, +114,121,32,116,101,115,116,115,32,99,111,109,112,108,101,116, +101,36,193,38,4,120,15,15,15,15,230,15,111,126,205,138, +3,120,230,15,111,126,205,138,3,121,15,15,15,15,230,15, +111,126,205,138,3,121,230,15,111,126,205,138,3,62,13,205, +138,3,62,10,205,138,3,195,0,0,245,197,213,229,14,2, +95,205,5,0,225,209,193,241,201,2,4,6,8,10,12,14, +16,0,0,0,0,0,0,0,0,165,60,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] +} \ No newline at end of file diff --git a/docs/pcjs/examples/components.xsl b/docs/pcjs/examples/components.xsl index 1473b7d68..4ed28f608 100644 --- a/docs/pcjs/examples/components.xsl +++ b/docs/pcjs/examples/components.xsl @@ -901,10 +901,16 @@ + + + + false + + rom - ,addr:,size:,alias:,file:'',notify:'' + ,addr:,size:,alias:,file:'',notify:'',writable: @@ -1139,7 +1145,7 @@ - 20 + 0 diff --git a/docs/pcjs/examples/pc-dbg.js b/docs/pcjs/examples/pc-dbg.js index 3f96d1922..b06f8157e 100644 --- a/docs/pcjs/examples/pc-dbg.js +++ b/docs/pcjs/examples/pc-dbg.js @@ -15,10 +15,10 @@ function Pa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:fu Pa(Ga("Opera")||Ga("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});function Ua(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.tk=b.comment;this.gk=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0=this.x&&a=this.y&&b=c>>2);d?(b=new Bb(a.x,a.y,a.ad,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new Bb(a.x,a.y,a.ad*b/c|0,a.A),a.x+=b.ad,a.ad-=b.ad);return b}m=zb.prototype; -m.Qb=function(a,b,c,d){return this.V&&this.V.Qb(a,b,c,d)||this.F&&this.F.Qb(a,b,c,d)||this.B&&this.B.Qb(a,b,c,d)||this.ha&&this.ha.Qb(a,b,c,d)?!0:this.parent.Qb.call(this,a,b,c,d)};m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;this.B=Eb(a,"Keyboard")};m.ic=function(a,b){b||Fb();return!0};m.hc=function(){return!0};m.je=function(a,b){a.button||(this.fa=b?0:-1,Gb(this,a,b))};m.Hf=function(a){Gb(this,a)}; -function Gb(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.fa||(a.fa=Math.abs(a.L-d)>Math.abs(a.W-b)?1:2),1==a.fa?b=a.W:2==a.fa&&(d=a.L));a.L=d;a.W=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Pe)for(f=0;fMath.abs(a.W-b)?1:2),1==a.fa?b=a.W:2==a.fa&&(d=a.L));a.L=d;a.W=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Pe)for(f=0;fd&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ja&&a.ka){e=a.ja.width;a.ka.fillStyle="black";a.ka.fillRect(0,360,e,360);Ib(a,378,a.ja,a.ka);a.pa=a.Ea.width/24|0;if(null==b)Jb(a,"Mouse over memory to dump");else for(Jb(a,"0x"+r(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ea;var k=b++;h=h.sa[(k&h.Gb)>>>h.La].se(k&h.A,k);Jb(a,r(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}Jb(a,d,null,0,1)}a.context.drawImage(a.ja,0,360,e,360,a.rb,a.Db,a.Pa,a.cb)}a.Ca= c}}}m.qd=function(){};function Kb(a,b,c,d){a.A.Af[a.A.Ai++]={Qk:b,Ud:c,type:d};return sa(Hb,b,c,0,d)}function Ib(a,b,c,d){var e,f=null.style.color,g=a.Oa=10;a.C=g;a.U=b;a.X=a.wa=18;e||(e=a.ua||a.wa+"px Monaco, Lucida Console, Courier New");a.ga=a.ua=e;c&&(a.Ea=c);d&&(a.N=d,a.Fa=f||"white")} function Jb(a,b,c,d,e){a.N.font=a.ga;a.N.fillStyle=a.Fa;a.N.fillText(b,a.C,a.U);a.C+=a.pa;null!=c&&(16!=a.Tb?b=c.toString():(b=8>a.Ka?"0x":"",b+=r(c,a.Ka)),a.N.fillText(b,a.C,a.U),a.C+=a.pa);d&&(a.C+=a.pa*d);e&&(a.C=a.Oa,a.U+=(a.X+2)*(e||1))}function Fb(){for(var a=!1,b=nb(document,"pcjs","panel"),c=0;c=this.N?12:24>=this.N?14:15;this.Nb=1<>2;this.A=this.Nb-1;this.U=this.X/this.Nb|0;this.ea=this.U-1;this.B=[];this.C=[];this.L=this.W=!1;this.aa=[];this.fa=[];a=new B;Mb(a,this.ha);this.sa=Array(this.U);for(b=0;b=this.N?12:24>=this.N?14:15;this.Sb=1<>2;this.A=this.Sb-1;this.U=this.X/this.Sb|0;this.ea=this.U-1;this.B=[];this.C=[];this.L=this.W=!1;this.aa=[];this.fa=[];a=new B;Mb(a,this.ha);this.sa=Array(this.U);for(b=0;b>>a.La;0a.Nb?a.Nb:c;if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.Da)return g.Ne+=g.Da-b,g.Da=b,!0;if(b>=g.Da+g.Ne){k=g.size-(b-h);k>c&&(k=c);g.Ne=b-g.Da+k;c-=k;b=h+a.Nb;continue}}return Tb(a,1,b,c)}g=a.sa[f];b=new B(b,k,a.Nb,d,e);Mb(b,a.ha,g);a.sa[f++]=b;b=h+a.Nb;c-=k}return 0>=c?(Ub(a.F),!0):Tb(a,2,b,c)} -function Rb(a,b){if(32==a.N)b?a.V&&(Wb(a,1048576,1048576,a.V),a.V=null):a.V||(a.V=Xb(a,1048576,1048576),Wb(a,1048576,1048576,Xb(a,0,1048576)));else if(20>>this.La;0>>a.La;0>>=a.La;0>>a.La;0>>this.La].jc(a&this.A,a)}; +function Sb(a,b,c,d,e){for(var f=b>>>a.La;0c&&(k=c);if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.Da)return g.Ne+=g.Da-b,g.Da=b,!0;if(b>=g.Da+g.Ne){k=g.size-(b-h);k>c&&(k=c);g.Ne=b-g.Da+k;b=h+a.Sb;c-=k;f++;continue}}return Tb(a,1,b,c)}b=new B(b,k,a.Sb,d,e);Mb(b,a.ha,g);a.sa[f++]=b;b=h+a.Sb;c-=k}return 0>=c?(Ub(a.F),!0):Tb(a,2,b,c)} +function Rb(a,b){if(32==a.N)b?a.V&&(Wb(a,1048576,1048576,a.V),a.V=null):a.V||(a.V=Xb(a,1048576,1048576),Wb(a,1048576,1048576,Xb(a,0,1048576)));else if(20>>this.La;0>>a.La;0>>=a.La;0>>a.La;0>>this.La].jc(a&this.A,a)}; m.na=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;return b!=this.A?this.sa[c].rf(b,a):this.sa[c++].jc(b,a)|this.sa[c&this.ea].jc(0,a+1)<<8};function ec(a,b){var c=b&a.A,d=(b&a.Gb)>>>a.La;return c!=a.A?a.sa[d].cg(c,b):a.sa[d++].se(c,b)|a.sa[d&a.ea].se(0,b+1)<<8}m.oa=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;if(b>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;c!=this.A?this.sa[d].yf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.sa[d&this.ea].sc(0,b>>8&255,a+1))};function fc(a,b,c){var d=b&a.A,e=(b&a.Gb)>>>a.La;d!=a.A?a.sa[e].oi(d,c&65535,b):(a.sa[e++].wf(d,c&255,b),a.sa[e&a.ea].wf(0,c>>8&255,b+1))} m.nb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;if(c>>=8};m.Si=function(){return null};function gc(a,b){if(void 0===b)return a.L=!a.L,a.L;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]} @@ -68,10 +68,10 @@ function Gc(a,b){b?0===--a.Ue&&(a.sc=a.N?a.L:a.wf,a.yf=a.N?a.X:a.oi,a.xf=a.N?a.U function Yb(a,b,c){b||(b=5==a.type?Hc:6==a.type?Ic:Jc);zc(a,b,c);Bc(a,b,c)}var Jc=[],dc=[B.prototype.Fa,B.prototype.sb,B.prototype.$a,B.prototype.uc,B.prototype.Dd,B.prototype.Xc],Ac=[B.prototype.Ea,B.prototype.rb,B.prototype.Pa,B.prototype.tc,B.prototype.td,B.prototype.Wc],Ic=[B.prototype.Ja,B.prototype.Jb,B.prototype.fb,B.prototype.Uc,B.prototype.Hd,B.prototype.ve],Hc=[B.prototype.Ka,B.prototype.Ub,B.prototype.gb,B.prototype.ee,B.prototype.Id,B.prototype.kd]; if(vb)var cc=[B.prototype.Ca,B.prototype.Tb,B.prototype.Oa,B.prototype.bc,B.prototype.rd,B.prototype.Vc],bc=[B.prototype.aa,B.prototype.pa,B.prototype.ga,B.prototype.ra,B.prototype.ya,B.prototype.wa],Kc=[B.prototype.Ia,B.prototype.Db,B.prototype.cb,B.prototype.Cc,B.prototype.Gd,B.prototype.jd]; function Lc(a,b){Ua.call(this,"CPU",a,Lc,1);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Jd=c;this.Y.Yd=d;this.Y.ug=Math.round(this.Y.Jd/1E4)/100;this.Y.Fe=this.Y.ug*this.Y.Yd;this.la.Ib=!1;this.la.eh=!1;this.la.Ki=a.autoStart;this.la.Oi=!1;this.la.Ye=!1;this.Y.If=this.Y.kf=0;this.Y.Jf=a.csStart;this.Y.jf=a.csInterval;this.Y.lf=a.csStop;this.pi=this.Ke.bind(this);rb(this)}db(Lc);var Mc=["power","reset"];m=Lc.prototype; -m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.ha=d;for(b=0;b=a.Y.kf&&(a.Y.kf+=a.Y.jf,c=!0);0<=a.Y.lf&&a.Y.lf<=Wc(a)&&(a.Y.jf=a.Y.lf=-1,Pc(a),a.Wb(),c=!0);c&&a.O(Wc(a)+" cycles: checksum="+r(a.Y.If))}} -m.Qb=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.qa[b]=c;a=!0;break;case "run":this.qa[b]=c;c.onclick=function(){var a;if(a=d.V)if(a=d.V,a.la.cc)a=!0;else{var b=null,c,h=gb(a.id);for(c=0;cc&&(c=60);2>c&&(c=2);var d=1;b&&1a.Y.ug&&(c=Math.round(c/a.Y.Yd));return c}function Oc(a){a.Y.pe=0;a.uc=a.Ub=a.fb=a.A=0;Pc(a);Xc(a,1)} function Xc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y.pe/a.Y.Fe?b=1:d=!0;a.Y.Yd=b;b=a.Y.ug*a.Y.Yd;if(a.Y.Fe!=b){a.Y.Fe=b;b=a.Y.Fe.toFixed(2)+"Mhz";var e=a.qa.setSpeed;e&&(e.textContent=b);a.O("target speed: "+b)}c&&a.V&&a.V.yd()}Zc(a,a.Ub);a.Ub=0;a.Y.hf=pa();a.Y.Ge=0;$c(a);return d} @@ -85,32 +85,32 @@ m.fm=function(a){var b=this.F;a<<=3;var c=b.Mc+a|0;if(7<=(b.Td-c|0))return this. m.Jk=function(a,b){return(a>>>0)+b>this.Zb?this.Aa+a|0:this.pg()};m.pg=function(){C.call(this.F,13,0);return-1};function id(a,b,c,d,e){a.Z=b;a.Aa=d;a.Ta=e;a.Zb=(e>>>0)+1;a.wb=c;a.type=c&7936;a.ext=c>>16&192;a.Xb=(b&4?a.F.Bc.Aa:a.F.Ec)+(b&65528)|0;4>a.id&&fd(a,!0)}function jd(a,b,c){var d=a.F,e=d.na(b+2),f=d.na(b)|(e&255)<<16,d=d.na(b+4);a.Z=c;a.Aa=f;a.Ta=d;a.Zb=(d>>>0)+1;a.wb=e;a.type=e&7936;a.ext=0;a.Xb=b;4>a.id&&fd(a,!0)} function hd(a,b,c,d){var e=a.F;if(!d&&c===a.A.Z)return a.Z=c,a.Aa=a.A.Aa,a.Ta=a.A.Ta,a.Zb=(a.A.Ta>>>0)+1,a.wb=a.A.wb,a.type=a.A.type,a.ext=a.A.ext,a.Xb=a.A.Xb,a.A.Z=-1,fd(a,!0,!0,!1),a.Aa;a.A.Z=-1;var f=e.na(b+0),g=e.na(b+4),h=g&7936,k=e.na(b+2)|(g&255)<<16,l=e.na(b+6),n=c&65528;if(80386<=e.ia){var q=f,k=k|(l&65280)<<16,f=f|(l&15)<<16;l&128&&(f=f<<12|4095)}switch(a.id){case 1:var p=a.C;a.cf=!1;if(p&&1==c&&a.B.length){var z=a.B[a.Xf-1];if(z&&!z())return-1}var F=c&3,v=(g&24576)>>13,z=-1,E,H;n||b>=e.Ec&& b=a.Lb&&(F>a.Lb&&(z=D(e),kd(e,D(e),!0),G(e,z),a.cf=!0),z=0);else{if(256==h||2304==h)return ld(a,c,p)?a.Aa:-1;if(1024==h)z=2,H=0,Fh||2048==(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,11,c&65532),-1}break;case 3:if(!n||4096>h||512!=(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,12,c&65532),-1; +b==e.Mc+c,F<=v&&(!E||0<=e.rb||n<=v))){b=k&65535;h&2048&&(f=q|l<<16);l=h=0;d=b&3;if(dh||2048==(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,11,c&65532),-1}break;case 3:if(!n||4096>h||512!=(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,12,c&65532),-1; break;case 4:p=h&-513;if(!n||256!=p&&2304!=p)return C.call(e,13,c&65532),-1;2304==p&&(a.ti=k+e.na(k+100+2)|0,a.Ek=k+a.Ta|0);break;case 6:if(!(h&4096)&&768>>0)+1,a.wb=g,a.type=h,a.ext=l,a.Xb=b,fd(a,!0,!0,!1));return k} function ld(a,b,c){var d=a.F,e=a.Lb,f=d.Sa.Z,g=d.Sa.Aa;if(!c){if(!(d.Sa.type&512))return C.call(d,13,b&65532),!1;d.jb(d.Sa.Xb+4,d.Sa.wb&=-513)}if(-1===d.Sa.load(b))return!1;var h=d.Sa.Aa;if(!1!==c){if(d.Sa.type&512)return C.call(d,13,b&65532),!1;d.jb(d.Sa.Xb+4,d.Sa.wb|=512)}d.Sa.type=d.Sa.type&-513|d.Sa.wb&512;256==d.Sa.type||768==d.Sa.type?(d.jb(g+14,K(d)),d.jb(g+16,xd(d)),d.jb(g+18,d.G),d.jb(g+20,d.I),d.jb(g+22,d.M),d.jb(g+24,d.H),d.jb(g+26,I(d)),d.jb(g+28,d.P),d.jb(g+30,d.K),d.jb(g+32,d.J),d.jb(g+ 34,d.Xa.Z),d.jb(g+36,d.va.Z),d.jb(g+38,d.ta.Z),d.jb(g+40,d.vb.Z),d.Bc.load(d.na(h+42)),yd(d,d.na(h+16)|(c?16384:0)),d.G=d.na(h+18),d.I=d.na(h+20),d.M=d.na(h+22),d.H=d.na(h+24),d.P=d.na(h+28),d.K=d.na(h+30),d.J=d.na(h+32),d.Xa.load(d.na(h+34)),d.vb.load(d.na(h+40)),zd(d,d.na(h+14),d.na(h+36)),b=38,g=26,a.Lb>>0)+1)}; function fd(a,b,c,d){void 0===c&&(c=!!(a.F.Za&1));a.cd=!1;if(c)if(a.load=a.tg,a.Wi=a.fm,a.nc=a.Ci,a.oc=a.Ei,void 0===d&&(d=!!(a.F.ca&131072)),d)a.load=a.V,a.nc=a.ea,a.oc=a.qa,a.Lb=a.Gc=3,a.ba=a.Oc=2,a.R=a.Ba=65535,a.Ta=65535,a.Zb=a.Ta+1,a.Oc=a.ba,a.Xb=-1,a.cf=!1;else{if(!(a.Z&-4))a.nc=a.og,a.oc=a.pg;else if(a.type&4096){6144==(a.type&6656)&&(a.nc=a.og);if(a.type&2048||!(a.type&512))a.oc=a.pg;1024==(a.type&3072)&&(a.nc==a.Ci&&(a.nc=a.Ik),a.oc==a.Ei&&(a.oc=a.Jk),a.cd=!0);b&&6>a.id&&a.Z&-4&&-1!==a.Xb&& (c=a.Xb+5,d=a.F.Qa(c),d&1||a.F.qc(c,d|1))}b&&(a.Lb=a.Z&3,a.Gc=(a.wb&24576)>>13,80386>a.F.ia||!(a.ext&64)?(a.ba=2,a.R=65535):(a.ba=4,a.R=-1),a.Oc=a.ba,a.Ba=a.R)}else a.load=a.lh,a.Wi=a.gm,a.nc=a.Di,a.oc=a.Fi,a.Lb=a.Gc=0,a.Xb=-1,a.cf=!1} function Bd(a){this.ia=a.model||8088;var b=a.stepping;this.Uc=this.ia+(b?ca(b,16):0);b=0;switch(this.ia){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Lc.call(this,a,b);this.Yf=61442;this.Cc=1792;this.Wf=28672;this.Dd=4;this.ra=255;this.B=80286<=this.ia?xb:wb;this.X=Cd;this.bg=Dd;this.gg=Ed;this.hg=Fd;if(80186<=this.ia&&(this.X=Cd.slice(),this.bg=Dd.slice(),this.gg=Ed.slice(),this.ra=31,this.X[15]=Gd,this.X[96]=Hd,this.X[97]=Id,this.X[98]=Jd,this.X[99]=Gd,this.X[100]=Gd,this.X[101]= Gd,this.X[102]=Gd,this.X[103]=Gd,this.X[104]=Kd,this.X[105]=Ld,this.X[106]=Md,this.X[107]=Nd,this.X[108]=Od,this.X[109]=Pd,this.X[110]=Qd,this.X[111]=Rd,this.X[192]=Sd,this.X[193]=Td,this.X[200]=Ud,this.X[201]=Yd,this.X[241]=Zd,this.bg[7]=$d,this.gg[7]=$d,80286<=this.ia)){this.Yf=2;this.Cc|=28672;this.Dd=0;this.X[15]=ae;this.tc=ge.slice();for(a=0;a=this.Uc&&(this.tc[166]=oe,this.tc[167]=pe)}}this.Id=[];this.le=[];this.ne=0;Oc(this);this.la.Wd=this.la.Mi=!1;this.Pg=0;this.ld=this.sa=[];this.La=this.Nb=this.Fa=this.Gd=this.jd=this.Gb=this.Db=0;qe(this)}db(Bd,Lc);function re(a,b,c,d){Gc((d?a.ld:a.sa)[b>>>a.La],c);d&&Ub(a)} +le;this.X[102]=me;this.X[103]=ne;for(c in M)this.tc[+c]=M[c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=oe,this.tc[167]=pe)}}this.Id=[];this.le=[];this.ne=0;Oc(this);this.la.Wd=this.la.Mi=!1;this.Pg=0;this.ld=this.sa=[];this.La=this.Sb=this.Fa=this.Gd=this.jd=this.Gb=this.Db=0;qe(this)}db(Bd,Lc);function re(a,b,c,d){Gc((d?a.ld:a.sa)[b>>>a.La],c);d&&Ub(a)} function se(a){var b;if(a.sa===a.ld){a.sa=Array(a.Gd);a.me=new B(null,0,0,5,null,a);Mb(a.me,a.ha);for(b=0;ba.oe&&(a.ag[a.oe++]=d);a.sa[b]=a.me}a.Hd=[]}function Ub(a){a.Za&-2147483648&&se(a)} function Fc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.ld[(a.Pd+e&a.Gb)>>>a.La],g=f.Nd(e);if(!(g&1))return d||te.call(a,b,!1,c),a.kd;if(!(g&4)&&3==a.pa)return d||te.call(a,b,!0,c),a.kd;var h=(b&4190208)>>>10,g=a.ld[((g&-4096)+h&a.Gb)>>>a.La],k=g.Nd(h);if(!(k&1))return d||te.call(a,b,!1,c),a.kd;if(!(k&4)&&3==a.pa)return d||te.call(a,b,!0,c),a.kd;c=a.ld[((k&-4096)+(b&4095)&a.Gb)>>>a.La];if(d)return c;d=b>>>a.La;k=a.sa[d];b=b&-4096;var l;0>2;b.zb=g;b.B=h>>2;vb&&ac&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.fe=c.fe,b.da=c.da,Yb(b,Kc)):(b.ea=c?yc(32):0,b.W=c?yc(96):0,Yb(b,Ic));Mb(b,a.ha,k);a.sa[d]=b;a.Hd.push(d);return b}function ue(a){a.sa!==a.ld&&(a.sa=a.ld,a.me=null,a.Hd=null,a.kd=null)}m=Bd.prototype;m.reset=function(){this.la.Ib&&this.Wb();qe(this);Oc(this);this.la.ud=!1}; function ve(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=I(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function we(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:G(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}} function qe(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ja=a.wa=0;a.aa=0;a.ig=0;a.L=0;a.Za=65520;a.Mc=0;a.Td=1023;a.ca=a.Pa=0;a.Wc=a.td=a.Vc=a.Xc=0;a.rb=-1;a.bc=a.sb=-1;a.re=a.U=-1;a.va=new ed(a,1,"CS");a.vb=new ed(a,2,"DS");a.Xa=new ed(a,2,"ES");a.ta=new ed(a,3,"SS");G(a,0);kd(a,0);if(80386<=a.ia){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.ji=0;a.te=0;a.Pd=0;a.Ja=[0,0,0,0,null,null,0, -0];a.Ce=[null,null,null,null,null,null,0,0];a.Ob=new ed(a,2,"FS");a.Pb=new ed(a,2,"GS");ue(a)}a.qf=new ed(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ha=0;a.D=a.C=-1;a.$b=a.qf;a.ua=0;if(80286>a.ia)zd(a,0,65535);else{a.Ec=0;a.Ad=65535;a.Bc=new ed(a,5,"LDT",!0);a.Sa=new ed(a,4,"TSS",!0);a.Ea=new ed(a,6,"VER",!0);zd(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ia&&(d&=16777215);b=b.Aa=d;a.Ga=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}yd(a,0);md(a)} +0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new ed(a,2,"FS");a.Ob=new ed(a,2,"GS");ue(a)}a.qf=new ed(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ha=0;a.D=a.C=-1;a.$b=a.qf;a.ua=0;if(80286>a.ia)zd(a,0,65535);else{a.Ec=0;a.Ad=65535;a.Bc=new ed(a,5,"LDT",!0);a.Sa=new ed(a,4,"TSS",!0);a.Ea=new ed(a,6,"VER",!0);zd(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ia&&(d&=16777215);b=b.Aa=d;a.Ga=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}yd(a,0);md(a)} function xe(a){2==a.Oc?(a.dc=a.na,a.Oa=ye,a.$a=ze,a.Jb=Ae,2==a.ba?(a.W=Be,a.fa=Ce,a.ya=De):(a.W=Ee,a.fa=Fe,a.ya=Ge)):(a.dc=a.oa,a.Oa=He,a.$a=Ke,a.Jb=Le,2==a.ba?(a.W=Me,a.fa=Ne,a.ya=Oe):(a.W=Pe,a.fa=Qe,a.ya=Re))}function nd(a,b){a.ba!=b&&(a.Ha|=1024,a.ba=b,a.R=2==b?65535:-1,Se(a))}function Se(a){2==a.ba?(a.Ia=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.W=Be,a.fa=Ce,a.ya=De):(a.W=Me,a.fa=Ne,a.ya=Oe)):(a.Ia=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.W=Ee,a.fa=Fe,a.ya=Ge):(a.W=Pe,a.fa=Qe,a.ya=Re))} function bf(a){a.Oc=a.va.Oc;a.Ba=a.va.Ba;xe(a);a.ba=a.va.ba;a.R=a.va.R;Se(a);a.Ha&=-3073}m.Qi=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+xd(this)|0};function cf(a,b,c){void 0===a.Id[b]&&(a.Id[b]=[]);a.Id[b].push(c)}function df(a,b,c){void 0!==c&&(null==a.le[b]&&a.ne++,a.le[b]=c)}function ef(a,b){var c=a.le[b];null!=c&&(c(--a.ne),delete a.le[b])} function ff(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Sd(g&a.Fa,f,a):Gc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Dc(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<>=2;f>>=4}}} -function md(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.hg=b&&!c?gf:Fd;fd(a.va,!1,b,c);fd(a.vb,!1,b,c);fd(a.ta,!1,b,c);fd(a.Xa,!1,b,c);80386<=a.ia&&(fd(a.Ob,!1,b,c),fd(a.Pb,!1,b,c));bf(a)} -m.save=function(){var a=new hf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.Ad,this.Mc,this.Td,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ia&&(g.push(this.ji),g.push(this.te),g.push(this.Pd),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,xd(this)];80386<=this.ia&&(b.push(this.Ob.save()),b.push(this.Pb.save()));N(a,1,b);N(a,2,[this.ka.lc, +function md(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.hg=b&&!c?gf:Fd;fd(a.va,!1,b,c);fd(a.vb,!1,b,c);fd(a.ta,!1,b,c);fd(a.Xa,!1,b,c);80386<=a.ia&&(fd(a.Nb,!1,b,c),fd(a.Ob,!1,b,c));bf(a)} +m.save=function(){var a=new hf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.Ad,this.Mc,this.Td,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ia&&(g.push(this.ji),g.push(this.te),g.push(this.Pd),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,xd(this)];80386<=this.ia&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.lc, this.Ka.lc,this.S,this.Ha,this.ua,this.D,this.C]);N(a,3,[0,this.uc,this.Y.Yd]);b=this.ea;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.V&&b.xg==b.Gb)||Rb(b,!0);for(g=0;g>>0)+(a.va.Ta>>>0)+1;a.pa=a.va.Lb;bf(a)}function zd(a,b,c,d){var e=a.va;e.Xf=b;e.C=d;b=e.load(c);return-1!==b?(lf(a,b+(a.va.Xf&a.va.R)),a.va.cf):null} function mf(a,b){var c=(a.Ga>>>0)+b;c>a.gf&&(8088>=a.ia||a.va.Ta==a.va.Ba?c=a.va.Aa+(c-a.gf&a.R):C.call(a,13,0));return c|0}function nf(a){a.Ga=a.re}function I(a){return a.gb&~a.ta.Ba|a.ga-a.ta.Aa}function G(a,b){a.gb=b;a.ga=a.ta.Aa+(b&a.ta.Ba)|0}function of(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&pf(a),g&2&&qf(a),g&4&&rf(a),g&8&&sf(a),g&16&&tf(a),g&32&&uf(a))}f?(a.Wc=d,a.Vc=b):(a.Wc=b,a.Vc=d);a.td=c;a.Xc=d;a.resultType=e} @@ -119,7 +119,7 @@ function rf(a){a.resultType&4&&(a.ca&=-17,(a.Vc^a.Wc^a.td)&16&&(a.ca|=16),a.resu function uf(a){a.resultType&32&&(a.ca&=-2049,(a.Wc^a.Vc)&(a.td^a.Vc)&a.resultType&-2147450752&&(a.ca|=2048),a.resultType&=-33);return a.ca&2048}function xf(a){a.resultType&=-2;a.ca&=-2}function Cf(a){a.resultType&=-5;a.ca&=-17}function Df(a){a.resultType&=-9;a.ca&=-65}function zf(a){a.resultType&=-33;a.ca&=-2049}function wf(a){a.resultType&=-2;a.ca|=1}function Ef(a){a.resultType&=-5;a.ca|=16}function Ff(a){a.resultType&=-9;a.ca|=64}function yf(a){a.resultType&=-33;a.ca|=2048} function xd(a){return a.ca&-2262|pf(a)|qf(a)|rf(a)|sf(a)|tf(a)|uf(a)}function Gf(a,b){b=b|a.Za&1|65520;a.Za=a.Za&-65536|b&65535;a.Za&1&&md(a,!0)}function yd(a,b,c){a.Za&1||(b&=~a.Wf);void 0===c&&(c=a.pa);c?b=b&-12289|a.ca&12288:a.Pa=(b&12288)>>12;c>a.Pa&&(b=b&-513|a.ca&512);a.resultType=128;a.ca=a.ca&~(a.Cc|2261)|b&(a.Cc|2261)|a.Yf;a.ca&256&&(a.ua|=2,a.S|=4)} function Hf(a,b,c,d){var e=0;if(a.Za&1&&(a.pa>a.Pa||a.ca&131072)&&a.Sa.ti)for(var f=a.Sa.ti+(b>>>3),e=(1<>>=8,f++;return e?(A(a,256)&&y(a,"checkIOPM("+u(b)+","+c+","+(d?"input":"output")+"): trapped",!0,!0),C.call(a,13,0),!1):!0} -m.Qb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.qa[b]=c;this.Pg++;d=!0;break;default:d=this.parent.Qb.call(this,a,b,c)}return d}; +m.Pb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.qa[b]=c;this.Pg++;d=!0;break;default:d=this.parent.Pb.call(this,a,b,c)}return d}; function If(a,b,c,d){var e=(d?a.ld:a.sa)[(b&a.Db)>>>a.La];e&&5==e.type&&(e=Fc(a,b,!1,!0));if(e){var f=b&a.Fa;if(!c||1==c)return e.se(f,b);if(2==c)return f>>this.La].jc(a&this.Fa,a)}; m.na=function(a){var b=a&this.Fa,c=(a&this.Db)>>>this.La;this.A-=this.B.Eg;if(b>>this.La;if(b>>this.La].sc(a&this.Fa,b&255,a)}; m.jb=function(a,b){var c=a&this.Fa,d=(a&this.Db)>>>this.La;this.A-=this.B.Eg;c>8&255,a+1))};m.nb=function(a,b){var c=a&this.Fa,d=(a&this.Db)>>>this.La;this.A-=this.B.Eg;if(c>>=8}}; @@ -129,7 +129,7 @@ m.Ma=function(){var a=mf(this,this.ba),b=this.tb(this.Ga);this.Ga=a;return b};m. function pd(a,b,c,d){c=a.ga-c|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ia||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));switch(d){case 1:a.qc(c,b);break;case 2:a.jb(c,b);break;case 4:a.nb(c,b)}a.ga=c}function J(a,b){var c=a.ga-a.ba|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ia||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));a.rc(c,b);a.ga=c} function Sf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ia)2this.ia?0:1,e=0;2>e;e++){switch(d){case 0:if(this.ua&1&&this.ca&512){var f=Uf(this.N);if(-1<=f&&(this.ua&=-2,0<=f)){this.ua&=-5;Vf.call(this, f);d=!0;break a}}break;case 1:if(this.ua&2){this.ua&=-3;80386<=this.ia&&(this.Ja[6]|=16384);Vf.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.O("interrupt dispatched");this.S=0;break}if(this.ua&4){this.S=this.A=0;break}}if(b){if(Wf(this.ha,this.Ga,c)){this.Wb();break}c=1}this.S=0;this.X[this.xa()].call(this)}while(0>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=nh[c][f]){if(0>oh.indexOf(e)){var f=b.F,g=f.re;8087==b.ia&&(f.Ha&16&&g++,f.Ha&32&&g++);b.fa=f.va.Z;b.W=g-f.va.Aa;-1!==f.D&&(b.ga=f.$b.Z,b.U=f.D-f.$b.Aa);b.ja=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.D?2:8;return a}function Kh(a){if(80186>this.ia)return Lh.call(this,a);C.call(this,13,0);return a}function $d(a){C.call(this,6);return a} function Lh(a){he.call(this);return a}function Mh(a,b){var c=Nh.call(this,this.T(),b);80386>this.ia&&(this.A-=12);return c}function Oh(a,b){var c;a=this.Ma();c=2==this.ba?Nh.call(this,a,b):Ph.call(this,a,b);80386>this.ia&&(this.A-=12);return c}function Qh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Rh.call(this,a,b);c&&(this.ja=~this.ja+1|0,this.wa=~this.wa+(this.ja?0:1)|0)} function Nh(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767c?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return c&65535}function Ph(a,b){Qh.call(this,a,b);this.wa!=this.ja>>31?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return this.ja}function Sh(a,b){this.A-=14+(-1===this.D?0:2);Df(this);-1!==this.Ea.load(b)&&this.Ea.Gc>=this.pa&&this.Ea.Gc>=(b&3)&&(Ff(this),a=this.Ea.wb&-256,2=this.pa)&&this.Ea.Gc>=(b&3))return Ff(this),this.Ea.Ta;Df(this);return a}function Zh(a,b){if(-1===this.D)return he.call(this),a;kd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b} +function Th(a,b){if(-1===this.D)return he.call(this),a;vd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b}function Uh(){this.A-=this.B.Ej;return this.D}function Vh(a,b){if(-1===this.D)return he.call(this),a;wd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b}function Wh(a,b){if(-1===this.D)return he.call(this),a;var c=this.na(this.D+this.ba);this.Nb.load(c);this.A-=this.B.of;return b} +function Xh(a,b){if(-1===this.D)return he.call(this),a;var c=this.na(this.D+this.ba);this.Ob.load(c);this.A-=this.B.of;return b}function Yh(a,b){this.A-=14+(-1===this.D?0:2);if(b&65528&&-1!==this.Ea.load(b)&&(7168==(this.Ea.wb&7168)||this.Ea.Gc>=this.pa)&&this.Ea.Gc>=(b&3))return Ff(this),this.Ea.Ta;Df(this);return a}function Zh(a,b){if(-1===this.D)return he.call(this),a;kd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b} function $h(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;return b}function ai(a,b){switch(this.L>>3&7){case 4:this.aa=this.G;break;case 5:this.aa=this.I;break;case 6:this.aa=this.M;break;case 7:this.aa=this.H}return b}function bi(a,b){return b} function ci(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ia||80386==this.ia&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return $h.call(this,0,b)} -function di(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Ob.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Pb.Z;break}default:C.call(this,6),b=a}-1!==this.C&&nd(this,2);return $h.call(this,0,b)} +function di(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Nb.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Ob.Z;break}default:C.call(this,6),b=a}-1!==this.C&&nd(this,2);return $h.call(this,0,b)} function Rh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ja=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ja=a*b|0,this.wa=0}function ei(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function fi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R} function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ii(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0} function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())} @@ -186,7 +186,7 @@ function nj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a function pj(a){this.Za=a;md(this);this.Za&-2147483648?se(this):ue(this)}function Ad(a){this.Pd=a;Ub(this)}function qj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Ri(a,b,c){if(c){16>>16-c)&65535;vf(this,a,32768,d&32768)}return a}function Ti(a,b,c){if(c){var d=a<>>32-c;vf(this,a,-2147483648,d&-2147483648)}return a} function Xi(a,b,c){if(c){16>>c-1;a=(d>>>1|b<<16-c)&65535;vf(this,a,32768,d&1)}return a}function Zi(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;vf(this,a,-2147483648,d&1)}return a}function rj(){this.A-=-1===this.D?2:this.B.Yj;return 1}function sj(){var a=this.I&255;this.A-=(-1===this.D?this.B.Uh:this.B.Th)+(a<this.rb?(-1!=this.bc&&(this.bc!==this.va.Z&&(this.va.Lb=this.bc&3,kf(this,this.bc)),this.bc=-1),this.re!==this.Ga&&lf(this,this.re),-1!=this.sb&&(this.sb!==this.ta.Z&&kd(this,this.sb),this.sb=-1),-1!==this.U&&(this.U!==this.ga&&G(this,this.gb&~this.ta.Ba|this.U-this.ta.Aa),this.U=-1)):8!=this.rb?(b=0,a=8):(b=0,a=-1,qe(this),e=d=!1)):lf(this,this.re);var f=a,g=b,h=32,k=If(this,this.Ga);204!=k||this.Td||(d=!1);this.ca&131072&&(6==f&&99== k||13==f&&205==k)&&(d=!1);!1===d&&(h|=1);983040<=this.Ga&&1048575>=this.Ga&&(d=!1);A(this,h|-2147483648)&&(d=!0);if(A(this,h)||d){var l=this.la.Ib,f="Fault "+t(f)+(null!=g?" ("+u(g)+")":"")+" on opcode "+t(k);d&&l&&(f+=" (blocked)");this.ha?(y(this,f,d||h,!0),d&&(d=l,this.ha.Wb())):(this.Na(f),this.Wb())}if(d&&e)throw-1;if(e)throw this.rb=a,xj.call(this,a,b,c),this.re=this.Ga,this.S=1==a?this.S|8192:this.S|4096,a;} function te(a,b,c){this.te=a;a=0;b&&(a|=1);c&&(a|=2);3==this.pa&&(a|=4);C.call(this,14,a)}function zj(a){var b=a.wb&7680;a.Z&65528&&(6144==b||7168==b||7168>b&&a.Gc>6,d,e;switch(b>>3&7){case 0:d=this.G;break;case 1:d=this.I;break;case 2:d=this.M;break;case 3:d=this.H;break;case 4:d=0;break;case 5:d=this.P;break;case 6:d=this.K;break;case 7:d=this.J}switch(b&7){case 0:e=this.G;break;case 1:e=this.I;break;case 2:e=this.M;break;case 3:e=this.H;break;case 4:e=I(this);this.ka=this.Ka;break;case 5:a?(e=this.P,this.ka=this.Ka):e=T(this);break;case 6:e=this.K;break;case 7:e=this.J}return(d<>3&7){case 0:a=this.G;this.G=this.aa;wd(this,a);break;case 1:a=this.I;this.I=this.aa;kf(this,a);break; -case 2:a=this.M;this.M=this.aa;kd(this,a);break;case 3:a=this.H;this.H=this.aa;vd(this,a);break;case 4:a=I(this);G(this,this.aa);80386<=this.ia?this.Ob.load(a):wd(this,a);break;case 5:a=this.P;this.P=this.aa;80386<=this.ia?this.Pb.load(a):kf(this,a);break;case 6:a=this.K;this.K=this.aa;kd(this,a);break;case 7:a=this.J,this.J=this.aa,vd(this,a)}},function(){this.S|=1;this.U=this.ga;this.aa=D(this);this.ya.call(this,ik,vj);this.U=-1},function(){this.A-=3},function(){var a=this.G;this.G=this.G&~this.R| +case 2:a=this.M;this.M=this.aa;kd(this,a);break;case 3:a=this.H;this.H=this.aa;vd(this,a);break;case 4:a=I(this);G(this,this.aa);80386<=this.ia?this.Nb.load(a):wd(this,a);break;case 5:a=this.P;this.P=this.aa;80386<=this.ia?this.Ob.load(a):kf(this,a);break;case 6:a=this.K;this.K=this.aa;kd(this,a);break;case 7:a=this.J,this.J=this.aa,vd(this,a)}},function(){this.S|=1;this.U=this.ga;this.aa=D(this);this.ya.call(this,ik,vj);this.U=-1},function(){this.A-=3},function(){var a=this.G;this.G=this.G&~this.R| this.I&this.R;this.I=this.I&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.M&this.R;this.M=this.M&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.H&this.R;this.H=this.H&~this.R|a&this.R;this.A-=3},function(){var a=this.G,b=I(this);this.G=this.G&~this.R|b&this.R;G(this,b&~this.R|a&this.R);this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.P&this.R;this.P=this.P&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G& ~this.R|this.K&this.R;this.K=this.K&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.J&this.R;this.J=this.J&~this.R|a&this.R;this.A-=3},function(){this.G=2==this.ba?this.G&-65536|this.G<<24>>24&65535:this.G<<16>>16;this.A-=2},function(){this.M=2==this.ba?this.M&-65536|(this.G&32768?65535:0):this.G&-2147483648?-1:0;this.A-=this.B.dj},function(){wj.call(this,this.Ma(),Rf(this));this.A-=this.B.gj},function(){this.A-=3},function(){var a=xd(this);a&131072&&3>this.Pa?C.call(this, 13,0):(J(this,a&-196609),this.A-=this.B.Sc)},function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var a=D(this),a=a&65535|this.ca&-65536;yd(this,a);this.A-=this.B.zc}},function(){var a=this.G>>8&255;a&1?wf(this):xf(this);a&4?(this.resultType&=-3,this.ca|=4):(this.resultType&=-3,this.ca&=-5);a&16?Ef(this):Cf(this);a&64?Ff(this):Df(this);a&128?(this.resultType&=-17,this.ca|=128):(this.resultType&=-17,this.ca&=-129);this.A-=this.B.gc},function(){this.G=this.G&-65281|(xd(this)&213)<<8;this.A-= @@ -318,7 +318,7 @@ this.I&-256|this.xa();this.A-=this.B.gc},function(){this.M=this.M&-256|this.xa() ~this.R|this.Ma();this.A-=this.B.gc},function(){this.M=this.M&~this.R|this.Ma();this.A-=this.B.gc},function(){this.H=this.H&~this.R|this.Ma();this.A-=this.B.gc},function(){G(this,I(this)&~this.R|this.Ma());this.A-=this.B.gc},function(){this.P=this.P&~this.R|this.Ma();this.A-=this.B.gc},function(){this.K=this.K&~this.R|this.Ma();this.A-=this.B.gc},function(){this.J=this.J&~this.R|this.Ma();this.A-=this.B.gc},bk,ck,bk,ck,function(){this.W.call(this,Vh)},function(){this.W.call(this,Th)},function(){this.S|= 1;this.Jb.call(this,jk,this.xa)},function(){this.S|=1;this.ya.call(this,jk,this.Ma)},dk,ek,dk,ek,function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var a=this.B.xj;this.rb=-1;xj.call(this,3,null,a)}},function(){var a=this.xa();if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var b;a:{b=this.Id[a];if(void 0!==b)for(var c=0;cthis.Pa)C.call(this,13,0);else{var a=this.B.yj;this.rb=-1;xj.call(this,4,null,a)}else this.A-=this.B.zj},function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{this.sb=this.ta.Z;this.U=this.ga;this.A-=this.B.vj;if(this.Za&1&&this.ca&16384){var a=this.na(this.Sa.Aa+0);ld(this.va,a,!1)}else{var a=this.pa,b=D(this),c=D(this),d=D(this);if(this.ca&131072)d=d&131071|this.ca&-131072;else if(d&131072){var e=D(this),f=D(this),g=D(this),h=D(this),k=D(this),l=D(this);md(this,!0,!0);kd(this, -f);G(this,e);wd(this,g);vd(this,h);this.Ob.load(k);this.Pb.load(l)}null!=zd(this,b,c,!1)&&(yd(this,d,a),this.ne&&ef(this,this.Ga))}this.sb=this.U=-1}},function(){this.Jb.call(this,Yj,rj)},function(){this.ya.call(this,2==this.ba?Zj:ak,rj)},function(){this.Jb.call(this,Yj,sj)},function(){this.ya.call(this,2==this.ba?Zj:ak,sj)},function(){var a=this.xa();if(a){var b=this.G&255;this.G=this.G&-65536|b/a<<8|b%a;vf(this,this.G,128);this.A-=this.B.aj}else Aj.call(this)},function(){var a=this.G&255,b=(this.G>> +f);G(this,e);wd(this,g);vd(this,h);this.Nb.load(k);this.Ob.load(l)}null!=zd(this,b,c,!1)&&(yd(this,d,a),this.ne&&ef(this,this.Ga))}this.sb=this.U=-1}},function(){this.Jb.call(this,Yj,rj)},function(){this.ya.call(this,2==this.ba?Zj:ak,rj)},function(){this.Jb.call(this,Yj,sj)},function(){this.ya.call(this,2==this.ba?Zj:ak,sj)},function(){var a=this.xa();if(a){var b=this.G&255;this.G=this.G&-65536|b/a<<8|b%a;vf(this,this.G,128);this.A-=this.B.aj}else Aj.call(this)},function(){var a=this.G&255,b=(this.G>> 8&255)*this.xa()|0,c=a+b|0;this.G=this.G&-65536|c&255;of(this,a,b,c,191);this.A-=this.B.$i},function(){this.G=this.G&-256|(pf(this)?255:0);this.A-=2},function(){this.G=this.G&-256|Jf(this,this.ka,this.H+(this.G&255));this.A-=this.B.Zj},function(){fk.call(this,216)},function(){fk.call(this,217)},function(){fk.call(this,218)},function(){fk.call(this,219)},function(){fk.call(this,220)},function(){fk.call(this,221)},function(){fk.call(this,222)},function(){fk.call(this,223)},function(){var a=this.T(), b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b&&!sf(this)?(O(this,K(this)+a),this.A-=this.B.Gj):this.A-=this.B.Gh},function(){var a=this.T(),b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b&&sf(this)?(O(this,K(this)+a),this.A-=this.B.Hh):this.A-=this.B.Ih},function(){var a=this.T(),b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b?(O(this,K(this)+a),this.A-=this.B.Fj):this.A-=this.B.Gh},function(){var a=this.T();this.I&this.Ba?this.A-=this.B.Ih:(O(this,K(this)+a),this.A-=this.B.Hh)},function(){var a=this.xa(); Hf(this,a,1,!0)&&(this.G=this.G&-256|ic(this.ea,a,1,this.Ga-2)&255,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|ic(this.ea,a,this.ba,this.Ga-2)&this.R,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,1,!1)&&(mc(this.ea,a,1,this.G&255,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.xa();Hf(this,a,this.ba,!1)&&(mc(this.ea,a,this.ba,this.G&this.R,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.Ma(),b=K(this),a=b+a;J(this,b);O(this,a); @@ -342,7 +342,7 @@ Lh];function oe(){this.W.call(this,gj);this.A-=-1===this.D?6:13}function pe(){th ge[5]=function(){this.pa?C.call(this,13,0,0,!0):(Gf(this,this.na(2054)),this.J=this.na(2086),this.K=this.na(2088),this.P=this.na(2090),this.H=this.na(2094),this.M=this.na(2096),this.I=this.na(2098),this.G=this.na(2100),jd(this.Xa,2102,this.na(2084)),jd(this.va,2108,this.na(2082)),jd(this.ta,2114,this.na(2080)),jd(this.vb,2120,this.na(2078)),yd(this,this.na(2072)),O(this,this.na(2074)),G(this,this.na(2092)),this.Ec=this.na(2126)|this.Qa(2128)<<16,this.Ad=this.Ec+this.na(2130),this.Mc=this.na(2138)| this.Qa(2140)<<16,this.Td=this.Mc+this.na(2142),jd(this.Bc,2132,this.na(2076)),jd(this.Sa,2144,this.na(2070)),this.A-=195)};ge[6]=function(){this.pa?C.call(this,13,0):(this.Za&=-9,this.A-=2)};ge[11]=Gd;ge[166]=Gd;ge[255]=Gd;var M=[];M[5]=Gd; M[7]=function(){if(this.pa)C.call(this,13,0,0,!0);else{var a=this.Xa.nc(this.J&this.Ba,204);if(-1!==a){pj.call(this,this.oa(a));var b=this.oa(a+168),c=(b&24576)>>13;yd(this,this.oa(a+4),c);this.Ec=this.oa(a+112);this.Ad=this.Ec+this.oa(a+116);this.Mc=this.oa(a+100);this.Td=this.Mc+this.oa(a+104);id(this.Bc,this.oa(a+56),this.oa(a+120),this.oa(a+124),this.oa(a+128));id(this.Sa,this.oa(a+52),this.oa(a+84),this.oa(a+88),this.oa(a+92));this.J=this.oa(a+12);this.K=this.oa(a+16);this.P=this.oa(a+20);this.H= -this.oa(a+28);this.M=this.oa(a+32);this.I=this.oa(a+36);this.G=this.oa(a+40);id(this.Pb,this.oa(a+60),this.oa(a+132),this.oa(a+136),this.oa(a+140));id(this.Ob,this.oa(a+64),this.oa(a+144),this.oa(a+148),this.oa(a+152));id(this.vb,this.oa(a+68),this.oa(a+156),this.oa(a+160),this.oa(a+164));id(this.ta,this.oa(a+72),b,this.oa(a+172),this.oa(a+176));id(this.va,this.oa(a+76),this.oa(a+180),this.oa(a+184),this.oa(a+188));id(this.Xa,this.oa(a+80),this.oa(a+192),this.oa(a+196),this.oa(a+200));O(this,this.oa(a+ +this.oa(a+28);this.M=this.oa(a+32);this.I=this.oa(a+36);this.G=this.oa(a+40);id(this.Ob,this.oa(a+60),this.oa(a+132),this.oa(a+136),this.oa(a+140));id(this.Nb,this.oa(a+64),this.oa(a+144),this.oa(a+148),this.oa(a+152));id(this.vb,this.oa(a+68),this.oa(a+156),this.oa(a+160),this.oa(a+164));id(this.ta,this.oa(a+72),b,this.oa(a+172),this.oa(a+176));id(this.va,this.oa(a+76),this.oa(a+180),this.oa(a+184),this.oa(a+188));id(this.Xa,this.oa(a+80),this.oa(a+192),this.oa(a+196),this.oa(a+200));O(this,this.oa(a+ 8));G(this,this.oa(a+24))}this.A-=122<<(a&3?1:0)}};M[16]=Uj;M[17]=Vj;M[18]=Wj;M[19]=Xj;M[32]=function(){if(this.pa)C.call(this,13,0);else{var a,b=this.xa();switch((b&56)>>3){case 0:a=this.Za;break;case 2:a=this.te;break;case 3:a=this.Pd;break;default:he.call(this);return}we(this,b&7,a);this.A-=6}};M[33]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;4==b||5==b?he.call(this):(we(this,a&7,this.Ja[b]),this.A-=22)}}; M[34]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=ve(this,a&7);switch((a&56)>>3){case 0:pj.call(this,b);this.A-=10;break;case 2:this.te=b;this.A-=4;break;case 3:Ad.call(this,b);this.A-=5;break;default:he.call(this)}}};M[35]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;4==b||5==b?he.call(this):(a=ve(this,a&7),a!=this.Ja[b]&&(ff(this,!1),this.Ja[b]=a,ff(this,!0)),this.A-=4>b?22:14)}}; M[36]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(we(this,a&7,this.Ce[b]),this.A-=12)}};M[38]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(this.Ce[b]=ve(this,a&7),this.A-=12)}};M[128]=function(){var a=this.Ma();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[129]=function(){var a=this.Ma();uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; @@ -350,8 +350,8 @@ M[130]=function(){var a=this.Ma();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab) M[135]=function(){var a=this.Ma();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[136]=function(){var a=this.Ma();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[137]=function(){var a=this.Ma();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[138]=function(){var a=this.Ma();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[139]=function(){var a=this.Ma();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)}; M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,ii)}; M[145]=function(){qj.call(this,ii)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)}; -M[159]=function(){qj.call(this,Pi)};M[160]=function(){pd(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Dh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){pd(this,this.Pb.Z,this.ba,2);this.A-=this.B.Ie}; -M[169]=function(){this.U=this.ga;var a=D(this);this.Pb.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Gh);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Nh:Ph)};M[178]=function(){this.W.call(this,Zh)};M[179]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=5)}; +M[159]=function(){qj.call(this,Pi)};M[160]=function(){pd(this,this.Nb.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Nb.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Dh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){pd(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie}; +M[169]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Gh);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Nh:Ph)};M[178]=function(){this.W.call(this,Zh)};M[179]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=5)}; M[180]=function(){this.W.call(this,Wh)};M[181]=function(){this.W.call(this,Xh)}; M[182]=function(){this.Oa.call(this,ai);switch(this.L>>3&7){case 0:this.G=this.G&~this.R|this.G&255;break;case 1:this.I=this.I&~this.R|this.I&255;break;case 2:this.M=this.M&~this.R|this.M&255;break;case 3:this.H=this.H&~this.R|this.H&255;break;case 4:this.gb=this.gb&~this.R|this.G>>8&255;this.G=this.aa;break;case 5:this.P=this.P&~this.R|this.I>>8&255;this.I=this.aa;break;case 6:this.K=this.K&~this.R|this.M>>8&255;this.M=this.aa;break;case 7:this.J=this.J&~this.R|this.H>>8&255,this.H=this.aa}this.A-= -1===this.D?3:6};M[183]=function(){nd(this,2);this.W.call(this,bi);switch(this.L>>3&7){case 0:this.G=this.G&65535;break;case 1:this.I=this.I&65535;break;case 2:this.M=this.M&65535;break;case 3:this.H=this.H&65535;break;case 4:this.gb=this.gb&65535;break;case 5:this.P=this.P&65535;break;case 6:this.K=this.K&65535;break;case 7:this.J=this.J&65535}this.A-=-1===this.D?3:6};M[186]=function(){this.ya.call(this,ok,this.xa)};M[187]=function(){this.fa.call(this,Eh);-1!==this.D&&(this.A-=5)}; @@ -366,7 +366,7 @@ function pk(a){Ua.call(this,"ChipSet",a,pk,32768);var b=a.model;b&&!qk[b]&&w("Un window.webkitAudioContext),this.sb&&(this.Fa=new this.sb));this.reset(!0);rb(this)}db(pk);var rk=5150.9,cg=5170,qk={5150:5150,5160:5160,5170:cg,att6300:5160.101,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:rk,deskpro386:5180},tk="sw1",xk="sw2",yk={Bk:1,ONE:0,co:64,ao:128,Fn:192,Lc:192,Qg:6},zk={bo:16,yn:32,Nn:48,Lc:48,Qg:4},vk=1,wk=4,Ak={5150:[{},{}]};Ak[5150][0][vk]={Lc:192,hd:{1:0,2:64,3:128,4:192},Qd:"Number of Floppy Drives"};Ak[5150][0][3]={Lc:2,hd:{0:0,1:2},Qd:"Coprocessor"}; Ak[5150][0][wk]={Lc:48,hd:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Qd:"Monitor Type"};Ak[5150][0][5]={Lc:12,hd:{16:0,32:4,48:8,64:12},Qd:"Base Memory (16Kb Increments)"};Ak[5150][1][6]={Lc:31,hd:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Qd:"Expansion Memory (32Kb Increments)"};Ak[5160]=[{},{}];Ak[5160][0][vk]=Ak[5150][0][vk];Ak[5160][0][3]=Ak[5150][0][3];Ak[5160][0][wk]=Ak[5150][0][wk]; Ak[5160][0][5]={Lc:12,hd:{64:0,128:4,192:8,256:12},Qd:"Base Memory (64Kb Increments)"};Ak[5160][1][6]=Ak[5150][1][6];Ak[5160.101]=[{},{}];Ak[5160.101][0][5]={Lc:143,hd:{128:1,256:130,512:8,640:141},Qd:"Base Memory (128Kb Increments)"};Ak[5160.101][0][3]={Lc:16,hd:{0:0,1:16},Qd:"Coprocessor"};Ak[5160.101][1][2]={Lc:1,hd:{0:0,1:1},Qd:"Floppy Type"};Ak[5160.101][1][vk]=Ak[5150][0][vk];Ak[5160.101][1][wk]=Ak[5150][0][wk];m=pk.prototype; -m.Qb=function(a,b,c){switch(b){case tk:return this.qa[b]=c,Bk(this,0,b),!0;case xk:if(5150==(this.ia|0)||5160.101==this.ia)return this.qa[b]=c,Bk(this,1,b),!0;break;case "swdesc":return this.qa[b]=c,!0}return!1}; +m.Pb=function(a,b,c){switch(b){case tk:return this.qa[b]=c,Bk(this,0,b),!0;case xk:if(5150==(this.ia|0)||5160.101==this.ia)return this.qa[b]=c,Bk(this,1,b),!0;break;case "swdesc":return this.qa[b]=c,!0}return!1}; m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.Tb=Eb(a,"FPU");uk(this,3,this.Tb?1:0,!0);this.B=Eb(a,"Keyboard");this.gb=c.Y.Jd/1193181;hc(b,this,Ck);lc(b,this,Dk);this.iab;b++){var c=13>=b?Ok(e,b):e.A[b];a&&(a+="\n");a+="CMOS["+t(b)+"]: "+t(c)}e.ha.O(a)})}cf(c,26,this.am.bind(this))}; m.ic=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0}; @@ -430,8 +430,8 @@ function Yl(a){Ua.call(this,"ROM",a,Yl);this.A=null;this.L=a.addr;this.C=a.size; Yl.prototype.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;$l(this)};Yl.prototype.ic=function(){this.Rd&&(this.ha&&am(this.ha,this.id,0,this.L>>>4,0,this.L,this.C,this.Rd),delete this.Rd);return!0};Yl.prototype.hc=function(){return!0}; function Zl(a,b,c,d){if(d)a.Na("Unable to load system ROM (error "+d+": "+b+")");else{fb(a.ve,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Rd=e.symbols;if(!a.A.length){w("Empty ROM: "+b);return}if(1==a.A.length){w(a.A[0]);return}}catch(h){a.Na("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e>>d.La].wf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c>>d.La].wf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;cthis.B?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;Xk(a)}}else w("No RAM allocated")};m.save=function(){var a=new hf(this);this.controller&&N(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function em(a){this.N=a;this.C=gm;this.ha=hm;this.B=im;this.A=null}var fm=-2134900736,gm=65535,hm=2575,im=2,jm=[null,0],km=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=em.prototype;m.save=function(){return[this.C,this.B]}; @@ -446,7 +446,7 @@ u:85,i:73,o:79,p:80,"[":X["["],"]":X["]"],enter:13,ctrl:1017,a:65,s:83,d:68,f:70 Y[X["="]]=13;Y[X["+"]]=10765;Y[1008]=14;Y[1009]=15;Y[113]=16;Y[81]=10768;Y[119]=17;Y[87]=10769;Y[101]=18;Y[69]=10770;Y[114]=19;Y[82]=10771;Y[116]=20;Y[84]=10772;Y[121]=21;Y[89]=10773;Y[117]=22;Y[85]=10774;Y[105]=23;Y[73]=10775;Y[111]=24;Y[79]=10776;Y[112]=25;Y[80]=10777;Y[X["["]]=26;Y[X["{"]]=10778;Y[X["]"]]=27;Y[X["}"]]=10779;Y[13]=28;Y[1017]=29;Y[97]=30;Y[65]=10782;Y[115]=31;Y[83]=10783;Y[100]=32;Y[68]=10784;Y[102]=33;Y[70]=10785;Y[103]=34;Y[71]=10786;Y[104]=35;Y[72]=10787;Y[106]=36;Y[74]=10788; Y[107]=37;Y[75]=10789;Y[108]=38;Y[76]=10790;Y[X[";"]]=39;Y[X[":"]]=10791;Y[X["'"]]=40;Y[X['"']]=10792;Y[X["`"]]=41;Y[X["~"]]=10793;Y[1016]=42;Y[X["\\"]]=43;Y[X["|"]]=10795;Y[122]=44;Y[90]=10796;Y[120]=45;Y[88]=10797;Y[99]=46;Y[67]=10798;Y[118]=47;Y[86]=10799;Y[98]=48;Y[66]=10800;Y[110]=49;Y[78]=10801;Y[109]=50;Y[77]=10802;Y[X[","]]=51;Y[X["<"]]=10803;Y[X["."]]=52;Y[X[">"]]=10804;Y[X["/"]]=53;Y[X["?"]]=10805;Y[3016]=54;Y[1044]=55;Y[1018]=56;Y[1032]=57;Y[1020]=58;Y[1112]=59;Y[1113]=60;Y[1114]=61; Y[1115]=62;Y[1116]=63;Y[1117]=64;Y[1118]=65;Y[1119]=66;Y[1120]=67;Y[1121]=68;Y[1144]=69;Y[1145]=70;Y[1036]=71;Y[1038]=72;Y[1033]=73;Y[1109]=74;Y[1037]=75;Y[1101]=76;Y[1039]=77;Y[1107]=78;Y[1035]=79;Y[1040]=80;Y[1034]=81;Y[1045]=82;Y[1046]=83;Y[4027]=84;Y[1122]=87;Y[1123]=88;Y[1091]=91;Y[1093]=93;Y[1224]=91;Y[4003]=7470;Y[4008]=7494;Y[4046]=3677523;Y[4045]=3677522;Y[4013]=3677468;m=lm.prototype; -m.Qb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.qa[f])switch(b){case "kbd":return c.onkeydown=function(a){return um(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.L="";var b=!Y[a]||!!(e.xc&128);b||vm(e,a,!0);return b},c.onkeyup=function(a){return um(e,a,!1)},!0;case "caps-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();vm(e,1020,!0)},!0;case "num-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();vm(e,1144,!0)},!0;case "scroll-lock":return this.qa[f]= +m.Pb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.qa[f])switch(b){case "kbd":return c.onkeydown=function(a){return um(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.L="";var b=!Y[a]||!!(e.xc&128);b||vm(e,a,!0);return b},c.onkeyup=function(a){return um(e,a,!1)},!0;case "caps-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();vm(e,1020,!0)},!0;case "num-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();vm(e,1144,!0)},!0;case "scroll-lock":return this.qa[f]= c,c.onclick=function(){e.V&&e.V.yd();vm(e,1145,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==rm[g]&&"button"==a)return this.qa[f]=c,c.onclick=function(a,b,c){return function(){a.V&&a.V.yd();wm(a,c,!0);vm(a,c,!0)}}(this,g,rm[g]),!0;if(void 0!==sm[b])return this.ga++,this.qa[f]=c,a=function(a,b,c){return function(){vm(a,c)}}(this,b,sm[b]),b=function(a,b,c){return function(){xm(a,c)}}(this,b,sm[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup= c.onmouseout=b),!0;if(d)return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();d&&!e.L&&(e.L=d,ym(e,300))},!0}return!1};function zm(a,b,c){if(a.ga){for(var d in pm)if(b==pm[d]){b=+d;(d=om[d])&&(b=d);break}for(var e in sm)if((d=sm[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=sm[e]==d),d){(a=a.qa["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet")}; function mm(a,b){var c=0;a.ia=null;b&&(a.ia=b.toUpperCase(),c=nm.indexOf(a.ia),0>c&&(c=0));b=nm[c];a.ra=parseInt(b.substr(2),10)}function Sl(a){y(a,"keyboard reset",65792);a.A=[];Tl(a,170)}function Ol(a,b,c){a.aa!==c&&(a.aa=a.fa=c)&&(a.U=!0);a.X!==b&&(a.X=b)&&!a.fa&&Wl(a,!0);a.X&&a.fa&&(Sl(a),a.fa=!1)}function Tl(a,b){a.N&&(a.A.unshift(b),a.U=!0,Vl(a.N,b))}function Pl(a){var b=0;a.A.length&&a.U&&(b=a.A[0],a.N&&Vl(a.N,b));A(a)&&y(a,b?"scan code "+t(b)+" available":"no scan codes available")} @@ -491,9 +491,9 @@ function fn(a,b){var c=a.mb[b];if(null!=c&&5<=a.Ua){var d=0,e=0,f=0;switch(b){ca m=Z.prototype; m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;c=(c=Em[this.ia])&&c[0];3!==c&&(hc(b,this,gn),lc(b,this,hn));1!==c&&(hc(b,this,jn),lc(b,this,kn));5<=this.Ua&&(hc(b,this,ln),lc(b,this,mn));this.Ua==cm&&(hc(b,this,nn),lc(b,this,on));if(d){var e=this;Mk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.sd){var c,d,f,q=!1,p=8,z=8,F=-1,v=b.video.L>>3;for(c=0;c=d&&(z=d,q=!0);break;case "p":0<= d&&3>=d&&(F=d);break;case "w":d=b.ob&&(f-=b.ob);a="";for(c=0;cF?r(H):da(H>>(F<<3),8));q&&(f+=v-z);a&&(a+="\n");a+=E}a&&b.ha.O(a);b.B=f}else b.ha.O("no buffer")}else e.ha.O("BIOSMODE: "+t(e.Ia)),b=e.C,en(b,"CRTC",b.Ac,b.mb,b.kg),5<=b.Ua&&(en(b," GRC",b.be,b.ae,b.Ug),en(b," SEQ",b.ce,b.Je,b.Vg),en(b," ATC",b.Od,b.Tc,b.Tg),en(b," ATCINDX", -b.Od),b.ha.O(" ATCDATA: "+b.Xe),en(b," FEAT",b.dg),en(b," MISC",b.uf),en(b," STATUS0",b.Mg)),en(b," STATUS1",b.ma),1!=b.Ua&&3!=b.Ua||en(b," MODEREG",b.gd),3==b.Ua&&en(b," COLOR",b.sf),5<=b.Ua&&(b.ha.O(" LATCHES: "+r(b.Fb)),b.ha.O(" ACCESS: "+r(b.wg,4)),b.ha.O("Use 'dump video [addr]' to dump video memory"));else e.ha.O("no active video card")})}if((this.B=Eb(a,"Keyboard"))&&this.ka){for(var f in this.qa)0c&&(a=Math.round(c/b*100)+"%")}this.qf?(this.ka.style.width=a,this.ka.style.width=a,this.ka.style.display="block",this.ka.style.margin="auto"):(this.ga.style.width=a,this.ga.style.height="auto");this.ga.style.backgroundColor="black";this.ga.We();a=!0}this.V&&this.V.focus()}return a}; function Hm(a,b){!b&&a.ga&&(a.qf?a.ka.style.width=a.ka.style.height="":a.ga.style.width=a.ga.style.height="");y(a,"notifyFullScreen("+b+")",!0);a.B&&(a.B.bh=b)}m.De=function(a){var b=!1;this.V&&(a?this.V.De&&(this.V.De(),this.W&&this.W.Vf(!0),b=!0):this.V.sk&&(this.V.sk(),this.W&&this.W.Vf(!1),b=!0),this.V&&this.V.focus());return b};m.Vf=function(a){this.W&&(this.W.Vf(a),this.B&&(this.B.bh=a));var b=this.qa.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":this.uk)}; function pn(a,b){var c=a.V;c&&!a.me&&(c.addEventListener("touchstart",function(b){rn(a,b,!0)},!1),c.addEventListener("touchmove",function(b){rn(a,b)},!0),c.addEventListener("touchend",function(b){rn(a,b,!1)},!1),a.me=b,a.uc=a.Cc=a.hg=-1,a.Id=!1,a.Xc=null,a.Hd=!1,a.un=function(){a.Hd=!0;a.W.je(sn,!0)})}m.Gg=function(a){this.B&&this.B.Gg(a)}; @@ -520,7 +520,7 @@ a.jd|0;a.Ub=a.Yf;a.td=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.td=a.Ub+b>>1);if(a.Oa. function bo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.zf&&(d=h.zf[d]);var k=g>>4&15;h.zf&&(k=h.zf[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Oe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.ne,c=c*a.Ka+a.oe,a.ja.fillStyle=h.Oe[k],a.ja.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ja.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.ig,g=a.Ce,e?(a.$a&&a.$a!==h.Rc&&(f=f*h.Rc/a.$a|0,g=g*h.Rc/a.$a|0),e.fillStyle=h.Oe[d], e.fillRect(b,c+f,h.Qc,g)):(a.$a&&a.$a!==a.Ka&&(f=f*a.Ka/a.$a|0,g=g*a.Ka/a.$a|0),a.ja.fillStyle=h.Oe[d],a.ja.fillRect(b,c+f,a.Ja,g)))} function qn(a,b){if(a.la.cc){var c=!1,d=a.C;d&&(d!==a.A?d.gd&8&&(c=!0):d.Od&32&&(c=!0));if(c||b){if(b)go(a);else if(void 0===a.fa)return;var e=!1;!(b||++a.Pg&15)&&0<=a.cb&&(a.cb++,e=!0);var f=0,g=a.ag,h=a.ob,c=h,k=c+a.ac;19<=a.Ia&&(h=c=655360,k=c+65536);if(ho(a,d)&8||d.pf&&d.pf=a.Ia&& -(n<<=1));c+n>k&&(n=k-c,0>n&&(n=0));k=c+n;if(l=!b&&a.Fa){for(var l=a.ea,q=!0,p=c>>>l.La;0f)return;g=f+1}}if(a.U){if(a.Oa[a.U]){d=f;f=0;e=a.Pa=0;h=1048575;n=a.C.gd&32;5<=a.Ua&&(n=a.C.Tc[16]&8);l=a.ua-a.C.Md;n&&(e=32768,h&=~e,a.cb&2||(h&=-65537));for(c+=d<<1;ck&&(n=k-c,0>n&&(n=0));k=c+n;if(l=!b&&a.Fa){for(var l=a.ea,q=!0,p=c>>>l.La;0f)return;g=f+1}}if(a.U){if(a.Oa[a.U]){d=f;f=0;e=a.Pa=0;h=1048575;n=a.C.gd&32;5<=a.Ua&&(n=a.C.Tc[16]&8);l=a.ua-a.C.Md;n&&(e=32768,h&=~e,a.cb&2||(h&=-65537));for(c+=d<<1;c>8|(z&255)<<8;var H=e,L=16;n>=h))>>(L-=h);Bn(a.sb,n++,q,l[P])}n>F&&(F=n);q=E&&(E=q+1)}k+=2;d++;if(n>=a.L){n=0;q+=2;if(q>a.X)break;q==a.X&&(q=1,k=c+a.td)}}a.Fa=!0; pa.L?a.Db-a.L-z>>3:0;c>=8;l>p&&(p=l);n=v&&(v=n+1)}c+=E;if(l>=a.L){l=0;if(++n>a.X)break;c+=H}}z||(a.Fa=!0);qa.L?a.Db-a.L-v>>3:0;cH&&(L=H)):(z<<=v,L-=v,a.Fa=!1):(a.Fa&&z===a.fa[d]?(h+=L,L=0):a.fa[d]=z,d++);if(L){hq&&(q=h);l=F&&(F=l+1)}if(h>=a.L){h=0;if(++l>a.X)break;c+=E}}v||(a.Fa=!0);nMissing <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<=ya().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= (a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ya.aspect);f&&.3<=f&&3.33>=f&&(Pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ga("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Z(d,e,g,f,c);mb(d,c)}}); -function no(a){this.W=a.adapter;switch(this.W){case 1:this.V=956;this.C=7;break;case 2:this.V=888;this.C=7;break;case 3:this.V=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.W);return}this.A=this.B=null;Ua.call(this,"ParallelPort",a,no,4194304);a=a.binding;"console"==a?this.B="":kb(this,a,oo)}db(no);var oo="buffer";m=no.prototype;m.Qb=function(a,b,c){switch(b){case oo:return this.qa[b]=this.A=c,!0}return!1}; +function no(a){this.W=a.adapter;switch(this.W){case 1:this.V=956;this.C=7;break;case 2:this.V=888;this.C=7;break;case 3:this.V=632;this.C=5;break;default:w("Unrecognized parallel adapter #"+this.W);return}this.A=this.B=null;Ua.call(this,"ParallelPort",a,no,4194304);a=a.binding;"console"==a?this.B="":kb(this,a,oo)}db(no);var oo="buffer";m=no.prototype;m.Pb=function(a,b,c){switch(b){case oo:return this.qa[b]=this.A=c,!0}return!1}; m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,po,this.V);lc(b,this,qo,this.V);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){ro(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Yb;c[b]=this.Bf;N(a,0,c);return a.data()};m.restore=function(a){return ro(this,a[0])}; function ro(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.L=b[c++];a.Yb=b[c++];a.Bf=b[c];return!0}m.tl=function(a,b){var c=this.L;x(this,a,null,b,"DATA",c);return c};m.Rl=function(a,b){var c=this.Yb;x(this,a,null,b,"STAT",c);return c};m.pl=function(a,b){var c=this.Bf;x(this,a,null,b,"CTRL",c);return c}; m.Nm=function(a,b,c){x(this,a,b,c,"DATA");this.L=b;this.Yb|=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.B){if(10==b||1024<=this.B.length)this.O(this.B),this.B="";10!=b&&(this.B+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.Yb&=-65);so(this)};m.Im=function(a,b,c){x(this,a,b,c,"CTRL");this.Bf=b;so(this)};function so(a){a.N&&a.C&&(a.Bf&16&&!(a.Yb&64)?eg(a.N,a.C):dg(a.N,a.C))} var po={0:no.prototype.tl,1:no.prototype.Rl,2:no.prototype.pl},qo={0:no.prototype.Nm,2:no.prototype.Im};Qa(function(){for(var a=nb(document,"pcjs","parallel"),b=0;b=b)a.preventDefault&&a.preventDefault(),64=b)a.preventDefault&&a.preventDefault(),64>8:this.ja;x(this,a,null,b,this.B&128?"DLM":"IER",c);return c};m.Bl=function(a,b){var c=this.L;x(this,a,null,b,"IIR",c);return c}; @@ -594,17 +594,17 @@ b+" changes applied)";b=-1;break}if(this.ef){c="unable to modify write-protected m.toJSON=function(){var a;a=0;for(var b;b=Yo(this,a++);)qp(b);a=JSON.stringify(this.A,function(a,b){return"file"==a?void 0:b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")}; function qp(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function rp(a){Ua.call(this,"FDC",a,rp,524288);this.dmaRead=this.wk;this.dmaWrite=this.xk;this.dmaFormat=this.Lk;this.U=a.autoMount||null;this.ga=a.sortBy||"name";"none"==this.ga&&(this.ga=null);this.B=[];this.ja=!Ga("Mobi")&&window&&"FileReader"in window}db(rp);aa={}; var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.io},6:{Vd:9,ie:7,name:aa.Sn},7:{Vd:2,ie:0,name:aa.Un},8:{Vd:1,ie:2,name:aa.Yn},10:{Vd:2,ie:7,name:aa.Tn},13:{Vd:6,ie:7,name:aa.En},15:{Vd:3,ie:0,name:aa.Wn}};m=rp.prototype; -m.Qb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;a'+b+"");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value,10),(a= d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ja){c.parentNode.removeChild(c);break}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;up(d,fa(b,!0),b,a)}return!1};return!0}return!1}; m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)}; m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;cg.za.restore(p)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Rb,g.kb,g.xb));h||(e=!1)}a.X=b[c++]||0;a.kc=b[c]||0;return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b}; -m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Rb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1}; +case 720:g.Bb=80;g.lb=9;break;case 1200:g.Bb=80;g.lb=15;break;case 1440:g.Bb=80,g.lb=18}}var k=a,l=d,n=f[d],q=0;h=!0;g.hb=l;g.bd=g.$e=!1;void 0===n&&(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.Bb||40,g.ub||n[3],g.lb||9,g.Va||512,n[1],g.zg,g.Nf,g.Of]);g.Cb=n[q++];var p=n[q++];g.name=p[0];g.Bb=p[1];g.ub=p[2];g.lb=p[3];g.Va=p[4];g.bf=p[5];(g.zg=p[6])?(g.Nf=p[7],g.Of=p[8]):(g.zg=g.Bb,g.Nf=g.ub,g.Of=g.lb);g.kb=n[q++];g.ge=n[q++];g.Qb=n[q++];g.ge=100<=g.ge?g.ge-100:g.ge-g.Qb;g.xb= +n[q++];g.he=n[q++];g.Hb=n[q++];g.eb=n[q++];g.pb=null;g.za||(g.Le="");p=n[q++];102==p&&(p=!1);if("boolean"==typeof p){var z=p,p=n[q++],n=n[q];z?(q=p,p=k.A[l],Ap(k,l,!0,!0),p.$e=!0,l=new Ho(k,p,"preload"),k.Hi(p,l,q,n,!0)):Cp(k,l,p,n,!0)?g.za&&n&&Dp(k,p,n,g.za):rb(k,!1)}else void 0!==p&&g.za&&0>g.za.restore(p)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.X=b[c++]||0;a.kc=b[c]||0;return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b}; +m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1}; function zp(a,b){b||(a.fa=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.qa.listDisks)&&f.options)for(var g=0;gCp(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,h=void 0,h=0;h=this.C&&(this.ma&=-81,this.L=this.C=0);return c}; -m.Pm=function(a,b,c){A(this)&&x(this,a,b,c,"DATA["+this.C+"]");this.C=sp[a].Vd){b=!1;this.L=0;a=Ep(this);var d,e,f,g,h=a&31;switch(h){case 3:Ep(this);Ep(this);Fp(this);break;case 4:c=Ep(this);this.hb=c&3;d=this.A[this.hb];Fp(this);Gp(this,(d.Cb&-16777216)>>>24);break;case 5:case 6:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];d.kb=b;c=d.Rb=Ep(this);e=Ep(this);f=d.xb=Ep(this);g=Ep(this);d.Hb=128<>2&1;this.hb=c&3;d= -this.A[this.hb];c=d.Rb;e=d.kb=b;f=d.xb=1;g=0;d.Cb=0;d.za&&(d.pb=d.za.seek(d.Rb,d.kb,d.xb))?g=d.pb.length>>8:d.Cb=72;Hp(this,d,a,b,c,e,f,g);b=!0;break;case 13:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];c=d.Rb;e=d.kb=b;f=1;g=Ep(this);d.Hb=128<>2&1,c=Ep(this),d.Rb+=c-d.ge,0>d.Rb&&(d.Rb=0),d.Rb>=d.Bb&&(d.Rb=d.Bb-1),d.ge=c,d.Cb=32,d.Rb||(d.Cb|=268435456),Fp(this),b=!0}0>>8);Gp(a,(b.Cb&16711680)>>>16);var k=0;if(e!=b.Rb||f!=b.kb)k=g=1;c&128&&(f^=k,d||(k=0));Gp(a,e+k);Gp(a,f);Gp(a,g);Gp(a,h)}function Ep(a){var b=a.W[a.L];a.L++;return b}function Fp(a){a.L=a.C=0}function Gp(a,b){a.W[a.C++]=b} -m.wk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Cb&&a.za){do{if(a.pb&&(e=a.eb,0<=(b=a.za.read(a.pb,a.eb++)))){d=a.pb;break}a.pb=a.za.seek(a.Rb,a.kb,a.xb);if(!a.pb){a.Cb=1088;break}a.eb=0;Ip(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};m.xk=function(a,b){return void 0!==b&&0<=b?Jp(a,b):-1}; -m.Lk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Cb)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.Rb=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Hb=128<Jp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};function Jp(a,b){if(a.Cb||!a.za)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.pb=a.za.seek(a.Rb,a.kb,a.xb);if(!a.pb){a.Cb=8256;b=-1;break}a.eb=0;Ip(a)}while(1);return b} -function Ip(a){a.xb++;a.xb>=a.Of+1&&(a.xb=1,a.kb++,a.kb>=a.Nf&&(a.kb=0,a.Rb++))}var wp={1009:rp.prototype.vl,1012:rp.prototype.xl,1013:rp.prototype.ul,1015:rp.prototype.wl},xp={1010:rp.prototype.Qm,1013:rp.prototype.Pm,1015:rp.prototype.Om};Qa(function(){for(var a=nb(document,"pcjs","fdc"),b=0;b=sp[a].Vd){b=!1;this.L=0;a=Ep(this);var d,e,f,g,h=a&31;switch(h){case 3:Ep(this);Ep(this);Fp(this);break;case 4:c=Ep(this);this.hb=c&3;d=this.A[this.hb];Fp(this);Gp(this,(d.Cb&-16777216)>>>24);break;case 5:case 6:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];d.kb=b;c=d.Qb=Ep(this);e=Ep(this);f=d.xb=Ep(this);g=Ep(this);d.Hb=128<>2&1;this.hb=c&3;d= +this.A[this.hb];c=d.Qb;e=d.kb=b;f=d.xb=1;g=0;d.Cb=0;d.za&&(d.pb=d.za.seek(d.Qb,d.kb,d.xb))?g=d.pb.length>>8:d.Cb=72;Hp(this,d,a,b,c,e,f,g);b=!0;break;case 13:c=Ep(this);b=c>>2&1;this.hb=c&3;d=this.A[this.hb];c=d.Qb;e=d.kb=b;f=1;g=Ep(this);d.Hb=128<>2&1,c=Ep(this),d.Qb+=c-d.ge,0>d.Qb&&(d.Qb=0),d.Qb>=d.Bb&&(d.Qb=d.Bb-1),d.ge=c,d.Cb=32,d.Qb||(d.Cb|=268435456),Fp(this),b=!0}0>>8);Gp(a,(b.Cb&16711680)>>>16);var k=0;if(e!=b.Qb||f!=b.kb)k=g=1;c&128&&(f^=k,d||(k=0));Gp(a,e+k);Gp(a,f);Gp(a,g);Gp(a,h)}function Ep(a){var b=a.W[a.L];a.L++;return b}function Fp(a){a.L=a.C=0}function Gp(a,b){a.W[a.C++]=b} +m.wk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Cb&&a.za){do{if(a.pb&&(e=a.eb,0<=(b=a.za.read(a.pb,a.eb++)))){d=a.pb;break}a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=1088;break}a.eb=0;Ip(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};m.xk=function(a,b){return void 0!==b&&0<=b?Jp(a,b):-1}; +m.Lk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Cb)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.Qb=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Hb=128<Jp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};function Jp(a,b){if(a.Cb||!a.za)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=8256;b=-1;break}a.eb=0;Ip(a)}while(1);return b} +function Ip(a){a.xb++;a.xb>=a.Of+1&&(a.xb=1,a.kb++,a.kb>=a.Nf&&(a.kb=0,a.Qb++))}var wp={1009:rp.prototype.vl,1012:rp.prototype.xl,1013:rp.prototype.ul,1015:rp.prototype.wl},xp={1010:rp.prototype.Qm,1013:rp.prototype.Pm,1015:rp.prototype.Om};Qa(function(){for(var a=nb(document,"pcjs","fdc"),b=0;bc?Mq(this,iq(this,h,k),e+1,c&64?g:f,!(c&1),!!this.ka):Oq(this,iq(this,h,k),!(c&1),!!this.ka),this.ka&&(b.G=b.G&-256|1)}return!this.ka};m.Hk=function(){var a=this.F;5==(a.G&255)&&(a.I=a.K=0,a.G=a.G&-256|1);return!1}; -m.Qb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ka=this.qa[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",mq(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.U>>0)+1;a.wb=f;a.type=g;a.ext=k;a.Xb=d;fd(a,!0,!0,!1)}}return a}m.dc=function(a,b,c){var d=a&&a.Da;if(null==d&&(d=-1,a)){var e=Fq(this,a.Z,a.type);e&&(b=a.Ra||0,c=c||1,d=e=-1===e.Xb||e.cd&&(b>>>0)+c>e.Zb||!e.cd&&(b>>>0)+c<=e.Zb?e.Aa+b|0:-1,a.Da=d)}return d};m.Qa=function(a,b){var c=255,d=this.dc(a,!1,1);-1!==d&&(c=If(this.F,d,1,5==a.type)|0,b&&Uq(this,a,b));return c}; -m.tb=function(a,b){return a.Sb?this.oa(a,b?4:0):this.na(a,b?2:0)};m.na=function(a,b){var c=65535,d=this.dc(a,!1,2);-1!==d&&(c=If(this.F,d,2,5==a.type),b&&Uq(this,a,b));return c};m.oa=function(a,b){var c=-1,d=this.dc(a,!1,4);-1!==d&&(c=If(this.F,d,4,5==a.type),b&&Uq(this,a,b));return c};m.qc=function(a,b,c){var d=this.dc(a,!0,1);if(-1!==d){if(5!=a.type)this.F.qc(d,b);else{var e=this.ea;e.sa[(d&e.Gb)>>>e.La].wf(d&e.A,b&255,d)}c&&Uq(this,a,c);Qc(this.F,!0)}}; -m.jb=function(a,b,c){var d=this.dc(a,!0,2);-1!==d&&(5!=a.type?this.F.jb(d,b):fc(this.ea,d,b),c&&Uq(this,a,c),Qc(this.F,!0))};function iq(a,b,c,d,e,f,g){return Vq(a,{},b,c,d,e,f,g)}function Vq(a,b,c,d,e,f,g,h){b.Ra=c||0;b.Z=d;b.Da=e;b.type=f||(Tq(a)?2:1);b.Sb=null!=g?g:a.F&&4==a.F.va.ba;b.pc=null!=h?h:a.F&&4==a.F.va.Oc;b.Xd=!1;return b}function Wq(a){return[a.Ra,a.Z,a.Da,a.Xd,a.Sb,a.pc,a.Se,a.Wd]}function Xq(a){return{Ra:a[0],Z:a[1],Da:a[2],Xd:a[3],Sb:a[4],pc:a[5],Se:a[6],Wd:a[7]}} -function Yq(a,b,c){if(null!=b.Z&&(a=Fq(a,b.Z,b.type))){var d=b.Ra&a.Ba;if(!a.cd){if(d>>>0>=a.Zb)return!1}else if(d>>>0>>e.La].wf(d&e.A,b&255,d)}c&&Uq(this,a,c);Qc(this.F,!0)}}; +m.jb=function(a,b,c){var d=this.dc(a,!0,2);-1!==d&&(5!=a.type?this.F.jb(d,b):fc(this.ea,d,b),c&&Uq(this,a,c),Qc(this.F,!0))};function iq(a,b,c,d,e,f,g){return Vq(a,{},b,c,d,e,f,g)}function Vq(a,b,c,d,e,f,g,h){b.Ra=c||0;b.Z=d;b.Da=e;b.type=f||(Tq(a)?2:1);b.Rb=null!=g?g:a.F&&4==a.F.va.ba;b.pc=null!=h?h:a.F&&4==a.F.va.Oc;b.Xd=!1;return b}function Wq(a){return[a.Ra,a.Z,a.Da,a.Xd,a.Rb,a.pc,a.Se,a.Wd]}function Xq(a){return{Ra:a[0],Z:a[1],Da:a[2],Xd:a[3],Rb:a[4],pc:a[5],Se:a[6],Wd:a[7]}} +function Yq(a,b,c){if(null!=b.Z&&(a=Fq(a,b.Z,b.type))){var d=b.Ra&a.Ba;if(!a.cd){if(d>>>0>=a.Zb)return!1}else if(d>>>0f?null!=h?(g=ar(a,b,void 0),f=null):(f=ar(a,b,void 0),null==f&&(g=null)):(h=ar(a,b.substring(0,f),void 0),g=ar(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=iq(a,g,h,f,c),d||Yq(a,e,!0)||(a.O("invalid offset: "+Sq(e)),e=null));return e}function br(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Dk=cr(a,b.jk=c[2]))}function Uq(a,b,c){c=c||1;null!=b.Da&&(b.Da+=c);null!=b.Z&&(b.Ra+=c,Yq(a,b)||(b.Ra=0,b.Da=null))}function Iq(a,b,c){return null!=b?r(b,4)+":"+r(a,a&-65536||c?8:4):r(a)} function Sq(a){var b;switch(a.type){case 1:case 3:b="&";break;case 2:b="#";break;case 4:b="%";break;case 5:b="%%";break;default:b=a.Z?"":"%"}return 4<=a.type||null==a.Z?b+r(a.Da):b+Iq(a.Ra,a.Z,a.pc)}function Jq(a,b,c){var d="";for(c=c||256;d.length>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Fc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=sc[c],6==c&&(d=d.Cd,h+=" -> "+sc[d.type]),d&&a.O(r(d.id)+" %"+r(f<c&&(c=ua(uq,a.substr(b,2))));return c} function fr(a,b){var c=0,d=gr(a,b);if(void 0!==d)switch(b){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 22:case 16:case 17:case 18:case 19:case 20:case 21:c=4;break;case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 56:c=8;break;case 23:c=a.Ja}return c?r(d,c):"??"} function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=xd(d);break; -case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ia)32==b&&(c=d.Za);else if(80386<=a.F.ia)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.ji;break;case 34:c=d.te;break;case 35:c=d.Pd;break;case 20:c=d.Ob.Z;break;case 21:c=d.Pb.Z;break;case 56:c=K(d)}}}return c} +case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ia)32==b&&(c=d.Za);else if(80386<=a.F.ia)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.ji;break;case 34:c=d.te;break;case 35:c=d.Pd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c} function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+uq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(d=e+' "'+Jq(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Zq(a,e))?(Uq(a,d),d=e+ ' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=hq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(iq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ga)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.Y.mf=0;c.fb-=c.A;c.A=0;Qc(c)}}; function kk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>oq.indexOf(b),!d)){var g=nq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=yb[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d} @@ -721,21 +721,21 @@ m.Sd=function(a,b,c){var d=!0;c||Rq(this,a,b,!1,!0);if(a!=this.A){var e=this.dc( function Rq(a,b,c,d,e){for(var f=!1,g=or(a,a.dc(c)),h=1;h>3&7,z=(3>(g>>6&3)?0:48)+p;(217==f||219==f)&&52<=z&&(z=p<<4|g&7);(p=Bq[f])&&(q=p[z]);q&&(n=rq,k=q,l=k[0])}l>=n.length&&(g=a.Qa(b,1),k=Cq[l-n.length][g>>3&7],l=k[0]);n=n[l];p=k.length-1;q="";b.Sb&&(18==l? -n="CWDE":28==l?n="CDQ":104<=l&&107>=l&&(n+="D"));if(164<=f&&167>=f||170<=f&&175>=f)p=0,b.Sb&&"W"==n.slice(-1)&&(n=n.slice(0,-1)+"D");for(var f=null,z=!0,F=1;F<=p;F++){var v,E;v="";E=k[F];if(void 0!==E){null==f&&(f=E>>14);80==l&&(2==f?q="[%800]":3==f&&(q="ES:["+(b.pc?"E":"")+"DI]"));var H=E&15;if(0!=H)if(8==H)z=!1;else{var L=E&240;if(128<=L)if(0>g&&(g=a.Qa(b,1)),160>L){v=a;var V=p,H=b,P="",bb=g>>6,ia=g&7;if(3>bb){var ja=void 0,L=0==n.indexOf("FI");if(!bb&&(!H.pc&&6==ia||H.pc&&5==ia))bb=2;else{if(H.pc)if(4!= -ia)ia+=8;else{var P=v,ja=bb,Ha=H,Xa=P.Qa(Ha,1),Ba=Xa>>6,Vb=Xa>>3&7,Xa=Xa&7,wa="";if(ja||5!=Xa)wa=vq[Xa+8];4!=Vb&&(wa&&(wa+="+"),wa+=vq[Vb+8],Ba&&(wa+="*"+(1<>24,P+="-"+r(-ja,2)):P+="+"+r(ja,2)):2==bb&&(P&&(P+="+"),H.pc?(ja=v.oa(H,4),P+=r(ja)):(ja=v.na(H,2),P+=r(ja,4)));P="["+P+"]";if(1==V){v="";E&=15;4==E&&(E=H.Sb?5:3);switch(E){case 7:v="FAR";break;case 1:v="BYTE";break;case 3:if(L){v="INT16"; -break}v="WORD";break;case 5:v="DWORD";break;case 11:if(L){v="INT32";break}case 11:v="REAL32";break;case 12:if(L){v="INT64";break}case 12:v="REAL64";break;case 13:v="REAL80";break;case 14:v="BCD80"}v&&(P=v+" "+P)}}else P=sr(v,ia,E,H);v=P}else v=160==L?sr(a,g&7,E,b):sr(a,g>>3&7,E,b);else if(16==L)v="1";else if(0==L){v=a;H=E;L=b;E=" ";switch(H&15){case 1:H&12288&&(E=r(v.Qa(L,1),2));break;case 2:E=r(v.Qa(L,1)<<24>>24,L.Sb?8:4);break;case 4:if(L.Sb){E=r(v.oa(L,4));break}case 3:E=r(v.na(L,2),4);break;case 7:L= -iq(v,v.tb(L,!0),v.na(L,2),null,L.type,L.Sb,L.pc);E=Sq(L);v=tr(v,L);v[0]&&(E+=" ("+v[0]+")");break;default:E="imm("+u(H)+")"}v=E}else 32==L?(b.pc?(v=8,E=a.oa(b,4)):(v=4,E=a.na(b,2)),v="["+r(E,v)+"]"):48==L?(v=1==H?a.Qa(b,1)<<24>>24:a.tb(b,!0),E=b.Ra+v&(b.Sb?-1:65535),v=r(E,b.Sb?8:4),E=tr(a,iq(a,E,b.Z)),E[0]&&(v+=" ("+E[0]+")")):96==L?v=9==H?"ST":10==H?"ST("+(g&7)+")":sr(a,(E&3840)>>8,E,b):112==L?v=sr(a,(E&3840)>>8,192,b):64==L?v="DS:[SI]":80==L&&(v="ES:[DI]");if(!v||!v.length){q="INVALID";break}0< +function rr(a,b,c,d){for(var e=iq(a,b.Ra,b.Z,b.Da,b.type),f=a.Qa(b,1),g=4,h=0,k=!1,l=!1;(102==f||103==f)&&g--;)102==f?k||(b.Rb=!b.Rb,k=!0):l||(b.pc=!b.pc,l=!0),h++,f=a.Qa(b,1);var g=-1,n=qq,k=a.Ia[f],l=k[0];176==l&&(l=a.Qa(b,1),k=Aq[l]||xq,f|=l<<8,l=k[0]);if(36==l){var g=a.Qa(b,1),q;q=null;var p=g>>3&7,z=(3>(g>>6&3)?0:48)+p;(217==f||219==f)&&52<=z&&(z=p<<4|g&7);(p=Bq[f])&&(q=p[z]);q&&(n=rq,k=q,l=k[0])}l>=n.length&&(g=a.Qa(b,1),k=Cq[l-n.length][g>>3&7],l=k[0]);n=n[l];p=k.length-1;q="";b.Rb&&(18==l? +n="CWDE":28==l?n="CDQ":104<=l&&107>=l&&(n+="D"));if(164<=f&&167>=f||170<=f&&175>=f)p=0,b.Rb&&"W"==n.slice(-1)&&(n=n.slice(0,-1)+"D");for(var f=null,z=!0,F=1;F<=p;F++){var v,E;v="";E=k[F];if(void 0!==E){null==f&&(f=E>>14);80==l&&(2==f?q="[%800]":3==f&&(q="ES:["+(b.pc?"E":"")+"DI]"));var H=E&15;if(0!=H)if(8==H)z=!1;else{var L=E&240;if(128<=L)if(0>g&&(g=a.Qa(b,1)),160>L){v=a;var V=p,H=b,P="",bb=g>>6,ia=g&7;if(3>bb){var ja=void 0,L=0==n.indexOf("FI");if(!bb&&(!H.pc&&6==ia||H.pc&&5==ia))bb=2;else{if(H.pc)if(4!= +ia)ia+=8;else{var P=v,ja=bb,Ha=H,Xa=P.Qa(Ha,1),Ba=Xa>>6,Vb=Xa>>3&7,Xa=Xa&7,wa="";if(ja||5!=Xa)wa=vq[Xa+8];4!=Vb&&(wa&&(wa+="+"),wa+=vq[Vb+8],Ba&&(wa+="*"+(1<>24,P+="-"+r(-ja,2)):P+="+"+r(ja,2)):2==bb&&(P&&(P+="+"),H.pc?(ja=v.oa(H,4),P+=r(ja)):(ja=v.na(H,2),P+=r(ja,4)));P="["+P+"]";if(1==V){v="";E&=15;4==E&&(E=H.Rb?5:3);switch(E){case 7:v="FAR";break;case 1:v="BYTE";break;case 3:if(L){v="INT16"; +break}v="WORD";break;case 5:v="DWORD";break;case 11:if(L){v="INT32";break}case 11:v="REAL32";break;case 12:if(L){v="INT64";break}case 12:v="REAL64";break;case 13:v="REAL80";break;case 14:v="BCD80"}v&&(P=v+" "+P)}}else P=sr(v,ia,E,H);v=P}else v=160==L?sr(a,g&7,E,b):sr(a,g>>3&7,E,b);else if(16==L)v="1";else if(0==L){v=a;H=E;L=b;E=" ";switch(H&15){case 1:H&12288&&(E=r(v.Qa(L,1),2));break;case 2:E=r(v.Qa(L,1)<<24>>24,L.Rb?8:4);break;case 4:if(L.Rb){E=r(v.oa(L,4));break}case 3:E=r(v.na(L,2),4);break;case 7:L= +iq(v,v.tb(L,!0),v.na(L,2),null,L.type,L.Rb,L.pc);E=Sq(L);v=tr(v,L);v[0]&&(E+=" ("+v[0]+")");break;default:E="imm("+u(H)+")"}v=E}else 32==L?(b.pc?(v=8,E=a.oa(b,4)):(v=4,E=a.na(b,2)),v="["+r(E,v)+"]"):48==L?(v=1==H?a.Qa(b,1)<<24>>24:a.tb(b,!0),E=b.Ra+v&(b.Rb?-1:65535),v=r(E,b.Rb?8:4),E=tr(a,iq(a,E,b.Z)),E[0]&&(v+=" ("+E[0]+")")):96==L?v=9==H?"ST":10==H?"ST("+(g&7)+")":sr(a,(E&3840)>>8,E,b):112==L?v=sr(a,(E&3840)>>8,192,b):64==L?v="DS:[SI]":80==L&&(v="ES:[DI]");if(!v||!v.length){q="INVALID";break}0< q.length&&(q+=",");q+=v||"???"}}}g="";k=Sq(e)+" ";if(-1!==e.Da&&-1!==b.Da){do if(g+=r(a.Qa(e,1),2),null==e.Da)break;while(e.Da!=b.Da)}k+=ma(g,e.pc?24:16);k+=ma(n,8);q&&(k+=" "+q);a.F.iaa.F.ia)return"??";b+=16}else if(208==e)b+=32;else if(224==e)b+=40;else if(240==e)b+=48;else if(a=c&15,3<=a&&(8>b&&(b+=8),5==a||4==a&&d.Sb))b+=16;return uq[b]} +function sr(a,b,c,d){var e=c&240;if(192==e){if(5a.F.ia)return"??";b+=16}else if(208==e)b+=32;else if(224==e)b+=40;else if(240==e)b+=48;else if(a=c&15,3<=a&&(8>b&&(b+=8),5==a||4==a&&d.Rb))b+=16;return uq[b]} function vr(a,b){var c;switch(b){case "V":c=uf(a.F);break;case "D":c=a.F.ca&1024;break;case "I":c=a.F.ca&512;break;case "T":c=a.F.ca&256;break;case "S":c=tf(a.F);break;case "Z":c=sf(a.F);break;case "A":c=rf(a.F);break;case "P":c=qf(a.F);break;case "C":c=pf(a.F);break;default:c=0}return b+(c?"1":"0")+" "}function Hq(a){return r(a,a&-65536?8:4)}function wr(a,b){8<=b&&15>=b&&4a.F.ia&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ia&&(e+="\n",c+=xr(a,a.F.Ob,b)+" "+xr(a,a.F.Pb,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID", -null,a.F.Mc,a.F.Td)+" ";c=c+(d+" "+e)+wr(a,32);80386<=a.F.ia&&(c+=wr(a,34)+wr(a,35))}else 80386<=a.F.ia&&(c+=xr(a,a.F.Ob,b)+" "+xr(a,a.F.Pb,b)+" ");return c+=wr(a,23)+vr(a,"V")+vr(a,"D")+vr(a,"I")+vr(a,"T")+vr(a,"S")+vr(a,"Z")+vr(a,"A")+vr(a,"P")+vr(a,"C")}var Ar={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; +function zr(a,b){var c;void 0===b&&(b=Tq(a));c=wr(a,8)+wr(a,11)+wr(a,9)+wr(a,10)+(4a.F.ia&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ia&&(e+="\n",c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID", +null,a.F.Mc,a.F.Td)+" ";c=c+(d+" "+e)+wr(a,32);80386<=a.F.ia&&(c+=wr(a,34)+wr(a,35))}else 80386<=a.F.ia&&(c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+" ");return c+=wr(a,23)+vr(a,"V")+vr(a,"D")+vr(a,"I")+vr(a,"T")+vr(a,"S")+vr(a,"Z")+vr(a,"A")+vr(a,"P")+vr(a,"C")}var Ar={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; function Br(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} function ar(a,b,c){var d;if(b){b=$q(a,b);for(var e=0,f=!1,g=b,h=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);eb[0]?1:a[0]>>0,n],v=oa(z,p,a.sb);0>v&&z.splice(-(v+1),0,p)}F&&(q.a=F.replace(/''/g,'"'))}a.B.push({fg:b,mm:c,Z:d,Ra:e,Da:f,em:g,Rd:h,ri:l})} function Qq(a,b,c){for(var d=0;d>>0,f=a.dc(b)>>>0,g=0;g>>0,n=h.Da;null!=n&&(n>>>=0);var q=h.em;48==k&&(k=40);if(k==b.Z&&e>=l&&e=n&&f=g&&e;g++){if(2h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.O(l)}h[3]&&(g=h[3],f=null);f=rr(a,b,g,f);b.Wd||d||d++;a.O(f);a.aa=b;e-=b.Da-k;c++}}} function cr(a,b,c,d){if(c)if(b){0>a.U&&a.L.length&&(a.U=0);if(0>a.U||b!=a.L[a.U])a.L.splice(0,0,b),a.U=0;a.U--}else b=a.L[a.U+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(na(b.substring(c,f))),c=f+1}}return a} function qr(a,b,c){var d=!0;try{if(!b.length||"end"==b)a.Ea&&(a.O("ended assemble at "+Sq(a.ua)),a.aa=a.ua,a.Ea=!1),b="";else if(!c){var e=">> ";a.F.Za&1&&(e=a.F.ca&131072?"-- ":"## ");a.O(e+b)}var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.Pa=null;if(sb(a)&&0n||"z">>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Te&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Te&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Te),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)), qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var En=a.$a[bb];En?(P.shift(),P.shift(),En(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Fn=ja,Gn=Ha,Hn="",In=0,tb=a.Fa,tc=a.ja;if(tc.length){var Db=+Fn||a.Ub,de=+Gn||10;isNaN(Db)?Db=de:Hn="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length); -tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ki=[];"call"==Gn&&(de=1E5,ki=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); +tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ki=[];"call"==Gn&&(de=1E5,ki=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift(); var li=P[0];if(li){var Ve=Eq(a,li);if(void 0===Ve||0>Ve||255>> 0,65536>4||1,ni="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nnqi;qi++){var sg=a.Qa(ee,1),rg=rg|sg<<(oi++<<3);oi==ni&&(We+=r(rg,2*ni),We+=1==ni?7==qi?"-":" ":" ",rg=oi=0);pi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+pi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1]; if(null==Sn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var ug=Zq(a,Sn);if(ug)for(var vg=2;vgwi;){for(var uc=null,ns=256;Tc.Ra>>>0>>0;){Ze.Ra=a.tb(Tc,!0); g[1],xg=g[2];if(a.W){var Xn=1;"-"==xg.charAt(0)&&(Xn=-1,xg=xg.substr(1));var td=Eq(a,xg,xi);if(void 0!==td)switch(td=td*Xn|0,xi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+xi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&& (Oa="keyboard");for(vc in wq)if(Oa==vc){ud=wq[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var os=0,Uc="";for(vc in wq)if(!Oa||Oa==vc){var ps=!!(a.wc&wq[vc]);if(null===wc||wc==ps)Uc&&(Uc+=","),++os%10||(Uc+="\n\t"),"key"==vc&&(vc="keys"),Uc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?wc?"messages on: ":"messages off: ":"message categories:\n\t")+ (Uc||"none"));kq(a)}break;case "o":var yi=g[1],qs=g[2];if(yi&&"?"!=yi){var zi=Eq(a,yi,"port #"),Ai=Eq(a,qs);void 0!==zi&&void 0!==Ai&&(mc(a.ea,zi,1,Ai),a.O(u(zi)+": "+t(Ai)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Yn="pr"==g[0]?1:0,fe=1+Yn;if(a.N)a.O("step in progress");else{var yg,Zn=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(yg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a, -lb,1);yg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Sb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Sb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Sb?7:5);break;case 255:var $n=a.tb(lb)&14591;if(4351==$n||6399==$n)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);Zn=yg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Zn&&(a.N=fe,Uq(a,lb,1))}while(yg);a.N?(a.Sd(a.A, +lb,1);yg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Rb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Rb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Rb?7:5);break;case 255:var $n=a.tb(lb)&14591;if(4351==$n||6399==$n)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);Zn=yg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Zn&&(a.N=fe,Uq(a,lb,1))}while(yg);a.N?(a.Sd(a.A, lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Yn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.21.7 ("+a.F.ia+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var $e;void 0!==g[3]&&($e=+g[3]);switch(g[2]){case "int":a.F.Y.jf=$e;break;case "start":a.F.Y.Jf= $e;break;case "stop":a.F.Y.lf=$e;break;default:a.O("unknown cs option");break a}void 0!==$e&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"), a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var af="commands:",Bi;for(Bi in pq)af+="\n"+ma(Bi,7)+pq[Bi];Tf(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.O(af);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0} Qa(function(){for(var a=nb(document,"pcjs","debugger"),b=0;b>>d.La;f=f+g-1>>>d.La;e.$g=0;for(e.Ud=0;h<=f;)g=d.sa[h],e.$g+=g.size,g.size&&(e.Rg.push(sa(Hb,h,0,0,g.type)),e.Ud++),h++;c.A=e;c.ya=c.A.Ud*c.ea.Nb/691200;d=0;c.A.Ai=0;c.A.Af||(c.A.Af=[]);var e=-1,h=0,k=-1;for(f=0;f>>d.La;f=f+g-1>>>d.La;e.$g=0;for(e.Ud=0;h<=f;)g=d.sa[h],e.$g+=g.size,g.size&&(e.Rg.push(sa(Hb,h,0,0,g.type)),e.Ud++),h++;c.A=e;c.ya=c.A.Ud*c.ea.Sb/691200;d=0;c.A.Ai=0;c.A.Af||(c.A.Af=[]);var e=-1,h=0,k=-1;for(f=0;f>1),k=g.y+(g.A>>1),l=g.A,g.ad>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}} +h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l>1,h.U+=(h.X>>1)-2,Jb(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Jb(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}} Qa(function(){for(var a=nb(document,"pcjs-machine"),b=0;bh.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pcjs$2")); diff --git a/docs/pcjs/examples/pc.js b/docs/pcjs/examples/pc.js index bb8d22e4d..4d4ddb130 100644 --- a/docs/pcjs/examples/pc.js +++ b/docs/pcjs/examples/pc.js @@ -20,32 +20,32 @@ this.Ba=function(a,b,c){this.rc(a,"notice",c)}),!0;default:return!1}},log:functi function bb(a,b){b&&(a.ea.ne?b():a.Bf=b);return a.ea.ne}function cb(a,b){a.ea.Yc=!0;a.Ba(b)} var db="undefined"!==typeof ArrayBuffer,eb={Lf:4,kc:5,bd:6,Ic:7,Jc:8,Sa:9,Kb:11,Lb:12,Sd:4,ai:60,bi:83,dc:3,yb:9,qc:16,Kf:1,fi:19,hi:28,ji:16,ii:21,gi:37,di:2,Ag:9,ei:5,ci:33,Cg:10,Bg:8,Xe:3,We:15,yi:51,zi:1,Ai:2,Bi:4,xi:32,Dg:15,Di:15,Ma:16,Na:4,Fi:11,Ei:18,Ci:24,Mb:4,Gi:2,we:16,Hi:17,Ig:18,Ii:19,Hg:5,Jg:6,Ni:2,Mi:8,Ki:9,Li:10,Ji:10,Kg:10,Lg:10,li:80,ni:144,ki:86,mi:154,pi:101,si:165,oi:107,ri:171,Pi:70,Ri:113,Oi:76,Qi:124,ui:80,wi:128,ti:86,vi:134,Ze:3,Ye:16,Qg:10,Pg:8,Si:51,ec:8,Ti:17,Ui:36,Ac:11, Vi:16,Td:10,Rc:2,xg:18,yg:7,zg:15,Eg:12,Fg:7,Gg:11,Mg:18,Ng:7,Og:15,Rg:15,Sg:7,Tg:13,Xg:11,Yg:7,Zg:8,Wi:8,Zi:12,Xi:18,Yi:17,$i:15,Vg:8,Ug:20,Wg:2,bh:3,$e:9,ah:5,$g:11,eh:4,dh:17,aj:11},fb={Lf:0,kc:0,bd:0,Ic:0,Jc:0,Sa:0,Kb:1,Lb:1,Sd:3,ai:14,bi:16,dc:2,yb:7,qc:7,Kf:0,fi:7,hi:13,ji:7,ii:11,gi:16,di:3,Ag:6,ei:2,ci:13,Cg:5,Bg:5,Xe:2,We:7,yi:23,zi:0,Ai:1,Bi:3,xi:17,Dg:7,Di:11,Ma:7,Na:3,Fi:7,Ei:11,Ci:15,Mb:2,Gi:3,we:7,Hi:8,Ig:8,Ii:8,Hg:4,Jg:4,Ni:2,Mi:3,Ki:5,Li:2,Ji:3,Kg:5,Lg:3,li:14,ni:22,ki:17,mi:25,pi:17, -si:25,oi:20,ri:28,Pi:13,Ri:21,Oi:16,Qi:24,ui:13,wi:21,ti:16,vi:24,Ze:2,Ye:7,Qg:5,Pg:5,Si:19,ec:5,Ti:5,Ui:17,Ac:3,Vi:5,Td:3,Rc:0,xg:8,yg:5,zg:9,Eg:5,Fg:5,Gg:4,Mg:5,Ng:5,Og:4,Rg:7,Sg:5,Tg:8,Xg:3,Yg:4,Zg:3,Wi:11,Zi:11,Xi:15,Yi:15,$i:7,Vg:5,Ug:8,Wg:0,bh:2,$e:6,ah:3,$g:6,eh:3,dh:5,aj:5};function gb(a){Ia.call(this,"Panel",a,gb);this.H=this.I=this.R=-1}Qa(gb); +si:25,oi:20,ri:28,Pi:13,Ri:21,Oi:16,Qi:24,ui:13,wi:21,ti:16,vi:24,Ze:2,Ye:7,Qg:5,Pg:5,Si:19,ec:5,Ti:5,Ui:17,Ac:3,Vi:5,Td:3,Rc:0,xg:8,yg:5,zg:9,Eg:5,Fg:5,Gg:4,Mg:5,Ng:5,Og:4,Rg:7,Sg:5,Tg:8,Xg:3,Yg:4,Zg:3,Wi:11,Zi:11,Xi:15,Yi:15,$i:7,Vg:5,Ug:8,Wg:0,bh:2,$e:6,ah:3,$g:6,eh:3,dh:5,aj:5};function gb(a){Ia.call(this,"Panel",a,gb);this.H=this.I=this.S=-1}Qa(gb); function hb(a,b,c,d){this.A=[a,b,c,d];this.B=null;void 0===a&&(this.A[0]=256*Math.random()|0,this.A[1]=256*Math.random()|0,this.A[2]=256*Math.random()|0,this.A[3]=255,this.B=null)}hb.prototype.toString=function(){this.B||(this.B="#"+ea(this.A[0],2)+ea(this.A[1],2)+ea(this.A[2],2));return this.B};function ib(a,b,c,d){this.x=a;this.y=b;this.Fc=c;this.A=d}ib.prototype.contains=function(a,b){return a>=this.x&&a=this.y&&b=c>>2);d?(b=new ib(a.x,a.y,a.Fc,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new ib(a.x,a.y,a.Fc*b/c|0,a.A),a.x+=b.Fc,a.Fc-=b.Fc);return b}l=gb.prototype;l.zb=function(a,b,c,d){return this.ba&&this.ba.zb(a,b,c,d)||this.A&&this.A.zb(a,b,c,d)||this.C&&this.C.zb(a,b,c,d)?!0:this.parent.zb.call(this,a,b,c,d)};l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;this.C=kb(a,"Keyboard")};l.Vb=function(a,b){b||lb();return!0};l.Ub=function(){return!0}; -l.je=function(a,b){a.button||(this.R=b?0:-1,mb(this,a,b))};l.ng=function(a){mb(this,a)}; -function mb(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.R||(a.R=Math.abs(a.H-d)>Math.abs(a.I-b)?1:2),1==a.R?b=a.I:2==a.R&&(d=a.H));a.H=d;a.I=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.B&&a.B.ce)for(f=0;fd&& -(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);ob(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)pb(a,"Mouse over memory to dump");else for(pb(a,"0x"+ea(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ha;var k=b++;h=h.R[(k&h.Fa)>>>h.da].Fd(k&h.B,k);pb(a,ea(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}pb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}} -l.Xd=function(){};function qb(a,b,c,d){a.B.He[a.B.Hh++]={Ij:b,hd:c,type:d};return na(nb,b,c,0,d)}function ob(a,b,c,d){var e,f=null.style.color,g=a.xa=10;a.D=g;a.K=b;a.L=a.la=18;e||(e=a.ia||a.la+"px Monaco, Lucida Console, Courier New");a.S=a.ia=e;c&&(a.pa=c);d&&(a.G=d,a.qa=f||"white")} -function pb(a,b,c,d,e){a.G.font=a.S;a.G.fillStyle=a.qa;a.G.fillText(b,a.D,a.K);a.D+=a.Z;null!=c&&(16!=a.Ja?b=c.toString():(b=8>a.va?"0x":"",b+=ea(c,a.va)),a.G.fillText(b,a.D,a.K),a.D+=a.Z);d&&(a.D+=a.Z*d);e&&(a.D=a.xa,a.K+=(a.L+2)*(e||1))}function lb(){for(var a=!1,b=Za(document,"pcjs","panel"),c=0;c=this.D?12:24>=this.D?14:15;this.vb=1<>2;this.B=this.vb-1;this.H=this.L/this.vb|0;this.C=this.H-1;this.I=[];this.K=[];this.P=[];this.S=[];a=new q;sb(a,this.Ia);this.R=Array(this.H);for(b=0;bMath.abs(a.I-b)?1:2),1==a.S?b=a.I:2==a.S&&(d=a.H));a.H=d;a.I=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.B&&a.B.ce)for(f=0;fd&& +(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);ob(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)pb(a,"Mouse over memory to dump");else for(pb(a,"0x"+ea(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ha;var k=b++;h=h.S[(k&h.Fa)>>>h.da].Fd(k&h.B,k);pb(a,ea(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}pb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}} +l.Xd=function(){};function qb(a,b,c,d){a.B.He[a.B.Hh++]={Ij:b,hd:c,type:d};return na(nb,b,c,0,d)}function ob(a,b,c,d){var e,f=null.style.color,g=a.xa=10;a.D=g;a.K=b;a.L=a.la=18;e||(e=a.ia||a.la+"px Monaco, Lucida Console, Courier New");a.R=a.ia=e;c&&(a.pa=c);d&&(a.G=d,a.qa=f||"white")} +function pb(a,b,c,d,e){a.G.font=a.R;a.G.fillStyle=a.qa;a.G.fillText(b,a.D,a.K);a.D+=a.Z;null!=c&&(16!=a.Ja?b=c.toString():(b=8>a.va?"0x":"",b+=ea(c,a.va)),a.G.fillText(b,a.D,a.K),a.D+=a.Z);d&&(a.D+=a.Z*d);e&&(a.D=a.xa,a.K+=(a.L+2)*(e||1))}function lb(){for(var a=!1,b=Za(document,"pcjs","panel"),c=0;c=this.D?12:24>=this.D?14:15;this.xb=1<>2;this.B=this.xb-1;this.H=this.L/this.xb|0;this.C=this.H-1;this.I=[];this.K=[];this.P=[];this.R=[];a=new q;sb(a,this.Ia);this.S=Array(this.H);for(b=0;b>>a.da;0a.vb?a.vb:c;if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.fe)return g.De+=g.fe-b,g.fe=b,!0;if(b>=g.fe+g.De){k=g.size-(b-h);k>c&&(k=c);g.De=b-g.fe+k;c-=k;b=h+a.vb;continue}}return zb(a,1,b,c)}g=a.R[f];b=new q(b,k,a.vb,d,e);sb(b,a.Ia,g);a.R[f++]=b;b=h+a.vb;c-=k}return 0>=c?(a=a.A,a.Pa&-2147483648&&Bb(a),!0):zb(a,2,b,c)} -function xb(a,b){if(32==a.D)b?a.G&&(Cb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Db(a,1048576,1048576),Cb(a,1048576,1048576,Db(a,0,1048576)));else if(20>>this.da;0>>a.da;0>>=a.da;0>>a.da;0>>this.da].Wb(a&this.B,a)}; -l.ga=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;return b!=this.B?this.R[c].ye(b,a):this.R[c++].Wb(b,a)|this.R[c&this.C].Wb(0,a+1)<<8};function Lb(a,b){var c=b&a.B,d=(b&a.Fa)>>>a.da;return c!=a.B?a.R[d].ef(c,b):a.R[d++].Fd(c,b)|a.R[d&a.C].Fd(0,b+1)<<8}l.fa=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;if(b>>this.da].Yb(a&this.B,b&255,a)};l.bb=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;c!=this.B?this.R[d].Fe(c,b&65535,a):(this.R[d++].Yb(c,b&255,a),this.R[d&this.C].Yb(0,b>>8&255,a+1))};function Mb(a,b,c){var d=b&a.B,e=(b&a.Fa)>>>a.da;d!=a.B?a.R[e].ph(d,c&65535,b):(a.R[e++].kf(d,c&255,b),a.R[e&a.C].kf(0,c>>8&255,b+1))} -l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;if(c>>=8};function Nb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?n("Input port 0x"+ea(k,4)+" already registered"):f.I[k]=[h,!1]}} +function yb(a,b,c,d,e){for(var f=b>>>a.da;0c&&(k=c);if(g&&g.size){if(g.type==d&&g.controller==e){if(b+c<=g.fe)return g.De+=g.fe-b,g.fe=b,!0;if(b>=g.fe+g.De){k=g.size-(b-h);k>c&&(k=c);g.De=b-g.fe+k;b=h+a.xb;c-=k;f++;continue}}return zb(a,1,b,c)}b=new q(b,k,a.xb,d,e);sb(b,a.Ia,g);a.S[f++]=b;b=h+a.xb;c-=k}return 0>=c?(a=a.A,a.Pa&-2147483648&&Bb(a),!0):zb(a,2,b,c)} +function xb(a,b){if(32==a.D)b?a.G&&(Cb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Db(a,1048576,1048576),Cb(a,1048576,1048576,Db(a,0,1048576)));else if(20>>this.da;0>>a.da;0>>=a.da;0>>a.da;0>>this.da].Wb(a&this.B,a)}; +l.ga=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;return b!=this.B?this.S[c].ye(b,a):this.S[c++].Wb(b,a)|this.S[c&this.C].Wb(0,a+1)<<8};function Lb(a,b){var c=b&a.B,d=(b&a.Fa)>>>a.da;return c!=a.B?a.S[d].ef(c,b):a.S[d++].Fd(c,b)|a.S[d&a.C].Fd(0,b+1)<<8}l.fa=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;if(b>>this.da].Yb(a&this.B,b&255,a)};l.bb=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;c!=this.B?this.S[d].Fe(c,b&65535,a):(this.S[d++].Yb(c,b&255,a),this.S[d&this.C].Yb(0,b>>8&255,a+1))};function Mb(a,b,c){var d=b&a.B,e=(b&a.Fa)>>>a.da;d!=a.B?a.S[e].ph(d,c&65535,b):(a.S[e++].kf(d,c&255,b),a.S[e&a.C].kf(0,c>>8&255,b+1))} +l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;if(c>>=8};function Nb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?n("Input port 0x"+ea(k,4)+" already registered"):f.I[k]=[h,!1]}} function Ob(a,b,c,d){for(var e=0,f=0;0>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function zb(a,b,c,d,e){b="Memory block error ("+b+": "+ea(c)+","+ea(d)+")";e?a.Ia?a.Ia.message(b):a.log(b):n(b);return!1}var Rb;if(db){var Sb=new ArrayBuffer(2);(new DataView(Sb)).setUint16(0,256,!0);Rb=256===(new Uint16Array(Sb))[0]}else Rb=!1;var Hb=Rb; -function q(a,b,c,d,e,f){this.id=Tb+=2;this.V=null;this.H=0;this.fe=a;this.De=b;this.size=c||0;this.type=d||Ub;this.I=d==Gb;this.controller=null;this.A=f;sb(this);this.Ha=this.Ph=!1;if(c)if(e)this.controller=e,a=e.Uh(a),this.V=a[0],this.H=a[1],Eb(this,e.lg());else if(db)this.R=new ArrayBuffer(c),this.P=new DataView(this.R,0,c),this.Ka=new Uint8Array(this.R,0,c),this.vd=new Uint16Array(this.R,0,c>>1),this.V=new Int32Array(this.R,0,c>>2),Eb(this,Hb?Ib:Jb);else{this.V=Array(c>>2);for(e=0;e>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function zb(a,b,c,d,e){b="Memory block error ("+b+": "+ea(c)+","+ea(d)+")";e?a.Ia?a.Ia.message(b):a.log(b):n(b);return!1}var Rb;if(db){var Sb=new ArrayBuffer(2);(new DataView(Sb)).setUint16(0,256,!0);Rb=256===(new Uint16Array(Sb))[0]}else Rb=!1;var Hb=Rb; +function q(a,b,c,d,e,f){this.id=Tb+=2;this.V=null;this.H=0;this.fe=a;this.De=b;this.size=c||0;this.type=d||Ub;this.I=d==Gb;this.controller=null;this.A=f;sb(this);this.Ha=this.Ph=!1;if(c)if(e)this.controller=e,a=e.Uh(a),this.V=a[0],this.H=a[1],Eb(this,e.lg());else if(db)this.S=new ArrayBuffer(c),this.P=new DataView(this.S,0,c),this.Ka=new Uint8Array(this.S,0,c),this.vd=new Uint16Array(this.S,0,c>>1),this.V=new Int32Array(this.S,0,c>>2),Eb(this,Hb?Ib:Jb);else{this.V=Array(c>>2);for(e=0;e>8&65280|a>>>24);return a} q.prototype={constructor:q,parent:null,Qk:function(a){this.fe=a},save:function(){var a,b;if(this.controller)a=null;else if(db)for(a=Array(this.size>>2),b=0;b>8,c)},ka:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a++,b>>8&255,c++);this.Yb(a++,b>>16&255,c++);this.Yb(a,b>>>24,c)},va:function(a){return this.V[a>>2]>>>((a&3)<<3)&255},fb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b]>>a;return 24>a?c&65535:c&255|(this.V[b+1]&255)<<8},Ga:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b];a&&(c=c>>> a|this.V[b+1]<<32-a);return c},Bb:function(a,b){var c=a>>2,d=(a&3)<<3;this.V[c]=this.V[c]&~(255<>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<>>32-d}else this.V[c]=b;this.Ha=!0},ua:function(a,b){this.A&&Yb(this.A,b,1,!1);return this.Fd(a,b)},Xa:function(a, b){this.A&&Yb(this.A,b,2,!1);return this.ef(a,b)},Fa:function(a,b){this.A&&Yb(this.A,b,4,!1);return this.ih(a,b)},Ab:function(a,b,c){this.A&&Yb(this.A,c,1,!0);this.I||this.kf(a,b,c)},wc:function(a,b,c){this.A&&Yb(this.A,c,2,!0);this.I||this.ph(a,b,c)},Zb:function(a,b,c){this.A&&Yb(this.A,c,4,!0);this.I||this.oa(a,b,c)},za:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.Wb(a,b)},qb:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.ye(a,b)}, -La:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.Gd(a,b)},Gb:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.S;this.L.Yb(a,b,c)},zc:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.S;this.L.Fe(a,b,c)},mc:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.S;this.L.Ee(a,b,c)},Da:function(a,b){return Zb(this.A,b,!1).Wb(a,b)},rb:function(a,b){return Zb(this.A,b,!1).ye(a,b)},Oa:function(a,b){return Zb(this.A,b,!1).Gd(a,b)},Hb:function(a, +La:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L.Gd(a,b)},Gb:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.R;this.L.Yb(a,b,c)},zc:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.R;this.L.Fe(a,b,c)},mc:function(a,b,c){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.R;this.L.Ee(a,b,c)},Da:function(a,b){return Zb(this.A,b,!1).Wb(a,b)},rb:function(a,b){return Zb(this.A,b,!1).ye(a,b)},Oa:function(a,b){return Zb(this.A,b,!1).Gd(a,b)},Hb:function(a, b,c){Zb(this.A,c,!0).Yb(a,b,c)},Gc:function(a,b,c){Zb(this.A,c,!0).Fe(a,b,c)},oc:function(a,b,c){Zb(this.A,c,!0).Ee(a,b,c)},ra:function(a){return this.Ka[a]},W:function(a){return this.Ka[a]},xa:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Wb=this.W;return this.Ka[a]},Ta:function(a){return this.P.getUint16(a,!0)},la:function(a){return a&1?this.Ka[a]|this.Ka[a+1]<<8:this.vd[a>>1]},pb:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.ye=this.la;return a&1?this.Ka[a]|this.Ka[a+ 1]<<8:this.vd[a>>1]},Ea:function(a){return this.P.getInt32(a,!0)},Z:function(a){return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},Ja:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Gd=this.Z;return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},ub:function(a,b){this.Ka[a]=b;this.Ha=!0},ma:function(a,b){this.Ka[a]=b;this.Ha=!0},Cb:function(a,b){this.Ka[a]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Yb=this.ma;this.L.Ha= !0},vc:function(a,b){this.P.setUint16(a,b,!0);this.Ha=!0},qa:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.vd[a>>1]=b;this.Ha=!0},yc:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.vd[a>>1]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Fe=this.qa;this.L.Ha=!0},Nb:function(a,b){this.P.setInt32(a,b,!0);this.Ha=!0},pa:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.Ha=!0},ic:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]= @@ -70,72 +70,72 @@ l.Lh=function(a){return this.ya+a|0};l.Ih=function(a,b){return(a>>>0)+b<=this.C? function Cc(a,b,c,d,e){a.ja=b;a.ya=d;a.Za=e;a.C=(e>>>0)+1;a.lb=c;a.type=c&7936;a.ext=c>>16&192;a.hc=(b&4?a.A.Zb.ya:a.A.ub)+(b&65528)|0;4>a.id&&Ac(a,!0)}function Dc(a,b,c){var d=a.A,e=d.ga(b+2),f=d.ga(b)|(e&255)<<16,d=d.ga(b+4);a.ja=c;a.ya=f;a.Za=d;a.C=(d>>>0)+1;a.lb=e;a.type=e&7936;a.ext=0;a.hc=b;4>a.id&&Ac(a,!0)} function Bc(a,b,c,d){var e=a.A;if(!d&&c===a.B.ja)return a.ja=c,a.ya=a.B.ya,a.Za=a.B.Za,a.C=(a.B.Za>>>0)+1,a.lb=a.B.lb,a.type=a.B.type,a.ext=a.B.ext,a.hc=a.B.hc,a.B.ja=-1,Ac(a,!0,!0,!1),a.ya;a.B.ja=-1;var f=e.ga(b+0),g=e.ga(b+4),h=g&7936,k=e.ga(b+2)|(g&255)<<16,m=e.ga(b+6),p=c&65528;if(80386<=e.ca){var x=f,k=k|(m&65280)<<16,f=f|(m&15)<<16;m&128&&(f=f<<12|4095)}switch(a.id){case 1:var r=a.D;a.pe=!1;if(r&&1==c&&a.G.length){var z=a.G[a.cf-1];if(z&&!z())return-1}var E=c&3,J=(g&24576)>>13,z=-1,W,da;p|| b>=e.ub&&b=a.sb&&(E>a.sb&&(z=u(e),Ec(e,u(e),!0),v(e,z),a.pe=!0),z=0);else{if(256==h||2304==h)return Fc(a,c,r)?a.ya:-1;if(1024==h)z=2,da=0,Eh||2048==(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e,11,c&65532),-1}break;case 3:if(!p||4096>h||512!=(h&2560))return t.call(e,13,c&65532),-1;if(!(g&32768))return t.call(e, 12,c&65532),-1;break;case 4:r=h&-513;if(!p||256!=r&&2304!=r)return t.call(e,13,c&65532),-1;2304==r&&(a.Dh=k+e.ga(k+100+2)|0,a.yj=k+a.Za|0);break;case 6:if(!(h&4096)&&768>>0)+1,a.lb=g,a.type=h,a.ext=m,a.hc=b,Ac(a,!0,!0,!1));return k} function Fc(a,b,c){var d=a.A,e=a.sb,f=d.ia.ja,g=d.ia.ya;if(!c){if(!(d.ia.type&512))return t.call(d,13,b&65532),!1;d.bb(d.ia.hc+4,d.ia.lb&=-513)}if(-1===d.ia.load(b))return!1;var h=d.ia.ya;if(!1!==c){if(d.ia.type&512)return t.call(d,13,b&65532),!1;d.bb(d.ia.hc+4,d.ia.lb|=512)}d.ia.type=d.ia.type&-513|d.ia.lb&512;256==d.ia.type||768==d.ia.type?(d.bb(g+14,A(d)),d.bb(g+16,Mc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,w(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+ -34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.S.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Nc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Pc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb>>0)+1)}; function Ac(a,b,c,d){void 0===c&&(c=!!(a.A.Pa&1));a.zd=!1;if(c)if(a.load=a.Cf,a.Wh=a.Tk,a.Pb=a.Ih,a.Qb=a.Kh,void 0===d&&(d=!!(a.A.X&131072)),d)a.load=a.L,a.Pb=a.I,a.Qb=a.K,a.sb=a.nc=3,a.U=a.Nc=2,a.N=a.sa=65535,a.Za=65535,a.C=a.Za+1,a.Nc=a.U,a.hc=-1,a.pe=!1;else{if(!(a.ja&-4))a.Pb=a.wf,a.Qb=a.xf;else if(a.type&4096){6144==(a.type&6656)&&(a.Pb=a.wf);if(a.type&2048||!(a.type&512))a.Qb=a.xf;1024==(a.type&3072)&&(a.Pb==a.Ih&&(a.Pb=a.zj),a.Qb==a.Kh&&(a.Qb=a.Aj),a.zd=!0);b&&6>a.id&&a.ja&-4&&-1!==a.hc&&(c= a.hc+5,d=a.A.Jb(c),d&1||a.A.Mc(c,d|1))}b&&(a.sb=a.ja&3,a.nc=(a.lb&24576)>>13,80386>a.A.ca||!(a.ext&64)?(a.U=2,a.N=65535):(a.U=4,a.N=-1),a.Nc=a.U,a.sa=a.N)}else a.load=a.Xh,a.Wh=a.Uk,a.Pb=a.Jh,a.Qb=a.Lh,a.sb=a.nc=0,a.hc=-1,a.pe=!1} function Rc(a){this.ca=a.model||8088;var b=a.stepping;this.pd=this.ca+(b?ca(b,16):0);b=0;switch(this.ca){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}hc.call(this,a,b);this.rh=61442;this.od=1792;this.qh=28672;this.ae=4;this.Da=255;this.B=80286<=this.ca?fb:eb;this.ma=Sc;this.uh=Tc;this.vh=Uc;this.wh=Vc;if(80186<=this.ca&&(this.ma=Sc.slice(),this.uh=Tc.slice(),this.vh=Uc.slice(),this.Da=31,this.ma[15]=Wc,this.ma[96]=Xc,this.ma[97]=Yc,this.ma[98]=Zc,this.ma[99]=Wc,this.ma[100]=Wc, this.ma[101]=Wc,this.ma[102]=Wc,this.ma[103]=Wc,this.ma[104]=$c,this.ma[105]=ad,this.ma[106]=bd,this.ma[107]=cd,this.ma[108]=dd,this.ma[109]=ed,this.ma[110]=fd,this.ma[111]=gd,this.ma[192]=hd,this.ma[193]=id,this.ma[200]=jd,this.ma[201]=kd,this.ma[241]=ld,this.uh[7]=md,this.vh[7]=md,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=nd;this.Zc=od.slice();for(a=0;a=this.pd&&(this.Zc[166]=xd,this.Zc[167]=yd)}}this.of=[];this.th=[];this.Vf=0;kc(this);this.ea.Le=this.ea.Hj=!1;this.yh=0;this.vc=this.R=[];this.da=this.vb=this.pb=this.mf=this.Yd=this.Fa=this.oc=0;zd(this)}Qa(Rc,hc); -function Bb(a){var b;if(a.R===a.vc){a.R=Array(a.mf);a.pf=new q(null,0,0,5,null,a);sb(a.pf,a.Ia);for(b=0;ba.qf&&(a.sh[a.qf++]=d);a.R[b]=a.pf}a.nf=[]} -function Zb(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.dd+e&a.Fa)>>>a.da],g=f.Gd(e);if(!(g&1))return d||Ad.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||Ad.call(a,b,!0,c),a.Zd;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Gd(h);if(!(k&1))return d||Ad.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||Ad.call(a,b,!0,c),a.Zd;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.R[d];b=b&-4096;var m;0>2;b.C=g;b.G=h>>2;db&&Hb&&c.V&&!c.controller&&!c.ge&&!c.he?(b.Ka=c.Ka,b.vd=c.vd,b.V=c.V,Eb(b,gc)):(b.K=c?Xb(32):0,b.S=c?Xb(96):0,Eb(b,ec));sb(b,a.Ia,k);a.R[d]=b;a.nf.push(d);return b}function Bd(a){a.R!==a.vc&&(a.R=a.vc,a.pf=null,a.nf=null,a.Zd=null)}l=Rc.prototype;l.reset=function(){this.ea.Sb&&oc(this);zd(this);kc(this);this.ea.Yc=!1}; +196608;this.ma[100]=td;this.ma[101]=ud;this.ma[102]=vd;this.ma[103]=wd;for(c in B)this.Zc[+c]=B[c];80546<=this.pd&&80562>=this.pd&&(this.Zc[166]=xd,this.Zc[167]=yd)}}this.of=[];this.th=[];this.Vf=0;kc(this);this.ea.Le=this.ea.Hj=!1;this.yh=0;this.vc=this.S=[];this.da=this.xb=this.pb=this.mf=this.Yd=this.Fa=this.oc=0;zd(this)}Qa(Rc,hc); +function Bb(a){var b;if(a.S===a.vc){a.S=Array(a.mf);a.pf=new q(null,0,0,5,null,a);sb(a.pf,a.Ia);for(b=0;ba.qf&&(a.sh[a.qf++]=d);a.S[b]=a.pf}a.nf=[]} +function Zb(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.dd+e&a.Fa)>>>a.da],g=f.Gd(e);if(!(g&1))return d||Ad.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||Ad.call(a,b,!0,c),a.Zd;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Gd(h);if(!(k&1))return d||Ad.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||Ad.call(a,b,!0,c),a.Zd;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.S[d];b=b&-4096;var m;0>2;b.C=g;b.G=h>>2;db&&Hb&&c.V&&!c.controller&&!c.ge&&!c.he?(b.Ka=c.Ka,b.vd=c.vd,b.V=c.V,Eb(b,gc)):(b.K=c?Xb(32):0,b.R=c?Xb(96):0,Eb(b,ec));sb(b,a.Ia,k);a.S[d]=b;a.nf.push(d);return b}function Bd(a){a.S!==a.vc&&(a.S=a.vc,a.pf=null,a.nf=null,a.Zd=null)}l=Rc.prototype;l.reset=function(){this.ea.Sb&&oc(this);zd(this);kc(this);this.ea.Yc=!1}; function Cd(a,b){var c;switch(b){case 0:c=a.J;break;case 1:c=a.G;break;case 2:c=a.M;break;case 3:c=a.D;break;case 4:c=w(a);break;case 5:c=a.K;break;case 6:c=a.I;break;case 7:c=a.H}return c}function Dd(a,b,c){switch(b){case 0:a.J=c;break;case 1:a.G=c;break;case 2:a.M=c;break;case 3:a.D=c;break;case 4:v(a,c);break;case 5:a.K=c;break;case 6:a.I=c;break;case 7:a.H=c}} -function zd(a){a.J=0;a.D=0;a.G=0;a.M=0;a.Nb=0;a.K=0;a.I=0;a.H=0;a.Hb=!1;a.ua=a.Ga=0;a.oa=0;a.xh=0;a.W=0;a.Pa=65520;a.Ab=0;a.xc=1023;a.X=a.Cb=0;a.td=a.Kd=a.sd=a.Id=0;a.fc=-1;a.Gc=a.ic=-1;a.Ed=a.la=-1;a.Ca=new zc(a,1,"CS");a.xa=new zc(a,2,"DS");a.pa=new zc(a,2,"ES");a.S=new zc(a,3,"SS");v(a,0);Ec(a,0);if(80386<=a.ca){switch(a.pd){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Pa=16;a.Bh=0;a.rd=0;a.dd=0;a.qb=[0,0,0,0,null,null,0, -0];a.rf=[null,null,null,null,null,null,0,0];a.Ta=new zc(a,2,"FS");a.Xa=new zc(a,2,"GS");Bd(a)}a.Yf=new zc(a,0,"NULL");a.va=a.xa;a.rb=a.S;a.L=a.wa=0;a.F=a.C=-1;a.Eb=a.Yf;a.Ea=0;if(80286>a.ca)Pc(a,0,65535);else{a.ub=0;a.wc=65535;a.Zb=new zc(a,5,"LDT",!0);a.ia=new zc(a,4,"TSS",!0);a.Oa=new zc(a,6,"VER",!0);Pc(a,65520,61440);var b,c=A(a);b=a.Ca;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.ya=d;a.Y=b+c|0;a.Wf=(b>>>0)+(a.Ca.Za>>>0)+1}Nc(a,0);Gc(a)} +function zd(a){a.J=0;a.D=0;a.G=0;a.M=0;a.Nb=0;a.K=0;a.I=0;a.H=0;a.Hb=!1;a.ua=a.Ga=0;a.oa=0;a.xh=0;a.W=0;a.Pa=65520;a.Ab=0;a.xc=1023;a.X=a.Cb=0;a.td=a.Kd=a.sd=a.Id=0;a.fc=-1;a.Gc=a.ic=-1;a.Ed=a.la=-1;a.Ca=new zc(a,1,"CS");a.xa=new zc(a,2,"DS");a.pa=new zc(a,2,"ES");a.R=new zc(a,3,"SS");v(a,0);Ec(a,0);if(80386<=a.ca){switch(a.pd){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Pa=16;a.Bh=0;a.rd=0;a.dd=0;a.qb=[0,0,0,0,null,null,0, +0];a.rf=[null,null,null,null,null,null,0,0];a.Ta=new zc(a,2,"FS");a.Xa=new zc(a,2,"GS");Bd(a)}a.Yf=new zc(a,0,"NULL");a.va=a.xa;a.rb=a.R;a.L=a.wa=0;a.F=a.C=-1;a.Eb=a.Yf;a.Ea=0;if(80286>a.ca)Pc(a,0,65535);else{a.ub=0;a.wc=65535;a.Zb=new zc(a,5,"LDT",!0);a.ia=new zc(a,4,"TSS",!0);a.Oa=new zc(a,6,"VER",!0);Pc(a,65520,61440);var b,c=A(a);b=a.Ca;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.ya=d;a.Y=b+c|0;a.Wf=(b>>>0)+(a.Ca.Za>>>0)+1}Nc(a,0);Gc(a)} function Ed(a){2==a.Nc?(a.Ah=a.ga,a.Bb=Fd,a.Gb=Gd,a.yc=Hd,2==a.U?(a.Z=Id,a.qa=Jd,a.Ja=Kd):(a.Z=Ld,a.qa=Md,a.Ja=Nd)):(a.Ah=a.fa,a.Bb=Od,a.Gb=Pd,a.yc=Qd,2==a.U?(a.Z=Rd,a.qa=Sd,a.Ja=Td):(a.Z=Ud,a.qa=Vd,a.Ja=Wd))}function Hc(a,b){a.U!=b&&(a.wa|=1024,a.U=b,a.N=2==b?65535:-1,Xd(a))}function Xd(a){2==a.U?(a.fb=32768,a.Tb=a.ga,a.Xb=a.bb,2==a.Nc?(a.Z=Id,a.qa=Jd,a.Ja=Kd):(a.Z=Rd,a.qa=Sd,a.Ja=Td)):(a.fb=-2147483648,a.Tb=a.fa,a.Xb=a.Va,2==a.Nc?(a.Z=Ld,a.qa=Md,a.Ja=Nd):(a.Z=Ud,a.qa=Vd,a.Ja=Wd))} -function Yd(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Ed(a);a.U=a.Ca.U;a.N=a.Ca.N;Xd(a);a.wa&=-3073}l.Th=function(){var a=this.J+this.D+this.G+this.M+w(this)+this.K+this.I+this.H|0;return a=a+A(this)+this.Ca.ja+this.xa.ja+this.S.ja+this.pa.ja+Mc(this)|0};function Zd(a,b,c){void 0===a.of[b]&&(a.of[b]=[]);a.of[b].push(c)}function $d(a,b){var c=a.th[b];null!=c&&(c(--a.Vf),delete a.th[b])} -function ae(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.R[g>>>a.da],h=a;f?0===g.he++&&(h&&(g.A=h),cc(g,bc,!1)):0===g.ge++&&(h&&(g.A=h),$b(g,bc,!1))}else g=a.R[g>>>a.da],f?0===--g.he&&(f=g,f.Yb=f.I?f.ha:f.kf,f.Fe=f.I?f.ba:f.ph,f.Ee=f.I?f.ka:f.oa):0===--g.ge&&(f=g,f.Wb=f.Fd,f.ye=f.ef,f.Gd=f.ih)}c>>=2;d>>=4}} -function Yb(a,b,c,d){if(!(a.L&8192)&&a.qb[7]&255){c--;var e=a.qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.qb[g]&&b<=a.qb[g]+h){a.qb[6]|=1<>=2;f>>=4}}}function Gc(a,b,c){void 0===b&&(b=!!(a.Pa&1));void 0===c&&(c=!!(a.X&131072));a.wh=b&&!c?be:Vc;Ac(a.Ca,!1,b,c);Ac(a.xa,!1,b,c);Ac(a.S,!1,b,c);Ac(a.pa,!1,b,c);80386<=a.ca&&(Ac(a.Ta,!1,b,c),Ac(a.Xa,!1,b,c));Yd(a)} -l.save=function(){var a=new ce(this);C(a,0,[this.J,this.D,this.G,this.M,w(this),this.K,this.I,this.H]);var b=A(this),c=this.Ca.save(),d=this.xa.save(),e=this.S.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ia.save(),this.Cb],80386<=this.ca&&(g.push(this.Bh),g.push(this.rd),g.push(this.dd),g.push(this.qb),g.push(this.rf))):g=null;b=[b,c,d,e,f,g,Mc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));C(a,1,b);C(a,2,[this.va.Tf, -this.rb.Tf,this.L,this.wa,this.Ea,this.F,this.C]);C(a,3,[0,this.$c,this.T.Cd]);b=this.ha;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g>>0)+(a.Ca.Za>>>0)+1;a.za=a.Ca.sb;Yd(a)}function Pc(a,b,c,d){var e=a.Ca;e.cf=b;e.D=d;b=e.load(c);return-1!==b?(fe(a,b+(a.Ca.cf&a.Ca.N)),a.Ca.pe):null} -function ge(a,b){var c=(a.Y>>>0)+b;c>a.Wf&&(8088>=a.ca||a.Ca.Za==a.Ca.sa?c=a.Ca.ya+(c-a.Wf&a.N):t.call(a,13,0));return c|0}function he(a){a.Y=a.Ed}function w(a){return a.Nb&~a.S.sa|a.ra-a.S.ya}function v(a,b){a.Nb=b;a.ra=a.S.ya+(b&a.S.sa)|0}function ie(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&je(a),g&2&&ke(a),g&4&&le(a),g&8&&me(a),g&16&&ne(a),g&32&&oe(a))}f?(a.td=d,a.sd=b):(a.td=b,a.sd=d);a.Kd=c;a.Id=d;a.resultType=e} +function Yd(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Ed(a);a.U=a.Ca.U;a.N=a.Ca.N;Xd(a);a.wa&=-3073}l.Th=function(){var a=this.J+this.D+this.G+this.M+w(this)+this.K+this.I+this.H|0;return a=a+A(this)+this.Ca.ja+this.xa.ja+this.R.ja+this.pa.ja+Mc(this)|0};function Zd(a,b,c){void 0===a.of[b]&&(a.of[b]=[]);a.of[b].push(c)}function $d(a,b){var c=a.th[b];null!=c&&(c(--a.Vf),delete a.th[b])} +function ae(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.S[g>>>a.da],h=a;f?0===g.he++&&(h&&(g.A=h),cc(g,bc,!1)):0===g.ge++&&(h&&(g.A=h),$b(g,bc,!1))}else g=a.S[g>>>a.da],f?0===--g.he&&(f=g,f.Yb=f.I?f.ha:f.kf,f.Fe=f.I?f.ba:f.ph,f.Ee=f.I?f.ka:f.oa):0===--g.ge&&(f=g,f.Wb=f.Fd,f.ye=f.ef,f.Gd=f.ih)}c>>=2;d>>=4}} +function Yb(a,b,c,d){if(!(a.L&8192)&&a.qb[7]&255){c--;var e=a.qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.qb[g]&&b<=a.qb[g]+h){a.qb[6]|=1<>=2;f>>=4}}}function Gc(a,b,c){void 0===b&&(b=!!(a.Pa&1));void 0===c&&(c=!!(a.X&131072));a.wh=b&&!c?be:Vc;Ac(a.Ca,!1,b,c);Ac(a.xa,!1,b,c);Ac(a.R,!1,b,c);Ac(a.pa,!1,b,c);80386<=a.ca&&(Ac(a.Ta,!1,b,c),Ac(a.Xa,!1,b,c));Yd(a)} +l.save=function(){var a=new ce(this);C(a,0,[this.J,this.D,this.G,this.M,w(this),this.K,this.I,this.H]);var b=A(this),c=this.Ca.save(),d=this.xa.save(),e=this.R.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ia.save(),this.Cb],80386<=this.ca&&(g.push(this.Bh),g.push(this.rd),g.push(this.dd),g.push(this.qb),g.push(this.rf))):g=null;b=[b,c,d,e,f,g,Mc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));C(a,1,b);C(a,2,[this.va.Tf, +this.rb.Tf,this.L,this.wa,this.Ea,this.F,this.C]);C(a,3,[0,this.$c,this.T.Cd]);b=this.ha;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g>>0)+(a.Ca.Za>>>0)+1;a.za=a.Ca.sb;Yd(a)}function Pc(a,b,c,d){var e=a.Ca;e.cf=b;e.D=d;b=e.load(c);return-1!==b?(fe(a,b+(a.Ca.cf&a.Ca.N)),a.Ca.pe):null} +function ge(a,b){var c=(a.Y>>>0)+b;c>a.Wf&&(8088>=a.ca||a.Ca.Za==a.Ca.sa?c=a.Ca.ya+(c-a.Wf&a.N):t.call(a,13,0));return c|0}function he(a){a.Y=a.Ed}function w(a){return a.Nb&~a.R.sa|a.ra-a.R.ya}function v(a,b){a.Nb=b;a.ra=a.R.ya+(b&a.R.sa)|0}function ie(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&je(a),g&2&&ke(a),g&4&&le(a),g&8&&me(a),g&16&&ne(a),g&32&&oe(a))}f?(a.td=d,a.sd=b):(a.td=b,a.sd=d);a.Kd=c;a.Id=d;a.resultType=e} function F(a,b,c,d,e){a.resultType=c|26;a.Id=b;d?pe(a):qe(a);e?re(a):se(a);return b}function te(a,b,c,d){c&d?pe(a):qe(a);(b^c)&d?re(a):se(a)}function we(a){return je(a)?1:0}function je(a){a.resultType&1&&(a.X&=-2,(a.td^(a.td^a.Kd)&(a.Kd^a.sd))&a.resultType&-2147450752&&(a.X|=1),a.resultType&=-2);return a.X&1}function ke(a){a.resultType&2&&(a.X&=-5,38505>>((a.Id^a.Id>>4)&15)&1&&(a.X|=4),a.resultType&=-3);return a.X&4} function le(a){a.resultType&4&&(a.X&=-17,(a.sd^a.td^a.Kd)&16&&(a.X|=16),a.resultType&=-5);return a.X&16}function me(a){a.resultType&8&&(a.X&=-65,a.Id&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.X|=64),a.resultType&=-9);return a.X&64}function ne(a){a.resultType&16&&(a.X&=-129,a.Id&a.resultType&-2147450752&&(a.X|=128),a.resultType&=-17);return a.X&128} function oe(a){a.resultType&32&&(a.X&=-2049,(a.td^a.sd)&(a.Kd^a.sd)&a.resultType&-2147450752&&(a.X|=2048),a.resultType&=-33);return a.X&2048}function qe(a){a.resultType&=-2;a.X&=-2}function xe(a){a.resultType&=-5;a.X&=-17}function ye(a){a.resultType&=-9;a.X&=-65}function se(a){a.resultType&=-33;a.X&=-2049}function pe(a){a.resultType&=-2;a.X|=1}function ze(a){a.resultType&=-5;a.X|=16}function Ae(a){a.resultType&=-9;a.X|=64}function re(a){a.resultType&=-33;a.X|=2048} function Mc(a){return a.X&-2262|je(a)|ke(a)|le(a)|me(a)|ne(a)|oe(a)}function Be(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Gc(a,!0)}function Nc(a,b,c){a.Pa&1||(b&=~a.qh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.od|2261)|b&(a.od|2261)|a.rh;a.X&256&&(a.Ea|=2,a.L|=4)} function Ce(a,b,c){var d=0;if(a.Pa&1&&(a.za>a.Cb||a.X&131072)&&a.ia.Dh)for(var e=a.ia.Dh+(b>>>3),d=(1<>>=8,e++;return d?(t.call(a,13,0),!1):!0} l.zb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.ka[b]=c;this.yh++;d=!0;break;default:d=this.parent.zb.call(this,a,b,c)}return d}; -function De(a,b,c,d){var e=(d?a.vc:a.R)[(b&a.oc)>>>a.da];e&&5==e.type&&(e=Zb(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Fd(f,b);if(2==c)return f>>this.da].Wb(a&this.pb,a)}; -l.ga=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(b>>this.da;if(b>>this.da].Yb(a&this.pb,b&255,a)}; -l.bb=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;c>8&255,a+1))};l.Va=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(c>>=8}};function Ee(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,1);return a.L&1?0:a.Jb(a.F)} +function De(a,b,c,d){var e=(d?a.vc:a.S)[(b&a.oc)>>>a.da];e&&5==e.type&&(e=Zb(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Fd(f,b);if(2==c)return f>>this.da].Wb(a&this.pb,a)}; +l.ga=function(a){var b=a&this.pb,c=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(b>>this.da;if(b>>this.da].Yb(a&this.pb,b&255,a)}; +l.bb=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;c>8&255,a+1))};l.Va=function(a,b){var c=a&this.pb,d=(a&this.oc)>>>this.da;this.A-=this.B.Lf;if(c>>=8}};function Ee(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,1);return a.L&1?0:a.Jb(a.F)} function G(a,b){return Ee(a,a.va,b)}function H(a,b){return Ee(a,a.rb,b)}function Fe(a,b,c){a.Eb=b;a.La=c&a.sa;a.F=b.Pb(a.La,a.U);return a.L&1?0:a.Tb(a.F)}function I(a,b){a.Eb=a.va;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,2);return a.L&1?0:a.ga(a.F)}function K(a,b){a.Eb=a.rb;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,2);return a.L&1?0:a.ga(a.F)}function L(a,b){a.Eb=a.va;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,4);return a.L&1?0:a.fa(a.F)}function M(a,b){a.Eb=a.rb;a.La=b&a.sa;a.F=a.Eb.Pb(a.La,4);return a.L&1?0:a.fa(a.F)} function Ge(a,b){a.L&2||a.Mc(a.Eb.Qb(a.La,1),b)}function He(a,b){a.L&2||a.bb(a.Eb.Qb(a.La,2),b)}function Ie(a,b){a.L&2||a.Va(a.Eb.Qb(a.La,4),b)}function Ic(a,b,c){return a.Tb(b.Pb(c,a.U))}l.na=function(){var a=ge(this,1),b=this.Jb(this.Y);this.Y=a;return b};function Je(a){var b=ge(a,2),c=a.ga(a.Y);a.Y=b;return c}function N(a){var b=ge(a,a.Nc),c=a.Ah(a.Y);a.Y=b;return c}l.Aa=function(){var a=ge(this,this.U),b=this.Tb(this.Y);this.Y=a;return b}; -l.O=function(){var a=ge(this,1),b=this.Jb(this.Y)<<24>>24;this.Y=a;return b};function u(a){var b=a.Tb(a.ra);a.ra=a.ra+a.U|0;var c=a.Xf-a.ra|0;0>c&&0<=(a.Xf^a.ra)&&(8088>=a.ca||!a.S.zd&&a.S.Za==a.S.sa||a.S.zd&&!a.S.Za?v(a,a.ra-a.S.ya&a.S.sa):-1>c&&t.call(a,12,0));return b} -function Jc(a,b,c,d){c=a.ra-c|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.S.zd&&a.S.Za==a.S.sa||a.S.zd&&!a.S.Za?(v(a,c-a.S.ya&a.S.sa),c=a.ra):t.call(a,12,0));switch(d){case 1:a.Mc(c,b);break;case 2:a.bb(c,b);break;case 4:a.Va(c,b)}a.ra=c}function y(a,b){var c=a.ra-a.U|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.S.zd&&a.S.Za==a.S.sa||a.S.zd&&!a.S.Za?(v(a,c-a.S.ya&a.S.sa),c=a.ra):t.call(a,12,0));a.Xb(c,b);a.ra=c} +l.O=function(){var a=ge(this,1),b=this.Jb(this.Y)<<24>>24;this.Y=a;return b};function u(a){var b=a.Tb(a.ra);a.ra=a.ra+a.U|0;var c=a.Xf-a.ra|0;0>c&&0<=(a.Xf^a.ra)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?v(a,a.ra-a.R.ya&a.R.sa):-1>c&&t.call(a,12,0));return b} +function Jc(a,b,c,d){c=a.ra-c|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?(v(a,c-a.R.ya&a.R.sa),c=a.ra):t.call(a,12,0));switch(d){case 1:a.Mc(c,b);break;case 2:a.bb(c,b);break;case 4:a.Va(c,b)}a.ra=c}function y(a,b){var c=a.ra-a.U|0;0>(c-a.$d|0)&&0<=(a.$d^c)&&(8088>=a.ca||!a.R.zd&&a.R.Za==a.R.sa||a.R.zd&&!a.R.Za?(v(a,c-a.R.ya&a.R.sa),c=a.ra):t.call(a,12,0));a.Xb(c,b);a.ra=c} function O(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Ke(this.P);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Le.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=this.ca&& +l.nj=function(a){this.ea.Le=!0;this.ea.Hj=!1;this.ea.Rh=!1;this.mc=this.A=a;this.P&&!a&&wc(this.P);a||(this.L|=4);do{if(a=this.L&3312)this.wa|=a;else if(this.Ed=this.Y,this.va=this.xa,this.rb=this.R,this.F=this.C=-1,this.wa&3072&&Yd(this),this.wa=this.L&256,this.Ea){a:if(!(this.L&4)){a=80286>this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Ke(this.P);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Le.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=this.ca&& (this.qb[6]|=16384);Le.call(this,1);break a}}a=1-a}}if(this.Ea&4){this.L=this.A=0;break}}this.L=0;this.ma[this.na()].call(this)}while(0>11;Pe(this);Qe(this,a[b++]);for(c=0;c=Re&&Se(a,13))}function Pe(a){a.aa&=-129;a.aa&~a.H&63&&(a.aa|=128);if(a.aa&128&&!(a.H&128))return a=a.P,a.ca>=Re?Te(a,13):a.ma&0||Le.call(a.A,2),!0;a=a.P;a.ca>=Re&&Se(a,13);return!1}function Ue(a,b){80387<=a.ca||(b&=-65);a.aa|=b;return Pe(a)} function Ve(a,b){return isFinite(b)?!0:!Ue(a,Infinity===b?8:16)}function We(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,Ve(a,d)||(d=null));return d}function Xe(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,Ve(a,d)||(d=null));return d}function Ye(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,Ve(a,d)||(d=null));return d}function Ze(a,b,c){var d=null;null==b||null==c||!c&&Ue(a,2)||(d=b/c,Ve(a,d)||(d=null));return d} function $e(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.aa=a.aa&-18177|d;return!0}return!1}function af(a,b,c){if(null==b)return null;var d=a.H&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0=c){if(Ue(a,1))return null;d=-c}else if(d<-c){if(Ue(a,1))return null;d=-c}a.I[0]=d|0;2147483648d&&(a.I[1]=-1))}return d} -function bf(a,b){var c=3;if(a.D&1<=c;c<<=1)3!=(b&3)&&(a.D|=c),b>>=2}function cf(a){var b=a.C+0&7;return a.D&1<=c;c<<=1)3!=(b&3)&&(a.D|=c),b>>=2}function cf(a){var b=a.C+0&7;return a.D&1<>20&2047;var e=2147483648|(d&1048575)<<11|c>>>21;2047==b?b=32767:b?b+=15360:e&=2147483647;a.G[0]=c<<11;a.G[1]=e;a.G[2]=d>>16&32768|b;d=a.G}return d}function ff(a){return a.A.ga(a.A.F)<<16>>16} -function gf(a){return a.A.fa(a.A.F)}function hf(a){a.la[0]=a.A.fa(a.A.F);return a.Z[0]}function jf(a){a.I[0]=a.A.fa(a.A.F);a.I[1]=a.A.fa(a.A.F+4);return a.S[0]}function kf(a){a.G[0]=a.A.fa(a.A.F);a.G[1]=a.A.fa(a.A.F+4);a.G[2]=a.A.ga(a.A.F+8);return a.G}l.oh=function(){this.A.Va(this.A.F,this.I[0])};l.kj=function(){this.A.Va(this.A.F,this.I[0]);this.A.Va(this.A.F+4,this.I[1])};l.mj=Me.prototype.oh;l.lj=Me.prototype.kj; -function lf(a){a.A.Va(a.A.F,a.G[0]);a.A.Va(a.A.F+4,a.G[1]);a.A.bb(a.A.F+8,a.G[2])}function mf(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.I[0]=f;a.I[1]=c|(d|e)<<20;return a.S[0]}function nf(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function of(a,b){for(var c=0,d=0;b--;)c|=a%10<>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.I[0]=f;a.I[1]=c|(d|e)<<20;return a.R[0]}function nf(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function of(a,b){for(var c=0,d=0;b--;)c|=a%10<>11;Pe(a);Qe(a,d.Tb(b+=d.U));!(d.Pa&1)||d.X&131072?(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.W=c&2047,a.L|=(c&-4096)<<4,a.ha=-1,a.R=d.Tb(b+=d.U),a.R|=(d.Tb(b+=d.U)&-4096)<<4,a.ba=-1):(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.ha=c&65535,a.W=c>>16&2047,a.R=d.Tb(b+=d.U),a.ba=d.Tb(b+=d.U)&65535);return b+d.U} -function sf(a,b){var c=a.A;c.Xb(b,a.H);c.Xb(b+=c.U,a.aa|a.C<<11);c.Xb(b+=c.U,Oe(a));if(!(c.Pa&1)||c.X&131072){var d=(a.ha<<4)+a.L;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096|a.W);d=(a.ba<<4)+a.R;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096)}else c.Xb(b+=c.U,a.L),c.Xb(b+=c.U,a.ha|a.W<<16),c.Xb(b+=c.U,a.R),c.Xb(b+=c.U,a.ba);return b+c.U}var tf=Math.log(10)/Math.LN2,uf=Math.LOG2E,vf=Math.PI,wf=Math.log(2)/Math.LN10,xf=Math.LN2,yf=Math.pow(2,63);function zf(){this.aa&=-32896;Pe(this)} +function rf(a,b){var c,d=a.A;c=d.Tb(b);a.H=c&-57409;c=d.Tb(b+=d.U);a.aa=c&-14337;a.C=(c&14336)>>11;Pe(a);Qe(a,d.Tb(b+=d.U));!(d.Pa&1)||d.X&131072?(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.W=c&2047,a.L|=(c&-4096)<<4,a.ha=-1,a.S=d.Tb(b+=d.U),a.S|=(d.Tb(b+=d.U)&-4096)<<4,a.ba=-1):(a.L=d.Tb(b+=d.U),c=d.Tb(b+=d.U),a.ha=c&65535,a.W=c>>16&2047,a.S=d.Tb(b+=d.U),a.ba=d.Tb(b+=d.U)&65535);return b+d.U} +function sf(a,b){var c=a.A;c.Xb(b,a.H);c.Xb(b+=c.U,a.aa|a.C<<11);c.Xb(b+=c.U,Oe(a));if(!(c.Pa&1)||c.X&131072){var d=(a.ha<<4)+a.L;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096|a.W);d=(a.ba<<4)+a.S;c.Xb(b+=c.U,d);c.Xb(b+=c.U,d>>4&-4096)}else c.Xb(b+=c.U,a.L),c.Xb(b+=c.U,a.ha|a.W<<16),c.Xb(b+=c.U,a.S),c.Xb(b+=c.U,a.ba);return b+c.U}var tf=Math.log(10)/Math.LN2,uf=Math.LOG2E,vf=Math.PI,wf=Math.log(2)/Math.LN10,xf=Math.LN2,yf=Math.pow(2,63);function zf(){this.aa&=-32896;Pe(this)} function Af(){$e(this,P(this,0),P(this,this.B))}function Bf(){$e(this,P(this,0),P(this,this.B))&&pf(this)}function Cf(){Bf.call(this)}function Df(){Q(this,0,Ze(this,P(this,0),hf(this)))}function Ef(){this.D&=~(1<>20&2047)-1023),this.I[1]=(this.I[1]|1072693248)&-1073741825,qf(this,this.S[0]))},102:function(){this.C=this.C-1&7;this.aa&=-513},103:function(){this.C=this.C+1&7;this.aa&=-513},112:function(){Q(this,0,P(this,0)%P(this,1))},113:function(){Q(this,1,P(this, +1,P(this,1)*Math.log(P(this,0))/Math.LN2)&&pf(this)},98:function(){Q(this,0,Math.tan(P(this,0)))&&qf(this,1)},99:function(){Q(this,1,Math.atan2(P(this,1),P(this,0)))&&pf(this)},100:function(){var a=P(this,0);null!=a&&(this.R[0]=a,Q(this,0,(this.I[1]>>20&2047)-1023),this.I[1]=(this.I[1]|1072693248)&-1073741825,qf(this,this.R[0]))},102:function(){this.C=this.C-1&7;this.aa&=-513},103:function(){this.C=this.C+1&7;this.aa&=-513},112:function(){Q(this,0,P(this,0)%P(this,1))},113:function(){Q(this,1,P(this, 1)*Math.log(P(this,0)+1)/Math.LN2)&&pf(this)},114:function(){var a=P(this,0),b=null;if(0<=a||!Ue(this,1))b=Math.sqrt(a),Ve(this,b)||(b=null);Q(this,0,b)},116:function(){Q(this,0,af(this,P(this,0),yf))},117:function(){var a=P(this,0),b=P(this,1);null!=a&&null!=b&&Q(this,0,a*Math.pow(2,0=c||b<-c)a=Fe(this,this.Eb,this.La+(b>>(2==this.U?4:5))*this.U);b=1<<(b&(2==this.U?15:31));a&b?pe(this):qe(this);this.A-=6;this.L|=2;return a}function kg(a,b){if(-1===this.F)return gg.call(this,a,b);var c=this.U<<3;if(b>=c||b<-c)a=Fe(this,this.Eb,this.La+(b>>(2==this.U?4:5))*this.U);b=1<<(b&(2==this.U?15:31));a&b?pe(this):qe(this);this.A-=8;return a^b} function lg(a,b){if(-1===this.F)return hg.call(this,a,b);var c=this.U<<3;if(b>=c||b<-c)a=Fe(this,this.Eb,this.La+(b>>(2==this.U?4:5))*this.U);b=1<<(b&(2==this.U?15:31));a&b?pe(this):qe(this);this.A-=8;return a&~b}function mg(a,b){if(-1===this.F)return ig.call(this,a,b);var c=this.U<<3;if(b>=c||b<-c)a=Fe(this,this.Eb,this.La+(b>>(2==this.U?4:5))*this.U);b=1<<(b&(2==this.U?15:31));a&b?pe(this):qe(this);this.A-=8;return a|b} function ng(a,b){ie(this,a,b,a-b|0,191,!0);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.Ag:this.B.yb;this.L|=2;return a}function og(a,b){ie(this,a,b,a-b|0,this.fb|63,!0);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.Ag:this.B.yb;this.L|=2;return a} -function pg(a){if(this.qd){var b=this.qd,c=this.xh,d=this.W,e=d>>3&7;b.B=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.B);if(e=Uf[c][f]){if(0>Vf.indexOf(e)){var f=b.A,g=f.Ed;8087==b.ca&&(f.wa&16&&g++,f.wa&32&&g++);b.ha=f.Ca.ja;b.L=g-f.Ca.ya;-1!==f.F&&(b.ba=f.Eb.ja,b.R=f.F-f.Eb.ya);b.W=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.F?2:8;return a}function qg(a){if(80186>this.ca)return R.call(this,a);t.call(this,13,0);return a}function md(a){t.call(this,6);return a} +function pg(a){if(this.qd){var b=this.qd,c=this.xh,d=this.W,e=d>>3&7;b.B=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.B);if(e=Uf[c][f]){if(0>Vf.indexOf(e)){var f=b.A,g=f.Ed;8087==b.ca&&(f.wa&16&&g++,f.wa&32&&g++);b.ha=f.Ca.ja;b.L=g-f.Ca.ya;-1!==f.F&&(b.ba=f.Eb.ja,b.S=f.F-f.Eb.ya);b.W=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.F?2:8;return a}function qg(a){if(80186>this.ca)return R.call(this,a);t.call(this,13,0);return a}function md(a){t.call(this,6);return a} function R(a){pd.call(this);return a}function rg(a,b){var c=sg.call(this,this.O(),b);80386>this.ca&&(this.A-=12);return c}function tg(a,b){var c;a=this.Aa();c=2==this.U?sg.call(this,a,b):ug.call(this,a,b);80386>this.ca&&(this.A-=12);return c}function vg(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);wg.call(this,a,b);c&&(this.ua=~this.ua+1|0,this.Ga=~this.Ga+(this.ua?0:1)|0)} function sg(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767c?(pe(this),re(this)):(qe(this),se(this));this.A-=-1===this.F?9:12;return c&65535}function ug(a,b){vg.call(this,a,b);this.Ga!=this.ua>>31?(pe(this),re(this)):(qe(this),se(this));this.A-=-1===this.F?9:12;return this.ua}function xg(a,b){this.A-=14+(-1===this.F?0:2);ye(this);-1!==this.Oa.load(b)&&this.Oa.nc>=this.za&&this.Oa.nc>=(b&3)&&(Ae(this),a=this.Oa.lb&-256,2=this.za)&&this.Oa.nc>=(b&3))return Ae(this),this.Oa.Za;ye(this);return a}function Eg(a,b){if(-1===this.F)return pd.call(this),a;Ec(this,this.ga(this.F+this.U));this.A-=this.B.we;return b} function Fg(a,b){this.A-=-1===this.C?-1===this.F?this.B.Ni:this.B.Mi:this.B.Ki;return b}function Gg(a,b){switch(this.W>>3&7){case 4:this.oa=this.J;break;case 5:this.oa=this.G;break;case 6:this.oa=this.M;break;case 7:this.oa=this.D}return b}function Hg(a,b){return b} function Ig(a,b){var c=this.W>>3&7;switch(c){case 0:this.oa=this.J;break;case 2:this.oa=this.M;break;case 3:this.oa=this.D;break;default:if(80286==this.ca||80386==this.ca&&4!=c&&5!=c){t.call(this,6);break}switch(c){case 1:this.oa=this.G;break;case 4:this.oa=w(this);break;case 5:this.oa=this.K;break;case 6:this.oa=this.I;break;case 7:this.oa=this.H}}return Fg.call(this,0,b)} -function Jg(a,b){switch(this.W>>3&7){case 0:b=this.pa.ja;break;case 1:b=this.Ca.ja;break;case 2:b=this.S.ja;break;case 3:b=this.xa.ja;break;case 4:if(80386<=this.ca){b=this.Ta.ja;break}t.call(this,6);b=a;break;case 5:if(80386<=this.ca){b=this.Xa.ja;break}default:t.call(this,6),b=a}-1!==this.C&&Hc(this,2);return Fg.call(this,0,b)} +function Jg(a,b){switch(this.W>>3&7){case 0:b=this.pa.ja;break;case 1:b=this.Ca.ja;break;case 2:b=this.R.ja;break;case 3:b=this.xa.ja;break;case 4:if(80386<=this.ca){b=this.Ta.ja;break}t.call(this,6);b=a;break;case 5:if(80386<=this.ca){b=this.Xa.ja;break}default:t.call(this,6),b=a}-1!==this.C&&Hc(this,2);return Fg.call(this,0,b)} function wg(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ua=e<<16|g&65535;this.Ga=h+((e>>>16)+d*f)|0}else this.ua=a*b|0,this.Ga=0}function Kg(a,b){this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return F(this,a|b,128)}function Lg(a,b){this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return F(this,a|b,this.fb)&this.N} function Mg(a,b){var c=a-b-we(this)|0;ie(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&255}function Ng(a,b){var c=a-b-we(this)|0;ie(this,a,b,c,this.fb|63,!0);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c&this.N}function Og(){return oe(this)?1:0}function Pg(){return je(this)?1:0}function Qg(){return je(this)?0:1}function Rg(){return me(this)?1:0}function Sg(){return me(this)?0:1}function Tg(){return je(this)||me(this)?1:0} function Ug(){return je(this)||me(this)?0:1}function Vg(){return ne(this)?1:0}function Wg(){return ne(this)?0:1}function Xg(){return ke(this)?1:0}function Yg(){return ke(this)?0:1}function Zg(){return!ne(this)!=!oe(this)?1:0}function $g(){return!ne(this)!=!oe(this)?0:1}function ah(){return me(this)||!ne(this)!=!oe(this)?1:0}function bh(){return me(this)||!ne(this)!=!oe(this)?0:1}function ch(a,b){return dh.call(this,a,b,this.na())}function eh(a,b){return fh.call(this,a,b,this.na())} @@ -170,9 +170,9 @@ function wh(a,b){var c=a^b;F(this,c,128);this.A-=-1===this.C?-1===this.F?this.B. function Ah(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0>>=0,b[1]++);e+=e}do 0<=yh(a,c)&&(b=a,f=c,b[0]-=f[0],b[1]-=f[1],0>b[0]&&(b[0]>>>=0,b[1]--),d+=e),b=c,b[0]>>>=1,b[1]&1&&(b[0]=(b[0]|2147483648)>>>0),b[1]>>>=1,e/=2;while(1<=e);this.ua=d;this.Ga=a[0];return!0}function Bh(a){var b=a+1|0;ie(this,a,1,b,this.fb|62);this.A-=2;return a&~this.N|b&this.N} function Qc(a){this.dd=a;this.Pa&-2147483648&&Bb(this)}function Ch(a){this.L|=1;this.Gb.call(this,a);this.A-=-1===this.F?4:5}function dh(a,b,c){if(c){16>>16-c)&65535;F(this,a,32768,d&32768)}return a}function fh(a,b,c){if(c){var d=a<>>32-c;F(this,a,-2147483648,d&-2147483648)}return a}function jh(a,b,c){if(c){16>>c-1;a=(d>>>1|b<<16-c)&65535;F(this,a,32768,d&1)}return a} function lh(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;F(this,a,-2147483648,d&1)}return a}function Dh(){this.A-=-1===this.F?2:this.B.$i;return 1}function Eh(){var a=this.G&255;this.A-=(-1===this.F?this.B.Vg:this.B.Ug)+(a<this.fc?(-1!=this.Gc&&(this.Gc!==this.Ca.ja&&(this.Ca.sb=this.Gc&3,ee(this,this.Gc)),this.Gc=-1),this.Ed!==this.Y&&fe(this,this.Ed),-1!=this.ic&&(this.ic!==this.S.ja&&Ec(this,this.ic),this.ic=-1),-1!==this.la&&(this.la!==this.ra&&v(this,this.Nb&~this.S.sa|this.la-this.S.ya),this.la=-1)):8!=this.fc?(b=0,a=8):(b=0,a=-1,zd(this),e=d=!1)):fe(this,this.Ed);var f=a,g=b,h=De(this,this.Y);204!=h||this.xc||(d=!1);this.X&131072&&(6==f&&99==h|| +function Ih(a,b){this.Gc=this.Ca.ja;this.ic=this.R.ja;this.la=this.ra;var c=A(this),d=this.U;null!=Pc(this,a,b,!0)&&(Jc(this,this.Gc,d,2),Jc(this,c,d,d));this.Gc=this.ic=this.la=-1}function Jh(a,b,c){this.A-=this.B.yi+(c||0);c=Mc(this);var d=this.Ca.ja,e=A(this);a=this.Ca.Wh(a);-1!==a&&(y(this,c),y(this,d),y(this,e),null!=b&&y(this,b),this.fc=-1,fe(this,a))} +function Kh(a){this.ic=this.R.ja;this.la=this.ra;var b=u(this),c=u(this);a&&v(this,w(this)+a);Pc(this,b,c,!1)&&(a&&v(this,w(this)+a),Lh.call(this,this.xa),Lh.call(this,this.pa),80386<=this.ca&&(Lh.call(this,this.Ta),Lh.call(this,this.Xa)));2==a&&this.Vf&&$d(this,this.Y);this.ic=this.la=-1}function Mh(){8086==this.ca?(this.fc=-1,Jh.call(this,0,null,2)):t.call(this,0,null,2)}function Le(a,b){this.fc=a;void 0===b&&(b=11);Jh.call(this,a,null,b)} +function t(a,b,c,d){var e=!1;this.ea.Le?80186<=this.ca&&(e=!0,0>this.fc?(-1!=this.Gc&&(this.Gc!==this.Ca.ja&&(this.Ca.sb=this.Gc&3,ee(this,this.Gc)),this.Gc=-1),this.Ed!==this.Y&&fe(this,this.Ed),-1!=this.ic&&(this.ic!==this.R.ja&&Ec(this,this.ic),this.ic=-1),-1!==this.la&&(this.la!==this.ra&&v(this,this.Nb&~this.R.sa|this.la-this.R.ya),this.la=-1)):8!=this.fc?(b=0,a=8):(b=0,a=-1,zd(this),e=d=!1)):fe(this,this.Ed);var f=a,g=b,h=De(this,this.Y);204!=h||this.xc||(d=!1);this.X&131072&&(6==f&&99==h|| 13==f&&205==h)&&(d=!1);983040<=this.Y&&1048575>=this.Y&&(d=!1);if(d){var k=this.ea.Sb,f="Fault 0x"+ea(f,2)+(null!=g?" (0x"+ea(g,4)+")":"")+" on opcode "+("0x"+ea(h,2));d&&k&&(f+=" (blocked)");this.Ba(f);oc(this)}if(d&&e)throw-1;if(e)throw this.fc=a,Jh.call(this,a,b,c),this.Ed=this.Y,this.L=1==a?this.L|8192:this.L|4096,a;}function Ad(a,b,c){this.rd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.za&&(a|=4);t.call(this,14,a)} function Lh(a){var b=a.lb&7680;a.ja&65528&&(6144==b||7168==b||7168>b&&a.nc>8&255;9<(c&15)||le(this)?(c+=6,80286<=this.ca&&255>8&255;9<(c&15)||le(this)?(c+=6,80286<=this.ca&&255>8&255;9<(c&15)||le(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.J=this.J&-65536|d<<8|c;a?pe(this):qe(this);b?ze(this):xe(this);this.A-=this.B.Sd},function(){this.J=Bh.call(this,this.J)},function(){this.G=Bh.call(this,this.G)},function(){this.M=Bh.call(this,this.M)},function(){this.D=Bh.call(this,this.D)},function(){v(this,Bh.call(this,w(this)))},function(){this.K= Bh.call(this,this.K)},function(){this.I=Bh.call(this,this.I)},function(){this.H=Bh.call(this,this.H)},function(){this.J=zh.call(this,this.J)},function(){this.G=zh.call(this,this.G)},function(){this.M=zh.call(this,this.M)},function(){this.D=zh.call(this,this.D)},function(){v(this,zh.call(this,w(this)))},function(){this.K=zh.call(this,this.K)},function(){this.I=zh.call(this,this.I)},function(){this.H=zh.call(this,this.H)},function(){y(this,this.J&this.N);this.A-=this.B.Ac},function(){y(this,this.G& this.N);this.A-=this.B.Ac},function(){y(this,this.M&this.N);this.A-=this.B.Ac},function(){y(this,this.D&this.N);this.A-=this.B.Ac},function(){y(this,w(this)-2&65535);this.A-=this.B.Ac},function(){y(this,this.K&this.N);this.A-=this.B.Ac},function(){y(this,this.I&this.N);this.A-=this.B.Ac},function(){y(this,this.H&this.N);this.A-=this.B.Ac},function(){this.J=this.J&~this.N|u(this);this.A-=this.B.ec},function(){this.G=this.G&~this.N|u(this);this.A-=this.B.ec},function(){this.M=this.M&~this.N|u(this); @@ -302,7 +302,7 @@ function(){var a=1,b=0,c=this.sa,d=this.B.Rg;this.wa&192&&(a=this.G&c,b=1,d=this -256|this.na();this.A-=this.B.Mb},function(){this.D=this.D&-256|this.na();this.A-=this.B.Mb},function(){this.J=this.J&-65281|this.na()<<8;this.A-=this.B.Mb},function(){this.G=this.G&-65281|this.na()<<8;this.A-=this.B.Mb},function(){this.M=this.M&-65281|this.na()<<8;this.A-=this.B.Mb},function(){this.D=this.D&-65281|this.na()<<8;this.A-=this.B.Mb},function(){this.J=this.J&~this.N|this.Aa();this.A-=this.B.Mb},function(){this.G=this.G&~this.N|this.Aa();this.A-=this.B.Mb},function(){this.M=this.M&~this.N| this.Aa();this.A-=this.B.Mb},function(){this.D=this.D&~this.N|this.Aa();this.A-=this.B.Mb},function(){v(this,w(this)&~this.N|this.Aa());this.A-=this.B.Mb},function(){this.K=this.K&~this.N|this.Aa();this.A-=this.B.Mb},function(){this.I=this.I&~this.N|this.Aa();this.A-=this.B.Mb},function(){this.H=this.H&~this.N|this.Aa();this.A-=this.B.Mb},mi,ni,mi,ni,function(){this.Z.call(this,Ag)},function(){this.Z.call(this,yg)},function(){this.L|=1;this.yc.call(this,ui,this.na)},function(){this.L|=1;this.Ja.call(this, ui,this.Aa)},oi,pi,oi,pi,function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{var a=this.B.zi;this.fc=-1;Jh.call(this,3,null,a)}},function(){var a=this.na();if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{var b;a:{b=this.of[a];if(void 0!==b)for(var c=0;cthis.Cb)t.call(this,13,0);else{var a=this.B.Ai;this.fc=-1;Jh.call(this,4,null,a)}else this.A-= -this.B.Bi},function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{this.ic=this.S.ja;this.la=this.ra;this.A-=this.B.xi;if(this.Pa&1&&this.X&16384){var a=this.ga(this.ia.ya+0);Fc(this.Ca,a,!1)}else{var a=this.za,b=u(this),c=u(this),d=u(this);if(this.X&131072)d=d&131071|this.X&-131072;else if(d&131072){var e=u(this),f=u(this),g=u(this),h=u(this),k=u(this),m=u(this);Gc(this,!0,!0);Ec(this,f);v(this,e);Lc(this,g);Kc(this,h);this.Ta.load(k);this.Xa.load(m)}null!=Pc(this,b,c,!1)&&(Nc(this,d,a),this.Vf&& +this.B.Bi},function(){if(this.X&131072&&3>this.Cb)t.call(this,13,0);else{this.ic=this.R.ja;this.la=this.ra;this.A-=this.B.xi;if(this.Pa&1&&this.X&16384){var a=this.ga(this.ia.ya+0);Fc(this.Ca,a,!1)}else{var a=this.za,b=u(this),c=u(this),d=u(this);if(this.X&131072)d=d&131071|this.X&-131072;else if(d&131072){var e=u(this),f=u(this),g=u(this),h=u(this),k=u(this),m=u(this);Gc(this,!0,!0);Ec(this,f);v(this,e);Lc(this,g);Kc(this,h);this.Ta.load(k);this.Xa.load(m)}null!=Pc(this,b,c,!1)&&(Nc(this,d,a),this.Vf&& $d(this,this.Y))}this.ic=this.la=-1}},function(){this.yc.call(this,ji,Dh)},function(){this.Ja.call(this,2==this.U?ki:li,Dh)},function(){this.yc.call(this,ji,Eh)},function(){this.Ja.call(this,2==this.U?ki:li,Eh)},function(){var a=this.na();if(a){var b=this.J&255;this.J=this.J&-65536|b/a<<8|b%a;F(this,this.J,128);this.A-=this.B.bi}else Mh.call(this)},function(){var a=this.J&255,b=(this.J>>8&255)*this.na()|0,c=a+b|0;this.J=this.J&-65536|c&255;ie(this,a,b,c,191);this.A-=this.B.ai},function(){this.J=this.J& -256|(je(this)?255:0);this.A-=2},function(){this.J=this.J&-256|Ee(this,this.va,this.D+(this.J&255));this.A-=this.B.aj},function(){qi.call(this,216)},function(){qi.call(this,217)},function(){qi.call(this,218)},function(){qi.call(this,219)},function(){qi.call(this,220)},function(){qi.call(this,221)},function(){qi.call(this,222)},function(){qi.call(this,223)},function(){var a=this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b&&!me(this)?(D(this,A(this)+a),this.A-=this.B.Ii):this.A-=this.B.Hg},function(){var a= this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b&&me(this)?(D(this,A(this)+a),this.A-=this.B.Ig):this.A-=this.B.Jg},function(){var a=this.O(),b=this.G-1&this.sa;this.G=this.G&~this.sa|b;b?(D(this,A(this)+a),this.A-=this.B.Hi):this.A-=this.B.Hg},function(){var a=this.O();this.G&this.sa?this.A-=this.B.Jg:(D(this,A(this)+a),this.A-=this.B.Ig)},function(){var a=this.na();Ce(this,a,1)&&(this.J=this.J&-256|Ob(this.ha,a,1,this.Y-2)&255,this.A-=this.B.Cg)},function(){var a=this.na();Ce(this,a,this.U)&& @@ -324,10 +324,10 @@ c)return Mh.call(this),a;this.ua=c&65535;this.Ga=b%a&65535}else{if(!Ah.call(this ie(this,a,1,b,this.fb|62);this.A-=-1===this.F?this.B.Xe:this.B.We;return b&this.N},function(a){var b=a-1|0;ie(this,a,1,b,this.fb|62,!0);this.A-=-1===this.F?this.B.Xe:this.B.We;return b&this.N},function(a){y(this,A(this));D(this,a);this.A-=-1===this.F?this.B.ji:this.B.ii;this.L|=2;return a},function(a){if(-1===this.F)return R.call(this,a);this.la=this.ra;Ih.call(this,a,this.ga(this.F+this.U));this.A-=this.B.gi;this.L|=2;this.la=-1;return a},function(a){D(this,a);this.A-=-1===this.F?this.B.Fi:this.B.Ei; this.L|=2;return a},function(a){if(-1===this.F)return R.call(this,a);Pc(this,a,this.ga(this.F+this.U));this.A-=this.B.Ci;this.L|=2;return a},function(a){var b=a;this.L&512&&(a=a-2&65535,80286>this.ca&&(b=a));y(this,b);this.A-=-1===this.F?this.B.Ac:this.B.Vi;this.L|=2;return a},R];function xd(){this.Z.call(this,th);this.A-=-1===this.F?6:13}function yd(){this.qa.call(this,sh);this.A-=-1===this.F?12:19}var od=Array(256); od[0]=function(){16>(this.Jb(this.Y)&56)&&(this.L|=1);this.Ja.call(this,this.wh,Gh)};od[1]=function(){this.Jb(this.Y)&16||(this.L|=1);this.Ja.call(this,xi,Gh)};od[2]=function(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.Z.call(this,xg)};od[3]=function(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.Z.call(this,Dg)}; -od[5]=function(){this.za?t.call(this,13,0,0,!0):(Be(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Dc(this.pa,2102,this.ga(2084)),Dc(this.Ca,2108,this.ga(2082)),Dc(this.S,2114,this.ga(2080)),Dc(this.xa,2120,this.ga(2078)),Nc(this,this.ga(2072)),D(this,this.ga(2074)),v(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)| +od[5]=function(){this.za?t.call(this,13,0,0,!0):(Be(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Dc(this.pa,2102,this.ga(2084)),Dc(this.Ca,2108,this.ga(2082)),Dc(this.R,2114,this.ga(2080)),Dc(this.xa,2120,this.ga(2078)),Nc(this,this.ga(2072)),D(this,this.ga(2074)),v(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)| this.Jb(2140)<<16,this.xc=this.Ab+this.ga(2142),Dc(this.Zb,2132,this.ga(2076)),Dc(this.ia,2144,this.ga(2070)),this.A-=195)};od[6]=function(){this.za?t.call(this,13,0):(this.Pa&=-9,this.A-=2)};od[11]=Wc;od[166]=Wc;od[255]=Wc;var B=[];B[5]=Wc; B[7]=function(){if(this.za)t.call(this,13,0,0,!0);else{var a=this.pa.Pb(this.H&this.sa,204);if(-1!==a){this.Pa=this.fa(a);Gc(this);this.Pa&-2147483648?Bb(this):Bd(this);var b=this.fa(a+168),c=(b&24576)>>13;Nc(this,this.fa(a+4),c);this.ub=this.fa(a+112);this.wc=this.ub+this.fa(a+116);this.Ab=this.fa(a+100);this.xc=this.Ab+this.fa(a+104);Cc(this.Zb,this.fa(a+56),this.fa(a+120),this.fa(a+124),this.fa(a+128));Cc(this.ia,this.fa(a+52),this.fa(a+84),this.fa(a+88),this.fa(a+92));this.H=this.fa(a+12);this.I= -this.fa(a+16);this.K=this.fa(a+20);this.D=this.fa(a+28);this.M=this.fa(a+32);this.G=this.fa(a+36);this.J=this.fa(a+40);Cc(this.Xa,this.fa(a+60),this.fa(a+132),this.fa(a+136),this.fa(a+140));Cc(this.Ta,this.fa(a+64),this.fa(a+144),this.fa(a+148),this.fa(a+152));Cc(this.xa,this.fa(a+68),this.fa(a+156),this.fa(a+160),this.fa(a+164));Cc(this.S,this.fa(a+72),b,this.fa(a+172),this.fa(a+176));Cc(this.Ca,this.fa(a+76),this.fa(a+180),this.fa(a+184),this.fa(a+188));Cc(this.pa,this.fa(a+80),this.fa(a+192),this.fa(a+ +this.fa(a+16);this.K=this.fa(a+20);this.D=this.fa(a+28);this.M=this.fa(a+32);this.G=this.fa(a+36);this.J=this.fa(a+40);Cc(this.Xa,this.fa(a+60),this.fa(a+132),this.fa(a+136),this.fa(a+140));Cc(this.Ta,this.fa(a+64),this.fa(a+144),this.fa(a+148),this.fa(a+152));Cc(this.xa,this.fa(a+68),this.fa(a+156),this.fa(a+160),this.fa(a+164));Cc(this.R,this.fa(a+72),b,this.fa(a+172),this.fa(a+176));Cc(this.Ca,this.fa(a+76),this.fa(a+180),this.fa(a+184),this.fa(a+188));Cc(this.pa,this.fa(a+80),this.fa(a+192),this.fa(a+ 196),this.fa(a+200));D(this,this.fa(a+8));v(this,this.fa(a+24))}this.A-=122<<(a&3?1:0)}};B[16]=fi;B[17]=gi;B[18]=hi;B[19]=ii;B[32]=function(){if(this.za)t.call(this,13,0);else{var a,b=this.na();switch((b&56)>>3){case 0:a=this.Pa;break;case 2:a=this.rd;break;case 3:a=this.dd;break;default:pd.call(this);return}Dd(this,b&7,a);this.A-=6}};B[33]=function(){if(this.za)t.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?pd.call(this):(Dd(this,a&7,this.qb[b]),this.A-=22)}}; B[34]=function(){if(this.za)t.call(this,13,0);else{var a=this.na(),b=Cd(this,a&7);switch((a&56)>>3){case 0:this.Pa=b;Gc(this);this.Pa&-2147483648?Bb(this):Bd(this);this.A-=10;break;case 2:this.rd=b;this.A-=4;break;case 3:Qc.call(this,b);this.A-=5;break;default:pd.call(this)}}};B[35]=function(){if(this.za)t.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?pd.call(this):(a=Cd(this,a&7),a!=this.qb[b]&&(ae(this,!1),this.qb[b]=a,ae(this,!0)),this.A-=4>b?22:14)}}; B[36]=function(){if(this.za)t.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?pd.call(this):(Dd(this,a&7,this.rf[b]),this.A-=12)}};B[38]=function(){if(this.za)t.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?pd.call(this):(this.rf[b]=Cd(this,a&7),this.A-=12)}};B[128]=function(){var a=this.Aa();oe(this)?(D(this,A(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};B[129]=function(){var a=this.Aa();oe(this)?this.A-=this.B.Na:(D(this,A(this)+a),this.A-=this.B.Ma)}; @@ -353,13 +353,13 @@ T[5150][0][Fi]={lc:48,Oc:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48 T[5160][0][5]={lc:12,Oc:{64:0,128:4,192:8,256:12},gd:"Base Memory (64Kb Increments)"};T[5160][1][6]=T[5150][1][6];T[5160.101]=[{},{}];T[5160.101][0][5]={lc:143,Oc:{128:1,256:130,512:8,640:141},gd:"Base Memory (128Kb Increments)"};T[5160.101][0][3]={lc:16,Oc:{0:0,1:16},gd:"Coprocessor"};T[5160.101][1][2]={lc:1,Oc:{0:0,1:1},gd:"Floppy Type"};T[5160.101][1][Ei]=T[5150][0][Ei];T[5160.101][1][Fi]=T[5150][0][Fi];l=S.prototype; l.zb=function(a,b,c){switch(b){case Ci:return this.ka[b]=c,Ji(this,0,b),!0;case Gi:if(5150==(this.ca|0)||5160.101==this.ca)return this.ka[b]=c,Ji(this,1,b),!0;break;case "swdesc":return this.ka[b]=c,!0}return!1}; l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.qd=kb(a,"FPU");Di(this,3,this.qd?1:0,!0);this.C=kb(a,"Keyboard");this.Ga=c.T.ad/1193181;Nb(b,this,Ki);Pb(b,this,Li);this.ca=Re){this.H=16;this.S=0;this.R=16;this.ua=0;this.W=160;512<=Yi(this)&&(this.W|=16);3==+Zi(this,Fi,void 0)&&(this.W|=64);5180==(this.ca|0)&&(this.W|=12);this.va=3;this.I= +l.reset=function(a){var b;Ui(this);this.G=Array(this.Ea);for(b=0;b=Re){this.H=16;this.R=0;this.S=16;this.ua=0;this.W=160;512<=Yi(this)&&(this.W|=16);3==+Zi(this,Fi,void 0)&&(this.W|=64);5180==(this.ca|0)&&(this.W|=12);this.va=3;this.I= Array(8);this.da=0;a&&(this.B=Array(64));$i(this,this.Xa);for(a=21;24>=a;a++)this.B[a]=0;for(a=14;46>a;a++)void 0===this.B[a]&&(this.B[a]=0);a=0|+Zi(this,Fi,void 0)<c;c++)b+=a.B[c];a.B[47]=b&255;a.B[46]=b>>8} l.save=function(){var a=new ce(this);C(a,0,[this.D]);for(var b=[],c=0;c=Re&&(C(a,5,[this.H,this.S,this.R,this.ua,this.W,this.va]),C(a,6,[this.I[7],this.I,this.da,this.B,this.ra,this.ia]));return a.data()}; -l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.D=b[0]:(this.D[0][0]=b[0],this.D[1][0]=b[1]&15,this.D[0][1]=b[2],this.D[1][1]=b[3]&15);Ui(this);b=a[1];for(c=0;c=Re&&(C(a,5,[this.H,this.R,this.S,this.ua,this.W,this.va]),C(a,6,[this.I[7],this.I,this.da,this.B,this.ra,this.ia]));return a.data()}; +l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.D=b[0]:(this.D[0][0]=b[0],this.D[1][0]=b[1]&15,this.D[0][1]=b[2],this.D[1][1]=b[3]&15);Ui(this);b=a[1];for(c=0;c=Re){var c=a.A.T.ad,d=tc(a.A,a.Z);null==a.Fa&&(a.ra=tc(a.A,a.Z),a.Ta=1024,a.Fa=Math.floor(a.A.T.ad/a.Ta),cj(a));d>=a.ia&&(a.B[12]|=64,a.B[11]&64&&(a.B[12]|=128,Te(a,8)),a.ia=d+a.Fa);a.B[0]==a.B[1]&&a.B[2]==a.B[3]&&a.B[4]==a.B[5]&&(a.B[12]|=32,a.B[11]&32&&(a.B[12]|=128,Te(a,8)));var e=d-a.ra,f=Math.floor(e/c);if(f&&!(a.B[11]&128)){for(;f--;)if(60<=++a.B[0]&&(a.B[0]=0,60<=++a.B[2]&&(a.B[2]=0,24<=++a.B[4]))){a.B[4]=0;a.B[6]=a.B[6]%7+1;var g; g=a.B[9];var h=ma[a.B[8]-1];28==h&&0===g%4&&(g%100||0===g%400)&&h++;g=h;++a.B[7]>g&&(a.B[7]=1,12<++a.B[8]&&(a.B[8]=1,a.B[9]=(a.B[9]+1)%100))}a.B[12]|=16;a.B[11]&16&&(a.B[12]|=128,Te(a,8))}a.ra=d-e%c}}l=S.prototype;l.Bk=function(){var a=this.Da;this.oa&16&&(this.P&128?a=this.D[0][1]:this.C&&(a=Qj(this.C)));return a};l.Ol=function(a,b){this.Da=b};l.Ck=function(){return this.P};l.Pl=function(a,b){Rj(this,b)}; function Rj(a,b){var c=!!(b&2),d=!!(a.P&2);a.P=b;a.C&&Sj(a.C,!(b&128),!!(b&64));c!=d&&vc(a,c)}l.Dk=function(){var a=0,a=5150==(this.ca|0)?this.P&4?a|this.D[1][1]&15:a|this.D[1][1]>>4&1:this.P&8?a|this.D[0][1]>>4:a|this.D[0][1]&15;this.P&1&&Lj(this,2).Tc&&(a=this.P&2?a|32:a|16);return a};l.Ql=function(a,b){this.Ja=b};l.Ek=function(){return this.oa};l.Rl=function(a,b){this.oa=b};l.Mj=function(){var a=this.C?Qj(this.C):0;this.la&=-2;return a};l.$k=function(){};l.Lj=function(){return this.P}; -l.Zk=function(a,b){Rj(this,b)};l.Nj=function(){return this.la};l.Oj=function(){var a=this.ua;this.H&=-258;this.C&&Tj(this.C);return a};l.bl=function(a,b){if(this.H&8)switch(this.S){case 96:Uj(this,b);break;case 209:Vj(this,b);break;default:if(Uj(this,this.R&-17),this.C){var c=this.C,d=b,e=-1;switch(c.G||d){case 255:e=250;c.Ob=[];Wj(c,170);break;case 243:c.G&&(d=0);Wj(c,250);c.G=d;break;case 237:c.G&&(d=0),Wj(c,250),c.G=d}Xj(this,e)}}this.S=b;this.H&=-9}; +l.Zk=function(a,b){Rj(this,b)};l.Nj=function(){return this.la};l.Oj=function(){var a=this.ua;this.H&=-258;this.C&&Tj(this.C);return a};l.bl=function(a,b){if(this.H&8)switch(this.R){case 96:Uj(this,b);break;case 209:Vj(this,b);break;default:if(Uj(this,this.S&-17),this.C){var c=this.C,d=b,e=-1;switch(c.G||d){case 255:e=250;c.Ob=[];Wj(c,170);break;case 243:c.G&&(d=0);Wj(c,250);c.G=d;break;case 237:c.G&&(d=0),Wj(c,250),c.G=d}Xj(this,e)}}this.R=b;this.H&=-9}; l.Pj=function(){return this.P&-209|(tc(this.A)&64?16:0)};l.cl=function(a,b){Rj(this,b)};l.Qj=function(){var a=this.H&255;this.H&256&&(this.H|=1,this.H&=-257);return a}; -l.al=function(a,b){this.S=b;this.H|=8;var c=0;240<=this.S&&(c=this.S^15,this.S=240);switch(this.S){case 32:Xj(this,this.R);break;case 173:Uj(this,this.R|16);break;case 174:Uj(this,this.R&-17);this.C&&Tj(this.C);break;case 170:this.C&&(this.C.Ob=[]);Uj(this,this.R|16);Xj(this,85);Vj(this,3);break;case 171:Xj(this,0);break;case 192:Xj(this,this.W);break;case 208:Xj(this,this.va);break;case 224:Xj(this,this.R&16?0:1);break;case 240:c&1&&zd(this.A)}}; -function Uj(a,b){a.R=b;a.H=a.H&-5|b&4;a.C&&Sj(a.C,!!(b&8),!(b&16))}function Xj(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Vj(a,b){a.va=b;xb(a.ha,!!(b&2));b&1||zd(a.A)}function Yj(a,b){a.ca=c)if(d=this.B[c],10>c){var e=!1;4!=c&&5!=c||this.B[11]&2||(12>d?d=d?d:12:d=(d-=12)?d+128:140,e=!0);this.B[11]&4||(e&&128=c){if(e=b,10>c){var f=!1;this.B[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&23=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;this.B[c]=e;11==c&&d&64&&b&64&&cj(this)};l.ej=function(a,b){this.ma=b};l.Bl=function(){};l.Cl=function(){this.qd&&Ne(this.qd)}; function vc(a,b){if(a.qa)try{void 0!==b?a.Oa=b:b=a.Oa&&a.A&&a.A.ea.Sb;var c=Math.round(1193181/Nj(a,2));if(20>c||2E4>>4,0,this.I,this.D,this.K),delete this.K);return!0};ak.prototype.Ub=function(){return!0}; function bk(a,b,c,d){if(d)a.Ba("Unable to load system ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.B=f;else if(g)for(a.B=Array(4*g.length),d=c=0;c>8&255,a.B[d++]=g[c]>>16&255,a.B[d++]=g[c]>>24&255;else a.B=e;a.K=e.symbols;if(!a.B.length){n("Empty ROM: "+b);return}if(1==a.B.length){n(a.B[0]);return}}catch(h){a.Ba("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm, " ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e>>d.da].kf(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;c>>d.da].kf(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;cthis.C?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;bj(a)}}else n("No RAM allocated")};l.save=function(){var a=new ce(this);this.controller&&C(a,0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function gk(a){this.G=a;this.C=ik;this.D=jk;this.B=kk;this.A=null}var hk=-2134900736,ik=65535,jk=2575,kk=2,lk=[null,0],mk=[function(a){return this.controller.Jb(a)},null,null,function(a,b){this.controller.Mc(a,b)},null,null];l=gk.prototype;l.save=function(){return[this.C,this.B]}; l.restore=function(a){this.Mc(0,a[0]&255);this.Mc(2,a[1]&255);return!0};l.Jb=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};l.Mc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.G.ha;if(b&1)this.A&&(Cb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Db(c,917504,131072));var d=Db(c,16646144,131072);Cb(c,917504,131072,d,b&2?1:Gb)}this.C=this.C&-256|b}};l.Uh=function(){return lk};l.lg=function(){return mk}; -Ea(function(){for(var a=Za(document,"pcjs","ram"),b=0;b":62,"?":63,"@":64,bm:65,cm:66,dm:67,im:68,E:69,jm:70,mm:71,nm:72,om:73,pm:74,qm:75,rm:76,sm:77,um:78,vm:79,wm:80,Q:81,xm:82,Bm:83,Gm:84,Km:85,Lm:86,Mm:87,Om:88,Pm:89,Qm:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Rm:97,Sm:98,Um:99,d:100,e:101,Vm:102,Wm:103,Xm:104, Ym:105,Zm:106,k:107,$m:108,an:109,n:110,cn:111,p:112,q:113,r:114,dn:115,t:116,en:117,fn:118,gn:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},qk={};qk[186]=U[";"];qk[187]=U["="];qk[188]=U[","];qk[189]=U["-"];qk[190]=U["."];qk[191]=U["/"];qk[192]=U["`"];qk[219]=U["["];qk[220]=U["\\"];qk[221]=U["]"];qk[222]=U["'"];qk[173]=U["-"];var V={};V[U["1"]]=U["!"];V[U["2"]]=U["@"];V[U["3"]]=U["#"];V[U["4"]]=U.$;V[U["5"]]=U["%"];V[U["6"]]=U["^"];V[U["7"]]=U["&"];V[U["8"]]=U["*"];V[U["9"]]=U["("]; V[U["0"]]=U[")"];V[186]=U[":"];V[187]=U["+"];V[188]=U["<"];V[189]=U._;V[190]=U[">"];V[191]=U["?"];V[192]=U["~"];V[219]=U["{"];V[220]=U["|"];V[221]=U["}"];V[222]=U['"'];V[173]=U._;V[61]=U["+"];V[59]=U[":"]; @@ -420,14 +420,14 @@ X[U["="]]=13;X[U["+"]]=10765;X[1008]=14;X[1009]=15;X[113]=16;X[81]=10768;X[119]= X[107]=37;X[75]=10789;X[108]=38;X[76]=10790;X[U[";"]]=39;X[U[":"]]=10791;X[U["'"]]=40;X[U['"']]=10792;X[U["`"]]=41;X[U["~"]]=10793;X[1016]=42;X[U["\\"]]=43;X[U["|"]]=10795;X[122]=44;X[90]=10796;X[120]=45;X[88]=10797;X[99]=46;X[67]=10798;X[118]=47;X[86]=10799;X[98]=48;X[66]=10800;X[110]=49;X[78]=10801;X[109]=50;X[77]=10802;X[U[","]]=51;X[U["<"]]=10803;X[U["."]]=52;X[U[">"]]=10804;X[U["/"]]=53;X[U["?"]]=10805;X[3016]=54;X[1044]=55;X[1018]=56;X[1032]=57;X[1020]=58;X[1112]=59;X[1113]=60;X[1114]=61; X[1115]=62;X[1116]=63;X[1117]=64;X[1118]=65;X[1119]=66;X[1120]=67;X[1121]=68;X[1144]=69;X[1145]=70;X[1036]=71;X[1038]=72;X[1033]=73;X[1109]=74;X[1037]=75;X[1101]=76;X[1039]=77;X[1107]=78;X[1035]=79;X[1040]=80;X[1034]=81;X[1045]=82;X[1046]=83;X[4027]=84;X[1122]=87;X[1123]=88;X[1091]=91;X[1093]=93;X[1224]=91;X[4003]=7470;X[4008]=7494;X[4046]=3677523;X[4045]=3677522;X[4013]=3677468;l=nk.prototype; l.zb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.ka[f])switch(b){case "kbd":return c.onkeydown=function(a){return vk(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.D="";var b=!X[a]||!!(e.bc&128);b||wk(e,a,!0);return b},c.onkeyup=function(a){return vk(e,a,!1)},!0;case "caps-lock":return this.ka[f]=c,c.onclick=function(){e.ba&&uc(e.ba);wk(e,1020,!0)},!0;case "num-lock":return this.ka[f]=c,c.onclick=function(){e.ba&&uc(e.ba);wk(e,1144,!0)},!0;case "scroll-lock":return this.ka[f]= -c,c.onclick=function(){e.ba&&uc(e.ba);wk(e,1145,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==sk[g]&&"button"==a)return this.ka[f]=c,c.onclick=function(a,b,c){return function(){a.ba&&uc(a.ba);xk(a,c,!0);wk(a,c,!0)}}(this,g,sk[g]),!0;if(void 0!==tk[b])return this.R++,this.ka[f]=c,a=function(a,b,c){return function(){wk(a,c)}}(this,b,tk[b]),b=function(a,b,c){return function(){yk(a,c)}}(this,b,tk[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup= -c.onmouseout=b),!0;if(d)return this.ka[f]=c,c.onclick=function(){e.ba&&uc(e.ba);d&&!e.D&&(e.D=d,zk(e,300))},!0}return!1};function Ak(a,b,c){if(a.R){for(var d in V)if(b==V[d]){b=+d;(d=qk[d])&&(b=d);break}for(var e in tk)if((d=tk[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=tk[e]==d),d){(a=a.ka["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet")}; +c,c.onclick=function(){e.ba&&uc(e.ba);wk(e,1145,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==sk[g]&&"button"==a)return this.ka[f]=c,c.onclick=function(a,b,c){return function(){a.ba&&uc(a.ba);xk(a,c,!0);wk(a,c,!0)}}(this,g,sk[g]),!0;if(void 0!==tk[b])return this.S++,this.ka[f]=c,a=function(a,b,c){return function(){wk(a,c)}}(this,b,tk[b]),b=function(a,b,c){return function(){yk(a,c)}}(this,b,tk[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup= +c.onmouseout=b),!0;if(d)return this.ka[f]=c,c.onclick=function(){e.ba&&uc(e.ba);d&&!e.D&&(e.D=d,zk(e,300))},!0}return!1};function Ak(a,b,c){if(a.S){for(var d in V)if(b==V[d]){b=+d;(d=qk[d])&&(b=d);break}for(var e in tk)if((d=tk[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=tk[e]==d),d){(a=a.ka["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}l.pc=function(a,b,c,d){this.ba=a;this.ha=b;this.A=c;this.Ia=d;this.P=kb(a,"ChipSet")}; function ok(a,b){var c=0;a.ca=null;b&&(a.ca=b.toUpperCase(),c=pk.indexOf(a.ca),0>c&&(c=0));b=pk[c];a.Z=parseInt(b.substr(2),10)}function Sj(a,b,c){a.K!==c&&(a.K=a.L=c)&&(a.H=!0);a.I!==b&&(a.I=b)&&!a.L&&Zj(a,!0);a.I&&a.L&&(a.Ob=[],Wj(a,170),a.L=!1)}function Wj(a,b){a.P&&(a.Ob.unshift(b),a.H=!0,Yj(a.P,b))}function Tj(a){var b=0;a.Ob.length&&a.H&&(b=a.Ob[0],a.P&&Yj(a.P,b))}function Qj(a){var b=0;a.Ob.length&&(b=a.Ob[0]);return b} function Zj(a,b){0>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.bc)&b):d||b&255&&(b=255);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in uk)d="led-"+g,e=uk[g],c&&c!=e||!(f=a.ka[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.bc&=~b,d&&(a.bc|=b);return!0}}return!1} function wk(a,b,c){if(X[b]&&a.A&&a.A.ea.Sb){rk[b]&&a.B.length&&0e||(e==a.B.length&&(d={},d.Wd=b,d.bc=a.bc,Ak(a,b,!0),e++),0b.cd){if(!b.Me){yk(a,b.Wd);return}b.Me=!1;c=a.da}else c=1==b.cd++?500:100;b.oj=setTimeout(function(a){return function(){Ck(a,b)}}(a),c)}} +function yk(a,b,c){if(!X[b]||!(c||a.A&&a.A.ea.Sb))return!1;for(var d=!1,e=0;eb.cd){if(!b.Me){yk(a,b.Wd);return}b.Me=!1;c=a.da}else c=1==b.cd++?500:100;b.oj=setTimeout(function(a){return function(){Ck(a,b)}}(a),c)}} function Ek(a,b,c){var d=b;if(65<=b&&90>=b)!(a.bc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.bc&515)==c&&(d=b-32);else if(!!(a.bc&3)==c){if(a=V[b])d=a}else if(a=qk[b])d=a;return d}l.Nf=function(a){a||(this.bc&=-256)}; function vk(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Ek(a,g,!0);a.ig&&h==U["`"]&&(g=h=27);if(X[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xk(a,h,!1,c)){if(20==g||144==g||145==g)a.W||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k=b||97<=b&&122>=b;e>>>=8;){var g=0,h=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==h?a.C&3||a.C&512&&b||(g=h):29==h?a.C&12||(g=h):56==h?a.C&48||(g=h):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;ce.Ob.length?(e.Ob.push(f),1==e.Ob.length&&e.P&&Yj(e.P,f)):20==e.Ob.length&& @@ -465,38 +465,38 @@ function Ik(a,b){!b&&a.ba&&(a.$c?a.Y.style.width=a.Y.style.height="":a.ba.style. function jl(a,b){var c=a.G;c&&!a.xc&&(c.addEventListener("touchstart",function(b){ll(a,b,!0)},!1),c.addEventListener("touchmove",function(b){ll(a,b)},!0),c.addEventListener("touchend",function(b){ll(a,b,!1)},!1),a.xc=b,a.rb=a.ub=a.sd=-1,a.vc=!1,a.Gb=null,a.oc=!1,a.$d=function(){a.oc=!0;a.K.je(ml,!0)})}l.Nf=function(a){this.C&&this.C.Nf(a)}; function ll(a,b,c){var d,e,f=0,g=0;e=a.Y;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.da/a.Y.offsetWidth,k=a.pa/a.Y.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(1==a.xc)d=d/(a.da/3)|0,e=e/(a.pa/3)|0,1!=e?e?wk(a.C,1040,!0):wk(a.C,1038,!0):1!=d&&(d?wk(a.C,1039,!0):wk(a.C,1037,!0));else if(a.K){g=a.vc;f=b.timeStamp-a.sd;!0===c?(a.vc=500f){a.K.je(ml,!0);a.K.je(ml,!1);return}}if(c||0>a.rb||0>a.ub)a.rb=d,a.ub=e;c=Math.round(d-a.rb);b=Math.round(e-a.ub);a.rb=d;a.ub=e;a.K.ng(c,b,a.rb,a.ub)}}l.Vb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Ub=function(a){return a?this.save():!0}; -l.reset=function(){var a=!0,b=0;this.P&&(b=+Zi(this.P,Fi,void 0));this.ca||(this.Ra=3==b?1:3);this.la=3;switch(this.Ra){case ek:b=7;break;case 5:var c=Lk[this.Bb];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.la=7;break;default:b=2}this.ma!==b&&(this.ma=b,a=!0);this.D=null;this.Z=this.Zb=new Uk(this,1);this.R=this.Cb=new Uk(this,3);5>this.Ra?this.B=new Uk:(this.B=new Uk(this,this.Ra,null,this.Wc),nl(this));ol(this);this.va=null;this.Ea=this.ia=-1;this.za=0;pl(this,this.la);if(this.D.cb&&a){a=this.D.cb+ -this.fb;for(b=this.D.cb;b>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Mb(this.ha,b,c|d<<8)}kl(this,!0)}};function nl(a){a.B.gf&1?(a.Z=a.Zb,a.R=a.B):(a.Z=a.B,a.R=a.Cb)}l.save=function(){var a=new ce(this);C(a,0,$k(this.Zb));C(a,1,$k(this.Cb));C(a,2,[this.ma,this.la,this.va]);C(a,3,$k(this.B));return a.data()}; -l.restore=function(a){var b=a[2];this.ma=b[0];this.la=b[1];this.va=b[2];this.D=null;this.Z=this.Zb=new Uk(this,1,a[0]);this.R=this.Cb=new Uk(this,3,a[1]);this.B=new Uk(this,this.Ra,a[3],this.Wc);this.B.cc&&nl(this);ol(this);if(!ql(this))return!1;rl(this);return!0}; +l.reset=function(){var a=!0,b=0;this.P&&(b=+Zi(this.P,Fi,void 0));this.ca||(this.Ra=3==b?1:3);this.la=3;switch(this.Ra){case ek:b=7;break;case 5:var c=Lk[this.Bb];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.la=7;break;default:b=2}this.ma!==b&&(this.ma=b,a=!0);this.D=null;this.Z=this.Zb=new Uk(this,1);this.S=this.Cb=new Uk(this,3);5>this.Ra?this.B=new Uk:(this.B=new Uk(this,this.Ra,null,this.Wc),nl(this));ol(this);this.va=null;this.Ea=this.ia=-1;this.za=0;pl(this,this.la);if(this.D.cb&&a){a=this.D.cb+ +this.fb;for(b=this.D.cb;b>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);Mb(this.ha,b,c|d<<8)}kl(this,!0)}};function nl(a){a.B.gf&1?(a.Z=a.Zb,a.S=a.B):(a.Z=a.B,a.S=a.Cb)}l.save=function(){var a=new ce(this);C(a,0,$k(this.Zb));C(a,1,$k(this.Cb));C(a,2,[this.ma,this.la,this.va]);C(a,3,$k(this.B));return a.data()}; +l.restore=function(a){var b=a[2];this.ma=b[0];this.la=b[1];this.va=b[2];this.D=null;this.Z=this.Zb=new Uk(this,1,a[0]);this.S=this.Cb=new Uk(this,3,a[1]);this.B=new Uk(this,this.Ra,a[3],this.Wc);this.B.cc&&nl(this);ol(this);if(!ql(this))return!1;rl(this);return!0}; function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");else{Sa(a.lf,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){n("Empty font ROM: "+b);return}if(1==f.length){n(f[0]);return}if(8192==f.length)dk(a,f,[6144,0]);else if(2048==f.length)dk(a,f,[0]);else{a.Ba("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Ba("Font ROM data error: "+g.message);return}(a.W||a.Ia)&&ab(a)}} -function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;df;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|= +function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;df;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|= (c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d} function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac= 0;ac=va-2,dn=qd[ac>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0a.Ea&&(a.Ea=0):a.Ea=-1} function rl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}} -function xl(a){if(0<=a.ia){if(void 0!==a.S){var b=a.S[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.S[a.ia]=b}}a.ia=-1}} +function xl(a){if(0<=a.ia){if(void 0!==a.R){var b=a.R[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.R[a.ia]=b}}a.ia=-1}} function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b} function Al(a,b){var c=a.D;return c&&null!=b&&b!=c.og?(c.Uf(b),a.ha.Uf(c.cb,c.Fb,c.lg(),!0),!0):!1} function ql(a,b){var c,d=a.va,e=a.D;if(e)if(1==e.Ra)d=7;else if(5<=e.Ra){var d=null,f=e.Wc>>2,g=32768=e.ab[18]?19:20:21:g&128||350>f?d= m?13:14:480<=f&&(d=3==a.ma?17:18):d=m?7-d:6:d-=m?2:0);c=zl(a)}}else e.Lc&8&&(e.Lc&2?(d=e.Lc&16?6:5,e.Lc&4||--d):(d=e.Lc&1?3:1,e.Lc&4&&--d));else a.va=null,null==d&&(d=a.la);if(!pl(a,d,b))return!1;Al(a,c);return!0} -function pl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.R);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){xl(a);if(a.cb){if(!Fb(a.ha,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ha,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Nb;a.L=a.wc;a.Ta=a.H;a.Hb=Gk[7][2];b=0;if(c=Gk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>al(a.B,18)?43:50:a.I=a.Ra);a.pd=a.H*a.L|0;a.od=a.pd/a.Hb| +function pl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.S);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){xl(a);if(a.cb){if(!Fb(a.ha,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ha,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Nb;a.L=a.wc;a.Ta=a.H;a.Hb=Gk[7][2];b=0;if(c=Gk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>al(a.B,18)?43:50:a.I=a.Ra);a.pd=a.H*a.L|0;a.od=a.pd/a.Hb| 0;a.fb=a.od;a.fc=0;void 0!==b&&(a.fb=(a.fb<<1)+b|0,a.fc=a.fb+b>>1);if(a.xa.length){a.ra=a.da/a.H|0;a.ua=a.pa/a.L|0;if(a.I){b=a.xa[a.I];if(!b)break a;c=a.xa[a.I<<1];a.dd&&80==a.H?c&&a.ra>=3*c.tc>>2&&(a.I<<=1,b=c):(c&&a.ra>=c.tc&&(a.I<<=1,b=c),a.dd||(a.ra=b.tc,a.ua=b.uc));a.pb=a.qb=0;b&&(a.pb=a.H*b.tc,a.qb=a.L*b.uc)}else a.ra=a.ua=1,a.pb=a.H,a.qb=a.L;a.Oa=a.W.createImageData(a.pb,a.qb);a.Fa=document.createElement("canvas");a.Fa.width=a.pb;a.Fa.height=a.qb;a.Ga=a.Fa.getContext("2d");a.yc=a.zc=0;a.ic= -a.da;a.mc=a.pa;b=a.da-a.H*a.ra;c=a.pa-a.L*a.ua;0>1,a.ic-=b);0>1,a.mc-=c);if(b||c)a.W.fillStyle=a.Y.style.backgroundColor,a.W.fillRect(0,0,a.da,a.pa)}}Bl(a,!0);kl(a)}return!0}function vl(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 Cl(a){a.za=-1;a.qa=!1;var b=a.od;if(void 0===a.S||a.S.length!=b)a.S=Array(b)}function Bl(a,b){b||(a.La=!1);Cl(a)} +a.da;a.mc=a.pa;b=a.da-a.H*a.ra;c=a.pa-a.L*a.ua;0>1,a.ic-=b);0>1,a.mc-=c);if(b||c)a.W.fillStyle=a.Y.style.backgroundColor,a.W.fillRect(0,0,a.da,a.pa)}}Bl(a,!0);kl(a)}return!0}function vl(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 Cl(a){a.za=-1;a.qa=!1;var b=a.od;if(void 0===a.R||a.R.length!=b)a.R=Array(b)}function Bl(a,b){b||(a.La=!1);Cl(a)} function yl(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Ge&&(d=h.Ge[d]);var k=g>>4&15;h.Ge&&(k=h.Ge[k]);e?(b*=h.tc,c*=h.uc,e.fillStyle=h.be[k],e.fillRect(b,c,h.tc,h.uc)):(b=b*a.ra+a.yc,c=c*a.ua+a.zc,a.W.fillStyle=h.be[k],a.W.fillRect(b,c,a.ra,a.ua));g&256&&(k=(f&15)*h.tc,f=(f>>4)*h.uc,e?e.drawImage(h.ag[d],k,f,h.tc,h.uc,b,c,h.tc,h.uc):a.W.drawImage(h.ag[d],k,f,h.tc,h.uc,b,c,a.ra,a.ua));g&512&&(f=a.td,g=a.Gc,e?(a.Da&&a.Da!==h.uc&&(f=f*h.uc/a.Da|0,g=g*h.uc/a.Da|0),e.fillStyle=h.be[d],e.fillRect(b, c+f,h.tc,g)):(a.Da&&a.Da!==a.ua&&(f=f*a.ua/a.Da|0,g=g*a.ua/a.Da|0),a.W.fillStyle=h.be[d],a.W.fillRect(b,c+f,a.ra,g)))} -function kl(a,b){if(a.ea.Rb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)Cl(a);else if(void 0===a.S)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.pd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Dl(a,d)&8||d.xe&&d.xe=a.va&& -(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ha,x=!0,r=c>>>m.da;0f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ia-a.D.ed;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);vl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa= -!0;ra.H?a.Ta-a.H-z>>3:0;c>=8;m>r&&(r=m);p=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);xa.H?a.Ta-a.H-J>>3:0;cda&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.S[d]?(h+=ua,ua=0):a.S[d]=z,d++);if(ua){hx&&(x=h);m=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p=a.va&& +(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ha,x=!0,r=c>>>m.da;0f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ia-a.D.ed;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);vl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa= +!0;ra.H?a.Ta-a.H-z>>3:0;c>=8;m>r&&(r=m);p=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);xa.H?a.Ta-a.H-J>>3:0;cda&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.R[d]?(h+=ua,ua=0):a.R[d]=z,d++);if(ua){hx&&(x=h);m=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);pd&&(b.wg=d,d=-d|0);d%b.sg>b.Wk&&(c|=1);d%b.vg>b.Yk&&(c|=9);b.gh=d/b.vg|0;return c}l.xk=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.Ll=function(a,b){var c=this.Z;c.Qf=c.sc;c.sc=b&31};l.wk=function(){return El(this.Z)};l.Kl=function(a,b){Fl(this,this.Z,b)};l.yk=function(){return this.Z.Lc};l.Ml=function(a,b){this.Z.Lc=b;ql(this,!1)};l.zk=function(){return Gl(this,this.Z)}; l.dj=function(a,b){this.B.Sf=this.B.Sf&-4|b&3};l.Vj=function(){return this.B.Ud};l.wj=function(){return this.B.Kc[this.B.Ud&31]};l.cj=function(a,b){var c=this.B,d=c.Ud&32;if(c.Ke){c.Ke=!1;var e=c.Ud&31;if(16<=e||!d)c.Kc[e]=b,Bl(this,!1)}else c.Ud=b,c.Ke=!0,b&32&&!d&&ol(this,!0)&&kl(this,!0),d=(c.ab[12]<<8)+c.ab[13]|0,c.ed!=d&&(c.ed=d,Bl(this)),c.xe=0}; l.Jk=function(){var a=0;if(5==this.Ra)a=3-((this.B.gf&12)>>2),a=(this.Bb&1<>this.B.Bc&63;this.B.Bc+=6;12=b)a.preventDefault&&a.preventDefault(),64>8:this.W};l.sk=function(){return this.G};l.tk=function(){return this.I};l.vk=function(){return this.C};l.uk=function(){return this.B};l.Ak=function(){return this.ia}; -l.Ul=function(a,b){if(this.I&128)this.R=this.R&-256|b;else{this.la=b;this.B&=-97;var c;if(this.D){if(13==b)this.L=0;else if(8==b)this.D.value=this.D.value.slice(0,-1),0>8:this.W};l.sk=function(){return this.G};l.tk=function(){return this.I};l.vk=function(){return this.C};l.uk=function(){return this.B};l.Ak=function(){return this.ia}; +l.Ul=function(a,b){if(this.I&128)this.S=this.S&-256|b;else{this.la=b;this.B&=-97;var c;if(this.D){if(13==b)this.L=0;else if(8==b)this.D.value=this.D.value.slice(0,-1),0a.H||0>a.I)a.H=b.clientX,a.I=b.clientY;a.S?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.H,d=b.clientY-a.I);a.H=b.clientX;a.I=b.clientY;a.ng(c,d,a.H,a.I)}} -l.je=function(a,b){if(this.cc&&this.A&&this.A.ea.Sb)switch(a){case ml:if(this.P!=b){this.P=b;$l(this);break}break;case 2:this.R!=b&&(this.R=b,$l(this))}};l.ng=function(a,b){this.cc&&this.A&&this.A.ea.Sb&&(a||b)&&(this.K=a,this.L=b,$l(this))};function $l(a){Pl(a.G,[64|(a.P?32:0)|(a.R?16:0)|(a.L&192)>>4|(a.K&192)>>6,a.K&63,a.L&63]);a.K=a.L=0}Ea(function(){for(var a=Za(document,"pcjs","mouse"),b=0;ba.H||0>a.I)a.H=b.clientX,a.I=b.clientY;a.R?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.H,d=b.clientY-a.I);a.H=b.clientX;a.I=b.clientY;a.ng(c,d,a.H,a.I)}} +l.je=function(a,b){if(this.cc&&this.A&&this.A.ea.Sb)switch(a){case ml:if(this.P!=b){this.P=b;$l(this);break}break;case 2:this.S!=b&&(this.S=b,$l(this))}};l.ng=function(a,b){this.cc&&this.A&&this.A.ea.Sb&&(a||b)&&(this.K=a,this.L=b,$l(this))};function $l(a){Pl(a.G,[64|(a.P?32:0)|(a.S?16:0)|(a.L&192)>>4|(a.K&192)>>6,a.K&63,a.L&63]);a.K=a.L=0}Ea(function(){for(var a=Za(document,"pcjs","mouse"),b=0;b>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;cb.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=fm(this,b),this.Af=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"): @@ -531,10 +531,10 @@ c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":') m<<2,E=r.length;Eg)break;e|=g<b&&(b=0);2E3b&&(b=0);2E3>2,e=Array(d),f=0;f>2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}l.read=function(a,b){var c=-1;if(a&&b>2,c=(d>((b&3)<<3)&255;return c}; l.write=function(a,b,c){if(this.re)return!1;if(b>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Dc?f=a.Uc+a.Dc&&(a.Dc+=f-(a.Uc+a.Dc)+1):(a.Uc=f,a.Dc=1);d[f]=d[f]&~(255<'+b+"");a.innerHTML=b}};retu (a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),n(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[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;um(d,fa(b,!0),b,a)}return!1};return!0}return!1}; l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)}; l.Vb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.jg){this.C=[];for(var c=0;cg.ta.restore(r)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.xb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e} -function zm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ka.listDisks)&&f.options)for(var g=0;gg.ta.restore(r)&&(h=!1);h&&g.ta&&void 0!==g.Ua&&(g.Wa=g.ta.seek(g.wb,g.Ya,g.mb));h||(e=!1)}a.L=b[c++]||0;a.H=b[c]||0;return e} +function zm(a,b){b||(a.S=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(!(f=d.name))a:{if((f=a.ka.listDisks)&&f.options)for(var g=0;gCm(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,h=void 0,h=0;ha.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.ij=c,a.Vd=d,Dm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Nd||e),a.Hf=f[0],a.Ue=f[1],a.Ve=f[2],this.ba&&uc(this.ba)):a.me=!1;a.Nd&&(a.Nd=!1,--this.R||ab(this));tm(this,a.Qa)}; +e,!1,!0)}}else Am(a,e);else a.Ba("Unable to load the selected drive")}function Cm(a,b,c,d,e,f){var g=a.B[b];if(d&&g.Vd!=d){Am(a,b,e,!0);if(g.Qc)return a.Ba("Drive "+b+" busy"),0;g.Qc=!0;e&&(g.Nd=!0,a.S++);g.me=!!f;return(new am(a,g,"preload")).load(c,d,f,a.Mh)?1:0}return-1} +l.Mh=function(a,b,c,d,e){var f;a.Qc=!1;b&&(f=b.info(),b&&f[0]>a.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.ij=c,a.Vd=d,Dm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Nd||e),a.Hf=f[0],a.Ue=f[1],a.Ve=f[2],this.ba&&uc(this.ba)):a.me=!1;a.Nd&&(a.Nd=!1,--this.S||ab(this));tm(this,a.Qa)}; function ym(a,b,c,d){if((a=a.ka.listDisks)&&a.options){for(var e=0;e=this.D&&(this.aa&=-81,this.G=this.D=0);return a}; -l.zl=function(a,b){this.D=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.xb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.wb=128<>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.xb;g=e.Ya=d;h= -e.mb=1;k=0;e.kb=0;e.ta&&(e.Wa=e.ta.seek(e.xb,e.Ya,e.mb))?k=e.Wa.length>>8:e.kb=72;Hm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.xb;g=e.Ya=d;h=1;k=Em(this);e.wb=128<>2&1,f=Em(this),e.xb+= -f-e.wd,0>e.xb&&(e.xb=0),e.xb>=e.ib&&(e.xb=e.ib-1),e.wd=f,e.kb=32,e.xb||(e.kb|=268435456),Fm(this),d=!0}0>>8);Gm(a,(b.kb&16711680)>>>16);var k=0;if(e!=b.xb||f!=b.Ya)k=g=1;c&128&&(f^=k,d||(k=0));Gm(a,e+k);Gm(a,f);Gm(a,g);Gm(a,h)} -function Em(a){var b=a.I[a.G];a.G++;return b}function Fm(a){a.G=a.D=0}function Gm(a,b){a.I[a.D++]=b}l.qj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.kb&&a.ta){do{if(a.Wa&&(e=a.Ua,0<=(b=a.ta.read(a.Wa,a.Ua++)))){d=a.Wa;break}a.Wa=a.ta.seek(a.xb,a.Ya,a.mb);if(!a.Wa){a.kb=1088;break}a.Ua=0;Im(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};l.rj=function(a,b){return void 0!==b&&0<=b?Jm(a,b):-1}; -l.Cj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.kb)c=-1;else{a.Pc[a.ie++]=c;if(a.ie==a.Pc.length){a.xb=a.Pc[0];a.Ya=a.Pc[1];a.mb=a.Pc[2];a.wb=128<Jm(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c};function Jm(a,b){if(a.kb||!a.ta)return-1;do{if(a.Wa&&a.ta.write(a.Wa,a.Ua++,b))break;a.Wa=a.ta.seek(a.xb,a.Ya,a.mb);if(!a.Wa){a.kb=8256;b=-1;break}a.Ua=0;Im(a)}while(1);return b} -function Im(a){a.mb++;a.mb>=a.Ve+1&&(a.mb=1,a.Ya++,a.Ya>=a.Ue&&(a.Ya=0,a.xb++))}var wm={1009:rm.prototype.lk,1012:rm.prototype.nk,1013:rm.prototype.kk,1015:rm.prototype.mk},xm={1010:rm.prototype.Al,1013:rm.prototype.zl,1015:rm.prototype.yl};Ea(function(){for(var a=Za(document,"pcjs","fdc"),b=0;b=this.D&&(this.aa&=-81,this.G=this.D=0);return a}; +l.zl=function(a,b){this.D=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.wb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.vb=128<>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h= +e.mb=1;k=0;e.kb=0;e.ta&&(e.Wa=e.ta.seek(e.wb,e.Ya,e.mb))?k=e.Wa.length>>8:e.kb=72;Hm(this,e,c,d,f,g,h,k);d=!0;break;case 13:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];f=e.wb;g=e.Ya=d;h=1;k=Em(this);e.vb=128<>2&1,f=Em(this),e.wb+= +f-e.wd,0>e.wb&&(e.wb=0),e.wb>=e.ib&&(e.wb=e.ib-1),e.wd=f,e.kb=32,e.wb||(e.kb|=268435456),Fm(this),d=!0}0>>8);Gm(a,(b.kb&16711680)>>>16);var k=0;if(e!=b.wb||f!=b.Ya)k=g=1;c&128&&(f^=k,d||(k=0));Gm(a,e+k);Gm(a,f);Gm(a,g);Gm(a,h)} +function Em(a){var b=a.I[a.G];a.G++;return b}function Fm(a){a.G=a.D=0}function Gm(a,b){a.I[a.D++]=b}l.qj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.kb&&a.ta){do{if(a.Wa&&(e=a.Ua,0<=(b=a.ta.read(a.Wa,a.Ua++)))){d=a.Wa;break}a.Wa=a.ta.seek(a.wb,a.Ya,a.mb);if(!a.Wa){a.kb=1088;break}a.Ua=0;Im(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};l.rj=function(a,b){return void 0!==b&&0<=b?Jm(a,b):-1}; +l.Cj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.kb)c=-1;else{a.Pc[a.ie++]=c;if(a.ie==a.Pc.length){a.wb=a.Pc[0];a.Ya=a.Pc[1];a.mb=a.Pc[2];a.vb=128<Jm(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c};function Jm(a,b){if(a.kb||!a.ta)return-1;do{if(a.Wa&&a.ta.write(a.Wa,a.Ua++,b))break;a.Wa=a.ta.seek(a.wb,a.Ya,a.mb);if(!a.Wa){a.kb=8256;b=-1;break}a.Ua=0;Im(a)}while(1);return b} +function Im(a){a.mb++;a.mb>=a.Ve+1&&(a.mb=1,a.Ya++,a.Ya>=a.Ue&&(a.Ya=0,a.wb++))}var wm={1009:rm.prototype.lk,1012:rm.prototype.nk,1013:rm.prototype.kk,1015:rm.prototype.mk},xm={1010:rm.prototype.Al,1013:rm.prototype.zl,1015:rm.prototype.yl};Ea(function(){for(var a=Za(document,"pcjs","fdc"),b=0;bk.ta.restore(g)&&(z=!1),z&&void 0!==k.Ua&&(k.Wa=k.ta.seek(k.Jd,k.Ya,k.mb+k.uf)));z||(e= !1);null!=a.da&&1>=d&&(a.da|=(f.type&3)<<(1-d<<1))}0<=a.Qa&&(a.C=a.B[a.Qa]);return e}function Sm(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.de[2])?e=b.de[0]<<8|b.de[1]:c=b.type);null==c||d||(d=Lm[a.H][c][1],e=Lm[a.H][c][0]);d&&((c=Lm[a.H][b.type])&&e!=c[0]&&d!=c[1]&&a.Ba("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.ib=e,b.jb=d,null==b.ta&&(b.ta=new am(a,b,b.mode)))}} -function Qm(a,b){b||(a.R=0);for(var c=0;c=this.D&&(this.G=this.D=0,this.aa&=-15);return a}; +function Qm(a,b){b||(a.S=0);for(var c=0;c=this.D&&(this.G=this.D=0,this.aa&=-15);return a}; l.Wl=function(a,b){this.D=c&&(this.aa|=2,this.aa&=-2,Tm(this))};l.Pk=function(){var a=this.aa;this.G=a.C.nb?(a.aa=128,Vm(a.C,function(b){0<=b?(Wm(a),a.P&&5180==a.P.ca&&(a.aa=0),a.aa|=88):(a.aa=1,a.K=16)},!1)):a.aa=80));return b}l.uj=function(){return Um(this)|Um(this)<<8};function Xm(a,b){a.C&&a.C.wb>=a.C.nb&&(0>Ym(a.C,b)?(a.aa=1,a.K=16):(1==a.C.Ua||a.C.Ua==a.C.nb)&&1=a.C.nb&&(a.aa|=8)))} +function Um(a){var b=-1;a.C&&(b=Vm(a.C,function(){}),(1==a.C.Ua||a.C.Ua==a.C.nb)&&1=a.C.nb?(a.aa=128,Vm(a.C,function(b){0<=b?(Wm(a),a.P&&5180==a.P.ca&&(a.aa=0),a.aa|=88):(a.aa=1,a.K=16)},!1)):a.aa=80));return b}l.uj=function(){return Um(this)|Um(this)<<8};function Xm(a,b){a.C&&a.C.vb>=a.C.nb&&(0>Ym(a.C,b)?(a.aa=1,a.K=16):(1==a.C.Ua||a.C.Ua==a.C.nb)&&1=a.C.nb&&(a.aa|=8)))} l.gl=function(a,b){Xm(this,b&255);Xm(this,b>>8&255)};l.Uj=function(){return this.K};l.ll=function(a,b){this.za=b};l.Wj=function(){return this.L};l.jl=function(a,b){this.L=b};l.Xj=function(){return this.oa};l.kl=function(a,b){this.oa=b};l.Sj=function(){return this.ma};l.fl=function(a,b){this.ma=b};l.Rj=function(){return this.la};l.el=function(a,b){this.la=b};l.Tj=function(){return this.Z};l.hl=function(a,b){this.Z=b;this.aa=this.B[this.Z&16?1:0]?this.aa|80:this.aa&-65}; -l.Yj=function(){var a=this.aa;this.aa&64&&(this.aa&=-129);return a};l.dl=function(a,b){this.pa=b;this.P&&Se(this.P,14);Zm(this)};l.il=function(a,b){this.S&4&&!(b&4)&&(this.K=1);this.S=b}; -function Zm(a){var b=!1,c=a.pa,d=a.Z&16?1:0,e=a.Z&15,f=a.ma|(a.la&3)<<8,g=a.oa,h=a.L||256;a.Qa=-1;a.C=null;a.K=0;a.aa=80;var k=a.B[d];k?(k.Jd=f,k.Ya=e,k.mb=g,k.wb=h*k.nb,c=144<=c?c:c&240,k.Wa=null,k.Ua=0,k.errorCode=0,a.Qa=d,a.C=k):c=-1;switch(c&240){case 16:b=!0;break;case 32:a.aa=128;Vm(k,function(b){0<=b&&a.P?(Wm(a),a.aa=88):(a.aa=1,a.K=16)},!1);break;case 48:a.aa=8;break;case 64:b=!0;break;case 112:b=!0;break;case 144:a.K=1;b=!0;break;case 145:k.jb=e+1,k.eb=h,b=!0}b&&Wm(a)} -function Wm(a){!a.P||a.S&2||Te(a.P,14,120)} -function Tm(a){a.G=0;var b=$m(a),c=$m(a),d=c&32,e=d>>5,f=c&31,g=$m(a),h=$m(a),k=g<<2&768|h,m=g&63,p=$m(a),x=$m(a),r=a.B[e];r&&(r.Jd=k,r.Ya=f,r.mb=m,r.wb=p*r.nb);switch(b){case 3:an(a,r?r.errorCode:4);en(a,c);en(a,g);en(a,h);en(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=$m(a));)r&&c>5,f=c&31,g=$m(a),h=$m(a),k=g<<2&768|h,m=g&63,p=$m(a),x=$m(a),r=a.B[e];r&&(r.Jd=k,r.Ya=f,r.mb=m,r.vb=p*r.nb);switch(b){case 3:an(a,r?r.errorCode:4);en(a,c);en(a,g);en(a,h);en(a,0|d);b=-1;break;case 12:for(c=0;0<=(b=$m(a));)r&&cb?Vm(a,c):c(-1,!1)};l.tj=function(a,b){return void 0!==b&&0<=b?Ym(a,b):-1}; -l.Dj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.UaYm(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c}; +l.Dj=function(a,b){var c;void 0!==b&&0<=b?(c=b,a.UaYm(a,a.Fh)){c=-1;break a}a.vf++}a.vf>=a.xd&&(c=-1)}else c=-1;return c}; function fn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaRead",b);yj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)});return}c(b.errorCode?2:0)}function gn(a,b,c){b.errorCode=4;if(b.ta&&(b.Wa=null,a.P)){b.errorCode=0;Cj(a.P,3,a,"dmaWrite",b);yj(a.P,3,function(a){a||(0==b.errorCode&&(b.errorCode=4),20==b.errorCode&&(b.errorCode=0));c(b.errorCode?2:0)});return}c(b.errorCode?2:0)} -function hn(a,b,c){b.errorCode=4;b.ee&&b.ee.length==b.wb||(b.ee=Array(b.wb));b.Ua=0;a.P?(b.errorCode=0,Cj(a.P,3,a,"dmaWriteBuffer",b),yj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)} +function hn(a,b,c){b.errorCode=4;b.ee&&b.ee.length==b.vb||(b.ee=Array(b.vb));b.Ua=0;a.P?(b.errorCode=0,Cj(a.P,3,a,"dmaWriteBuffer",b),yj(a.P,3,function(a){a||0!=b.errorCode||(b.errorCode=4);c(b.errorCode?2:0)})):c(b.errorCode?2:0)} function Vm(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.Wa&&(f=a.Ua,d=a.ta.read(a.Wa,a.Ua),a.Ua+=g,0<=d))return e=a.Wa,b&&b(d,!1,e,f),d;if(b){if(a.ta)return a.ta.seek(a.Jd,a.Ya,a.mb+a.uf,!1,function(c,k){(a.Wa=c)?(e=c,f=a.Ua=0,jn(a),d=a.ta.read(a.Wa,a.Ua),a.Ua+=g):a.errorCode=20;b(d,k,e,f)}),d;a.errorCode=20;b(d,!1,e,f)}return d} function Ym(a,b){if(a.errorCode)return-1;do{if(a.Wa&&a.ta.write(a.Wa,a.Ua++,b))break;a.ta&&a.ta.seek(a.Jd,a.Ya,a.mb+a.uf,!0,function(b){a.Wa=b});if(!a.Wa){a.errorCode=20;b=-1;break}a.Ua=0;jn(a)}while(1);return b}function jn(a){a.mb++;var b=1-a.uf;a.mb>=a.eb+b&&(a.mb=b,a.Ya++,a.Ya>=a.jb&&(a.Ya=0,a.Jd++))}l.Rk=function(){var a=this.A.M&255;!(this.A.J>>8)&&128>8||!this.P)||(a=!(this.P.gc[0].Vc&64));return a?!0:!1}; var Nm={800:Z.prototype.Ok,801:Z.prototype.Pk,802:Z.prototype.Nk},Mm={496:Z.prototype.uj,497:Z.prototype.Uj,498:Z.prototype.Wj,499:Z.prototype.Xj,500:Z.prototype.Sj,501:Z.prototype.Rj,502:Z.prototype.Tj,503:Z.prototype.Yj},Pm={800:Z.prototype.Wl,801:Z.prototype.Zl,802:Z.prototype.Yl,803:Z.prototype.Xl,807:Z.prototype.hh,811:Z.prototype.hh,815:Z.prototype.hh},Om={496:Z.prototype.gl,497:Z.prototype.ll,498:Z.prototype.jl,499:Z.prototype.kl,500:Z.prototype.fl,501:Z.prototype.el,502:Z.prototype.hl,503:Z.prototype.dl, 1014:Z.prototype.il};Ea(function(){for(var a=Za(document,"pcjs","hdc"),b=0;brn){if(d.load(this.R)){this.H=new ce(this,tn,"failsafe");this.H.load()&&(xn(this,d),a=2,ln(this.H));C(this.H,"timestamp",la());mn(this.H);var e=this.B&&!this.K;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=nn(d)){var f=on(d,"code"),g=on(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= -g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.rc(f+": "+g),ln(d),d.load()?(c=nn(d),e=!0):c=!1))}e&&wn(this,c?d:null)}else 2==a&&d.clear()}else wn(this);delete this.R;delete this.S}e=Ta(this.id);for(f=0;frn){if(d.load(this.S)){this.H=new ce(this,tn,"failsafe");this.H.load()&&(xn(this,d),a=2,ln(this.H));C(this.H,"timestamp",la());mn(this.H);var e=this.B&&!this.K;if(1==a||ra("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=nn(d)){var f=on(d,"code"),g=on(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!= +g?(this.Ba("Error: "+g),"unable to verify user"==g&&(xa("user",""),this.C=null)):this.rc(f+": "+g),ln(d),d.load()?(c=nn(d),e=!0):c=!1))}e&&wn(this,c?d:null)}else 2==a&&d.clear()}else wn(this);delete this.S;delete this.R}e=Ta(this.id);for(f=0;fa[1];a=a[2];this.ea.Rb=!0;var d=this.ka.power;d&&(d.textContent="Shutdown");this.Y||(this.rc("PCjs v"+tn+"\nCopyright \u00a9 2012-2016 Jeff Parsons \nLicense: GPL version 3 or later "),this.Y=!0);this.A&&(yn(this,this.A,b,c,a),nc(this.A));this.Z&&(xn(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.G=0}; function xn(a,b){if(ra("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.la,d=a.Ad(),e=b.toString(),f={app:"PCjs"};f.ver=tn;f.url=c;f.user=d;f.type="bug";f.data=e;pa("http://www.pcjs.org/api/v1/report",f,!0)}} @@ -617,9 +617,9 @@ function sn(a,b){var c=a.C;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c function Bn(a,b){a.C=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&&(xa("user",c.data),a.C=c.data)}catch(e){n(e.message+" ("+d+")")}return a.C}function un(a){var b=null;a.C&&(b=qa()+"/api/v1/user?req=load&user="+a.C+"&state="+kn(a,tn));return b} function An(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kn(a,tn);d.data=c;b=pa(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>d.da;f=f+g-1>>>d.da;e.fg=0;for(e.hd=0;h<=f;)g=d.R[h],e.fg+=g.size,g.size&&(e.$f.push(na(nb,h,0,0,g.type)),e.hd++),h++;c.B=e;c.ma=c.B.hd*c.ha.vb/691200;d=0;c.B.Hh=0;c.B.He||(c.B.He=[]);var e=-1,h=0,k=-1;for(f=0;f>1),k=g.y+(g.A>>1),m=g.A,g.Fc>1,h.K+=(h.L>>1)-2,pb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}} +function yc(a,b){for(var c=0;c>>d.da;f=f+g-1>>>d.da;e.fg=0;for(e.hd=0;h<=f;)g=d.S[h],e.fg+=g.size,g.size&&(e.$f.push(na(nb,h,0,0,g.type)),e.hd++),h++;c.B=e;c.ma=c.B.hd*c.ha.xb/691200;d=0;c.B.Hh=0;c.B.He||(c.B.He=[]);var e=-1,h=0,k=-1;for(f=0;f>1),k=g.y+(g.A>>1),m=g.A,g.Fc>1,h.K+=(h.L>>1)-2,pb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else pb(c,"This space intentionally left blank");c.context.drawImage(c.P,0,0,c.P.width,c.P.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}} Ea(function(){for(var a=Za(document,"pcjs-machine"),b=0;bh.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pcjs$2")); diff --git a/modules/pc8080/lib/bus.js b/modules/pc8080/lib/bus.js index 6fe1923a7..6fb9714d4 100644 --- a/modules/pc8080/lib/bus.js +++ b/modules/pc8080/lib/bus.js @@ -78,7 +78,7 @@ function Bus(parmsBus, cpu, dbg) this.cpu = cpu; this.dbg = dbg; - this.nBusWidth = parmsBus['buswidth'] || 16; + this.nBusWidth = parmsBus['busWidth'] || 16; /* * Compute all Bus memory block parameters, based on the width of the bus. @@ -108,6 +108,7 @@ function Bus(parmsBus, cpu, dbg) * * Bus Width Block Shift Block Size * --------- ----------- ---------- + * 16 bits (64Kb address space): 10 1Kb (64 maximum blocks) * 20 bits (1Mb address space): 12 4Kb (256 maximum blocks) * 24 bits (16Mb address space): 14 16Kb (1K maximum blocks) * 32 bits (4Gb address space); 15 32Kb (128K maximum blocks) @@ -119,7 +120,7 @@ function Bus(parmsBus, cpu, dbg) */ this.addrTotal = Math.pow(2, this.nBusWidth); this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0; - this.nBlockShift = (this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15); + this.nBlockShift = (this.nBusWidth <= 16)? 10 : ((this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15)); this.nBlockSize = 1 << this.nBlockShift; this.nBlockLen = this.nBlockSize >> 2; this.nBlockLimit = this.nBlockSize - 1; @@ -268,16 +269,15 @@ Bus.prototype.powerUp = function(data, fRepower) * allocations, etc. * * We've relaxed some of the original requirements (ie, that addresses must start at a - * block-granular address, or that sizes must be equal to exactly one or more blocks), because - * machines with large block sizes can make it impossible to load certain ROMs at at their - * required addresses. + * block-granular address, or that sizes must be equal to exactly one or more blocks), + * because machines with large block sizes can make it impossible to load certain ROMs at + * their required addresses. Every allocation still allocates a whole number of blocks. * * Even so, Bus memory management does NOT provide a general-purpose heap. Most memory - * allocations occur during machine initialization and never change. The only notable - * exception is the Video frame buffer, which ranges from 4Kb (MDA) to 16Kb (CGA) to - * 32Kb/64Kb/128Kb (EGA), and only the EGA changes its buffer address post-initialization. + * allocations occur during machine initialization and never change. In particular, there + * is NO support for removing partial-block allocations. * - * Each Memory block keeps track of a single address (addr) and length (used), indicating + * Each Memory block keeps track of a start address (addr) and length (used), indicating * the used space within the block; any free space that precedes or follows that used space * can be allocated later, by simply extending the beginning or ending of the previously used * space. However, any holes that might have existed between the original allocation and an @@ -293,17 +293,18 @@ Bus.prototype.addMemory = function(addr, size, type) { var iBlock = addr >>> this.nBlockShift; while (size > 0 && iBlock < this.aMemBlocks.length) { + var block = this.aMemBlocks[iBlock]; var addrBlock = iBlock * this.nBlockSize; - var sizeBlock = size > this.nBlockSize? this.nBlockSize : size; + var sizeBlock = this.nBlockSize - (addr - addrBlock); + if (sizeBlock > size) sizeBlock = size; if (block && block.size) { if (block.type == type) { /* - * Where there is already a block with a non-zero size, we can allow the allocation only if: + * Where there is already a similar block with a non-zero size, we allow the allocation only if: * - * 1) addr + size <= block.addr (the request precedes the used portion of the current block) - * or: + * 1) addr + size <= block.addr (the request precedes the used portion of the current block), or * 2) addr >= block.addr + block.used (the request follows the used portion of the current block) */ if (addr + size <= block.addr) { @@ -315,23 +316,27 @@ Bus.prototype.addMemory = function(addr, size, type) var sizeAvail = block.size - (addr - addrBlock); if (sizeAvail > size) sizeAvail = size; block.used = addr - block.addr + sizeAvail; - size -= sizeAvail; addr = addrBlock + this.nBlockSize; + size -= sizeAvail; + iBlock++; continue; } } return this.reportError(Bus.ERROR.ADD_MEM_INUSE, addr, size); } - var blockOld = this.aMemBlocks[iBlock]; + var blockNew = new Memory(addr, sizeBlock, this.nBlockSize, type); - blockNew.copyBreakpoints(this.dbg, blockOld); + blockNew.copyBreakpoints(this.dbg, block); this.aMemBlocks[iBlock++] = blockNew; + addr = addrBlock + this.nBlockSize; size -= sizeBlock; } + if (size <= 0) { return true; } + return this.reportError(Bus.ERROR.ADD_MEM_BADRANGE, addr, size); }; diff --git a/modules/pc8080/lib/computer.js b/modules/pc8080/lib/computer.js index b2f7883b2..14cff6b48 100644 --- a/modules/pc8080/lib/computer.js +++ b/modules/pc8080/lib/computer.js @@ -166,7 +166,7 @@ function Computer(parmsComputer, parmsMachine, fSuspended) { /* * Initialize the Bus component */ - this.bus = new Bus({'id': this.idMachine + '.bus', 'buswidth': this.nBusWidth}, this.cpu, this.dbg); + this.bus = new Bus({'id': this.idMachine + '.bus', 'busWidth': this.nBusWidth}, this.cpu, this.dbg); /* * Iterate through all the components and connect them to the Control Panel, if any diff --git a/modules/pc8080/lib/cpudef.js b/modules/pc8080/lib/cpudef.js index 816f9ac57..6002ff022 100644 --- a/modules/pc8080/lib/cpudef.js +++ b/modules/pc8080/lib/cpudef.js @@ -104,6 +104,7 @@ var CPUDef = { * Opcode definitions */ OPCODE: { + HLT: 0x76, ACI: 0xCE, // PS.ALL CALL: 0xCD, RST0: 0xC7 diff --git a/modules/pc8080/lib/cpuops.js b/modules/pc8080/lib/cpuops.js index b095abef4..5a4304610 100644 --- a/modules/pc8080/lib/cpuops.js +++ b/modules/pc8080/lib/cpuops.js @@ -1299,23 +1299,37 @@ CPUDef.opHLT = function() * we are signalling to stepCPU() that it's free to end the current burst AND that it should not * execute any more instructions until checkINTR() indicates a hardware interrupt is requested. */ + var addr = this.getPC() - 1; + + /* + * If any HLT check functions are installed, call them, and if any of them return true, then + * immediately stop HLT processing. + */ + if (this.afnHalt.length) { + for (var i = 0; i < this.afnHalt.length; i++) { + if (this.afnHalt[i](addr)) return; + } + } + this.intFlags |= CPUDef.INTFLAG.HALT; this.nStepCycles -= 7; + /* * If a Debugger is present and the HALT message category is enabled, then we REALLY halt the CPU, * on the theory that whoever's using the Debugger would like to see HLTs. */ if (DEBUGGER && this.dbg && this.messageEnabled(Messages.HALT)) { - this.setPC(this.getPC() - 1); // this is purely for the Debugger's benefit, to show the HLT + this.setPC(addr); // this is purely for the Debugger's benefit, to show the HLT this.dbg.stopCPU(); return; } + /* * We also REALLY halt the machine if interrupts have been disabled, since that means it's dead * in the water (we have no NMI generation mechanism at the moment). */ if (!this.getIF()) { - if (DEBUGGER && this.dbg) this.setPC(this.getPC() - 1); + if (DEBUGGER && this.dbg) this.setPC(addr); this.stopCPU(); } }; diff --git a/modules/pc8080/lib/cpusim.js b/modules/pc8080/lib/cpusim.js index 4e02a233d..3397ba7f7 100644 --- a/modules/pc8080/lib/cpusim.js +++ b/modules/pc8080/lib/cpusim.js @@ -100,6 +100,12 @@ function CPUSim(parmsCPU) this.nBusMask = 0; this.nBlockShift = this.nBlockSize = this.nBlockLimit = this.nBlockTotal = this.nBlockMask = 0; + /* + * Array of halt handlers, if any (see addHaltCheck) + */ + this.afnHalt = []; + this.addrReset = 0x0000; + /* * This initial resetRegs() call is important to create all the registers, so that if/when we call restore(), * it will have something to fill in. @@ -130,14 +136,22 @@ CPUSim.prototype.initMemory = function(aBusBlocks, nBlockShift, nBusMask) this.nBusMask = nBusMask; }; +/** + * addHaltCheck(fn) + * + * Records a function that will be called during HLT opcode processing. + * + * @this {CPUSim} + * @param {function(number)} fn + */ +CPUSim.prototype.addHaltCheck = function(fn) +{ + this.afnHalt.push(fn); +}; + /** * addMemBreak(addr, fWrite) * - * NOTE: addMemBreak() could be merged with addMemCheck(), but the new merged interface would - * have to provide one additional parameter indicating whether the Debugger or the CPU is the client. - * - * For now, this is simply a DEBUGGER-only interface. - * * @this {CPUSim} * @param {number} addr * @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint @@ -153,11 +167,6 @@ CPUSim.prototype.addMemBreak = function(addr, fWrite) /** * removeMemBreak(addr, fWrite) * - * NOTE: removeMemBreak() could be merged with removeMemCheck(), but the new merged interface would - * have to provide one additional parameter indicating whether the Debugger or the CPU is the client. - * - * For now, this is simply a DEBUGGER-only interface. - * * @this {CPUSim} * @param {number} addr * @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint @@ -170,41 +179,6 @@ CPUSim.prototype.removeMemBreak = function(addr, fWrite) } }; -/** - * addMemCheck(addr, fWrite) - * - * These functions provide Debug register functionality to the CPU by leveraging the same Memory block-based - * breakpoint support originally created for our built-in Debugger. Only minimal changes were required to the - * Memory component, by adding additional checkMemoryException() call-outs from the "checked" Memory access - * functions. - * - * Note that those call-outs occur only AFTER our own Debugger (if present) has checked the address and has - * passed on it, because we want our own Debugger's breakpoints to take precedence over any breakpoints that - * the emulated machine may have enabled. - * - * @this {CPUSim} - * @param {number} addr - * @param {boolean} fWrite is true for a memory write check, false for a memory read check - */ -CPUSim.prototype.addMemCheck = function(addr, fWrite) -{ - var iBlock = addr >>> this.nBlockShift; - this.aBusBlocks[iBlock].addBreakpoint(addr & this.nBlockLimit, fWrite, this); -}; - -/** - * removeMemCheck(addr, fWrite) - * - * @this {CPUSim} - * @param {number} addr - * @param {boolean} fWrite is true for a memory write check, false for a memory read check - */ -CPUSim.prototype.removeMemCheck = function(addr, fWrite) -{ - var iBlock = addr >>> this.nBlockShift; - this.aBusBlocks[iBlock].removeBreakpoint(addr & this.nBlockLimit, fWrite); -}; - /** * initProcessor() * @@ -244,7 +218,7 @@ CPUSim.prototype.resetRegs = function() this.regH = 0; this.regL = 0; this.setSP(0); - this.setPC(0); + this.setPC(this.addrReset); /* * This resets the Processor Status flags (regPS), along with all the internal "result registers"; @@ -260,6 +234,18 @@ CPUSim.prototype.resetRegs = function() this.intFlags = CPUDef.INTFLAG.NONE; }; +/** + * setReset(addr) + * + * @this {CPUSim} + * @param {number} addr + */ +CPUSim.prototype.setReset = function(addr) +{ + this.addrReset = addr; + this.setPC(addr); +}; + /** * getChecksum() * @@ -336,13 +322,16 @@ CPUSim.prototype.setBinding = function(sHTMLType, sBinding, control, sValue) case "A": case "B": case "C": + case "BC": case "D": case "E": + case "DE": case "H": case "L": + case "HL": case "SP": case "PC": - case "F": + case "PS": case "SF": case "ZF": case "AF": @@ -1047,14 +1036,17 @@ CPUSim.prototype.updateStatus = function(fForce) this.updateReg("A", this.regA); this.updateReg("B", this.regB); this.updateReg("C", this.regC); + this.updateReg("BC", this.getBC(), 4); this.updateReg("D", this.regD); this.updateReg("E", this.regE); + this.updateReg("DE", this.getDE(), 4); this.updateReg("H", this.regH); this.updateReg("L", this.regL); + this.updateReg("HL", this.getHL(), 4); this.updateReg("SP", this.getSP(), 4); this.updateReg("PC", this.getPC(), 4); var regPS = this.getPS(); - this.updateReg("F", regPS, 2); + this.updateReg("PS", regPS, 4); this.updateReg("SF", (regPS & CPUDef.PS.SF), 1); this.updateReg("ZF", (regPS & CPUDef.PS.ZF), 1); this.updateReg("AF", (regPS & CPUDef.PS.AF), 1); diff --git a/modules/pc8080/lib/debugger.js b/modules/pc8080/lib/debugger.js index bbc414712..58214740e 100644 --- a/modules/pc8080/lib/debugger.js +++ b/modules/pc8080/lib/debugger.js @@ -87,7 +87,7 @@ function Debugger(parmsDbg) Component.call(this, "Debugger", parmsDbg, Debugger); - this.style = Debugger.STYLE_8086; + this.style = Debugger.STYLE_8080; /* * These keep track of instruction activity, but only when tracing or when Debugger checks @@ -300,7 +300,7 @@ if (DEBUGGER) { "CALLC", "CALLS", "CALLNC", "CALLNZ", "CALLNS", "CALLP", "CALLNP", "CALLZ", "NOT", "CMC", "CMP", "CMP", "DAA", "ADD", "DEC", "DEC", "CLI", "STI", "HLT", "IN", "INC", "INC", "JMP", "JC", - "JS", "JNC", "JNZ", "JNS", "JP", "JNP", "JZ", "LDA", + "JS", "JNC", "JNZ", "JNS", "JP", "JNP", "JZ", "MOV", "MOV", "MOV", "MOV", "MOV", "MOV", "NOP", "OR", "OR", "OUT", "JMP", "POP", "PUSH", "RCL", "RCR", "RET", "RETC", "RETS", "RETNC", "RETNZ", "RETNS", "RETP", "RETNP", "RETZ", "ROL", @@ -321,7 +321,7 @@ if (DEBUGGER) { Debugger.REG_HL = 0x0A; Debugger.REG_SP = 0x0B; Debugger.REG_PC = 0x0C; - Debugger.REG_PS = 0x0D; // aka PSW (aka AF if Z80-style) + Debugger.REG_PS = 0x0D; // aka PSW (aka AF if Z80-style mnemonics) Debugger.REGS = [ "B", "C", "D", "E", "H", "L", "M", "A", "BC", "DE", "HL", "SP", "PC", "PSW" @@ -403,15 +403,15 @@ if (DEBUGGER) { Debugger.aaOpDescs = [ /* 0x00 */ [Debugger.INS.NOP], /* 0x01 */ [Debugger.INS.LXI, Debugger.TYPE_BC, Debugger.TYPE_IMM], - /* 0x02 */ [Debugger.INS.STAX, Debugger.TYPE_BC | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], + /* 0x02 */ [Debugger.INS.STAX, Debugger.TYPE_BC | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], /* 0x03 */ [Debugger.INS.INX, Debugger.TYPE_BC], /* 0x04 */ [Debugger.INS.INR, Debugger.TYPE_B], /* 0x05 */ [Debugger.INS.DCR, Debugger.TYPE_B], /* 0x06 */ [Debugger.INS.MVI, Debugger.TYPE_B, Debugger.TYPE_IMM], /* 0x07 */ [Debugger.INS.RLC], /* 0x08 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], - /* 0x09 */ [Debugger.INS.DAD, Debugger.TYPE_HL, Debugger.TYPE_BC], // let's be more explicit about the operands - /* 0x0A */ [Debugger.INS.LDAX, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_BC | Debugger.TYPE_MEM], + /* 0x09 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_BC], + /* 0x0A */ [Debugger.INS.LDAX, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_BC | Debugger.TYPE_MEM], /* 0x0B */ [Debugger.INS.DCX, Debugger.TYPE_BC], /* 0x0C */ [Debugger.INS.INR, Debugger.TYPE_C], /* 0x0D */ [Debugger.INS.DCR, Debugger.TYPE_C], @@ -419,15 +419,15 @@ if (DEBUGGER) { /* 0x0F */ [Debugger.INS.RRC], /* 0x10 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], /* 0x11 */ [Debugger.INS.LXI, Debugger.TYPE_DE, Debugger.TYPE_IMM], - /* 0x12 */ [Debugger.INS.STAX, Debugger.TYPE_DE | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], + /* 0x12 */ [Debugger.INS.STAX, Debugger.TYPE_DE | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], /* 0x13 */ [Debugger.INS.INX, Debugger.TYPE_DE], /* 0x14 */ [Debugger.INS.INR, Debugger.TYPE_D], /* 0x15 */ [Debugger.INS.DCR, Debugger.TYPE_D], /* 0x16 */ [Debugger.INS.MVI, Debugger.TYPE_D, Debugger.TYPE_IMM], /* 0x17 */ [Debugger.INS.RAL], /* 0x18 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], - /* 0x19 */ [Debugger.INS.DAD, Debugger.TYPE_HL, Debugger.TYPE_DE], // let's be more explicit about the operands - /* 0x1A */ [Debugger.INS.LDAX, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_DE | Debugger.TYPE_MEM], + /* 0x19 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_DE], + /* 0x1A */ [Debugger.INS.LDAX, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_DE | Debugger.TYPE_MEM], /* 0x1B */ [Debugger.INS.DCX, Debugger.TYPE_DE], /* 0x1C */ [Debugger.INS.INR, Debugger.TYPE_E], /* 0x1D */ [Debugger.INS.DCR, Debugger.TYPE_E], @@ -435,14 +435,14 @@ if (DEBUGGER) { /* 0x1F */ [Debugger.INS.RAR], /* 0x20 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], /* 0x21 */ [Debugger.INS.LXI, Debugger.TYPE_HL, Debugger.TYPE_IMM], - /* 0x22 */ [Debugger.INS.SHLD, Debugger.TYPE_ADDR | Debugger.TYPE_MEM, Debugger.TYPE_HL | Debugger.TYPE_OPT], + /* 0x22 */ [Debugger.INS.SHLD, Debugger.TYPE_ADDR | Debugger.TYPE_MEM, Debugger.TYPE_HL | Debugger.TYPE_OPT], /* 0x23 */ [Debugger.INS.INX, Debugger.TYPE_HL], /* 0x24 */ [Debugger.INS.INR, Debugger.TYPE_H], /* 0x25 */ [Debugger.INS.DCR, Debugger.TYPE_H], /* 0x26 */ [Debugger.INS.MVI, Debugger.TYPE_H, Debugger.TYPE_IMM], /* 0x27 */ [Debugger.INS.DAA], /* 0x28 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], - /* 0x29 */ [Debugger.INS.DAD, Debugger.TYPE_HL, Debugger.TYPE_HL], // let's be more explicit about the operands + /* 0x29 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_HL], /* 0x2A */ [Debugger.INS.LHLD, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_ADDR | Debugger.TYPE_MEM], /* 0x2B */ [Debugger.INS.DCX, Debugger.TYPE_HL], /* 0x2C */ [Debugger.INS.INR, Debugger.TYPE_L], @@ -451,14 +451,14 @@ if (DEBUGGER) { /* 0x2F */ [Debugger.INS.CMA, Debugger.TYPE_A | Debugger.TYPE_OPT], /* 0x30 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], /* 0x31 */ [Debugger.INS.LXI, Debugger.TYPE_SP, Debugger.TYPE_IMM], - /* 0x32 */ [Debugger.INS.STA, Debugger.TYPE_ADDR | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], + /* 0x32 */ [Debugger.INS.STA, Debugger.TYPE_ADDR | Debugger.TYPE_MEM, Debugger.TYPE_A | Debugger.TYPE_OPT], /* 0x33 */ [Debugger.INS.INX, Debugger.TYPE_SP], /* 0x34 */ [Debugger.INS.INR, Debugger.TYPE_M], /* 0x35 */ [Debugger.INS.DCR, Debugger.TYPE_M], /* 0x36 */ [Debugger.INS.MVI, Debugger.TYPE_M, Debugger.TYPE_IMM], /* 0x37 */ [Debugger.INS.STC], /* 0x38 */ [Debugger.INS.NOP, Debugger.TYPE_UNDOC], - /* 0x39 */ [Debugger.INS.DAD, Debugger.TYPE_HL, Debugger.TYPE_SP], // let's be more explicit about the operands + /* 0x39 */ [Debugger.INS.DAD, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_SP], /* 0x3A */ [Debugger.INS.LDA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_ADDR | Debugger.TYPE_MEM], /* 0x3B */ [Debugger.INS.DCX, Debugger.TYPE_SP], /* 0x3C */ [Debugger.INS.INR, Debugger.TYPE_A], @@ -519,7 +519,7 @@ if (DEBUGGER) { /* 0x73 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_E], /* 0x74 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_H], /* 0x75 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_L], - /* 0x76 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_M], + /* 0x76 */ [Debugger.INS.HLT], /* 0x77 */ [Debugger.INS.MOV, Debugger.TYPE_M, Debugger.TYPE_A], /* 0x78 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_B], /* 0x79 */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_C], @@ -529,77 +529,77 @@ if (DEBUGGER) { /* 0x7D */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_L], /* 0x7E */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_M], /* 0x7F */ [Debugger.INS.MOV, Debugger.TYPE_A, Debugger.TYPE_A], - /* 0x80 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0x81 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0x82 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0x83 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0x84 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0x85 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0x86 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0x87 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0x88 */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0x89 */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0x8A */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0x8B */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0x8C */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0x8D */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0x8E */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0x8F */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0x90 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0x91 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0x92 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0x93 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0x94 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0x95 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0x96 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0x97 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0x98 */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0x99 */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0x9A */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0x9B */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0x9C */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0x9D */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0x9E */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0x9F */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0xA0 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0xA1 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0xA2 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0xA3 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0xA4 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0xA5 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0xA6 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0xA7 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0xA8 */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0xA9 */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0xAA */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0xAB */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0xAC */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0xAD */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0xAE */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0xAF */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0xB0 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0xB1 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0xB2 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0xB3 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0xB4 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0xB5 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0xB6 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0xB7 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], - /* 0xB8 */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], - /* 0xB9 */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], - /* 0xBA */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], - /* 0xBB */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], - /* 0xBC */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], - /* 0xBD */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], - /* 0xBE */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], - /* 0xBF */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0x80 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0x81 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0x82 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0x83 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0x84 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0x85 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0x86 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0x87 */ [Debugger.INS.ADD, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0x88 */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0x89 */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0x8A */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0x8B */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0x8C */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0x8D */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0x8E */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0x8F */ [Debugger.INS.ADC, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0x90 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0x91 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0x92 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0x93 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0x94 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0x95 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0x96 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0x97 */ [Debugger.INS.SUB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0x98 */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0x99 */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0x9A */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0x9B */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0x9C */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0x9D */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0x9E */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0x9F */ [Debugger.INS.SBB, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0xA0 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0xA1 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0xA2 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0xA3 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0xA4 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0xA5 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0xA6 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0xA7 */ [Debugger.INS.ANA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0xA8 */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0xA9 */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0xAA */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0xAB */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0xAC */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0xAD */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0xAE */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0xAF */ [Debugger.INS.XRA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0xB0 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0xB1 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0xB2 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0xB3 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0xB4 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0xB5 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0xB6 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0xB7 */ [Debugger.INS.ORA, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], + /* 0xB8 */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_B], + /* 0xB9 */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_C], + /* 0xBA */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_D], + /* 0xBB */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_E], + /* 0xBC */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_H], + /* 0xBD */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_L], + /* 0xBE */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_M], + /* 0xBF */ [Debugger.INS.CMP, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_A], /* 0xC0 */ [Debugger.INS.RNZ], /* 0xC1 */ [Debugger.INS.POP, Debugger.TYPE_BC], /* 0xC2 */ [Debugger.INS.JNZ, Debugger.TYPE_ADDR], /* 0xC3 */ [Debugger.INS.JMP, Debugger.TYPE_ADDR], /* 0xC4 */ [Debugger.INS.CNZ, Debugger.TYPE_ADDR], /* 0xC5 */ [Debugger.INS.PUSH, Debugger.TYPE_BC], - /* 0xC6 */ [Debugger.INS.ADI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xC6 */ [Debugger.INS.ADI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xC7 */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xC8 */ [Debugger.INS.RZ], /* 0xC9 */ [Debugger.INS.RET], @@ -607,39 +607,39 @@ if (DEBUGGER) { /* 0xCB */ [Debugger.INS.JMP, Debugger.TYPE_ADDR | Debugger.TYPE_UNDOC], /* 0xCC */ [Debugger.INS.CZ, Debugger.TYPE_ADDR], /* 0xCD */ [Debugger.INS.CALL, Debugger.TYPE_ADDR], - /* 0xCE */ [Debugger.INS.ACI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xCE */ [Debugger.INS.ACI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xCF */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xD0 */ [Debugger.INS.RNC], /* 0xD1 */ [Debugger.INS.POP, Debugger.TYPE_DE], /* 0xD2 */ [Debugger.INS.JNC, Debugger.TYPE_ADDR], - /* 0xD3 */ [Debugger.INS.OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE, Debugger.TYPE_A | Debugger.TYPE_OPT], + /* 0xD3 */ [Debugger.INS.OUT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE,Debugger.TYPE_A | Debugger.TYPE_OPT], /* 0xD4 */ [Debugger.INS.CNC, Debugger.TYPE_ADDR], /* 0xD5 */ [Debugger.INS.PUSH, Debugger.TYPE_DE], - /* 0xD6 */ [Debugger.INS.SUI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xD6 */ [Debugger.INS.SUI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xD7 */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xD8 */ [Debugger.INS.RC], /* 0xD9 */ [Debugger.INS.RET, Debugger.TYPE_UNDOC], /* 0xDA */ [Debugger.INS.JC, Debugger.TYPE_ADDR], - /* 0xDB */ [Debugger.INS.IN, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xDB */ [Debugger.INS.IN, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xDC */ [Debugger.INS.CC, Debugger.TYPE_ADDR], /* 0xDD */ [Debugger.INS.CALL, Debugger.TYPE_ADDR | Debugger.TYPE_UNDOC], - /* 0xDE */ [Debugger.INS.SBI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xDE */ [Debugger.INS.SBI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xDF */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xE0 */ [Debugger.INS.RPO], /* 0xE1 */ [Debugger.INS.POP, Debugger.TYPE_HL], /* 0xE2 */ [Debugger.INS.JPO, Debugger.TYPE_ADDR], - /* 0xE3 */ [Debugger.INS.XTHL, Debugger.TYPE_SP | Debugger.TYPE_MEM, Debugger.TYPE_HL],// let's be more explicit about the operands + /* 0xE3 */ [Debugger.INS.XTHL, Debugger.TYPE_SP | Debugger.TYPE_MEM| Debugger.TYPE_OPT, Debugger.TYPE_HL | Debugger.TYPE_OPT], /* 0xE4 */ [Debugger.INS.CPO, Debugger.TYPE_ADDR], /* 0xE5 */ [Debugger.INS.PUSH, Debugger.TYPE_HL], - /* 0xE6 */ [Debugger.INS.ANI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xE6 */ [Debugger.INS.ANI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xE7 */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xE8 */ [Debugger.INS.RPE], /* 0xE9 */ [Debugger.INS.PCHL, Debugger.TYPE_HL], /* 0xEA */ [Debugger.INS.JPE, Debugger.TYPE_ADDR], - /* 0xEB */ [Debugger.INS.XCHG, Debugger.TYPE_HL, Debugger.TYPE_DE], // let's be more explicit about the operands + /* 0xEB */ [Debugger.INS.XCHG, Debugger.TYPE_HL | Debugger.TYPE_OPT, Debugger.TYPE_DE | Debugger.TYPE_OPT], /* 0xEC */ [Debugger.INS.CPE, Debugger.TYPE_ADDR], /* 0xED */ [Debugger.INS.CALL, Debugger.TYPE_ADDR | Debugger.TYPE_UNDOC], - /* 0xEE */ [Debugger.INS.XRI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xEE */ [Debugger.INS.XRI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xEF */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xF0 */ [Debugger.INS.RP], /* 0xF1 */ [Debugger.INS.POP, Debugger.TYPE_PS], @@ -647,15 +647,15 @@ if (DEBUGGER) { /* 0xF3 */ [Debugger.INS.DI], /* 0xF4 */ [Debugger.INS.CP, Debugger.TYPE_ADDR], /* 0xF5 */ [Debugger.INS.PUSH, Debugger.TYPE_PS], - /* 0xF6 */ [Debugger.INS.ORI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xF6 */ [Debugger.INS.ORI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xF7 */ [Debugger.INS.RST, Debugger.TYPE_INT], /* 0xF8 */ [Debugger.INS.RM], - /* 0xF9 */ [Debugger.INS.SPHL, Debugger.TYPE_SP, Debugger.TYPE_HL], // let's be more explicit about the operands + /* 0xF9 */ [Debugger.INS.SPHL, Debugger.TYPE_SP | Debugger.TYPE_OPT, Debugger.TYPE_HL | Debugger.TYPE_OPT], /* 0xFA */ [Debugger.INS.JM, Debugger.TYPE_ADDR], /* 0xFB */ [Debugger.INS.EI], /* 0xFC */ [Debugger.INS.CM, Debugger.TYPE_ADDR], /* 0xFD */ [Debugger.INS.CALL, Debugger.TYPE_ADDR | Debugger.TYPE_UNDOC], - /* 0xFE */ [Debugger.INS.CPI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], + /* 0xFE */ [Debugger.INS.CPI, Debugger.TYPE_A | Debugger.TYPE_OPT, Debugger.TYPE_IMM | Debugger.TYPE_BYTE], /* 0xFF */ [Debugger.INS.RST, Debugger.TYPE_INT] ]; @@ -2651,7 +2651,6 @@ if (DEBUGGER) { this.getRegOutput(Debugger.REG_DE) + this.getRegOutput(Debugger.REG_HL) + this.getRegOutput(Debugger.REG_SP) + - this.getRegOutput(Debugger.REG_PS) + this.getFlagOutput('I') + this.getFlagOutput('S') + this.getFlagOutput('Z') + this.getFlagOutput('A') + this.getFlagOutput('P') + this.getFlagOutput('C'); return s; diff --git a/modules/pc8080/lib/rom.js b/modules/pc8080/lib/rom.js index b0a63b237..9cd7584a7 100644 --- a/modules/pc8080/lib/rom.js +++ b/modules/pc8080/lib/rom.js @@ -38,6 +38,7 @@ if (NODE) { var DumpAPI = require("../../shared/lib/dumpapi"); var Component = require("../../shared/lib/component"); var Memory = require("./memory"); + var CPUDef = require("./cpudef"); } /** @@ -49,7 +50,7 @@ if (NODE) { * size: amount of ROM, in bytes * alias: physical alias address (null if none) * file: name of ROM data file - * notify: ID of a component to notify once the ROM is in place (optional) + * writable: true to make ROM writable (default is false) * * NOTE: The ROM data will not be copied into place until the Bus is ready (see initBus()) AND the * ROM data file has finished loading (see doneLoad()). @@ -57,6 +58,10 @@ if (NODE) { * Also, while the size parameter may seem redundant, I consider it useful to confirm that the ROM you received * is the ROM you expected. * + * Finally, while making ROM "writable" may seem a contradiction in terms, I want to be able to load selected + * CP/M binary files into memory purely for testing purposes, and the RAM component has no "file" option, so the + * simplest solution was to add the option to load binary files into memory as "writable ROMs". + * * @constructor * @extends Component * @param {Object} parmsROM @@ -68,6 +73,7 @@ function ROM(parmsROM) this.abROM = null; this.addrROM = parmsROM['addr']; this.sizeROM = parmsROM['size']; + this.fWritable = parmsROM['writable']; /* * The new 'alias' property can now be EITHER a single physical address (like 'addr') OR an array of @@ -106,6 +112,8 @@ function ROM(parmsROM) Component.subclass(ROM); +ROM.FAKECPM_VECTORS = [0x0000, 0x0005]; + /* * NOTE: There's currently no need for this component to have a reset() function, since * once the ROM data is loaded, it can't be changed, so there's nothing to reinitialize. @@ -268,6 +276,12 @@ ROM.prototype.copyROM = function() this.setReady(); } else if (this.abROM && this.bus) { + /* + * If no explicit size was specified, then use whatever the actual size is. + */ + if (!this.sizeROM) { + this.sizeROM = this.abROM.length; + } if (this.abROM.length != this.sizeROM) { /* * Note that setError() sets the component's fError flag, which in turn prevents setReady() from @@ -314,11 +328,28 @@ ROM.prototype.copyROM = function() */ ROM.prototype.addROM = function(addr) { - if (this.bus.addMemory(addr, this.sizeROM, Memory.TYPE.ROM)) { + if (this.bus.addMemory(addr, this.sizeROM, this.fWritable? Memory.TYPE.RAM : Memory.TYPE.ROM)) { if (DEBUG) this.log("addROM(): copying ROM to " + str.toHexLong(addr) + " (" + str.toHexLong(this.abROM.length) + " bytes)"); - var bto = null; - for (var off = 0; off < this.abROM.length; off++) { - this.bus.setByteDirect(addr + off, this.abROM[off]); + var i; + for (i = 0; i < this.abROM.length; i++) { + this.bus.setByteDirect(addr + i, this.abROM[i]); + } + if (this.fWritable && addr == 0x100) { + /* + * Here's where we enable our "Fake CP/M" support, triggered by the user loading a "writable ROM" image + * at offset 0x100. Fake CP/M support works by installing HLT opcodes at well-known hard-coded CP/M offsets + * (namely, 0x0000, which is the CP/M reset vector, and 0x0005, which is the CP/M system call vector) and + * then telling the CPU to call us whenever a HLT occurs, so we can check PC for one of these vectors. + */ + for (i = 0; i < ROM.FAKECPM_VECTORS.length; i++) { + this.bus.setByteDirect(ROM.FAKECPM_VECTORS[i], CPUDef.OPCODE.HLT); + } + + this.cpu.addHaltCheck(function(rom) { + return function(addr) {rom.checkHalt(addr)}; + }(this)); + + this.cpu.setReset(addr); } return true; } @@ -328,6 +359,24 @@ ROM.prototype.addROM = function(addr) return false; }; +/** + * checkHalt(addr) + * + * @this {ROM} + * @param {number} addr (of the HLT opcode) + * @return {boolean} true if special processing performed, false if not + */ +ROM.prototype.checkHalt = function(addr) +{ + if (this.dbg) { + this.println("CP/M vector " + str.toHexWord(addr)); + this.cpu.setPC(addr); // this is purely for the Debugger's benefit, to show the HLT + this.dbg.stopCPU(); + return true; + } + return false; +}; + /** * cloneROM(addr) * diff --git a/modules/pcjs/lib/bus.js b/modules/pcjs/lib/bus.js index 6e73d486d..697447700 100644 --- a/modules/pcjs/lib/bus.js +++ b/modules/pcjs/lib/bus.js @@ -78,7 +78,7 @@ function Bus(parmsBus, cpu, dbg) this.cpu = cpu; this.dbg = dbg; - this.nBusWidth = parmsBus['buswidth'] || 20; + this.nBusWidth = parmsBus['busWidth'] || 20; /* * Compute all Bus memory block parameters, based on the width of the bus. @@ -93,8 +93,8 @@ function Bus(parmsBus, cpu, dbg) * * iBlock & this.nBlockMask * - * Similarly, we mask addresses with busMask to enforce "A20 wrap" on 20-bit busses. - * For larger busses, A20 wrap can be simulated by either clearing bit 20 of busMask or by + * Similarly, we mask addresses with busMask to enforce "A20 wrap" on 20-bit buses. + * For larger buses, A20 wrap can be simulated by either clearing bit 20 of busMask or by * changing all the block entries for the 2nd megabyte to match those in the 1st megabyte. * * Bus Property Old hard-coded values (when nBusWidth was always 20) @@ -354,16 +354,16 @@ Bus.prototype.powerUp = function(data, fRepower) * allocations, etc. * * We've relaxed some of the original requirements (ie, that addresses must start at a - * block-granular address, or that sizes must be equal to exactly one or more blocks), because - * machines with large block sizes can make it impossible to load certain ROMs at at their - * required addresses. + * block-granular address, or that sizes must be equal to exactly one or more blocks), + * because machines with large block sizes can make it impossible to load certain ROMs at + * their required addresses. Every allocation still allocates a whole number of blocks. * * Even so, Bus memory management does NOT provide a general-purpose heap. Most memory - * allocations occur during machine initialization and never change. The only notable - * exception is the Video frame buffer, which ranges from 4Kb (MDA) to 16Kb (CGA) to - * 32Kb/64Kb/128Kb (EGA), and only the EGA changes its buffer address post-initialization. + * allocations occur during machine initialization and never change. In particular, there + * is NO support for removing partial-block allocations. Typically, the only region that + * changes post-initialization is the Video buffer, and only in the EGA/VGA implementation. * - * Each Memory block keeps track of a single address (addr) and length (used), indicating + * Each Memory block keeps track of a start address (addr) and length (used), indicating * the used space within the block; any free space that precedes or follows that used space * can be allocated later, by simply extending the beginning or ending of the previously used * space. However, any holes that might have existed between the original allocation and an @@ -380,17 +380,18 @@ Bus.prototype.addMemory = function(addr, size, type, controller) { var iBlock = addr >>> this.nBlockShift; while (size > 0 && iBlock < this.aMemBlocks.length) { + var block = this.aMemBlocks[iBlock]; var addrBlock = iBlock * this.nBlockSize; - var sizeBlock = size > this.nBlockSize? this.nBlockSize : size; + var sizeBlock = this.nBlockSize - (addr - addrBlock); + if (sizeBlock > size) sizeBlock = size; if (block && block.size) { if (block.type == type && block.controller == controller) { /* - * Where there is already a block with a non-zero size, we can allow the allocation only if: + * Where there is already a similar block with a non-zero size, we allow the allocation only if: * - * 1) addr + size <= block.addr (the request precedes the used portion of the current block) - * or: + * 1) addr + size <= block.addr (the request precedes the used portion of the current block), or * 2) addr >= block.addr + block.used (the request follows the used portion of the current block) */ if (addr + size <= block.addr) { @@ -402,17 +403,19 @@ Bus.prototype.addMemory = function(addr, size, type, controller) var sizeAvail = block.size - (addr - addrBlock); if (sizeAvail > size) sizeAvail = size; block.used = addr - block.addr + sizeAvail; - size -= sizeAvail; addr = addrBlock + this.nBlockSize; + size -= sizeAvail; + iBlock++; continue; } } return this.reportError(Bus.ERROR.ADD_MEM_INUSE, addr, size); } - var blockOld = this.aMemBlocks[iBlock]; + var blockNew = new Memory(addr, sizeBlock, this.nBlockSize, type, controller); - blockNew.copyBreakpoints(this.dbg, blockOld); + blockNew.copyBreakpoints(this.dbg, block); this.aMemBlocks[iBlock++] = blockNew; + addr = addrBlock + this.nBlockSize; size -= sizeBlock; } diff --git a/modules/pcjs/lib/computer.js b/modules/pcjs/lib/computer.js index 3240ab469..495f1f6d2 100644 --- a/modules/pcjs/lib/computer.js +++ b/modules/pcjs/lib/computer.js @@ -195,7 +195,7 @@ function Computer(parmsComputer, parmsMachine, fSuspended) { /* * Initialize the Bus component */ - this.bus = new Bus({'id': this.idMachine + '.bus', 'buswidth': this.nBusWidth}, this.cpu, this.dbg); + this.bus = new Bus({'id': this.idMachine + '.bus', 'busWidth': this.nBusWidth}, this.cpu, this.dbg); /* * Iterate through all the components and connect them to the Control Panel, if any diff --git a/modules/pcjs/lib/rom.js b/modules/pcjs/lib/rom.js index a8e5120c5..f38721d07 100644 --- a/modules/pcjs/lib/rom.js +++ b/modules/pcjs/lib/rom.js @@ -305,6 +305,12 @@ ROM.prototype.copyROM = function() this.setReady(); } else if (this.abROM && this.bus) { + /* + * If no explicit size was specified, then use whatever the actual size is. + */ + if (!this.sizeROM) { + this.sizeROM = this.abROM.length; + } if (this.abROM.length != this.sizeROM) { /* * Note that setError() sets the component's fError flag, which in turn prevents setReady() from diff --git a/modules/shared/templates/components.xsl b/modules/shared/templates/components.xsl index e9ef7b65f..200f1911d 100644 --- a/modules/shared/templates/components.xsl +++ b/modules/shared/templates/components.xsl @@ -903,10 +903,16 @@ + + + + false + + rom - ,addr:,size:,alias:,file:'',notify:'' + ,addr:,size:,alias:,file:'',notify:'',writable: @@ -1141,7 +1147,7 @@ - 20 + 0 diff --git a/versions/pc8080/1.21.7/components.xsl b/versions/pc8080/1.21.7/components.xsl index 1e8f6eefe..5369d79d6 100644 --- a/versions/pc8080/1.21.7/components.xsl +++ b/versions/pc8080/1.21.7/components.xsl @@ -901,10 +901,16 @@ + + + + false + + rom - ,addr:,size:,alias:,file:'',notify:'' + ,addr:,size:,alias:,file:'',notify:'',writable: @@ -1139,7 +1145,7 @@ - 20 + 0 diff --git a/versions/pc8080/1.21.7/pc8080-dbg.js b/versions/pc8080/1.21.7/pc8080-dbg.js index ba22c622c..e93d35c11 100644 --- a/versions/pc8080/1.21.7/pc8080-dbg.js +++ b/versions/pc8080/1.21.7/pc8080-dbg.js @@ -5,196 +5,196 @@ function ia(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){retur function la(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c=this.U?12:24>=this.U?14:15;this.ja=1<>2;this.u=this.ja-1;this.T=this.Z/this.ja|0;this.X=this.T-1;this.A=[];this.F=[];this.I=this.J=!1;this.ca=[];this.fa=[];a=new F;sb(a,this.D);this.C=Array(this.T);for(b=0;b>>a.Y;0a.ja?a.ja:c;if(f&&f.size){if(f.type==d){if(b+c<=f.B)return f.lb+=f.B-b,f.B=b,!0;if(b>=f.B+f.lb){g=f.size-(b-h);g>c&&(g=c);f.lb=b-f.B+g;c-=g;b=h+a.ja;continue}}return ub(1,b,c)}f=a.C[e];b=new F(b,g,a.ja,d);sb(b,a.D,f);a.C[e++]=b;b=h+a.ja;c-=g}return 0>=c?!0:ub(2,b,c)} -rb.prototype.V=function(a){return this.C[(a&this.H)>>>this.Y].Ka(a&this.u,a)};function vb(a,b){return a.C[(b&a.H)>>>a.Y].jb(b&a.u,b)}function wb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]} -function xb(a,b){for(var c=1,d=0,e=0;0>>=e)&g;if(void 0!==f){if(f[0])f[0](b,g,void 0);a.D&&a.J!=f[1]&&Ib(a.D,b,g)}else a.D&&(gb(a.D,a,b,g,void 0),a.J&&Ib(a.D,b,g));e+=h<<3;b+=h;d-=h}}function ub(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Jb;if(mb){var Kb=new ArrayBuffer(2);(new DataView(Kb)).setUint16(0,256,!0);Jb=256===(new Uint16Array(Kb))[0]}else Jb=!1;var Lb=Jb; -function F(a,b,c,d){this.id=Mb+=2;this.b=null;this.B=a;this.lb=b;this.size=c||0;this.type=d||Nb;this.u=d==Ob;sb(this);this.za=this.Yb=!1;if(c)if(mb)this.H=new ArrayBuffer(c),this.I=new DataView(this.H,0,c),this.C=new Uint8Array(this.H,0,c),this.T=new Uint16Array(this.H,0,c>>1),this.b=new Int32Array(this.H,0,c>>2),Pb(this,Lb?Qb:Rb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},fa:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ca:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.za=!0},aa:function(a,b){if(this.D&&null!=this.B){var c=this.D;Xb(c,this.B+a,1,c.ca)&&c.ea(!0)}return this.jb(a,b)},pa:function(a,b){if(this.D&&null!=this.B){var c=this.D;Xb(c,this.B+a,2,c.ca)&&c.ea(!0)}return this.yb(a,b)},ya:function(a,b,c){if(this.D&&null!=this.B){var d=this.D;Xb(d,this.B+a,1,d.I)&&d.ea(!0)}this.u?this.F(a,b,c):this.$a(a,b,c)},Ma:function(a, -b,c){if(this.D&&null!=this.B){var d=this.D;Xb(d,this.B+a,2,d.I)&&d.ea(!0)}this.u?this.F(a,b,c):this.zb(a,b,c)},Z:function(a){return this.C[a]},ca:function(a){return this.C[a]},oa:function(a){return this.I.getUint16(a,!0)},ra:function(a){return a&1?this.C[a]|this.C[a+1]<<8:this.T[a>>1]},ta:function(a,b){this.C[a]=b;this.za=!0},Ba:function(a,b){this.C[a]=b;this.za=!0},Da:function(a,b){this.I.setUint16(a,b,!0);this.za=!0},ab:function(a,b){a&1?(this.C[a]=b,this.C[a+1]=b>>8):this.T[a>>1]=b;this.za=!0}}; -function sb(a,b,c){a.D=b;a.S=a.A=0;c&&((a.S=c.S)&&Wb(a,Vb,!1),(a.A=c.A)&&Ub(a,Vb,!1))}function Yb(a,b){b?0===--a.A&&(a.Za=a.u?a.F:a.$a,a.Tb=a.u?a.J:a.zb):0===--a.S&&(a.Ka=a.jb,a.Rb=a.yb)}function Ub(a,b,c){c&&a.A||(a.Za=!a.u&&b[2]||a.F,a.Tb=!a.u&&b[3]||a.J);if(c||void 0===c)a.$a=b[2]||a.F,a.zb=b[3]||a.J}function Wb(a,b,c){c&&a.S||(a.Ka=b[0]||a.U,a.Rb=b[1]||a.X);if(c||void 0===c)a.jb=b[0]||a.U,a.yb=b[1]||a.X}function Pb(a,b){b||(b=Zb);Wb(a,b,void 0);Ub(a,b,void 0)} -var Zb=[],Sb=[F.prototype.fa,F.prototype.sa,F.prototype.Ca,F.prototype.bb],Vb=[F.prototype.aa,F.prototype.pa,F.prototype.ya,F.prototype.Ma];if(mb)var Rb=[F.prototype.Z,F.prototype.oa,F.prototype.ta,F.prototype.Da],Qb=[F.prototype.ca,F.prototype.ra,F.prototype.Ba,F.prototype.ab]; -function $b(a,b){u.call(this,"CPU",a,$b,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Xa=c;this.i.qb=0;this.i.Ja=d;this.i.vb=Math.round(this.i.Xa/1E4)/100;this.i.Ha=this.i.vb*this.i.Ja;this.w.ia=!1;this.w.ub=!1;this.w.Ib=a.autoStart;this.w.Jb=!1;this.w.Oa=!1;this.i.cb=this.i.Ua=0;this.i.eb=a.csStart;this.i.Ta=a.csInterval;this.i.Va=a.csStop;this.fa=this.La.bind(this);E(this)}x($b);var ac=["power","reset"];m=$b.prototype; -m.Aa=function(a,b,c,d){this.u=a;this.C=b;this.D=d;for(b=0;b=a.i.Ua&&(a.i.Ua+=a.i.Ta,c=!0);0<=a.i.Va&&a.i.Va<=qc(a)&&(a.i.Ta=a.i.Va=-1,mc(a),a.ea(),c=!0);c&&a.g(qc(a)+" cycles: checksum="+q(a.i.cb))}} -m.na=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.S[b]=c;a=!0;break;case "run":this.S[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.w.ha)a=!0;else{var b=null,c,g=Ya(a.id);for(c=0;cc&&(c=2);var d=1;b&&1a.i.Ga/a.i.Ha?b=1:d=!0;a.i.Ja=b;b=a.i.vb*a.i.Ja;if(a.i.Ha!=b){a.i.Ha=b;b=a.i.Ha.toFixed(2)+"Mhz";var e=a.S.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.kb()}sc(a,a.I);a.I=0;a.i.Sa=ja();a.i.Ia=0;tc(a);return d} -m.La=function(a){if(ib(this,!0)){if(!this.w.ia){rc(this);this.u&&this.u.start(this.i.Sa,qc(this));this.w.ia=!0;this.w.ub=!0;this.U&&this.U.mc();var b=this.S.run;b&&(b.textContent="Halt");this.u&&(this.u.qa(!0),a&&this.u.kb(!0))}this.i.xb>=this.i.Xa&&tc(this,!0);this.i.hb=0;this.i.pb=ja();this.i.Ia&&(a=this.i.pb-this.i.Ia,a>this.i.Nb&&(this.i.Sa+=a,this.i.Sa>this.i.pb&&(this.i.Sa=this.i.pb)));try{do{var c=this.w.Oa?1:this.i.hc;try{this.Ya(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.F-this.b; -this.I+=d;this.i.hb+=d;sc(this,0,!0);pc(this,d);this.i.gb-=d;0>=this.i.gb&&(this.i.gb+=this.i.Pb,this.u&&uc(this.u,this.i.qb++),this.i.qb>this.ya&&(this.i.qb=0));this.i.fb-=d;0>=this.i.fb&&(this.i.fb+=this.i.Ob,this.u&&this.u.qa());this.i.Wa-=d;if(0>=this.i.Wa){this.i.Wa+=this.i.wb;break}}while(this.w.ia)}catch(e){this.ea();G(this);this.u&&this.u.stop(ja(),qc(this));ib(this,!1);lb(this,e.stack||e.message);return}c=setTimeout;d=this.fa;this.i.Ia=ja();a=this.i.Nb;this.i.hb&&(a=Math.round(a*this.i.hb/ -this.i.wb));a-=this.i.Ia-this.i.pb;if(b=this.i.Ia-this.i.Sa)this.i.Ga=Math.round(this.I/(10*b))/100,864E5<=b&&(this.J=0,rc(this));if(0>a||this.i.Ga>8&255;a.O=b&255}function Cc(a){return a.M<<8|a.P}function Dc(a,b){a.M=b>>8&255;a.P=b&255}function L(a){return a.N<<8|a.R}function M(a,b){a.N=b>>8&255;a.R=b&255} -function H(a,b){a.K=b&65535}function Ec(a){return a.G&256?1:0}function Fc(a){return nb[a.W&255]?4:0}function Gc(a){return(a.W^a.da)&16?16:0}function Hc(a){return a.G&255?0:64}function Ic(a){return a.W&128?128:0}function zc(a){return a.ma&-214|Ic(a)|Hc(a)|Gc(a)|Fc(a)|Ec(a)}function yc(a,b){a.G=a.W=a.da=0;b&1&&(a.G|=256);b&4||(a.W|=1);b&16&&(a.da|=16);b&64||(a.G|=255);b&128&&(a.W^=192);a.ma=a.ma&-513|b&512|2}function Jc(a,b){a.da=a.j^b;return(a.G=a.W=a.j+b)&255} -function Kc(a,b){a.da=a.j^b;return(a.G=a.W=a.j+b+(a.G&256?1:0))&255}function Lc(a,b){return a.G=a.W=a.da=a.j&b}function Mc(a,b){a.da=a.j^b;a.G=a.W=a.j-b}function fd(a,b){a.da=b;b=(a.W=b-1)&255;a.G=a.G&-256|b;return b}function gd(a,b){a.da=b;b=(a.W=b+1)&255;a.G=a.G&-256|b;return b}function hd(a,b){return a.G=a.W=a.da=a.j|b}function id(a,b){a.da=a.j^b;return(a.G=a.W=a.j-b)&255}function jd(a,b){a.da=a.j^b;return(a.G=a.W=a.j-b-(a.G&256?1:0))&255}function kd(a,b){return a.G=a.W=a.da=a.j^b} -m.V=function(a){return this.ka[(a&this.T)>>>this.Y].Ka(a&this.H,a)};function ld(a,b){var c=b&a.H,d=(b&a.T)>>>a.Y;if(c>>a.Y].Za(b&a.H,c&255,b)}function md(a,b,c){var d=b&a.H,e=(b&a.T)>>>a.Y;d>8&255,b+1))}function O(a){var b=a.V(a.K);H(a,a.K+1);return b}function P(a){var b=ld(a,a.K);H(a,a.K+2);return b} -function R(a){var b=ld(a,a.ba);a.ba=a.ba+2&65535;return b}function S(a,b){a.ba=a.ba-2&65535;md(a,a.ba,b)}function T(a,b,c,d){d=d||2;a.S[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.w.ia||a.w.Jb?q(c,d):"--------".substr(0,d),a.S[b].textContent!=c&&(a.S[b].textContent=c))} -m.qa=function(a){this.ca&&(a||!this.w.ia||this.w.Jb)&&(T(this,"A",this.j),T(this,"B",this.L),T(this,"C",this.O),T(this,"D",this.M),T(this,"E",this.P),T(this,"H",this.N),T(this,"L",this.R),T(this,"SP",this.ba,4),T(this,"PC",this.K,4),a=zc(this),T(this,"F",a,2),T(this,"SF",a&128,1),T(this,"ZF",a&64,1),T(this,"AF",a&16,1),T(this,"PF",a&4,1),T(this,"CF",a&1,1));if(a=this.S.speed)a.textContent=this.w.ia&&this.i.Ga?this.i.Ga.toFixed(2)+"Mhz":"Stopped"}; -m.Ya=function(a){this.w.nb=!0;var b=this.w.Xb=this.D&&nd(this.D),c=a?this.w.ub?0:1:-1;this.w.ub=!1;this.F=this.b=a;do{if(this.A){var d;this.A&8&&this.ma&512?(d=199|(this.A&7)<<3,this.A&=-16,this.ma&=-513,this.aa[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.A&16){this.b=0;break}}if(b){if(od(this.D,this.K,c)){this.ea();break}c=1}this.aa[O(this)].call(this)}while(0>8;this.G=this.G&255|a&256;this.b-=4},pd,function(){var a;M(this,a=L(this)+Ac(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Ac(this));this.b-=7},function(){Bc(this,Ac(this)- -1);this.b-=5},function(){this.O=gd(this,this.O);this.b-=5},function(){this.O=fd(this,this.O);this.b-=5},function(){this.O=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.G=this.G&255|a;this.b-=4},pd,function(){Dc(this,P(this));this.b-=10},function(){N(this,Cc(this),this.j);this.b-=7},function(){Dc(this,Cc(this)+1);this.b-=5},function(){this.M=gd(this,this.M);this.b-=5},function(){this.M=fd(this,this.M);this.b-=5},function(){this.M=O(this);this.b-=7},function(){var a=this.j<< -1;this.j=a&255|this.G>>8;this.G=this.G&255|a&256;this.b-=4},pd,function(){var a;M(this,a=L(this)+Cc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Cc(this));this.b-=7},function(){Dc(this,Cc(this)-1);this.b-=5},function(){this.P=gd(this,this.P);this.b-=5},function(){this.P=fd(this,this.P);this.b-=5},function(){this.P=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.G&256|this.j)>>1;this.G=this.G&255|a;this.b-=4},pd,function(){M(this,P(this));this.b-=10},function(){md(this, -P(this),L(this));this.b-=16},function(){M(this,L(this)+1);this.b-=5},function(){this.N=gd(this,this.N);this.b-=5},function(){this.N=fd(this,this.N);this.b-=5},function(){this.N=O(this);this.b-=7},function(){var a=this.j,b=!!Ec(this),c=!!Gc(this);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.G=this.W=this.j=a&255;this.G=b?this.G|256:this.G&-257;this.da=c?~this.W&16|this.da&-17:this.W&16|this.da&-17;this.b-=4},pd,function(){var a;M(this,a=L(this)+L(this));this.G=this.G&255|a>>8&256; -this.b-=10},function(){M(this,ld(this,P(this)));this.b-=16},function(){M(this,L(this)-1);this.b-=5},function(){this.R=gd(this,this.R);this.b-=5},function(){this.R=fd(this,this.R);this.b-=5},function(){this.R=O(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},pd,function(){this.ba=P(this)&65535;this.b-=10},function(){N(this,P(this),this.j);this.b-=13},function(){this.ba=this.ba+1&65535;this.b-=5},function(){var a=L(this);N(this,a,gd(this,this.V(a)));this.b-=10},function(){var a=L(this);N(this, -a,fd(this,this.V(a)));this.b-=10},function(){N(this,L(this),O(this));this.b-=10},function(){this.G|=256;this.b-=4},pd,function(){var a;this.ba=(a=L(this)+this.ba)&65535;this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(P(this));this.b-=13},function(){this.ba=this.ba-1&65535;this.b-=5},function(){this.j=gd(this,this.j);this.b-=5},function(){this.j=fd(this,this.j);this.b-=5},function(){this.j=O(this);this.b-=7},function(){this.G=Ec(this)?this.G&-257:this.G|256;this.b-=4},function(){this.b-= -5},function(){this.L=this.O;this.b-=5},function(){this.L=this.M;this.b-=5},function(){this.L=this.P;this.b-=5},function(){this.L=this.N;this.b-=5},function(){this.L=this.R;this.b-=5},function(){this.L=this.V(L(this));this.b-=7},function(){this.L=this.j;this.b-=5},function(){this.O=this.L;this.b-=5},function(){this.b-=5},function(){this.O=this.M;this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.V(L(this));this.b-= -7},function(){this.O=this.j;this.b-=5},function(){this.M=this.L;this.b-=5},function(){this.M=this.O;this.b-=5},function(){this.b-=5},function(){this.M=this.P;this.b-=5},function(){this.M=this.N;this.b-=5},function(){this.M=this.R;this.b-=5},function(){this.M=this.V(L(this));this.b-=7},function(){this.M=this.j;this.b-=5},function(){this.P=this.L;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.P=this.M;this.b-=5},function(){this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P= -this.R;this.b-=5},function(){this.P=this.V(L(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.N=this.L;this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.M;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.V(L(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.R=this.L;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.M;this.b-=5},function(){this.R= -this.P;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.b-=5},function(){this.R=this.V(L(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){N(this,L(this),this.L);this.b-=7},function(){N(this,L(this),this.O);this.b-=7},function(){N(this,L(this),this.M);this.b-=7},function(){N(this,L(this),this.P);this.b-=7},function(){N(this,L(this),this.N);this.b-=7},function(){N(this,L(this),this.R);this.b-=7},function(){this.A|=16;this.b-=7;this.D&&hb(this,-2147483648)?(H(this,this.K- -1),this.D.ea()):this.ma&512||(this.D&&H(this,this.K-1),this.ea())},function(){N(this,L(this),this.j);this.b-=7},function(){this.j=this.L;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.M;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.N;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.V(L(this));this.b-=7},function(){this.b-=5},function(){this.j=Jc(this,this.L);this.b-=4},function(){this.j=Jc(this,this.O);this.b-=4},function(){this.j= -Jc(this,this.M);this.b-=4},function(){this.j=Jc(this,this.P);this.b-=4},function(){this.j=Jc(this,this.N);this.b-=4},function(){this.j=Jc(this,this.R);this.b-=4},function(){this.j=Jc(this,this.V(L(this)));this.b-=7},function(){this.j=Jc(this,this.j);this.b-=4},function(){this.j=Kc(this,this.L);this.b-=4},function(){this.j=Kc(this,this.O);this.b-=4},function(){this.j=Kc(this,this.M);this.b-=4},function(){this.j=Kc(this,this.P);this.b-=4},function(){this.j=Kc(this,this.N);this.b-=4},function(){this.j= -Kc(this,this.R);this.b-=4},function(){this.j=Kc(this,this.V(L(this)));this.b-=7},function(){this.j=Kc(this,this.j);this.b-=4},function(){this.j=id(this,this.L);this.b-=4},function(){this.j=id(this,this.O);this.b-=4},function(){this.j=id(this,this.M);this.b-=4},function(){this.j=id(this,this.P);this.b-=4},function(){this.j=id(this,this.N);this.b-=4},function(){this.j=id(this,this.R);this.b-=4},function(){this.j=id(this,this.V(L(this)));this.b-=7},function(){this.j=id(this,this.j);this.b-=4},function(){this.j= -jd(this,this.L);this.b-=4},function(){this.j=jd(this,this.O);this.b-=4},function(){this.j=jd(this,this.M);this.b-=4},function(){this.j=jd(this,this.P);this.b-=4},function(){this.j=jd(this,this.N);this.b-=4},function(){this.j=jd(this,this.R);this.b-=4},function(){this.j=jd(this,this.V(L(this)));this.b-=7},function(){this.j=jd(this,this.j);this.b-=4},function(){this.j=Lc(this,this.L);this.b-=4},function(){this.j=Lc(this,this.O);this.b-=4},function(){this.j=Lc(this,this.M);this.b-=4},function(){this.j= -Lc(this,this.P);this.b-=4},function(){this.j=Lc(this,this.N);this.b-=4},function(){this.j=Lc(this,this.R);this.b-=4},function(){this.j=Lc(this,this.V(L(this)));this.b-=7},function(){this.j=Lc(this,this.j);this.b-=4},function(){this.j=kd(this,this.L);this.b-=4},function(){this.j=kd(this,this.O);this.b-=4},function(){this.j=kd(this,this.M);this.b-=4},function(){this.j=kd(this,this.P);this.b-=4},function(){this.j=kd(this,this.N);this.b-=4},function(){this.j=kd(this,this.R);this.b-=4},function(){this.j= -kd(this,this.V(L(this)));this.b-=7},function(){this.j=kd(this,this.j);this.b-=4},function(){this.j=hd(this,this.L);this.b-=4},function(){this.j=hd(this,this.O);this.b-=4},function(){this.j=hd(this,this.M);this.b-=4},function(){this.j=hd(this,this.P);this.b-=4},function(){this.j=hd(this,this.N);this.b-=4},function(){this.j=hd(this,this.R);this.b-=4},function(){this.j=hd(this,this.V(L(this)));this.b-=7},function(){this.j=hd(this,this.j);this.b-=4},function(){Mc(this,this.L);this.b-=4},function(){Mc(this, -this.O);this.b-=4},function(){Mc(this,this.M);this.b-=4},function(){Mc(this,this.P);this.b-=4},function(){Mc(this,this.N);this.b-=4},function(){Mc(this,this.R);this.b-=4},function(){Mc(this,this.V(L(this)));this.b-=7},function(){Mc(this,this.j);this.b-=4},function(){Hc(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){Bc(this,R(this));this.b-=10},function(){var a=P(this);Hc(this)||H(this,a);this.b-=10},qd,function(){var a=P(this);Hc(this)||(S(this,this.K),H(this,a),this.b-=6);this.b-=11},function(){S(this, -Ac(this));this.b-=11},function(){this.j=Jc(this,O(this));this.b-=7},function(){S(this,this.K);H(this,0);this.b-=11},function(){Hc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},rd,function(){var a=P(this);Hc(this)&&H(this,a);this.b-=10},qd,function(){var a=P(this);Hc(this)&&(S(this,this.K),H(this,a),this.b-=6);this.b-=11},sd,function(){this.j=Kc(this,O(this));this.b-=7},function(){S(this,this.K);H(this,8);this.b-=11},function(){Ec(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){Dc(this,R(this)); -this.b-=10},function(){var a=P(this);Ec(this)||H(this,a);this.b-=10},function(){var a=O(this);Hb(this.C,a,this.j);this.b-=10},function(){var a=P(this);Ec(this)||(S(this,this.K),H(this,a),this.b-=6);this.b-=11},function(){S(this,Cc(this));this.b-=11},function(){this.j=id(this,O(this));this.b-=7},function(){S(this,this.K);H(this,16);this.b-=11},function(){Ec(this)&&(H(this,R(this)),this.b-=6);this.b-=5},rd,function(){var a=P(this);Ec(this)&&H(this,a);this.b-=10},function(){var a=O(this);this.j=xb(this.C, -a)&255;this.b-=10},function(){var a=P(this);Ec(this)&&(S(this,this.K),H(this,a),this.b-=6);this.b-=11},sd,function(){this.j=jd(this,O(this));this.b-=7},function(){S(this,this.K);H(this,24);this.b-=11},function(){Fc(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){M(this,R(this));this.b-=10},function(){var a=P(this);Fc(this)||H(this,a);this.b-=10},function(){var a=R(this);S(this,L(this));M(this,a);this.b-=18},function(){var a=P(this);Fc(this)||(S(this,this.K),H(this,a),this.b-=6);this.b-=11}, -function(){S(this,L(this));this.b-=11},function(){this.j=Lc(this,O(this));this.b-=7},function(){S(this,this.K);H(this,32);this.b-=11},function(){Fc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},function(){H(this,L(this));this.b-=5},function(){var a=P(this);Fc(this)&&H(this,a);this.b-=10},function(){var a=L(this);M(this,Cc(this));Dc(this,a);this.b-=5},function(){var a=P(this);Fc(this)&&(S(this,this.K),H(this,a),this.b-=6);this.b-=11},sd,function(){this.j=kd(this,O(this));this.b-=7},function(){S(this, -this.K);H(this,40);this.b-=11},function(){Ic(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){var a=R(this);yc(this,a);this.j=a>>8;this.b-=10},function(){var a=P(this);Ic(this)||H(this,a);this.b-=10},function(){this.ma&=-513;this.b-=4},function(){var a=P(this);Ic(this)||(S(this,this.K),H(this,a),this.b-=6);this.b-=11},function(){S(this,zc(this)&255|this.j<<8);this.b-=11},function(){this.j=hd(this,O(this));this.b-=7},function(){S(this,this.K);H(this,48);this.b-=11},function(){Ic(this)&&(H(this, -R(this)),this.b-=6);this.b-=5},function(){this.ba=L(this)&65535;this.b-=5},function(){var a=P(this);Ic(this)&&H(this,a);this.b-=10},function(){this.ma|=512;this.b-=4},function(){var a=P(this);Ic(this)&&(S(this,this.K),H(this,a),this.b-=6);this.b-=11},sd,function(){Mc(this,O(this));this.b-=7},function(){S(this,this.K);H(this,56);this.b-=11}]; -function V(a){u.call(this,"ChipSet",a,V,32768);var b=a.model;b&&!td[b]&&t("Unrecognized ChipSet model: "+b);this.Ra=td[b];a.sound&&(this.X=null,window&&(this.X=window.AudioContext||window.webkitAudioContext),this.X&&new this.X);E(this)}x(V);var td={SI1978:1978.1};m=V.prototype;m.na=function(){return!1}; -m.Aa=function(a,b,c,d){this.C=b;this.b=c;this.D=d;this.u=a;if(1978.1==this.Ra){var e;a=ud;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.A[g]?t("Input port "+r(g)+" already registered"):c.A[g]=[h,!1]}var k;e=vd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.F[d]?t("Output port "+r(d)+" already registered"):f.F[d]=[c,!1]}}; -m.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.va=function(a){return a?this.save():!0};m.reset=function(){this.H=this.I=this.A=this.F=this.U=this.T=this.J=0};m.save=function(){var a=new J(this);1978.1==this.Ra&&K(a,0,[this.J,this.T,this.U,this.F,this.A,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.Ra&&(this.J=a[0],this.T=a[1],this.U=a[2],this.F=a[3],this.A=a[4],this.H=a[5],this.I=a[6]);return!0}; -m.bc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.T;db(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.U;db(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.F<>8&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.A=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.H=b};m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.F=b}; -m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.I=b};var ud={0:V.prototype.bc,1:V.prototype.cc,2:V.prototype.dc,3:V.prototype.ac},vd={2:V.prototype.ic,3:V.prototype.kc,4:V.prototype.jc,5:V.prototype.lc};Ia(function(){for(var a=A(document,"pc8080","chipset"),b=0;b>>0,h],p=ia(n,k,a.Eb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,B:c,gc:d,xa:e,Bb:f})}delete this.xa}return!0};wd.prototype.va=function(){return!0}; -function xd(a,b,c,d){if(d)a.la("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.xa=e.symbols;if(!a.u.length){t("Empty ROM: "+b);return}if(1==a.u.length){t(a.u[0]);return}}catch(g){a.la("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, -" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e>>d.Y].$a(e&d.u,a.u[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(c=0;c>>e.Y;0>>=e.Y;0=this.U?10:20>=this.U?12:24>=this.U?14:15;this.ma=1<>2;this.F=this.ma-1;this.K=this.Y/this.ma|0;this.W=this.K-1;this.u=[];this.A=[];this.I=this.J=!1;this.ca=[];this.ea=[];a=new F;sb(a,this.C);this.D=Array(this.K);for(b=0;b>>a.Z;0c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.B)return f.kb+=f.B-b,f.B=b,!0;if(b>=f.B+f.kb){g=f.size-(b-h);g>c&&(g=c);f.kb=b-f.B+g;b=h+a.ma;c-=g;e++;continue}}return ub(1,b,c)}b=new F(b,g,a.ma,d);sb(b,a.C,f);a.D[e++]=b;b=h+a.ma;c-=g}return 0>=c?!0:ub(2,b,c)} +rb.prototype.V=function(a){return this.D[(a&this.H)>>>this.Z].Ka(a&this.F,a)};function vb(a,b){return a.D[(b&a.H)>>>a.Z].ib(b&a.F,b)}function wb(a,b,c){a.D[(b&a.H)>>>a.Z].lb(b&a.F,c&255,b)}function Eb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]} +function Fb(a,b){for(var c=1,d=0,e=0;0>>=e)&g;if(void 0!==f){if(f[0])f[0](b,g,void 0);a.C&&a.J!=f[1]&&Jb(a.C,b,g)}else a.C&&(gb(a.C,a,b,g,void 0),a.J&&Jb(a.C,b,g));e+=h<<3;b+=h;d-=h}}function ub(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Kb;if(mb){var Lb=new ArrayBuffer(2);(new DataView(Lb)).setUint16(0,256,!0);Kb=256===(new Uint16Array(Lb))[0]}else Kb=!1;var Mb=Kb; +function F(a,b,c,d){this.id=Nb+=2;this.b=null;this.B=a;this.kb=b;this.size=c||0;this.type=d||Ob;this.u=d==Pb;sb(this);this.za=this.Yb=!1;if(c)if(mb)this.H=new ArrayBuffer(c),this.I=new DataView(this.H,0,c),this.D=new Uint8Array(this.H,0,c),this.K=new Uint16Array(this.H,0,c>>1),this.b=new Int32Array(this.H,0,c>>2),Qb(this,Mb?Rb:Sb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ca:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.za=!0},aa:function(a,b){if(this.C&&null!=this.B){var c=this.C;Yb(c,this.B+a,1,c.ca)&&c.da(!0)}return this.ib(a,b)},ka:function(a,b){if(this.C&&null!=this.B){var c=this.C;Yb(c,this.B+a,2,c.ca)&&c.da(!0)}return this.yb(a,b)},ya:function(a,b,c){if(this.C&&null!=this.B){var d=this.C;Yb(d,this.B+a,1,d.I)&&d.da(!0)}this.u?this.F(a,b,c):this.lb(a,b,c)},Ma:function(a, +b,c){if(this.C&&null!=this.B){var d=this.C;Yb(d,this.B+a,2,d.I)&&d.da(!0)}this.u?this.F(a,b,c):this.zb(a,b,c)},Y:function(a){return this.D[a]},ca:function(a){return this.D[a]},ja:function(a){return this.I.getUint16(a,!0)},ra:function(a){return a&1?this.D[a]|this.D[a+1]<<8:this.K[a>>1]},ta:function(a,b){this.D[a]=b;this.za=!0},Ba:function(a,b){this.D[a]=b;this.za=!0},Da:function(a,b){this.I.setUint16(a,b,!0);this.za=!0},$a:function(a,b){a&1?(this.D[a]=b,this.D[a+1]=b>>8):this.K[a>>1]=b;this.za=!0}}; +function sb(a,b,c){a.C=b;a.T=a.A=0;c&&((a.T=c.T)&&Xb(a,Wb,!1),(a.A=c.A)&&Vb(a,Wb,!1))}function Zb(a,b){b?0===--a.A&&(a.Za=a.u?a.F:a.lb,a.Tb=a.u?a.J:a.zb):0===--a.T&&(a.Ka=a.ib,a.Rb=a.yb)}function Vb(a,b,c){c&&a.A||(a.Za=!a.u&&b[2]||a.F,a.Tb=!a.u&&b[3]||a.J);if(c||void 0===c)a.lb=b[2]||a.F,a.zb=b[3]||a.J}function Xb(a,b,c){c&&a.T||(a.Ka=b[0]||a.U,a.Rb=b[1]||a.W);if(c||void 0===c)a.ib=b[0]||a.U,a.yb=b[1]||a.W}function Qb(a,b){b||(b=$b);Xb(a,b,void 0);Vb(a,b,void 0)} +var $b=[],Tb=[F.prototype.ea,F.prototype.sa,F.prototype.Ca,F.prototype.ab],Wb=[F.prototype.aa,F.prototype.ka,F.prototype.ya,F.prototype.Ma];if(mb)var Sb=[F.prototype.Y,F.prototype.ja,F.prototype.ta,F.prototype.Da],Rb=[F.prototype.ca,F.prototype.ra,F.prototype.Ba,F.prototype.$a]; +function ac(a,b){u.call(this,"CPU",a,ac,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Xa=c;this.i.qb=0;this.i.Ja=d;this.i.vb=Math.round(this.i.Xa/1E4)/100;this.i.Ha=this.i.vb*this.i.Ja;this.w.ia=!1;this.w.ub=!1;this.w.Ib=a.autoStart;this.w.Jb=!1;this.w.Oa=!1;this.i.bb=this.i.Ua=0;this.i.cb=a.csStart;this.i.Ta=a.csInterval;this.i.Va=a.csStop;this.ka=this.La.bind(this);B(this)}x(ac);var bc=["power","reset"];m=ac.prototype; +m.Aa=function(a,b,c,d){this.u=a;this.D=b;this.C=d;for(b=0;b=a.i.Ua&&(a.i.Ua+=a.i.Ta,c=!0);0<=a.i.Va&&a.i.Va<=rc(a)&&(a.i.Ta=a.i.Va=-1,nc(a),a.da(),c=!0);c&&a.g(rc(a)+" cycles: checksum="+q(a.i.bb))}} +m.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.T[b]=c;a=!0;break;case "run":this.T[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.w.ha)a=!0;else{var b=null,c,g=Ya(a.id);for(c=0;cc&&(c=2);var d=1;b&&1a.i.Ga/a.i.Ha?b=1:d=!0;a.i.Ja=b;b=a.i.vb*a.i.Ja;if(a.i.Ha!=b){a.i.Ha=b;b=a.i.Ha.toFixed(2)+"Mhz";var e=a.T.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.jb()}tc(a,a.I);a.I=0;a.i.Sa=ja();a.i.Ia=0;uc(a);return d} +m.La=function(a){if(ib(this,!0)){if(!this.w.ia){sc(this);this.u&&this.u.start(this.i.Sa,rc(this));this.w.ia=!0;this.w.ub=!0;this.W&&this.W.mc();var b=this.T.run;b&&(b.textContent="Halt");this.u&&(this.u.qa(!0),a&&this.u.jb(!0))}this.i.xb>=this.i.Xa&&uc(this,!0);this.i.gb=0;this.i.pb=ja();this.i.Ia&&(a=this.i.pb-this.i.Ia,a>this.i.Nb&&(this.i.Sa+=a,this.i.Sa>this.i.pb&&(this.i.Sa=this.i.pb)));try{do{var c=this.w.Oa?1:this.i.hc;try{this.Ya(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.F-this.b; +this.I+=d;this.i.gb+=d;tc(this,0,!0);qc(this,d);this.i.fb-=d;0>=this.i.fb&&(this.i.fb+=this.i.Pb,this.u&&vc(this.u,this.i.qb++),this.i.qb>this.ya&&(this.i.qb=0));this.i.eb-=d;0>=this.i.eb&&(this.i.eb+=this.i.Ob,this.u&&this.u.qa());this.i.Wa-=d;if(0>=this.i.Wa){this.i.Wa+=this.i.wb;break}}while(this.w.ia)}catch(e){this.da();G(this);this.u&&this.u.stop(ja(),rc(this));ib(this,!1);lb(this,e.stack||e.message);return}c=setTimeout;d=this.ka;this.i.Ia=ja();a=this.i.Nb;this.i.gb&&(a=Math.round(a*this.i.gb/ +this.i.wb));a-=this.i.Ia-this.i.pb;if(b=this.i.Ia-this.i.Sa)this.i.Ga=Math.round(this.I/(10*b))/100,864E5<=b&&(this.J=0,sc(this));if(0>a||this.i.Ga>8&255;a.P=b&255}function Fc(a){return a.M<<8|a.R}function Gc(a,b){a.M=b>>8&255;a.R=b&255}function L(a){return a.N<<8|a.S} +function M(a,b){a.N=b>>8&255;a.S=b&255}function H(a,b){a.O=b&65535}function Hc(a){return a.G&256?1:0}function Ic(a){return nb[a.X&255]?4:0}function Jc(a){return(a.X^a.fa)&16?16:0}function Kc(a){return a.G&255?0:64}function Lc(a){return a.X&128?128:0}function Cc(a){return a.oa&-214|Lc(a)|Kc(a)|Jc(a)|Ic(a)|Hc(a)}function Ac(a,b){a.G=a.X=a.fa=0;b&1&&(a.G|=256);b&4||(a.X|=1);b&16&&(a.fa|=16);b&64||(a.G|=255);b&128&&(a.X^=192);a.oa=a.oa&-513|b&512|2} +function Mc(a,b){a.fa=a.j^b;return(a.G=a.X=a.j+b)&255}function Nc(a,b){a.fa=a.j^b;return(a.G=a.X=a.j+b+(a.G&256?1:0))&255}function gd(a,b){return a.G=a.X=a.fa=a.j&b}function hd(a,b){a.fa=a.j^b;a.G=a.X=a.j-b}function id(a,b){a.fa=b;b=(a.X=b-1)&255;a.G=a.G&-256|b;return b}function jd(a,b){a.fa=b;b=(a.X=b+1)&255;a.G=a.G&-256|b;return b}function kd(a,b){return a.G=a.X=a.fa=a.j|b}function ld(a,b){a.fa=a.j^b;return(a.G=a.X=a.j-b)&255}function md(a,b){a.fa=a.j^b;return(a.G=a.X=a.j-b-(a.G&256?1:0))&255} +function nd(a,b){return a.G=a.X=a.fa=a.j^b}m.V=function(a){return this.la[(a&this.K)>>>this.Z].Ka(a&this.H,a)};function od(a,b){var c=b&a.H,d=(b&a.K)>>>a.Z;if(c>>a.Z].Za(b&a.H,c&255,b)}function pd(a,b,c){var d=b&a.H,e=(b&a.K)>>>a.Z;d>8&255,b+1))}function O(a){var b=a.V(a.O);H(a,a.O+1);return b} +function P(a){var b=od(a,a.O);H(a,a.O+2);return b}function R(a){var b=od(a,a.ba);a.ba=a.ba+2&65535;return b}function S(a,b){a.ba=a.ba-2&65535;pd(a,a.ba,b)}function T(a,b,c,d){d=d||2;a.T[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.da()),c=!a.w.ia||a.w.Jb?q(c,d):"--------".substr(0,d),a.T[b].textContent!=c&&(a.T[b].textContent=c))} +m.qa=function(a){this.ja&&(a||!this.w.ia||this.w.Jb)&&(T(this,"A",this.j),T(this,"B",this.L),T(this,"C",this.P),T(this,"BC",Dc(this),4),T(this,"D",this.M),T(this,"E",this.R),T(this,"DE",Fc(this),4),T(this,"H",this.N),T(this,"L",this.S),T(this,"HL",L(this),4),T(this,"SP",this.ba,4),T(this,"PC",this.O,4),a=Cc(this),T(this,"PS",a,4),T(this,"SF",a&128,1),T(this,"ZF",a&64,1),T(this,"AF",a&16,1),T(this,"PF",a&4,1),T(this,"CF",a&1,1));if(a=this.T.speed)a.textContent=this.w.ia&&this.i.Ga?this.i.Ga.toFixed(2)+ +"Mhz":"Stopped"};m.Ya=function(a){this.w.nb=!0;var b=this.w.Xb=this.C&&qd(this.C),c=a?this.w.ub?0:1:-1;this.w.ub=!1;this.F=this.b=a;do{if(this.A){var d;this.A&8&&this.oa&512?(d=199|(this.A&7)<<3,this.A&=-16,this.oa&=-513,this.ca[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.A&16){this.b=0;break}}if(b){if(rd(this.C,this.O,c)){this.da();break}c=1}this.ca[O(this)].call(this)}while(0>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;M(this,a=L(this)+Dc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Dc(this));this.b-=7},function(){Ec(this,Dc(this)- +1);this.b-=5},function(){this.P=jd(this,this.P);this.b-=5},function(){this.P=id(this,this.P);this.b-=5},function(){this.P=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){Gc(this,P(this));this.b-=10},function(){N(this,Fc(this),this.j);this.b-=7},function(){Gc(this,Fc(this)+1);this.b-=5},function(){this.M=jd(this,this.M);this.b-=5},function(){this.M=id(this,this.M);this.b-=5},function(){this.M=O(this);this.b-=7},function(){var a=this.j<< +1;this.j=a&255|this.G>>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;M(this,a=L(this)+Fc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Fc(this));this.b-=7},function(){Gc(this,Fc(this)-1);this.b-=5},function(){this.R=jd(this,this.R);this.b-=5},function(){this.R=id(this,this.R);this.b-=5},function(){this.R=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.G&256|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){M(this,P(this));this.b-=10},function(){pd(this, +P(this),L(this));this.b-=16},function(){M(this,L(this)+1);this.b-=5},function(){this.N=jd(this,this.N);this.b-=5},function(){this.N=id(this,this.N);this.b-=5},function(){this.N=O(this);this.b-=7},function(){var a=this.j,b=!!Hc(this),c=!!Jc(this);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.G=this.X=this.j=a&255;this.G=b?this.G|256:this.G&-257;this.fa=c?~this.X&16|this.fa&-17:this.X&16|this.fa&-17;this.b-=4},sd,function(){var a;M(this,a=L(this)+L(this));this.G=this.G&255|a>>8&256; +this.b-=10},function(){M(this,od(this,P(this)));this.b-=16},function(){M(this,L(this)-1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=O(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ba=P(this)&65535;this.b-=10},function(){N(this,P(this),this.j);this.b-=13},function(){this.ba=this.ba+1&65535;this.b-=5},function(){var a=L(this);N(this,a,jd(this,this.V(a)));this.b-=10},function(){var a=L(this);N(this, +a,id(this,this.V(a)));this.b-=10},function(){N(this,L(this),O(this));this.b-=10},function(){this.G|=256;this.b-=4},sd,function(){var a;this.ba=(a=L(this)+this.ba)&65535;this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(P(this));this.b-=13},function(){this.ba=this.ba-1&65535;this.b-=5},function(){this.j=jd(this,this.j);this.b-=5},function(){this.j=id(this,this.j);this.b-=5},function(){this.j=O(this);this.b-=7},function(){this.G=Hc(this)?this.G&-257:this.G|256;this.b-=4},function(){this.b-= +5},function(){this.L=this.P;this.b-=5},function(){this.L=this.M;this.b-=5},function(){this.L=this.R;this.b-=5},function(){this.L=this.N;this.b-=5},function(){this.L=this.S;this.b-=5},function(){this.L=this.V(L(this));this.b-=7},function(){this.L=this.j;this.b-=5},function(){this.P=this.L;this.b-=5},function(){this.b-=5},function(){this.P=this.M;this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V(L(this));this.b-= +7},function(){this.P=this.j;this.b-=5},function(){this.M=this.L;this.b-=5},function(){this.M=this.P;this.b-=5},function(){this.b-=5},function(){this.M=this.R;this.b-=5},function(){this.M=this.N;this.b-=5},function(){this.M=this.S;this.b-=5},function(){this.M=this.V(L(this));this.b-=7},function(){this.M=this.j;this.b-=5},function(){this.R=this.L;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.R=this.M;this.b-=5},function(){this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R= +this.S;this.b-=5},function(){this.R=this.V(L(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.N=this.L;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=this.M;this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V(L(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.S=this.L;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.M;this.b-=5},function(){this.S= +this.R;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.b-=5},function(){this.S=this.V(L(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){N(this,L(this),this.L);this.b-=7},function(){N(this,L(this),this.P);this.b-=7},function(){N(this,L(this),this.M);this.b-=7},function(){N(this,L(this),this.R);this.b-=7},function(){N(this,L(this),this.N);this.b-=7},function(){N(this,L(this),this.S);this.b-=7},function(){var a=this.O-1;if(this.U.length)for(var b=0;b>8;this.b-=10},function(){var a=P(this);Lc(this)||H(this,a);this.b-=10},function(){this.oa&=-513;this.b-=4},function(){var a=P(this);Lc(this)||(S(this,this.O),H(this,a),this.b-=6);this.b-=11},function(){S(this,Cc(this)&255|this.j<<8);this.b-=11},function(){this.j=kd(this,O(this));this.b-=7},function(){S(this,this.O);H(this, +48);this.b-=11},function(){Lc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},function(){this.ba=L(this)&65535;this.b-=5},function(){var a=P(this);Lc(this)&&H(this,a);this.b-=10},function(){this.oa|=512;this.b-=4},function(){var a=P(this);Lc(this)&&(S(this,this.O),H(this,a),this.b-=6);this.b-=11},vd,function(){hd(this,O(this));this.b-=7},function(){S(this,this.O);H(this,56);this.b-=11}]; +function V(a){u.call(this,"ChipSet",a,V,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ra=wd[b];a.sound&&(this.W=null,window&&(this.W=window.AudioContext||window.webkitAudioContext),this.W&&new this.W);B(this)}x(V);var wd={SI1978:1978.1};m=V.prototype;m.pa=function(){return!1}; +m.Aa=function(a,b,c,d){this.D=b;this.b=c;this.C=d;this.u=a;if(1978.1==this.Ra){var e;a=xd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?t("Input port "+r(g)+" already registered"):c.u[g]=[h,!1]}var k;e=yd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.A[d]?t("Output port "+r(d)+" already registered"):f.A[d]=[c,!1]}}; +m.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.va=function(a){return a?this.save():!0};m.reset=function(){this.H=this.I=this.A=this.F=this.U=this.K=this.J=0};m.save=function(){var a=new I(this);1978.1==this.Ra&&K(a,0,[this.J,this.K,this.U,this.F,this.A,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.Ra&&(this.J=a[0],this.K=a[1],this.U=a[2],this.F=a[3],this.A=a[4],this.H=a[5],this.I=a[6]);return!0}; +m.bc=function(a,b){var c=this.J;fb(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;fb(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.U;fb(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.F<>8&255;fb(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){fb(this,a,b,c,"SHIFT.COUNT",null);this.A=b};m.kc=function(a,b,c){fb(this,a,b,c,"SOUND1",null);this.H=b};m.jc=function(a,b,c){fb(this,a,b,c,"SHIFT.DATA",null);this.F=b}; +m.lc=function(a,b,c){fb(this,a,b,c,"SOUND2",null);this.I=b};var xd={0:V.prototype.bc,1:V.prototype.cc,2:V.prototype.dc,3:V.prototype.ac},yd={2:V.prototype.ic,3:V.prototype.kc,4:V.prototype.jc,5:V.prototype.lc};Ia(function(){for(var a=A(document,"pc8080","chipset"),b=0;b>>0,h],p=ia(n,k,a.Eb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,B:c,gc:d,xa:e,Bb:f})}delete this.xa}return!0};zd.prototype.va=function(){return!0}; +function Ad(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.xa=e.symbols;if(!a.u.length){t("Empty ROM: "+b);return}if(1==a.u.length){t(a.u[0]);return}}catch(g){a.na("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, +" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e>>f.Z;0>>=f.Z;0Missing <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<=oa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Bd(d);$a(d,c)}}); -function Cd(a){u.call(this,"Debugger",a,Cd);this.aa=Dd;this.oa=this.Ma=this.U=0;this.Z=W();this.Fb=W();this.H=-1;this.F=[];this.sa=!1;this.pa=W();this.J=[];this.ra={};this.A=this.ca=this.I=[];Ed(this);this.Ca=0;Fd(this);this.ab=[];Gd(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return nc(b,a)}):void 0===global.$&&(global.$=function(a){return nc(b,a)})}x(Cd); -var Hd={"?":"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",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Dd=8086,Id="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "), -Jd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ LDA MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Kd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Ld=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768], -[21,2579,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,2579,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,2579,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],[44, -1617,32],[72],[45,32768],[21,2579,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785, -1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[43,1617,1617],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193, -273],[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193, -785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128], -[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,2899,2579],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,2579,2323],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,2835,2579],[32,51],[25],[9,51],[7,32819],[19, -18193,33],[65,128]],Md={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Cd.prototype; -m.Aa=function(a,b,c,d){this.C=b;this.b=c;this.u=a;(a=bc(a,"messages"))&&Gd(this,a);this.Cb=Ld;Nd(this,function(a){a:{var b=d.b.ka,c=a[0],g=a=0,k=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.b.Y;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=Tb[c],n&&d.g(q(n.id)+" %"+q(g<>>c.Y,c=e!=c.u?c.C[f].yb(e,d):c.C[f++].jb(e,d)|c.C[f&c.X].jb(0,d+1)<<8;b&&Od(a,b)}return c}; -m.Ab=function(a,b,c){var d=X(a);if(-1!==d){var e=this.C;e.C[(d&e.H)>>>e.Y].$a(d&e.u,b&255,d);c&&Od(a,c);G(this.b,!0)}};m.Ub=function(a,b,c){var d=X(a);if(-1!==d){var e=this.C,f=d&e.u,h=(d&e.H)>>>e.Y;f!=e.u?e.C[h].zb(f,b&65535,d):(e.C[h++].$a(f,b&255,d),e.C[h&e.X].$a(0,b>>8&255,d+1));c&&Od(a,c);G(this.b,!0)}};function W(a){return{B:a||0,ua:!1}}function Pd(a){return[a.B,a.ua]}function Qd(a){return{B:a[0],ua:a[1]}} -function Y(a,b,c){var d;c=(c?a.Z:a.Fb).B;if(void 0!==b){d=b=Rd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=la(Kd,a.substr(b,2))));return c}function Xd(a,b){var c=0,d=Yd(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"} -function Yd(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.L;break;case 1:c=d.O;break;case 8:c=Ac(d);break;case 2:c=d.M;break;case 3:c=d.P;break;case 9:c=Cc(d);break;case 4:c=d.N;break;case 5:c=d.R;break;case 10:c=L(d);break;case 6:c=d.V(L(d));break;case 11:c=d.ba;break;case 12:c=d.K;break;case 13:c=d.j<<8|zc(d)&255}}return c} -function Zd(a,b){b=Rd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Wd(b,c+1),0<=e&&(b=b.substr(0,c)+Xd(a,e)+b.substr(c+1+Kd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+Vd(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Od(d),d=e+' "'+ -Vd(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.K).B));if(!this.Da||a!=this.Da)if(this.Da=a,this.ga&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Wa=0;c.F-=c.b;c.b=0;G(c)}};function gb(a,b,c,d,e,f,h,g){g|=256;null!=e&&(a.ga&g)!=g||a.message(b.bb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))} -function Fd(a){var b;if(nd(a)){if(!a.X||!a.X.length){a.X=Array(1E3);for(b=0;b>>d.Y],!1)}a.ca=["br"];if(void 0!==a.I)for(b=1;b>>d.Y],!0);a.I=["bw"];a.Kb=0}m.Ea=function(a,b,c){var d=!0;c||de(this,a,b,!1,!0);if(a!=this.A){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.B)),d=!1;else{var f=this.b;f.ka[e>>>f.Y].Ea(e&f.H,a==this.I)}}d&&(a.push(b),c?b.ua=!0:(ee(this,a,a.length-1,"set"),Fd(this)));return d}; -function de(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h>>d.Y],b==a.I));g.ua||Fd(a);break}}return f}function fe(a,b){for(var c=1;c>24,4);break;case 3:C=q(B.mb(Da,2),4);break;default:B="imm("+r(v)+")";break a}B.aa==Dd&&v&64?C="["+C+"]":v&16||(C=(8080==B.aa?"$":"0x")+C);B=C}else v& -16?(B=(p&3840)>>8,v=Kd[B],a.aa==Dd&&p&64&&(6==B&&(v="HL"),v="["+v+"]"),B=v):v&128&&(B=(f>>3&7).toString());if(!B||!B.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -function Le(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Gd(d);eb(d,c)}}); +function Hd(a){u.call(this,"Debugger",a,Hd);this.aa=Id;this.ja=this.Ma=this.U=0;this.Y=W();this.Fb=W();this.H=-1;this.F=[];this.sa=!1;this.ka=W();this.J=[];this.ra={};this.A=this.ca=this.I=[];Jd(this);this.Ca=0;Kd(this);this.$a=[];Ld(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return oc(b,a)}):void 0===global.$&&(global.$=function(a){return oc(b,a)})}x(Hd); +var Md={"?":"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",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Id=8080,Nd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "), +Od="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Pd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Qd=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768], +[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617], +[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43, +785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273], +[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785], +[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62], +[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19, +18193,33],[65,128]],Rd={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Hd.prototype; +m.Aa=function(a,b,c,d){this.D=b;this.b=c;this.u=a;(a=lc(a,"messages"))&&Ld(this,a);this.Cb=Qd;Sd(this,function(a){a:{var b=d.b.la,c=a[0],g=a=0,k=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.b.Z;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=Ub[c],n&&d.g(q(n.id)+" %"+q(g<>>c.Z,c=e!=c.F?c.D[f].yb(e,d):c.D[f++].ib(e,d)|c.D[f&c.W].ib(0,d+1)<<8;b&&Td(a,b)}return c}; +m.Ab=function(a,b,c){var d=X(a);-1!==d&&(wb(this.D,d,b),c&&Td(a,c),G(this.b,!0))};m.Ub=function(a,b,c){var d=X(a);if(-1!==d){var e=this.D,f=d&e.F,h=(d&e.H)>>>e.Z;f!=e.F?e.D[h].zb(f,b&65535,d):(e.D[h++].lb(f,b&255,d),e.D[h&e.W].lb(0,b>>8&255,d+1));c&&Td(a,c);G(this.b,!0)}};function W(a){return{B:a||0,ua:!1}}function Ud(a){return[a.B,a.ua]}function Vd(a){return{B:a[0],ua:a[1]}} +function Y(a,b,c){var d;c=(c?a.Y:a.Fb).B;if(void 0!==b){d=b=Wd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=la(Pd,a.substr(b,2))));return c}function be(a,b){var c=0,d=ce(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"} +function ce(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.L;break;case 1:c=d.P;break;case 8:c=Dc(d);break;case 2:c=d.M;break;case 3:c=d.R;break;case 9:c=Fc(d);break;case 4:c=d.N;break;case 5:c=d.S;break;case 10:c=L(d);break;case 6:c=d.V(L(d));break;case 11:c=d.ba;break;case 12:c=d.O;break;case 13:c=d.j<<8|Cc(d)&255}}return c} +function de(a,b){b=Wd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=ae(b,c+1),0<=e&&(b=b.substr(0,c)+be(a,e)+b.substr(c+1+Pd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+$d(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Td(d),d=e+' "'+ +$d(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.O).B));if(!this.Da||a!=this.Da)if(this.Da=a,this.ga&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Wa=0;c.F-=c.b;c.b=0;G(c)}};function gb(a,b,c,d,e,f,h,g){g|=256;null!=e&&(a.ga&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))} +function Kd(a){var b;if(qd(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b>>d.Z],!1)}a.ca=["br"];if(void 0!==a.I)for(b=1;b>>d.Z],!0);a.I=["bw"];a.Kb=0}m.Ea=function(a,b,c){var d=!0;c||ie(this,a,b,!1,!0);if(a!=this.A){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.B)),d=!1;else{var f=this.b;f.la[e>>>f.Z].Ea(e&f.H,a==this.I)}}d&&(a.push(b),c?b.ua=!0:(je(this,a,a.length-1,"set"),Kd(this)));return d}; +function ie(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h>>d.Z],b==a.I));g.ua||Kd(a);break}}return f}function ke(a,b){for(var c=1;c>24,4);break;case 3:D=q(C.mb(Ea,2),4);break;default:C="imm("+r(v)+")";break a}8086==C.aa&&v&64?D="["+D+"]":v&16||(D=(C.aa==Id?"$":"0x")+D);C=D}else v& +16?(C=(p&3840)>>8,v=Pd[C],8086==a.aa&&p&64&&(6==C&&(v="HL"),v="["+v+"]"),C=v):v&128&&(C=(f>>3&7).toString());if(!C||!C.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; +function Qe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Sd(a,b,c){var d;if(b){b=Rd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Oe(a,b){if(b)return Ne(a,b,a.ra[b]);var c=0;for(b in a.ra)Ne(a,b,a.ra[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.gc;if(e>=h&&e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Te(a,b){if(b)return Se(a,b,a.ra[b]);var c=0;for(b in a.ra)Se(a,b,a.ra[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.gc;if(e>=h&&e>8&255;case "C":d.O=g&255;break;case "D":d.M= -g&255;break;case "DE":d.M=g>>8&255;case "E":d.P=g&255;break;case "H":d.N=g&255;break;case "HL":d.N=g>>8&255;case "L":d.R=g&255;break;case "SP":d.ba=g&65535;break;case "PC":H(d,g);a.Z=W(d.K);break;case "PS":yc(d,g);break;case "C":d.G=g?d.G|256:d.G&255;break;case "P":g?Fc(d)||(d.W^=1):Fc(d)&&(d.W^=1);break;case "A":d.da=g?~d.W&16|d.da&-17:d.W&16|d.da&-17;break;case "Z":d.G=g?d.G&-256:d.G|255;break;case "S":g?Ic(d)||(d.W^=192):Ic(d)&&(d.W^=192);break;case "I":d.ma=g?d.ma|512:d.ma&-513;break;default:a.g("unknown register: "+ -e);return}if(!h){a.g("invalid value: "+f);return}G(d);a.g("updated registers:")}a.g(ke(a));c&&(a.Z=W(d.K),be(a,Z(a.Z.B)))}}function Ve(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Zd(a,c[2])):Sd(a,b,!0)}function We(a,b,c){var d="t"!=b;c=Me(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Aa(c,function(){return ib(a,!0)&&a.Ya(e,d,!1)},function(){G(a.b);ib(a,!1)})} -function be(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.Bg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=he(a,b,h,f);a.g(f);a.Z=b;e-=b.B-k;c++}}} -function Ud(a,b,c,d){if(c)if(b){0>a.H&&a.F.length&&(a.H=0);if(0>a.H||b!=a.F[a.H])a.F.splice(0,0,b),a.H=0;a.H--}else b=a.F[a.H+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a} -function ge(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.sa&&(a.g("ended assemble at "+Z(a.pa.B)),a.Z=a.pa,a.sa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Da=null;if(kb(a)&&0l||"z"ta.length&&(a.g("note: only "+ta.length+" available"),U=ta.length);Q-=U;0>Q&&(null==ta[ta.length-1].B?(U=Q+U,Q=0): -Q+=ta.length);var Pc=[];"call"==qe&&(fb=1E5,Pc=["CALL"]);for(void 0!==pe&&a.g(U+" instructions earlier:");0=ta.length&&(Q=0);a.Lb=U;se++;fb--}}se||(a.g("no "+re+"history available"),a.Lb=void 0)}else{var cc=Y(a,ra);if(cc){var dc=0;Ja&&("l"==Ja.charAt(0)&&(Ja=Ja.substr(1)||sf),dc=Me(a,Ja)>>>0,65536>4||1,Qc="dd"==cb?4:"dw"==cb?2:1,ve=0;veTc;Tc++){var fc=a.V(cc,1),ec=ec|fc<<(Rc++<<3);Rc==Qc&&(zb+=q(ec,2*Qc),zb+=1==Qc?7==Tc?"-":" ":" ",ec=Rc=0);Sc+=32<=fc&&128>fc?String.fromCharCode(fc):"."}Ka&&(Ka+="\n");Ka+=ra+" "+zb+" "+Sc}Ka&&a.g(Ka);a.Fb=cc}}}}break;case "e":if("else"==f[0])break;var gc=1,we=255,xe=a.V,ye=a.Ab;"ew"==f[0]&&(gc=2,we=65535,xe=a.mb,ye=a.Ub);var ze=gc<<1,Ae=f[1];if(null==Ae)a.g("edit memory commands:"), -a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var hc=Y(a,Ae);if(hc)for(var ic=2;icZc;){for(var La=null,zf=256;65536>Cb.B>>>0;){Ce.B=a.mb(Cb,2);if(null==Cb.B||!zf--)break;for(var Af=a,jc=Ce,De=null,Db=jc.B,Ee=Db,$c=1;6>=$c&&Db;$c++){if(2<$c){jc.B=Db;var kc=he(Af,jc);if(0ff){if(bf(d,this.X)){this.I=new J(this,hf,"failsafe");bf(this.I)&&(mf(this,d),a=2,Ze(this.I));K(this.I,"timestamp",ka());$e(this.I);var e=this.u&&!this.J;if(1==a||pa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=af(d)){var f=cf(d,"code"),h=cf(d,"data");f&&("ok"==f?bf(d,h):("error"==f&&"no machine state"!= -h?(this.la("Error: "+h),"unable to verify user"==h&&(ya("user",""),this.A=null)):this.g(f+": "+h),Ze(d),bf(d)?(c=af(d),e=!0):c=!1))}e&&lf(this,c?d:null)}else 2==a&&d.clear()}else lf(this);delete this.X;delete this.Z}e=Ya(this.id);for(f=0;fa[1];a=a[2];this.w.ha=!0;var d=this.S.power;d&&(d.textContent="Shutdown");this.oa||(this.g("PC8080 v"+hf+"\nCopyright \u00a9 2012-2016 Jeff Parsons \nLicense: GPL version 3 or later "),this.oa=!0);this.b&&(nf(this,this.b,b,c,a),oc(this.b));this.pa&&(mf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.F=0}; -function mf(a,b){if(pa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.ta,d=a.A||"",e=b.toString(),f={app:"PC8080"};f.ver=hf;f.url=c;f.user=d;f.type="bug";f.data=e;ma("http://www.pcjs.org/api/v1/report",f,!0)}} -function Xe(a,b,c){var d,e="none";if(a.F)return null;a.F--;var f=new J(a,hf),h=new J(a,hf,"validate"),g=ka();K(h,"timestamp",g);K(f,"timestamp",g);K(f,"version","1.21.7");K(f,"url",window?window.location.href:null);K(f,"browser",oa());a.b&&a.b.va&&(c&&a.b.ea(),d=a.b.va(b,c),"object"===typeof d&&K(f,a.b.id,d),c&&(a.b.w.ha=!1,!1===d&&(e=null)));for(var g=Ya(a.id),k=0;k>8&255;case "C":d.P=g&255;break;case "D":d.M= +g&255;break;case "DE":d.M=g>>8&255;case "E":d.R=g&255;break;case "H":d.N=g&255;break;case "HL":d.N=g>>8&255;case "L":d.S=g&255;break;case "SP":d.ba=g&65535;break;case "PC":H(d,g);a.Y=W(d.O);break;case "PS":Ac(d,g);break;case "C":d.G=g?d.G|256:d.G&255;break;case "P":g?Ic(d)||(d.X^=1):Ic(d)&&(d.X^=1);break;case "A":d.fa=g?~d.X&16|d.fa&-17:d.X&16|d.fa&-17;break;case "Z":d.G=g?d.G&-256:d.G|255;break;case "S":g?Lc(d)||(d.X^=192):Lc(d)&&(d.X^=192);break;case "I":d.oa=g?d.oa|512:d.oa&-513;break;default:a.g("unknown register: "+ +e);return}if(!h){a.g("invalid value: "+f);return}G(d);a.g("updated registers:")}a.g(Oe(a));c&&(a.Y=W(d.O),ge(a,Z(a.Y.B)))}}function $e(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(de(a,c[2])):Xd(a,b,!0)}function af(a,b,c){var d="t"!=b;c=Re(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Aa(c,function(){return ib(a,!0)&&a.Ya(e,d,!1)},function(){G(a.b);ib(a,!1)})} +function ge(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.Bg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=me(a,b,h,f);a.g(f);a.Y=b;e-=b.B-k;c++}}} +function Zd(a,b,c,d){if(c)if(b){0>a.H&&a.F.length&&(a.H=0);if(0>a.H||b!=a.F[a.H])a.F.splice(0,0,b),a.H=0;a.H--}else b=a.F[a.H+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a} +function le(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.sa&&(a.g("ended assemble at "+Z(a.ka.B)),a.Y=a.ka,a.sa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Da=null;if(kb(a)&&0l||"z"ua.length&&(a.g("note: only "+ua.length+" available"),U=ua.length);Q-=U;0>Q&&(null==ua[ua.length-1].B?(U=Q+U,Q=0): +Q+=ua.length);var Qc=[];"call"==se&&(db=1E5,Qc=["CALL"]);for(void 0!==re&&a.g(U+" instructions earlier:");0=ua.length&&(Q=0);a.Lb=U;ue++;db--}}ue||(a.g("no "+te+"history available"),a.Lb=void 0)}else{var cc=Y(a,sa);if(cc){var dc=0;Ja&&("l"==Ja.charAt(0)&&(Ja=Ja.substr(1)||xf),dc=Re(a,Ja)>>>0,65536>4||1,Rc="dd"==ab?4:"dw"==ab?2:1,xe=0;xeUc;Uc++){var fc=a.V(cc,1),ec=ec|fc<<(Sc++<<3);Sc==Rc&&(yb+=q(ec,2*Rc),yb+=1==Rc?7==Uc?"-":" ":" ",ec=Sc=0);Tc+=32<=fc&&128>fc?String.fromCharCode(fc):"."}Ka&&(Ka+="\n");Ka+=sa+" "+yb+" "+Tc}Ka&&a.g(Ka);a.Fb=cc}}}}break;case "e":if("else"==f[0])break;var gc=1,ye=255,ze=a.V,Ae=a.Ab;"ew"==f[0]&&(gc=2,ye=65535,ze=a.mb,Ae=a.Ub);var Be=gc<<1,Ce=f[1];if(null==Ce)a.g("edit memory commands:"), +a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var hc=Y(a,Ce);if(hc)for(var ic=2;ic$c;){for(var La=null,Ef=256;65536>Bb.B>>>0;){Ee.B=a.mb(Bb,2);if(null==Bb.B||!Ef--)break;for(var Ff=a,jc=Ee,Fe=null,Cb=jc.B,Ge=Cb,ad=1;6>=ad&&Cb;ad++){if(2lf){if(gf(d,this.W)){this.I=new I(this,nf,"failsafe");gf(this.I)&&(rf(this,d),a=2,df(this.I));K(this.I,"timestamp",ka());ef(this.I);var e=this.u&&!this.J;if(1==a||pa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ff(d)){var f=hf(d,"code"),h=hf(d,"data");f&&("ok"==f?gf(d,h):("error"==f&&"no machine state"!= +h?(this.na("Error: "+h),"unable to verify user"==h&&(ya("user",""),this.A=null)):this.g(f+": "+h),df(d),gf(d)?(c=ff(d),e=!0):c=!1))}e&&qf(this,c?d:null)}else 2==a&&d.clear()}else qf(this);delete this.W;delete this.Y}e=Ya(this.id);for(f=0;fa[1];a=a[2];this.w.ha=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.ja||(this.g("PC8080 v"+nf+"\nCopyright \u00a9 2012-2016 Jeff Parsons \nLicense: GPL version 3 or later "),this.ja=!0);this.b&&(sf(this,this.b,b,c,a),pc(this.b));this.ka&&(rf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.F=0}; +function rf(a,b){if(pa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.ta,d=a.A||"",e=b.toString(),f={app:"PC8080"};f.ver=nf;f.url=c;f.user=d;f.type="bug";f.data=e;ma("http://www.pcjs.org/api/v1/report",f,!0)}} +function bf(a,b,c){var d,e="none";if(a.F)return null;a.F--;var f=new I(a,nf),h=new I(a,nf,"validate"),g=ka();K(h,"timestamp",g);K(f,"timestamp",g);K(f,"version","1.21.7");K(f,"url",window?window.location.href:null);K(f,"browser",oa());a.b&&a.b.va&&(c&&a.b.da(),d=a.b.va(b,c),"object"===typeof d&&K(f,a.b.id,d),c&&(a.b.w.ha=!1,!1===d&&(e=null)));for(var g=Ya(a.id),k=0;kg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2")); -g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],h);Gf(a,b,c)}})}else c(a,null)} -function Hf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--qf||Oa(!0));k=!1}var h,g,k=!0;qf++;Wa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}c|| -(c="/versions/pc8080/1.21.7/components.xsl");l=function(d,g){g?rf(c,null,null,!1,e,function(d,k){if(k)if(Xa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--qf||Oa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--qf||Oa(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?rf(b,a,d,!0,e,l):Ff(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){Oa(!1);return Hf(a,b,c,d)};window.enableEvents=Oa;window.sendEvent=Pa; -function If(a,b,c,d){if(!c&&b){d.push(b);a=Wa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?ma(b,null,!0,function(a,b){Jf(b,d)}):Jf(null,d)}else t("Error ("+c+") requesting "+a)} -function Jf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Wa[f],k={},l;for(l in g){var n=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(n=n.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, +m.pa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.F||(d.w.ha?bf(d,!1,!0):pf(d,d.hb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.w.ha&&!d.F)if(d.u&&!d.U){var a=pa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bf(d,a,!0);!a&&d.ea?window&&window.location.reload():d.hb(lf)}else d.reset(),d.b&&pc(d.b)},!0;case "save":if(da(na(),"pcjs.org")){c.parentNode.removeChild(c); +break}this.T[b]=c;c.onclick=function(){var a=mf(d,!0);if(a){var b=!!(d.u&&!d.U||d.ea),c=bf(d,b);b?tf(d,a,c):d.na("Resume disabled, machine state not saved")}};return!0}return!1}; +function mf(a,b){var c=a.A;c||(c=xa("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=uf(a,c))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return c} +function uf(a,b){a.A=null;var c=ma(na()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ya("user",c.data),a.A=c.data)}catch(e){t(e.message+" ("+d+")")}return a.A}function of(a){var b=null;a.A&&(b=na()+"/api/v1/user?req=load&user="+a.A+"&state="+cf(a,nf));return b} +function tf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cf(a,nf);d.data=c;b=ma(na()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2")); +g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);Lf(a,b,c)}})}else c(a,null)} +function Mf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--vf||Oa(!0));k=!1}var h,g,k=!0;vf++;Wa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}c|| +(c="/versions/pc8080/1.21.7/components.xsl");l=function(d,g){g?wf(c,null,null,!1,e,function(d,k){if(k)if(Xa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--vf||Oa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--vf||Oa(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?wf(b,a,d,!0,e,l):Kf(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(z){f(z.message)}return k}window.embedPC8080=function(a,b,c,d){Oa(!1);return Mf(a,b,c,d)};window.enableEvents=Oa;window.sendEvent=Pa; +function Nf(a,b,c,d){if(!c&&b){d.push(b);a=Wa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?ma(b,null,!0,function(a,b){Of(b,d)}):Of(null,d)}else t("Error ("+c+") requesting "+a)} +function Of(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Wa[f],k={},l;for(l in g){var n=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(n=n.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, "©"),l=h,g=null,k="data:application/javascript,",k=za("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', c+='
\n',c+="...\n",c+='