From d527e1bbe3f7e594117ab10de558ea237cb248ec Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Mon, 19 Jun 2017 08:48:42 -0700 Subject: [PATCH] Updated the VisiCalc demo with an autoType sequence, a fresh disk image, new state file, and reference cards; also, updated autoType support to cancel autoType if a saved machine state is loaded --- versions/pcx86/1.35.0/pcx86-dbg.js | 12 ++++++------ versions/pcx86/1.35.0/pcx86.js | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/versions/pcx86/1.35.0/pcx86-dbg.js b/versions/pcx86/1.35.0/pcx86-dbg.js index 2fea25761..4f9c7de28 100644 --- a/versions/pcx86/1.35.0/pcx86-dbg.js +++ b/versions/pcx86/1.35.0/pcx86-dbg.js @@ -460,7 +460,7 @@ function Nd(a,b){for(var c=0;c=dh){b=a.H.T.td; l.mo=function(a,b,c){w(this,a,b,c,"PPI_B");cp(this,b)};function cp(a,b){var c=!!(b&dp),d=!!(a.J&dp);a.J=b;a.C&&ep(a.C,!(b&ap),!!(b&Oo));c!=d&&Um(a,c)}l.Jm=function(a,b){var c=0,c=(this.ca|0)==jl?this.J&Mo?c|this.B[1][1]&fp:c|this.B[1][1]>>4&1:this.J&gp?c|this.B[0][1]>>4:c|this.B[0][1]&15;this.J&Lo&&Al(this,vo).gd&&(c=this.J&dp?c|hp:c|ip);w(this,a,null,b,"PPI_C",c,32896);return c};l.no=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Km=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c}; l.oo=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Tl=function(a,b){var c=this.C?bp(this.C):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~jp;return c};l.vn=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Sl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.un=function(a,b,c){w(this,a,b,c,"8041_CTRL");cp(this,b)};l.Ul=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c}; l.Vl=function(a,b){var c=this.oa;w(this,a,null,b,"8042_OUTBUFF",c,16384);this.D&=~(jp|kp);this.C&&lp(this.C);return c}; -l.xn=function(a,b,c){w(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.D&mp)switch(this.L){case np:op(this,b);break;case pp:qp(this,b);break;default:if(op(this,this.K&~Nl),this.C){a=this.C;c=b;var d=-1;t(a)&&Lb(a,"sendCmd("+r(c)+")");switch(a.F||c){case rp:d=sp;tp(a);break;case up:a.F&&(c=0);vp(a,sp);a.F=c;break;case wp:a.F&&(c=0);vp(a,sp);a.F=c;break;default:Lb(a,"sendCmd(): unrecognized command")}xp(this,d)}}this.L=b;this.D&=~mp}; +l.xn=function(a,b,c){w(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.D&mp)switch(this.L){case np:op(this,b);break;case pp:qp(this,b);break;default:if(op(this,this.K&~Nl),this.C){a=this.C;c=b;var d=-1;t(a)&&Lb(a,"sendCmd("+r(c)+")");switch(a.I||c){case rp:d=sp;tp(a);break;case up:a.I&&(c=0);vp(a,sp);a.I=c;break;case wp:a.I&&(c=0);vp(a,sp);a.I=c;break;default:Lb(a,"sendCmd(): unrecognized command")}xp(this,d)}}this.L=b;this.D&=~mp}; l.Wl=function(a,b){var c=this.J&~(yp|zp)|(Dd(this.H)&64?zp:0);w(this,a,null,b,"8042_RWREG",c,16384);return c};l.yn=function(a,b,c){w(this,a,b,c,"8042_RWREG",null,16384);cp(this,b)};l.Xl=function(a,b){w(this,a,null,b,"8042_STATUS",this.D,16384);a=this.D&255;this.D&kp&&(this.D|=jp,this.D&=~kp);return a}; l.wn=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=mp;a=0;this.L>=Ap&&(a=this.L^15,this.L=Ap);switch(this.L){case Bp:xp(this,this.K);break;case Cp:op(this,this.K|Nl);break;case Dp:op(this,this.K&~Nl);this.C&&lp(this.C);break;case Ep:this.C&&(a=this.C,a.A=[],t(a)&&Lb(a,"scan codes flushed"));op(this,this.K|Nl);xp(this,Fp);qp(this,Xl|Yl);break;case Gp:xp(this,Hp);break;case Ip:xp(this,this.M);break;case Jp:xp(this,this.qa);break;case Kp:xp(this,this.K&Nl?0:Lp);break;case Ap:a& 1&&jf(this.H)}};function op(a,b){a.K=b;a.D=a.D&~Mp|b&Np;a.C&&ep(a.C,!!(b&Op),!(b&Nl))}function xp(a,b,c){0<=b&&(a.oa=b,c?a.D|=jp:(a.D&=~jp,a.D|=kp))}function qp(a,b){a.qa=b;nc(a.ka,!!(b&Yl));b&Xl||jf(a.H)}function Pp(a,b){a.cathis.C?$l: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;jm(a)}}else gb("No RAM allocated")}; l.save=function(){var a=new Wf(this);this.controller&&a.set(0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function eq(a){this.D=a;this.B=gq;this.H=hq;this.C=iq;this.A=null}l=eq.prototype;l.save=function(){return[this.B,this.C]};l.restore=function(a){this.fc(0,a[0]&255);this.fc(2,a[1]&255);return!0};l.Ia=function(a){var b=255;2>a?b=a&1?this.H>>8:this.H&255:4>a&&(b=a&1?this.C>>8:this.C&255);return b}; l.fc=function(a,b){if(a)2==a&&(this.C=this.C&-256|b);else if(b!=(this.B&255)){a=this.D.ka;if(b&jq)this.A&&(wc(a,kq,lq,this.A),this.A=null);else{this.A||(this.A=xc(a,kq,lq));var c=xc(a,mq,lq);wc(a,kq,lq,c,b&nq?1:Dc)}this.B=this.B&-256|b}};l.wj=function(){return oq};l.gh=function(){return pq};var fq=-2134900736,mq=16646144,kq=917504,lq=131072,jq=1,nq=2,gq=65535,hq=2575,iq=2,oq=[null,0],pq=[function(a){return this.controller.Ia(a)},null,null,function(a,b){this.controller.fc(a,b)},null,null]; -$a(function(){for(var a=zb(document,"pcx86","ram"),b=0;b=n.ee&&d<=n.z&&(d-=n.ee-n.de),d=Aq[e]==d),d){(a=a.na["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}} -l.uc=function(a,b,c,d){this.pa=a;this.ka=b;this.H=c;this.ba=d;this.W=Wb(a,"ChipSet");this.J=yd(a,"autoType")||this.J;Rf(c,33,this.Zm.bind(this))};l.Zm=function(){if(10==(this.H.D>>8&255)&&!this.I&&this.J){var a=this.I=this.J;a&&!this.B&&(this.B=a,Cq(this,150))}return!0};function rq(a,b){var c=0;a.ca=null;"string"==typeof b&&(a.ca=b.toUpperCase(),c=Eq.indexOf(a.ca),0>c&&(c=0));if(b=Eq[c])a.aa=parseInt(b.substr(2),10)}function tp(a){Lb(a,"keyboard reset",65792);a.A=[];vp(a,Fq)} -function ep(a,b,c){a.L!==c&&(a.L=a.M=c)&&(a.G=!0);a.K!==b&&(a.K=b)&&!a.M&&Rp(a,!0);a.K&&a.M&&(tp(a),a.M=!1)}function vp(a,b){a.W&&(a.A.unshift(b),a.G=!0,Pp(a.W,b))}function lp(a){var b=0;a.A.length&&a.G&&(b=a.A[0],a.W&&Pp(a.W,b));t(a)&&Lb(a,b?"scan code "+r(b)+" available":"no scan codes available")}function bp(a){var b=0;a.A.length&&(b=a.A[0]);t(a)&&Lb(a,"scan code "+r(b)+" delivered");return b} -function Rp(a,b){0>8&255)&&!this.F&&this.G){var a=this.F=this.G;a&&!this.B&&(this.B=a,Cq(this,150))}return!0};function rq(a,b){var c=0;a.ca=null;"string"==typeof b&&(a.ca=b.toUpperCase(),c=Eq.indexOf(a.ca),0>c&&(c=0));if(b=Eq[c])a.aa=parseInt(b.substr(2),10)}function tp(a){Lb(a,"keyboard reset",65792);a.A=[];vp(a,Fq)} +function ep(a,b,c){a.L!==c&&(a.L=a.M=c)&&(a.J=!0);a.K!==b&&(a.K=b)&&!a.M&&Rp(a,!0);a.K&&a.M&&(tp(a),a.M=!1)}function vp(a,b){a.W&&(a.A.unshift(b),a.J=!0,Pp(a.W,b))}function lp(a){var b=0;a.A.length&&a.J&&(b=a.A[0],a.W&&Pp(a.W,b));t(a)&&Lb(a,b?"scan code "+r(b)+" available":"no scan codes available")}function bp(a){var b=0;a.A.length&&(b=a.A[0]);t(a)&&Lb(a,"scan code "+r(b)+" delivered");return b} +function Rp(a,b){0>=1);if(b&Jq){if(!1===d)return!0;d=null}null==d?d=!((c?a.D:a.jc)&b):d||b&Kq&&(b=Kq);if(c){a.D&=~b;d&&(a.D|=b);c=b;var f,g;for(g in Lq)d="led-"+g,e=Lq[g],c&&c!=e||!(f=a.na[d])||(f.style.backgroundColor=a.D&e?"#00ff00":"#000000")}else a.jc&=~b,d&&(a.jc|=b);return!0}}return!1} function uq(a,b,c){if((O[b]||O[b+=1E3])&&a.H&&a.H.ea.vb){Hq[b]&&a.C.length&&0e||(e==a.C.length&&(d={},d.ve=b,d.jc=a.jc,Dq(a,b,!0),e++),0b.vd){if(!b.rf){Bq(a,b.ve);return}b.rf=!1;c=a.da}else c=1==b.vd++?500:100;b.dl=setTimeout(function(a){return function(){Mq(a,b)}}(a),c)}} diff --git a/versions/pcx86/1.35.0/pcx86.js b/versions/pcx86/1.35.0/pcx86.js index 0d76e69fa..6dc2b6c41 100644 --- a/versions/pcx86/1.35.0/pcx86.js +++ b/versions/pcx86/1.35.0/pcx86.js @@ -435,7 +435,7 @@ function Yl(a,b,c){var d=a.H[b];if(d.Hd&&(b!=fm||a.J&um)){var e=Yc(a.U,a.V),f=(e function ad(a,b){for(var c=0;c=Ef){b=a.U.R.Xc;c=Yc(a.U,a.V);null==a.xa&&(a.na=Yc(a.U,a.V),a.Ha=1024,a.xa=Math.floor(a.U.R.Xc/a.Ha),Nk(a));c>=a.X&&(a.A[Kk]|=Bm,a.A[dd]&ed&&(a.A[Kk]|=Cm,Hf(a,Dm)),a.X=c+a.xa);a.A[xk]==a.A[yk]&&a.A[zk]==a.A[Ak]&&a.A[Bk]==a.A[Ck]&&(a.A[Kk]|=Em,a.A[dd]&Fm&&(a.A[Kk]|=Cm,Hf(a,Dm)));var d=c-a.na,e=Math.floor(d/b);if(e&&!(a.A[dd]&Gm)){for(;e--;)if(60<=++a.A[xk]&&(a.A[xk]=0,60<=++a.A[zk]&&(a.A[zk]=0,24<=++a.A[Bk]))){a.A[Bk]=0;a.A[Dk]=a.A[Dk]% 7+1;var f;f=a.A[Gk];var g=za[a.A[Fk]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Ek]>f&&(a.A[Ek]=1,12<++a.A[Fk]&&(a.A[Fk]=1,a.A[Gk]=(a.A[Gk]+1)%100))}a.A[Kk]|=Hm;a.A[dd]&Mm&&(a.A[Kk]|=Cm,Hf(a,Dm))}a.na=c-d%b}}k.sl=function(){var a=this.ua;this.ga&Nm&&(this.J&Om?a=this.C[0][1]:this.B&&(a=Pm(this.B)));return a};k.Nm=function(a,b){this.ua=b};k.tl=function(){return this.J};k.Om=function(a,b){Qm(this,b)}; function Qm(a,b){var c=!!(b&Rm),d=!!(a.J&Rm);a.J=b;a.B&&Sm(a.B,!(b&Om),!!(b&xm));c!=d&&Pk(a,c)}k.ul=function(){var a=0,a=(this.aa|0)==zj?this.J&vm?a|this.C[1][1]&Tm:a|this.C[1][1]>>4&1:this.J&Um?a|this.C[0][1]>>4:a|this.C[0][1]&15;this.J&um&&Yl(this,fm).Lc&&(a=this.J&Rm?a|Vm:a|Wm);return a};k.Pm=function(a,b){this.Ba=b};k.vl=function(){return this.ga};k.Qm=function(a,b){this.ga=b};k.Ek=function(){var a=this.B?Pm(this.B):0;this.Z&=~Xm;return a};k.Zl=function(){};k.Dk=function(){return this.J}; -k.Yl=function(a,b){Qm(this,b)};k.Fk=function(){return this.Z};k.Gk=function(){var a=this.pa;this.F&=~(Xm|Ym);this.B&&Zm(this.B);return a};k.am=function(a,b){if(this.F&$m)switch(this.L){case an:bn(this,b);break;case cn:dn(this,b);break;default:if(bn(this,this.K&~Yj),this.B){a=this.B;var c=b,d=-1;switch(a.D||c){case en:d=fn;a.Jb=[];gn(a,hn);break;case jn:a.D&&(c=0);gn(a,fn);a.D=c;break;case kn:a.D&&(c=0),gn(a,fn),a.D=c}ln(this,d)}}this.L=b;this.F&=~$m}; +k.Yl=function(a,b){Qm(this,b)};k.Fk=function(){return this.Z};k.Gk=function(){var a=this.pa;this.F&=~(Xm|Ym);this.B&&Zm(this.B);return a};k.am=function(a,b){if(this.F&$m)switch(this.L){case an:bn(this,b);break;case cn:dn(this,b);break;default:if(bn(this,this.K&~Yj),this.B){a=this.B;var c=b,d=-1;switch(a.G||c){case en:d=fn;a.Jb=[];gn(a,hn);break;case jn:a.G&&(c=0);gn(a,fn);a.G=c;break;case kn:a.G&&(c=0),gn(a,fn),a.G=c}ln(this,d)}}this.L=b;this.F&=~$m}; k.Hk=function(){return this.J&~(mn|nn)|(Yc(this.U)&64?nn:0)};k.bm=function(a,b){Qm(this,b)};k.Ik=function(){var a=this.F&255;this.F&Ym&&(this.F|=Xm,this.F&=~Ym);return a}; k.$l=function(a,b){this.L=b;this.F|=$m;a=0;this.L>=on&&(a=this.L^15,this.L=on);switch(this.L){case pn:ln(this,this.K);break;case qn:bn(this,this.K|Yj);break;case rn:bn(this,this.K&~Yj);this.B&&Zm(this.B);break;case sn:this.B&&(this.B.Jb=[]);bn(this,this.K|Yj);ln(this,tn);dn(this,ik|jk);break;case un:ln(this,vn);break;case wn:ln(this,this.M);break;case xn:ln(this,this.qa);break;case yn:ln(this,this.K&Yj?0:zn);break;case on:a&1&&le(this.U)}}; function bn(a,b){a.K=b;a.F=a.F&~An|b&Bn;a.B&&Sm(a.B,!!(b&Cn),!(b&Yj))}function ln(a,b,c){0<=b&&(a.pa=b,c?a.F|=Xm:(a.F&=~Xm,a.F|=Ym))}function dn(a,b){a.qa=b;Pb(a.ma,!!(b&jk));b&ik||le(a.U)}function Dn(a,b){a.aathis.B?mk: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;wk(a)}}else r("No RAM allocated")}; k.save=function(){var a=new Qe(this);this.controller&&a.set(0,this.controller.save());return a.data()};k.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function Tn(a){this.F=a;this.C=Vn;this.D=Wn;this.B=Xn;this.A=null}k=Tn.prototype;k.save=function(){return[this.C,this.B]};k.restore=function(a){this.Dc(0,a[0]&255);this.Dc(2,a[1]&255);return!0};k.Eb=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}; k.Dc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){a=this.F.ma;if(b&Yn)this.A&&(Wb(a,Zn,$n,this.A),this.A=null);else{this.A||(this.A=Xb(a,Zn,$n));var c=Xb(a,ao,$n);Wb(a,Zn,$n,c,b&bo?1:cc)}this.C=this.C&-256|b}};k.ti=function(){return co};k.qg=function(){return eo};var Un=-2134900736,ao=16646144,Zn=917504,$n=131072,Yn=1,bo=2,Vn=65535,Wn=2575,Xn=2,co=[null,0],eo=[function(a){return this.controller.Eb(a)},null,null,function(a,b){this.controller.Dc(a,b)},null,null]; -Ma(function(){for(var a=eb(document,"pcx86","ram"),b=0;b=n.Dd&&d<=n.z&&(d-=n.Dd-n.Cd),d=po[e]==d),d){(a=a.ia["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}} -k.hc=function(a,b,c,d){this.oa=a;this.ma=b;this.U=c;this.Ea=d;this.V=vb(a,"ChipSet");this.H=Mc(a,"autoType")||this.H;Me(c,33,this.Kl.bind(this))};k.Kl=function(){if(10==(this.U.F>>8&255)&&!this.G&&this.H){var a=this.G=this.H;a&&!this.B&&(this.B=a,ro(this,150))}return!0};function go(a,b){var c=0;a.aa=null;"string"==typeof b&&(a.aa=b.toUpperCase(),c=to.indexOf(a.aa),0>c&&(c=0));if(b=to[c])a.X=parseInt(b.substr(2),10)} -function Sm(a,b,c){a.J!==c&&(a.J=a.K=c)&&(a.F=!0);a.I!==b&&(a.I=b)&&!a.K&&Fn(a,!0);a.I&&a.K&&(a.Jb=[],gn(a,hn),a.K=!1)}function gn(a,b){a.V&&(a.Jb.unshift(b),a.F=!0,Dn(a.V,b))}function Zm(a){var b;a.Jb.length&&a.F&&(b=a.Jb[0],a.V&&Dn(a.V,b))}function Pm(a){var b=0;a.Jb.length&&(b=a.Jb[0]);return b}function Fn(a,b){0>8&255)&&!this.D&&this.F){var a=this.D=this.F;a&&!this.B&&(this.B=a,ro(this,150))}return!0};function go(a,b){var c=0;a.aa=null;"string"==typeof b&&(a.aa=b.toUpperCase(),c=to.indexOf(a.aa),0>c&&(c=0));if(b=to[c])a.X=parseInt(b.substr(2),10)} +function Sm(a,b,c){a.J!==c&&(a.J=a.K=c)&&(a.H=!0);a.I!==b&&(a.I=b)&&!a.K&&Fn(a,!0);a.I&&a.K&&(a.Jb=[],gn(a,hn),a.K=!1)}function gn(a,b){a.V&&(a.Jb.unshift(b),a.H=!0,Dn(a.V,b))}function Zm(a){var b;a.Jb.length&&a.H&&(b=a.Jb[0],a.V&&Dn(a.V,b))}function Pm(a){var b=0;a.Jb.length&&(b=a.Jb[0]);return b}function Fn(a,b){0>=1);if(b&xo){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.Sb)&b):d||b&yo&&(b=yo);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in zo)d="led-"+g,e=zo[g],c&&c!=e||!(f=a.ia[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.Sb&=~b,d&&(a.Sb|=b);return!0}}return!1} function jo(a,b,c){if((V[b]||V[b+=1E3])&&a.U&&a.U.ca.Ib){vo[b]&&a.A.length&&0e||(e==a.A.length&&(d={},d.Td=b,d.Sb=a.Sb,so(a,b,!0),e++),0