Improved error reporting when embedMachine() fails (eg, due to browser restrictions)

This commit is contained in:
Jeff Parsons 2014-10-30 09:54:09 -07:00 committed by jeffpar
commit 29a3aceeb0
9 changed files with 15 additions and 14 deletions

View file

@ -158,7 +158,7 @@ Remember that PC and PC XT machines supported only 160Kb diskettes (on any versi
320Kb diskettes (on PC-DOS 1.1 and higher), and 180Kb and 360Kb diskettes (on PC-DOS 2.0 and higher).
The 1.2Mb diskette format was introduced with the PC AT, and 720Kb and 1.44Mb diskette formats were
introduced with the 8Mhz PC AT and PS/2 models. So, when using any of these larger formats, be sure you're
supported later on 8Mhz PC AT and PS/2 models. So, when using any of these larger formats, be sure you're
also using a compatible machine configuration.
Learn more about PCjs disk images [here](/disks/).

View file

@ -742,11 +742,11 @@ function Sl(a,b){a.Pc=null;var c=sa(ta()+"/api/v1/user?req=verify&user="+b),d=c[
function Rl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hl(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 Mb(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.");Gl(a,b,!0);!b&&a.gm?window&&window.location.reload():(b||(a.Gi=!0),a.Oh(Ll),a.Gi=!1)}else a.reset(),a.T&&Ib(a.T)}function C(a,b,c){a=Ra(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||D(this.Y,this.Y.rm))&&this.Y.message(a)};
Fa(function(){for(var a=B(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=B(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new Kl(g,d,!0);Ua(g,f);Nl(g,g.Oh)}});Ba.show.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Ck&&!c.Mb&&c.Oh(-1)}});
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?f(h,null):Vl(h,a,b,c,d,e,f)})}
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Vl(h,a,b,c,d,e,f)})}
function Vl(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){h=
null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Wl(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Wl(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,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Wl(a,b,c)}})}else c(a,null)}
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||null}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=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?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=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?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(h.parentNode.replaceChild(n,h),g()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?Ul(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?Ul(b,a,d,!0,e,q):Vl(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(t){f(t.message)}return n}
window.embedPC=function(a,b,c,d){return Xl(a,b,c,d)};window.enableEvents=Ia;window.sendEvent=Ja;Ia(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc-dbg.map

View file

@ -628,11 +628,11 @@ function nk(a,b){a.wc=null;var c=s(ka()+"/api/v1/user?req=verify&user="+b),d=c[1
function mk(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zj(a,"1.15.7");d.data=c;b=s(ka()+"/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.xa("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.xa(c),oa("user",""),a.wc=null)}}
function kb(a){if(a.vc&&!a.Rg){var b=!la("Click OK to save the PCjs machine state.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lk(a,b,!0);!b&&a.Tk?window&&window.location.reload():(b||(a.zh=!0),a.Kg(fk),a.zh=!1)}else a.reset(),a.ja&&ib(a.ja)}function D(a,b,c){a=Ea(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}
v(function(){for(var a=C(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],l=A(f),l=new ek(l,d,!0);B(l,f);hk(l,l.Kg)}});qa.show.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.rj&&!c.Ab&&c.Kg(-1)}});
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?f(g,null):qk(g,a,b,c,d,e,f)})}
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?(g||(g="unable to load "+a+" ("+m+")"),f(g,null)):qk(g,a,b,c,d,e,f)})}
function qk(a,b,c,d,e,f,l){function g(a,f){if(f)l(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=
null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,g)}}a?e?rk(a,f,g):g(a,null):l("no data"+(b?" for file: "+b:""),null)}
function rk(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,!0,null,null,function(f,l,g){if(g||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(l=l.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],l);rk(a,b,c)}})}else c(a,null)}
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||null}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(m),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),l()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?pk(c,null,null,!1,e,m):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?pk(b,a,d,!0,e,q):qk(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(u){f(u.message)}return n}
window.embedPC=function(a,b,c,d){return sk(a,b,c,d)};window.enableEvents=wa;window.sendEvent=xa;wa(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc.map

Binary file not shown.

View file

@ -91,6 +91,7 @@ function loadXML(sXMLFile, idMachine, sStateFile, fResolve, display, done)
{
var doneLoadXML = function(sURLName, sXML, nErrorCode) {
if (nErrorCode) {
if (!sXML) sXML = "unable to load " + sXMLFile + " (" + nErrorCode + ")";
done(sXML, null);
return;
}
@ -311,7 +312,7 @@ function embedMachine(sName, sVersion, idElement, sXMLFile, sXSLFile, sStateFile
* include and then generates the embedPC() and/or embedC1P() calls.
*/
var aeWarning = (eMachine && Component.getElementsByClass(eMachine, "machine-warning"));
eWarning = (aeWarning && aeWarning[0]) || null;
eWarning = (aeWarning && aeWarning[0]) || eMachine;
}
if (eWarning) eWarning.innerHTML = str.escapeHTML(sMessage);
};

View file

@ -159,11 +159,11 @@ a.i("note: frequency and history commands operate only when breakpoints are set"
$.prototype.start=function(){for(var a in this.Q)if("cpu"!=a)for(var b=0;b<this.Q[a].length;b++){var c=this.Q[a][b];c&&c.start&&c.start()}};$.prototype.stop=function(a,b){for(var c in this.Q)if("cpu"!=c)for(var d=0;d<this.Q[c].length;d++){var e=this.Q[c][d];e&&e.stop&&e.stop(a,b)}};$.prototype.I=function(a,b,c,d){switch(c){case "reset":return this.r[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function L(a,b){return a.Q[b]?a.Q[b][0]:null}
function pb(a){var b=null,c;for(c in a.Q)for(var d=0;d<a.Q[c].length;d++){var e=a.Q[c][d];if(e){if(!J(e)){J(e,function(a){return function(){pb(a)}}(a));return}"cpu"==c?b=e:e.ba&&e.ba(!0,a)}}a.P();a.i("C1Pjs v1.15.7\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.ba(!0,a)}
x(function(){for(var a=G(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=E(c),e,g={},h,k=0,l=0,m=0;m<d.modules.length;m++){var q=d.modules[m];if(!m){if("cpu"!=q.type)break;k=q.start;l=q.end;h=Array(l+1-k);for(e=k;e<h.length;e++)h[e]=0}if(e=C(q.refID,d.id)){var D=q.type;void 0===g[D]&&(g[D]=[]);g[D].push(e);e.V&&void 0!==q.start&&e.V(h,q.start,q.end,g.cpu[0])}else{t('no component for <module refid="'+q.refID+'">');return}}if(void 0===h){t('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.Xb=l.Xb,e.i=l.i,e.sc=l.sc)}F(k,c);pb(k)}});var qb=0;function rb(a,b,c,d,e,g){e("Loading "+a+"...");s(a,null,function(h,k,l){l?g(k,null):sb(k,a,b,c,d,e,g)})}
break}if(e=C("debugger",d.id))g["debugger"]=[e],e.V&&e.V(h,k,l,g.cpu[0]);k=new $(d,g);if(l=C("panel",d.id))if(g.panel=[l],l.sc){e=d.id;d=void 0;g=[];e&&(e=0<(d=e.indexOf("."))?e.substr(0,d+1):"");for(d=0;d<A.length;d++)m=A[d],e&&m.id.indexOf(e)||g.push(m);d=g;for(g=0;g<d.length;g++)e=d[g],e!=l&&(e.Xb=l.Xb,e.i=l.i,e.sc=l.sc)}F(k,c);pb(k)}});var qb=0;function rb(a,b,c,d,e,g){e("Loading "+a+"...");s(a,null,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):sb(k,a,b,c,d,e,g)})}
function sb(a,b,c,d,e,g,h){function k(a,g){if(g)h(g,null);else{if(c){var k=b;k&&0>k.indexOf("/")&&(k=window.location.pathname+k);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(k?" url=$2"+k+"$2":""))}k=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),k=new window.ActiveXObject("Microsoft.XMLDOM"),k.async=!1,k.loadXML(a)):k=(new window.DOMParser).parseFromString(a,"text/xml")}catch(D){k=
null,a=D.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,k)}}a?e?tb(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function tb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,null,function(g,h,k){if(k||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(g=d[3])if(k=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(h=h.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],h);tb(a,b,c)}})}else c(a,null)}
function ub(a,b,c){function d(a){if(void 0===k){var b=h&&G(h,"machine-warning");k=b&&b[0]||null}k&&(k.innerHTML=da(a))}function e(a){d("Error: "+a);l&&g();l=!1}function g(){0==--qb&&ia(!0)}var h,k,l=!0;qb++;try{if(h=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,k){if(k){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(h.outerHTML=m,g()):e("transformNodeToObject failed")}else window.document.implementation&&
function ub(a,b,c){function d(a){if(void 0===k){var b=h&&G(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=da(a))}function e(a){d("Error: "+a);l&&g();l=!1}function g(){0==--qb&&ia(!0)}var h,k,l=!0;qb++;try{if(h=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,k){if(k){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=k.transformNode(l);m?(h.outerHTML=m,g()):e("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(k,window.document))?(h.parentNode.replaceChild(m,h),g()):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e("failed to load XSL file: "+c);else e(a)};k?rb(c,null,null,!1,d,l):e("failed to load XML file: "+b)}else e(a)};"<"!=b.substr(0,1)?rb(b,a,void 0,!0,d,m):sb(b,null,a,void 0,!1,d,m)}else e("failed to find machine element: "+a)}catch(q){e(q.message)}return l}
window.embedC1P=function(a,b,c){return ub(a,b,c)};window.enableEvents=ia;window.sendEvent=ja;ia(!1);})();//@ sourceMappingURL=/tmp/c1pjs/1.15.7/c1p-dbg.map

View file

@ -119,11 +119,11 @@ w(function(){for(var a=I(window.document,"c1pjs","disk"),b=0;b<a.length;b++){var
$.prototype.stop=function(a,b){for(var c in this.I)if("cpu"!=c)for(var d=0;d<this.I[c].length;d++){var f=this.I[c][d];f&&f.stop&&f.stop(a,b)}};$.prototype.H=function(a,b,c,d){switch(c){case "reset":return this.o[c]=d,d.onclick=function(a){return function(){a.reset()}}(this),!0}return!1};function M(a,b){return a.I[b]?a.I[b][0]:null}
function Qa(a){var b=null,c;for(c in a.I)for(var d=0;d<a.I[c].length;d++){var f=a.I[c][d];if(f){if(!J(f)){J(f,function(a){return function(){Qa(a)}}(a));return}"cpu"==c?b=f:f.S&&f.S(!0,a)}}a.J();a.t("C1Pjs v1.15.7\nCopyright \u00a9 2012-2014 Jeff Parsons <Jeff@pcjs.org>");b&&b.S(!0,a)}
w(function(){for(var a=I(window.document,"c1pjs","computer"),b=0;b<a.length;b++){for(var c=a[b],d=G(c),f,g={},k,h=0,l=0,m=0;m<d.modules.length;m++){var n=d.modules[m];if(!m){if("cpu"!=n.type)break;h=n.start;l=n.end;k=Array(l+1-h);for(f=h;f<k.length;f++)k[f]=0}if(f=F(n.refID,d.id)){var A=n.type;void 0===g[A]&&(g[A]=[]);g[A].push(f);f.P&&void 0!==n.start&&f.P(k,n.start,n.end,g.cpu[0])}else{r('no component for <module refid="'+n.refID+'">');return}}if(void 0===k){r('<module type="cpu"> definition must appear first in the <computer> specification');
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.P&&f.P(k,h,l,g.cpu[0]);h=new $(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.jb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<B.length;d++)m=B[d],f&&m.id.indexOf(f)||g.push(m);d=g;for(g=0;g<d.length;g++)f=d[g],f!=l&&(f.Ta=l.Ta,f.t=l.t,f.jb=l.jb)}H(h,c);Qa(h)}});var Ra=0;function Sa(a,b,c,d,f,g){f("Loading "+a+"...");q(a,null,function(k,h,l){l?g(h,null):Ta(h,a,b,c,d,f,g)})}
break}if(f=F("debugger",d.id))g["debugger"]=[f],f.P&&f.P(k,h,l,g.cpu[0]);h=new $(d,g);if(l=F("panel",d.id))if(g.panel=[l],l.jb){f=d.id;d=void 0;g=[];f&&(f=0<(d=f.indexOf("."))?f.substr(0,d+1):"");for(d=0;d<B.length;d++)m=B[d],f&&m.id.indexOf(f)||g.push(m);d=g;for(g=0;g<d.length;g++)f=d[g],f!=l&&(f.Ta=l.Ta,f.t=l.t,f.jb=l.jb)}H(h,c);Qa(h)}});var Ra=0;function Sa(a,b,c,d,f,g){f("Loading "+a+"...");q(a,null,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):Ta(h,a,b,c,d,f,g)})}
function Ta(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(A){h=
null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?Ua(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
function Ua(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],k);Ua(a,b,c)}})}else c(a,null)}
function Va(a,b,c){function d(a){if(void 0===h){var b=k&&I(k,"machine-warning");h=b&&b[0]||null}h&&(h.innerHTML=ca(a))}function f(a){d("Error: "+a);l&&g();l=!1}function g(){0==--Ra&&y(!0)}var k,h,l=!0;Ra++;try{if(k=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,h){if(h){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(l);m?(k.outerHTML=m,g()):f("transformNodeToObject failed")}else window.document.implementation&&
function Va(a,b,c){function d(a){if(void 0===h){var b=k&&I(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=ca(a))}function f(a){d("Error: "+a);l&&g();l=!1}function g(){0==--Ra&&y(!0)}var k,h,l=!0;Ra++;try{if(k=window.document.getElementById(a)){c||(c="/versions/c1pjs/1.15.7/components.xsl");var m=function(a,h){if(h){var l=function(a,l){if(l)if(l)if(d("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var m=h.transformNode(l);m?(k.outerHTML=m,g()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(m=new XSLTProcessor,m.importStylesheet(l),(m=m.transformToFragment(h,window.document))?(k.parentNode.replaceChild(m,k),g()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};h?Sa(c,null,null,!1,d,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?Sa(b,a,void 0,!0,d,m):Ta(b,null,a,void 0,!1,d,m)}else f("failed to find machine element: "+a)}catch(n){f(n.message)}return l}
window.embedC1P=function(a,b,c){return Va(a,b,c)};window.enableEvents=y;window.sendEvent=ea;y(!1);})();//@ sourceMappingURL=/tmp/c1pjs/1.15.7/c1p.map

View file

@ -742,11 +742,11 @@ function Sl(a,b){a.Pc=null;var c=sa(ta()+"/api/v1/user?req=verify&user="+b),d=c[
function Rl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hl(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 Mb(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.");Gl(a,b,!0);!b&&a.gm?window&&window.location.reload():(b||(a.Gi=!0),a.Oh(Ll),a.Gi=!1)}else a.reset(),a.T&&Ib(a.T)}function C(a,b,c){a=Ra(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||D(this.Y,this.Y.rm))&&this.Y.message(a)};
Fa(function(){for(var a=B(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=B(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new Kl(g,d,!0);Ua(g,f);Nl(g,g.Oh)}});Ba.show.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Ck&&!c.Mb&&c.Oh(-1)}});
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?f(h,null):Vl(h,a,b,c,d,e,f)})}
Ba.exit.push(function(){for(var a=B(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ta("Computer",c.id))&&c.Mb&&Gl(c,!(!c.Oc||c.Vh),!0)}});var Tl=0;function Ul(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,!0,null,null,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Vl(h,a,b,c,d,e,f)})}
function Vl(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{if(c){var h=b;h&&0>h.indexOf("/")&&(h=window.location.pathname+h);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(h?" url=$2"+h+"$2":""))}h=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){h=
null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?e?Wl(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Wl(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,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Wl(a,b,c)}})}else c(a,null)}
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||null}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=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?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
function Xl(a,b,c,d){function e(a){if(void 0===l){var b=h&&B(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ha(a))}function f(a){e("Error: "+a);n&&g();n=!1}function g(){0==--Tl&&Ia(!0)}var h,l,n=!0;Tl++;try{if(h=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=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?(h.outerHTML=n,g()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(l),(n=n.transformToFragment(d,window.document))?(h.parentNode.replaceChild(n,h),g()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?Ul(c,null,null,!1,e,l):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?Ul(b,a,d,!0,e,q):Vl(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(t){f(t.message)}return n}
window.embedPC=function(a,b,c,d){return Xl(a,b,c,d)};window.enableEvents=Ia;window.sendEvent=Ja;Ia(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc-dbg.map

View file

@ -628,11 +628,11 @@ function nk(a,b){a.wc=null;var c=s(ka()+"/api/v1/user?req=verify&user="+b),d=c[1
function mk(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zj(a,"1.15.7");d.data=c;b=s(ka()+"/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.xa("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.xa(c),oa("user",""),a.wc=null)}}
function kb(a){if(a.vc&&!a.Rg){var b=!la("Click OK to save the PCjs machine state.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lk(a,b,!0);!b&&a.Tk?window&&window.location.reload():(b||(a.zh=!0),a.Kg(fk),a.zh=!1)}else a.reset(),a.ja&&ib(a.ja)}function D(a,b,c){a=Ea(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}
v(function(){for(var a=C(window.document,"pcjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pcjs","computer"),e=0;e<c.length;e++){var f=c[e],l=A(f),l=new ek(l,d,!0);B(l,f);hk(l,l.Kg)}});qa.show.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.rj&&!c.Ab&&c.Kg(-1)}});
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?f(g,null):qk(g,a,b,c,d,e,f)})}
qa.exit.push(function(){for(var a=C(window.document,"pcjs","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ga("Computer",c.id))&&c.Ab&&lk(c,!(!c.vc||c.Rg),!0)}});var ok=0;function pk(a,b,c,d,e,f){e("Loading "+a+"...");s(a,!0,null,null,function(l,g,m){m?(g||(g="unable to load "+a+" ("+m+")"),f(g,null)):qk(g,a,b,c,d,e,f)})}
function qk(a,b,c,d,e,f,l){function g(a,f){if(f)l(f,null);else{if(c){var g=b;g&&0>g.indexOf("/")&&(g=window.location.pathname+g);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" state=$2"+d+"$2":"")+(g?" url=$2"+g+"$2":""))}g=null;if(0===a.indexOf("<"))try{window.ActiveXObject||"ActiveXObject"in window?(e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=
null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,g)}}a?e?rk(a,f,g):g(a,null):l("no data"+(b?" for file: "+b:""),null)}
function rk(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");s(e,!0,null,null,function(f,l,g){if(g||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=g[0],n,q=/( [a-z]+=)(['"])(.*?)\2/g;n=q.exec(f);)m=0>m.indexOf(n[1])?m.replace(">",n[0]+">"):m.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);g[0]!=m&&(l=l.replace(g[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],l);rk(a,b,c)}})}else c(a,null)}
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||null}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
function sk(a,b,c,d){function e(a){if(void 0===m){var b=g&&C(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=fa(a))}function f(a){e("Error: "+a);n&&l();n=!1}function l(){0==--ok&&wa(!0)}var g,m,n=!0;ok++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.15.7/components.xsl");var q=function(a,d){if(d){var m=function(a,m){if(m)if(m)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var n=d.transformNode(m);n?(g.outerHTML=n,l()):f("transformNodeToObject failed")}else window.document.implementation&&
window.document.implementation.createDocument?(n=new XSLTProcessor,n.importStylesheet(m),(n=n.transformToFragment(d,window.document))?(g.parentNode.replaceChild(n,g),l()):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f("failed to load XSL file: "+c);else f(a)};d?pk(c,null,null,!1,e,m):f("failed to load XML file: "+b)}else f(a)};"<"!=b.substr(0,1)?pk(b,a,d,!0,e,q):qk(b,null,a,d,!1,e,q)}else f("failed to find machine element: "+a)}catch(u){f(u.message)}return n}
window.embedPC=function(a,b,c,d){return sk(a,b,c,d)};window.enableEvents=wa;window.sendEvent=xa;wa(!1);})();//@ sourceMappingURL=/tmp/pcjs/1.15.7/pc.map