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
This commit is contained in:
parent
935ece2c26
commit
5e0e5b7256
16 changed files with 69 additions and 46 deletions
|
|
@ -460,7 +460,7 @@ function Nd(a,b){for(var c=0;c<a.G.length;c++)Al(a,c,b);if(a.ca>=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.ca<dh?(gh(a,Qp,4),a.aa|=jp):a.K&Nl||a.D&(jp|kp)||(xp(a,b,!0),Rp(a.C),gh(a,Qp,120))}function Sp(a,b,c,d){var e=a.B[b][1];w(a,c,null,d,"DIPSW-"+b,e,32768);return e}l.km=function(a,b){w(this,a,null,b,"CMOS.ADDR",this.W,4096);return this.W};
|
||||
|
|
@ -495,14 +495,14 @@ l.Xb=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))
|
|||
l.reset=function(){if(!this.C&&!this.D&&this.W){var a=1024*Ql(this.W);this.A&&a!=this.A&&(Bc(this.ka,this.C,this.A),this.B=!1);this.A=a}!this.B&&this.A&&oc(this.ka,this.C,this.A,1)&&(this.B=!0,"ramCPQ"==this.ce&&(this.controller=new eq(this),oc(this.ka,fq,4,4,this.controller)));if(this.B){if(this.F||Jc(this.ka,1138,4660),"ramCPQ"!=this.ce&&this.W&&(a=this.W,a.A)){var b=1048576>this.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<a.length;b++){var c=a[b],d=vb(c),d=new dq(d);yb(d,c)}});function qq(a){mb.call(this,"Keyboard",a,65536);rq(this,a.model);this.O=Ta("Mobi");this.Z=Ta("MSIE");Lb(this,"mobile keyboard support: "+(this.O?"true":"false"));this.N=0;this.Y=this.eh=!1;this.C=[];this.da=50;this.I=null;this.J=a.autoType;Ib(this)}ba(qq,mb);l=qq.prototype;
|
||||
$a(function(){for(var a=zb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=vb(c),d=new dq(d);yb(d,c)}});function qq(a){mb.call(this,"Keyboard",a,65536);rq(this,a.model);this.O=Ta("Mobi");this.Z=Ta("MSIE");Lb(this,"mobile keyboard support: "+(this.O?"true":"false"));this.N=0;this.Y=this.eh=!1;this.C=[];this.da=50;this.F=null;this.G=a.autoType;Ib(this)}ba(qq,mb);l=qq.prototype;
|
||||
l.Cb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.na[f])switch(b){case "kbd":case "screen":return c.onkeydown=function(a){return sq(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.B="";var b=!O[a]||!!(e.jc&tq);b||uq(e,a,!0);return b},c.onkeyup=function(a){return sq(e,a,!1)},!0;case "caps-lock":return this.na[f]=c,c.onclick=function(){e.pa&&e.pa.md();uq(e,vq,!0)},!0;case "num-lock":return this.na[f]=c,c.onclick=function(){e.pa&&e.pa.md();uq(e,wq,!0)},!0;case "scroll-lock":return this.na[f]=
|
||||
c,c.onclick=function(){e.pa&&e.pa.md();uq(e,xq,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==yq[g]&&"button"==a)return this.na[f]=c,c.onclick=function(a,b,c){return function(){a.pa&&a.pa.md();a.B="";zq(a,c,!0);uq(a,c,!0)}}(this,g,yq[g]),!0;if(void 0!==Aq[b])return this.N++,this.na[f]=c,a=function(a,b,c){return function(){a.B="";uq(a,c)}}(this,b,Aq[b]),b=function(a,b,c){return function(){Bq(a,c)}}(this,b,Aq[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=
|
||||
a,c.onmouseup=c.onmouseout=b),!0;if(d)return this.na[f]=c,c.onclick=function(){e.pa&&e.pa.md();d&&!e.B&&(e.B=d,Cq(e,150))},!0}return!1};function Dq(a,b,c){if(a.N){for(var d in na)if(b==na[d]){b=+d;(d=ma[d])&&(b=d);break}for(var e in Aq)if((d=Aq[e]==b)||(d=b,d>=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<a.A.length&&(a.A.shift(),(a.G=b)&&(a.A.length&&a.W?Pp(a.W,a.A[0]):b=!1),t(a)&&Lb(a,"scan codes shifted, notify "+(b?"true":"false")))}l.Xb=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){if(!this.ca&&this.W)switch(this.W.ca){case jl:case 5160:rq(this,Eq[0]);break;default:rq(this,Eq[1])}Gq(this);this.jc=this.D=0;this.A=[];this.G=!0;this.I=null;this.B=""};
|
||||
l.save=function(){var a=new Wf(this),b=[];b[0]=this.L;b[1]=this.K;a.set(0,b);return a.data()};l.restore=function(a){return Gq(this,a[0])};function Gq(a,b){var c=0;b||(b=[]);a.L=a.G=b[c++];a.K=b[c];a.F=0;return!0}function Cq(a,b){for(var c=0;0<a.B.length&&!c;)if(c=a.B.charAt(0),a.B=a.B.substr(1),c=c.charCodeAt(0),240<=c){b=100*(c-240)||150;c=0;break}c&&(10==c&&(c=13),uq(a,c,!0));0<a.B.length&&setTimeout(function(a){return function(){Cq(a,b)}}(a),b)}
|
||||
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.G=yd(a,"autoType")||this.G;Rf(c,33,this.Zm.bind(this))};l.Zm=function(){if(10==(this.H.D>>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<a.A.length&&(a.A.shift(),(a.J=b)&&(a.A.length&&a.W?Pp(a.W,a.A[0]):b=!1),t(a)&&Lb(a,"scan codes shifted, notify "+(b?"true":"false")))}l.Xb=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){if(!this.ca&&this.W)switch(this.W.ca){case jl:case 5160:rq(this,Eq[0]);break;default:rq(this,Eq[1])}Gq(this)};l.save=function(){var a=new Wf(this),b=[];b[0]=this.L;b[1]=this.K;a.set(0,b);return a.data()};
|
||||
l.restore=function(a){return Gq(this,a[0])};function Gq(a,b){var c=0;b?a.F=a.G:(b=[],a.F=null);a.L=b[c++];a.K=b[c];a.I=0;a.jc=a.D=0;a.A=[];a.J=!0;a.B="";return!0}function Cq(a,b){for(var c=0;0<a.B.length&&!c;)if(c=a.B.charAt(0),a.B=a.B.substr(1),c=c.charCodeAt(0),240<=c){b=100*(c-240)||150;c=0;break}c&&(10==c&&(c=13),uq(a,c,!0));0<a.B.length&&setTimeout(function(a){return function(){Cq(a,b)}}(a),b)}
|
||||
function zq(a,b,c,d){if(O[b]){var e=Math.floor(b/1E3)&2;if(b=Hq[b]||0){!e||b&Iq||(b>>=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&&0<a.C[0].vd&&(a.C[0].vd=0);for(var d,e=0;e<a.C.length;e++)if(d=a.C[e],d.ve==b){if(!c||0<=d.vd){e=-1;break}0<e&&(0<a.C[0].vd&&(a.C[0].vd=0),a.C.splice(e,1));break}0>e||(e==a.C.length&&(d={},d.ve=b,d.jc=a.jc,Dq(a,b,!0),e++),0<e&&a.C.splice(0,0,d),d.rf=!0,d.vd=c?-1:Hq[b]?0:1,Mq(a,d))}}
|
||||
function Bq(a,b,c){if(!O[b]||!(c||a.H&&a.H.ea.vb))return!1;for(var d=!1,e=0;e<a.C.length;e++){var f=a.C[e];if(f.ve==b||f.ve==na[b]){a.C.splice(e,1);f.dl&&clearTimeout(f.dl);f.rf&&!c&&Nq(a,f.ve,!1);Dq(a,b,!1);d=!0;break}}!a.C.length&&a.Y&&(zq(a,vq),a.Y=!1);return d}function Mq(a,b){if(!a.H||!a.H.ea.vb)Bq(a,b.ve,!0);else if(Nq(a,b.ve,b.rf)&&b.vd){var c;if(0>b.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)}}
|
||||
|
|
|
|||
Loading…
Reference in a new issue