Switching to machine XML files that use a machine 'type' attribute rather than 'class'; 'class' can still be used to specify the machine type if 'type' is omitted, but going forward, it should only be used to specify an alternate CSS class

This commit is contained in:
Jeff Parsons 2017-01-31 22:05:03 -08:00 committed by Jeff Parsons
commit 8f0b808b1e
258 changed files with 423 additions and 394 deletions

View file

@ -807,7 +807,7 @@ a.P("no return addresses found")}break;case "l":if("ln"==g[0]){NA(a,g[1],!0);bre
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Db)if(fb==ld){ye=Db[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var RB=0,Wg="";for(ld in Db)if(!fb||fb==ld){var SB=!!(a.ic&Db[ld]);if(null===md||md==SB)Wg&&(Wg+=","),++RB%10||(Wg+="\n\t"),"key"==ld&&(ld="keys"),Wg+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Wg||"none"));Ux(a)}break;case "o":var um=g[1],TB=g[2];if(um&&"?"!=um){var vm=Mx(a,um,"port #"),wm=Mx(a,TB);void 0!==vm&&void 0!==wm&&(Ec(a.ka,vm,1,wm),a.P(ka(vm)+": "+r(wm)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){QA(a,b.substr(5));break}var Et="pr"==g[0]?1:0,qf=1+Et;if(a.I)a.P("step in progress");
else{var Zi,Ft=!1,Hb=Sx(a,A(a.H),a.H.Z.U);do switch(Zi=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:uy(a,Hb,1);Zi=!0;break;case 204:case 206:a.I=qf;uy(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=qf;uy(a,Hb,Hb.Hb?4:2);break;case 232:a.I=qf;uy(a,Hb,Hb.Hb?5:3);break;case 154:a.I=qf;uy(a,Hb,Hb.Hb?7:5);break;case 255:var Gt=a.hb(Hb)&14591;if(4351==Gt||6399==Gt)a.I=qf,Hz(a,Hb);break;case 243:case 242:uy(a,Hb,1);Ft=Zi=!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:Ft&&
(a.I=qf,uy(a,Hb,1))}while(Zi);a.I?(a.Gd(a.B,Hb,!0),xz(a)||(a.pa&&a.pa.ld(),a.I=0)):SA(a,Et?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}zz(a,g);break;case "t":SA(a,g[0],g[1]);break;case "u":Az(a,g[1],g[2],8);break;case "v":if("var"==g[0]){MA(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.33.0 ("+a.H.ca+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ea());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Xg;void 0!==g[3]&&(Xg=+g[3]);
(a.I=qf,uy(a,Hb,1))}while(Zi);a.I?(a.Gd(a.B,Hb,!0),xz(a)||(a.pa&&a.pa.ld(),a.I=0)):SA(a,Et?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}zz(a,g);break;case "t":SA(a,g[0],g[1]);break;case "u":Az(a,g[1],g[2],8);break;case "v":if("var"==g[0]){MA(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.33.1 ("+a.H.ca+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Ea());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Xg;void 0!==g[3]&&(Xg=+g[3]);
switch(g[2]){case "int":a.H.T.Se=Xg;break;case "start":a.H.T.wf=Xg;break;case "stop":a.H.T.Ue=Xg;break;default:a.P("unknown cs option");break a}void 0!==Xg&&nd(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(rd(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){QA(a,b.substr(1));break}var xm="commands:",ym;for(ym in UA)xm+="\n"+qa(ym,7)+UA[ym];vg(a)||(xm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(xm);break;default:a.P("unknown command: "+b),d=!1}}}catch(It){a.P("debugger error: "+(It.stack||It.message)),d=!1}return d}
function Wx(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Gz(a,b[+d]))return!1;return!0}
@ -840,23 +840,23 @@ Yx,[119,R|S|X,WA|4096]],[[155,R|V|4096,W|V|4096],Yx,[98,R|V|X],[96,R|V|X],[95,R|
CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42},hy={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,
TASK_IOPM:100};Ra(function(){for(var a=pb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=mb(c),d=new Rx(d);ob(d,c)}});
function lB(a,b,c){ab.call(this,"Computer",a,67108864);this.ea.Yb=!1;mB(this,b);this.N=hd(this,"autoPower",a);this.C=0;this.aa=a.busWidth||a.buswidth;this.A=nB;this.L=null;this.I=this.Z=!1;this.da=hd(this,"url")||"";this.ha=(Math.random()+.1).toString(36).substr(2,12);this.B=oB(this);if(this.H=lb("CPU",this.id)){this.ba=lb("Debugger",this.id);this.G=[];for(b=null;b=Jb(this,"Video",b);)this.G.push(b);this.ka=new Zb({id:this.xe+".bus",busWidth:this.aa},this.H,this.ba);var d,e=jb(this.id);if((this.D=
lb("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.33.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=hd(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.I=!0,this.A=nB),this.A&&(this.M=new Jf(this,
"1.33.0"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=pB(this))&&(this.I=!0);if(b){var g=this;Ca(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+ra(b):"")+")")):(g.L=b,g.Z=!0);tb(g)})}else tb(this);this.na.power||(this.N=!0);!c&&this.N&&qB(this,this.Lf)}else Wa("Unable to find CPU component")}ba(lB,ab);
lb("Panel",this.id))&&this.D.Ie)for(b=0;b<e.length;b++)d=e[b],d.Fa=this.D.Fa,d.P=this.D.P,d.Ie=this.D.Ie;this.P("PCx86 v1.33.1\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.uc&&d.uc(this,this.ka,this.H,this.ba);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.A=parseInt(d,10));var f;if(a=hd(this,"state")||(f=!0,a.state))b=this.W=a,f||(this.I=!0,this.A=nB),this.A&&(this.M=new Jf(this,
"1.33.1"),this.M.load()?b=null:delete this.M);!b&&this.A&&(b=pB(this))&&(this.I=!0);if(b){var g=this;Ca(b,null,!0,function(a,b,c){c?(g.K=null,g.I=!1,g.Fa("Unable to load machine state from server (error "+c+(b?": "+ra(b):"")+")")):(g.L=b,g.Z=!0);tb(g)})}else tb(this);this.na.power||(this.N=!0);!c&&this.N&&qB(this,this.Lf)}else Wa("Unable to find CPU component")}ba(lB,ab);
function mB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){Wa(d.message+" ("+c+")")}}a.J=b}function hd(a,b,c){var d=b.toLowerCase(),d=Ka(b)||Ka(d);void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function qB(a,b,c){for(var d=jb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!sb(f)){sb(f,function(){qB(a,b,c)});return}}b.call(a,c)}
function rB(a,b){var c=new Jf(a,"1.33.0",sB);if(c.load()&&tB(c)){var d=c.get(uB),e=b?b.get(uB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=lB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?vB:nB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Jf(this,"1.33.0");if(a==wB)b=!0;else if(a>nB){if(d.load(this.L)){this.F=new Jf(this,"1.33.0",xB);this.F.load()&&(yB(this,d),a=zB,AB(this.F));this.F.set(uB,va());BB(this.F);var e=this.A&&!this.I;if(a==vB||hb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=tB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
function rB(a,b){var c=new Jf(a,"1.33.1",sB);if(c.load()&&tB(c)){var d=c.get(uB),e=b?b.get(uB):"unknown";d!=e&&(a.Fa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=lB.prototype;
l.Lf=function(a){void 0===a&&(a=this.A||(this.L?vB:nB));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Jf(this,"1.33.1");if(a==wB)b=!0;else if(a>nB){if(d.load(this.L)){this.F=new Jf(this,"1.33.1",xB);this.F.load()&&(yB(this,d),a=zB,AB(this.F));this.F.set(uB,va());BB(this.F);var e=this.A&&!this.I;if(a==vB||hb("Click OK to restore the previous PCx86 machine state, or CANCEL to reset the machine.")){if(c=tB(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Fa("Error: "+g),"unable to verify user"==g&&(Ia(CB,""),this.B=null)):this.P(f+": "+g),AB(d),d.load()?(c=tB(d),e=!0):c=!1))}e&&rB(this,c?d:null)}else a==zB&&d.clear()}else rB(this);delete this.L;delete this.M}e=jb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.H&&(c=DB(this,g,d,b,c));b=[d,a,c];a!=wB?qB(this,this.mj,b):this.mj(b)}};
function DB(a,b,c,d,e){if(!b.ea.Yb){b.ea.Yb=!0;if(b.Xb){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.Xb(f,d)&&f&&(Wa("Unable to restore state for "+b.type),a.W&&!a.Z?(c.clear(),a.A=nB,window&&window.location.reload()):a.Y=!0,b.Xb(null),e=!1)}if(!d&&b.xj)for(a=b.xj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.mj=function(a){var b=a[0],c=0>a[1];a=a[2];this.ga=!0;this.ea.Yb=!0;var d=this.na.power;d&&(d.textContent="Shutdown");this.H&&(DB(this,this.H,b,c,a),this.H.lf());this.Y&&(yB(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
function yB(a,b){if(hb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.33.0"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ca("http://www.pcjs.org/api/v1/report",d,!0)}}
function TA(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Jf(a,"1.33.0"),g=new Jf(a,"1.33.0",sB),h=va();g.set(uB,h);f.set(uB,h);f.set(EB,"1.33.0");f.set(FB,window?window.location.href:null);f.set(GB,Ea());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=jb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&HB(a,
function yB(a,b){if(hb("There may be a problem with your PCx86 machine.\n\nTo help us diagnose it, click OK to send this PCx86 machine state to http://www.pcjs.org.")){var c=a.B||"";b=b.toString();var d={app:"PCx86",ver:"1.33.1"};d.url=a.da;d.user=c;d.type="bug";d.data=b;Ca("http://www.pcjs.org/api/v1/report",d,!0)}}
function TA(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new Jf(a,"1.33.1"),g=new Jf(a,"1.33.1",sB),h=va();g.set(uB,h);f.set(uB,h);f.set(EB,"1.33.1");f.set(FB,window?window.location.href:null);f.set(GB,Ea());a.H&&a.H.Wb&&(c&&a.H.Jb(),d=a.H.Wb(b,c),"object"===typeof d&&f.set(a.H.id,d),c&&(a.H.ea.Yb=!1,!1===d&&(e=null)));for(var h=jb(a.id),k=0;k<h.length;k++){var m=h[k];m.ea.Yb&&(m.Wb&&(d=m.Wb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.ea.Yb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&HB(a,
a.B,f.toString()),BB(g)&&BB(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==IB),d&&f.clear(h)):e=f.toString());c&&(a.ea.Yb=!1,b=a.na.power)&&(b.textContent="Power");a.C=0;return e}l.reset=function(){this.ka&&this.ka.reset&&(wb(this,"Resetting "+this.ka.type),this.ka.reset());for(var a=jb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ka&&c.reset&&(wb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=jb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=jb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.Cb=function(a,b,c){var d=this;switch(b){case "power":return this.na[b]=c,c.onclick=function(){d.C||(d.ea.Yb?TA(d,!1,!0):qB(d,d.Lf))},!0;case "reset":return this.na[b]=c,c.onclick=function(){if(d.ea.Yb&&!d.C)if(d.A&&!d.K){var a=hb("Click OK to save changes to this PCx86 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");TA(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.O=!0),d.Lf(nB),d.O=!1)}else d.reset(),d.H&&d.H.lf()},!0;case "save":if(na(Da(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.na[b]=c,c.onclick=function(){var a=oB(d,!0);if(a){var b=!!(d.A&&!d.K||d.W),c=TA(d,b);b?HB(d,a,c):d.Fa("Resume disabled, machine state not saved")}},!0}return!1};
function oB(a,b){var c=a.B;c||((c=Ha(CB),void 0!==c)?!c&&b&&(b=null,window&&(b=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=b)&&((c=UB(a,c))||a.Fa("The user ID is invalid.")):b&&a.Fa("Browser local storage is not available"));return c}
function UB(a,b){a.B=null;b=Ca(Da()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(CB,b.data),a.B=b.data)}catch(d){Wa(d.message+" ("+c+")")}return a.B}function pB(a){var b=null;a.B&&(b=Da()+"/api/v1/user?req=load&user="+a.B+"&state="+VB(a,"1.33.0"));return b}
function HB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=VB(a,"1.33.0");d.data=c;b=Ca(Da()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("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.Fa(c),Ia(CB,""),a.B=null)}}
function UB(a,b){a.B=null;b=Ca(Da()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(CB,b.data),a.B=b.data)}catch(d){Wa(d.message+" ("+c+")")}return a.B}function pB(a){var b=null;a.B&&(b=Da()+"/api/v1/user?req=load&user="+a.B+"&state="+VB(a,"1.33.1"));return b}
function HB(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=VB(a,"1.33.1");d.data=c;b=Ca(Da()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Fa("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.Fa(c),Ia(CB,""),a.B=null)}}
function Jb(a,b,c){a=jb(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}l.ld=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.D&&d.D.focus();!a&&window&&window.scrollTo(b,c)}};
function yd(a,b){a.H&&(a=a.H,a.tj&&(b||!a.ea.vb||a.ea.kj)&&(ug(a,"EAX",a.D),ug(a,"EBX",a.G),ug(a,"ECX",a.I),ug(a,"EDX",a.L),ug(a,"ESP",z(a)),ug(a,"EBP",a.M),ug(a,"ESI",a.K),ug(a,"EDI",a.J),ug(a,"CS",a.Z.U),ug(a,"DS",a.Ca.U),ug(a,"SS",a.Y.U),ug(a,"ES",a.oa.U),ug(a,"EIP",A(a)),b=de(a),ug(a,"PS",b),ug(a,"V",b&2048),ug(a,"D",b&1024),ug(a,"I",b&512),ug(a,"T",b&256),ug(a,"S",b&128),ug(a,"Z",b&64),ug(a,"A",b&16),ug(a,"P",b&4),ug(a,"C",b&1),80386==a.ca&&(ug(a,"FS",a.Ga.U),ug(a,"GS",a.Ha.U),ug(a,"CR0",a.qa),
ug(a,"CR2",a.Cd),ug(a,"CR3",a.Wc))),b=a.na.speed)&&(b.textContent=a.ea.vb&&a.T.Wd?a.T.Wd.toFixed(2)+"Mhz":"Stopped")}
@ -873,9 +873,9 @@ a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pcx86$2")
function ZB(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ca(e,null,!0,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 k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);ZB(a,b,c)}})}else c(a,null)}
function $B(a,b,c,d){function e(a){if(void 0===h){var b=g&&pb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=oa(a))}function f(a){e("Error: "+a);k&&(--WB||Xa(!0));k=!1}var g,h,k=!0;WB++;gb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=m:x.appendChild(document.createTextNode(m));p.appendChild(x)}c||
(c="/versions/pcx86/1.33.0/components.xsl");m=function(d,h){h?XB(c,null,null,!1,e,function(d,k){k?(eb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--WB||Xa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--WB||Xa(!0)):f("invalid machine element: "+
(c="/versions/pcx86/1.33.1/components.xsl");m=function(d,h){h?XB(c,null,null,!1,e,function(d,k){k?(eb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--WB||Xa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--WB||Xa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?XB(b,a,d,!0,e,m):YB(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function aC(a,b,c,d){Xa(!1);return $B(a,b,c,d)}window.embedPC=aC;window.embedPCx86=aC;window.findMachineComponent=function(a,b){return lb(b,a+".machine")};window.enableEvents=Xa;window.sendEvent=Za;
function bC(a,b,c,d){if(!c&&b){d.push(b);a=gb[d[0]];b=null;for(var e in a)if(na(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Ca(b,null,!0,function(a,b){cC(b,d)}):cC(null,d)}else Wa("Error ("+c+") requesting "+a)}
function cC(a,b){var c,d,e,f=b[0],g=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=gb[f],k={},m;for(m in h){var p=h[m],x=ma(m);if("xml"==x){for(x=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=x.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=la(m)}else"xsl"==x&&(e=m=la(m));k[m]=p}a&&(k[m="css"]=a);b[2]&&(k[m="parms"]=b[2]);b[3]&&(k[m="state"]=b[3]);d&&e?(a=JSON.stringify(k),g+=".js",c=c[1]+"var resources="+a+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
"&#xA9;"),a=Ma(c,"javascript",!1,g),a=a+(', copy it to your web server as "'+g+'", and then add the following to your web page:\n\n')+('<div id="'+f+'"></div>\n')+"...\n",a=a+('<script type="text/javascript" src="'+g+'">\x3c/script>\n')+('<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n')+"The machine should appear where the <div> is located.",Wa(a)):Wa("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=lb("Computer",a),e=lb("Debugger",a);if(d){var f=TA(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.33.0/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ca(b,null,!0,function(c,d,e){bC(c,d,e,[a,la(b,!0),g,f])});return!0}Wa("Unable to identify machine '"+a+"'");return!1};})();
window.savePC=function(a,b,c){var d=lb("Computer",a),e=lb("Debugger",a);if(d){var f=TA(d,!0),g=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcx86/1.33.1/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ok:g}))return!0;Ca(b,null,!0,function(c,d,e){bC(c,d,e,[a,la(b,!0),g,f])});return!0}Wa("Unable to identify machine '"+a+"'");return!1};})();