Implemented more opcode decoders
This commit is contained in:
parent
eb5aaa5d66
commit
b2c66b5374
6 changed files with 829 additions and 1619 deletions
|
|
@ -1,142 +1,145 @@
|
|||
(function(){var l;
|
||||
function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&f&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var e,d=a;((f=b)&&10!=f?16==f?d.match(/^[0-9a-f]+$/i):8==f?d.match(/^[0-7]+$/):2==
|
||||
f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(a,b){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function q(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};
|
||||
function ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function r(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var u={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function v(a){u.init.push(a)}
|
||||
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){u[a]&&ta(u[a])}sa("onload",function(){pa=!0;ta(u.init)});sa("onpageshow",function(){qa=!0;ta(u.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(u.exit)});
|
||||
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.zb=this.id:(this.Nb=this.id.substr(0,b),this.zb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,Ya:!1,Bb:!1,L:!1,error:!1};this.ob=null;this.g.error=!1;this.u={};this.H=null;y.push(this)}var wa=void 0,xa={};
|
||||
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function z(a,b){b||(b=x);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),y=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},y=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function A(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function C(a,b){b=D(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=B(e))&&g.binding&&a.ba(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Cb=this.u[b]=c,c.value="",this.J=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.K=function(a){this.J(a,this.zb)}),!0;default:return!1}},log:function(){},J:function(){},status:function(a){this.J(this.zb+": "+a)},K:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},va:function(){return this.g.L=!0},ua:function(a,b){b&&(this.g.L=!1);return!0}};function Fa(a,b){if(a.g.Bb)return a.g.Ya&&(a.g.Ya=!1),a.g.Bb=!1;if(a.g.error)return a.J(a.toString()+" error"),!1;a.g.Ya=b;return a.g.Ya}function E(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.ob;a.ob=null;b&&b()}}
|
||||
function Ga(a,b){b&&(a.g.ready?b():a.ob=b);return a.g.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){x.call(this,"Panel",a,Ia)}z(Ia);l=Ia.prototype;l.ba=function(a,b,c,d){return this.h&&this.h.ba(a,b,c,d)||this.a&&this.a.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};l.Ka=function(a,b,c,d){this.h=a;this.l=b;this.a=c;this.H=d};l.va=function(a,b){b||Ja();return!0};l.ua=function(){return!0};l.Na=function(){};
|
||||
function Ja(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<y.length;g++)if(y[g].id===e){e=y[g];break a}}e=null}e||(a=!0,e=new Ia(f));C(e,d);a&&E(e)}}v(Ja);
|
||||
function F(a,b,c){x.call(this,"Bus",a,F);this.a=b;this.H=c;this.B=a.busWidth||16;this.m=Math.pow(2,this.B);this.i=this.m-1|0;this.l=(this.B>>1)+2;10>this.l&&(this.l=10);15<this.l&&(this.l=15);this.f=1<<this.l;this.D=this.f>>2;this.h=this.f-1;this.j=this.m/this.f|0;this.I=this.j-1;this.na=[];this.w=null;this.Za=this.M;a=new G;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Va=Array(4);this.Va[0]=La;this.Va[1]=Ma;this.Va[2]=Na;this.Va[3]=Oa;Pa(this,this.m-8192,8192,Qa,this);
|
||||
Pa(this,57344,8192,Qa,this);E(this)}z(F);function La(a,b){var c=this.controller,d=c.na[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.na[a&-2],d[2]))return d[2](b&-2)>>8;c.J("warning: unconverted read access to byte @"+n(b));return c.Za(b,-1,1)}
|
||||
function Ma(a,b,c){var d=this.controller,f=d.na[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.na[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.J("warning: unconverted write access to byte @"+n(c));d.Za(c,b,1)}
|
||||
function Na(a,b){var c=this.controller;if(a=c.na[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.J("warning: unconverted read access to word @"+n(b));return c.Za(b,-1,0)}function Oa(a,b,c){var d=this.controller;if(a=d.na[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.J("warning: unconverted write access to word @"+n(c));d.Za(c,b,0)}F.prototype.reset=function(){this.w&&this.w()};F.prototype.M=function(){return 0};
|
||||
F.prototype.va=function(a,b){b||this.reset();return!0};function Pa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.l;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.f,p=a.f-(e-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Ua)return k.wb+=k.Ua-e,k.Ua=e,!0;if(e>=k.Ua+k.wb){p=k.size-(e-m);p>g&&(p=g);k.wb=e-k.Ua+p;e=m+a.f;g-=p;h++;continue}}return Ra(1,e,g)}e=new G(e,p,a.f,d,f);Ka(e,a.H,k);a.b[h++]=e;e=m+a.f;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+q(b,8,!0)),!0):Ra(2,b,c)}
|
||||
function Ta(a){for(var b=0,c=[],d=0;d<a.j;d++){var f=a.b[d];if(f.ra||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Ua(a,b){var c=Va,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,f=f[3]?f[3].bind(b):null,p=+d;p<=g;p+=2){var w=p&8191;void 0!==e.na[w]?t("I/O address already registered: "+q(p,8,!0)):e.na[w]=[h,k,m,f,!1]}}function Wa(a,b,c){a.w=b;a.Za=c}function Ra(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}
|
||||
function I(a){x.call(this,"Device",a,I);this.f={Eb:[],ca:0,V:128,b:127,ec:0};this.h={data:0,Hc:0,Qa:20,Ac:0};this.b={s:0,Ib:-1};this.i={cb:2496,P:0,v:128,eb:0,bb:0,U:0,Vb:0,R:[],Ia:[406,406,406,406],F:[12,12,12,12]};this.j={s:129,Xa:0,G:0,ta:0,oa:0,za:0,R:[],F:[40,40,40,40],Ia:[1024,1024,512,512],cc:[157,157,29,29]};this.m={a:[8210,8208,8210,8226],F:[22,22,22,50],Ha:[19,19,19,32],yb:[815,411,815,630],R:[],A:2176,Ta:0,Ra:0,aa:[0,0,0,0,0,0,0,0],$:0,S:[4544,4544,4544,4544,4544,4544,4544,4544],Sa:[0,
|
||||
0,0,0,0,0,0,0],Ma:0,yc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],u:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],ia:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],ya:0,Gb:0}}z(I);
|
||||
var Xa=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function ba(a,b){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return""+c}function n(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function ca(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ea(){var a=fa();return-1!==a.indexOf("pcjs.org",a.length-8)}var ga={"&":"&","<":"<",">":">",'"':""","'":"'"};function ha(a){return a.replace(/[&<>"']/g,function(a){return ga[a]})}var ia=Date.now||function(){return+new Date};
|
||||
function ja(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function q(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function ma(){if(null==la){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}la=a}return la}function na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},qa=!1,ra=!1,sa=!0;function ta(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
|
||||
function ua(a){if(sa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function va(a){!sa&&a?(sa=!0,qa&&wa("init"),ra&&wa("show")):sa=a}function wa(a){t[a]&&ua(t[a])}ta("onload",function(){qa=!0;ua(t.init)});ta("onpageshow",function(){ra=!0;ua(t.show)});ta(pa("Opera")||pa("iOS")?"onunload":"onbeforeunload",function(){ua(t.exit)});
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Mb=b.comment;this.gc=b;b=this.id.indexOf(".");0>b?this.xb=this.id:(this.Nb=this.id.substr(0,b),this.xb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,ab:!1,Bb:!1,M:!1,error:!1};this.ob=null;this.g.error=!1;this.u={};this.I=null;w.push(this)}var xa=void 0,ya={};
|
||||
if(window){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Ca(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function x(a,b){b||(b=v);a.prototype=Ca(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Da=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Da={},w=[];function Ea(a,b,c){Da[a]&&b&&(Da[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Fa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=A(e))&&g.binding&&a.ba(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Cb=this.u[b]=c,c.value="",this.N=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.L=function(a){this.N(a,this.xb)}),!0;default:return!1}},log:function(){},N:function(){},status:function(a){this.N(this.xb+": "+a)},L:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},va:function(){return this.g.M=!0},ua:function(a,b){b&&(this.g.M=!1);return!0}};function Ga(a,b){if(a.g.Bb)return a.g.ab&&(a.g.ab=!1),a.g.Bb=!1;if(a.g.error)return a.N(a.toString()+" error"),!1;a.g.ab=b;return a.g.ab}function D(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.ob;a.ob=null;b&&b()}}
|
||||
function Ha(a,b){b&&(a.g.ready?b():a.ob=b);return a.g.ready}var Ia="undefined"!==typeof ArrayBuffer;function Ja(a){v.call(this,"Panel",a,Ja)}x(Ja);l=Ja.prototype;l.ba=function(a,b,c,d){return this.l&&this.l.ba(a,b,c,d)||this.a&&this.a.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};l.Ka=function(a,b,c,d){this.l=a;this.w=b;this.a=c;this.I=d};l.va=function(a,b){b||Ka();return!0};l.ua=function(){return!0};l.Na=function(){};
|
||||
function Ka(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}}e=null}e||(a=!0,e=new Ja(f));B(e,d);a&&D(e)}}u(Ka);
|
||||
function E(a,b,c){v.call(this,"Bus",a,E);this.a=b;this.I=c;this.G=a.busWidth||16;this.A=Math.pow(2,this.G);this.j=this.A-1|0;this.f=(this.G>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.h=1<<this.f;this.J=this.h>>2;this.i=this.h-1;this.l=this.A/this.h|0;this.K=this.l-1;this.ma=[];this.B=null;this.bb=this.R;a=new F;La(a,this.I);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;this.Ya=Array(4);this.Ya[0]=Ma;this.Ya[1]=Na;this.Ya[2]=Oa;this.Ya[3]=Pa;Qa(this,this.A-8192,8192,Ra,this);
|
||||
Qa(this,57344,8192,Ra,this);D(this)}x(E);function Ma(a,b){var c=this.controller,d=c.ma[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.ma[a&-2],d[2]))return d[2](b&-2)>>8;c.N("warning: unconverted read access to byte @"+ba(b));return c.bb(b,-1,1)}
|
||||
function Na(a,b,c){var d=this.controller,f=d.ma[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.ma[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.N("warning: unconverted write access to byte @"+ba(c));d.bb(c,b,1)}
|
||||
function Oa(a,b){var c=this.controller;if(a=c.ma[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.N("warning: unconverted read access to word @"+ba(b));return c.bb(b,-1,0)}function Pa(a,b,c){var d=this.controller;if(a=d.ma[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.N("warning: unconverted write access to word @"+ba(c));d.bb(c,b,0)}E.prototype.reset=function(){this.B&&this.B()};E.prototype.R=function(){return 0};
|
||||
E.prototype.va=function(a,b){b||this.reset();return!0};function Qa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.h,p=a.h-(e-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Xa)return k.vb+=k.Xa-e,k.Xa=e,!0;if(e>=k.Xa+k.vb){p=k.size-(e-m);p>g&&(p=g);k.vb=e-k.Xa+p;e=m+a.h;g-=p;h++;continue}}return Sa(1,e,g)}e=new F(e,p,a.h,d,f);La(e,a.I,k);a.b[h++]=e;e=m+a.h;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ta[d]+" at "+n(b,8,!0)),!0):Sa(2,b,c)}
|
||||
function Ua(a,b){return a.b[(b&a.j)>>>a.f].eb(b&a.i,b)}function Va(a,b,c){var d=b&a.i,f=(b&a.j)>>>a.f;d!=a.i?a.b[f].Fc(d,c&65535,b):(a.b[f++].Wa(d,c&255,b),a.b[f&a.K].Wa(0,c>>8&255,b+1))}function Wa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.b[d];if(f.qa||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}
|
||||
function Xa(a,b){var c=Ya,d;for(d in c)for(var f=c[d],e=a,g=+d,h=f[0]?f[0].bind(b):null,k=f[1]?f[1].bind(b):null,m=f[2]?f[2].bind(b):null,f=f[3]?f[3].bind(b):null,p=+d;p<=g;p+=2){var y=p&8191;void 0!==e.ma[y]?r("I/O address already registered: "+n(p,8,!0)):e.ma[y]=[h,k,m,f,!1]}}function Za(a,b,c){a.B=b;a.bb=c}function Sa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
||||
function G(a){v.call(this,"Device",a,G);this.f={Fb:[],ca:0,V:128,b:127,ec:0};this.h={data:0,Hc:0,Sa:20,Ac:0};this.b={o:0,Jb:-1};this.i={gb:2496,P:0,v:128,hb:0,fb:0,U:0,Vb:0,S:[],Ia:[406,406,406,406],D:[12,12,12,12]};this.j={o:129,$a:0,H:0,ta:0,na:0,za:0,S:[],D:[40,40,40,40],Ia:[1024,1024,512,512],cc:[157,157,29,29]};this.l={a:[8210,8208,8210,8226],D:[22,22,22,50],Ha:[19,19,19,32],wb:[815,411,815,630],S:[],C:2176,Va:0,Ta:0,aa:[0,0,0,0,0,0,0,0],$:0,T:[4544,4544,4544,4544,4544,4544,4544,4544],Ua:[0,
|
||||
0,0,0,0,0,0,0],Ma:0,yc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],ha:[0,0,0,0,0,0,0,0],ub:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],ya:0,Hb:0}}x(G);
|
||||
var $a=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=I.prototype;l.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;var f=this;this.b.Ib=Ya(this.a,function(){f.b.sa|=128;f.b.sa&64&&(J(f.a,0,6,64),Za(f.a,f.b.Ib))});Ua(b,this);Wa(b,this.reset.bind(this),this.bc.bind(this));E(this)};l.nc=function(){var a=this.b.sa;this.b.sa&=-129;return a};
|
||||
l.Cc=function(a){this.b.sa=a;a&64&&Za(this.a,this.b.Ib);this.b.sa=a&-129};l.oc=function(){var a=this.a;return a.w&62337|a.Oa<<5|a.Pa<<1};l.Dc=function(a){var b=4,c=this.a;c.w=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.pb=a&257?a&1?6:4:0;$a(c);a=c.w;a&1|256&&(b=this.a.Da&16?1:2);this.h.Qa=this.h.Qa&-8|b};l.qc=function(){return this.f.V};l.Gc=function(a){if(128==(this.f.V&192)&&a&64){var b=this;J(this.a,8,4,52,function(){b.f.V|=128;return!!(b.f.V&64)})}this.f.V=this.f.V&128|a&-129};l.pc=function(){return ab(this.a)};
|
||||
l.Ec=function(a){bb(this.a,a&-1809|ab(this.a)&1808);this.a.C|=128};
|
||||
function cb(a){var b=a.i,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ia[e]*b.F[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.cb=2496;b.P=0;b.v=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ia[e]){b.P|=32832;b.v|=49152;break}if((b.U&15)>=b.F[e]){b.P|=32800;b.v|=49152;break}c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;db(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ia[e])b.P|=32832,
|
||||
b.v|=49152;else if((b.U&15)>=b.F[e])b.P|=32800,b.v|=49152;else{c=(b.U>>4&511)*b.F[e]+(b.U&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;a.sb(b.R[e],c,d,f);return}}b.cb=e<<13|b.cb&8176|b.U%9&15;J(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.rc=function(a,b,c,d,f){var e=this.i;e.bb=d&65535;e.v=e.v&-49|d>>12&48;e.eb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}J(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function eb(a){var b=a.j,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.ta&8&&(b.s&=63);b.ta=b.cc[e]|b.za&64;break;case 3:1==(b.G&3)&&(b.za=b.G&4?b.za+(b.G&65408)&65408|b.G<<2&64:b.za-(b.G&65408)&65408|b.G<<2&64,b.G=b.za);break;case 4:b.ta=b.za;break;case 5:if(b.G>>6>=b.Ia[e]){b.s|=37888;break}if((b.G&63)>=b.F[e]){b.s|=37888;break}c=(b.G>>6)*b.F[e]+(b.G&63);
|
||||
d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;db(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ia[e])b.s|=37888;else if((b.G&63)>=b.F[e])b.s|=37888;else{c=(b.G>>6)*b.F[e]+(b.G&63);d=(b.oa&63)<<16|b.Xa;f=65536-b.ta&65535;a.sb(b.R[e],c,d,f);return}}J(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.j;e.Xa=d&65535;e.s=e.s&-49|d>>12&48;e.oa=d>>16&63;e.G=~~(c/e.F[b.ga])<<6|c%e.F[b.ga];e.za=e.G;e.ta=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}J(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function fb(a){a=a.m;a.A=2176;a.$=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ma=a.Ta=a.Ra=a.ya=a.Gb=0}
|
||||
function gb(a,b){var c=a.m,d,f,e;c.A&=-16513;c.$&=-2049;c.S[b]&=-1153;J(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.yb[0]*c.Ha[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.A&63){case 5:c.vb[b]=c.ia[b];c.A|=32896;c.S[b]|=32896;c.Ma|=1<<b;break;case 9:fb(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0]){c.Sa[b]|=1024;c.A|=49152;break}d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+
|
||||
(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;db(a,c.R[b],d,f,e);return;case 57:if(c.ia[b]>=c.yb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.F[0])c.Sa[b]|=1024,c.A|=49152;else{d=(c.ia[b]*c.Ha[0]+(c.aa[b]>>8))*c.F[0]+(c.aa[b]&255);f=(c.ya&63)<<16|c.Ra;e=65536-c.Ta&65535;a.sb(c.R[b],d,f,e);return}}J(a.a,3,5,172,function(){c.A=c.A&65534|128;c.S[b]|=128;return!!(c.A&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.m;e.Ta=65536-f&65535;e.Ra=d&65535;e.A=e.A&-769|d>>8&768;e.ya=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ha[0]);e.aa[b.ga]=f%e.Ha[0]<<8|c%e.F[0];e.vb[b.ga]=e.ia[b.ga]=d;e.Ma|=1<<b.ga;c>=b.lc-1&&(e.S[b.ga]|=1024);switch(a){case 1:e.$|=512;e.A|=49152;break;case 2:e.$|=2048,e.A|=49152}J(this.a,20,5,172,function(){e.S[b.ga]|=128;e.A=e.A&65534|128;return!!(e.A&64)})};
|
||||
function hb(a,b,c,d,f,e){var g=~~((e+c.pa-1)/c.pa),h=new XMLHttpRequest;2048>g&&d+2048<c.lc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.pa<<1)+"-"+(((d+g)*c.pa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,p,w,H;m=h.response;if(h.status&&206!=h.status||!m)c.rb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(H=0;H<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],w=0;w<c.pa;w++)c.cache[p][w]=H<m.length?
|
||||
m[H]&255|m[H+1]<<8&65280:0,H+=2;else H+=c.pa<<1;p++}g(c,d,f,e)}}};h.send(null)}function K(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:L(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.sb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){hb(this,this.sb,a,b,c,d);return}for(f=0;f<a.pa&&0<d;f++){if(0>ib(this.a,a.kc?jb(this.a,c):c,a.cache[b][f])){a.rb(2,a,b,c,d);return}c+=2;--d}b++}a.rb(0,a,b,c,d)};
|
||||
function db(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.pa;e++)b.cache[c][e]=0;for(e=0;e<b.pa&&0<f;e++){g=a.a.ub(b.kc?jb(a.a,d):d);if(0>g){b.rb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.rb(0,b,c,d,f)}l.reset=function(){this.h.Qa=this.h.Qa&-120|20;this.f.ca=0;this.f.V=128;this.b.sa=0;this.i.v=128;this.j.s=128;fb(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.wa&65280:(a&1&&(b<<=8),e.wa=b|255,d=0);break;case 4194298:if(0>b)d=e.Fb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Fb=d;e.ha=2}break;case 4194294:if(70!==e.Ja)return L(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Ja)return L(e,4);d=1;break;case 4194290:if(70!==e.Ja)return L(e,4);d=0;break;case 4194288:if(70!==e.Ja)return L(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return L(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=K(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.N>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[3]=b),d=e.xa[3]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[1]=b),d=e.xa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.N&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=b),d=e.La[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[0]=b),d=e.xa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.N&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.o|=16,L(e,4)}break;case 4194176:f=a>>1&31;d=K(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=K(this,e.hb,a,b,c);0<=d&&(e.hb=d);break;case 4194172:d=e.Ca;d&65280&&(d=(d<<8|d>>8)&65535);break;
|
||||
case 4194168:0>b?d=this.h.Ac&65535:(d=K(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.V&=-129,J(e,100,4,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ca&=-129,0<g.Eb.length&&(d=g.Eb.shift(),0<g.Eb.length&&setTimeout(function(){g.ca|=128;g.ca&64&&J(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ca:(d=K(this,g.ca,a,b,c),0<=d&&(g.ca=g.ca&128|d&-129));break;default:return e.o|=16,L(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
|
||||
K(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194050:d=K(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=K(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&cb(this));break;case 4194054:d=K(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194056:d=K(this,f.bb,a,b,c);0<=d&&(f.bb=d);break;case 4194058:d=K(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=K(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.o|=16,L(e,4)}break;case 4193728:var h=this.m;f=h.$&7;switch(a&
|
||||
-2){case 4193728:d=K(this,h.A,a,b,c);0<=b&&0<=d&&(h.ya=h.ya&60|d>>8&3,h.A=d&17279|h.A&34944|2048,d&1&&h.A&128?gb(this,f):192==(d&192)&&J(e,0,5,172));break;case 4193730:d=K(this,h.Ta,a,b,c);0<=d&&(h.Ta=d);break;case 4193732:d=K(this,h.Ra,a,b,c);0<=d&&(h.Ra=d&65534);break;case 4193734:d=K(this,h.aa[f],a,b,c);0<=d&&(h.aa[f]=d&7967);break;case 4193736:d=K(this,h.$,a,b,c);0<=d&&(h.$=d&63|h.$&65472,d&128&&fb(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Sa[f];break;case 4193742:d=K(this,h.Ma,
|
||||
a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=K(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=K(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=K(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=K(this,h.ia[f],a,b,c);0<=d&&(h.ia[f]=d&511);break;case 4193758:h.vb[f]=h.ia[f];d=h.vb[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=
|
||||
h.vc[f];break;case 4193768:d=K(this,h.ya,a,b,c);0<=d&&(h.ya=d&63,h.A=h.A&-769|(d&3)<<8);break;case 4193770:d=K(this,h.Gb,a,b,c);0<=d&&(h.Gb=d);break;default:return e.o|=16,L(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=K(this,f.s,a,b,c);0<=b&&0<=d&&(f.oa=f.oa&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||eb(this));break;case 4192514:d=K(this,f.Xa,a,b,c);0<=d&&(f.Xa=d&65534);break;case 4192516:d=K(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=K(this,f.ta,a,b,c);0<=d&&(f.ta=d);break;
|
||||
case 4192520:d=K(this,f.oa,a,b,c);0<=d&&(f.oa=d&63,f.s=f.s&-49|(f.oa&3)<<4);break;default:return e.o|=16,L(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Da:(d=K(this,e.Da,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.Da=d,e.qb[0]=d&4?15:7,e.qb[1]=d&2?15:7,e.qb[3]=d&1?15:7,e.pb&&(f=2,e.Da&16&&(f=1),this.h.Qa=this.h.Qa&-8|f)));break;default:return e.o|=16,L(e,4)}break;case 4191424:f=a>>1&31;d=K(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=K(this,e.O[1][f],
|
||||
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ja)return L(e,4);f=a>>2&31;d=e.fb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=K(this,d,a,b,c),0<=d&&(e.fb[f]=a&2?d<<16|e.fb[f]&65535:e.fb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Xa[a>>1&255];else return e.o|=16,L(e,4);break;default:return e.o|=16,L(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
|
||||
return d};var kb={},Va=(kb[65382]=[null,null,I.prototype.nc,I.prototype.Cc],kb[65402]=[null,null,I.prototype.oc,I.prototype.Dc],kb[65396]=[null,null,I.prototype.qc,I.prototype.Gc],kb[65534]=[null,null,I.prototype.pc,I.prototype.Ec],kb);v(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new I(d);C(d,c)}});var lb;if(Ha){var mb=new ArrayBuffer(2);(new DataView(mb)).setUint16(0,256,!0);lb=256===(new Uint16Array(mb))[0]}else lb=!1;var nb=lb;
|
||||
function G(a,b,c,d,f){this.id=ob+=2;this.a=null;this.Ua=a;this.wb=b;this.size=c||0;this.type=d||pb;this.f=d==qb;this.controller=null;Ka(this);this.ra=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,rb(this,f.Va);else if(Ha)this.u=new ArrayBuffer(c),this.l=new DataView(this.u,0,c),this.b=new Uint8Array(this.u,0,c),this.j=new Uint16Array(this.u,0,c>>1),this.a=new Int32Array(this.u,0,c>>2),rb(this,nb?sb:tb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;rb(this,ub)}else rb(this)}
|
||||
var pb=0,qb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],ob=0;
|
||||
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.l.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.l.setInt32(b<<2,a[b],!0);else this.a=a;return this.ra=!0}return!1},m:function(){return 255},B:function(){},w:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},D:function(a,b,c){this.gb(a++,
|
||||
b&255,c++);this.gb(a,b>>8,c)},X:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ka:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ra=!0},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.T(a,b)},Z:function(a,b){return this.fa(a,
|
||||
b)},ma:function(a,b,c){this.f||this.ac(a,b,c)},Fa:function(a,b,c){this.f||this.Ga(a,b,c)},I:function(a){return this.b[a]},W:function(a){return this.b[a]},Y:function(a){return this.l.getUint16(a,!0)},ja:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},la:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ea:function(a,b){this.l.setUint16(a,b,!0);this.ra=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.ra=!0}};
|
||||
function Ka(a,b,c){a.H=b;a.h=a.i=0;c&&((a.h=c.h)&&vb(a,wb,!1),(a.i=c.i)&&xb(a,wb,!1))}function xb(a,b,c){c&&a.i||(a.gb=!a.f&&b[1]||a.B,a.Fc=!a.f&&b[3]||a.D);if(c||void 0===c)a.ac=b[1]||a.B,a.Ga=b[3]||a.D}function vb(a,b,c){c&&a.h||(a.ab=b[0]||a.m,a.tb=b[2]||a.w);if(c||void 0===c)a.T=b[0]||a.m,a.fa=b[2]||a.w}function rb(a,b){b||(b=yb);vb(a,b,void 0);xb(a,b,void 0)}var yb=[],ub=[G.prototype.X,G.prototype.Ba,G.prototype.ka,G.prototype.Pa],wb=[G.prototype.M,G.prototype.ma,G.prototype.Z,G.prototype.Fa];
|
||||
if(Ha)var tb=[G.prototype.I,G.prototype.la,G.prototype.Y,G.prototype.Ea],sb=[G.prototype.W,G.prototype.Aa,G.prototype.ja,G.prototype.Oa];function zb(a,b){x.call(this,"CPU",a,zb);var c=a.multiplier||1;this.lb=a.cycles||b;this.Z=c;this.Ab=Math.round(this.lb/1E4)/100;this.ka=this.Ab*this.Z;this.g.ea=!1;this.g.Zb=!1;this.g.Wa=a.autoStart;this.g.Ob=!1;this.g.nb=!1;this.jb=this.la=0;this.kb=a.csStart;this.Ba=a.csInterval;this.Ea=a.csStop;this.I=[];this.Sb=this.Hb.bind(this);E(this)}z(zb);
|
||||
var Ab=["power","reset"];l=zb.prototype;l.Ka=function(a,b,c,d){this.h=a;this.l=b;this.H=d;for(b=0;b<Ab.length;b++)(c=this.u[Ab[b]])&&this.h.ba(null,Ab[b],c);this.Aa=null;a=Bb(a,"autoStart");null!=a&&(this.g.Wa="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.va=function(a,b){if(!b){if(a&&this.restore){Cb(this);if(!this.restore(a))return!1;Db(this)}else this.reset();this.J("No debugger detected")}Eb(this);return!0};
|
||||
l.ua=function(a){return a?this.save():!0};l.Wa=function(){return this.g.Wa||void 0===this.u.run?(this.Hb(),!0):!1};l.Tb=function(){return 0};function Db(a){void 0===a.kb&&(a.kb=0);void 0===a.Ba&&(a.Ba=-1);void 0===a.Ea&&(a.Ea=-1);a.g.nb=0<=a.kb&&0<a.Ba;a.g.nb&&(a.jb=0,a.la=a.kb-a.fa)}
|
||||
function M(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.K("Value for "+b+" is invalid"),N(a));var f=a.H&&a.H.b||8;c=!a.g.ea||a.g.Ob?8==f?n(c,d):q(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.h)if(a=d.h,a.g.L)a=!0;else{var b=null,c,h=A(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.L);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.g.ea?N(d):d.Hb())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Fb(d,d.Z<<1)},c.textContent=this.ka.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b,c){a.fa+=b;c&&(a.Y=a.a=0)}function Hb(a,b){var c=1;b&&1<a.Z&&a.W&&(c=a.W/a.Ab);a.Qb=Math.round(1E3/30);a.mb=Math.floor(a.lb/30*c);b||(a.Fa=a.mb);a.xb=0}function Ib(a){return a.fa+a.T+a.Y-a.a}function Cb(a){a.W=0;a.Rb=0;a.fa=a.T=a.Y=a.a=0;Db(a);Fb(a,1)}
|
||||
function Fb(a,b){if(void 0!==b&&(.8>a.W/a.ka&&(b=1),a.Z=b,b=a.Ab*a.Z,a.ka!=b)){a.ka=b;b=a.ka.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.J("target speed: "+b)}Gb(a,a.T);a.T=0;a.M=ha();a.X=0;Hb(a)}function Ya(a,b){var c=a.I.length;a.I.push([-1,b]);return c}function Za(a,b){var c;0<=b&&b<a.I.length&&0>a.I[b][0]&&(c=a.lb*a.Z/1E3*(1E3/60),a.I[b][0]=c)}
|
||||
l.Hb=function(){if(Fa(this,!0)){if(!this.g.ea){Fb(this);this.h&&this.h.start(this.M,Ib(this));this.g.ea=!0;this.g.Zb=!0;this.Aa&&this.Aa.start();var a=this.u.run;a&&(a.textContent="Halt");this.h&&this.h.Na(!0)}this.xb>=this.lb&&Hb(this,!0);this.Ga=0;this.ib=ha();this.X&&(a=this.ib-this.X,a>this.Qb&&(this.M+=a,this.M>this.ib&&(this.M=this.ib)));try{do{for(var b,c=this.g.nb?1:this.mb,d=this.I.length-1;0<=d;d--){var f=this.I[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.Y-this.a,a=e,g=this.I.length-1;0<=g;g--){var h=this.I[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.T+=e;Gb(this,0,!0);a=e;if(this.g.nb){var k=!1;this.jb=this.jb+this.Tb()|0;this.la-=a;0>=this.la&&(this.la+=this.Ba,k=!0);0<=this.Ea&&this.Ea<=Ib(this)&&(this.Ba=this.Ea=-1,Db(this),N(this),k=!0);k&&this.J(Ib(this)+" cycles: checksum="+q(this.jb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.mb;15<=++this.Rb&&(this.h&&this.h.Na(),this.Rb=0);break}}while(this.g.ea)}catch(m){N(this);
|
||||
Eb(this);this.h&&this.h.stop(ha(),Ib(this));Fa(this,!1);b=m.stack||m.message;this.g.error=!0;this.K(b);return}b=setTimeout;c=this.Sb;this.X=ha();d=this.Qb;this.Ga&&(d=Math.round(d*this.Ga/this.mb));d-=this.X-this.ib;if(f=this.X-this.M)this.W=Math.round(this.T/(10*f))/100,864E5<=f&&(this.fa=0,Fb(this));if(0>d||this.W<this.ka)-1E3>d&&(this.M-=d),d=0;this.xb+=this.Ga;this.X+=d;b(c,d)}else Eb(this),this.h&&this.h.stop(ha(),Ib(this))};l.$b=function(){return 0};
|
||||
function N(a){a.g.Ya&&(a.g.Bb=!0);a.Y-=a.a;a.a=0;Gb(a,a.T);a.T=0;if(a.g.ea){a.g.ea=!1;a.Aa&&a.Aa.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function Eb(a){a.h&&a.h.Na(void 0)}
|
||||
function Jb(a){this.jc=a.resetAddr||0;zb.call(this,a,1E6);this.Kb=0;this.decode=Kb.bind(this);this.D=65536;this.j=32768;this.m=65535;this.i=32768;this.c=[0,0,0,0,0,0,0,this.jc];this.La=[0,0,0,0,0,0];this.xa=[0,0,0,0];this.Pa=this.B=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.b=-1;this.C=0;this.Ja=70;this.ma=-1;this.Ub=0;Lb(this);this.g.complete=this.g.dc=!1}z(Jb,zb);l=Jb.prototype;l.reset=function(){this.g.ea&&N(this);Lb(this);Cb(this);this.g.error=!1;this.parent.reset.call(this)};
|
||||
function Lb(a){a.wa=255;a.o=0;a.Fb=0;a.w=0;a.Ca=0;a.hb=0;a.Da=0;a.pb=0;a.Oa=0;a.qb=[7,7,7,7];a.f=[];a.ha=2;$a(a)}function $a(a){a.pb?(a.Jb=65536,a.ja=a.hc,a.tb=a.da):(a.Jb=0,a.ja=a.gc,a.tb=a.ub)}l.Tb=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.fa,this.Z]);a.set(2,Ta(this.l));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.fa=b[1];Fb(this,b[3]);a:{b=this.l;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.D){for(var e=0,g=Array(b.D),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.ba=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.u[b]=c;this.Kb++;a=!0;break;default:a=this.parent.ba.call(this,a,b,c)}return a};
|
||||
l.Na=function(a){if(this.Kb&&(a||!this.g.ea||this.g.Ob)){for(a=0;a<this.c.length;a++)M(this,"R"+a,this.c[a]);a=ab(this);M(this,"PS",a);M(this,"NF",a&8?1:0,1);M(this,"ZF",a&4?1:0,1);M(this,"VF",a&2?1:0,1);M(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.ea&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
|
||||
function J(a,b,c,d,f){for(var e=a.f.length;0<e--;)if(a.f[e].Bc===d){0<e&&(a.f[e-1].qa+=a.f[e].qa);a.f.splice(e,1);break}if(0<=b){2===a.Ub&&(b=0,a.Ub=0,setTimeout(a.Sb,0));for(e=a.f.length;0<e--;){if(a.f[e].qa>b){a.f[e].qa-=b;break}b-=a.f[e].qa}a.f.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ha=2}function ab(a){return a.N=a.N&63728|(a.i&32768?8:0)|(a.m&65535?0:4)|(a.j&32768?2:0)|(a.D&65536?1:0)}
|
||||
function bb(a,b){a.i=b<<12;a.m=~b&4;a.j=b<<14;a.D=b<<16;if((b^a.N)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.B=b>>14&3;c=a.N>>14&3;a.B!=c&&(a.xa[c]=a.c[6],a.c[6]=a.xa[a.B]);a.ha=2;a.N=b}function Mb(a,b){a.C&128||(a.i=a.m=a.D=b,a.j=0)}function P(a,b){a.C&128||(a.i=a.m=b,a.j=0)}function Nb(a,b,c,d){a.C&128||(a.i=a.m=a.D=b,a.j=(c^d)&(d^b))}
|
||||
function L(a,b){var c=!1;0>a.ma?a.ma=ab(a):a.B||(b=4,c=!0);a.w&57344||(a.Ca=63222,a.hb=b);a.B=0;var d=a.da(b|65536),f=a.da(b+2&65535|65536);bb(a,f&53247|a.ma>>2&12288);c&&(a.o|=4,a.c[6]=4);Ob(a,a.ma);Ob(a,a.c[7]);a.c[7]=d;a.C&=-113;a.ma=-1;throw b;}function jb(a,b){var c=b>>13&31;31>c?a.Da&32&&(b=a.fb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Pb(a,b,c){var d,f,e,g=0;if(c&a.pb){d=b>>13&a.qb[a.B];f=a.O[a.B][d];e=(a.O[a.B][d+16]<<6)+(b&8191)&4194303;a.Da&16?3932160<=e&&4186112>e&&(e=jb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.o|=32,L(a,4)),e&1&&!(c&1)&&(a.o|=64,L(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
|
||||
16384));a.O[a.B][d]=f;if(4194170!==e||a.B)a.Oa=a.B,a.Pa=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.w&57344||(a.w=a.w|g|a.Oa<<5|a.Pa<<1),L(a,168)),a.w&61440||!(4191360>e||4194239<e)||(a.w|=4096,a.w&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.o|=64,L(a,4));return e}l.ub=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.l,c=a&b.h,d=(a&b.i)>>>b.l;a=c!=b.h?b.b[d].tb(c,a):b.b[d++].ab(c,a)|b.b[d&b.I].ab(0,a+1)<<8}return a};l.da=function(a){return this.ub(Pb(this,a,2))};
|
||||
function ib(a,b,c){c&=65535;if(4194304<=b)return a.c[b-4194304]=c;if(0<=b){a=a.l;var d=c,f=b&a.h,e=(b&a.i)>>>a.l;f!=a.h?a.b[e].Fc(f,d&65535,b):(a.b[e++].gb(f,d&255,b),a.b[e&a.I].gb(0,d>>8&255,b+1));return c}return b}function Qb(a,b){4194304<=b?b=a.c[b-4194304]&255:0<=b&&(a=a.l,b=a.b[(b&a.i)>>>a.l].ab(b&a.h,b));return b}function Rb(a,b,c){c&=255;4194304<=b?a.c[b-4194304]=a.c[b-4194304]&65280|c:0<=b&&(a=a.l,a.b[(b&a.i)>>>a.l].gb(b&a.h,c&255,b))}
|
||||
function Ob(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);!a.B&&c<=a.wa&&4<c&&(c<=a.wa-32?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=4));c=Pb(a,c|65536,4);ib(a,c,b)}
|
||||
function Sb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Jb;switch(b>>3&7){case 0:L(a,4);break;case 1:return 6===e&&!a.B&&c&4&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32||65534<=a.c[6]?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.da(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.da(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.da(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|e);6===e&&!a.B&&c&4&&0>=f&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32?(a.o|=4,a.c[6]=4,L(a,4)):(a.o|=8,a.C|=64));return d}l.gc=function(a,b){return Sb(this,a,b)};l.hc=function(a,b){return Pb(this,Sb(this,a,b),b)};
|
||||
function Q(a,b){return b&56?a.tb(Sb(a,b,2)):a.c[b&7]}function R(a,b){return b&56?Qb(a,a.ja(b,3)):a.c[b&7]&255}function S(a,b,c,d){b&56?(b=a.ja(b,6),ib(a,b,d.call(a,c,a.ub(b)))):(b&=7,a.c[b]=d.call(a,c,a.c[b])&65535)}function Tb(a,b,c,d){b&56?(b=a.ja(b,7),Rb(a,b,d.call(a,c,Qb(a,b)))):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b])&255)}function Ub(a,b,c){b&56?ib(a,a.ja(b,4),c):a.c[b&7]=c&65535;return c}
|
||||
function Vb(a,b,c,d){b&56?Rb(a,a.ja(b,5),c):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function T(a,b){return a.c[7]+(b<<24>>23)&65535}
|
||||
l.$b=function(a){this.g.complete=!0;this.g.dc=!1;this.g.Zb=!1;this.Y=this.a=a;do{this.C&112&&(this.C&32?L(this,168):this.C&64?L(this,4):this.C&16&&L(this,12),this.C&=-113);if(this.ha)if(1==this.ha)this.ha=2;else{this.ha=0;a=null;for(var b=this.Fb&224,c=this.f.length;0<=--c;){if(0<this.f[c].qa){this.f[c].qa--;this.ha=2;break}if(this.f[c].Mb){if(!this.f[c].Mb()){this.f.splice(c,1);continue}this.f[c].Mb=null}this.f[c].mc>b&&(b=this.f[c].mc,a=this.f[c],this.f.splice(c,1))}b>(this.N&224)&&(a?L(this,a.Bc):
|
||||
L(this,160))}this.w&57344||(this.Ca=0,this.hb=this.c[7]);this.C=this.N&16;a=this.b=this.da(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a);if(0>this.b){this.c[7]=this.c[7]-2&65535;this.J("unimplemented");break}}while(0<this.a);return this.g.complete?this.Y-this.a:void 0===this.g.complete?0:-1};v(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Jb(d);C(d,c)}});
|
||||
function Wb(a,b){var c=b+a;this.C&128||(this.i=this.m=this.D=c,this.j=(a^c)&(b^c));return c&65535}function Xb(a,b){a=b&~a;P(this,a);return a}function Yb(a,b){a=b&~a;P(this,a<<8);return a}function Zb(a,b){a|=b;P(this,a);return a}function $b(a,b){a|=b;P(this,a<<8);return a}function ac(a,b){a=b-a;this.C&128||(this.i=this.m=a,this.j=b&(b^a));return a&65535}function bc(a,b){a=b+a;this.C&128||(this.i=this.m=a,this.j=a&(b^a));return a&65535}function cc(a,b){var c=b-a;Nb(this,c,a,b);return c&65535}
|
||||
function dc(){this.b=-1;--this.a}function ec(){this.b=-1;--this.a}function U(a){a&1&&(this.D=0);a&2&&(this.j=0);a&4&&(this.m=1);a&8&&(this.i=0);--this.a}function fc(){this.b=-1;--this.a}function gc(a){var b=Sb(this,a,8);a=a>>6&7;Ob(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}function hc(){this.b=-1;--this.a}function ic(){--this.a}function V(a){a&1&&(this.D=65536);a&2&&(this.j=32768);a&4&&(this.m=0);a&8&&(this.i=32768);--this.a}function jc(){this.b=-1;--this.a}
|
||||
function kc(){this.b=-1;--this.a}function W(){L(this,8)}function Kb(a){lc[a>>12].call(this,a)}
|
||||
var lc=[function(a){mc[a>>8&15].call(this,a)},function(a){P(this,Ub(this,a,Q(this,a>>6)));--this.a},function(a){var b=Q(this,a>>6);a=Q(this,a);Nb(this,b-a,a,b);--this.a},function(a){P(this,Q(this,a>>6)&Q(this,a));--this.a},function(a){S(this,a,Q(this,a>>6),Xb);--this.a},function(a){S(this,a,Q(this,a>>6),Zb);--this.a},function(a){S(this,a,Q(this,a>>6),Wb);--this.a},function(a){nc[a>>8&15].call(this,a)},function(a){oc[a>>8&15].call(this,a)},function(a){var b=R(this,a>>6);P(this,Vb(this,a,b,1)<<8);--this.a},
|
||||
function(a){var b=R(this,a>>6)<<8;a=R(this,a)<<8;Nb(this,b-a,a,b);--this.a},function(a){P(this,(R(this,a>>6)&R(this,a))<<8);--this.a},function(a){Tb(this,a,R(this,a>>6),Yb);--this.a},function(a){Tb(this,a,R(this,a>>6),$b);--this.a},function(a){S(this,a,Q(this,a>>6),cc);--this.a},W],mc=[function(a){pc[a>>4&15].call(this,a)},function(a){this.c[7]=T(this,a);--this.a},function(a){this.m&65535&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535||(this.c[7]=T(this,a));--this.a},function(a){!(this.i&
|
||||
32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){!(this.i&32768)!=!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535&&!(this.i&32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.m&65535&&!(this.i&32768)==!(this.j&32768)||(this.c[7]=T(this,a));--this.a},gc,gc,function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},function(a){sc[a>>6&3].call(this,a)},function(a){tc[a>>6&3].call(this,a)},W,W],pc=[function(a){uc[a&15].call(this,
|
||||
a)},W,W,W,W,W,W,W,function(a){var b=this.da(this.c[6]|65536);0<=b&&(this.c[6]=this.c[6]+2&65535);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.N&49152||(this.N=this.N&-2017|(a&7)<<5,this.ha=1);--this.a},function(a){vc[a&15].call(this,a)},function(a){wc[a&15].call(this,a)},W,W,W,W],vc=[ic,function(){this.D=0;--this.a},function(){this.j=0;--this.a},U,function(){this.m=1;--this.a},U,U,U,function(){this.i=0;--this.a},U,U,U,U,U,U,U],wc=[ic,function(){this.D=65536;--this.a},function(){this.j=
|
||||
32768;--this.a},V,function(){this.m=0;--this.a},V,V,V,function(){this.i=32768;--this.a},V,V,V,V,V,V,V],uc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.N&49152||(Lb(this),this.l.reset());--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},W,W,W,W,W,W,W,W],nc=[hc,hc,fc,fc,dc,dc,ec,ec,kc,kc,W,W,W,W,jc,jc],oc=[function(a){this.i&32768||(this.c[7]=T(this,a));
|
||||
--this.a},function(a){this.i&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.D&65536||!(this.m&65535)||(this.c[7]=T(this,a));--this.a},function(a){if(this.D&65536||!(this.m&65535))this.c[7]=T(this,a);--this.a},function(a){this.j&32768||(this.c[7]=T(this,a));--this.a},function(a){this.j&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.D&65536||(this.c[7]=T(this,a));--this.a},function(a){this.D&65536&&(this.c[7]=T(this,a));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},function(a){zc[a>>6&3].call(this,a)},function(a){Ac[a>>6&3].call(this,a)},W,W],qc=[function(a){Mb(this,Ub(this,a,0));--this.a},function(){this.b=-1;--this.a},function(a){S(this,a,1,bc);--this.a},function(a){S(this,a,1,ac);--this.a}],rc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],sc=[function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],tc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],xc=[function(a){Mb(this,Vb(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],yc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],zc=[function(){this.b=-1;--this.a},
|
||||
function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],Ac=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}];
|
||||
function X(a){x.call(this,"ROM",a,X);this.b=null;this.m=a.addr;this.f=a.size;this.w=a.writable;this.h=a.alias;this.i=a.file;this.B=ba(this.i);if(this.i){a=this.i;var b=ca(this.B);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,e){Bc(c,a,b,e)})}}z(X);X.prototype.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;Cc(this)};X.prototype.va=function(){this.j&&(this.H&&this.H.a(this.id,this.m,this.f,this.j),delete this.j);return!0};
|
||||
X.prototype.ua=function(){return!0};
|
||||
function Bc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Nb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.j=h.symbols;if(!a.b.length){t("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){t(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Cc(a)}}
|
||||
function Cc(a){if(!Ga(a))if(!a.i)E(a);else if(a.b&&a.l){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")";a.g.error=!0;a.K(b)}else{b=a.m;if(Pa(a.l,b,a.f,a.w?1:qb)){var c;for(c=0;c<a.b.length;c++){var d=a.l,f=b+c;d.b[(f&d.i)>>>d.l].ac(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.l,g=e.f,h=[],k=e.m>>>f.l;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.l;e=e.f;g=0;for(d>>>=f.l;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}E(a)}}v(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new X(d);C(d,c)}});function Dc(a){x.call(this,"RAM",a,Dc);this.h=a.addr;this.f=a.size;this.b=!1}z(Dc);l=Dc.prototype;l.Ka=function(a,b,c,d){this.l=b;this.a=c;this.H=d;E(this)};l.va=function(a,b){b||this.reset();return!0};l.ua=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Pa(this.l,this.h,this.f,1)&&(this.b=!0);this.b||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};v(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Dc(d);C(d,c)}});function Ec(a){x.call(this,"Keyboard",a,Ec);E(this)}z(Ec);Ec.prototype.ba=function(){return!1};Ec.prototype.Ka=function(a,b,c,d){this.h=a;this.a=c;this.H=d;this.Aa=null};
|
||||
v(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ec(d);C(d,c)}});
|
||||
function Fc(a,b,c){x.call(this,"Computer",a,Fc);this.g.L=!1;Gc(this,b);this.I=Bb(this,"autoPower",a);this.h=0;this.Y=a.busWidth||a.buswidth;this.b=Y;this.B=null;this.m=this.W=!1;this.url=Bb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Hc(this);if(this.a=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.l=new F({id:this.Nb+".bus",busWidth:this.Y},this.a,this.H);var d,f=A(this.id);if((this.i=Ea("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.J=this.i.J,d.Cb=this.i.Cb;
|
||||
this.J("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.J("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ka&&d.Ka(this,this.l,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var e;if(a=Bb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.m=!0,this.b=Y),this.b&&(this.D=new O(this,
|
||||
"1.30.0"),Z(this.D)?b=null:delete this.D);!b&&this.b&&(b=Ic(this))&&(this.m=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.w=null,g.m=!1,g.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.W=!0);E(g)})}else E(this);this.u.power||(this.I=!0);!c&&this.I&&Jc(this,this.$a)}else t("Unable to find CPU component")}z(Fc);var Y=0;
|
||||
function Gc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.X=b}function Bb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.X&&(d=a.X[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Jc(a,b,c){for(var d=A(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Jc(a,b,c)});return}}b.call(a,c)}
|
||||
function Kc(a,b){var c=new O(a,"1.30.0","validate");if(Z(c)&&Lc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Fc.prototype;
|
||||
l.$a=function(a){void 0===a&&(a=this.b||(this.B?1:Y));if(!this.h){this.h++;var b=!1,c=!1;this.T=!1;var d=this.D||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Y){if(Z(d,this.B)){this.j=new O(this,"1.30.0","failsafe");Z(this.j)&&(Mc(this,d),a=2,Nc(this.j));this.j.set("timestamp",ia());Oc(this.j);var f=this.b&&!this.m;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Lc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Z(d,g):("error"==e&&
|
||||
"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(na("user",""),this.f=null)):this.J(e+": "+g),Nc(d),Z(d)?(c=Lc(d),f=!0):c=!1))}f&&Kc(this,c?d:null)}else 2==a&&d.clear()}else Kc(this);delete this.B;delete this.D}f=A(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Pc(this,g,d,b,c));b=[d,a,c];-1!=a?Jc(this,this.Pb,b):this.Pb(b)}};
|
||||
function Pc(a,b,c,d,f){if(!b.g.L){b.g.L=!0;if(b.va){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.va(e,d)&&e&&(t("Unable to restore state for "+b.type),a.M&&!a.W?(c.clear(),a.b=Y,window&&window.location.reload()):a.T=!0,b.va(null),f=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.Z=!0;this.g.L=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(Pc(this,this.a,b,c,a),this.a.Wa());this.T&&(Mc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function Mc(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Qc(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=ia();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ua&&(c&&N(a.a),d=a.a.ua(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.L=!1,!1===d&&(f=null)));for(var h=A(a.id),k=0;k<h.length;k++){var m=h[k];m.g.L&&(m.ua&&(d=m.ua(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.L=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Rc(a,a.f,e.toString()),Oc(g)&&Oc(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.L=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.ba=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.L?Qc(d,!1,!0):Jc(d,d.$a))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.L&&!d.h)if(d.b&&!d.w){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Qc(d,a,!0);!a&&d.M?window&&window.location.reload():d.$a(Y)}else d.reset(),d.a&&d.a.Wa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=Hc(d,!0);if(a){var b=!!(d.b&&!d.w||d.M),c=Qc(d,b);b?Rc(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Hc(a,b){var c=a.f;c||((c=ma("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=Sc(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function Sc(a,b){a.f=null;b=r(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(na("user",b.data),a.f=b.data)}catch(d){t(d.message+" ("+c+")")}return a.f}function Ic(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+Tc(a,"1.30.0"));return b}
|
||||
function Rc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Tc(a,"1.30.0");d.data=c;b=r(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("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.K(c),na("user",""),a.f=null)}}
|
||||
l.Na=function(a){this.a&&this.a.Na(a);this.i&&this.i.Na(a)};v(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=B(e),g=new Fc(g,d,!0);C(g,e);g.I&&Jc(g,g.$a)}});u.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ea("Computer",c.id))&&c.Z&&!c.g.L&&c.$a(-1)}});
|
||||
u.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Ea("Computer",c.id))&&c.g.L&&Qc(c,!(!c.b||c.w),!0)}});function O(a,b,c){this.id=a.id;this.key=Tc(a,b,c);this.H=a.H;Nc(this,a.ic)}function Tc(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}
|
||||
O.prototype={constructor:O,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){Nc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function Nc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Oc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Lc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function Z(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}var Uc=0;
|
||||
function Vc(a,b,c,d,f,e){f("Loading "+a+"...");r(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Wc(h,a,b,c,d,f,e)})}
|
||||
function Wc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Da(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){e=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Xc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Xc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");r(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Xc(a,b,c)}})}else c(a,null)}
|
||||
function Yc(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Uc||ua(!0));k=!1}var g,h,k=!0;Uc++;Ca[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=m:w.appendChild(document.createTextNode(m));p.appendChild(w)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Vc(c,null,null,!1,f,function(d,k){k?(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Uc||ua(!0)):e("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),--Uc||ua(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Vc(b,a,d,!0,f,m):Wc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(H){e(H.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return Yc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=G.prototype;l.Ka=function(a,b,c,d){this.w=b;this.a=c;this.I=d;var f=this;this.b.Jb=ab(this.a,function(){f.b.sa|=128;f.b.sa&64&&(H(f.a,0,6,64),bb(f.a,f.b.Jb))});Xa(b,this);Za(b,this.reset.bind(this),this.bc.bind(this));D(this)};l.nc=function(){var a=this.b.sa;this.b.sa&=-129;return a};
|
||||
l.Cc=function(a){this.b.sa=a;a&64&&bb(this.a,this.b.Jb);this.b.sa=a&-129};l.oc=function(){var a=this.a;return a.A&62337|a.Oa<<5|a.Pa<<1};l.Dc=function(a){var b=4,c=this.a;c.A=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.pb=a&257?a&1?6:4:0;cb(c);a=c.A;a&1|256&&(b=this.a.Fa&16?1:2);this.h.Sa=this.h.Sa&-8|b};l.qc=function(){return this.f.V};l.Gc=function(a){if(128==(this.f.V&192)&&a&64){var b=this;H(this.a,8,4,52,function(){b.f.V|=128;return!!(b.f.V&64)})}this.f.V=this.f.V&128|a&-129};l.pc=function(){return db(this.a)};
|
||||
l.Ec=function(a){eb(this.a,a&-1809|db(this.a)&1808);this.a.s|=128};
|
||||
function fb(a){var b=a.i,c,d,f,e=b.U>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ia[e]*b.D[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.gb=2496;b.P=0;b.v=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ia[e]){b.P|=32832;b.v|=49152;break}if((b.U&15)>=b.D[e]){b.P|=32800;b.v|=49152;break}c=(b.U>>4&511)*b.D[e]+(b.U&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;gb(a,b.S[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ia[e])b.P|=32832,
|
||||
b.v|=49152;else if((b.U&15)>=b.D[e])b.P|=32800,b.v|=49152;else{c=(b.U>>4&511)*b.D[e]+(b.U&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;a.rb(b.S[e],c,d,f);return}}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.rc=function(a,b,c,d,f){var e=this.i;e.fb=d&65535;e.v=e.v&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}H(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function hb(a){var b=a.j,c,d,f,e=b.o>>8&3;b.o&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ia[e]*b.D[e],url:"rl"+e+".dsk"});switch(b.o>>1&7){case 2:b.ta&8&&(b.o&=63);b.ta=b.cc[e]|b.za&64;break;case 3:1==(b.H&3)&&(b.za=b.H&4?b.za+(b.H&65408)&65408|b.H<<2&64:b.za-(b.H&65408)&65408|b.H<<2&64,b.H=b.za);break;case 4:b.ta=b.za;break;case 5:if(b.H>>6>=b.Ia[e]){b.o|=37888;break}if((b.H&63)>=b.D[e]){b.o|=37888;break}c=(b.H>>6)*b.D[e]+(b.H&63);
|
||||
d=(b.na&63)<<16|b.$a;f=65536-b.ta&65535;gb(a,b.S[e],c,d,f);return;case 6:if(b.H>>6>=b.Ia[e])b.o|=37888;else if((b.H&63)>=b.D[e])b.o|=37888;else{c=(b.H>>6)*b.D[e]+(b.H&63);d=(b.na&63)<<16|b.$a;f=65536-b.ta&65535;a.rb(b.S[e],c,d,f);return}}H(a.a,20,5,112,function(){b.o|=129;return!!(b.o&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.j;e.$a=d&65535;e.o=e.o&-49|d>>12&48;e.na=d>>16&63;e.H=~~(c/e.D[b.fa])<<6|c%e.D[b.fa];e.za=e.H;e.ta=65536-f&65535;switch(a){case 1:e.o|=33792;break;case 2:e.o|=40960}H(this.a,20,5,112,function(){e.o|=129;return!!(e.o&64)})};function ib(a){a=a.l;a.C=2176;a.$=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ua=[0,0,0,0,0,0,0,0];a.Ma=a.Va=a.Ta=a.ya=a.Hb=0}
|
||||
function jb(a,b){var c=a.l,d,f,e;c.C&=-16513;c.$&=-2049;c.T[b]&=-1153;H(a.a,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.wb[0]*c.Ha[0]*c.D[0],url:"rp"+b+".dsk"});switch(c.C&63){case 5:c.ub[b]=c.ha[b];c.C|=32896;c.T[b]|=32896;c.Ma|=1<<b;break;case 9:ib(a);break;case 19:c.T[b]|=64;break;case 49:if(c.ha[b]>=c.wb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.D[0]){c.Ua[b]|=1024;c.C|=49152;break}d=(c.ha[b]*c.Ha[0]+(c.aa[b]>>8))*c.D[0]+
|
||||
(c.aa[b]&255);f=(c.ya&63)<<16|c.Ta;e=65536-c.Va&65535;gb(a,c.S[b],d,f,e);return;case 57:if(c.ha[b]>=c.wb[0]||c.aa[b]>>8>=c.Ha[0]||(c.aa[b]&255)>=c.D[0])c.Ua[b]|=1024,c.C|=49152;else{d=(c.ha[b]*c.Ha[0]+(c.aa[b]>>8))*c.D[0]+(c.aa[b]&255);f=(c.ya&63)<<16|c.Ta;e=65536-c.Va&65535;a.rb(c.S[b],d,f,e);return}}H(a.a,3,5,172,function(){c.C=c.C&65534|128;c.T[b]|=128;return!!(c.C&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.l;e.Va=65536-f&65535;e.Ta=d&65535;e.C=e.C&-769|d>>8&768;e.ya=d>>16&63;f=~~(c/e.D[0]);d=~~(f/e.Ha[0]);e.aa[b.fa]=f%e.Ha[0]<<8|c%e.D[0];e.ub[b.fa]=e.ha[b.fa]=d;e.Ma|=1<<b.fa;c>=b.lc-1&&(e.T[b.fa]|=1024);switch(a){case 1:e.$|=512;e.C|=49152;break;case 2:e.$|=2048,e.C|=49152}H(this.a,20,5,172,function(){e.T[b.fa]|=128;e.C=e.C&65534|128;return!!(e.C&64)})};
|
||||
function kb(a,b,c,d,f,e){var g=~~((e+c.oa-1)/c.oa),h=new XMLHttpRequest;2048>g&&d+2048<c.lc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.oa<<1)+"-"+(((d+g)*c.oa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,p,y,L;m=h.response;if(h.status&&206!=h.status||!m)c.Eb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(L=0;L<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],y=0;y<c.oa;y++)c.cache[p][y]=L<m.length?
|
||||
m[L]&255|m[L+1]<<8&65280:0,L+=2;else L+=c.oa<<1;p++}g(c,d,f,e)}}};h.send(null)}function I(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:J(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.rb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){kb(this,this.rb,a,b,c,d);return}for(f=0;f<a.oa&&0<d;f++){var e=a.kc?lb(this.a,c):c;Va(this.a.w,e,a.cache[b][f]&65535);c+=2;--d}b++}a.Eb(0,a,b,c,d)};
|
||||
function gb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.oa;e++)b.cache[c][e]=0;for(e=0;e<b.oa&&0<f;e++){g=a.a.tb(b.kc?lb(a.a,d):d);if(0>g){b.Eb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.Eb(0,b,c,d,f)}l.reset=function(){this.h.Sa=this.h.Sa&-120|20;this.f.ca=0;this.f.V=128;this.b.sa=0;this.i.v=128;this.j.o=128;ib(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.wa&65280:(a&1&&(b<<=8),e.wa=b|255,d=0);break;case 4194298:if(0>b)d=e.Gb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Gb=d;e.ga=2}break;case 4194294:if(70!==e.Ja)return J(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Ja)return J(e,4);d=1;break;case 4194290:if(70!==e.Ja)return J(e,4);d=0;break;case 4194288:if(70!==e.Ja)return J(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ja)return J(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=I(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.F>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[3]=b),d=e.xa[3]):e.F>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[1]=b),d=e.xa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.F&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=b),d=e.La[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.F>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.xa[0]=b),d=e.xa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.F&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.f;switch(a&-2){case 4194174:d=I(this,e.jb,a,b,c);0<=d&&(e.jb=d);break;case 4194172:d=e.Ea;d&65280&&(d=(d<<8|d>>8)&65535);break;
|
||||
case 4194168:0>b?d=this.h.Ac&65535:(d=I(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.V&=-129,H(e,100,4,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ca&=-129,0<g.Fb.length&&(d=g.Fb.shift(),0<g.Fb.length&&setTimeout(function(){g.ca|=128;g.ca&64&&H(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ca:(d=I(this,g.ca,a,b,c),0<=d&&(g.ca=g.ca&128|d&-129));break;default:return e.m|=16,J(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
|
||||
I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=I(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&fb(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.m|=16,J(e,4)}break;case 4193728:var h=this.l;f=h.$&7;switch(a&
|
||||
-2){case 4193728:d=I(this,h.C,a,b,c);0<=b&&0<=d&&(h.ya=h.ya&60|d>>8&3,h.C=d&17279|h.C&34944|2048,d&1&&h.C&128?jb(this,f):192==(d&192)&&H(e,0,5,172));break;case 4193730:d=I(this,h.Va,a,b,c);0<=d&&(h.Va=d);break;case 4193732:d=I(this,h.Ta,a,b,c);0<=d&&(h.Ta=d&65534);break;case 4193734:d=I(this,h.aa[f],a,b,c);0<=d&&(h.aa[f]=d&7967);break;case 4193736:d=I(this,h.$,a,b,c);0<=d&&(h.$=d&63|h.$&65472,d&128&&ib(this));break;case 4193738:d=h.T[f];break;case 4193740:d=h.Ua[f];break;case 4193742:d=I(this,h.Ma,
|
||||
a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=I(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=I(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=I(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=I(this,h.ha[f],a,b,c);0<=d&&(h.ha[f]=d&511);break;case 4193758:h.ub[f]=h.ha[f];d=h.ub[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=
|
||||
h.vc[f];break;case 4193768:d=I(this,h.ya,a,b,c);0<=d&&(h.ya=d&63,h.C=h.C&-769|(d&3)<<8);break;case 4193770:d=I(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.m|=16,J(e,4)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=I(this,f.o,a,b,c);0<=b&&0<=d&&(f.na=f.na&60|d>>4&3,f.o=f.o&-1023|d&1022,f.o&128||hb(this));break;case 4192514:d=I(this,f.$a,a,b,c);0<=d&&(f.$a=d&65534);break;case 4192516:d=I(this,f.H,a,b,c);0<=d&&(f.H=d);break;case 4192518:d=I(this,f.ta,a,b,c);0<=d&&(f.ta=d);break;
|
||||
case 4192520:d=I(this,f.na,a,b,c);0<=d&&(f.na=d&63,f.o=f.o&-49|(f.na&3)<<4);break;default:return e.m|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Fa:(d=I(this,e.Fa,a,b,c),0<=d&&(70!==e.Ja&&(d&=-49),e.Fa=d,e.qb[0]=d&4?15:7,e.qb[1]=d&2?15:7,e.qb[3]=d&1?15:7,e.pb&&(f=2,e.Fa&16&&(f=1),this.h.Sa=this.h.Sa&-8|f)));break;default:return e.m|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=I(this,e.O[1][f],
|
||||
a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ja)return J(e,4);f=a>>2&31;d=e.ib[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.ib[f]=a&2?d<<16|e.ib[f]&65535:e.ib[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=$a[a>>1&255];else return e.m|=16,J(e,4);break;default:return e.m|=16,J(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
|
||||
return d};var mb={},Ya=(mb[65382]=[null,null,G.prototype.nc,G.prototype.Cc],mb[65402]=[null,null,G.prototype.oc,G.prototype.Dc],mb[65396]=[null,null,G.prototype.qc,G.prototype.Gc],mb[65534]=[null,null,G.prototype.pc,G.prototype.Ec],mb);u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var nb;if(Ia){var ob=new ArrayBuffer(2);(new DataView(ob)).setUint16(0,256,!0);nb=256===(new Uint16Array(ob))[0]}else nb=!1;var pb=nb;
|
||||
function F(a,b,c,d,f){this.id=qb+=2;this.a=null;this.Xa=a;this.vb=b;this.size=c||0;this.type=d||rb;this.h=d==sb;this.controller=null;La(this);this.qa=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,tb(this,f.Ya);else if(Ia)this.f=new ArrayBuffer(c),this.u=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.l=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),tb(this,pb?ub:vb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;tb(this,wb)}else tb(this)}
|
||||
var rb=0,sb=2,Ra=4,Ta=["NONE","RAM","ROM","VID","H/W"],qb=0;
|
||||
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ia)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ia)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.a=a;return this.qa=!0}return!1},A:function(){return 255},G:function(){},B:function(a,b){return this.eb(a++,b++)|this.eb(a,b)<<8},J:function(a,b,c){this.Wa(a++,
|
||||
b&255,c++);this.Wa(a,b>>8,c)},Y:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},la:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Da:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.qa=!0},Ra:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.qa=!0},R:function(a,b){return this.W(a,b)},ia:function(a,b){return this.ja(a,
|
||||
b)},Ba:function(a,b,c){this.h||this.ac(a,b,c)},Oa:function(a,b,c){this.h||this.Pa(a,b,c)},K:function(a){return this.b[a]},X:function(a){return this.b[a]},Z:function(a){return this.u.getUint16(a,!0)},ka:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Aa:function(a,b){this.b[a]=b;this.qa=!0},Ca:function(a,b){this.b[a]=b;this.qa=!0},Ga:function(a,b){this.u.setUint16(a,b,!0);this.qa=!0},Qa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.qa=!0}};
|
||||
function La(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&xb(a,yb,!1),(a.j=c.j)&&zb(a,yb,!1))}function zb(a,b,c){c&&a.j||(a.Wa=!a.h&&b[1]||a.G,a.Fc=!a.h&&b[3]||a.J);if(c||void 0===c)a.ac=b[1]||a.G,a.Pa=b[3]||a.J}function xb(a,b,c){c&&a.i||(a.eb=b[0]||a.A,a.sb=b[2]||a.B);if(c||void 0===c)a.W=b[0]||a.A,a.ja=b[2]||a.B}function tb(a,b){b||(b=Ab);xb(a,b,void 0);zb(a,b,void 0)}var Ab=[],wb=[F.prototype.Y,F.prototype.Da,F.prototype.la,F.prototype.Ra],yb=[F.prototype.R,F.prototype.Ba,F.prototype.ia,F.prototype.Oa];
|
||||
if(Ia)var vb=[F.prototype.K,F.prototype.Aa,F.prototype.Z,F.prototype.Ga],ub=[F.prototype.X,F.prototype.Ca,F.prototype.ka,F.prototype.Qa];function Bb(a,b){v.call(this,"CPU",a,Bb);var c=a.multiplier||1;this.lb=a.cycles||b;this.Y=c;this.yb=Math.round(this.lb/1E4)/100;this.ja=this.yb*this.Y;this.g.ea=!1;this.g.Zb=!1;this.g.Za=a.autoStart;this.g.Qb=!1;this.g.nb=!1;this.Ra=this.ka=0;this.kb=a.csStart;this.Ba=a.csInterval;this.Ca=a.csStop;this.G=[];this.Tb=this.Ib.bind(this);D(this)}x(Bb);
|
||||
var Cb=["power","reset"];l=Bb.prototype;l.Ka=function(a,b,c,d){this.l=a;this.w=b;this.I=d;for(b=0;b<Cb.length;b++)(c=this.u[Cb[b]])&&this.l.ba(null,Cb[b],c);this.Aa=null;a=Db(a,"autoStart");null!=a&&(this.g.Za="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.va=function(a,b){if(!b){if(a&&this.restore){Eb(this);if(!this.restore(a))return!1;Fb(this)}else this.reset();this.N("No debugger detected")}Gb(this);return!0};
|
||||
l.ua=function(a){return a?this.save():!0};l.Za=function(){return this.g.Za||void 0===this.u.run?(this.Ib(),!0):!1};l.Ub=function(){return 0};function Fb(a){void 0===a.kb&&(a.kb=0);void 0===a.Ba&&(a.Ba=-1);void 0===a.Ca&&(a.Ca=-1);a.g.nb=0<=a.kb&&0<a.Ba;a.g.nb&&(a.Ra=0,a.ka=a.kb-a.Z)}
|
||||
function K(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.L("Value for "+b+" is invalid"),M(a));var f=a.I&&a.I.b||8;c=!a.g.ea||a.g.Qb?8==f?ba(c,d):n(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.g.M)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.M);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.g.ea?M(d):d.Ib())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Hb(d,d.Y<<1)},c.textContent=this.ja.toFixed(2)+"Mhz",a=!0}return a};function Ib(a,b,c){a.Z+=b;c&&(a.J=a.a=0)}function Jb(a,b){var c=1;b&&1<a.Y&&a.W&&(c=a.W/a.yb);a.Pb=Math.round(1E3/30);a.mb=Math.floor(a.lb/30*c);b||(a.Da=a.mb);a.zb=0}function Kb(a){return a.Z+a.R+a.J-a.a}function Eb(a){a.W=0;a.Sb=0;a.Z=a.R=a.J=a.a=0;Fb(a);Hb(a,1)}
|
||||
function Hb(a,b){if(void 0!==b&&(.8>a.W/a.ja&&(b=1),a.Y=b,b=a.yb*a.Y,a.ja!=b)){a.ja=b;b=a.ja.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.N("target speed: "+b)}Ib(a,a.R);a.R=0;a.K=ia();a.X=0;Jb(a)}function ab(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function bb(a,b){var c;0<=b&&b<a.G.length&&0>a.G[b][0]&&(c=a.lb*a.Y/1E3*(1E3/60),a.G[b][0]=c)}
|
||||
l.Ib=function(){if(Ga(this,!0)){if(!this.g.ea){Hb(this);this.l&&this.l.start(this.K,Kb(this));this.g.ea=!0;this.g.Zb=!0;this.Aa&&this.Aa.start();var a=this.u.run;a&&(a.textContent="Halt");this.l&&this.l.Na(!0)}this.zb>=this.lb&&Jb(this,!0);this.Ga=0;this.Qa=ia();this.X&&(a=this.Qa-this.X,a>this.Pb&&(this.K+=a,this.K>this.Qa&&(this.K=this.Qa)));try{do{for(var b,c=this.g.nb?1:this.mb,d=this.G.length-1;0<=d;d--){var f=this.G[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.J-this.a,a=e,g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.R+=e;Ib(this,0,!0);a=e;if(this.g.nb){var k=!1;this.Ra=this.Ra+this.Ub()|0;this.ka-=a;0>=this.ka&&(this.ka+=this.Ba,k=!0);0<=this.Ca&&this.Ca<=Kb(this)&&(this.Ba=this.Ca=-1,Fb(this),M(this),k=!0);k&&this.N(Kb(this)+" cycles: checksum="+n(this.Ra))}this.Da-=e;if(0>=this.Da){this.Da+=this.mb;15<=++this.Sb&&(this.l&&this.l.Na(),this.Sb=0);break}}while(this.g.ea)}catch(m){M(this);
|
||||
Gb(this);this.l&&this.l.stop(ia(),Kb(this));Ga(this,!1);b=m.stack||m.message;this.g.error=!0;this.L(b);return}b=setTimeout;c=this.Tb;this.X=ia();d=this.Pb;this.Ga&&(d=Math.round(d*this.Ga/this.mb));d-=this.X-this.Qa;if(f=this.X-this.K)this.W=Math.round(this.R/(10*f))/100,864E5<=f&&(this.Z=0,Hb(this));if(0>d||this.W<this.ja)-1E3>d&&(this.K-=d),d=0;this.zb+=this.Ga;this.X+=d;b(c,d)}else Gb(this),this.l&&this.l.stop(ia(),Kb(this))};l.$b=function(){return 0};
|
||||
function M(a){a.g.ab&&(a.g.Bb=!0);a.J-=a.a;a.a=0;Ib(a,a.R);a.R=0;if(a.g.ea){a.g.ea=!1;a.Aa&&a.Aa.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function Gb(a){a.l&&a.l.Na(void 0)}
|
||||
function Lb(a){this.jc=a.resetAddr||0;Bb.call(this,a,1E6);this.Lb=0;this.decode=Mb.bind(this);this.h=65536;this.b=32768;this.f=65535;this.i=32768;this.F=15;this.c=[0,0,0,0,0,0,0,this.jc];this.La=[0,0,0,0,0,0];this.xa=[0,0,0,0];this.Pa=this.B=0;this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.s=0;this.Ja=70;this.la=-1;this.Ab=0;Nb(this);this.g.complete=this.g.dc=!1}x(Lb,Bb);l=Lb.prototype;l.reset=function(){this.g.ea&&M(this);Nb(this);Eb(this);this.g.error=!1;this.parent.reset.call(this)};
|
||||
function Nb(a){a.wa=255;a.m=0;a.Gb=0;a.A=0;a.Ea=0;a.jb=0;a.Fa=0;a.pb=0;a.Oa=0;a.qb=[7,7,7,7];a.j=[];a.ga=2;cb(a)}function cb(a){a.pb?(a.Kb=65536,a.ia=a.ic,a.sb=a.da):(a.Kb=0,a.ia=a.hc,a.sb=a.tb)}l.Ub=function(){return 0};l.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.Z,this.Y]);a.set(2,Wa(this.w));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Z=b[1];Hb(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.J){for(var e=0,g=Array(b.J),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.ba=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.u[b]=c;this.Lb++;a=!0;break;default:a=this.parent.ba.call(this,a,b,c)}return a};
|
||||
l.Na=function(a){if(this.Lb&&(a||!this.g.ea||this.g.Qb)){for(a=0;a<this.c.length;a++)K(this,"R"+a,this.c[a]);a=db(this);K(this,"PS",a);K(this,"NF",a&8?1:0,1);K(this,"ZF",a&4?1:0,1);K(this,"VF",a&2?1:0,1);K(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.ea&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};function O(a){return a.h&65536?1:0}l.ra=function(){return this.i&32768?8:0};
|
||||
function H(a,b,c,d,f){for(var e=a.j.length;0<e--;)if(a.j[e].Bc===d){0<e&&(a.j[e-1].pa+=a.j[e].pa);a.j.splice(e,1);break}if(0<=b){2===a.Ab&&(b=0,a.Ab=0,setTimeout(a.Tb,0));for(e=a.j.length;0<e--;){if(a.j[e].pa>b){a.j[e].pa-=b;break}b-=a.j[e].pa}a.j.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ga=2}function db(a){return a.F=a.F&63728|a.ra()|(a.f&65535?0:4)|(a.b&32768?2:0)|O(a)}
|
||||
function eb(a,b){a.i=b<<12;a.f=~b&4;a.b=b<<14;a.h=b<<16;if((b^a.F)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.B=b>>14&3;c=a.F>>14&3;a.B!=c&&(a.xa[c]=a.c[6],a.c[6]=a.xa[a.B]);a.ga=2;a.F=b}function P(a,b,c){a.s&128||(a.i=a.f=a.h=b,a.b=c||0)}function Q(a,b){a.s&128||(a.i=a.f=b,a.b=0)}function Ob(a,b,c,d){a.s&128||(a.i=a.f=a.h=b,a.b=(c^b)&(d^b))}function R(a,b){a.s&128||(a.i=a.f=a.h=b,a.b=a.i^a.h>>1)}function Pb(a,b,c,d){a.s&128||(a.i=a.f=a.h=b,a.b=(c^d)&(d^b))}
|
||||
function J(a,b){var c=!1;0>a.la?a.la=db(a):a.B||(b=4,c=!0);a.A&57344||(a.Ea=63222,a.jb=b);a.B=0;var d=a.da(b|65536),f=a.da(b+2&65535|65536);eb(a,f&53247|a.la>>2&12288);c&&(a.m|=4,a.c[6]=4);Qb(a,a.la);Qb(a,a.c[7]);a.c[7]=d;a.s&=-113;a.la=-1;throw b;}function Rb(a){var b=Sb(a),c=Sb(a)&-1793;a.F&49152&&(c=c&-225|a.F&63712);a.c[7]=b&65535;eb(a,c);a.s&=-17}function lb(a,b){var c=b>>13&31;31>c?a.Fa&32&&(b=a.ib[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Tb(a,b,c){var d,f,e,g=0;if(c&a.pb){d=b>>13&a.qb[a.B];f=a.O[a.B][d];e=(a.O[a.B][d+16]<<6)+(b&8191)&4194303;a.Fa&16?3932160<=e&&4186112>e&&(e=lb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,J(a,4)),e&1&&!(c&1)&&(a.m|=64,J(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=
|
||||
16384));a.O[a.B][d]=f;if(4194170!==e||a.B)a.Oa=a.B,a.Pa=d;g&&(g&57344&&(0<=a.la&&(g|=128),a.A&57344||(a.A=a.A|g|a.Oa<<5|a.Pa<<1),J(a,168)),a.A&61440||!(4191360>e||4194239<e)||(a.A|=4096,a.A&512&&(a.s|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,J(a,4));return e}l.tb=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.w,c=a&b.i,d=(a&b.j)>>>b.f;a=c!=b.i?b.b[d].sb(c,a):b.b[d++].eb(c,a)|b.b[d&b.K].eb(0,a+1)<<8}return a};l.da=function(a){return this.tb(Tb(this,a,2))};
|
||||
function Sb(a){var b=a.da(a.c[6]|65536);a.c[6]=a.c[6]+2&65535;return b}function Qb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.A&57344||(a.Ea=a.Ea<<8|246);!a.B&&c<=a.wa&&4<c&&(c<=a.wa-32?(a.m|=4,a.c[6]=4,J(a,4)):(a.m|=8,a.s|=4));c=Tb(a,c|65536,4);Va(a.w,c,b&65535)}
|
||||
function Ub(a,b,c){var d,f,e=b&7,g=c&8?0:a.Kb;switch(b>>3&7){case 0:J(a,4);break;case 1:return 6===e&&!a.B&&c&4&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,J(a,4)):(a.m|=8,a.s|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.da(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.da(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.da(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.A&57344||(a.Ea=a.Ea<<8|f<<3&248|e);6===e&&!a.B&&c&4&&0>=f&&(a.c[6]<=a.wa||65534<=a.c[6])&&(a.c[6]<=a.wa-32?(a.m|=4,a.c[6]=4,J(a,4)):(a.m|=8,a.s|=64));return d}l.hc=function(a,b){return Ub(this,a,b)};l.ic=function(a,b){return Tb(this,Ub(this,a,b),b)};
|
||||
function S(a,b){return b&56?a.sb(Ub(a,b,2)):a.c[b&7]}function T(a,b){b&56?(b=a.ia(b,3),a=Ua(a.w,b)):a=a.c[b&7]&255;return a}function U(a,b,c,d){b&56?(b=a.ia(b,6),c=d.call(a,c,a.tb(b)),Va(a.w,b,c&65535)):(b&=7,a.c[b]=d.call(a,c,a.c[b]))}function V(a,b,c,d){b&56?(b=a.ia(b,7),c=d.call(a,c,Ua(a.w,b)),a=a.w,a.b[(b&a.j)>>>a.f].Wa(b&a.i,c&255,b)):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b]))}function Vb(a,b,c){b&56?(b=a.ia(b,4),Va(a.w,b,c&65535)):a.c[b&7]=c&65535;return c}
|
||||
function Wb(a,b,c,d){b&56?(d=a.ia(b,5),a=a.w,a.b[(d&a.j)>>>a.f].Wa(d&a.i,c&255,d)):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function W(a,b){return a.c[7]+(b<<24>>23)&65535}
|
||||
l.$b=function(a){this.g.complete=!0;this.g.dc=!1;this.g.Zb=!1;this.J=this.a=a;do{this.s&112&&(this.s&32?J(this,168):this.s&64?J(this,4):this.s&16&&J(this,12),this.s&=-113);if(this.ga)if(1==this.ga)this.ga=2;else{this.ga=0;a=null;for(var b=this.Gb&224,c=this.j.length;0<=--c;){if(0<this.j[c].pa){this.j[c].pa--;this.ga=2;break}if(this.j[c].Ob){if(!this.j[c].Ob()){this.j.splice(c,1);continue}this.j[c].Ob=null}this.j[c].mc>b&&(b=this.j[c].mc,a=this.j[c],this.j.splice(c,1))}b>(this.F&224)&&(a?J(this,a.Bc):
|
||||
J(this,160))}this.A&57344||(this.Ea=0,this.jb=this.c[7]);this.s=this.F&16;a=this.da(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a)}while(0<this.a);return this.g.complete?this.J-this.a:void 0===this.g.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lb(d);B(d,c)}});function Xb(a,b){var c=b+a;Ob(this,c,a,b);return c&65535}function Yb(a,b){var c=b+a;Ob(this,c<<8,a<<8,b<<8);return c&255}
|
||||
function Zb(a,b){a=b<<1;R(this,a);return a&65535}function $b(a,b){a=b<<1;R(this,a<<8);return a&255}function ac(a,b){a=b&32768|b>>1|b<<16;R(this,a);return a&65535}function bc(a,b){a=b&2048|b>>1|b<<8;R(this,a<<8);return a&255}function cc(a,b){a=b&~a;Q(this,a);return a}function dc(a,b){a=b&~a;Q(this,a<<8);return a}function ec(a,b){a|=b;Q(this,a);return a}function fc(a,b){a|=b;Q(this,a<<8);return a}function gc(a,b){a=~b|65536;P(this,a);return a&65535}
|
||||
function hc(a,b){a=~b|256;P(this,a<<8);return a&255}function ic(a,b){a=b-a;this.s&128||(this.i=this.f=a,this.b=b&(b^a));return a&65535}function jc(a,b){a=b-a;var c=a<<8;b<<=8;this.s&128||(this.i=this.f=c,this.b=b&(b^c));return a&255}function kc(a,b){a=b+a;this.s&128||(this.i=this.f=a,this.b=a&(b^a));return a&65535}function lc(a,b){a=b+a;var c=a<<8;this.s&128||(this.i=this.f=c,this.b=c&(b<<8^c));return a&255}function mc(a,b){a=-b;P(this,a,a&b&32768);return a&65535}
|
||||
function nc(a,b){a=-b;P(this,a<<8,(a&b&128)<<8);return a&255}function oc(a,b){a=b<<1|this.h>>16&1;R(this,a);return a&65535}function pc(a,b){a=b<<1|this.h>>16&1;R(this,a<<8);return a&255}function qc(a,b){a=(this.h&65536|b)>>1|b<<16;R(this,a);return a&65535}function rc(a,b){a=((this.h&65536)>>8|b)>>1|b<<8;R(this,a<<8);return a&255}function sc(a,b){var c=b-a;Pb(this,c,a,b);return c&65535}function tc(a,b){var c=b-a;Pb(this,c<<8,a<<8,b<<8);return c&255}function uc(a,b){a^=b;Q(this,a);return a&65535}
|
||||
function vc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a];c&32768&&(c|=4294901760);this.h=this.b=0;b&=63;b&32?(b=64-b,16<b&&(b=16),this.h=c<<17-b,c>>=b):b&&(16<b?(this.b=c,c=0):(this.h=c<<=b,(b=c>>15&65535)&&65535!==b&&(this.b=32768)));this.c[a]=c&65535;this.i=this.f=c;--this.a}
|
||||
function wc(a){var b=S(this,a);a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.h=this.b=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.h=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.h=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.b=32768)):d=c;this.c[a]=d>>16&65535;this.c[a|1]=d&65535;this.i=d>>16;this.f=d>>16|d;--this.a}function X(a){a&1&&(this.h=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.i=0);--this.a}
|
||||
function xc(a){var b=S(this,a);if(b){a=a>>6&7;var c=this.c[a]<<16|this.c[a|1];this.h=this.b=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.c[a]=d&65535,this.c[a|1]=c-d*b&65535,this.f=d>>16|d,this.i=d>>16):(this.b=32768,this.f=d>>15|d,this.i=c>>16,-1===b&&65534===this.c[a]&&(this.c[a]=this.c[a|1]=1))}else this.f=this.i=0,this.b=32768,this.h=65536;--this.a}function yc(a){var b=Ub(this,a,8);a=a>>6&7;Qb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}
|
||||
function zc(a){var b=S(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.c[a];c&32768&&(c|=-65536);b=~~(b*c);this.c[a]=b>>16&65535;this.c[a|1]=b&65535;this.i=b>>16;this.f=this.i|b;this.b=0;this.h=-32768>b||32767<b?65536:0;--this.a}function Ac(){--this.a}function Y(a){a&1&&(this.h=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.i=32768);--this.a}function Bc(){--this.a}function Cc(a){U(this,a,S(this,(a&448)>>6),uc);--this.a}function Z(){J(this,8)}function Mb(a){Dc[a>>12].call(this,a)}
|
||||
var Dc=[function(a){Ec[a>>8&15].call(this,a)},function(a){Q(this,Vb(this,a,S(this,a>>6)));--this.a},function(a){var b=S(this,a>>6);a=S(this,a);Pb(this,b-a,a,b);--this.a},function(a){Q(this,S(this,a>>6)&S(this,a));--this.a},function(a){U(this,a,S(this,a>>6),cc);--this.a},function(a){U(this,a,S(this,a>>6),ec);--this.a},function(a){U(this,a,S(this,a>>6),Xb);--this.a},function(a){Fc[a>>8&15].call(this,a)},function(a){Gc[a>>8&15].call(this,a)},function(a){var b=T(this,a>>6);Q(this,Wb(this,a,b,1)<<8);--this.a},
|
||||
function(a){var b=T(this,a>>6)<<8;a=T(this,a)<<8;Pb(this,b-a,a,b);--this.a},function(a){Q(this,(T(this,a>>6)&T(this,a))<<8);--this.a},function(a){V(this,a,T(this,a>>6),dc);--this.a},function(a){V(this,a,T(this,a>>6),fc);--this.a},function(a){U(this,a,S(this,a>>6),sc);--this.a},Z],Ec=[function(a){Hc[a>>4&15].call(this,a)},function(a){this.c[7]=W(this,a);--this.a},function(a){this.f&65535&&(this.c[7]=W(this,a));--this.a},function(a){this.f&65535||(this.c[7]=W(this,a));--this.a},function(a){!this.ra()==
|
||||
!(this.b&32768)&&(this.c[7]=W(this,a));--this.a},function(a){!this.ra()!=!(this.b&32768)&&(this.c[7]=W(this,a));--this.a},function(a){this.f&65535&&!this.ra()==!(this.b&32768)&&(this.c[7]=W(this,a));--this.a},function(a){this.f&65535&&!this.ra()==!(this.b&32768)||(this.c[7]=W(this,a));--this.a},yc,yc,function(a){Ic[a>>6&3].call(this,a)},function(a){Jc[a>>6&3].call(this,a)},function(a){Kc[a>>6&3].call(this,a)},function(a){Lc[a>>6&3].call(this,a)},Z,Z],Hc=[function(a){Mc[a&15].call(this,a)},Z,Z,Z,Z,
|
||||
Z,Z,Z,function(a){var b=Sb(this);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.F&49152||(this.F=this.F&-2017|(a&7)<<5,this.ga=1);--this.a},function(a){Nc[a&15].call(this,a)},function(a){Oc[a&15].call(this,a)},Z,Z,Z,Z],Nc=[Ac,function(){this.h=0;--this.a},function(){this.b=0;--this.a},X,function(){this.f=1;--this.a},X,X,X,function(){this.i=0;--this.a},X,X,X,X,X,X,X],Oc=[Ac,function(){this.h=65536;--this.a},function(){this.b=32768;--this.a},Y,function(){this.f=0;--this.a},Y,Y,Y,function(){this.i=
|
||||
32768;--this.a},Y,Y,Y,Y,Y,Y,Y],Mc=[function(){this.F&49152?(this.m|=128,J(this,4)):(this.Ab=3,this.J-=this.a,this.a=0);--this.a},function(){--this.a},function(){Rb(this);this.s|=this.F&16;--this.a},function(){--this.a},function(){--this.a},function(){this.F&49152||(Nb(this),this.w.reset());--this.a},function(){Rb(this);--this.a},function(){--this.a},Z,Z,Z,Z,Z,Z,Z,Z],Fc=[zc,zc,xc,xc,vc,vc,wc,wc,Cc,Cc,Z,Z,Z,Z,Bc,Bc],Gc=[function(a){this.ra()||(this.c[7]=W(this,a));--this.a},function(a){this.ra()&&(this.c[7]=
|
||||
W(this,a));--this.a},function(a){!O(this)&&this.f&65535&&(this.c[7]=W(this,a));--this.a},function(a){!O(this)&&this.f&65535||(this.c[7]=W(this,a));--this.a},function(a){this.b&32768||(this.c[7]=W(this,a));--this.a},function(a){this.b&32768&&(this.c[7]=W(this,a));--this.a},function(a){O(this)||(this.c[7]=W(this,a));--this.a},function(a){O(this)&&(this.c[7]=W(this,a));--this.a},function(){J(this,24);--this.a},function(){J(this,28);--this.a},function(a){Pc[a>>6&3].call(this,a)},function(a){Qc[a>>6&3].call(this,
|
||||
a)},function(a){Rc[a>>6&3].call(this,a)},function(a){Sc[a>>6&3].call(this,a)},Z,Z],Ic=[function(a){P(this,Vb(this,a,0));--this.a},function(a){U(this,a,0,gc);--this.a},function(a){U(this,a,1,kc);--this.a},function(a){U(this,a,1,ic);--this.a}],Jc=[function(a){U(this,a,0,mc);--this.a},function(a){U(this,a,O(this)?1:0,Xb);--this.a},function(a){U(this,a,O(this)?1:0,sc);--this.a},function(a){a=S(this,a);P(this,a);--this.a}],Kc=[function(a){U(this,a,0,qc);--this.a},function(a){U(this,a,0,oc);--this.a},function(a){U(this,
|
||||
a,0,ac);--this.a},function(a){U(this,a,0,Zb);--this.a}],Lc=[function(){--this.a},function(){--this.a},function(){--this.a},function(a){Q(this,Vb(this,a,this.ra?65535:0));--this.a}],Pc=[function(a){P(this,Wb(this,a,0));--this.a},function(a){V(this,a,0,hc);--this.a},function(a){V(this,a,1,lc);--this.a},function(a){V(this,a,1,jc);--this.a}],Qc=[function(a){V(this,a,0,nc);--this.a},function(a){V(this,a,O(this)?1:0,Yb);--this.a},function(a){V(this,a,O(this)?1:0,tc);--this.a},function(a){a=T(this,a);P(this,
|
||||
a<<8);--this.a}],Rc=[function(a){V(this,a,0,rc);--this.a},function(a){V(this,a,0,pc);--this.a},function(a){V(this,a,0,bc);--this.a},function(a){V(this,a,0,$b);--this.a}],Sc=[function(){--this.a},function(){--this.a},function(){--this.a},function(){--this.a}];
|
||||
function Tc(a){v.call(this,"ROM",a,Tc);this.b=null;this.l=a.addr;this.f=a.size;this.A=a.writable;this.h=a.alias;this.i=a.file;this.B=ca(this.i);if(this.i){a=this.i;var b=da(this.B);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,e){Uc(c,a,b,e)})}}x(Tc);Tc.prototype.Ka=function(a,b,c,d){this.w=b;this.a=c;this.I=d;Vc(this)};Tc.prototype.va=function(){this.j&&(this.I&&this.I.a(this.id,this.l,this.f,this.j),delete this.j);return!0};
|
||||
Tc.prototype.ua=function(){return!0};
|
||||
function Uc(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Nb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.j=h.symbols;if(!a.b.length){r("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){r(a.b[0]);return}}catch(k){a.L("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Vc(a)}}
|
||||
function Vc(a){if(!Ha(a))if(!a.i)D(a);else if(a.b&&a.w){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.g.error=!0;a.L(b)}else{b=a.l;if(Qa(a.w,b,a.f,a.A?1:sb)){var c;for(c=0;c<a.b.length;c++){var d=a.w,f=b+c;d.b[(f&d.j)>>>d.f].ac(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.w,g=e.f,h=[],k=e.l>>>f.f;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.h;f=e.w;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.h}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Tc(d);B(d,c)}});function Wc(a){v.call(this,"RAM",a,Wc);this.h=a.addr;this.f=a.size;this.b=!1}x(Wc);l=Wc.prototype;l.Ka=function(a,b,c,d){this.w=b;this.a=c;this.I=d;D(this)};l.va=function(a,b){b||this.reset();return!0};l.ua=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Qa(this.w,this.h,this.f,1)&&(this.b=!0);this.b||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Wc(d);B(d,c)}});function Xc(a){v.call(this,"Keyboard",a,Xc);D(this)}x(Xc);Xc.prototype.ba=function(){return!1};Xc.prototype.Ka=function(a,b,c,d){this.l=a;this.a=c;this.I=d;this.Aa=null};
|
||||
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Xc(d);B(d,c)}});
|
||||
function Yc(a,b,c){v.call(this,"Computer",a,Yc);this.g.M=!1;Zc(this,b);this.J=Db(this,"autoPower",a);this.h=0;this.Y=a.busWidth||a.buswidth;this.b=$c;this.B=null;this.l=this.W=!1;this.url=Db(this,"url")||"";(Math.random()+.1).toString(36);this.f=ad(this);if(this.a=Fa("CPU",this.id)){this.I=Fa("Debugger",this.id);this.w=new E({id:this.Nb+".bus",busWidth:this.Y},this.a,this.I);var d,f=z(this.id);if((this.i=Fa("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.L=this.i.L,d.N=this.i.N,d.Cb=
|
||||
this.i.Cb;this.N("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.N("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ka&&d.Ka(this,this.w,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.A=d:this.b=parseInt(d,10));var e;if(a=Db(this,"state")||(e=!0,a.state))b=this.K=a,e||(this.l=!0,this.b=$c),this.b&&(this.G=
|
||||
new N(this,"1.30.0"),bd(this.G)?b=null:delete this.G);!b&&this.b&&(b=cd(this))&&(this.l=!0);if(b){var g=this;q(b,null,!0,function(a,b,c){c?(g.A=null,g.l=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.W=!0);D(g)})}else D(this);this.u.power||(this.J=!0);!c&&this.J&&dd(this,this.cb)}else r("Unable to find CPU component")}x(Yc);var $c=0;
|
||||
function Zc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.X=b}function Db(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.X&&(d=a.X[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function dd(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ha(e)){Ha(e,function(){dd(a,b,c)});return}}b.call(a,c)}
|
||||
function ed(a,b){var c=new N(a,"1.30.0","validate");if(bd(c)&&fd(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Yc.prototype;
|
||||
l.cb=function(a){void 0===a&&(a=this.b||(this.B?1:$c));if(!this.h){this.h++;var b=!1,c=!1;this.R=!1;var d=this.G||new N(this,"1.30.0");if(-1==a)b=!0;else if(a>$c){if(bd(d,this.B)){this.j=new N(this,"1.30.0","failsafe");bd(this.j)&&(gd(this,d),a=2,hd(this.j));this.j.set("timestamp",ja());id(this.j);var f=this.b&&!this.l;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=fd(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?bd(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.N(e+": "+g),hd(d),bd(d)?(c=fd(d),f=!0):c=!1))}f&&ed(this,c?d:null)}else 2==a&&d.clear()}else ed(this);delete this.B;delete this.G}f=z(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=jd(this,g,d,b,c));b=[d,a,c];-1!=a?dd(this,this.Rb,b):this.Rb(b)}};
|
||||
function jd(a,b,c,d,f){if(!b.g.M){b.g.M=!0;if(b.va){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.va(e,d)&&e&&(r("Unable to restore state for "+b.type),a.K&&!a.W?(c.clear(),a.b=$c,window&&window.location.reload()):a.R=!0,b.va(null),f=!1)}if(!d&&b.Mb)for(a=b.Mb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Rb=function(a){var b=a[0],c=0>a[1];a=a[2];this.Z=!0;this.g.M=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(jd(this,this.a,b,c,a),this.a.Za());this.R&&(gd(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function gd(a,b){if(ka("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;q("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function kd(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new N(a,"1.30.0"),g=new N(a,"1.30.0","validate"),h=ja();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ua&&(c&&M(a.a),d=a.a.ua(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.M=!1,!1===d&&(f=null)));for(var h=z(a.id),k=0;k<h.length;k++){var m=h[k];m.g.M&&(m.ua&&(d=m.ua(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&ld(a,a.f,e.toString()),id(g)&&id(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.M=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.w&&this.w.reset&&this.w.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.ba=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.M?kd(d,!1,!0):dd(d,d.cb))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.M&&!d.h)if(d.b&&!d.A){var a=ka("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");kd(d,a,!0);!a&&d.K?window&&window.location.reload():d.cb($c)}else d.reset(),d.a&&d.a.Za()},!0;case "save":if(ea())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=ad(d,!0);if(a){var b=!!(d.b&&!d.A||d.K),c=kd(d,b);b?ld(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function ad(a,b){var c=a.f;c||((c=na("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=md(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
|
||||
function md(a,b){a.f=null;b=q(fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(oa("user",b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function cd(a){var b=null;a.f&&(b=fa()+"/api/v1/user?req=load&user="+a.f+"&state="+nd(a,"1.30.0"));return b}
|
||||
function ld(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=nd(a,"1.30.0");d.data=c;b=q(fa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("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.L(c),oa("user",""),a.f=null)}}
|
||||
l.Na=function(a){this.a&&this.a.Na(a);this.i&&this.i.Na(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=A(e),g=new Yc(g,d,!0);B(g,e);g.J&&dd(g,g.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.Z&&!c.g.M&&c.cb(-1)}});
|
||||
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Fa("Computer",c.id))&&c.g.M&&kd(c,!(!c.b||c.A),!0)}});function N(a,b,c){this.id=a.id;this.key=nd(a,b,c);this.I=a.I;hd(this,a.gc)}function nd(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}
|
||||
N.prototype={constructor:N,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){hd(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,
|
||||
1);c=0}}};function hd(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function id(a){var b=!0;if(ma()){var c=JSON.stringify(a[a.id]);oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function fd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function bd(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ma()&&(b=na(a.key))?(a[a.id]=b,a.a=!0):!1}var od=0;
|
||||
function pd(a,b,c,d,f,e){f("Loading "+a+"...");q(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):qd(h,a,b,c,d,f,e)})}
|
||||
function qd(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ea(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){e=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?rd(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function rd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(e);)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 "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);rd(a,b,c)}})}else c(a,null)}
|
||||
function sd(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ha(a))}function e(a){f("Error: "+a);k&&(--od||va(!0));k=!1}var g,h,k=!0;od++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=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));p.appendChild(y)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?pd(c,null,null,!1,f,function(d,k){k?(Ea(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--od||va(!0)):e("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),--od||va(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?pd(b,a,d,!0,f,m):qd(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(L){e(L.message)}return k}window.embedPDP11=function(a,b,c,d){va(!1);return sd(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue