Starting work on v1.15.8
This commit is contained in:
parent
c2a89b07dd
commit
a0aafcb6af
116 changed files with 150 additions and 437 deletions
|
|
@ -726,21 +726,21 @@ I.prototype={set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a
|
|||
clear:function(a){Xl(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}},Qa:function(a){this.Y&&E(this.Y,this.Y.zm)&&this.Y.message(a)}};function Xl(a,b){a[a.id]={};b&&a.set("parms",b);a.Fi=!1}
|
||||
function Yl(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);xa(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}
|
||||
function Zl(a,b,c){x.call(this,"Computer",a,Zl);this.Mb=!1;this.gg=a.buswidth;this.Oc=$l;this.Eg=null;this.vh=!1;this.url=b?b.url:null;this.up=(Math.random()+0.1).toString(36).substr(2,12);this.Pc=am(this);if(this.T=Xa("CPU",this.id)){this.Y=Xa("Debugger",this.id);this.oa=new fb({id:this.Ah+".bus",buswidth:this.gg},this.T,this.Y);var d,e=Va(this.id);if((this.yg=Xa("Panel",this.id))&&this.yg.Yf)for(b=0;b<e.length;b++)d=e[b],d.Ha=this.yg.Ha,d.da=this.yg.da,d.Yf=this.yg.Yf;for(b=0;b<e.length;b++)d=e[b],
|
||||
d.qc&&d.qc(this,this.oa,this.T,this.Y);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Vh=d:this.Oc=parseInt(d,10));var f;if(a=Pa&&Pa.state||(f=!0,a.state))b=this.gm=a,f||(this.vh=!0,this.Oc=$l),this.Oc&&(this.Yh=new I(this,"1.15.7"),this.Yh.load()?b=null:delete this.Yh);!b&&this.Oc&&(f=null,this.Pc&&(f=ta()+"/api/v1/user?req=load&user="+this.Pc+"&state="+Wl(this,"1.15.7")),b=f)&&(this.vh=!0);b?sa(b,!0,null,this,this.qo):this.Sa();c||bm(this,this.Oh)}else w("Unable to find CPU component")}z(x,Zl);
|
||||
d.qc&&d.qc(this,this.oa,this.T,this.Y);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Vh=d:this.Oc=parseInt(d,10));var f;if(a=Pa&&Pa.state||(f=!0,a.state))b=this.gm=a,f||(this.vh=!0,this.Oc=$l),this.Oc&&(this.Yh=new I(this,"1.15.8"),this.Yh.load()?b=null:delete this.Yh);!b&&this.Oc&&(f=null,this.Pc&&(f=ta()+"/api/v1/user?req=load&user="+this.Pc+"&state="+Wl(this,"1.15.8")),b=f)&&(this.vh=!0);b?sa(b,!0,null,this,this.qo):this.Sa();c||bm(this,this.Oh)}else w("Unable to find CPU component")}z(x,Zl);
|
||||
var $k=102,$l=0;k=Zl.prototype;k.mf=function(){return this.up};k.ie=function(){return this.Pc?this.Pc:""};k.qo=function(a,b,c){c?(this.Vh=null,this.vh=!1,this.Ha("Unable to load machine state from server (error "+c+(b?": "+la(b):"")+")")):this.Eg=b;this.Sa()};function bm(a,b,c){for(var d=Va(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ab(f)){ab(f,function(){bm(a,b,c)});return}}b.call(a,c)}
|
||||
function cm(a,b){var c=new I(a,"1.15.7","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.Ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
k.Oh=function(a){void 0===a&&(a=this.Oc||(this.Eg?1:$l));var b=!1,c=!1;this.Ek=!1;var d=this.Yh||new I(this,"1.15.7");if(-1==a)b=!0;else if(a>$l){if(d.load(this.Eg)){this.Te=new I(this,"1.15.7","failsafe");this.Te.load()&&(dm(this,d),a=2,Xl(this.Te));this.Te.set("timestamp",pa());Yl(this.Te);var e=this.Oc&&!this.vh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),h=d.get("data");f&&("ok"==f?d.load(h):("error"==
|
||||
function cm(a,b){var c=new I(a,"1.15.8","validate");if(c.load()&&c.parse()){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.Ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
k.Oh=function(a){void 0===a&&(a=this.Oc||(this.Eg?1:$l));var b=!1,c=!1;this.Ek=!1;var d=this.Yh||new I(this,"1.15.8");if(-1==a)b=!0;else if(a>$l){if(d.load(this.Eg)){this.Te=new I(this,"1.15.8","failsafe");this.Te.load()&&(dm(this,d),a=2,Xl(this.Te));this.Te.set("timestamp",pa());Yl(this.Te);var e=this.Oc&&!this.vh;if(1==a||ua("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=d.parse()){var f=d.get("code"),h=d.get("data");f&&("ok"==f?d.load(h):("error"==
|
||||
f&&"no machine state"!=h?(this.Ha("Error: "+h),"unable to verify user"==h&&(xa("user",""),this.Pc=null)):this.da(f+": "+h),Xl(d),d.load()?(c=d.parse(),e=!0):c=!1))}e&&cm(this,c?d:null)}else 2==a&&d.clear()}else cm(this);delete this.Eg;delete this.Yh}e=Va(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.T&&(c=em(this,h,d,b,c));b=[d,a,c];-1!=a?bm(this,this.Ak,b):this.Ak(b)};
|
||||
function em(a,b,c,d,e){if(!b.Mb){b.Mb=!0;if(b.Zb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Zb(f,d)&&f&&(w("Unable to restore state for "+b.type),a.gm&&!a.Eg?(c.clear(),a.Oc=$l,window&&window.location.reload()):a.Ek=!0,b.Zb(null),e=!1)}if(!d&&b.wk)for(a=b.wk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.Ak=function(a){var b=a[0],c=0>a[1];a=a[2];this.Mb=!0;this.Ck||(this.da("PCjs v1.15.7\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Ck=!0);this.T&&em(this,this.T,b,c,a);this.Ek&&(dm(this,b),b.clear());!c&&this.Te&&(this.Te.clear(),delete this.Te)};
|
||||
function dm(a,b){if(ua("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.ie(),d=b.toString(),e={app:"PCjs",ver:"1.15.7"};e.url=a.url;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",!0,e)}}
|
||||
function Vl(a,b,c){var d,e="none",f=new I(a,"1.15.7"),h=new I(a,"1.15.7","validate"),g=pa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.7");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Yb&&(c&&a.T.Ab(),d=a.T.Yb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.Mb=!1,!1===d&&(e=null)));for(var g=Va(a.id),l=0;l<g.length;l++){var n=g[l];n.Mb&&(n.Yb&&(d=n.Yb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.Mb=!1,!1===d&&
|
||||
k.Ak=function(a){var b=a[0],c=0>a[1];a=a[2];this.Mb=!0;this.Ck||(this.da("PCjs v1.15.8\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.Ck=!0);this.T&&em(this,this.T,b,c,a);this.Ek&&(dm(this,b),b.clear());!c&&this.Te&&(this.Te.clear(),delete this.Te)};
|
||||
function dm(a,b){if(ua("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.ie(),d=b.toString(),e={app:"PCjs",ver:"1.15.8"};e.url=a.url;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",!0,e)}}
|
||||
function Vl(a,b,c){var d,e="none",f=new I(a,"1.15.8"),h=new I(a,"1.15.8","validate"),g=pa();h.set("timestamp",g);f.set("timestamp",g);f.set("version","1.15.8");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.T&&a.T.Yb&&(c&&a.T.Ab(),d=a.T.Yb(b,c),"object"===typeof d&&f.set(a.T.id,d),c&&(a.T.Mb=!1,!1===d&&(e=null)));for(var g=Va(a.id),l=0;l<g.length;l++){var n=g[l];n.Mb&&(n.Yb&&(d=n.Yb(b,c),"object"===typeof d&&f.set(n.id,d)),c&&(n.Mb=!1,!1===d&&
|
||||
(e=null)))}e&&(c?(g=d=!1,b?(a.Pc&&fm(a,a.Pc,f.toString()),Yl(h)&&Yl(f)||(e=null,d=g=!0)):a.Oc&&(d=!0,g=3==a.Oc),d&&f.clear(g)):e=f.toString());c&&(a.Mb=!1);return e}k.reset=function(){this.oa&&this.oa.reset&&(this.Qa("Resetting "+this.oa.type,!0),this.oa.reset());for(var a=Va(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.oa&&c.reset&&(this.Qa("Resetting "+c.type,!0),c.reset())}};
|
||||
k.start=function(a,b){for(var c=Va(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=Va(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
k.xb=function(a,b,c,d){var e=this;switch(c){case "save":return this.ta[c]=d,d.onclick=function(){var a=am(e,!0);if(a){var b=!(!e.Oc||e.Vh),c=Vl(e,b);b?fm(e,a,c):e.Ha("Resume disabled, machine state not saved")}},!0;case "reset":return this.ta[c]=d,d.onclick=function(){Sb(e)},!0}return!1};
|
||||
function am(a,b){var c=a.Pc;c||(c=wa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("To save machine states on the pcjs.org server, you need a user ID (email Jeff@pcjs.org).\n\nOnce you have an ID, enter it below.","")),c&&((c=gm(a,c))||a.Ha("Your user ID has not been approved."))):b&&a.Ha("Browser local storage is not available"));return c}
|
||||
function gm(a,b){a.Pc=null;var c=sa(ta()+"/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.Pc=c.data)}catch(e){w(e.message+" ("+d+")")}return a.Pc}
|
||||
function fm(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wl(a,"1.15.7");d.data=c;b=sa(ta()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ha(c),xa("user",""),a.Pc=null)}}
|
||||
function fm(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wl(a,"1.15.8");d.data=c;b=sa(ta()+"/api/v1/user",!1,d);d=b[1];if(b[0]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[0]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Ha("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Ha(c),xa("user",""),a.Pc=null)}}
|
||||
function Sb(a){if(a.Oc&&!a.Vh){var b=!ua("Click OK to save the PCjs machine state.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Vl(a,b,!0);!b&&a.gm?window&&window.location.reload():(b||(a.Gi=!0),a.Oh($l),a.Gi=!1)}else a.reset(),a.T&&Ob(a.T)}function db(a,b,c){a=Va(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}k.Qa=function(a,b){this.Y&&(b||E(this.Y,this.Y.rm))&&this.Y.message(a)};
|
||||
Fa(function(){for(var a=D(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],h=B(f),h=new Zl(h,d,!0);Ya(h,f);bm(h,h.Oh)}});Ba.show.push(function(){for(var a=D(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Xa("Computer",c.id))&&c.Ck&&!c.Mb&&c.Oh(-1)}});
|
||||
Ba.exit.push(function(){for(var a=D(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Xa("Computer",c.id))&&c.Mb&&Vl(c,!(!c.Oc||c.Vh),!0)}});var hm=0;function im(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):jm(g,a,b,c,d,e,f)})}
|
||||
|
|
@ -748,6 +748,6 @@ function jm(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){var g=b;g&&
|
|||
null,a=s.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?nm(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function nm(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");sa(e,!0,null,null,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 l=g[0],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);nm(a,b,c)}})}else c(a,null)}
|
||||
function om(a,b,c,d){function e(a){if(void 0===l){var b=g&&D(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ja(a))}function f(a){e("Error: "+a);n&&h();n=!1}function h(){0==--hm&&Ja(!0)}var g,l,n=!0;hm++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var p=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(g.outerHTML=n,h()):f("transformNodeToObject failed")}else window.document.implementation&&
|
||||
function om(a,b,c,d){function e(a){if(void 0===l){var b=g&&D(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ja(a))}function f(a){e("Error: "+a);n&&h();n=!1}function h(){0==--hm&&Ja(!0)}var g,l,n=!0;hm++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.8/components.xsl");var p=function(a,d){if(d){var l=function(a,l){if(l)if(l)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(l);n?(g.outerHTML=n,h()):f("transformNodeToObject failed")}else window.document.implementation&&
|
||||
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),h()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?im(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?im(b,a,d,!0,e,p):jm(b,null,a,d,!1,e,p)}else f("failed to find machine element: "+a)}catch(s){f(s.message)}return n}
|
||||
window.embedPC=function(a,b,c,d){return om(a,b,c,d)};window.enableEvents=Ja;window.sendEvent=Ma;Ja(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc-dbg.map
|
||||
window.embedPC=function(a,b,c,d){return om(a,b,c,d)};window.enableEvents=Ja;window.sendEvent=Ma;Ja(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.8/pc-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue