Added smoothing control to both PCjs and PC8080 (setting it to false should probably be the new default)
It can be controlled with a new "smoothing" attribute on the <video> component and/or overridden with a "smoothing" URL parameter set to either "true" or "false"
This commit is contained in:
parent
5fbcc034e3
commit
c31f6222a1
12 changed files with 666 additions and 426 deletions
|
|
@ -80,7 +80,7 @@ v(d,d.fa(h+g)));c&&d.bb(h+0,f);d.Pa|=8;return!0}l.save=function(){return[this.ja
|
|||
function zc(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 Qc(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=Rc;this.uh=Sc;this.vh=Tc;this.wh=Uc;if(80186<=this.ca&&(this.ma=Rc.slice(),this.uh=Sc.slice(),this.vh=Tc.slice(),this.Da=31,this.ma[15]=Vc,this.ma[96]=Wc,this.ma[97]=Xc,this.ma[98]=Yc,this.ma[99]=Vc,this.ma[100]=Vc,
|
||||
this.ma[101]=Vc,this.ma[102]=Vc,this.ma[103]=Vc,this.ma[104]=Zc,this.ma[105]=$c,this.ma[106]=ad,this.ma[107]=bd,this.ma[108]=cd,this.ma[109]=dd,this.ma[110]=ed,this.ma[111]=fd,this.ma[192]=gd,this.ma[193]=hd,this.ma[200]=id,this.ma[201]=jd,this.ma[241]=kd,this.uh[7]=ld,this.vh[7]=ld,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=md;this.Zc=nd.slice();for(a=0;a<this.Zc.length;a++)this.Zc[a]||(this.Zc[a]=od);this.ma[84]=pd;this.ma[99]=rd;if(80386<=this.ca){var c;this.qh=0;this.od|=
|
||||
this.ma[101]=Vc,this.ma[102]=Vc,this.ma[103]=Vc,this.ma[104]=Zc,this.ma[105]=$c,this.ma[106]=ad,this.ma[107]=bd,this.ma[108]=cd,this.ma[109]=dd,this.ma[110]=ed,this.ma[111]=fd,this.ma[192]=gd,this.ma[193]=hd,this.ma[200]=id,this.ma[201]=jd,this.ma[241]=kd,this.uh[7]=ld,this.vh[7]=ld,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=md;this.Zc=nd.slice();for(a=0;a<this.Zc.length;a++)this.Zc[a]||(this.Zc[a]=od);this.ma[84]=pd;this.ma[99]=qd;if(80386<=this.ca){var c;this.qh=0;this.od|=
|
||||
196608;this.ma[100]=sd;this.ma[101]=td;this.ma[102]=ud;this.ma[103]=vd;for(c in B)this.Zc[+c]=B[c];80546<=this.pd&&80562>=this.pd&&(this.Zc[166]=wd,this.Zc[167]=xd)}}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;yd(this)}Qa(Qc,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;b<a.mf;b++)a.S[b]=a.pf;a.Zd=new q;a.sh=Array(512);a.qf=0}else for(var c=0;c<a.nf.length;c++){b=a.nf[c];var d=a.S[b];512>a.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||zd.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||zd.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||zd.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||zd.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<a.qf?(m=a.sh[--a.qf],m.Qk(b)):m=new q(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
|
||||
|
|
@ -262,7 +262,7 @@ this.F;break;case 131:c=L(this,this.D+N(this));this.C=this.F;break;case 132:c=L(
|
|||
3&7].call(this,c,b.call(this));switch(d){case 192:this.J=c;break;case 193:this.G=c;break;case 194:this.M=c;break;case 195:this.D=c;break;case 196:v(this,c);break;case 197:this.K=c;break;case 198:this.I=c;break;case 199:this.H=c;break;default:He(this,c)}}
|
||||
function Mh(a){var b=this.na(),c=b>>6,d,e;switch(b>>3&7){case 0:d=this.J;break;case 1:d=this.G;break;case 2:d=this.M;break;case 3:d=this.D;break;case 4:d=0;break;case 5:d=this.K;break;case 6:d=this.I;break;case 7:d=this.H}switch(b&7){case 0:e=this.J;break;case 1:e=this.G;break;case 2:e=this.M;break;case 3:e=this.D;break;case 4:e=w(this);this.va=this.rb;break;case 5:a?(e=this.K,this.va=this.rb):e=N(this);break;case 6:e=this.I;break;case 7:e=this.H}return(d<<c)+e|0}
|
||||
function md(){this.Zc[this.na()].call(this)}function pd(){y(this,w(this)&this.N);this.A-=this.B.Ac}function Wc(){this.la=this.ra;var a=w(this)&this.N;y(this,this.J&this.N);y(this,this.G&this.N);y(this,this.M&this.N);y(this,this.D&this.N);y(this,a);y(this,this.K&this.N);y(this,this.I&this.N);y(this,this.H&this.N);this.A-=this.B.Ui;this.la=-1}
|
||||
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function rd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function sd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
|
||||
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function qd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function sd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
|
||||
function td(){this.L|=20;this.va=this.rb=this.Xa;this.A-=this.B.Rc}function ud(){this.L|=1024;this.wa&1024||(this.U^=6,this.N^=-65536,Wd(this));this.A-=this.B.Rc}function vd(){this.L|=2048;this.wa&2048||(this.Nc^=6,this.sa^=-65536,Dd(this));this.A-=this.B.Rc}function Zc(){y(this,this.Aa());this.A-=this.B.Ac}function $c(){this.Z.call(this,sg)}function ad(){y(this,this.O());this.A-=this.B.Ac}function bd(){this.Z.call(this,qg)}
|
||||
function cd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,1)&&(e=Ob(this.ha,e,1,this.Y-b-1),this.Mc(this.pa.Qb(this.H&c,1),e),this.H=this.H&~c|this.H+(this.X&1024?-1:1)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
|
||||
function dd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,this.U)&&(e=Ob(this.ha,e,this.U,this.Y-b-1),this.Xb(this.pa.Qb(this.H&c,this.U),e),this.H=this.H&~c|this.H+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
|
||||
|
|
@ -432,10 +432,11 @@ function Ek(a,b,c){var d=b;if(65<=b&&90>=b)!(a.bc&515)==c&&(d=b+32);else if(97<=
|
|||
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<a.B.length;k++){var m=a.B[k];m.Me=!1;0<m.cd&&(m.cd=0)}}else 8==g&&8==(a.bc&40)&&(h=4008),d=!1;else if(X[h]&&a.bc&60&&(d=!1),d&&c||a.bc&192)f=!0;d||b.preventDefault();f||a.Y&&d||(c?wk(a,h,e):yk(a,h)||(b=Ek(a,g,!1),b!=h&&yk(a,b)));return d}
|
||||
function Dk(a,b,c){var d=!1;xk(a,b,!0,c);var e=X[b]||X[b+1E3];if(void 0!==e){14==e&&40==(a.bc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.Z)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=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;c<d.length;c++)e=a,f=d[c],e.Ob&&(20>e.Ob.length?(e.Ob.push(f),1==e.Ob.length&&e.P&&Yj(e.P,f)):20==e.Ob.length&&
|
||||
e.Ob.push(255));d=!0}return d}Ea(function(){for(var a=Za(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new nk(d);Ya(d,c)}});
|
||||
function Y(a,b,c,d,e){Ia.call(this,"Video",a,Y);this.ca=a.model;var f=Fk[this.ca]||Fk.mda;this.Ra=f[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=f[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.da=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.da/this.Nb);this.Y=b;this.W=c;this.G=(this.ae=d)||b||null;this.rd=a.touchScreen;this.xc=
|
||||
Hk;this.K=null;this.Yd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.oa=Array(this.Ra==ek?256:16);this.La=!1;var g=this;this.$c=ya("Gecko/");b=["","moz","webkit","ms"];if(this.ba=e)if(this.ba.ke=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ba.ke){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){Ik(g,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
|
||||
document.msFullscreenElement?!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){Ik(g,null)},!1);break}}this.G&&(this.G.onfocus=function(){return g.Nf(!0)},this.G.onblur=function(){return g.Nf(!1)},this.G.Pd=this.G.requestPointerLock||this.G.mozRequestPointerLock||this.G.webkitRequestPointerLock,this.G.pj=this.G.exitPointerLock||this.G.mozExitPointerLock||this.G.webkitExitPointerLock,this.G.Pd&&(e=function(){g.bf(document.pointerLockElement===
|
||||
g.G||document.mozPointerLockElement===g.G||document.webkitPointerLockElement===g.G)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=qa()+"/api/v1/dump?file="+a+"&format=bytes"),pa(a,null,!0,function(a,b,c){Jk(g,a,b,c)})}Qa(Y);
|
||||
function Y(a,b,c,d,e){var f=this;this.$c=ya("Gecko/");var g=["","moz","webkit","ms"];Ia.call(this,"Video",a,Y);this.ca=a.model;var h=Fk[this.ca]||Fk.mda;this.Ra=h[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=h[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.da=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.da/this.Nb);this.Y=b;
|
||||
this.W=c;this.G=(this.ae=d)||b||null;b=a.smoothing;(c=La.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<g.length;c++)d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.W[d]=b;this.rd=a.touchScreen;this.xc=Hk;this.K=null;this.Yd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.oa=Array(this.Ra==ek?256:16);this.La=!1;if(this.ba=e)if(this.ba.ke=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ba.ke){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange",
|
||||
"on"+d in document){document.addEventListener(d,function(){Ik(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Ik(f,null)},!1);break}}this.G&&(this.G.onfocus=function(){return f.Nf(!0)},this.G.onblur=function(){return f.Nf(!1)},this.G.Pd=this.G.requestPointerLock||this.G.mozRequestPointerLock||this.G.webkitRequestPointerLock,
|
||||
this.G.pj=this.G.exitPointerLock||this.G.mozExitPointerLock||this.G.webkitExitPointerLock,this.G.Pd&&(e=function(){f.bf(document.pointerLockElement===f.G||document.mozPointerLockElement===f.G||document.webkitPointerLockElement===f.G)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",
|
||||
e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=qa()+"/api/v1/dump?file="+a+"&format=bytes"),pa(a,null,!0,function(a,b,c){Jk(f,a,b,c)})}Qa(Y);
|
||||
var ek=7,Fk={mda:[1,7],cga:[3,3],ega:[5,3],vga:[ek,3]},Kk={2:{Jf:15700,If:208,Of:85,Pf:96},3:{Jf:18432,If:364,Of:85,Pf:96},4:{Jf:21850,If:364,Of:85,Pf:96},7:{Jf:16700,If:480,Of:85,Pf:83}},Lk={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},Gk=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192],[80,25,1,0,1]];Gk[13]=[320,200,8];Gk[14]=[640,200,8];Gk[15]=[640,350,8];Gk[16]=[640,350,8];
|
||||
Gk[17]=[640,480,8];Gk[18]=[640,480,8];Gk[19]=[320,200,1];Gk[20]=[320,240,4];Gk[21]=[320,400,4];Gk[0]=Gk[1];Gk[2]=Gk[3];Gk[5]=Gk[4];
|
||||
var Mk=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nk=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Ok=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Pk=[2,4,6],Qk=[3,5,7],Rk=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Sk=[0,255,65280,65535,16711680,16711935,16776960,
|
||||
|
|
@ -472,8 +473,8 @@ function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e
|
|||
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;d<c.length;d++)a.oa[d+1]=Ok[c[d]];return a.oa}if(a.S===a.Cb)return Ok;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.ze,e,f,g,h,k;if(8==b)for(f=0;256>f;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<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
|
||||
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=qd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(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){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
|
||||
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<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,rd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
|
||||
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=rd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(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){0<a.za||0<=a.ia?0>a.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.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}
|
||||
|
|
@ -487,7 +488,7 @@ 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
|
|||
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.R)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<d.gh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.ed!==m&&(d.ed=m,Bl(a));d.xe=0}m=d.ed;a.I&&(m<<=1);var c=c+m,p=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),p=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=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;0<p&&r<m.S.length;)m.S[r].Ha&&(m.S[r].Ha=x=!1,m.S[r].Ph=!0),p-=m.xb,r++;m=x}if(m){if(!e)return;if(!a.za){f=a.ia-d.ed;if(0>f)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<k&&d<g;)p=Lb(a.ha,c),p|=65536,p&e&&(a.za++,p&=h),d==m&&(p|=a.Ea&1?131072:0),a.qa&&p===a.R[d]||(yl(a,d%a.H,d/a.H|0,p,a.Ga),
|
||||
a.R[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=sl(a,h),x=p=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Lb(a.ha,k);if(a.qa&&z===a.R[d])p+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<r&&(r=p);for(var va=0;va<f;va++){var qd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x<J&&(J=x);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=
|
||||
a.R[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=sl(a,h),x=p=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Lb(a.ha,k);if(a.qa&&z===a.R[d])p+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<r&&(r=p);for(var va=0;va<f;va++){var rd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,p++,x,m[rd])}p>E&&(E=p);x<J&&(J=x);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;r<a.H&&(a.Ga.putImageData(a.Oa,0,0,r,J,E-r,W-J),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else if(a.Zc){g=h;f=a.za=0;e=sl(a,8);h=a.D.ud;p=m=0;x=a.H;r=0;E=a.L;J=0;W=a.D.Be[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.R[f]?(m+=va,va=0):a.R[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)vl(a.Oa,m++,p,e[d&255]),d>>=8;m>r&&(r=m);p<E&&(E=p);p>=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,x,
|
||||
E,r-x,J-E),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else{g=h;d=a.za=0;f=sl(a);e=a.D.ud;m=h=0;p=a.H;x=0;r=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(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){h<p&&(p=h);for(da=0;da<ua;da++)va=Tk[z&2155905152]||0,vl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<r&&(r=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p<a.H&&(a.Ga.putImageData(a.Oa,0,0,p,
|
||||
r,x-p,E-r),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}}}}function Dl(a,b){var c=0,d=tc(a.A)-b.wg;0>d&&(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)};
|
||||
|
|
@ -524,7 +525,7 @@ function am(a,b,c){Ia.call(this,"Disk",{id:a.lf+".disk"+ea(++bm,4)},am);this.con
|
|||
l.Ub=function(a,b){if(this.D){var c,d=0;if(this.S&&!ra("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=dm(this,!1);)if(d=c[0]){this.controller.Ba('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.D&&(c="action=close&volume="+this.H,c+="&machine="+this.controller.se(),c+="&user="+this.controller.Ad(),pa(qa()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
|
||||
function cm(a,b,c,d,e,f){a.mode=b;a.ib=c;a.jb=d;a.eb=e;a.nb=f;a.A=[];if("preload"!=a.mode){b=Array(a.ib);for(c=0;c<b.length;c++){d=Array(a.jb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=em(null,c,e,g,a.nb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
|
||||
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.nh=fa(b);var g=this;this.K=d;this.ha=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.ib=d[0];g.jb=d[1];g.eb=d[2];g.nb=512;b=g.nb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.jb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),W=0;W<J.length;W++){for(var da=em(null,c,E,W+1,g.nb,0),ua=da.data,va=0;va<
|
||||
b;va++,e+=4)var qd=ua[va]=a.getInt32(e,!0),d=d+qd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.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"):
|
||||
b;va++,e+=4)var rd=ua[va]=a.getInt32(e,!0),d=d+rd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.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"):
|
||||
ha(b,"/")&&(c="dir"),f=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.oe?"":d)+"&format=json"));return!!pa(f,null,!0,function(a,b,c){gm(g,a,b,c)})};
|
||||
function gm(a,b,c,d){var e=null;a.re=!1;var f=0>d&&a.ba&&!a.ba.ea.Rb;if(a.Af)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Sa(a.controller.lf,b,c);try{if(0<fa(a.nh,!0).toLowerCase().indexOf("-readonly"))a.re=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.re=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
|
||||
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)n(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
|
||||
|
|
|
|||
Loading…
Reference in a new issue