Added some RL11 register definitions

This commit is contained in:
Jeff 2016-10-25 14:40:33 -07:00 • committed by Jeff Parsons
commit 04be27b47b
7 changed files with 249 additions and 164 deletions

View file

@ -172,8 +172,8 @@ function Te(a,b){b|=0;if(b!==a.K){var c=a.m.readProgress;c&&(c=(c=E(c,"pcjs-prog
function Ze(a,b){if(a.h||!1===b)a.F="",a.h="",b||(a.g&&a.status(1==a.g?"tape detached":"tape unloaded"),a.u=Pe,a.g=Qe,Ye(a))}h.save=function(){return(new P(this)).data()};h.restore=function(){return!0};h.sc=function(){return this.b&65534};h.ed=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&xb(this.a,this.G)):(this.b&=-129,this.b|=2048,this.B=0,yb(this.a,this.P,1E3/Math.round(this.N/10))));this.b=this.b&-66|a&65};h.rc=function(){this.b&=-129;this.b|=2048;return this.B};h.dd=function(){};
var bf={},Ue=(bf[65384]=[null,null,Db.prototype.sc,Db.prototype.ed,"PRS"],bf[65386]=[null,null,Db.prototype.rc,Db.prototype.dd,"PRB"],bf);function cf(a,b,c){y.call(this,"Disk",{id:a.ia+".disk"+l(++df,4)},cf);this.controller=a;this.i=a.i;this.D=a.D;this.g=b;this.oa=b.name;this.mb=b.mb;ef(this,c,b.fa,b.ca,b.Y,b.ma);G(this)}var df=0;A(cf);cf.prototype.ba=function(a,b,c,d){this.D=d};
function ef(a,b,c,d,e,f){a.mode=b;a.fa=c;a.ca=d;a.Y=e;a.ma=f;a.a=[];if("preload"!=a.mode){b=Array(a.fa);for(c=0;c<b.length;c++){d=Array(a.ca);for(e=0;e<d.length;e++){f=Array(a.Y);for(var g=1;g<=f.length;g++)f[g-1]=ff(null,c,e,g,a.ma,0);d[e]=f}b[c]=d}a.a=b}a.c=null}
function gf(a,b,c,d,e){var f=c;if(a.b)return!0;a.oa=b;a.za=c;a.Qb=n(c);a.b=e;a.h=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.fa=e[0];a.ca=e[1];a.Y=e[2];a.ma=e[3]||512;c=a.ma>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.fa);for(d=0;d<a.a.length;d++)for(var F=a.a[d]=Array(a.ca),R=0;R<F.length;R++)for(var ta=F[R]=Array(a.Y),ua=0;ua<ta.length;ua++){for(var Wb=ff(null,d,R,ua+1,a.ma,0),Hf=Wb.data,Xb=0;Xb<c;Xb++,f+=4)var If=Hf[Xb]=b.getInt32(f,
!0),e=e+If&-1;Wb.Xa=c;ta[ua]=Wb}a.c=e;c=a}else a.C("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.g,c,a.oa,a.za),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=u()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.mb?"":e)+"&format=json"));return!!q(f,
function gf(a,b,c,d,e){var f=c;if(a.b)return!0;a.oa=b;a.za=c;a.Qb=n(c);a.b=e;a.h=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ia[d];if(e){a.fa=e[0];a.ca=e[1];a.Y=e[2];a.ma=e[3]||512;c=a.ma>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.fa);for(d=0;d<a.a.length;d++)for(var F=a.a[d]=Array(a.ca),R=0;R<F.length;R++)for(var ta=F[R]=Array(a.Y),ua=0;ua<ta.length;ua++){for(var Wb=ff(null,d,R,ua+1,a.ma,0),If=Wb.data,Xb=0;Xb<c;Xb++,f+=4)var Jf=If[Xb]=b.getInt32(f,
!0),e=e+Jf&-1;Wb.Xa=c;ta[ua]=Wb}a.c=e;c=a}else a.C("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.g,c,a.oa,a.za),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=la(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ma(c,"/")&&(d="dir"),f=u()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.mb?"":e)+"&format=json"));return!!q(f,
null,!0,function(b,c,d){hf(a,b,c,d)})}
function hf(a,b,c,d){var e=null;a.l=!1;var f=0>d&&a.i&&!a.i.j.O;if(d)a.controller.C('Unable to load disk "'+a.oa+'" (error '+d+": "+b+")",f);else{Qa(a.controller.ia,b,c);try{if(0<n(a.Qb,!0).toLowerCase().indexOf("-readonly"))a.l=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.l=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.oa]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
c+")");if(k.length)if(1==k.length)r(k[0]);else{a.fa=k.length;a.ca=k[0].length;a.Y=k[0][0].length;var m=k[0][0][0];a.ma=m&&m.length||512;for(d=c=0;d<a.fa;d++)for(f=0;f<a.ca;f++)for(g=0;g<a.Y;g++)if(m=k[d][f][g]){var p=m.length;void 0===p&&(p=m.length=512);var p=p>>2,t=m.pattern;void 0===t&&(t=m.pattern=0);var w=m.data;if(void 0===w){var F=m.bytes;if(void 0!==F&&F.length){for(var R=p<<2,ta=F.length;ta<R;ta++)F[ta]=t;jf(m,F)}else w=[],t=m.pattern=t|t<<8|t<<16|t<<24,m.data=w;delete m.bytes}ff(m,d,f);
@ -188,43 +188,44 @@ function mf(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f
h.V=function(a,b,c){var d=this;switch(b){case "listDisks":return this.m[b]=c,c.onchange=function(){var a=d.m.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){r("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.m[b]=c,c.onchange=function(){var a=ja(c.value);null!=a&&nf(d,a)},!0;case "loadDrive":return this.m[b]=
c,c.onclick=function(){var a=d.m.listDisks;a&&of(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.h){c.parentNode.removeChild(c);break}this.m[b]=c;c.onclick=function(){var a=d.m.listDrives;if(a&&a.options&&d.b)if(a=d.b[ja(a.value)||0])if(a=a.ab){var b;b="";for(var c=0,k;k=kf(a,c++);)for(var m=0,p=k.length;m<p;m++)b+=String.fromCharCode(lf(k,m));b=btoa(b);a=a.Qb.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=
typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+(a?" ("+a+")":"")+".");r(a)}else d.C("No disk loaded in drive.");else d.C("No disk drive selected.")};return!0;case "mountDrive":if(this.h)return this.m[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;of(d,n(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};h.ba=function(a,b,c,d){this.i=a;this.l=b;this.a=c;this.D=d;if((this.c=Vb(this.i,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(e){r("RL11 auto-mount error: "+e.message+" ("+this.c+")"),this.c=null}this.G=zb(112,5);tb(b,this,pf);qf(this,"None","",!0);this.h&&qf(this,"Local Disk","?");qf(this,"Remote Disk","??");rf(this)||G(this)};
h.ea=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.i.Eb){for(a=0;a<this.b.length;a++)sf(this,a,!0);rf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.m.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;1>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";nf(this,0)}}return!0};h.da=function(a){return a?this.save():!0};
h.reset=function(){for(var a=0;a<this.b.length;a++){var b=this.b[a];void 0===b&&(b=this.b[a]={});b.qb=a;b.lb=b.cb=!1;b.name=this.Aa;b.fa=512;b.ca=2;b.Y=40;b.ma=256;b.mb=!0;b.Ed=0;b.Dd=0;b.Cd=0;b.Bb=1;b.Wb=b.Y;b.Kb=b.ma;b.Jd=0;b.Kd=null;b.ab||(b.za="")}};h.save=function(){return(new P(this)).data()};h.restore=function(){return!0};
function rf(a,b){b||(a.g=0);if(a.c)for(var c in a.c){var d=a.c[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.m.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=n(e,!0)}if(e&&f&&(g=c.charCodeAt(0)-65,0<=g&&g<a.b.length)){!tf(a,g,f,e,!0)&&b&&G(a,!1);continue}a.C("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.g}
function of(a,b,c,d){var e=a.m.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.C("Unable to load the selected drive");else if(c)if("?"==c)a.C('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=n(c);a.status("Attempting to load "+c+' as "'+b+'"')}tf(a,e,b,c,!1,d)}else sf(a,e)}
function tf(a,b,c,d,e,f){var g=-1,k=a.b[b];k.za.toLowerCase()!=d.toLowerCase()&&(g++,sf(a,b,!0),k.lb?a.C("RL11 busy"):(k.lb=!0,e&&(k.kb=!0,a.g++),k.cb=!!f,gf(new cf(a,k,"preload"),c,d,f,a.Xb)&&g++));return g}
c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;of(d,n(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ba=function(a,b,c,d){this.i=a;this.l=b;this.a=c;this.D=d;if((this.c=Vb(this.i,"autoMount")||this.c)&&"string"==typeof this.c)try{this.c=eval("("+this.c+")")}catch(e){r("RL11 auto-mount error: "+e.message+" ("+this.c+")"),this.c=null}pf(this);this.G=zb(112,5);tb(b,this,qf);rf(this,"None","",!0);this.h&&rf(this,"Local Disk","?");rf(this,"Remote Disk","??");sf(this)||G(this)};
h.ea=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.i.Eb){for(a=0;a<this.b.length;a++)tf(this,a,!0);sf(this,!0)}}else if(!this.restore(a))return!1;if(a=this.m.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;1>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";nf(this,0)}}return!0};h.da=function(a){return a?this.save():!0};h.reset=function(){pf(this)};h.save=function(){return(new P(this)).data()};
h.restore=function(){return!0};function pf(a){for(var b=0;b<a.b.length;b++){var c=a.b[b];void 0===c&&(c=a.b[b]={});var d=a;c.qb=b;c.lb=c.cb=!1;c.name=d.Aa;c.fa=512;c.ca=2;c.Y=40;c.ma=256;c.mb=!0;c.Ed=0;c.Dd=0;c.Cd=0;c.Bb=1;c.Wb=c.Y;c.Kb=c.ma;c.Jd=0;c.Kd=null;c.ab||(c.za="")}}
function sf(a,b){b||(a.g=0);if(a.c)for(var c in a.c){var d=a.c[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.m.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=n(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.b.length)){!uf(a,g,f,e,!0)&&b&&G(a,!1);continue}a.C("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.g}
function of(a,b,c,d){var e=a.m.listDrives,e=e&&ja(e.value);if(void 0===e||0>e||e>=a.b.length)a.C("Unable to load the selected drive");else if(c)if("?"==c)a.C('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=n(c);a.status("Attempting to load "+c+' as "'+b+'"')}uf(a,e,b,c,!1,d)}else tf(a,e)}
function uf(a,b,c,d,e,f){var g=-1,k=a.b[b];k.za.toLowerCase()!=d.toLowerCase()&&(g++,tf(a,b,!0),k.lb?a.C("RL11 busy"):(k.lb=!0,e&&(k.kb=!0,a.g++),k.cb=!!f,gf(new cf(a,k,"preload"),c,d,f,a.Xb)&&g++));return g}
h.Xb=function(a,b,c,d,e){var f;a.lb=!1;b&&(f=b.a.length?[b.a.length,b.a[0].length,b.a[0][0].length,b.a[0][0][0].length]:[0,0,0,0],b&&f[0]>a.fa||f[1]>a.ca)&&(this.C('Disk "'+c+'" too large for drive '+("RL"+a.qb)),b=null);b?(a.ab=b,a.oa=c,a.za=d,this.C('Mounted disk "'+c+'" in drive '+("RL"+a.qb),a.kb||e),this.i&&dc(this.i)):a.cb=!1;a.kb&&(a.kb=!1,--this.g||G(this));nf(this,a.qb)};
function qf(a,b,c,d){if((a=a.m.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function nf(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.m.listDisks;a=a.m.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.cb?"?":c.za,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function sf(a,b,c){var d=a.b[b];if(d.ab||!1===c)d.oa="",d.za="",d.ab=null,d.cb=!1,c||(a.C("Drive RL"+b+" unloaded",c),nf(a,b))}var pf={};
function uf(a,b,c){y.call(this,"Computer",a,uf);this.j.O=!1;vf(this,b);this.B=Vb(this,"autoPower",a);this.i=0;this.M=a.busWidth||a.buswidth;this.b=wf;this.v=null;this.o=this.I=!1;this.N=Vb(this,"url")||"";(Math.random()+.1).toString(36);this.c=xf(this);if(this.a=Sa("CPU",this.id)){this.D=Sa("Debugger",this.id);this.l=new $a({id:this.ia+".bus",busWidth:this.M},this.a,this.D);var d,e=B(this.id);if((this.g=Sa("Panel",this.id))&&this.g.Na)for(b=0;b<e.length;b++)d=e[b],d.C=this.g.C,d.R=this.g.R,d.Na=this.g.Na;
this.R("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.R("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ba&&d.ba(this,this.l,this.a,this.D);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var f;if(a=Vb(this,"state")||(f=!0,a.state))b=this.F=a,f||(this.o=!0,this.b=wf),this.b&&(this.w=new P(this,
"1.30.2"),yf(this.w)?b=null:delete this.w);!b&&this.b&&(b=zf(this))&&(this.o=!0);if(b){var g=this;q(b,null,!0,function(a,b,c){c?(g.u=null,g.o=!1,g.C("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.v=b,g.I=!0);G(g)})}else G(this);this.m.power||(this.B=!0);!c&&this.B&&Af(this,this.Pa)}else r("Unable to find CPU component")}A(uf);var wf=0;
function vf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.K=b}function Vb(a,b,c){var d=b.toLowerCase(),d=Ka[b]||Ka[d];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}function Af(a,b,c){for(var d=B(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ta(f)){Ta(f,function(){Af(a,b,c)});return}}b.call(a,c)}
function Bf(a,b){var c=new P(a,"1.30.2","validate");if(yf(c)&&Cf(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.C("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=uf.prototype;
h.Pa=function(a){void 0===a&&(a=this.b||(this.v?1:wf));if(!this.i){this.i++;var b=!1,c=!1;this.G=!1;var d=this.w||new P(this,"1.30.2");if(-1==a)b=!0;else if(a>wf){if(yf(d,this.v)){this.h=new P(this,"1.30.2","failsafe");yf(this.h)&&(Df(this,d),a=2,Ef(this.h));this.h.set("timestamp",sa());Ff(this.h);var e=this.b&&!this.o;if(1==a||wa("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Cf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?yf(d,g):("error"==
f&&"no machine state"!=g?(this.C("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.R(f+": "+g),Ef(d),yf(d)?(c=Cf(d),e=!0):c=!1))}e&&Bf(this,c?d:null)}else 2==a&&d.clear()}else Bf(this);delete this.v;delete this.w}e=B(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=Gf(this,g,d,b,c));b=[d,a,c];-1!=a?Af(this,this.Db,b):this.Db(b)}};
function Gf(a,b,c,d,e){if(!b.j.O){b.j.O=!0;if(b.ea){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.ea(f,d)&&f&&(r("Unable to restore state for "+b.type),a.F&&!a.I?(c.clear(),a.b=wf,window&&window.location.reload()):a.G=!0,b.ea(null),e=!1)}if(!d&&b.Ib)for(a=b.Ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Db=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.j.O=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.a&&(Gf(this,this.a,b,c,a),this.a.Ma());this.G&&(Df(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.i=0};
function Df(a,b){if(wa("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.N;d.user=c;d.type="bug";d.data=b;q("http://www.pcjs.org/api/v1/report",d,!0)}}
function Jf(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new P(a,"1.30.2"),g=new P(a,"1.30.2","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.da&&(c&&H(a.a),d=a.a.da(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.j.O=!1,!1===d&&(e=null)));for(var k=B(a.id),m=0;m<k.length;m++){var p=k[m];p.j.O&&(p.da&&(d=p.da(b,c),"object"===typeof d&&f.set(p.id,
d)),c&&(p.j.O=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&Kf(a,a.c,f.toString()),Ff(g)&&Ff(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.j.O=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return e}h.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=B(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ha(!0)};
function rf(a,b,c,d){if((a=a.m.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
function nf(a,b){if(0<=b&&b<a.b.length){var c=a.b[b],d=a.m.listDisks;a=a.m.listDrives;if(d&&a&&d.options&&a.options&&(a=ja(a.value),c=c.cb?"?":c.za,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function tf(a,b,c){var d=a.b[b];if(d.ab||!1===c)d.oa="",d.za="",d.ab=null,d.cb=!1,c||(a.C("Drive RL"+b+" unloaded",c),nf(a,b))}var qf={};
function vf(a,b,c){y.call(this,"Computer",a,vf);this.j.O=!1;wf(this,b);this.B=Vb(this,"autoPower",a);this.i=0;this.M=a.busWidth||a.buswidth;this.b=xf;this.v=null;this.o=this.I=!1;this.N=Vb(this,"url")||"";(Math.random()+.1).toString(36);this.c=yf(this);if(this.a=Sa("CPU",this.id)){this.D=Sa("Debugger",this.id);this.l=new $a({id:this.ia+".bus",busWidth:this.M},this.a,this.D);var d,e=B(this.id);if((this.g=Sa("Panel",this.id))&&this.g.Na)for(b=0;b<e.length;b++)d=e[b],d.C=this.g.C,d.R=this.g.R,d.Na=this.g.Na;
this.R("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.R("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ba&&d.ba(this,this.l,this.a,this.D);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var f;if(a=Vb(this,"state")||(f=!0,a.state))b=this.F=a,f||(this.o=!0,this.b=xf),this.b&&(this.w=new P(this,
"1.30.2"),zf(this.w)?b=null:delete this.w);!b&&this.b&&(b=Af(this))&&(this.o=!0);if(b){var g=this;q(b,null,!0,function(a,b,c){c?(g.u=null,g.o=!1,g.C("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.v=b,g.I=!0);G(g)})}else G(this);this.m.power||(this.B=!0);!c&&this.B&&Bf(this,this.Pa)}else r("Unable to find CPU component")}A(vf);var xf=0;
function wf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.K=b}function Vb(a,b,c){var d=b.toLowerCase(),d=Ka[b]||Ka[d];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}function Bf(a,b,c){for(var d=B(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ta(f)){Ta(f,function(){Bf(a,b,c)});return}}b.call(a,c)}
function Cf(a,b){var c=new P(a,"1.30.2","validate");if(zf(c)&&Df(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.C("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=vf.prototype;
h.Pa=function(a){void 0===a&&(a=this.b||(this.v?1:xf));if(!this.i){this.i++;var b=!1,c=!1;this.G=!1;var d=this.w||new P(this,"1.30.2");if(-1==a)b=!0;else if(a>xf){if(zf(d,this.v)){this.h=new P(this,"1.30.2","failsafe");zf(this.h)&&(Ef(this,d),a=2,Ff(this.h));this.h.set("timestamp",sa());Gf(this.h);var e=this.b&&!this.o;if(1==a||wa("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=Df(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?zf(d,g):("error"==
f&&"no machine state"!=g?(this.C("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.c=null)):this.R(f+": "+g),Ff(d),zf(d)?(c=Df(d),e=!0):c=!1))}e&&Cf(this,c?d:null)}else 2==a&&d.clear()}else Cf(this);delete this.v;delete this.w}e=B(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=Hf(this,g,d,b,c));b=[d,a,c];-1!=a?Bf(this,this.Db,b):this.Db(b)}};
function Hf(a,b,c,d,e){if(!b.j.O){b.j.O=!0;if(b.ea){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.ea(f,d)&&f&&(r("Unable to restore state for "+b.type),a.F&&!a.I?(c.clear(),a.b=xf,window&&window.location.reload()):a.G=!0,b.ea(null),e=!1)}if(!d&&b.Ib)for(a=b.Ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
h.Db=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.j.O=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.a&&(Hf(this,this.a,b,c,a),this.a.Ma());this.G&&(Ef(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.i=0};
function Ef(a,b){if(wa("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.2"};d.url=a.N;d.user=c;d.type="bug";d.data=b;q("http://www.pcjs.org/api/v1/report",d,!0)}}
function Kf(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new P(a,"1.30.2"),g=new P(a,"1.30.2","validate"),k=sa();g.set("timestamp",k);f.set("timestamp",k);f.set("version","1.30.2");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.da&&(c&&H(a.a),d=a.a.da(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.j.O=!1,!1===d&&(e=null)));for(var k=B(a.id),m=0;m<k.length;m++){var p=k[m];p.j.O&&(p.da&&(d=p.da(b,c),"object"===typeof d&&f.set(p.id,
d)),c&&(p.j.O=!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.c&&Lf(a,a.c,f.toString()),Gf(g)&&Gf(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=3==a.b),d&&f.clear(k)):e=f.toString());c&&(a.j.O=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return e}h.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=B(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};h.start=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ha(!0)};
h.stop=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.ha(!0)};
h.V=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.j.O?Jf(d,!1,!0):Af(d,d.Pa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.j.O&&!d.i)if(d.b&&!d.u){var a=wa("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Jf(d,a,!0);!a&&d.F?window&&window.location.reload():(a||(d.Eb=!0),d.Pa(wf),d.Eb=!1)}else d.reset(),d.a&&d.a.Ma()},!0;case "save":if(ma(u(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.m[b]=c,c.onclick=function(){var a=xf(d,!0);if(a){var b=!!(d.b&&!d.u||d.F),c=Jf(d,b);b?Kf(d,a,c):d.C("Resume disabled, machine state not saved")}},!0}return!1};
function xf(a,b){var c=a.c;c||((c=za("user"),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=Lf(a,c))||a.C("The user ID is invalid.")):b&&a.C("Browser local storage is not available"));return c}
function Lf(a,b){a.c=null;b=q(u()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){r(d.message+" ("+c+")")}return a.c}function zf(a){var b=null;a.c&&(b=u()+"/api/v1/user?req=load&user="+a.c+"&state="+Mf(a,"1.30.2"));return b}
function Kf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Mf(a,"1.30.2");d.data=c;b=q(u()+"/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.C("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.C(c),Aa("user",""),a.c=null)}}
h.V=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.j.O?Kf(d,!1,!0):Bf(d,d.Pa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.j.O&&!d.i)if(d.b&&!d.u){var a=wa("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kf(d,a,!0);!a&&d.F?window&&window.location.reload():(a||(d.Eb=!0),d.Pa(xf),d.Eb=!1)}else d.reset(),d.a&&d.a.Ma()},!0;case "save":if(ma(u(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.m[b]=c,c.onclick=function(){var a=yf(d,!0);if(a){var b=!!(d.b&&!d.u||d.F),c=Kf(d,b);b?Lf(d,a,c):d.C("Resume disabled, machine state not saved")}},!0}return!1};
function yf(a,b){var c=a.c;c||((c=za("user"),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=Mf(a,c))||a.C("The user ID is invalid.")):b&&a.C("Browser local storage is not available"));return c}
function Mf(a,b){a.c=null;b=q(u()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa("user",b.data),a.c=b.data)}catch(d){r(d.message+" ("+c+")")}return a.c}function Af(a){var b=null;a.c&&(b=u()+"/api/v1/user?req=load&user="+a.c+"&state="+Nf(a,"1.30.2"));return b}
function Lf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Nf(a,"1.30.2");d.data=c;b=q(u()+"/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.C("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.C(c),Aa("user",""),a.c=null)}}
function Se(a){var b;a=B(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function dc(a){if(a.Na){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.Na.focus();window&&window.scrollTo(b,c)}}h.ha=function(a){this.a&&this.a.ha(a);this.g&&this.g.ha(a)};
x(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=E(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new uf(g,d,!0);D(g,f);g.B&&Af(g,g.Pa)}});v.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Sa("Computer",c.id))&&c.P&&!c.j.O&&c.Pa(-1)}});v.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Sa("Computer",c.id))&&c.j.O&&Jf(c,!(!c.b||c.u),!0)}});
function P(a,b,c){this.id=a.id;this.key=Mf(a,b,c);this.D=a.D;Ef(this,a.bc)}function Mf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
P.prototype={constructor:P,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Ef(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function Ef(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Ff(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Cf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function yf(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var Nf=0;
function Of(a,b,c,d,e,f){e("Loading "+a+"...");q(a,null,!0,function(g,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Pf(k,a,b,c,d,e,f)})}
function Pf(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Qa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Qf(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Qf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,t=/( [a-z]+=)(['"])(.*?)\2/g;p=t.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Qf(a,b,c)}})}else c(a,null)}
function Rf(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);m&&(--Nf||Ha(!0));m=!1}var g,k,m=!0;Nf++;Pa[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=p:w.appendChild(document.createTextNode(p));t.appendChild(w)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");p=function(d,k){k?Of(c,null,null,!1,e,function(d,m){m?(Qa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Nf||Ha(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Nf||Ha(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Of(b,a,d,!0,e,p):Pf(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(F){f(F.message)}return m}window.embedPDP11=function(a,b,c,d){Ha(!1);return Rf(a,b,c,d)};window.enableEvents=Ha;window.sendEvent=Ia;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11.map
x(function(){for(var a=E(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=E(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new vf(g,d,!0);D(g,f);g.B&&Bf(g,g.Pa)}});v.show.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Sa("Computer",c.id))&&c.P&&!c.j.O&&c.Pa(-1)}});v.exit.push(function(){for(var a=E(document,"pdp11","computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=Sa("Computer",c.id))&&c.j.O&&Kf(c,!(!c.b||c.u),!0)}});
function P(a,b,c){this.id=a.id;this.key=Nf(a,b,c);this.D=a.D;Ff(this,a.bc)}function Nf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
P.prototype={constructor:P,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Ff(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function Ff(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Gf(a){var b=!0;if(ya()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Df(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function zf(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ya()&&(b=za(a.key))?(a[a.id]=b,a.a=!0):!1}var Of=0;
function Pf(a,b,c,d,e,f){e("Loading "+a+"...");q(a,null,!0,function(g,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Qf(k,a,b,c,d,e,f)})}
function Qf(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(Qa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Rf(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Rf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],p,t=/( [a-z]+=)(['"])(.*?)\2/g;p=t.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Rf(a,b,c)}})}else c(a,null)}
function Sf(a,b,c,d){function e(a){if(void 0===k){var b=g&&E(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=oa(a))}function f(a){e("Error: "+a);m&&(--Of||Ha(!0));m=!1}var g,k,m=!0;Of++;Pa[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=p:w.appendChild(document.createTextNode(p));t.appendChild(w)}c||
(c="/versions/pdpjs/1.30.2/components.xsl");p=function(d,k){k?Pf(c,null,null,!1,e,function(d,m){m?(Qa(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=k.transformNode(m))?(g.outerHTML=m,--Of||Ha(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--Of||Ha(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Pf(b,a,d,!0,e,p):Qf(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(F){f(F.message)}return m}window.embedPDP11=function(a,b,c,d){Ha(!1);return Sf(a,b,c,d)};window.enableEvents=Ha;window.sendEvent=Ia;})();//# sourceMappingURL=/tmp/pdpjs/1.30.2/pdp11.map