Working on version 1.36.1

This commit is contained in:
Jeff Parsons 2017-08-07 19:33:25 -07:00 committed by Jeff Parsons
commit eb79d0e87e
330 changed files with 193220 additions and 289 deletions

View file

@ -14,12 +14,12 @@
<xsl:variable name="CSSCLASS">pcjs</xsl:variable>
<xsl:variable name="APPCLASS">pcx86</xsl:variable>
<xsl:variable name="APPNAME">PCx86</xsl:variable>
<xsl:variable name="APPVERSION">1.36.0</xsl:variable>
<xsl:variable name="APPVERSION">1.36.1</xsl:variable>
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
<xsl:variable name="BGNDCOLOR">#FAEBD7</xsl:variable>
<xsl:template name="componentStyles">
<link rel="stylesheet" type="text/css" href="/versions/pcx86/1.36.0/components.css"/>
<link rel="stylesheet" type="text/css" href="/versions/pcx86/1.36.1/components.css"/>
</xsl:template>
<xsl:template name="componentScripts">

View file

@ -834,7 +834,7 @@ break}a:{var qd,rd=null,gb=g[1];"?"==gb&&(gb=void 0);if(void 0!==gb){var De=0;if
","),++vC%10||(fh+="\n\t"),"key"==qd&&(qd="keys"),fh+=qd}void 0===gb&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==rd?rd?"messages on: ":"messages off: ":"message categories:\n\t")+(fh||"none"));By(a)}break;case "o":var Mm=g[1],xC=g[2];if(Mm&&"?"!=Mm){var Nm=oy(a,Mm,"port #"),Om=oy(a,xC);void 0!==Nm&&void 0!==Om&&(Nc(a.na,Nm,1,Om),a.O(oa(Nm)+": "+na(Om)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");
break;case "p":if("print"==g[0]){xB(a,b.substr(5));break}var Zt="pr"==g[0]?1:0,tf=1+Zt;if(a.K)a.O("step in progress");else{var nj,$t=!1,Jb=zy(a,z(a.G),a.G.ba.T);do switch(nj=!1,a.ya(Jb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:bz(a,Jb,1);nj=!0;break;case 204:case 206:a.K=tf;bz(a,Jb,1);break;case 205:case 224:case 225:case 226:a.K=tf;bz(a,Jb,Jb.Jb?4:2);break;case 232:a.K=tf;bz(a,Jb,Jb.Jb?5:3);break;case 154:a.K=tf;bz(a,Jb,Jb.Jb?7:5);break;case 255:var au=a.mb(Jb)&
14591;if(4351==au||6399==au)a.K=tf,oA(a,Jb);break;case 243:case 242:bz(a,Jb,1);$t=nj=!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:$t&&(a.K=tf,bz(a,Jb,1))}while(nj);a.K?(a.sd(a.B,Jb,!0),eA(a,void 0)&&Ad(a.G,void 0,void 0)||(a.pa&&a.pa.ed(),a.K=0)):zB(a,Zt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}fA(a,g);break;case "t":zB(a,g[0],g[1]);break;case "u":gA(a,g[1],g[2],8);break;case "v":if("var"==
g[0]){sB(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.36.0 ("+a.G.da+",RELEASE,NOPREFETCH"+(Pb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ha());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var gh;void 0!==g[3]&&(gh=+g[3]);switch(g[2]){case "int":a.G.Y.Te=gh;break;case "start":a.G.Y.vf=gh;break;case "stop":a.G.Y.Ve=gh;break;default:a.O("unknown cs option");break a}void 0!==gh&&yd(a.G);a.O("checksums "+(a.G.Z.Ke?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Ed(a.G,
g[0]){sB(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.36.1 ("+a.G.da+",RELEASE,NOPREFETCH"+(Pb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ha());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var gh;void 0!==g[3]&&(gh=+g[3]);switch(g[2]){case "int":a.G.Y.Te=gh;break;case "start":a.G.Y.vf=gh;break;case "stop":a.G.Y.Ve=gh;break;default:a.O("unknown cs option");break a}void 0!==gh&&yd(a.G);a.O("checksums "+(a.G.Z.Ke?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Ed(a.G,
+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.G.Y.se.toFixed(2)+"Mhz")+" ("+a.G.Y.Bd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){xB(a,b.substr(1));break}var Pm="commands:",Qm;for(Qm in BB)Pm+=
"\n"+va(Qm,7)+BB[Qm];Jg(a)||(Pm+="\nnote: frequency/history disabled if no exec breakpoints");a.O(Pm);break;default:a.O("unknown command: "+b),d=!1}}}catch(cu){a.O("debugger error: "+(cu.stack||cu.message)),d=!1}return d}function Dy(a,b,c){b=a.Bg(b,c);for(var d in b)if(!nA(a,b[+d]))return!1;return!0}
var bA={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},aA=[26,28,40,42,109],BB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
@ -866,24 +866,24 @@ Fy,[119,R|S|W,DB|4096]],[[155,R|U|4096,V|U|4096],Fy,[98,R|U|W],[96,R|U|W],[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},Py={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};Xa(function(){for(var a=vb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new yy(d);ub(d,c)}});
function TB(a,b,c){ib.call(this,"Computer",a,67108864);var d=this;UB(this,b);this.X=ud(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.A=VB;this.M=null;this.J=this.fa=!1;this.oa=ud(this,"url")||"";this.qa=(Math.random()+.1).toString(36).substr(2,12);this.B=WB(this);if(this.G=tb("CPU",this.id)){this.ca=tb("Debugger",this.id);this.C=[];for(b=null;b=Vb(this,"Video",b);)this.C.push(b);this.na=new hc({id:this.de+".bus",busWidth:this.ra},this.G,this.ca);var e,f=xb(this.id);this.I=(this.H=
tb("Panel",this.id))&&this.H.la.print;this.ha=this.Ca;this.ka=this.print;this.ma=this.O;this.I&&(this.ha=this.H.Ca,this.ka=this.H.print,this.ma=this.H.O);for(b=0;b<f.length;b++)e=f[b],e.Ca=function(a,b,c){XB(d,a);return d.ha.call(this,a,b,c)}.bind(e),e.print=function(a){return d.ka.call(this,a)}.bind(e),e.O=function(a,b,c){XB(d,a,b);return d.ma.call(this,a,b,c)}.bind(e);this.P=0;this.I||YB(this);this.O("PCx86 v1.36.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<f.length;b++)e=f[b],e.uc&&e.uc(this,this.na,this.G,this.ca);vd(this.G,this.id,function(){Rd(d)},1E3/ZB);b=null;e=ud(this,"resume");void 0!==e&&(1<e.length?b=this.L=e:this.A=parseInt(e,10));e=!1;f=Qa("state");f||(e=!0,f=ud(this,"state",a));f&&(b=this.aa=f,e||(this.J=!0,this.A=VB),this.A&&(this.N=new Wf(this,"1.36.0"),this.N.load()?b=null:delete this.N));!b&&this.A&&(b=$B(this))&&(this.J=!0);if(this.ba=b){var g="Loading "+this.ba+"...";Fa(this.ba,null,!0,function(a,b,c){c?(d.L=null,d.J=!1,
tb("Panel",this.id))&&this.H.la.print;this.ha=this.Ca;this.ka=this.print;this.ma=this.O;this.I&&(this.ha=this.H.Ca,this.ka=this.H.print,this.ma=this.H.O);for(b=0;b<f.length;b++)e=f[b],e.Ca=function(a,b,c){XB(d,a);return d.ha.call(this,a,b,c)}.bind(e),e.print=function(a){return d.ka.call(this,a)}.bind(e),e.O=function(a,b,c){XB(d,a,b);return d.ma.call(this,a,b,c)}.bind(e);this.P=0;this.I||YB(this);this.O("PCx86 v1.36.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<f.length;b++)e=f[b],e.uc&&e.uc(this,this.na,this.G,this.ca);vd(this.G,this.id,function(){Rd(d)},1E3/ZB);b=null;e=ud(this,"resume");void 0!==e&&(1<e.length?b=this.L=e:this.A=parseInt(e,10));e=!1;f=Qa("state");f||(e=!0,f=ud(this,"state",a));f&&(b=this.aa=f,e||(this.J=!0,this.A=VB),this.A&&(this.N=new Wf(this,"1.36.1"),this.N.load()?b=null:delete this.N));!b&&this.A&&(b=$B(this))&&(this.J=!0);if(this.ba=b){var g="Loading "+this.ba+"...";Fa(this.ba,null,!0,function(a,b,c){c?(d.L=null,d.J=!1,
d.Ca("Unable to load machine state from server (error "+c+(b?": "+wa(b):"")+")")):(d.M=b,d.fa=!0);Kb(d)},function(){d.O(g,Fb.Ee)})}else Kb(this);this.la.power||(this.X=!0);!c&&this.X&&this.Of(this.Ye)}else ab("Unable to find CPU component")}ba(TB,ib);function vB(a){a.I&&(a.I.value="")}function YB(a){for(var b=0;b<a.C.length;b++){var c=a.C[b];c&&(c=c.og)&&(c.style.opacity="1",c.style.lineHeight="1",a.P++)}}
function XB(a,b,c){if(a.P)for(var d=0;d<a.C.length;d++){var e=a.C[d];e&&(e=e.og)&&(c!=Fb.Ee||"..."!=b.slice(-3)?qb(e,b+"\n"):rb(e,b,b+"."))}}function UB(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){ab(d.message+" ("+c+")")}}a.K=b}function ud(a,b,c){var d=Qa(b);void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l=TB.prototype;
l.Of=function(a,b){for(var c=this,d=xb(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Ib(f)){Ib(f,function(){c.Of(a,b)});return}}a.call(this,b)};function aC(a,b){var c=new Wf(a,"1.36.0",bC);if(c.load()&&cC(c)){var d=c.get(dC),e=b?b.get(dC):"unknown";d!=e&&(a.Ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.Ye=function(a){void 0===a&&(a=this.A||(this.M?eC:VB));if(!this.D){this.D++;var b=!1,c=!1;this.ea=!1;var d=this.N||new Wf(this,"1.36.0");if(a==Dd)b=!0;else if(a>VB){if(d.load(this.M)){this.F=new Wf(this,"1.36.0",fC);this.F.load()&&(a!=eC&&gC(this,d)&&(a=hC),iC(this.F));this.F.set(dC,za("Y-m-d H:i:s"));jC(this.F);var e=this.A&&!this.J;if(a==eC||pb("Click OK to restore the previous PCx86 machine state.")){if(c=cC(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
l.Of=function(a,b){for(var c=this,d=xb(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Ib(f)){Ib(f,function(){c.Of(a,b)});return}}a.call(this,b)};function aC(a,b){var c=new Wf(a,"1.36.1",bC);if(c.load()&&cC(c)){var d=c.get(dC),e=b?b.get(dC):"unknown";d!=e&&(a.Ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.Ye=function(a){void 0===a&&(a=this.A||(this.M?eC:VB));if(!this.D){this.D++;var b=!1,c=!1;this.ea=!1;var d=this.N||new Wf(this,"1.36.1");if(a==Dd)b=!0;else if(a>VB){if(d.load(this.M)){this.F=new Wf(this,"1.36.1",fC);this.F.load()&&(a!=eC&&gC(this,d)&&(a=hC),iC(this.F));this.F.set(dC,za("Y-m-d H:i:s"));jC(this.F);var e=this.A&&!this.J;if(a==eC||pb("Click OK to restore the previous PCx86 machine state.")){if(c=cC(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.Ca("Error: "+g),"unable to verify user"==g&&(La(kC,""),this.B=null)):this.O(f+": "+g),iC(d),d.load()?(c=cC(d),e=!0):c=!1))}e&&aC(this,c?d:null)}else a==hC&&d.clear()}else aC(this);delete this.M;delete this.N}e=xb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.G&&(c=lC(this,g,d,b,c));b=[d,a,c];a!=Dd?this.Of(this.kj,b):this.kj(b)}};
function lC(a,b,c,d,e){if(!b.Z.bc){b.Z.bc=!0;if(b.ac){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.ac(f,d)&&f&&(b.Ca("Unable to restore hardware state")&&(a.aa&&!a.fa?(c.clear(),a.A=VB,window&&window.location.reload()):a.ea=!0),b.ac(null),e=!1)}b.Z.nf=!0;if(!d&&b.vj)for(a=b.vj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.kj=function(a){var b=a[0],c=0>a[1];a=a[2];if(!this.Z.nf){for(var d=0;d<this.C.length;d++){var e=this.C[d];if(e&&(e=e.og)){var f=Ha();e.style.opacity="0";e.style.lineHeight="0";if(0<=f.indexOf("MSIE")||0<=f.indexOf("Trident"))e.style.fontSize="0";e.value=""}}this.P=0;this.Z.nf=!0}this.Z.bc=!0;if(d=this.la.power)d.textContent="Shutdown";this.G&&(lC(this,this.G,b,c,a),this.G.ie());this.ea&&(gC(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.D=0;zb(this.de,ud(this,"autoScript"))};
function gC(a,b){if(!a.Z.ze){if(pb("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.36.0"};d.url=a.oa;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}return!0}return!1}
function AB(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Wf(a,"1.36.0"),g=new Wf(a,"1.36.0",bC),h=za("Y-m-d H:i:s");g.set(dC,h);f.set(dC,h);f.set(mC,"1.36.0");f.set(nC,window?window.location.href:null);f.set(oC,Ha());a.G&&a.G.$b&&(d=a.G.$b(b,c),"object"===typeof d&&f.set(a.G.id,d),c&&(a.G.Z.bc=!1,!1===d&&(e=null)));for(var h=xb(a.id),k=0;k<h.length;k++){var m=h[k];m.Z.bc&&(m.$b&&(d=m.$b(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.Z.bc=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&yC(a,
function gC(a,b){if(!a.Z.ze){if(pb("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.36.1"};d.url=a.oa;d.user=c;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}return!0}return!1}
function AB(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Wf(a,"1.36.1"),g=new Wf(a,"1.36.1",bC),h=za("Y-m-d H:i:s");g.set(dC,h);f.set(dC,h);f.set(mC,"1.36.1");f.set(nC,window?window.location.href:null);f.set(oC,Ha());a.G&&a.G.$b&&(d=a.G.$b(b,c),"object"===typeof d&&f.set(a.G.id,d),c&&(a.G.Z.bc=!1,!1===d&&(e=null)));for(var h=xb(a.id),k=0;k<h.length;k++){var m=h[k];m.Z.bc&&(m.$b&&(d=m.$b(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.Z.bc=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&yC(a,
a.B,f.toString()),jC(g)&&jC(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==zC),d&&f.clear(h)):e=f.toString());c&&(a.Z.bc=!1,b=a.la.power)&&(b.textContent="Power");a.D=0;return e}l.reset=function(){this.na&&this.na.reset&&(Nb(this,"Resetting "+this.na.type),this.na.reset());for(var a=xb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.na&&c.reset&&(Nb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=xb(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=xb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.Eb=function(a,b,c){var d=this;switch(b){case "power":return this.la[b]=c,c.onclick=function(){d.D||(d.Z.bc?AB(d,!1,!0):d.Of(d.Ye))},!0;case "reset":return this.la[b]=c,c.onclick=function(){if(d.Z.bc&&!d.D)if(d.G&&(d.G.Z.ie=d.G.Z.Va),d.A&&!d.L){var a=d.Z.ze||!pb("Click OK to reset this PCx86 machine and discard all disk modifications.");AB(d,a,!0);!a&&d.aa?window&&window.location.reload():(a||(d.U=!0),d.Ye(VB),d.U=!1)}else d.reset(),d.G&&d.G.ie()},!0;case "save":if(sa(Ga(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.la[b]=c,c.onclick=function(){var a=WB(d,!0);if(a){var b=!!(d.A&&!d.L||d.aa),c=AB(d,b);b?yC(d,a,c):d.Ca("Resume disabled, machine state not saved")}},!0}return!1};
function WB(a,b){var c=a.B;c||((c=Ka(kC),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=AC(a,c))||a.Ca("The user ID is invalid.")):b&&a.Ca("Browser local storage is not available"));return c}
function AC(a,b){a.B=null;b=Fa(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(kC,b.data),a.B=b.data)}catch(d){ab(d.message+" ("+c+")")}return a.B}function $B(a){var b=null;a.B&&(b=Ga()+"/api/v1/user?req=load&user="+a.B+"&state="+BC(a,"1.36.0"));return b}
function yC(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=BC(a,"1.36.0");d.data=c;b=Fa(Ga()+"/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.Ca("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.Ca(c),La(kC,""),a.B=null)}}
function AC(a,b){a.B=null;b=Fa(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La(kC,b.data),a.B=b.data)}catch(d){ab(d.message+" ("+c+")")}return a.B}function $B(a){var b=null;a.B&&(b=Ga()+"/api/v1/user?req=load&user="+a.B+"&state="+BC(a,"1.36.1"));return b}
function yC(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=BC(a,"1.36.1");d.data=c;b=Fa(Ga()+"/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.Ca("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.Ca(c),La(kC,""),a.B=null)}}
function Vb(a,b,c){a=xb(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.ed=function(a){if(this.C.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.C[0];d.F&&d.F.focus();!a&&window&&window.scrollTo(b,c)}};
function Rd(a,b){if(a.G){var c=a.G;if(c.rj&&(b||!c.Z.Va||c.Z.ij)){Ig(c,"EAX",c.D);Ig(c,"EBX",c.H);Ig(c,"ECX",c.I);Ig(c,"EDX",c.L);Ig(c,"ESP",y(c));Ig(c,"EBP",c.N);Ig(c,"ESI",c.K);Ig(c,"EDI",c.J);Ig(c,"CS",c.ba.T);Ig(c,"DS",c.Fa.T);Ig(c,"SS",c.U.T);Ig(c,"ES",c.oa.T);Ig(c,"EIP",z(c));var d=pe(c);Ig(c,"PS",d);Ig(c,"V",d&2048);Ig(c,"D",d&1024);Ig(c,"I",d&512);Ig(c,"T",d&256);Ig(c,"S",d&128);Ig(c,"Z",d&64);Ig(c,"A",d&16);Ig(c,"P",d&4);Ig(c,"C",d&1);80386==c.da&&(Ig(c,"FS",c.La.T),Ig(c,"GS",c.Pa.T),Ig(c,
"CR0",c.qa),Ig(c,"CR2",c.qd),Ig(c,"CR3",c.Uc))}if(d=c.la.speed)d.textContent=c.Z.Va&&c.Y.Ld?c.Y.Ld.toFixed(2)+"Mhz":"Stopped"}for(c=0;c<a.C.length;c++)Fs(a.C[c],b)}var fC="failsafe",bC="validate",dC="timestamp",mC="version",nC="url",oC="browser",kC="user",Dd=-1,VB=0,eC=1,hC=2,zC=3,ZB=2;Xa(function(){for(var a=vb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=wb(c),c=vb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=wb(f),g=new TB(g,d,!0);ub(g,f);g.X&&g.Of(g.Ye)}});
@ -898,10 +898,10 @@ b:""),null)}
function FC(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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/gi;m=p.exec(f);)k=0>k.toLowerCase().indexOf(m[1].toLowerCase())?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);FC(a,b,c)}})}else c(a,null)}
function GC(a,b,c,d){function e(a){if(void 0===h){var b=g&&vb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ta(a))}function f(a){e("Error: "+a);k&&(--CC||bb(!0));k=!1}var g,h,k=!0;CC++;ob[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css";v.styleSheet?v.styleSheet.cssText=m:v.appendChild(document.createTextNode(m));p.appendChild(v)}c||
(c="/versions/pcx86/1.36.0/components.xsl");m=function(d,h){h?DC(c,null,null,!1,e,function(d,k){k?(nb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--CC||bb(!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),--CC||bb(!0)):f("invalid machine element: "+
(c="/versions/pcx86/1.36.1/components.xsl");m=function(d,h){h?DC(c,null,null,!1,e,function(d,k){k?(nb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--CC||bb(!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),--CC||bb(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?DC(b,a,d,!0,e,m):EC(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}function HC(a,b,c,d){bb(!1);return GC(a,b,c,d)}window.embedPC=HC;window.embedPCx86=HC;
window.commandMachine=function(a,b,c,d,e,f){if("script"==e)return zb(c,f)?(b&&(a.disabled=!0),!0):!1;if(d){var g=tb(d,c+".machine");if(g){var h=g.exports;if(h&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1}}console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=bb;window.sendEvent=fb;
function IC(a,b,c,d){if(!c&&b){d.push(b);a=ob[d[0]];b=null;for(var e in a)if(sa(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?Fa(b,null,!0,function(a,b){JC(b,d)}):JC(null,d)}else ab("Error ("+c+") requesting "+a)}
function JC(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=ob[f],k={},m;for(m in h){var p=h[m],v=ra(m);if("xml"==v){for(v=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=v.exec(h[m]);){var u=d[2];u&&(h[u]||(p=p.replace(d[0],"")))}d=m=pa(m)}else"xsl"==v&&(e=m=pa(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=Ta(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.",ab(a)):ab("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=tb("Computer",a),e=tb("Debugger",a);if(d){var f=AB(d,!0),g=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcx86/1.36.0/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Nk:g}))return!0;Fa(b,null,!0,function(c,d,e){IC(c,d,e,[a,pa(b,!0),g,f])});return!0}ab("Unable to identify machine '"+a+"'");return!1};})();//# sourceMappingURL=/versions/pcx86/1.36.0/pcx86-dbg.map
window.savePC=function(a,b,c){var d=tb("Computer",a),e=tb("Debugger",a);if(d){var f=AB(d,!0),g=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcx86/1.36.1/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Nk:g}))return!0;Fa(b,null,!0,function(c,d,e){IC(c,d,e,[a,pa(b,!0),g,f])});return!0}ab("Unable to identify machine '"+a+"'");return!1};})();//# sourceMappingURL=/versions/pcx86/1.36.1/pcx86-dbg.map

View file

@ -669,24 +669,24 @@ var Mt="Hard Drive",Rt=["XTC","ATC","COMPAQ"],Nt=[{0:[306,2],1:[375,8],2:[306,6]
112,ou=144,vu=145,pu=240,wu=2,ju=4,Cu=0,Du=2,Gu=0,Hu=1,yu=3,Iu=5,Ju=8,Lu=10,Wt=12,Nu=15,Eu=224,Fu=228,Lt=0,Au=4,Pu=20,Kt=0,Xt=1,Tt=2,Ut=4,Vt=8,St=32,Ct={800:Y.prototype.wl,801:Y.prototype.xl,802:Y.prototype.vl},Bt={496:Y.prototype.Yj,497:Y.prototype.Dk,498:Y.prototype.Fk,499:Y.prototype.Gk,500:Y.prototype.Bk,501:Y.prototype.Ak,502:Y.prototype.Ck,503:Y.prototype.Hk},Et={800:Y.prototype.Om,801:Y.prototype.Rm,802:Y.prototype.Qm,803:Y.prototype.Pm,807:Y.prototype.fh,811:Y.prototype.fh,815:Y.prototype.fh},
Dt={496:Y.prototype.Zl,497:Y.prototype.dm,498:Y.prototype.bm,499:Y.prototype.cm,500:Y.prototype.Yl,501:Y.prototype.Xl,502:Y.prototype.$l,503:Y.prototype.Wl,1014:Y.prototype.am};La(function(){for(var a=bb(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=cb(c),d=new Y(d);ab(d,c)}});
function Ru(a,b,c){u.call(this,"Computer",a);var d=this;Su(this,b);this.N=Fc(this,"autoPower",a);this.D=0;this.qa=a.busWidth||a.buswidth;this.A=Tu;this.K=null;this.H=this.da=!1;this.ma=Fc(this,"url")||"";this.oa=(Math.random()+.1).toString(36).substr(2,12);this.B=Uu(this);if(this.R=$a("CPU",this.id)){this.Da=$a("Debugger",this.id);this.C=[];for(b=null;b=tb(this,"Video",b);)this.C.push(b);this.na=new Gb({id:this.Bd+".bus",busWidth:this.qa},this.R,this.Da);var e,f=db(this.id);this.aa=(this.G=$a("Panel",
this.id))&&this.G.ia.print;this.fa=this.wa;this.ja=this.print;this.la=this.tb;this.aa&&(this.fa=this.G.wa,this.ja=this.G.print,this.la=this.G.tb);for(b=0;b<f.length;b++)e=f[b],e.wa=function(a,b,c){Vu(d,a);return d.fa.call(this,a,b,c)}.bind(e),e.print=function(a){return d.ja.call(this,a)}.bind(e),e.tb=function(a,b,c){Vu(d,a,b);return d.la.call(this,a,b,c)}.bind(e);this.M=0;this.aa||Wu(this);this.tb("PCx86 v1.36.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<f.length;b++)e=f[b],e.kc&&e.kc(this,this.na,this.R,this.Da);Gc(this.R,this.id,function(){bd(d)},1E3/Xu);b=null;e=Fc(this,"resume");void 0!==e&&(1<e.length?b=this.J=e:this.A=parseInt(e,10));e=!1;f=Ga("state");f||(e=!0,f=Fc(this,"state",a));f&&(b=this.W=f,e||(this.H=!0,this.A=Tu),this.A&&(this.L=new Me(this,"1.36.0"),this.L.load()?b=null:delete this.L));!b&&this.A&&(b=Yu(this))&&(this.H=!0);if(this.Y=b){var g="Loading "+this.Y+"...";va(this.Y,null,!0,function(a,b,c){c?(d.J=null,d.H=!1,d.wa("Unable to load machine state from server (error "+
this.id))&&this.G.ia.print;this.fa=this.wa;this.ja=this.print;this.la=this.tb;this.aa&&(this.fa=this.G.wa,this.ja=this.G.print,this.la=this.G.tb);for(b=0;b<f.length;b++)e=f[b],e.wa=function(a,b,c){Vu(d,a);return d.fa.call(this,a,b,c)}.bind(e),e.print=function(a){return d.ja.call(this,a)}.bind(e),e.tb=function(a,b,c){Vu(d,a,b);return d.la.call(this,a,b,c)}.bind(e);this.M=0;this.aa||Wu(this);this.tb("PCx86 v1.36.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<f.length;b++)e=f[b],e.kc&&e.kc(this,this.na,this.R,this.Da);Gc(this.R,this.id,function(){bd(d)},1E3/Xu);b=null;e=Fc(this,"resume");void 0!==e&&(1<e.length?b=this.J=e:this.A=parseInt(e,10));e=!1;f=Ga("state");f||(e=!0,f=Fc(this,"state",a));f&&(b=this.W=f,e||(this.H=!0,this.A=Tu),this.A&&(this.L=new Me(this,"1.36.1"),this.L.load()?b=null:delete this.L));!b&&this.A&&(b=Yu(this))&&(this.H=!0);if(this.Y=b){var g="Loading "+this.Y+"...";va(this.Y,null,!0,function(a,b,c){c?(d.J=null,d.H=!1,d.wa("Unable to load machine state from server (error "+
c+(b?": "+oa(b):"")+")")):(d.K=b,d.da=!0);ob(d)},function(){d.tb(g,lb.ae)})}else ob(this);this.ia.power||(this.N=!0);!c&&this.N&&this.df(this.ue)}else q("Unable to find CPU component")}ba(Ru,u);function Wu(a){for(var b=0;b<a.C.length;b++){var c=a.C[b];c&&(c=c.Ef)&&(c.style.opacity="1",c.style.lineHeight="1",a.M++)}}function Vu(a,b,c){if(a.M)for(var d=0;d<a.C.length;d++){var e=a.C[d];e&&(e=e.Ef)&&(c!=lb.ae||"..."!=b.slice(-3)?Xa(e,b+"\n"):Ya(e,b,b+"."))}}
function Su(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.I=b}function Fc(a,b,c){var d=Ga(b);void 0===d&&a.I&&(d=a.I[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}l=Ru.prototype;l.df=function(a,b){for(var c=this,d=db(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!nb(f)){nb(f,function(){c.df(a,b)});return}}a.call(this,b)};
function Zu(a,b){var c=new Me(a,"1.36.0",$u);if(c.load()&&av(c)){var d=c.get(bv),e=b?b.get(bv):"unknown";d!=e&&(a.wa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ue=function(a){void 0===a&&(a=this.A||(this.K?cv:Tu));if(!this.D){this.D++;var b=!1,c=!1;this.ba=!1;var d=this.L||new Me(this,"1.36.0");if(a==Oc)b=!0;else if(a>Tu){if(d.load(this.K)){this.F=new Me(this,"1.36.0",dv);this.F.load()&&(a!=cv&&ev(this,d)&&(a=fv),gv(this.F));this.F.set(bv,qa("Y-m-d H:i:s"));hv(this.F);var e=this.A&&!this.H;if(a==cv||Wa("Click OK to restore the previous PCx86 machine state.")){if(c=av(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
function Zu(a,b){var c=new Me(a,"1.36.1",$u);if(c.load()&&av(c)){var d=c.get(bv),e=b?b.get(bv):"unknown";d!=e&&(a.wa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
l.ue=function(a){void 0===a&&(a=this.A||(this.K?cv:Tu));if(!this.D){this.D++;var b=!1,c=!1;this.ba=!1;var d=this.L||new Me(this,"1.36.1");if(a==Oc)b=!0;else if(a>Tu){if(d.load(this.K)){this.F=new Me(this,"1.36.1",dv);this.F.load()&&(a!=cv&&ev(this,d)&&(a=fv),gv(this.F));this.F.set(bv,qa("Y-m-d H:i:s"));hv(this.F);var e=this.A&&!this.H;if(a==cv||Wa("Click OK to restore the previous PCx86 machine state.")){if(c=av(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
g?(this.wa("Error: "+g),"unable to verify user"==g&&(Ca(iv,""),this.B=null)):this.tb(f+": "+g),gv(d),d.load()?(c=av(d),e=!0):c=!1))}e&&Zu(this,c?d:null)}else a==fv&&d.clear()}else Zu(this);delete this.K;delete this.L}e=db(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.R&&(c=jv(this,g,d,b,c));b=[d,a,c];a!=Oc?this.df(this.fi,b):this.fi(b)}};
function jv(a,b,c,d,e){if(!b.X.Sb){b.X.Sb=!0;if(b.Rb){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/-[0-9]+\./i,"."))));"string"===typeof f&&(f=null);!b.Rb(f,d)&&f&&(b.wa("Unable to restore hardware state")&&(a.W&&!a.da?(c.clear(),a.A=Tu,window&&window.location.reload()):a.ba=!0),b.Rb(null),e=!1)}b.X.Ie=!0;if(!d&&b.ki)for(a=b.ki.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.fi=function(a){var b=a[0],c=0>a[1];a=a[2];if(!this.X.Ie){for(var d=0;d<this.C.length;d++){var e=this.C[d];if(e&&(e=e.Ef)){var f=xa();e.style.opacity="0";e.style.lineHeight="0";if(0<=f.indexOf("MSIE")||0<=f.indexOf("Trident"))e.style.fontSize="0";e.value=""}}this.M=0;this.X.Ie=!0}this.X.Sb=!0;if(d=this.ia.power)d.textContent="Shutdown";this.R&&(jv(this,this.R,b,c,a),this.R.Fd());this.ba&&(ev(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.D=0;fb(this.Bd,Fc(this,"autoScript"))};
function ev(a,b){if(!a.X.Xd){if(Wa("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.36.0"};d.url=a.ma;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}return!0}return!1}
function kv(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Me(a,"1.36.0"),g=new Me(a,"1.36.0",$u),h=qa("Y-m-d H:i:s");g.set(bv,h);f.set(bv,h);f.set(lv,"1.36.0");f.set(mv,window?window.location.href:null);f.set(nv,xa());a.R&&a.R.Qb&&(d=a.R.Qb(b,c),"object"===typeof d&&f.set(a.R.id,d),c&&(a.R.X.Sb=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;k<h.length;k++){var m=h[k];m.X.Sb&&(m.Qb&&(d=m.Qb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.X.Sb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&ov(a,
function ev(a,b){if(!a.X.Xd){if(Wa("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.36.1"};d.url=a.ma;d.user=c;d.type="bug";d.data=b;va("http://www.pcjs.org/api/v1/report",d,!0)}return!0}return!1}
function kv(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Me(a,"1.36.1"),g=new Me(a,"1.36.1",$u),h=qa("Y-m-d H:i:s");g.set(bv,h);f.set(bv,h);f.set(lv,"1.36.1");f.set(mv,window?window.location.href:null);f.set(nv,xa());a.R&&a.R.Qb&&(d=a.R.Qb(b,c),"object"===typeof d&&f.set(a.R.id,d),c&&(a.R.X.Sb=!1,!1===d&&(e=null)));for(var h=db(a.id),k=0;k<h.length;k++){var m=h[k];m.X.Sb&&(m.Qb&&(d=m.Qb(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.X.Sb=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.B&&ov(a,
a.B,f.toString()),hv(g)&&hv(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=a.A==pv),d&&f.clear(h)):e=f.toString());c&&(a.X.Sb=!1,b=a.ia.power)&&(b.textContent="Power");a.D=0;return e}l.reset=function(){this.na&&this.na.reset&&this.na.reset();for(var a=db(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.na&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=db(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=db(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.Ab=function(a,b,c){var d=this;switch(b){case "power":return this.ia[b]=c,c.onclick=function(){d.D||(d.X.Sb?kv(d,!1,!0):d.df(d.ue))},!0;case "reset":return this.ia[b]=c,c.onclick=function(){if(d.X.Sb&&!d.D)if(d.R&&(d.R.X.Fd=d.R.X.cb),d.A&&!d.J){var a=d.X.Xd||!Wa("Click OK to reset this PCx86 machine and discard all disk modifications.");kv(d,a,!0);!a&&d.W?window&&window.location.reload():(a||(d.U=!0),d.ue(Tu),d.U=!1)}else d.reset(),d.R&&d.R.Fd()},!0;case "save":if(la(wa(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.ia[b]=c,c.onclick=function(){var a=Uu(d,!0);if(a){var b=!!(d.A&&!d.J||d.W),c=kv(d,b);b?ov(d,a,c):d.wa("Resume disabled, machine state not saved")}},!0}return!1};
function Uu(a,b){var c=a.B;c||((c=Ba(iv),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=qv(a,c))||a.wa("The user ID is invalid.")):b&&a.wa("Browser local storage is not available"));return c}
function qv(a,b){a.B=null;b=va(wa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ca(iv,b.data),a.B=b.data)}catch(d){q(d.message+" ("+c+")")}return a.B}function Yu(a){var b=null;a.B&&(b=wa()+"/api/v1/user?req=load&user="+a.B+"&state="+rv(a,"1.36.0"));return b}
function ov(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=rv(a,"1.36.0");d.data=c;b=va(wa()+"/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.wa("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.wa(c),Ca(iv,""),a.B=null)}}
function qv(a,b){a.B=null;b=va(wa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ca(iv,b.data),a.B=b.data)}catch(d){q(d.message+" ("+c+")")}return a.B}function Yu(a){var b=null;a.B&&(b=wa()+"/api/v1/user?req=load&user="+a.B+"&state="+rv(a,"1.36.1"));return b}
function ov(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=rv(a,"1.36.1");d.data=c;b=va(wa()+"/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.wa("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.wa(c),Ca(iv,""),a.B=null)}}
function tb(a,b,c){a=db(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}function Tc(a,b){if(a.C.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.C[0];a.F&&a.F.focus();!b&&window&&window.scrollTo(c,d)}}
function bd(a,b){if(a.R){var c=a.R;if(c.ji&&(b||!c.X.cb||c.X.di)){uf(c,"EAX",c.F);uf(c,"EBX",c.G);uf(c,"ECX",c.H);uf(c,"EDX",c.L);uf(c,"ESP",C(c));uf(c,"EBP",c.M);uf(c,"ESI",c.J);uf(c,"EDI",c.I);uf(c,"CS",c.fa.ha);uf(c,"DS",c.Ia.ha);uf(c,"SS",c.W.ha);uf(c,"ES",c.xa.ha);uf(c,"EIP",E(c));var d=wd(c);uf(c,"PS",d);uf(c,"V",d&2048);uf(c,"D",d&1024);uf(c,"I",d&512);uf(c,"T",d&256);uf(c,"S",d&128);uf(c,"Z",d&64);uf(c,"A",d&16);uf(c,"P",d&4);uf(c,"C",d&1);80386==c.ca&&(uf(c,"FS",c.ub.ha),uf(c,"GS",c.vb.ha),
uf(c,"CR0",c.oa),uf(c,"CR2",c.rd),uf(c,"CR3",c.dd))}if(d=c.ia.speed)d.textContent=c.X.cb&&c.V.hd?c.V.hd.toFixed(2)+"Mhz":"Stopped"}for(c=0;c<a.C.length;c++)iq(a.C[c],b)}var dv="failsafe",$u="validate",bv="timestamp",lv="version",mv="url",nv="browser",iv="user",Oc=-1,Tu=0,cv=1,fv=2,pv=3,Xu=2;La(function(){for(var a=bb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=cb(c),c=bb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=cb(f),g=new Ru(g,d,!0);ab(g,f);g.N&&g.df(g.ue)}});
@ -701,10 +701,10 @@ b:""),null)}
function vv(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");va(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,r=/( [a-z]+=)(['"])(.*?)\2/gi;m=r.exec(f);)k=0>k.toLowerCase().indexOf(m[1].toLowerCase())?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);vv(a,b,c)}})}else c(a,null)}
function wv(a,b,c,d){function e(a){if(void 0===h){var b=g&&bb(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);k&&(--sv||Pa(!0));k=!1}var g,h,k=!0;sv++;Va[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=m:y.appendChild(document.createTextNode(m));r.appendChild(y)}c||
(c="/versions/pcx86/1.36.0/components.xsl");m=function(d,h){h?tv(c,null,null,!1,e,function(d,k){k?(Ua(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--sv||Pa(!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),--sv||Pa(!0)):f("invalid machine element: "+
(c="/versions/pcx86/1.36.1/components.xsl");m=function(d,h){h?tv(c,null,null,!1,e,function(d,k){k?(Ua(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--sv||Pa(!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),--sv||Pa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?tv(b,a,d,!0,e,m):uv(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return k}function xv(a,b,c,d){Pa(!1);return wv(a,b,c,d)}window.embedPC=xv;window.embedPCx86=xv;
window.commandMachine=function(a,b,c,d,e,f){if("script"==e)return fb(c,f)?(b&&(a.disabled=!0),!0):!1;if(d){var g=$a(d,c+".machine");if(g){var h=g.exports;if(h&&(h=h[e]))return h.call(g,f)?(b&&(a.disabled=!0),!0):!1}}console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=Pa;window.sendEvent=Ra;
function yv(a,b,c,d){if(!c&&b){d.push(b);a=Va[d[0]];b=null;for(var e in a)if(la(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?va(b,null,!0,function(a,b){zv(b,d)}):zv(null,d)}else q("Error ("+c+") requesting "+a)}
function zv(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=Va[f],k={},m;for(m in h){var r=h[m],y=ka(m);if("xml"==y){for(y=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=y.exec(h[m]);){var t=d[2];t&&(h[t]||(r=r.replace(d[0],"")))}d=m=ja(m)}else"xsl"==y&&(e=m=ja(m));k[m]=r}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=Ja(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.",q(a)):q("Missing XML/XSL resources")}
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=kv(d,!0),g=d.I?JSON.stringify(d.I):null;b||(b="/versions/pcx86/1.36.0/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Dj:g}))return!0;va(b,null,!0,function(c,d,e){yv(c,d,e,[a,ja(b,!0),g,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();//# sourceMappingURL=/versions/pcx86/1.36.0/pcx86.map
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=kv(d,!0),g=d.I?JSON.stringify(d.I):null;b||(b="/versions/pcx86/1.36.1/pcx86"+(e?"-dbg":"")+".js");if(c&&c({state:f,Dj:g}))return!0;va(b,null,!0,function(c,d,e){yv(c,d,e,[a,ja(b,!0),g,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();//# sourceMappingURL=/versions/pcx86/1.36.1/pcx86.map