Return to work on v1.20.4

This commit is contained in:
Jeff Parsons 2016-01-09 16:34:03 -08:00
commit a63b5326c0
155 changed files with 160 additions and 160 deletions

View file

@ -11,7 +11,7 @@
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
<xsl:variable name="APPCLASS">pcjs</xsl:variable>
<xsl:variable name="APPVERSION">1.20.3</xsl:variable>
<xsl:variable name="APPVERSION">1.20.4</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
<xsl:template name="componentStyles">

View file

@ -1187,7 +1187,7 @@ var qd=Mp(a,qg,ki);if(void 0!==qd)switch(qd=qd*ln|0,ki){case "x":a.Z.yf(qd,0);br
Ta);break a}}rd&&("on"==g[2]?(a.qc|=rd,tc=!0):"off"==g[2]&&(a.qc&=~rd,tc=!1))}var ur=0,Sc="";for(sc in Ep)if(!Ta||Ta==sc){var vr=!!(a.qc&Ep[sc]);if(null===tc||tc==vr)Sc&&(Sc+=","),++ur%10||(Sc+="\n\t"),"key"==sc&&(sc="keys"),Sc+=sc}void 0===Ta&&a.U("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.U((null!==tc?tc?"messages on: ":"messages off: ":"message categories:\n\t")+(Sc||"none"));sp(a)}break;case "o":var li=g[1],wr=g[2];if(li&&"?"!=li){var mi=Mp(a,li,"port #"),ni=Mp(a,
wr);void 0!==mi&&void 0!==ni&&(nc(a.ja,mi,1,ni),a.U(ga(mi)+": "+fa(ni)))}else a.U("output commands:"),a.U("\to [p] [b]\twrite byte [b] to port [p]"),a.U("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Sq(a,b.substr(5));break}var mn="pr"==g[0]?1:0,Xd=1+mn;if(a.O)a.U("step in progress");else{var rg,nn=!1,lb=qp(a,v(a.M),a.M.Ba.ga);do switch(rg=!1,a.Xa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:bq(a,lb,1);rg=!0;break;case 204:case 206:a.O=
Xd;bq(a,lb,1);break;case 205:case 224:case 225:case 226:a.O=Xd;bq(a,lb,lb.Sb?4:2);break;case 232:a.O=Xd;bq(a,lb,lb.Sb?5:3);break;case 154:a.O=Xd;bq(a,lb,lb.Sb?7:5);break;case 255:var on=a.vb(lb)&14591;if(4351==on||6399==on)a.O=Xd,zq(a,lb);break;case 243:case 242:bq(a,lb,1);nn=rg=!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:nn&&(a.O=Xd,bq(a,lb,1))}while(rg);a.O?(a.Pd(a.A,lb,!0),a.Fe()||(a.M.bd(),a.O=0)):Uq(a,
mn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}rq(a,g);break;case "t":Uq(a,g[0],g[1]);break;case "u":sq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Pq(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.3 ("+a.M.na+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Re;void 0!==g[3]&&(Re=+g[3]);switch(g[2]){case "int":a.M.ba.af=Re;break;case "start":a.M.ba.Af=Re;break;case "stop":a.M.ba.cf=Re;
mn?"tr":"t")}break;case "r":if("reset"==b){a.ia&&a.ia.reset();break}rq(a,g);break;case "t":Uq(a,g[0],g[1]);break;case "u":sq(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Pq(a,b.substr(3))||(d=!1);break}a.U("PCjs version 1.20.4 ("+a.M.na+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Re;void 0!==g[3]&&(Re=+g[3]);switch(g[2]){case "int":a.M.ba.af=Re;break;case "start":a.M.ba.Af=Re;break;case "stop":a.M.ba.cf=Re;
break;default:a.U("unknown cs option");break a}void 0!==Re&&Oc(a.M);a.U("checksums "+(a.M.sa.Re?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Zc(a.M,+g[2])||a.U("warning: using 1x multiplier, previous target not reached"));a.U("target speed: "+(a.M.ba.ze.toFixed(2)+"Mhz")+" ("+a.M.ba.Ud+"x)");break;default:a.U("unknown option: "+g[1])}else a.U("execution options:"),a.U("\tcs int #\tset checksum cycle interval to #"),a.U("\tcs start #\tset checksum cycle start count to #"),a.U("\tcs stop #\tset checksum cycle stop count to #"),
a.U("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Sq(a,b.substr(1));break}var Se="commands:",oi;for(oi in xp)Se+="\n"+na(oi,7)+xp[oi];Hf(a)||(Se+="\nnote: frequency/history disabled if no exec breakpoints");a.U(Se);break;default:a.U("unknown command: "+b),d=!1}}}catch(pn){a.U("debugger error: "+(pn.stack||pn.message)),d=!1}return d}function up(a,b,c){b=kq(a,b,c);for(var d in b)if(!yq(a,b[d]))return!1;return!0}
Qa(function(){for(var a=kb(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=ib(c),d=new pp(d);jb(d,c)}});function We(a,b,c){this.id=a.id;this.key=Wq(a,b,c);this.ma=a.ma;Xq(this,a.kk)}function Wq(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
@ -1195,14 +1195,14 @@ We.prototype={constructor:We,value:function(){return this[this.id]},data:functio
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function Xq(a,b){a[a.id]={};b&&Xe(a,"parms",b);a.A=!1}function Yq(a){var b=!0;if(Fa()){var c=JSON.stringify(a[a.id]);Ha(a.key,c)||(Ba("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Zq(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Ba(c.message||c),b=!1}return b}function $q(a,b){return a[a.id][b]||null}function Xe(a,b,c){try{a[a.id][b]=c}catch(d){}}
function ar(a,b,c){Wa.call(this,"Computer",a,ar,67108864);this.sa.tc=!1;this.Y=a.busWidth||a.buswidth;this.Kc=br;this.O=null;this.R=this.W=!1;this.da=b?b.url:null;this.ka=(Math.random()+.1).toString(36).substr(2,12);this.A=cr(this);if(this.M=hb("CPU",this.id)){this.ma=hb("Debugger",this.id);this.ja=new Nb({id:this.gk+".bus",buswidth:this.Y},this.M,this.ma);var d,e=fb(this.id);if((this.Xd=hb("Panel",this.id))&&this.Xd.uf)for(b=0;b<e.length;b++)d=e[b],d.Va=this.Xd.Va,d.U=this.Xd.U,d.uf=this.Xd.uf;for(b=
0;b<e.length;b++)d=e[b],d.Hc&&d.Hc(this,this.ja,this.M,this.ma);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.ng=d:this.Kc=parseInt(d,10));var f;if(a=$a&&$a.state||(f=!0,a.state))b=this.ia=a,f||(this.R=!0,this.Kc=br),this.Kc&&(this.P=new We(this,dr),this.P.load()?b=null:delete this.P);!b&&this.Kc&&(f=null,this.A&&(f=Aa()+"/api/v1/user?req=load&user="+this.A+"&state="+Wq(this,dr)),b=f)&&(this.R=!0);b?za(b,!0,null,this,this.jk):sb(this);c||er(this,this.Dg)}else Ba("Unable to find CPU component")}
eb(ar);var dr="1.20.3",br=0;h=ar.prototype;h.Ze=function(){return this.ka};h.ke=function(){return this.A?this.A:""};h.jk=function(a,b,c){c?(this.ng=null,this.R=!1,this.Va("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(this.O=b,this.W=!0);sb(this)};function er(a,b,c){for(var d=fb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){er(a,b,c)});return}}b.call(a,c)}
eb(ar);var dr="1.20.4",br=0;h=ar.prototype;h.Ze=function(){return this.ka};h.ke=function(){return this.A?this.A:""};h.jk=function(a,b,c){c?(this.ng=null,this.R=!1,this.Va("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(this.O=b,this.W=!0);sb(this)};function er(a,b,c){for(var d=fb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){er(a,b,c)});return}}b.call(a,c)}
function fr(a,b){var c=new We(a,dr,"validate");if(c.load()&&Zq(c)){var d=$q(c,"timestamp"),e=b?$q(b,"timestamp"):"unknown";d!=e&&(a.Va("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.Dg=function(a){void 0===a&&(a=this.Kc||(this.O?1:br));var b=!1,c=!1;this.Z=!1;var d=this.P||new We(this,dr);if(-1==a)b=!0;else if(a>br){if(d.load(this.O)){this.C=new We(this,dr,"failsafe");this.C.load()&&(gr(this,d),a=2,Xq(this.C));Xe(this.C,"timestamp",sa());Yq(this.C);var e=this.Kc&&!this.R;if(1==a||Ca("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Zq(d)){var f=$q(d,"code"),g=$q(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=g?(this.Va("Error: "+
g),"unable to verify user"==g&&(Ha("user",""),this.A=null)):this.U(f+": "+g),Xq(d),d.load()?(c=Zq(d),e=!0):c=!1))}e&&fr(this,c?d:null)}else 2==a&&d.clear()}else fr(this);delete this.O;delete this.P}e=fb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.M&&(c=hr(this,g,d,b,c));b=[d,a,c];-1!=a?er(this,this.Bi,b):this.Bi(b)};
function hr(a,b,c,d,e){if(!b.sa.tc){b.sa.tc=!0;if(b.mc){var f=null;e&&((f=$q(c,b.id))||(f=$q(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.mc(f,d)&&f&&(Ba("Unable to restore state for "+b.type),a.ia&&!a.W?(c.clear(),a.Kc=br,window&&window.location.reload()):a.Z=!0,b.mc(null),e=!1)}if(!d&&b.ek)for(a=b.ek.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Bi=function(a){var b=a[0],c=0>a[1];a=a[2];this.sa.tc=!0;this.fk||(this.U("PCjs v"+dr+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.fk=!0);this.M&&(hr(this,this.M,b,c,a),Tc(this.M));this.Z&&(gr(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C)};
function gr(a,b){if(Ca("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.da,d=a.ke(),e=b.toString(),f={app:"PCjs"};f.ver=dr;f.url=c;f.user=d;f.type="bug";f.data=e;za("http://www.pcjs.org/api/v1/report",!0,f)}}
function Vq(a,b,c){var d,e="none",f=new We(a,dr),g=new We(a,dr,"validate"),k=sa();Xe(g,"timestamp",k);Xe(f,"timestamp",k);Xe(f,"version","1.20.3");Xe(f,"url",window?window.location.href:null);Xe(f,"browser",window?window.navigator.userAgent:"");a.M&&a.M.lc&&(c&&a.M.Zb(),d=a.M.lc(b,c),"object"===typeof d&&Xe(f,a.M.id,d),c&&(a.M.sa.tc=!1,!1===d&&(e=null)));for(var k=fb(a.id),q=0;q<k.length;q++){var r=k[q];r.sa.tc&&(r.lc&&(d=r.lc(b,c),"object"===typeof d&&Xe(f,r.id,d)),c&&(r.sa.tc=!1,!1===d&&(e=null)))}e&&
function Vq(a,b,c){var d,e="none",f=new We(a,dr),g=new We(a,dr,"validate"),k=sa();Xe(g,"timestamp",k);Xe(f,"timestamp",k);Xe(f,"version","1.20.4");Xe(f,"url",window?window.location.href:null);Xe(f,"browser",window?window.navigator.userAgent:"");a.M&&a.M.lc&&(c&&a.M.Zb(),d=a.M.lc(b,c),"object"===typeof d&&Xe(f,a.M.id,d),c&&(a.M.sa.tc=!1,!1===d&&(e=null)));for(var k=fb(a.id),q=0;q<k.length;q++){var r=k[q];r.sa.tc&&(r.lc&&(d=r.lc(b,c),"object"===typeof d&&Xe(f,r.id,d)),c&&(r.sa.tc=!1,!1===d&&(e=null)))}e&&
(c?(k=d=!1,b?(a.A&&ir(a,a.A,f.toString()),Yq(g)&&Yq(f)||(e=null,d=k=!0)):a.Kc&&(d=!0,k=3==a.Kc),d&&f.clear(k)):e=f.toString());c&&(a.sa.tc=!1);return e}h.reset=function(){this.ja&&this.ja.reset&&(nb(this,"Resetting "+this.ja.type),this.ja.reset());for(var a=fb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ja&&c.reset&&(nb(this,"Resetting "+c.type),c.reset())}};h.start=function(a,b){for(var c=fb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
h.stop=function(a,b){for(var c=fb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};h.Yb=function(a,b,c){var d=this;switch(b){case "save":return this.ya[b]=c,c.onclick=function(){var a=cr(d,!0);if(a){var b=!!(d.Kc&&!d.ng||d.ia),c=Vq(d,b);b?ir(d,a,c):d.Va("Resume disabled, machine state not saved")}},!0;case "reset":return this.ya[b]=c,c.onclick=function(){Yc(d)},!0}return!1};
function cr(a,b){var c=a.A;c||(c=Ga("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=jr(a,c))||a.Va("The user ID is invalid."))):b&&a.Va("Browser local storage is not available"));return c}
@ -1215,6 +1215,6 @@ function mr(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{if(c){var k=b;k&&
null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,k)}}a?e?xr(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function xr(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");za(e,!0,null,null,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=k[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(f);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);k[0]!=q&&(g=g.replace(k[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);xr(a,b,c)}})}else c(a,null)}
function yr(a,b,c,d){function e(a){if(void 0===k){var b=g&&kb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ma(a))}function f(a){e("Error: "+a);q&&(--kr||Ua(!0));q=!1}var g,k,q=!0;kr++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.3/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--kr||Ua(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
function yr(a,b,c,d){function e(a){if(void 0===k){var b=g&&kb(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=ma(a))}function f(a){e("Error: "+a);q&&(--kr||Ua(!0));q=!1}var g,k,q=!0;kr++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.4/components.xsl");var r=function(d,k){if(k){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=k.transformNode(q);r?(g.outerHTML=r,--kr||Ua(!0)):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(k,window.document))?g.parentNode?(g.parentNode.replaceChild(r,g),--kr||Ua(!0)):f("invalid machine element: "+a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(d)};k?lr(c,null,null,!1,e,q):f("failed to load XML file: "+b)}else f(d)};"<"!=b.charAt(0)?lr(b,a,d,!0,e,r):mr(b,null,a,d,!1,e,r)}else f("missing machine element: "+
a)}catch(x){f(x.message)}return q}window.embedPC=function(a,b,c,d){Ua(!1);return yr(a,b,c,d)};window.enableEvents=Ua;window.sendEvent=Va;})();

View file

@ -1018,14 +1018,14 @@ Pd.prototype={constructor:Pd,value:function(){return this[this.id]},data:functio
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function zm(a,b){a[a.id]={};b&&D(a,"parms",b);a.A=!1}function Am(a){var b=!0;if(ua()){var c=JSON.stringify(a[a.id]);wa(a.key,c)||(ra("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Bm(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){ra(c.message||c),b=!1}return b}function Cm(a,b){return a[a.id][b]||null}function D(a,b,c){try{a[a.id][b]=c}catch(d){}}
function Dm(a,b,c){Ia.call(this,"Computer",a,Dm);this.ja.fc=!1;this.R=a.busWidth||a.buswidth;this.pc=Em;this.H=null;this.F=this.T=!1;this.S=b?b.url:null;this.W=(Math.random()+.1).toString(36).substr(2,12);this.B=Fm(this);if(this.A=Ta("CPU",this.id)){this.Sa=Ta("Debugger",this.id);this.ma=new pb({id:this.Bh+".bus",buswidth:this.R},this.A,this.Sa);var d,e=Ra(this.id);if((this.md=Ta("Panel",this.id))&&this.md.eg)for(b=0;b<e.length;b++)d=e[b],d.Ja=this.md.Ja,d.gc=this.md.gc,d.eg=this.md.eg;for(b=0;b<
e.length;b++)d=e[b],d.wc&&d.wc(this,this.ma,this.A,this.Sa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.pf=d:this.pc=parseInt(d,10));var k;if(a=La&&La.state||(k=!0,a.state))b=this.K=a,k||(this.F=!0,this.pc=Em),this.pc&&(this.J=new Pd(this,Gm),this.J.load()?b=null:delete this.J);!b&&this.pc&&(k=null,this.B&&(k=qa()+"/api/v1/user?req=load&user="+this.B+"&state="+ym(this,Gm)),b=k)&&(this.F=!0);b?pa(b,!0,null,this,this.nj):Ya(this);c||Hm(this,this.Of)}else ra("Unable to find CPU component")}Qa(Dm);
var Gm="1.20.3",Em=0;f=Dm.prototype;f.pe=function(){return this.W};f.yd=function(){return this.B?this.B:""};f.nj=function(a,b,c){c?(this.pf=null,this.F=!1,this.Ja("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(this.H=b,this.T=!0);Ya(this)};function Hm(a,b,c){for(var d=Ra(a.id),e=0;e<=d.length;e++){var k=e<d.length?d[e]:a;if(!Za(k)){Za(k,function(){Hm(a,b,c)});return}}b.call(a,c)}
var Gm="1.20.4",Em=0;f=Dm.prototype;f.pe=function(){return this.W};f.yd=function(){return this.B?this.B:""};f.nj=function(a,b,c){c?(this.pf=null,this.F=!1,this.Ja("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(this.H=b,this.T=!0);Ya(this)};function Hm(a,b,c){for(var d=Ra(a.id),e=0;e<=d.length;e++){var k=e<d.length?d[e]:a;if(!Za(k)){Za(k,function(){Hm(a,b,c)});return}}b.call(a,c)}
function Im(a,b){var c=new Pd(a,Gm,"validate");if(c.load()&&Bm(c)){var d=Cm(c,"timestamp"),e=b?Cm(b,"timestamp"):"unknown";d!=e&&(a.Ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
f.Of=function(a){void 0===a&&(a=this.pc||(this.H?1:Em));var b=!1,c=!1;this.N=!1;var d=this.J||new Pd(this,Gm);if(-1==a)b=!0;else if(a>Em){if(d.load(this.H)){this.D=new Pd(this,Gm,"failsafe");this.D.load()&&(Jm(this,d),a=2,zm(this.D));D(this.D,"timestamp",ka());Am(this.D);var e=this.pc&&!this.F;if(1==a||sa("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Bm(d)){var k=Cm(d,"code"),l=Cm(d,"data");k&&("ok"==k?d.load(l):("error"==k&&"no machine state"!=l?(this.Ja("Error: "+
l),"unable to verify user"==l&&(wa("user",""),this.B=null)):this.gc(k+": "+l),zm(d),d.load()?(c=Bm(d),e=!0):c=!1))}e&&Im(this,c?d:null)}else 2==a&&d.clear()}else Im(this);delete this.H;delete this.J}e=Ra(this.id);for(k=0;k<e.length;k++)l=e[k],l!==this&&l!=this.A&&(c=Km(this,l,d,b,c));b=[d,a,c];-1!=a?Hm(this,this.Nh,b):this.Nh(b)};
function Km(a,b,c,d,e){if(!b.ja.fc){b.ja.fc=!0;if(b.Zb){var k=null;e&&((k=Cm(c,b.id))||(k=Cm(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof k&&(k=null);!b.Zb(k,d)&&k&&(ra("Unable to restore state for "+b.type),a.K&&!a.T?(c.clear(),a.pc=Em,window&&window.location.reload()):a.N=!0,b.Zb(null),e=!1)}if(!d&&b.yh)for(a=b.yh.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
f.Nh=function(a){var b=a[0],c=0>a[1];a=a[2];this.ja.fc=!0;this.zh||(this.gc("PCjs v"+Gm+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.zh=!0);this.A&&(Km(this,this.A,b,c,a),ic(this.A));this.N&&(Jm(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D)};
function Jm(a,b){if(sa("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.S,d=a.yd(),e=b.toString(),k={app:"PCjs"};k.ver=Gm;k.url=c;k.user=d;k.type="bug";k.data=e;pa("http://www.pcjs.org/api/v1/report",!0,k)}}
function Lm(a,b,c){var d,e="none",k=new Pd(a,Gm),l=new Pd(a,Gm,"validate"),p=ka();D(l,"timestamp",p);D(k,"timestamp",p);D(k,"version","1.20.3");D(k,"url",window?window.location.href:null);D(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Yb&&(c&&lc(a.A),d=a.A.Yb(b,c),"object"===typeof d&&D(k,a.A.id,d),c&&(a.A.ja.fc=!1,!1===d&&(e=null)));for(var p=Ra(a.id),q=0;q<p.length;q++){var w=p[q];w.ja.fc&&(w.Yb&&(d=w.Yb(b,c),"object"===typeof d&&D(k,w.id,d)),c&&(w.ja.fc=!1,!1===d&&(e=null)))}e&&(c?
function Lm(a,b,c){var d,e="none",k=new Pd(a,Gm),l=new Pd(a,Gm,"validate"),p=ka();D(l,"timestamp",p);D(k,"timestamp",p);D(k,"version","1.20.4");D(k,"url",window?window.location.href:null);D(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Yb&&(c&&lc(a.A),d=a.A.Yb(b,c),"object"===typeof d&&D(k,a.A.id,d),c&&(a.A.ja.fc=!1,!1===d&&(e=null)));for(var p=Ra(a.id),q=0;q<p.length;q++){var w=p[q];w.ja.fc&&(w.Yb&&(d=w.Yb(b,c),"object"===typeof d&&D(k,w.id,d)),c&&(w.ja.fc=!1,!1===d&&(e=null)))}e&&(c?
(p=d=!1,b?(a.B&&Mm(a,a.B,k.toString()),Am(l)&&Am(k)||(e=null,d=p=!0)):a.pc&&(d=!0,p=3==a.pc),d&&k.clear(p)):e=k.toString());c&&(a.ja.fc=!1);return e}f.reset=function(){this.ma&&this.ma.reset&&this.ma.reset();for(var a=Ra(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ma&&c.reset&&c.reset()}};f.start=function(a,b){for(var c=Ra(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
f.stop=function(a,b){for(var c=Ra(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};f.Jb=function(a,b,c){var d=this;switch(b){case "save":return this.ra[b]=c,c.onclick=function(){var a=Fm(d,!0);if(a){var b=!!(d.pc&&!d.pf||d.K),c=Lm(d,b);b?Mm(d,a,c):d.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.ra[b]=c,c.onclick=function(){mc(d)},!0}return!1};
function Fm(a,b){var c=a.B;c||(c=va("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Nm(a,c))||a.Ja("The user ID is invalid."))):b&&a.Ja("Browser local storage is not available"));return c}
@ -1038,6 +1038,6 @@ function Qm(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){var p=b;p&&
null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?Rm(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
function Rm(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],w,B=/( [a-z]+=)(['"])(.*?)\2/g;w=B.exec(k);)q=0>q.indexOf(w[1])?q.replace(">",w[0]+">"):q.replace(new RegExp(w[1]+"(['\"])(.*?)\\1"),w[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],l);Rm(a,b,c)}})}else c(a,null)}
function Sm(a,b,c,d){function e(a){if(void 0===p){var b=l&&Wa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--Om||Ga(!0));q=!1}var l,p,q=!0;Om++;try{if(l=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.3/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--Om||Ga(!0)):k("transformNodeToObject failed")}else window.document.implementation&&
function Sm(a,b,c,d){function e(a){if(void 0===p){var b=l&&Wa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ha(a))}function k(a){e("Error: "+a);q&&(--Om||Ga(!0));q=!1}var l,p,q=!0;Om++;try{if(l=window.document.getElementById(a)){c||(c="/versions/pcjs/1.20.4/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--Om||Ga(!0)):k("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(w=new XSLTProcessor,w.importStylesheet(q),(w=w.transformToFragment(p,window.document))?l.parentNode?(l.parentNode.replaceChild(w,l),--Om||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k("failed to load XSL file: "+c);else k(d)};p?Pm(c,null,null,!1,e,q):k("failed to load XML file: "+b)}else k(d)};"<"!=b.charAt(0)?Pm(b,a,d,!0,e,w):Qm(b,null,a,d,!1,e,w)}else k("missing machine element: "+
a)}catch(B){k(B.message)}return q}window.embedPC=function(a,b,c,d){Ga(!1);return Sm(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();