|
|
|
|
@ -46,46 +46,46 @@ function Ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
|
|
|
|
|
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}function Qa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
|
|
|
function Ra(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Sa={init:[],show:[],exit:[]},Ta=!1,Ua=!1,Va=!0;function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Sa.init.push(a)}
|
|
|
|
|
function Ya(a){if(Va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Za(a){!Va&&a?(Va=!0,Ta&&$a("init"),Ua&&$a("show")):Va=a}function $a(a){Sa[a]&&Ya(Sa[a])}Wa("onload",function(){Ta=!0;Ya(Sa.init)});Wa("onpageshow",function(){Ua=!0;Ya(Sa.show)});Wa(Pa("Opera")||Pa("iOS")?"onunload":"onbeforeunload",function(){Ya(Sa.exit)});
|
|
|
|
|
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pc=b.comment;this.Rc=b;b=this.id.indexOf(".");0>b?this.kb=this.id:(this.Oa=this.id.substr(0,b),this.kb=this.id.substr(b+1));this[a]=c;this.B={ready:!1,Ya:!1,$b:!1,ja:!1,error:!1};this.Rb=null;this.B.error=!1;this.G={};this.i=null;this.na=d||0;v.push(this)}var ab=void 0,bb={};
|
|
|
|
|
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.pc=b.comment;this.Rc=b;b=this.id.indexOf(".");0>b?this.kb=this.id:(this.Pa=this.id.substr(0,b),this.kb=this.id.substr(b+1));this[a]=c;this.B={ready:!1,Za:!1,$b:!1,ja:!1,error:!1};this.Rb=null;this.B.error=!1;this.G={};this.i=null;this.na=d||0;v.push(this)}var ab=void 0,bb={};
|
|
|
|
|
if(window){ab||(ab=window.location.search.substr(1));for(var cb,jb=/\+/g,kb=/([^&=]+)=?([^&]*)/g;cb=kb.exec(ab);)bb[decodeURIComponent(cb[1].replace(jb," "))]=decodeURIComponent(cb[2].replace(jb," "))}function lb(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=u);a.prototype=lb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var mb=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else mb={},v=[];function nb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function ob(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
|
|
|
|
function pb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}function qb(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<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(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,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=B(f))&&g.binding&&a.sa(g.type,g.binding,f,g.value),l=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 e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
|
|
|
|
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},sa:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.Pa=this.G[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),
|
|
|
|
|
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},sa:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.Qa=this.G[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.O=function(a){this.j(a,this.kb)}),!0;default:return!1}},log:function(){},j:function(){},status:function(a){this.j(this.kb+": "+a)},O:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},Fa:function(){return this.B.ja=!0},Ea:function(a,b){b&&(this.B.ja=!1);return!0}};function E(a,b,c,d){a.i&&(!0===c||F(a,c|0))&&a.i.message(b,d)}function F(a,b){if(a.i){a===a.i?b|=0:b=b||a.na;var c=a.i.na&b;return!!b&&c===b||!!(c&a.i.Kc)}return!1}
|
|
|
|
|
function rb(a,b){if(a.B.$b)return a.B.Ya=!1,a.B.$b=!1;if(a.B.error)return a.j(a.toString()+" error"),!1;a.B.Ya=b;return a.B.Ya}function sb(a,b){a.B.Ya&&(b?a.B.$b=!0:void 0===b&&a.j(a.toString()+" busy"));return a.B.Ya}function H(a,b){a.B.error||(a.B.ready=!1!==b,a.B.ready&&(b=a.Rb,a.Rb=null,b&&b()))}function tb(a,b){b&&(a.B.ready?b():a.Rb=b);return a.B.ready}function ub(a){return a.B.error?(a.j(a.toString()+" error"),!0):!1}function vb(a,b){a.B.error=!0;a.O(b)}
|
|
|
|
|
function rb(a,b){if(a.B.$b)return a.B.Za=!1,a.B.$b=!1;if(a.B.error)return a.j(a.toString()+" error"),!1;a.B.Za=b;return a.B.Za}function sb(a,b){a.B.Za&&(b?a.B.$b=!0:void 0===b&&a.j(a.toString()+" busy"));return a.B.Za}function H(a,b){a.B.error||(a.B.ready=!1!==b,a.B.ready&&(b=a.Rb,a.Rb=null,b&&b()))}function tb(a,b){b&&(a.B.ready?b():a.Rb=b);return a.B.ready}function ub(a){return a.B.error?(a.j(a.toString()+" error"),!0):!1}function vb(a,b){a.B.error=!0;a.O(b)}
|
|
|
|
|
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
|
|
|
|
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
|
|
|
|
var wb="undefined"!==typeof ArrayBuffer,xb={cpu:1,trap:16,fault:32,bus:64,memory:128,device:256,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
|
|
|
|
function yb(a){u.call(this,"Panel",a,yb);this.g=this.v=this.Ta=this.D=0;this.H=this.J=!1;this.K=zb;this.C={};this.f={START:[1,!0,!1,this.ad],STEP:[1,!1,!1,this.bd],ENABLE:[1,!1,!1,this.Xc],CONT:[1,!0,!1,this.Vc],DEP:[0,!0,!1,this.Wc],EXAM:[1,!0,!1,this.Yc],LOAD:[1,!0,!1,this.$c],TEST:[0,!0,!1,this.Zc]};for(a=0;22>a;a++)this.f["S"+a]=[0,!1,!1,this.cd,a]}z(yb);var zb=7;k=yb.prototype;k.reset=function(){};
|
|
|
|
|
function yb(a){u.call(this,"Panel",a,yb);this.g=this.v=this.Ua=this.D=0;this.H=this.J=!1;this.K=zb;this.C={};this.f={START:[1,!0,!1,this.ad],STEP:[1,!1,!1,this.bd],ENABLE:[1,!1,!1,this.Xc],CONT:[1,!0,!1,this.Vc],DEP:[0,!0,!1,this.Wc],EXAM:[1,!0,!1,this.Yc],LOAD:[1,!0,!1,this.$c],TEST:[0,!0,!1,this.Zc]};for(a=0;22>a;a++)this.f["S"+a]=[0,!1,!1,this.cd,a]}z(yb);var zb=7;k=yb.prototype;k.reset=function(){};
|
|
|
|
|
k.sa=function(a,b,c,d){if(this.A&&this.A.sa(a,b,c,d)||this.b&&this.b.sa(a,b,c,d)||this.i&&this.i.sa(a,b,c,d))return!0;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":return this.G[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.C[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){var c=
|
|
|
|
|
a.f[b];Ab(a,b,c[0]=1-c[0]);c[2]=!0;c[3]&&c[3].call(a,c[0],c[4]);a.H="DEP"==b;a.J="EXAM"==b}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){var c=a.f[b];c[1]&&c[2]&&(Ab(a,b,c[0]=1-c[0]),c[3]&&c[3].call(a,c[0],c[4]));c[2]=!1}}(this,b),!0):this.parent.sa.call(this,a,b,c,d)}};k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;Bb(b,this,Cb);Db(b,this.reset.bind(this));Eb(this);Fb(this)};k.Fa=function(a,b){b||(Gb(),this.stop());return!0};k.Ea=function(){return!0};
|
|
|
|
|
function Ub(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Eb(a,b){for(var c in a.C)Ub(a,c,null!=b?b:a.C[c])}function Ab(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Fb(a){for(var b in a.f)Ab(a,b,a.f[b][0])}function Vb(a,b,c,d){a.G[b]&&(void 0===c&&(vb(a,"Value for "+b+" is invalid"),a.b.ha()),c=8==(a.i&&a.i.da||8)?ra(c,d):p(c,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))}
|
|
|
|
|
k.ad=function(a){a||this.b.B.Z||(this.w.reset(),Wb(this.b),this.f.ENABLE&&this.f.ENABLE[0]&&this.b.hb())};k.bd=function(){};k.Xc=function(a){a||this.b.ha()};k.Vc=function(a){if(!a&&!this.b.B.Z)if(this.f.ENABLE&&this.f.ENABLE[0])this.b.hb();else{if((a=this.i)&&!sb(a,!0))rb(a,!0),a.ib(0),rb(a,!1);else try{var b=this.b.ib(1);0<b&&(Xb(this.b,b),Yb(this.b,b,!0),Zb(this.b,b))}catch(c){"number"!=typeof c&&vb(this.b,c.stack||c.message)}this.stop();this.A&&this.A.ca()}};
|
|
|
|
|
k.Wc=function(a){a&&!this.b.B.Z&&(this.H&&$b(this,this.g+2),a=ac(this,this.Ta),this.K==zb?this.w.Cb(this.g,a):this.b.Cb(this.g,a))};k.Yc=function(a){a||this.b.B.Z||(this.J&&$b(this,this.g+2),a=this.K==zb?this.w.Za(this.g):this.b.Za(this.g),ac(this,a))};k.$c=function(a){a||this.b.B.Z||$b(this,this.Ta)};k.Zc=function(a){Eb(this,a||null)};k.cd=function(a,b){this.Ta=a?this.Ta|1<<b:this.Ta&~(1<<b)};function $b(a,b){a.g=b&a.w.Sa;bc(a,"A",a.g,22)}
|
|
|
|
|
k.Wc=function(a){a&&!this.b.B.Z&&(this.H&&$b(this,this.g+2),a=ac(this,this.Ua),this.K==zb?this.w.Cb(this.g,a):this.b.Cb(this.g,a))};k.Yc=function(a){a||this.b.B.Z||(this.J&&$b(this,this.g+2),a=this.K==zb?this.w.$a(this.g):this.b.$a(this.g),ac(this,a))};k.$c=function(a){a||this.b.B.Z||$b(this,this.Ua)};k.Zc=function(a){Eb(this,a||null)};k.cd=function(a,b){this.Ua=a?this.Ua|1<<b:this.Ua&~(1<<b)};function $b(a,b){a.g=b&a.w.Oa;bc(a,"A",a.g,22)}
|
|
|
|
|
function ac(a,b){a.v=b&65535;bc(a,"D",a.v,16);return a.v}function cc(a,b,c){a.C[b]=c;Ub(a,b,c)}function bc(a,b,c,d){for(var e=0;e<d;e++)cc(a,b+e,c&1<<e)}function dc(a){return void 0!==a.G.S0}k.stop=function(){$b(this,this.b.u[7])};
|
|
|
|
|
k.ca=function(){if(this.D){for(var a=0;a<this.b.u.length;a++)Vb(this,"R"+a,this.b.u[a]);a=ec(this.b);Vb(this,"PS",a);Vb(this,"NF",a&8?1:0,1);Vb(this,"ZF",a&4?1:0,1);Vb(this,"VF",a&2?1:0,1);Vb(this,"CF",a&1?1:0,1);bc(this,"D",this.v,16);bc(this,"A",this.g,22);a=this.b.ab?this.b.ob&16?1:2:4;cc(this,"B22",a&1);cc(this,"B18",a&2);cc(this,"B16",a&4)}};k.dd=function(a){return(a?this.Ta:this.v)&65535};k.Yd=function(a){this.v=a};var fc={},Cb=(fc[65400]=[null,null,yb.prototype.dd,yb.prototype.Yd,"CNSW"],fc);
|
|
|
|
|
k.ca=function(){if(this.D){for(var a=0;a<this.b.u.length;a++)Vb(this,"R"+a,this.b.u[a]);a=ec(this.b);Vb(this,"PS",a);Vb(this,"NF",a&8?1:0,1);Vb(this,"ZF",a&4?1:0,1);Vb(this,"VF",a&2?1:0,1);Vb(this,"CF",a&1?1:0,1);bc(this,"D",this.v,16);bc(this,"A",this.g,22);a=this.b.Ta?this.b.ob&16?1:2:4;cc(this,"B22",a&1);cc(this,"B18",a&2);cc(this,"B16",a&4)}};k.dd=function(a){return(a?this.Ua:this.v)&65535};k.Yd=function(a){this.v=a};var fc={},Cb=(fc[65400]=[null,null,yb.prototype.dd,yb.prototype.Yd,"CNSW"],fc);
|
|
|
|
|
function Gb(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=pb(e.id);f||(a=!0,f=new yb(e));C(f,d);a&&H(f)}}Xa(Gb);
|
|
|
|
|
function gc(a,b,c){u.call(this,"Bus",a,gc,64);this.b=b;this.i=c;this.L=a.busWidth||16;this.A=0;this.K=[];this.D=null;this.H=Math.pow(2,this.L);this.Sa=this.H-1|0;this.xa=hc;this.la=Math.log2(this.xa);this.J=this.xa>>2;this.w=this.xa-1;this.C=this.H/this.xa|0;this.Xa=[];this.f=0;this.g=!1;this.v=[];this.Hc=[ic,jc,kc,lc];a=new I(this);mc(a,this.i);this.W=Array(this.C);for(b=0;b<this.C;b++)this.W[b]=a;H(this)}z(gc);var hc=8192,nc=hc-1;
|
|
|
|
|
function ic(a,b){var c=-1,d=this.controller,e=d.Xa[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.Xa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&F(this.i,e[5])&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,3);c=255;this.i&&F(this.i,e[5])&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
|
|
|
|
function jc(a,b,c){var d=!1,e=this.controller,f=e.Xa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Xa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&F(this.i,f[5])&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,5),this.i&&F(this.i,f[5])&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
|
|
|
|
function kc(a,b){var c=-1,d=this.controller;(a=d.Xa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&F(this.i,a[5])&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,2);c=65535;this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
|
|
|
|
function lc(a,b,c){var d=!1,e=this.controller;if(a=e.Xa[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&F(this.i,a[5])&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,4),this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
|
|
|
|
function oc(a,b){if(b!=a.A){var c;a.A&&(c=(1<<a.A)-hc,pc(a,c,hc,a.K),a.A=0);b&&(a.A=b,c=(1<<b)-hc,a.K=qc(a,c,hc),a.D?pc(a,c,hc,a.D):(rc(a,c,hc,sc,a),a.D=qc(a,c,hc)))}}k=gc.prototype;k.reset=function(){for(var a=0;a<this.v.length;a++)this.v[a]();oc(this,16)};k.Fa=function(a,b){b||this.reset();return!0};
|
|
|
|
|
function gc(a,b,c){u.call(this,"Bus",a,gc,64);this.b=b;this.i=c;this.L=a.busWidth||16;this.A=0;this.K=[];this.D=null;this.H=1<<this.L;this.Oa=this.H-1;this.xa=hc;this.la=Math.log2(this.xa);this.J=this.xa>>2;this.w=this.xa-1;this.C=this.H/this.xa|0;this.Ya=[];this.f=0;this.g=!1;this.v=[];this.Hc=[ic,jc,kc,lc];a=new I(this);mc(a,this.i);this.W=Array(this.C);for(b=0;b<this.C;b++)this.W[b]=a;H(this)}z(gc);var hc=8192,nc=hc-1;
|
|
|
|
|
function ic(a,b){var c=-1,d=this.controller,e=d.Ya[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.Ya[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.i&&F(this.i,e[5])&&E(this.i,e[4]+".readByte("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,3);c=255;this.i&&F(this.i,e[5])&&E(this.i,"warning: unconverted read access to byte @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
|
|
|
|
function jc(a,b,c){var d=!1,e=this.controller,f=e.Ya[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Ya[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d?this.i&&F(this.i,f[5])&&E(this.i,f[4]+".writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,5),this.i&&F(this.i,f[5])&&E(this.i,"warning: unconverted write access to byte @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
|
|
|
|
function kc(a,b){var c=-1,d=this.controller;(a=d.Ya[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.i&&F(this.i,a[5])&&E(this.i,a[4]+".readWord("+J(this.i,b)+"): "+J(this.i,c),!0,!0),c;d.Ca(b,16,2);c=65535;this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted read access to word @"+J(this.i,b)+": "+J(this.i,c),!0,!0);return c}
|
|
|
|
|
function lc(a,b,c){var d=!1,e=this.controller;if(a=e.Ya[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d?this.i&&F(this.i,a[5])&&E(this.i,a[4]+".writeWord("+J(this.i,c)+","+J(this.i,b)+")",!0,!0):(e.Ca(c,16,4),this.i&&F(this.i,a[5])&&E(this.i,"warning: unconverted write access to word @"+J(this.i,c)+": "+J(this.i,b),!0,!0))}
|
|
|
|
|
function oc(a,b){if(b!=a.A){var c;a.A&&(c=(1<<a.A)-hc,pc(a,c,hc,a.K),a.A=0);b&&(a.A=b,c=1<<b,a.Oa=c-1,c-=hc,a.K=qc(a,c,hc),a.D?pc(a,c,hc,a.D):(rc(a,c,hc,sc,a),a.D=qc(a,c,hc)))}}k=gc.prototype;k.reset=function(){for(var a=0;a<this.v.length;a++)this.v[a]();oc(this,16)};k.Fa=function(a,b){b||this.reset();return!0};
|
|
|
|
|
function rc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.la;0<g&&h<a.W.length;){var l=a.W[h],m=h*a.xa,n=a.xa-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.F)return l.Lb+=l.F-f,l.F=f,!0;if(f>=l.F+l.Lb){n=l.size-(f-m);n>g&&(n=g);l.Lb=f-l.F+n;f=m+a.xa;g-=n;h++;continue}}return tc(1,f,g)}f=new I(a,f,n,a.xa,d,e);mc(f,a.i,l);a.W[h++]=f;f=m+a.xa;g-=n}if(0>=g){c/=1024;var r;e="";r?10<r&&(r=10):r=c&-65536?10:5;if(null==c||isNaN(c))for(;0<r--;)e="?"+e;else for(;0<r--;)e=String.fromCharCode(c%10+48)+e,c/=
|
|
|
|
|
10;a.status(e+"Kb "+uc[d]+" at "+ra(b));return!0}return tc(2,b,c)}function qc(a,b,c){var d=[];for(b>>>=a.la;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.xa;return d}function pc(a,b,c,d){var e=0;for(b>>>=a.la;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.xa}}k.Fb=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Sa)>>>this.la].Vb(a&this.w,a)};k.Tb=function(a){this.g=!1;this.f++;a=this.W[(a&this.Sa)>>>this.la].fc(a&this.w,a);this.f--;return a};
|
|
|
|
|
k.oa=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Sa)>>>this.la].ra(a&this.w,a)};k.Za=function(a){var b=a&this.w,c=(a&this.Sa)>>>this.la;this.g=!1;this.f++;a=this.W[c].gc(b,a);this.f--;return a};k.Wb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Sa)>>>this.la].Yb(a&this.w,b&255,a)};k.pb=function(a,b){this.g=!1;this.f++;this.W[(a&this.Sa)>>>this.la].Zb(a&this.w,b&255,a);this.f--};
|
|
|
|
|
k.gb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Sa)>>>this.la].Mb(a&this.w,b&65535,a)};k.Cb=function(a,b){var c=a&this.w,d=(a&this.Sa)>>>this.la;this.g=!1;this.f++;this.W[d].kc(c,b&65535,a);this.f--};function wc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.W[d];if(e.Qa||e.Nc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}
|
|
|
|
|
function xc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&nc;void 0!==a.Xa[m]?q("I/O address already registered: "+p(b,8,!0)):a.Xa[m]=[d,e,f,g,h||"unknown",l,!1]}}
|
|
|
|
|
10;a.status(e+"Kb "+uc[d]+" at "+ra(b));return!0}return tc(2,b,c)}function qc(a,b,c){var d=[];for(b>>>=a.la;0<c&&b<a.W.length;)d.push(a.W[b++]),c-=a.xa;return d}function pc(a,b,c,d){var e=0;for(b>>>=a.la;0<c&&b<a.W.length;){var f=d[e++];if(!f)break;a.W[b++]=f;c-=a.xa}}k.Fb=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Oa)>>>this.la].Vb(a&this.w,a)};k.Tb=function(a){this.g=!1;this.f++;a=this.W[(a&this.Oa)>>>this.la].fc(a&this.w,a);this.f--;return a};
|
|
|
|
|
k.oa=function(a){3932160<=a&&(a=vc(this.b,a));return this.W[(a&this.Oa)>>>this.la].ra(a&this.w,a)};k.$a=function(a){var b=a&this.w,c=(a&this.Oa)>>>this.la;this.g=!1;this.f++;a=this.W[c].gc(b,a);this.f--;return a};k.Wb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Oa)>>>this.la].Yb(a&this.w,b&255,a)};k.pb=function(a,b){this.g=!1;this.f++;this.W[(a&this.Oa)>>>this.la].Zb(a&this.w,b&255,a);this.f--};
|
|
|
|
|
k.gb=function(a,b){3932160<=a&&(a=vc(this.b,a));this.W[(a&this.Oa)>>>this.la].Mb(a&this.w,b&65535,a)};k.Cb=function(a,b){var c=a&this.w,d=(a&this.Oa)>>>this.la;this.g=!1;this.f++;this.W[d].kc(c,b&65535,a);this.f--};function wc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.W[d];if(e.Ra||e.Nc){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}
|
|
|
|
|
function xc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&nc;void 0!==a.Ya[m]?q("I/O address already registered: "+p(b,8,!0)):a.Ya[m]=[d,e,f,g,h||"unknown",l,!1]}}
|
|
|
|
|
function Bb(a,b,c,d){for(var e in c){var f=+e,g=c[e];if(!(g[6]&&g[6]>a.b.wb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null,r=g[5]||1;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var t=g[4],w=0;w<r;w++,f+=2)t&&1<r&&(t=g[4]+w),xc(a,f,f,h,l,m,n,t,d||64)}}}function Db(a,b){a.v.push(b)}
|
|
|
|
|
k.Ca=function(a,b,c){this.g=!0;this.f||(this.i&&F(this.i,32)&&E(this.i,"memory fault ("+c+") on address "+J(this.i,a),!0,!0),b&&(this.b.ga|=b),this.b.pa(4,a))};function yc(a){var b=a.g;a.g=!1;return b}function tc(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}function K(a){u.call(this,"Device",a,K,256);this.f={fa:0,jc:-1}}z(K);k=K.prototype;
|
|
|
|
|
k.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.jc=zc(c,function(){e.f.$a|=128;e.f.$a&64&&(Jc(e.b,e.f.Wd),Kc(e.b,e.f.jc,1E3/60))});this.f.Wd=Lc(64,6);Bb(b,this,L);Db(b,this.reset.bind(this));H(this)};k.reset=function(){this.f.$a=0};k.md=function(){var a=this.f.$a;this.f.$a&=-129;return a};k.fe=function(a){this.f.$a=a;a&64&&Kc(this.b,this.f.jc,1E3/60);this.f.$a=a&-129};k.od=function(){var a=this.b;return a.C&62337|a.Ha<<5|a.La<<1};
|
|
|
|
|
k.he=function(a){var b=this.b;a&=62337;if(b.C!=a){b.C=a;b.Ha=a>>5&3;b.La=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.ab!=c&&(b.ab=c,Mc(b))}};k.pd=function(){var a=this.b.cb;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.qd=function(){return this.b.Jb};k.rd=function(){return this.b.ob};k.ie=function(a){var b=this.b;1170>b.wb&&(a&=-49);b.ob!=a&&(b.ob=a,b.Qb=a&16?4194303:262143,Mc(b))};k.Rd=function(a){a=a>>1&63;var b=this.b.Kb[a>>1];return a&1?b>>16:b&65535};
|
|
|
|
|
k.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;var e=this;this.f.jc=zc(c,function(){e.f.ab|=128;e.f.ab&64&&(Jc(e.b,e.f.Wd),Kc(e.b,e.f.jc,1E3/60))});this.f.Wd=Lc(64,6);Bb(b,this,L);Db(b,this.reset.bind(this));H(this)};k.reset=function(){this.f.ab=0};k.md=function(){var a=this.f.ab;this.f.ab&=-129;return a};k.fe=function(a){this.f.ab=a;a&64&&Kc(this.b,this.f.jc,1E3/60);this.f.ab=a&-129};k.od=function(){var a=this.b;return a.C&62337|a.Ha<<5|a.La<<1};
|
|
|
|
|
k.he=function(a){var b=this.b;a&=62337;if(b.C!=a){b.C=a;b.Ha=a>>5&3;b.La=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Ta!=c&&(b.Ta=c,Mc(b))}};k.pd=function(){var a=this.b.cb;a&65280&&(a=(a<<8|a>>8)&65535);return a};k.qd=function(){return this.b.Jb};k.rd=function(){return this.b.ob};k.ie=function(a){var b=this.b;1170>b.wb&&(a&=-49);b.ob!=a&&(b.ob=a,b.Qb=a&16?4194303:262143,Mc(b))};k.Rd=function(a){a=a>>1&63;var b=this.b.Kb[a>>1];return a&1?b>>16:b&65535};
|
|
|
|
|
k.Ie=function(a,b){b=b>>1&63;var c=b>>1;this.b.Kb[c]=b&1?this.b.Kb[c]&65535|(a&63)<<16:this.b.Kb[c]&-65536|a&65534};k.Kd=function(a){return this.b.V[1][a>>1&7]};k.Be=function(a,b){this.b.V[1][b>>1&7]=a&65295};k.Id=function(a){return this.b.V[1][(a>>1&7)+8]};k.ze=function(a,b){this.b.V[1][(b>>1&7)+8]=a&65295};k.Jd=function(a){return this.b.wa[1][a>>1&7]};k.Ae=function(a,b){b=b>>1&7;this.b.wa[1][b]=a;this.b.V[1][b]&=65295};k.Hd=function(a){return this.b.wa[1][(a>>1&7)+8]};
|
|
|
|
|
k.ye=function(a,b){b=(b>>1&7)+8;this.b.wa[1][b]=a;this.b.V[1][b]&=65295};k.ld=function(a){return this.b.V[0][a>>1&7]};k.ee=function(a,b){this.b.V[0][b>>1&7]=a&65295};k.jd=function(a){return this.b.V[0][(a>>1&7)+8]};k.ce=function(a,b){this.b.V[0][(b>>1&7)+8]=a&65295};k.kd=function(a){return this.b.wa[0][a>>1&7]};k.de=function(a,b){b=b>>1&7;this.b.wa[0][b]=a;this.b.V[0][b]&=65295};k.hd=function(a){return this.b.wa[0][(a>>1&7)+8]};k.be=function(a,b){b=(b>>1&7)+8;this.b.wa[0][b]=a;this.b.V[0][b]&=65295};
|
|
|
|
|
k.Qd=function(a){return this.b.V[3][a>>1&7]};k.He=function(a,b){this.b.V[3][b>>1&7]=a&65295};k.Od=function(a){return this.b.V[3][(a>>1&7)+8]};k.Fe=function(a,b){this.b.V[3][(b>>1&7)+8]=a&65295};k.Pd=function(a){return this.b.wa[3][a>>1&7]};k.Ge=function(a,b){b=b>>1&7;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Nd=function(a){return this.b.wa[3][(a>>1&7)+8]};k.Ee=function(a,b){b=(b>>1&7)+8;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Ab=function(a){a&=7;return this.b.M&2048?this.b.Ua[a]:this.b.u[a]};
|
|
|
|
|
k.Db=function(a,b){b&=7;this.b.M&2048?this.b.Ua[b]=a:this.b.u[b]=a};k.wd=function(){return this.b.M&49152?this.b.Ga[0]:this.b.u[6]};k.ne=function(a){this.b.M&49152?this.b.Ga[0]=a:this.b.u[6]=a};k.zd=function(){return this.b.u[7]};k.qe=function(a){this.b.u[7]=a};k.Bb=function(a){a&=7;return this.b.M&2048?this.b.u[a]:this.b.Ua[a]};k.Eb=function(a,b){b&=7;this.b.M&2048?this.b.u[b]=a:this.b.Ua[b]=a};k.xd=function(){return 1==(this.b.M&49152)>>14?this.b.u[6]:this.b.Ga[1]};
|
|
|
|
|
k.Qd=function(a){return this.b.V[3][a>>1&7]};k.He=function(a,b){this.b.V[3][b>>1&7]=a&65295};k.Od=function(a){return this.b.V[3][(a>>1&7)+8]};k.Fe=function(a,b){this.b.V[3][(b>>1&7)+8]=a&65295};k.Pd=function(a){return this.b.wa[3][a>>1&7]};k.Ge=function(a,b){b=b>>1&7;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Nd=function(a){return this.b.wa[3][(a>>1&7)+8]};k.Ee=function(a,b){b=(b>>1&7)+8;this.b.wa[3][b]=a;this.b.V[3][b]&=65295};k.Ab=function(a){a&=7;return this.b.M&2048?this.b.Va[a]:this.b.u[a]};
|
|
|
|
|
k.Db=function(a,b){b&=7;this.b.M&2048?this.b.Va[b]=a:this.b.u[b]=a};k.wd=function(){return this.b.M&49152?this.b.Ga[0]:this.b.u[6]};k.ne=function(a){this.b.M&49152?this.b.Ga[0]=a:this.b.u[6]=a};k.zd=function(){return this.b.u[7]};k.qe=function(a){this.b.u[7]=a};k.Bb=function(a){a&=7;return this.b.M&2048?this.b.u[a]:this.b.Va[a]};k.Eb=function(a,b){b&=7;this.b.M&2048?this.b.u[b]=a:this.b.Va[b]=a};k.xd=function(){return 1==(this.b.M&49152)>>14?this.b.u[6]:this.b.Ga[1]};
|
|
|
|
|
k.oe=function(a){1==(this.b.M&49152)>>14?this.b.u[6]=a:this.b.Ga[1]=a};k.yd=function(){return 3==(this.b.M&49152)>>14?this.b.u[6]:this.b.Ga[3]};k.pe=function(a){3==(this.b.M&49152)>>14?this.b.u[6]=a:this.b.Ga[3]=a};k.fd=function(a){return this.b.Ac[a-65504>>1]};k.$d=function(a,b){this.b.Ac[b-65504>>1]=a};k.xc=function(a){return 65520==a?61183:0};k.Ec=function(){};k.Md=function(){return 1};k.De=function(){};k.ed=function(){return this.b.ga};k.Zd=function(){this.b.ga=0};k.nd=function(){return this.b.zc};
|
|
|
|
|
k.ge=function(a,b){b&1||(a&=255);this.b.zc=a};k.sd=function(a){return a?this.b.ic:0};k.je=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.ic=a;b.I|=2};k.Ld=function(a){return a?this.b.eb&65280:0};k.Ce=function(a){this.b.eb=a|255};k.vd=function(){return ec(this.b)};k.me=function(a){Nc(this.b,a&-1809|ec(this.b)&1808);this.b.I|=128};k.Dc=function(a,b){F(this)&&E(this,"writeIgnored("+ra(b)+"): "+ra(a),!0,!0)};
|
|
|
|
|
var M={},L=(M[61568]=[null,null,K.prototype.Rd,K.prototype.Ie,"UNIMAP",64,1170],M[62592]=[null,null,K.prototype.Kd,K.prototype.Be,"SISDR",8,1145],M[62608]=[null,null,K.prototype.Id,K.prototype.ze,"SDSDR",8,1145],M[62624]=[null,null,K.prototype.Jd,K.prototype.Ae,"SISAR",8,1145],M[62640]=[null,null,K.prototype.Hd,K.prototype.ye,"SDSAR",8,1145],M[62656]=[null,null,K.prototype.ld,K.prototype.ee,"KISDR",8,1145],M[62672]=[null,null,K.prototype.jd,K.prototype.ce,"KDSDR",8,1145],M[62688]=[null,null,K.prototype.kd,
|
|
|
|
|
@ -95,39 +95,39 @@ K.prototype.Fe,"UDSDR",8,1145],M[65440]=[null,null,K.prototype.Pd,K.prototype.Ge
|
|
|
|
|
K.prototype.Eb,"R5SET1",1,1145],M[65486]=[null,null,K.prototype.xd,K.prototype.oe,"R6SUPER",1,1145],M[65487]=[null,null,K.prototype.yd,K.prototype.pe,"R6USER",1,1145],M[65504]=[null,null,K.prototype.fd,K.prototype.$d,"CTRL",1,1170],M[65520]=[null,null,K.prototype.xc,K.prototype.Ec,"LSIZE",1,1170],M[65522]=[null,null,K.prototype.xc,K.prototype.Ec,"HSIZE",1,1170],M[65524]=[null,null,K.prototype.Md,K.prototype.De,"SYSID",1,1170],M[65526]=[null,null,K.prototype.ed,K.prototype.Zd,"CPUERR",1,1170],M[65528]=
|
|
|
|
|
[null,null,K.prototype.nd,K.prototype.ge,"MB",1,1170],M[65530]=[null,null,K.prototype.sd,K.prototype.je,"PIR"],M[65532]=[null,null,K.prototype.Ld,K.prototype.Ce,"SL"],M[65534]=[null,null,K.prototype.vd,K.prototype.me,"PSW"],M);L[65506]=L[65504];L[65508]=L[65504];L[65510]=L[65504];L[65512]=L[65504];L[65514]=L[65504];L[65516]=L[65504];L[65518]=L[65504];
|
|
|
|
|
Xa(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=B(d);switch(c.type){case "default":c=new K(c);C(c,d);break;case "pc11":c=new Oc(c);C(c,d);break;case "rl11":c=new N(c),C(c,d)}}});var Pc;if(wb){var Qc=new ArrayBuffer(2);(new DataView(Qc)).setUint16(0,256,!0);Pc=256===(new Uint16Array(Qc))[0]}else Pc=!1;var Rc=Pc;
|
|
|
|
|
function I(a,b,c,d,e,f){this.w=a;this.id=Sc+=2;this.b=null;this.F=b;this.Lb=c;this.size=d||0;this.type=e||Tc;this.f=e==Uc;this.controller=null;mc(this);this.Qa=this.Nc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Vc(this,f.Hc);else if(wb)this.C=new ArrayBuffer(this.size),this.D=new DataView(this.C,0,this.size),this.G=new Uint8Array(this.C,0,this.size),this.J=new Uint16Array(this.C,0,this.size>>1),this.b=new Int32Array(this.C,0,this.size>>2),Vc(this,Rc?Wc:Xc);else{a=this.b=Array(this.size>>
|
|
|
|
|
function I(a,b,c,d,e,f){this.w=a;this.id=Sc+=2;this.b=null;this.F=b;this.Lb=c;this.size=d||0;this.type=e||Tc;this.f=e==Uc;this.controller=null;mc(this);this.Ra=this.Nc=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Vc(this,f.Hc);else if(wb)this.C=new ArrayBuffer(this.size),this.D=new DataView(this.C,0,this.size),this.G=new Uint8Array(this.C,0,this.size),this.J=new Uint16Array(this.C,0,this.size>>1),this.b=new Int32Array(this.C,0,this.size>>2),Vc(this,Rc?Wc:Xc);else{a=this.b=Array(this.size>>
|
|
|
|
|
2);for(f=0;f<a.length;f++)a[f]=0;Vc(this,Yc)}else Vc(this)}var Tc=0,Uc=2,sc=4,uc=["NONE","RAM","ROM","VID","H/W"],Sc=0;
|
|
|
|
|
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Qa=!0}return!1},mb:function(a,b){b?this.A++||Zc(this,$c,!1):this.g++||ad(this,$c,!1)},K:function(a,b){this.i&&F(this.i,128)&&E(this.i,
|
|
|
|
|
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(wb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(wb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ra=!0}return!1},mb:function(a,b){b?this.A++||Zc(this,$c,!1):this.g++||ad(this,$c,!1)},K:function(a,b){this.i&&F(this.i,128)&&E(this.i,
|
|
|
|
|
"attempt to read invalid address "+J(this.i,b),!0);this.w.Ca(b,32,2);return 255},v:function(a,b,c){this.i&&F(this.i,128)&&E(this.i,"attempt to write "+J(this.i,b)+" to invalid addresses "+J(this.i,c),!0);this.w.Ca(c,32,4)},L:function(a,b){return this.Vb(a++,b++)|this.Vb(a,b)<<8},H:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a,b>>8,c)},S:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},da:function(a,b){a&1&&this.w.Ca(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
|
|
|
|
|
1]&255)<<8},va:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Qa=!0},La:function(a,b,c){a&1&&this.w.Ca(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Qa=!0},P:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,1,c.N)&&c.ha(!0)}return this.fc(a,b)},Y:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,2,c.N)&&c.ha(!0)}return this.gc(a,b)},ma:function(a,
|
|
|
|
|
b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,1,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.Zb(a,b,c)},za:function(a,b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,2,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.kc(a,b,c)},N:function(a){return this.G[a]},R:function(a,b){a=this.G[a];this.i&&F(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},Oa:function(a,b){a&1&&this.w.Ca(b,64,2);return this.D.getUint16(a,!0)},$:function(a,b){a&1&&this.w.Ca(b,64,2);
|
|
|
|
|
a=this.J[a>>1];this.i&&F(this.i,128)&&E(this.i,"Memory.readWord("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ka:function(a,b){this.G[a]=b;this.Qa=!0},ta:function(a,b,c){this.G[a]=b;this.Qa=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},kb:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.D.setUint16(a,b,!0);this.Qa=!0},Ha:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.J[a>>1]=b;this.Qa=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,
|
|
|
|
|
1]&255)<<8},va:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ra=!0},La:function(a,b,c){a&1&&this.w.Ca(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ra=!0},P:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,1,c.N)&&c.ha(!0)}return this.fc(a,b)},Y:function(a,b){if(this.i&&null!=this.F){var c=this.i;bd(c,this.F+a,2,c.N)&&c.ha(!0)}return this.gc(a,b)},ma:function(a,
|
|
|
|
|
b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,1,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.Zb(a,b,c)},za:function(a,b,c){if(this.i&&null!=this.F){var d=this.i;bd(d,this.F+a,2,d.D)&&d.ha(!0)}this.f?this.v(a,b,c):this.kc(a,b,c)},N:function(a){return this.G[a]},R:function(a,b){a=this.G[a];this.i&&F(this.i,128)&&E(this.i,"Memory.readByte("+J(this.i,b)+"): "+J(this.i,a),!0);return a},Pa:function(a,b){a&1&&this.w.Ca(b,64,2);return this.D.getUint16(a,!0)},$:function(a,b){a&1&&this.w.Ca(b,64,2);
|
|
|
|
|
a=this.J[a>>1];this.i&&F(this.i,128)&&E(this.i,"Memory.readWord("+J(this.i,b)+"): "+J(this.i,a),!0);return a},ka:function(a,b){this.G[a]=b;this.Ra=!0},ta:function(a,b,c){this.G[a]=b;this.Ra=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeByte("+J(this.i,c)+","+J(this.i,b)+")",!0)},kb:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.D.setUint16(a,b,!0);this.Ra=!0},Ha:function(a,b,c){a&1&&this.w.Ca(c,64,4);this.J[a>>1]=b;this.Ra=!0;this.i&&F(this.i,128)&&E(this.i,"Memory.writeWord("+J(this.i,c)+","+J(this.i,
|
|
|
|
|
b)+")",!0)}};function mc(a,b,c){a.i=b;a.g=a.A=0;c&&((a.g=c.g)&&ad(a,$c,!1),(a.A=c.A)&&Zc(a,$c,!1))}function cd(a,b){b?--a.A||(a.Yb=a.f?a.v:a.Zb,a.Mb=a.f?a.H:a.kc):--a.g||(a.Vb=a.fc,a.ra=a.gc)}function Zc(a,b,c){c&&a.A||(a.Yb=!a.f&&b[1]||a.v,a.Mb=!a.f&&b[3]||a.H);if(c||void 0===c)a.Zb=b[1]||a.v,a.kc=b[3]||a.H}function ad(a,b,c){c&&a.g||(a.Vb=b[0]||a.K,a.ra=b[2]||a.L);if(c||void 0===c)a.fc=b[0]||a.K,a.gc=b[2]||a.L}function Vc(a,b){b||(b=dd);ad(a,b,void 0);Zc(a,b,void 0)}
|
|
|
|
|
var dd=[],Yc=[I.prototype.S,I.prototype.va,I.prototype.da,I.prototype.La],$c=[I.prototype.P,I.prototype.ma,I.prototype.Y,I.prototype.za];if(wb)var Xc=[I.prototype.N,I.prototype.ka,I.prototype.Oa,I.prototype.kb],Wc=[I.prototype.R,I.prototype.ta,I.prototype.$,I.prototype.Ha];
|
|
|
|
|
var dd=[],Yc=[I.prototype.S,I.prototype.va,I.prototype.da,I.prototype.La],$c=[I.prototype.P,I.prototype.ma,I.prototype.Y,I.prototype.za];if(wb)var Xc=[I.prototype.N,I.prototype.ka,I.prototype.Pa,I.prototype.kb],Wc=[I.prototype.R,I.prototype.ta,I.prototype.$,I.prototype.Ha];
|
|
|
|
|
function ed(a,b){u.call(this,"CPU",a,ed,1);var c=a.multiplier||1;this.lb=a.cycles||b;this.bb=c;this.tb=Math.round(this.lb/1E4)/100;this.nb=this.tb*this.bb;this.B.Z=!1;this.B.Xb=!1;this.B.sb=a.autoStart;this.B.vb=!1;this.Gb=this.ma=0;this.Hb=a.csStart;this.xb=a.csInterval;this.yb=a.csStop;this.K=[];this.uc=this.Vd.bind(this);H(this)}z(ed);var fd=["power","reset"];k=ed.prototype;
|
|
|
|
|
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.i=d;for(b=0;b<fd.length;b++)(c=this.G[fd[b]])&&this.A.sa(null,fd[b],c);a=gd(a,"autoStart");null!=a&&(this.B.sb="true"==a?!0:"false"==a?!1:!!a);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
|
|
|
|
k.Fa=function(a,b){if(!b){if(a&&this.restore){hd(this);if(!this.restore(a))return!1;id(this)}else this.reset();this.i?(a=this.i,b=this.B.sb,a.jb=!0,a.j("Type ? for help with PDPjs Debugger commands"),a.ca(),b||a.qb(),a.Wa&&(b=a.Wa,a.Wa=null,jd(a,b))):this.j("No debugger detected")}this.A.ca();return!0};k.Ea=function(a){return a?this.save():!0};k.sb=function(){return this.B.sb||!this.i&&void 0===this.G.run?(this.hb(),!0):!1};k.rc=function(){return 0};
|
|
|
|
|
k.Fa=function(a,b){if(!b){if(a&&this.restore){hd(this);if(!this.restore(a))return!1;id(this)}else this.reset();this.i?(a=this.i,b=this.B.sb,a.jb=!0,a.j("Type ? for help with PDPjs Debugger commands"),a.ca(),b||a.qb(),a.Xa&&(b=a.Xa,a.Xa=null,jd(a,b))):this.j("No debugger detected")}this.A.ca();return!0};k.Ea=function(a){return a?this.save():!0};k.sb=function(){return this.B.sb||!this.i&&void 0===this.G.run?(this.hb(),!0):!1};k.rc=function(){return 0};
|
|
|
|
|
function id(a){void 0===a.Hb&&(a.Hb=0);void 0===a.xb&&(a.xb=-1);void 0===a.yb&&(a.yb=-1);a.B.vb=0<=a.Hb&&0<a.xb;a.B.vb&&(a.Gb=0,a.ma=a.Hb-a.ka)}function Zb(a,b){if(a.B.vb){var c=!1;a.Gb=a.Gb+a.rc()|0;a.ma-=b;0>=a.ma&&(a.ma+=a.xb,c=!0);0<=a.yb&&a.yb<=kd(a)&&(a.xb=a.yb=-1,id(a),a.ha(),c=!0);c&&a.j(kd(a)+" cycles: checksum="+p(a.Gb))}}
|
|
|
|
|
k.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.B.ja)a=!0;else{var b=null,c,h=ob(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.B.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.B.ja);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.B.ready?"powered yet":"ready yet"+(b.Rb?" (waiting for notification)":""))+".");a=!1}a&&(d.B.Z?d.ha():d.hb())},
|
|
|
|
|
!0;case "speed":return this.G[b]=c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){ld(d,d.bb<<1,!0)},c.textContent=this.nb.toFixed(2)+"Mhz",!0}return!1};k.ca=function(){var a=this.G.speed;a&&(a.textContent=this.B.Z&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped")};function Yb(a,b,c){a.ka+=b;c&&(a.da=a.b=a.J=0)}function md(a,b){var c=1;b&&1<a.bb&&a.Y&&(c=a.Y/a.tb);a.Sb=Math.round(1E3/30);a.jb=Math.floor(a.lb/30*c);b||(a.ta=a.jb);a.ub=0}function kd(a){return a.ka+a.S+a.da-a.b}
|
|
|
|
|
function hd(a){a.Y=0;a.Ub=0;a.ka=a.S=a.da=a.b=a.J=0;id(a);ld(a,1)}function ld(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.nb?b=1:d=!0;a.bb=b;b=a.tb*a.bb;if(a.nb!=b){a.nb=b;b=a.nb.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.A&&a.A.qb()}Yb(a,a.S);a.S=0;a.R=Ba();a.$=0;md(a);return d}function zc(a,b){var c=a.K.length;a.K.push([-1,b]);return c}function Kc(a,b,c){0<=b&&b<a.K.length&&0>a.K[b][0]&&(c=a.lb*a.bb/1E3*c|0,a.K[b][0]=c+nd(a))}
|
|
|
|
|
function od(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Xb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function nd(a,b){var c=a.da-=a.b;a.b=a.J=0;b&&(a.da=0);return c}
|
|
|
|
|
k.Vd=function(){if(this.B.Z){this.ub>=this.lb&&md(this,!0);this.za=0;this.Wa=Ba();if(this.$){var a=this.Wa-this.$;a>this.Sb&&(this.R+=a,this.R>this.Wa&&(this.R=this.Wa))}try{do{var b=od(this,this.B.vb?1:this.jb);try{this.ib(b)}catch(e){if("number"!=typeof e)throw e;}b=nd(this,!0);this.za+=b;this.S+=b;Zb(this,b);Xb(this,b);this.ta-=b;if(0>=this.ta){this.ta+=this.jb;15<=++this.Ub&&(this.A&&this.A.ca(),this.Ub=0);break}}while(this.B.Z)}catch(e){this.ha();this.A&&this.A.stop(Ba(),kd(this));vb(this,e.stack||
|
|
|
|
|
e.message);return}if(this.B.Z){a=setTimeout;b=this.uc;this.$=Ba();var c=this.Sb;this.za&&(c=Math.round(c*this.za/this.jb));var c=c-(this.$-this.Wa),d=this.$-this.R;d&&(this.Y=Math.round(this.S/(10*d))/100,864E5<=d&&(this.ka=0,ld(this)));if(0>c||this.Y<this.nb)-1E3>c&&(this.R-=c),c=0;this.ub+=this.za;this.$+=c;a(b,c)}}};
|
|
|
|
|
k.Vd=function(){if(this.B.Z){this.ub>=this.lb&&md(this,!0);this.za=0;this.Xa=Ba();if(this.$){var a=this.Xa-this.$;a>this.Sb&&(this.R+=a,this.R>this.Xa&&(this.R=this.Xa))}try{do{var b=od(this,this.B.vb?1:this.jb);try{this.ib(b)}catch(e){if("number"!=typeof e)throw e;}b=nd(this,!0);this.za+=b;this.S+=b;Zb(this,b);Xb(this,b);this.ta-=b;if(0>=this.ta){this.ta+=this.jb;15<=++this.Ub&&(this.A&&this.A.ca(),this.Ub=0);break}}while(this.B.Z)}catch(e){this.ha();this.A&&this.A.stop(Ba(),kd(this));vb(this,e.stack||
|
|
|
|
|
e.message);return}if(this.B.Z){a=setTimeout;b=this.uc;this.$=Ba();var c=this.Sb;this.za&&(c=Math.round(c*this.za/this.jb));var c=c-(this.$-this.Xa),d=this.$-this.R;d&&(this.Y=Math.round(this.S/(10*d))/100,864E5<=d&&(this.ka=0,ld(this)));if(0>c||this.Y<this.nb)-1E3>c&&(this.R-=c),c=0;this.ub+=this.za;this.$+=c;a(b,c)}}};
|
|
|
|
|
k.hb=function(a){if(ub(this))return!1;if(this.B.Z)return this.j(this.toString()+" busy"),!1;ld(this);this.B.Z=!0;this.B.Xb=!0;var b=this.G.run;b&&(b.textContent="Halt");this.A&&(a&&this.A.qb(!0),this.A.start(this.R,kd(this)));setTimeout(this.uc,0);return!0};k.ib=function(){return 0};k.ha=function(a){var b=!1;if(this.B.Z){nd(this);Yb(this,this.S);this.S=0;this.B.Z=!1;if(b=this.G.run)b.textContent="Run";this.A&&this.A.stop(Ba(),kd(this));b=!0}this.B.complete=a;return b};
|
|
|
|
|
function pd(a){this.wb=+a.model||1170;this.Nb=a.addrReset||0;ed.call(this,a,6666667);this.decode=1120==this.wb?qd.bind(this):rd.bind(this);sd(this);this.L=0;this.N=null;this.B.complete=!1}z(pd,ed);k=pd.prototype;k.reset=function(){this.status("model "+this.wb);this.B.Z&&this.ha();sd(this);hd(this);this.B.error=!1;this.parent.reset.call(this)};
|
|
|
|
|
function sd(a){a.T=65536;a.U=32768;a.aa=65535;a.X=32768;a.M=15;a.u=[0,0,0,0,0,0,0,a.Nb];a.Ua=[0,0,0,0,0,0];a.Ga=[0,0,0,0];a.v=0;a.La=0;a.Qc=[4,2,0,1];a.V=[[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]];a.wa=[[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]];a.Kb=[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];a.Ac=[0,0,0,0,0,0,0,0];a.zc=0;a.I=0;a.D=a.H=0;a.g=a.f=a.rb=0;a.va=-1;Wb(a)}function Wb(a){a.eb=255;a.ga=0;a.ic=0;a.C=0;a.cb=0;a.Jb=0;a.ob=0;a.ab=0;a.Ha=0;a.Qb=262143;a.N=null;a.w&&Mc(a)}function Mc(a){a.ab?(a.P=65536,a.ba=a.Pc,a.ra=a.Sd,a.Mb=a.Je,oc(a.w,a.ob&16?22:18)):(a.P=0,a.ba=a.Oc,a.ra=a.yc,a.Mb=a.Fc,oc(a.w,16))}function td(a,b,c){a.Nb=b;O(a,b);!c&&a.i&&(a.ha()||a.i.ca())}k.rc=function(){return 0};
|
|
|
|
|
function sd(a){a.T=65536;a.U=32768;a.aa=65535;a.X=32768;a.M=15;a.u=[0,0,0,0,0,0,0,a.Nb];a.Va=[0,0,0,0,0,0];a.Ga=[0,0,0,0];a.v=0;a.La=0;a.Qc=[4,2,0,1];a.V=[[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]];a.wa=[[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]];a.Kb=[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];a.Ac=[0,0,0,0,0,0,0,0];a.zc=0;a.I=0;a.D=a.H=0;a.g=a.f=a.rb=0;a.va=-1;Wb(a)}function Wb(a){a.eb=255;a.ga=0;a.ic=0;a.C=0;a.cb=0;a.Jb=0;a.ob=0;a.Ta=0;a.Ha=0;a.Qb=262143;a.N=null;a.w&&Mc(a)}function Mc(a){a.Ta?(a.P=65536,a.ba=a.Pc,a.ra=a.Sd,a.Mb=a.Je,oc(a.w,a.ob&16?22:18)):(a.P=0,a.ba=a.Oc,a.ra=a.yc,a.Mb=a.Fc,oc(a.w,16))}function td(a,b,c){a.Nb=b;O(a,b);!c&&a.i&&(a.ha()||a.i.ca())}k.rc=function(){return 0};
|
|
|
|
|
k.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.ka,this.bb]);a.set(2,wc(this.w));return a.data()};k.restore=function(a){var b=a[1];this.ka=b[1];ld(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],e=a[c+1];if(e&&e.length<b.J){for(var f=0,g=Array(b.J),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.W[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function ud(a){return a.T&65536?1:0}
|
|
|
|
|
function vd(a){return a.U&32768?2:0}function wd(a){return a.aa&65535?0:4}k.Ra=function(){return this.X&32768?8:0};function xd(a){var b=a.u[7];a.C&57344||(a.cb=0,a.Jb=b);a.u[7]=b+2&65535;return a.ra(b)}function yd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function O(a,b){a.u[7]=b&65535}function Lc(a,b){return{Xd:a,zb:b,next:null}}function Jc(a,b){if(b!=a.N){var c=a.N;if(!c||c.zb<=b.zb)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.zb<=b.zb){b.next=d;c.next=b;break}c=d}while(c)}}a.I|=2}
|
|
|
|
|
function ec(a){return a.M=a.M&63728|a.Ra()|wd(a)|vd(a)|ud(a)}function Nc(a,b){a.X=b<<12;a.aa=~b&4;a.U=b<<14;a.T=b<<16;if((b^a.M)&2048)for(var c=a.Ua.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ua[c];a.Ua[c]=d}a.v=b>>14&3;c=a.M>>14&3;a.v!=c&&(a.Ga[c]=a.u[6],a.u[6]=a.Ga[a.v]);a.M=b;a.I|=2}function R(a,b){a.I&128||(a.X=a.aa=b,a.U=0)}function zd(a,b,c){a.I&128||(a.X=a.aa=a.T=b,a.U=c||0)}function Ad(a,b,c,d){a.I&128||(a.X=a.aa=a.T=b,a.U=(c^b)&(d^b))}
|
|
|
|
|
function vd(a){return a.U&32768?2:0}function wd(a){return a.aa&65535?0:4}k.Sa=function(){return this.X&32768?8:0};function xd(a){var b=a.u[7];a.C&57344||(a.cb=0,a.Jb=b);a.u[7]=b+2&65535;return a.ra(b)}function yd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function O(a,b){a.u[7]=b&65535}function Lc(a,b){return{Xd:a,zb:b,next:null}}function Jc(a,b){if(b!=a.N){var c=a.N;if(!c||c.zb<=b.zb)b.next=c,a.N=b;else{do{var d=c.next;if(!d||d.zb<=b.zb){b.next=d;c.next=b;break}c=d}while(c)}}a.I|=2}
|
|
|
|
|
function ec(a){return a.M=a.M&63728|a.Sa()|wd(a)|vd(a)|ud(a)}function Nc(a,b){a.X=b<<12;a.aa=~b&4;a.U=b<<14;a.T=b<<16;if((b^a.M)&2048)for(var c=a.Va.length;0<=--c;){var d=a.u[c];a.u[c]=a.Va[c];a.Va[c]=d}a.v=b>>14&3;c=a.M>>14&3;a.v!=c&&(a.Ga[c]=a.u[6],a.u[6]=a.Ga[a.v]);a.M=b;a.I|=2}function R(a,b){a.I&128||(a.X=a.aa=b,a.U=0)}function zd(a,b,c){a.I&128||(a.X=a.aa=a.T=b,a.U=c||0)}function Ad(a,b,c,d){a.I&128||(a.X=a.aa=a.T=b,a.U=(c^b)&(d^b))}
|
|
|
|
|
function Bd(a,b){a.I&128||(a.X=a.aa=a.T=b,a.U=a.X^a.T>>1)}function Cd(a,b,c,d){a.I&128||(a.X=a.aa=a.T=b,a.U=(c^d)&(d^b))}k.pa=function(a,b){if(!this.L){var c=!1;0>this.va?this.va=ec(this):this.v||(a=4,c=!0);this.C&57344||(this.cb=63222,this.Jb=a);this.v=0;var d=this.ra(a|this.P),e=this.ra(a+2&65535|this.P);Nc(this,e&-12289|this.va>>2&12288);c&&(this.ga|=4,this.u[6]=4);Dd(this,this.va);Dd(this,this.u[7]);O(this,d);this.I&=-113;this.va=-1;this.I|=8;this.Uc=a;this.Sc=b;if(26!=b)throw a;}};
|
|
|
|
|
function Vd(a){var b=Wd(a),c=Wd(a)&-1793;a.M&49152&&(c=c&-225|a.M&63712);O(a,b);Nc(a,c);a.I&=-17}function vc(a,b){var c=b>>13&31;31>c&&a.ob&32&&(b=a.Kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)"));return b}
|
|
|
|
|
function Xd(a,b,c){var d,e,f,g=0;d=b>>13;a.ob&a.Qc[a.v]||(d&=7);e=a.V[a.v][d];f=(a.wa[a.v][d]<<6)+(b&8191)&a.Qb;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.V[a.v][d]=e;if(4194170!==f||a.v)a.Ha=a.v,a.La=d;b=!1;g&&(g&57344&&(0<=a.va&&(g|=128),a.C&57344||(a.C=a.C|g|a.Ha<<5|a.La<<1),b=!0),a.C&61440||!(4191360>
|
|
|
|
|
f||4194239<f)||(a.C|=4096,a.C&512&&(a.I|=32)),b&&a.pa(168,16));return f}function Yd(a,b){return a.w.Fb(b)}function Zd(a,b,c){b&1&&a.b--;a.w.Wb(b,c&255)}function Wd(a){var b=a.ra(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}function Dd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.C&57344||(a.cb=a.cb<<8|246);!a.v&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,18)):(a.ga|=8,a.I|=4));a.Mb(c,b)}
|
|
|
|
|
function Xd(a,b,c){var d,e,f;if(!(c&a.Ta))return b;d=b>>13;a.ob&a.Qc[a.v]||(d&=7);e=a.V[a.v][d];f=(a.wa[a.v][d]<<6)+(b&8191)&a.Qb;var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.V[a.v][d]=e;if(4194170!==f||a.v)a.Ha=a.v,a.La=d;b=!1;g&&(g&57344&&(0<=a.va&&(g|=128),a.C&57344||(a.C=a.C|g|a.Ha<<5|a.La<<1),
|
|
|
|
|
b=!0),a.C&61440||!(4191360>f||4194239<f)||(a.C|=4096,a.C&512&&(a.I|=32)),b&&a.pa(168,16));return f}function Yd(a,b){return a.w.Fb(b)}function Zd(a,b,c){b&1&&a.b--;a.w.Wb(b,c&255)}function Wd(a){var b=a.ra(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}function Dd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.C&57344||(a.cb=a.cb<<8|246);!a.v&&c<=a.eb&&4<c&&(c<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,18)):(a.ga|=8,a.I|=4));a.Mb(c,b)}
|
|
|
|
|
function $d(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.pa(4,20),0;case 1:return 6===c&&!a.v&&d&4&&(a.u[6]<=a.eb||65534<=a.u[6])&&(a.u[6]<=a.eb-32||65534<=a.u[6]?(a.ga|=4,a.u[6]=4,a.pa(4,22)):(a.ga|=8,a.I|=64)),a.b-=3,7===c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.ra(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.ra(e)|
|
|
|
|
|
g;a.b-=8;break;case 6:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535,e=a.ra(e|a.P)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.C&57344||(a.cb=a.cb<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.u[6]<=a.eb||65534<=a.u[6])&&(a.u[6]<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,24)):(a.ga|=8,a.I|=64));return e}k.Tb=function(a){if(!this.ab)return this.w.Tb(a);this.L++;a=Yd(this,Xd(this,a,3));this.L--;return a};
|
|
|
|
|
k.Za=function(a){if(!this.ab)return this.w.Za(a);this.L++;a=this.yc(Xd(this,a,2));this.L--;return a};k.pb=function(a,b){this.ab?(this.L++,Zd(this,Xd(this,a,5),b),this.L--):this.w.pb(a,b)};k.Cb=function(a,b){this.ab?(this.L++,this.Fc(Xd(this,a,4),b),this.L--):this.w.Cb(a,b)};k.Oc=function(a,b,c){return $d(this,a,b,c)};k.Pc=function(a,b,c){return Xd(this,$d(this,a,b,c),c)};k.yc=function(a){return this.w.oa(a)};k.Sd=function(a){return this.w.oa(Xd(this,a,2))};k.Fc=function(a,b){this.w.gb(a,b&65535)};
|
|
|
|
|
g;a.b-=8;break;case 6:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=a.ra(yd(a,2)),e=e+a.u[c]&65535,e=a.ra(e|a.P)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.C&57344||(a.cb=a.cb<<8|f<<3&248|c);6==c&&!a.v&&d&4&&0>=f&&(a.u[6]<=a.eb||65534<=a.u[6])&&(a.u[6]<=a.eb-32?(a.ga|=4,a.u[6]=4,a.pa(4,24)):(a.ga|=8,a.I|=64));return e}k.Tb=function(a){if(!this.Ta)return this.w.Tb(a);this.L++;a=Yd(this,Xd(this,a,3));this.L--;return a};
|
|
|
|
|
k.$a=function(a){if(!this.Ta)return this.w.$a(a);this.L++;a=this.yc(Xd(this,a,2));this.L--;return a};k.pb=function(a,b){this.Ta?(this.L++,Zd(this,Xd(this,a,5),b),this.L--):this.w.pb(a,b)};k.Cb=function(a,b){this.Ta?(this.L++,this.Fc(Xd(this,a,4),b),this.L--):this.w.Cb(a,b)};k.Oc=function(a,b,c){return $d(this,a,b,c)};k.Pc=function(a,b,c){return Xd(this,$d(this,a,b,c),c)};k.yc=function(a){return this.w.oa(a)};k.Sd=function(a){return this.w.oa(Xd(this,a,2))};k.Fc=function(a,b){this.w.gb(a,b&65535)};
|
|
|
|
|
k.Je=function(a,b){this.w.gb(Xd(this,a,4),b)};function ae(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=$d(a,b,d,2),c&65536||61440!==(a.M&61440)&&(d&=65535),a.v=a.M>>12&3,c=a.ra(d|c&a.P),a.v=a.M>>14&3):c=6!=d||(a.M>>2&12288)===(a.M&12288)?a.u[d]:a.Ga[a.M>>12&3];return c}function be(a,b,c,d){a.C&57344||(a.cb=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=$d(a,b,e,4),c&65536||(e&=65535),a.v=a.M>>12&3,e=Xd(a,e|c&65536,4),a.v=a.M>>14&3,a.w.gb(e,d)):6!=e||(a.M>>2&12288)===(a.M&12288)?a.u[e]=d:a.Ga[a.M>>12&3]=d}
|
|
|
|
|
function ce(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?Yd(a,a.ba(b,c,3)):a.u[c]&255}function de(a,b){b>>=6;var c=a.H=b&7;return(b=a.D=(b&56)>>3)?a.w.oa(a.ba(b,c,2)):a.u[c]}function ee(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return $d(a,b,c,8)}function fe(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Yd(a,a.ba(b,c,3)):a.u[c]&255}function ge(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.oa(a.ba(b,c,2)):a.u[c]}
|
|
|
|
|
function S(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.rb=a.ba(b,e,7),Zd(a,e,d.call(a,c,Yd(a,e)))):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function T(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),a.w.gb(e,d.call(a,c,a.w.oa(e)))):a.u[e]=d.call(a,c,a.u[e])}function he(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?Zd(a,a.ba(b,e,5),c):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}
|
|
|
|
|
@ -141,8 +141,8 @@ function Ie(a,b){var c=b-a;Cd(this,c<<8,a<<8,b<<8);return c&255}function Je(a,b)
|
|
|
|
|
function Me(a){var b=ge(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.T=this.U=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.T=c<<17-b,c>>=b;else if(b)if(16<b)this.U=c,c=0;else{this.T=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.U=32768)}this.u[a]=c&65535;this.X=this.aa=c;this.b-=(this.g?6:7)+b}
|
|
|
|
|
function Ne(a){var b=ge(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.T=this.U=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.T=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.T=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.U=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.aa=d>>16|d;this.b-=(this.g?6:7)+b}function Oe(a){U(this,a,!ud(this))}function Pe(a){U(this,a,ud(this))}
|
|
|
|
|
function Qe(a){T(this,a,de(this,a),re);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Re(a){S(this,a,ce(this,a),se);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Se(a){T(this,a,de(this,a),te);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}function Te(a){S(this,a,ce(this,a),ue);this.b-=this.g?9+(this.H&&6<=this.f?1:0):(this.D?5:3)+(7==this.f?2:0)}
|
|
|
|
|
function Ue(a){R(this,de(this,a)&ge(this,a));this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function Ve(a){R(this,(ce(this,a)&fe(this,a))<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function We(a){U(this,a,wd(this))}function Xe(a){U(this,a,!this.Ra()==!vd(this))}function Ye(a){U(this,a,!wd(this)&&!this.Ra()==!vd(this))}function Ze(a){U(this,a,!ud(this)&&!wd(this))}function $e(a){U(this,a,wd(this)||!this.Ra()!=!vd(this))}
|
|
|
|
|
function af(a){U(this,a,ud(this)||wd(this))}function bf(a){U(this,a,!this.Ra()!=!vd(this))}function cf(a){U(this,a,this.Ra())}function df(a){U(this,a,!wd(this))}function ef(a){U(this,a,!this.Ra())}function ff(){this.pa(12,1);this.b-=5}function gf(a){U(this,a,!0)}function hf(a){U(this,a,!vd(this))}function jf(a){U(this,a,vd(this))}function V(a){a&1&&(this.T=0);a&2&&(this.U=0);a&4&&(this.aa=1);a&8&&(this.X=0);this.b-=5}
|
|
|
|
|
function Ue(a){R(this,de(this,a)&ge(this,a));this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function Ve(a){R(this,(ce(this,a)&fe(this,a))<<8);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function We(a){U(this,a,wd(this))}function Xe(a){U(this,a,!this.Sa()==!vd(this))}function Ye(a){U(this,a,!wd(this)&&!this.Sa()==!vd(this))}function Ze(a){U(this,a,!ud(this)&&!wd(this))}function $e(a){U(this,a,wd(this)||!this.Sa()!=!vd(this))}
|
|
|
|
|
function af(a){U(this,a,ud(this)||wd(this))}function bf(a){U(this,a,!this.Sa()!=!vd(this))}function cf(a){U(this,a,this.Sa())}function df(a){U(this,a,!wd(this))}function ef(a){U(this,a,!this.Sa())}function ff(){this.pa(12,1);this.b-=5}function gf(a){U(this,a,!0)}function hf(a){U(this,a,!vd(this))}function jf(a){U(this,a,vd(this))}function V(a){a&1&&(this.T=0);a&2&&(this.U=0);a&4&&(this.aa=1);a&8&&(this.X=0);this.b-=5}
|
|
|
|
|
function kf(a){var b=de(this,a);a=ge(this,a);Cd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}function lf(a){var b=ce(this,a)<<8;a=fe(this,a)<<8;Cd(this,b-a,a,b);this.b-=this.g?4+(this.H&&6<=this.f?1:0):(this.D?4:3)+(7==this.f?2:0)}
|
|
|
|
|
function mf(a){var b=ge(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.T=this.U=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.aa=d>>16|d,this.X=d>>16):(this.U=32768,this.aa=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.aa=this.X=0,this.U=32768,this.T=65536,this.b-=7}function nf(){this.pa(24,2);this.b-=25}
|
|
|
|
|
function of(){this.M&49152?(this.ga|=128,this.pa(4,3)):this.i?pf(this.i):this.ha();this.b-=7}function qf(){this.pa(16,4);this.b-=25}var rf=[0,7,7,10,7,11,9,13];function sf(a){this.J=this.b;O(this,ee(this,a));this.b=this.J-rf[this.g]}var tf=[0,14,14,17,14,18,16,20];function uf(a){this.J=this.b;var b=ee(this,a);a=a>>6&7;Dd(this,this.u[a]);this.u[a]=this.u[7];O(this,b);this.b=this.J-tf[this.g]}var vf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
|
|
|
|
|
@ -157,13 +157,13 @@ cg=[function(a){dg[a&15].call(this,a)},W,W,W,sf,sf,sf,sf,Df,W,Rf,Tf,Gf,Gf,Gf,Gf]
|
|
|
|
|
he(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,we);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,Ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,1,ye);this.b-=this.g?9:3+(7==this.f?2:0)}],Yf=[function(a){S(this,a,0,Ce);this.b-=this.g?11:6},function(a){S(this,a,ud(this)?1:0,me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,ud(this)?1:0,Ie);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=fe(this,a);zd(this,a<<8);this.b-=this.g?4:3+(7==
|
|
|
|
|
this.f?2:0)}],$f=[function(a){S(this,a,0,Ge);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,Ee);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){S(this,a,0,qe);this.b-=this.g?9+(this.rb&1):3+(7==this.f?2:0)},function(a){S(this,a,0,oe);this.b-=this.g?9:3+(7==this.f?2:0)}];function rd(a){eg[a>>12].call(this,a)}
|
|
|
|
|
var eg=[function(a){fg[a>>8&15].call(this,a)},wf,kf,Ue,Qe,Se,Le,function(a){gg[a>>8&15].call(this,a)},function(a){hg[a>>8&15].call(this,a)},xf,lf,Ve,Re,Te,Ff,W],fg=[function(a){ig[a>>4&15].call(this,a)},gf,df,We,Xe,bf,Ye,$e,uf,uf,Lf,Nf,Pf,function(a){jg[a>>6&3].call(this,a)},W,W],jg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.ra(a|this.P);O(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=ae(this,a,0);Dd(this,a);R(this,a);this.b-=11},function(a){var b=Wd(this);this.J=
|
|
|
|
|
this.b;be(this,a,0,b);R(this,b);this.b=this.J-yf[this.g]},function(a){R(this,ie(this,a,this.Ra?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ig=[function(a){kg[a&15].call(this,a)},W,W,W,sf,sf,sf,sf,Df,function(a){a&8?(this.M&49152||(this.M=this.M&-2017|(a&7)<<5,this.I|=1),this.b-=5):W.call(this,a)},Rf,Tf,Gf,Gf,Gf,Gf],kg=[of,If,Cf,ff,qf,Bf,function(){Vd(this);this.b-=13},W,W,W,W,W,W,W,W,W],gg=[zf,zf,mf,mf,Me,Me,Ne,Ne,Jf,Jf,W,W,W,W,Ef,Ef],hg=[ef,cf,Ze,af,hf,jf,Oe,Pe,nf,Hf,Vf,Xf,Zf,function(a){lg[a>>
|
|
|
|
|
this.b;be(this,a,0,b);R(this,b);this.b=this.J-yf[this.g]},function(a){R(this,ie(this,a,this.Sa?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],ig=[function(a){kg[a&15].call(this,a)},W,W,W,sf,sf,sf,sf,Df,function(a){a&8?(this.M&49152||(this.M=this.M&-2017|(a&7)<<5,this.I|=1),this.b-=5):W.call(this,a)},Rf,Tf,Gf,Gf,Gf,Gf],kg=[of,If,Cf,ff,qf,Bf,function(){Vd(this);this.b-=13},W,W,W,W,W,W,W,W,W],gg=[zf,zf,mf,mf,Me,Me,Ne,Ne,Jf,Jf,W,W,W,W,Ef,Ef],hg=[ef,cf,Ze,af,hf,jf,Oe,Pe,nf,Hf,Vf,Xf,Zf,function(a){lg[a>>
|
|
|
|
|
6&3].call(this,a)},W,W],lg=[W,function(a){a=ae(this,a,65536);Dd(this,a);R(this,a);this.b-=11},function(a){var b=Wd(this);this.J=this.b;be(this,a,65536,b);R(this,b);this.b=this.J-yf[this.g]},W];
|
|
|
|
|
function mg(a){u.call(this,"ROM",a,mg);this.ia=this.f=null;this.C=a.addr;this.g=a.size;this.v=a.alias;this.A=a.file;this.D=sa(this.A);if(this.A){a=this.A;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(nb(c.Oa,a,b),(a=Fa(a,b))?(c.f=a.ea,c.ia=a.ia):c.A=null);ng(c)})}}z(mg);mg.prototype.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;ng(this)};
|
|
|
|
|
function mg(a){u.call(this,"ROM",a,mg);this.ia=this.f=null;this.C=a.addr;this.g=a.size;this.v=a.alias;this.A=a.file;this.D=sa(this.A);if(this.A){a=this.A;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(nb(c.Pa,a,b),(a=Fa(a,b))?(c.f=a.ea,c.ia=a.ia):c.A=null);ng(c)})}}z(mg);mg.prototype.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;ng(this)};
|
|
|
|
|
mg.prototype.Fa=function(){this.ia&&(this.i&&og(this.i,this.id,this.C,this.g,this.ia),delete this.ia);return!0};mg.prototype.Ea=function(){return!0};
|
|
|
|
|
function ng(a){if(!tb(a)){if(a.A){if(!a.f||!a.w)return;a.g||(a.g=a.f.length);if(a.f.length!=a.g)vb(a,"ROM size ("+p(a.f.length,8,!0)+") does not match specified size ("+p(a.g,8,!0)+")");else{var b;b=a.C;if(rc(a.w,b,a.g,Uc)){var c;for(c=0;c<a.f.length;c++)a.w.pb(b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.v?b.push(a.v):null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){var d=a,e=b[c],f=qc(d.w,d.C,d.g);pc(d.w,e,d.g,f)}delete a.f}}}H(a)}}
|
|
|
|
|
Xa(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new mg(d);C(d,c)}});
|
|
|
|
|
function pg(a){u.call(this,"RAM",a,pg);this.ia=this.g=null;this.A=a.addr;this.C=a.size;this.Ja=a.load;this.Ia=a.exec;this.v=!1;this.f=a.file;this.D=sa(this.f);if(this.f){a=this.f;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.Oa,a,b),(a=Fa(a,b))?(c.g=a.ea,c.ia=a.ia,null==c.Ja&&(c.Ja=a.Ja),null==c.Ia&&(c.Ia=a.Ia)):c.f=null);qg(c)})}}
|
|
|
|
|
function pg(a){u.call(this,"RAM",a,pg);this.ia=this.g=null;this.A=a.addr;this.C=a.size;this.Ja=a.load;this.Ia=a.exec;this.v=!1;this.f=a.file;this.D=sa(this.f);if(this.f){a=this.f;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.O("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(nb(c.Pa,a,b),(a=Fa(a,b))?(c.g=a.ea,c.ia=a.ia,null==c.Ja&&(c.Ja=a.Ja),null==c.Ia&&(c.Ia=a.Ia)):c.f=null);qg(c)})}}
|
|
|
|
|
z(pg);pg.prototype.Da=function(a,b,c,d){this.w=b;this.b=c;this.i=d;qg(this)};pg.prototype.Fa=function(){this.ia&&(this.i&&og(this.i,this.id,this.A,this.C,this.ia),delete this.ia);return!0};pg.prototype.Ea=function(){return!0};function qg(a){if(a.w&&(!a.v&&a.C&&rc(a.w,a.A,a.C,1)&&(a.v=!0),!tb(a))){if(!a.v)q("No RAM allocated");else if(a.f){if(!a.g||!a.w)return;Kg(a,a.g,a.Ja,a.Ia,a.A)}H(a)}}
|
|
|
|
|
pg.prototype.reset=function(){if(this.v){for(var a=this.w,b=this.A,c=this.C,d=b&a.w,b=b>>>a.la;0<c&&b<a.W.length;){var e=a.W[b],f=c,g,d=d||0;void 0===f&&(f=e.size);if(wb)for(g=d;f--&&g<e.G.length;g++)e.G[g]=0;else for(g=d;f--&&g<e.size;g++)e.Zb(d,0,e.F+d);c-=a.xa;b++;d=0}this.g&&Kg(this,this.g,this.Ja,this.Ia,this.A,!0)}};
|
|
|
|
|
function Kg(a,b,c,d,e,f){var g=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){if(1!=l)break;if(h+6>=b.length)break;for(var h=h+2,m=b[h++]&255|(b[h++]&255)<<8,n=b[h++]&255|(b[h++]&255)<<8,l=l+((m&255)+(m>>8)+(n&255)+(n>>8)),r=h,t=m-=6;0<m&&h<b.length;)l+=b[h++]&255,m--;if(m||h>=b.length)break;l+=b[h++]&255;if(l&255)break;if(t)for(;t--;)a.b.pb(n++,b[r++]&255);else n&1?a.b.ha():td(a.b,n,f);g=!0}else h++;else h+=2}if(!g&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)a.b.pb(c+
|
|
|
|
|
@ -171,7 +171,7 @@ e,b[e]);null!=d&&td(a.b,d,f);g=!0}return g}Xa(function(){for(var a=D(document,"p
|
|
|
|
|
function Y(a){this.N=a.baudReceive||9600;this.R=a.baudTransmit||9600;this.da=a.upperCase;this.v=this.D=null;this.S=a.tabSize;this.P=a.charBOL;this.H=0;u.call(this,"SerialPort",a,Y,8388608);var b=a.binding;if("console"==b)this.D="";else{var c;a=Mg;b&&(void 0===c&&(c="Panel"),(c=qb(c,this.id))&&(b=c.G[b])&&this.sa(null,a,b))}this.J=this.L=null;this.exports={connect:this.vc,receiveData:this.hc}}z(Y);var Mg="buffer";k=Y.prototype;
|
|
|
|
|
k.sa=function(a,b,c){var d=this;switch(b){case Mg:return this.G[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.hc(b);return!0},c.onkeypress=function(a){a=a||window.event;d.hc(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
|
|
|
|
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;var e=this;this.ka=Lc(48,4);this.Y=zc(this.b,function(){e.f&128||!e.C.length||(e.K=e.C.shift()&255,e.da&&97<=e.K&&122>e.K&&(e.K-=32),e.f|=128,e.f&64&&Jc(e.b,e.ka))});this.ma=Lc(52,4);this.$=zc(this.b,function(){e.g|=128;e.g&64&&Jc(e.b,e.ma)});Bb(b,this,Ng);H(this)};
|
|
|
|
|
k.vc=function(){if(!this.J){var a=gd(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ya(b[0]);if(c!=this.kb)return;b=ya(b[1]);if(this.J=pb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.L=d.receiveData){this.status(this.Oa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Fa=function(a,b){if(!b)if(this.vc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
|
|
|
|
k.vc=function(){if(!this.J){var a=gd(this.A,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ya(b[0]);if(c!=this.kb)return;b=ya(b[1]);if(this.J=pb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.L=d.receiveData){this.status(this.Pa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Fa=function(a,b){if(!b)if(this.vc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
|
|
|
|
k.Ea=function(a){return a?this.save():!0};k.reset=function(){Og(this)};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return Og(this)};function Og(a){a.K=0;a.f=0;a.g=128;a.C=[];return!0}k.hc=function(a){if("number"==typeof a)this.C.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.C.push(a.charCodeAt(b));else this.C=this.C.concat(a);Kc(this.b,this.Y,1E3/Math.round(this.N/10));return!0};k.Bd=function(){return this.f&65534};
|
|
|
|
|
k.se=function(a){this.f=this.f&-112|a&111};k.Ad=function(){this.f&=-129;0<this.C.length&&Kc(this.b,this.Y,1E3/Math.round(this.N/10));return this.K};k.re=function(){};k.Ud=function(){return this.g};k.Le=function(a){128==(this.g&192)&&a&64&&Kc(this.b,this.$,1E3/Math.round(this.R/10));this.g=this.g&-70|a&69};k.Td=function(){return 0};
|
|
|
|
|
k.Ke=function(a){if(a&=255){E(this,"transmitByte("+p(a,2,!0)+")");this.L&&this.L.call(this.J,a);if(this.v)if(13==a)this.H=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=za[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.H%a,this.S&&(b=xa("",c)));this.P&&!this.H&&c&&(b=String.fromCharCode(this.P)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.H+=c}else if(null!=this.D){if(10==a||1024<=this.D.length)this.j(this.D),
|
|
|
|
|
@ -182,26 +182,26 @@ function(){var a=d.G.listTapes;a&&Sg(d,a.options[a.selectedIndex].text,a.value,e
|
|
|
|
|
k.Da=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.i=d;this.S=Tg(a);var e=this;if((this.g=gd(this.A,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){q("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.Y=Lc(56,4);this.da=zc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.K<e.J.length&&(e.L=e.J[e.K++]&255,Ug(e,e.K/e.J.length*100),e.f|=128,e.f&=-2049,e.f&64&&Jc(e.b,e.Y))});Bb(b,this,Vg);Wg(this,"None",Qg,!0);this.P&&Wg(this,"Local Tape",
|
|
|
|
|
"?");Wg(this,"Remote Tape","??");Xg(this)||H(this)};k.Fa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ea=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.L=0};function Xg(a){a.D=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.G.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=sa(b,!0)}b&&c?Yg(a,c,b,1,!0):Zg(a)}return!!a.D}
|
|
|
|
|
function Sg(a,b,c,d,e){if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.H="??"}else a.H=c;Yg(a,b,c,d,!1,e)}else $g(a,!1)}
|
|
|
|
|
function Yg(a,b,c,d,e,f){var g=-1;if(a.C.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,$g(a,!0),a.B.Ya?a.O("PC11 busy"):(e&&(a.D++,F(a)&&E(a,"auto-loading tape: "+b)),ah(a,b,c,d,f)?g++:a.B.Ya=!0);g&&bh(a,a.N,a.C,a.v,a.ea,a.Ja,a.Ia)}
|
|
|
|
|
function ah(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),bh(a,b,c,d,e),a.H="?");Zg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=ta(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.A&&!a.A.B.ja;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.Oa,e,f),(e=Fa(e,f))&&bh(a,b,c,d,e.ea,e.Ja,
|
|
|
|
|
e.Ia));a.B.Ya=!1;a.D&&(a.D--,a.D||H(a));Zg(a)})}function Wg(a,b,c,d){if((a=a.G.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Yg(a,b,c,d,e,f){var g=-1;if(a.C.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,$g(a,!0),a.B.Za?a.O("PC11 busy"):(e&&(a.D++,F(a)&&E(a,"auto-loading tape: "+b)),ah(a,b,c,d,f)?g++:a.B.Za=!0);g&&bh(a,a.N,a.C,a.v,a.ea,a.Ja,a.Ia)}
|
|
|
|
|
function ah(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),bh(a,b,c,d,e),a.H="?");Zg(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=ta(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var h=0>g&&a.A&&!a.A.B.ja;g?a.O('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(nb(a.Pa,e,f),(e=Fa(e,f))&&bh(a,b,c,d,e.ea,e.Ja,
|
|
|
|
|
e.Ia));a.B.Za=!1;a.D&&(a.D--,a.D||H(a));Zg(a)})}function Wg(a,b,c,d){if((a=a.G.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Zg(a){var b=a.G.listTapes;if(b&&b.options){a=a.H||a.C;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Ug(a,b){b|=0;if(b!==a.R){var c=a.G.readProgress;c&&(c=(c=D(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.R=b}}
|
|
|
|
|
function bh(a,b,c,d,e,f,g){a.N=b;a.C=c;a.v=d;a.ea=e;a.Ja=f;a.Ia=g;2==d?a.S&&Kg(a.S,e,f,g)?a.status("tape loaded: "+b):(a.N="",a.C="",a.H=Qg,a.v=Rg,a.O("No load address available for tape: "+b)):(a.K=0,a.J=e,a.status("tape attached: "+b),Ug(a,0))}function $g(a,b){if(a.C||!1===b)a.N="",a.C="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.H=Qg,a.v=Rg,Zg(a))}k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};k.ud=function(){return this.f&65534};
|
|
|
|
|
k.le=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Jc(this.b,this.Y)):(this.f&=-129,this.f|=2048,this.L=0,Kc(this.b,this.da,1E3/Math.round(this.$/10))));this.f=this.f&-66|a&65};k.td=function(){this.f&=-129;this.f|=2048;return this.L};k.ke=function(){};var ch={},Vg=(ch[65384]=[null,null,Oc.prototype.ud,Oc.prototype.le,"PRS"],ch[65386]=[null,null,Oc.prototype.td,Oc.prototype.ke,"PRB"],ch);
|
|
|
|
|
function dh(a,b,c){u.call(this,"Disk",{id:a.Oa+".disk"+p(++eh,4)},dh,2097152);this.controller=a;this.A=a.A;this.i=a.i;this.v=b;this.Va=b.name;this.dc=b.dc;fh(this,c,b.ua,b.ya,b.qa,b.Ka);H(this)}var eh=0;z(dh);k=dh.prototype;k.Da=function(a,b,c,d){this.i=d};
|
|
|
|
|
function dh(a,b,c){u.call(this,"Disk",{id:a.Pa+".disk"+p(++eh,4)},dh,2097152);this.controller=a;this.A=a.A;this.i=a.i;this.v=b;this.Wa=b.name;this.dc=b.dc;fh(this,c,b.ua,b.ya,b.qa,b.Ka);H(this)}var eh=0;z(dh);k=dh.prototype;k.Da=function(a,b,c,d){this.i=d};
|
|
|
|
|
function fh(a,b,c,d,e,f){a.mode=b;a.ua=c;a.ya=d;a.qa=e;a.Ka=f;a.b=[];if("preload"!=a.mode){b=Array(a.ua);for(c=0;c<b.length;c++){d=Array(a.ya);for(e=0;e<d.length;e++){f=Array(a.qa);for(var g=1;g<=f.length;g++)f[g-1]=gh(null,c,e,g,a.Ka,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
|
|
|
|
|
function hh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Va=b;a.fb=c;a.Cc=sa(c);a.w=e;a.C=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=la[d];if(e){a.ua=e[0];a.ya=e[1];a.qa=e[2];a.Ka=e[3]||512;c=a.Ka>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ua);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ya),w=0;w<t.length;w++)for(var y=t[w]=Array(a.qa),x=0;x<y.length;x++){for(var A=gh(null,d,w,x+1,a.Ka,0),ja=A.data,Ia=0;Ia<c;Ia++,f+=4)var Q=ja[Ia]=b.getInt32(f,
|
|
|
|
|
!0),e=e+Q&-1;A.Aa=c;y[x]=A}a.f=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Va,a.fb),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ta(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ua(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.dc?"":e)+"&format=json"));return!!Ea(f,
|
|
|
|
|
function hh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Wa=b;a.fb=c;a.Cc=sa(c);a.w=e;a.C=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=la[d];if(e){a.ua=e[0];a.ya=e[1];a.qa=e[2];a.Ka=e[3]||512;c=a.Ka>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.ua);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ya),w=0;w<t.length;w++)for(var y=t[w]=Array(a.qa),x=0;x<y.length;x++){for(var A=gh(null,d,w,x+1,a.Ka,0),ja=A.data,Ia=0;Ia<c;Ia++,f+=4)var Q=ja[Ia]=b.getInt32(f,
|
|
|
|
|
!0),e=e+Q&-1;A.Aa=c;y[x]=A}a.f=e;c=a}else a.O("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Wa,a.fb),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ta(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):ua(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.dc?"":e)+"&format=json"));return!!Ea(f,
|
|
|
|
|
null,!0,function(b,c,d){ih(a,b,c,d)})}
|
|
|
|
|
function ih(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.A&&!a.A.B.ja;if(d)a.controller.O('Unable to load disk "'+a.Va+'" (error '+d+": "+b+")",f);else{nb(a.controller.Oa,b,c);try{if(0<sa(a.Cc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Va]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
|
|
|
|
function ih(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.A&&!a.A.B.ja;if(d)a.controller.O('Unable to load disk "'+a.Wa+'" (error '+d+": "+b+")",f);else{nb(a.controller.Pa,b,c);try{if(0<sa(a.Cc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Wa]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
|
|
|
|
c+")");if(h.length)if(1==h.length)q(h[0]);else{a.ua=h.length;a.ya=h[0].length;a.qa=h[0][0].length;var l=h[0][0][0];a.Ka=l&&l.length||512;for(d=c=0;d<a.ua;d++)for(f=0;f<a.ya;f++)for(g=0;g<a.qa;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var t=l.bytes;if(void 0!==t&&t.length){for(var w=m<<2,y=t.length;y<w;y++)t[y]=n;jh(l,t)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}gh(l,d,f);for(w=
|
|
|
|
|
0;w<r.length;w++)c=c+r[w]&-1}a.b=h;a.f=c;e=a}else q("Empty disk image: "+a.Va)}catch(x){q("Disk image error ("+b+"): "+x.message)}}a.w&&(a.w.call(a.C,a.v,e,a.Va,a.fb),a.w=null)}function gh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Oe=b;a.Pe=c;a.Na=a.Aa=0;a.Qa=!1;return a}
|
|
|
|
|
0;w<r.length;w++)c=c+r[w]&-1}a.b=h;a.f=c;e=a}else q("Empty disk image: "+a.Wa)}catch(x){q("Disk image error ("+b+"): "+x.message)}}a.w&&(a.w.call(a.C,a.v,e,a.Wa,a.fb),a.w=null)}function gh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Oe=b;a.Pe=c;a.Na=a.Aa=0;a.Ra=!1;return a}
|
|
|
|
|
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.Ic&&b<f.ya)for(h=g[b]=Array(f.Jc),g=0;g<h.length;g++)h[g]=gh(null,a,b,g+1,f.wc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.Ic&&9==f.mc&&(d=h[g]=gh(null,a,b,f.mc,f.wc,0))}}e&&e(d,!1);return d};function jh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
|
|
|
|
|
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Aa?f<a.Na?(a.Aa+=a.Na-f,a.Na=f):f>=a.Na+a.Aa&&(a.Aa+=f-(a.Na+a.Aa)+1):(a.Na=f,a.Aa=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
|
|
|
|
|
function kh(a,b){var c=a.ya*a.qa,d=b/c|0;return d<a.ua?(b%=c,a.seek(d,b/a.qa|0,b%a.qa+1)):null}function lh(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
|
|
|
|
|
k.save=function(){var a=0,b=[];b[a++]=[this.fb,this.f,this.ua,this.ya,this.qa,this.Ka];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Aa){for(var h=[],l=0,m=g.Na,n=g.Na+g.Aa;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Na,h]}}return b};
|
|
|
|
|
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?fh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
|
|
|
|
|
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Na=e;for(h.Aa=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Va+": "+c);return b};
|
|
|
|
|
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Na=e;for(h.Aa=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.O("Unable to restore disk '"+this.Wa+": "+c);return b};
|
|
|
|
|
k.toJSON=function(){var a;a=0;for(var b;b=kh(this,a++);)mh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
|
|
|
|
|
function mh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function N(a){u.call(this,"RL11",a,N,2097152);this.v=a.autoMount||null;this.H=0;this.f=Array(4);this.L=!Pa("Mobi")&&window&&"FileReader"in window}z(N);k=N.prototype;
|
|
|
|
|
k.sa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.G[b]=c,c.onchange=function(){var a=d.G.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){q("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.G[b]=c,c.onchange=function(){var a=qa(c.value,10);null!=a&&nh(d,a)},!0;case "loadDrive":return this.G[b]=
|
|
|
|
|
@ -213,9 +213,9 @@ k.Fa=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.qc){for(a
|
|
|
|
|
k.restore=function(a){return ph(this,a[0])};function sh(a,b){b||(a.H=0);if(a.v)for(var c in a.v){var d=a.v[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.G.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=sa(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.f.length)){!uh(a,g,f,e,!0)&&b&&H(a,!1);continue}a.O("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.H}
|
|
|
|
|
function oh(a,b,c,d){var e=a.G.listDrives,e=e&&qa(e.value,10);if(void 0===e||0>e||e>=a.f.length)a.O("Unable to load the selected drive");else if(c)if("?"==c)a.O('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=sa(c);a.status("Attempting to load "+c+' as "'+b+'"')}uh(a,e,b,c,!1,d)}else th(a,e)}
|
|
|
|
|
function uh(a,b,c,d,e,f){var g=-1,h=a.f[b];h.fb.toLowerCase()!=d.toLowerCase()&&(g++,th(a,b,!0),h.cc?a.O("RL11 busy"):(h.cc=!0,e&&(h.bc=!0,a.H++,F(a)&&E(a,"auto-loading disk: "+c)),h.Ob=!!f,hh(new dh(a,h,"preload"),c,d,f,a.Lc)&&g++));return g}
|
|
|
|
|
k.Lc=function(a,b,c,d,e){var f;a.cc=!1;b&&(f=b.b.length?[b.b.length,b.b[0].length,b.b[0][0].length,b.b[0][0][0].length]:[0,0,0,0],b&&f[0]>a.ua||f[1]>a.ya)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.ec)),b=null);b?(a.Ba=b,a.Va=c,a.fb=d,this.O('Mounted disk "'+c+'" in drive '+("RL"+a.ec),a.bc||e),this.A&&this.A.qb()):a.Ob=!1;a.bc&&(a.bc=!1,--this.H||H(this));nh(this,a.ec)};
|
|
|
|
|
k.Lc=function(a,b,c,d,e){var f;a.cc=!1;b&&(f=b.b.length?[b.b.length,b.b[0].length,b.b[0][0].length,b.b[0][0][0].length]:[0,0,0,0],b&&f[0]>a.ua||f[1]>a.ya)&&(this.O('Disk "'+c+'" too large for drive '+("RL"+a.ec)),b=null);b?(a.Ba=b,a.Wa=c,a.fb=d,this.O('Mounted disk "'+c+'" in drive '+("RL"+a.ec),a.bc||e),this.A&&this.A.qb()):a.Ob=!1;a.bc&&(a.bc=!1,--this.H||H(this));nh(this,a.ec)};
|
|
|
|
|
function rh(a,b,c,d){if((a=a.G.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function nh(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.G.listDisks;a=a.G.listDrives;if(d&&a&&d.options&&a.options&&(a=qa(a.value,10),c=c.Ob?"?":c.fb,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function th(a,b,c){var d=a.f[b];if(d.Ba||!1===c)d.Va="",d.fb="",d.Ba=null,d.Ob=!1,c||(a.O("Drive RL"+b+" unloaded",c),nh(a,b))}
|
|
|
|
|
function nh(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.G.listDisks;a=a.G.listDrives;if(d&&a&&d.options&&a.options&&(a=qa(a.value,10),c=c.Ob?"?":c.fb,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function th(a,b,c){var d=a.f[b];if(d.Ba||!1===c)d.Wa="",d.fb="",d.Ba=null,d.Ob=!1,c||(a.O("Drive RL"+b+" unloaded",c),nh(a,b))}
|
|
|
|
|
function ph(a,b){var c=0;b||(b=[]);a.fa=b[c++]||0;a.J=b[c++]||0;a.g=b[c++]||0;a.C=b[c++]||0;a.D=b[c++]||0;a.K=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.ec=b;d.cc=d.Ob=!1;d.name=c.kb;d.ua=512;d.ya=2;d.qa=40;d.Ka=256;d.dc=!0;d.Ne=0;d.Me=0;d.mc=1;d.Jc=d.qa;d.wc=d.Ka;d.Qe=0;d.Se=null;d.Ba||(d.fb="");d.status=29|(512==d.ua?128:0)}return!0}
|
|
|
|
|
k.Mc=function(a,b,c,d,e,f){this.J=f&65535;this.fa=this.fa&-49|f>>12&48;this.K=f>>16&63;this.C=this.g=b<<7|(c?64:0)|d&63;this.D=65536-e&65535;a&&(this.fa=this.fa|a|32768);return!0};
|
|
|
|
|
k.gd=function(a,b,c,d,e,f,g){for(var h=0,l=a.Ba,m=null,n;e--;){if(!m){m=a.Ba.seek(b,c,d+1);if(!m){h=5120;break}n=0}var r,t;if(0>(r=a.Ba.read(m,n++))||0>(t=a.Ba.read(m,n++))){h=5120;break}this.w.gb(f,r|t<<8);if(yc(this.w)){h=8192;break}f+=2;if(n>=l.Ka&&(m=null,++d>=l.qa&&(d=0,++c>=l.ya&&(c=0,++b>=l.ua)))){h=5120;break}}return g(h,b,c,d,e,f)};
|
|
|
|
|
@ -232,7 +232,7 @@ d))}return d}function Bh(a,b){for(var c,d=a.Ha?"(":"{",e=a.Ha?")":"}",f=new RegE
|
|
|
|
|
function Ch(a,b,c,d){var e;null!=b?(e=a.sc(b),0<=e?e=a.tc(e):(e=a.Y[b],null==e&&(e=qa(b,a.da))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
|
|
|
|
function Dh(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==l||isNaN(l))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(l&1?"1":"0")+n,l>>=1;g=n+g;d>>=8}d=p(c,0,!0)+" "+c+". "+ra(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}function Eh(a,b){if(b)return Dh(a,b,a.Y[b]);var c=0;for(b in a.Y)Dh(a,b,a.Y[b]),c++;return 0<c}
|
|
|
|
|
function J(a,b,c,d){switch(a.da){case 8:a=ra(b,Math.round(8/3*c));break;case 10:a=b.toString();break;default:a=p(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
|
|
|
|
|
function Fh(a){wh.call(this,a);this.jb=!1;this.Ha=!0;this.L=Z(0);this.lb=Z(0);this.P=Z(0);this.J=[];this.g=this.N=this.D=[];Gh(this);this.ta=0;Hh(this);this.La={};Ih(this,a.messages);this.Wa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return jd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return jd(b,a)})}z(Fh,wh);
|
|
|
|
|
function Fh(a){wh.call(this,a);this.jb=!1;this.Ha=!0;this.L=Z(0);this.lb=Z(0);this.P=Z(0);this.J=[];this.g=this.N=this.D=[];Gh(this);this.ta=0;Hh(this);this.La={};Ih(this,a.messages);this.Xa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return jd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return jd(b,a)})}z(Fh,wh);
|
|
|
|
|
var Jh={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Kh=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
|
|
|
|
Lh={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
|
|
|
|
|
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106,32768],35072:[107,32768]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,
|
|
|
|
|
@ -242,37 +242,37 @@ k.Da=function(a,b,c,d){this.w=b;this.b=c;this.A=a;this.f=a.f;(a=gd(a,"messages")
|
|
|
|
|
p(e<<d.w.la,8)+" %%"+p(n.F,8)+" "+p(n.Lb,4,!0)+" "+p(n.size,4,!0)+" "+m),c!=Tc&&(c=-1),m=0);a+=d.w.xa;e++}}});H(this)};
|
|
|
|
|
k.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ma=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",jd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.v.length-1&&(b=d.v[++d.C])):40==a.keyCode&&(0<d.C?b=d.v[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,Ra(c,function(){if(d.ma){var a=d.ma.value;
|
|
|
|
|
d.ma.value="";jd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,Ra(c,function(a){var b=!1;sb(d,!0)||(rb(d,!0),b=d.ib(a?1:0),rb(d,!1));return b}),!0}return!1};k.qb=function(a){if(this.ma){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.ma.focus();!a&&window&&window.scrollTo(b,c)}};k.ba=function(a){a=a&&a.F;null==a&&(a=-1);return a};k.Fb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(c=a.Pb?this.w.Tb(d):this.b.Tb(d),b&&Qh(a,b));return c};
|
|
|
|
|
k.oa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.Pb?this.w.Za(d):this.b.Za(d),b&&Qh(a,b));return c};k.Wb=function(a,b,c){var d=this.ba(a,!0,1);-1!==d&&(a.Pb?this.w.pb(d,b):this.b.pb(d,b),c&&Qh(a,c),this.A.ca(!0))};k.gb=function(a,b,c){var d=this.ba(a,!0,2);-1!==d&&(a.Pb?this.w.Cb(d,b):this.b.Cb(d,b),c&&Qh(a,c),this.A.ca(!0))};function Z(a,b){return{F:a,Pb:b,Ma:!1}}function Rh(a){return[a.F,a.Ma]}function Sh(a){return{F:a[0],Ma:a[1]}}
|
|
|
|
|
k.oa=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(c=a.Pb?this.w.$a(d):this.b.$a(d),b&&Qh(a,b));return c};k.Wb=function(a,b,c){var d=this.ba(a,!0,1);-1!==d&&(a.Pb?this.w.pb(d,b):this.b.pb(d,b),c&&Qh(a,c),this.A.ca(!0))};k.gb=function(a,b,c){var d=this.ba(a,!0,2);-1!==d&&(a.Pb?this.w.Cb(d,b):this.b.Cb(d,b),c&&Qh(a,c),this.A.ca(!0))};function Z(a,b){return{F:a,Pb:b,Ma:!1}}function Rh(a){return[a.F,a.Ma]}function Sh(a){return{F:a[0],Ma:a[1]}}
|
|
|
|
|
function Ph(a,b,c){var d,e=(c?a.L:a.lb).F;c=!1;if(void 0!==b){b=Bh(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.J.length;e++){var g=a.J[e].ia[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Z(d));break}}if(d=f)return d;e=Ah(a,b,void 0)}null!=e&&(d=Z(e,c));return d}function Th(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Gc=yh(a,b.Bc=c[2]))}function Qh(a,b){null!=a.F&&(a.F+=b||1)}
|
|
|
|
|
function Ih(a,b){a.i=a;a.na=a.Kc=536870912;a.ka=null;a.va=[];b=yh(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in xb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.na|=xb[c],a.j(c+" messages enabled"))}}function Oh(a,b){for(var c in xb)if(64==xb[c]){a.La[c]=b;break}}
|
|
|
|
|
k.sc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;case "SW":b=21;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Uh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.tc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ua[a-8]:20>a?b=this.b.Ga[a-16]:20==a?b=ec(this.b):21==a&&this.f&&dc(this.f)&&(b=this.f.Ta));return b};
|
|
|
|
|
k.sc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;case "SW":b=21;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Uh(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.tc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Va[a-8]:20>a?b=this.b.Ga[a-16]:20==a?b=ec(this.b):21==a&&this.f&&dc(this.f)&&(b=this.f.Ua));return b};
|
|
|
|
|
k.message=function(a,b){b&&(a+=" @"+J(this,Z(this.b.Jb).F));this.na&1073741824?this.va.push(a):this.ka&&a==this.ka||(this.ka=a,this.na&-2147483648&&this.b&&this.b.B.Z&&(this.ha(),a+=" (cpu halted)"),this.j(a),this.b&&(a=this.b,nd(a),a.ta=0,a.A&&a.A.ca()))};function Hh(a){var b;if(!je(a))a.H&&a.H.length&&a.j("instruction history buffer freed"),a.$=0,a.H=[];else if(!a.H||!a.H.length){a.H=Array(1E3);for(b=0;b<a.H.length;b++)a.H[b]=Z();a.$=0;a.j("instruction history buffer allocated")}}
|
|
|
|
|
k.hb=function(a,b){if(!Vh(this,b))return!1;this.b.hb(a);return!0};k.ib=function(a,b,c){if(!Vh(this))return!1;this.K=0;a||je(this)&&ke(this,this.b.u[7],0);try{a=od(this.b,a);var d=this.b.ib(a);0<d&&(Xb(this.b,d),this.K+=d,Yb(this.b,d,!0),Zb(this.b,d),this.za++)}catch(e){"number"!=typeof e&&(this.K=0,vb(this.b,e.stack||e.message))}!1!==c&&(this.f&&this.f.stop&&this.f.stop(),this.A.ca());this.ca(b||!1);return 0<this.K};k.ha=function(a){this.b&&this.b.ha(a)};
|
|
|
|
|
k.ca=function(a){if(this.jb){void 0===a&&(a=!0);var b;b=this.b;if(b=b.I&8?b.Uc|b.Sc<<8:0){var c=b>>8;this.j("trapped to "+J(this,b&255,1)+(c?" ("+J(this,c)+")":""))}this.L=Z(this.b.u[7]);a&&1!=this.S?Wh(this):Xh(this)}};function Vh(a,b){var c;(c=!a.b||!tb(a.b))||(c=a.b,c.B.ja?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.B.Z?(b||a.j("cpu busy or unavailable, command ignored"),!1):!ub(a.b)}k.Fa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
|
|
|
|
|
k.Ea=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){Hh(this);this.za=0;this.ka=null;this.K=0;this.L=Z(this.b.u[7]);this.B.Z=!1;Yh(this);a||this.ca()};k.save=function(){var a=new P(this);a.set(0,Rh(this.L));a.set(1,Rh(this.P));a.set(2,[this.v,this.R,this.na]);a.set(3,this.J);return a.data()};
|
|
|
|
|
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Sh(a[b++]),this.P=Sh(a[b++]),this.v=a[b][0],"string"==typeof this.v&&(this.v=[this.v]),this.R=a[b][1],this.na|=a[b][2]);a[3]&&(this.J=a[3]);return!0};k.start=function(a,b){this.S||this.j("running");this.B.Z=!0;this.Qb=a;this.Sb=b};
|
|
|
|
|
k.stop=function(a,b){if(this.B.Z){this.B.Z=!1;this.K=b-this.Sb;if(!this.S){b="stopped";if(this.K){a-=this.Qb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";je(this)&&(b+=this.za+" instructions, ",this.za=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else F(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}this.ca(!0);this.qb();Yh(this,this.b.u[7]);this.ka=null}};function je(a){return 1<a.g.length||!!a.ta}
|
|
|
|
|
function ke(a,b,c){var d=-1;c||(d=a.b.Za(b),0==d&&(b=yd(a.b,2)));if(0<c&&(a.ta&&!--a.ta||bd(a,b,1,a.g)))return!0;0<=c&&a.H.length&&(a.za++,0>d&&(d=a.b.Za(b)),65535!=(d&65535)&&(c=a.H[a.$],c.F=b,c.Ma=!1,++a.$==a.H.length&&(a.$=0)));return!1}function pf(a){var b=a.b;if(b.B.Z)throw O(b,a.b.Jb),a.ha(),-1;return!1}
|
|
|
|
|
function ke(a,b,c){var d=-1;c||(d=a.b.$a(b),0==d&&(b=yd(a.b,2)));if(0<c&&(a.ta&&!--a.ta||bd(a,b,1,a.g)))return!0;0<=c&&a.H.length&&(a.za++,0>d&&(d=a.b.$a(b)),65535!=(d&65535)&&(c=a.H[a.$],c.F=b,c.Ma=!1,++a.$==a.H.length&&(a.$=0)));return!1}function pf(a){var b=a.b;if(b.B.Z)throw O(b,a.b.Jb),a.ha(),-1;return!1}
|
|
|
|
|
function Gh(a){var b,c;a.g=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];var d=a.w;c=a.ba(c);cd(d.W[c>>>d.la],!1)}a.N=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.w,c=a.ba(c),cd(d.W[c>>>d.la],!0);a.D=["bw"];a.rb=0}k.mb=function(a,b,c){var d=!0;c||Zh(this,a,b,!1,!0);if(a!=this.g){var e=this.ba(b);if(-1===e)this.j("invalid address: "+J(this,b.F)),d=!1;else{var f=this.w;f.W[e>>>f.la].mb(e&f.w,a==this.D)}}d&&(a.push(b),c?b.Ma=!0:($h(this,a,a.length-1,"set"),Hh(this)));return d};
|
|
|
|
|
function Zh(a,b,c,d,e){var f=!1;c=a.ba(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.ba(h)&&(!d||h.Ma)){f=!0;h.Ma||e||$h(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(d=a.w,cd(d.W[c>>>d.la],b==a.D));h.Ma||Hh(a);break}}return f}function ai(a,b){for(var c=1;c<b.length;c++)$h(a,b,c);return b.length-1}function $h(a,b,c,d){c=b[c];a.j(b[0]+" "+J(a,c.F)+(d?" "+d:c.Bc?' "'+c.Bc+'"':""))}
|
|
|
|
|
function Yh(a,b){if(void 0!==b)bd(a,b,1,a.g,!0),a.S=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Ma){if(!Zh(a,a.g,c,!0))break;b=0}}}
|
|
|
|
|
function bd(a,b,c,d,e){var f=!1;if(!a.rb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ma)for(var l=a.ba(h),m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Ma&&(Zh(a,d,h,!0),e=!0);if(n=h.Gc){for(var f=!1,r=0;r<n.length;r++)if(!bi(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var t=r+1;t<n.length&&n[t].indexOf("else");t++)r++;if(t==n.length){f=!0;break}}a.b.B.Z||(f=!0)}if(f){e||$h(a,d,g,"hit");break}}}a.rb--;return f}
|
|
|
|
|
function ci(a,b,c,d){var e=Z(b.F),f=a.oa(b,2),g,h;for(h in a.ub)if(g=a.ub[h][f&h])break;g||(g=Mh);var l=g[0];0<=a.Nb.indexOf(l)&&(g=Mh,l=g[0]);var m=h="",n=Kh[l],r=g.length-1;l||r||(h=J(a,f));for(l=1;l<=r;l++){var t=g[l];if(void 0!==t){var w;w=a;var y=t,t=b,x="",A=y&61440;if(4096==A)t=t.F+((f&255)<<24>>23)&65535,x=J(w,t);else if(8192==A)t=t.F-((f&63)<<1)&65535,x=J(w,t);else if(12288==A)x=J(w,f&7,1);else if(24576==A)x=J(w,f&63,1);else if(32768==A)x=J(w,f&255,1);else if(A=f&y,y&4032&&(A>>=6,y>>=6),
|
|
|
|
|
y&63)switch(y=A&7,A&56){case 0:x=Uh(y);break;case 8:x="@"+Uh(y);break;case 16:7>y?x="("+Uh(y)+")+":(A=w.oa(t,2),x="#"+J(w,A,0,!0));break;case 24:7>y?x="@("+Uh(y)+")+":(A=w.oa(t,2),x="@#"+J(w,A,0,!0));break;case 32:x="-("+Uh(y)+")";break;case 40:x="@-("+Uh(y)+")";break;case 48:A=w.oa(t,2);x=J(w,A,0,!0)+"("+Uh(y)+")";7==y&&(x=J(w,A+t.F&65535));break;case 56:A=w.oa(t,2),x="@"+J(w,A)+"("+Uh(y)+")",7==y&&(x="@"+J(w,A+t.F&65535))}w=x;if(!w||!w.length){h="INVALID";break}"string"!=typeof w&&(m=w[1],w=w[0]);
|
|
|
|
|
0<h.length&&(h+=",");h+=w||"???"}}f="";g=J(a,e.F)+":";if(-1!==e.F&&-1!==b.F){do if(f+=" "+J(a,a.oa(e,2)),null==e.F)break;while(e.F!=b.F)}g+=xa(f,24);g+=xa(n,5);h&&(g+=" "+h);if(c||m)g=xa(g,60)+";"+(c||""),g=a.b.B.vb?g+("cycles="+kd(a.b).toString()+" cs="+p(a.b.Gb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function di(a,b){switch(b){case "N":a=a.b.Ra();break;case "Z":a=wd(a.b);break;case "V":a=vd(a.b);break;case "C":a=ud(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
|
|
|
|
function ei(a,b){var c="",d=a.b;8>b?(c=Uh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ua[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.Ga[b-16]):20==b?c="PS="+J(a,ec(d)):21==b&&a.f&&dc(a.f)&&(c="SW="+J(a,a.f.Ta,3));c&&(c+=" ");return c}function fi(a){var b,c="";for(b=0;6>b;b++)c+=ei(a,b);c=c+"\n"+(ei(a,6)+ei(a,7));c+=ei(a,20)+ei(a,21);return c+=di(a,"T")+di(a,"N")+di(a,"Z")+di(a,"V")+di(a,"C")}k.nc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
0<h.length&&(h+=",");h+=w||"???"}}f="";g=J(a,e.F)+":";if(-1!==e.F&&-1!==b.F){do if(f+=" "+J(a,a.oa(e,2)),null==e.F)break;while(e.F!=b.F)}g+=xa(f,24);g+=xa(n,5);h&&(g+=" "+h);if(c||m)g=xa(g,60)+";"+(c||""),g=a.b.B.vb?g+("cycles="+kd(a.b).toString()+" cs="+p(a.b.Gb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function di(a,b){switch(b){case "N":a=a.b.Sa();break;case "Z":a=wd(a.b);break;case "V":a=vd(a.b);break;case "C":a=ud(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
|
|
|
|
function ei(a,b){var c="",d=a.b;8>b?(c=Uh(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Va[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.Ga[b-16]):20==b?c="PS="+J(a,ec(d)):21==b&&a.f&&dc(a.f)&&(c="SW="+J(a,a.f.Ua,3));c&&(c+=" ");return c}function fi(a){var b,c="";for(b=0;6>b;b++)c+=ei(a,b);c=c+"\n"+(ei(a,6)+ei(a,7));c+=ei(a,20)+ei(a,21);return c+=di(a,"T")+di(a,"N")+di(a,"Z")+di(a,"V")+di(a,"C")}k.nc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
function og(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Aa(n,l,a.nc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.J.push({Re:b,F:c,Tc:d,ia:e,lc:f})}function gi(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],g=f.F>>>0,h=f.Tc;if(e>=g&&e<g+h){e=Aa(f.lc,[e-g],a.nc);0<=e?hi(a,b,e,d):c&&(e=~e,hi(a,b,e-1,d),hi(a,b,e,d));break}}return d}
|
|
|
|
|
function hi(a,b,c,d){var e={},f=a.J[b].lc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.J[b].ia[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function ii(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Eh(a)||a.j("no variables"),!0;if(!c[2])return Eh(a,c[1]);if(!c[3])return delete a.Y[c[1]],!0;b=Ah(a,c[3]);return void 0!==b?(a.Y[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
|
|
|
|
function ji(a,b,c){var d=null;if(b=Ph(a,b,!0)){a.ba(b);var e=gi(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.F-e[1])&&(g=" + "+p(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.F)&&(g=" - "+p(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
|
|
|
|
function Wh(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}f=Ah(a,b);if(void 0===f)return;b=e.toUpperCase();switch(b){case "SP":case "R6":d.u[6]=f&65535;break;case "PC":case "R7":O(d,f);a.L=Z(d.u[7]);break;case "N":d.X=f?32768:0;break;case "Z":d.aa=
|
|
|
|
|
f?0:1;break;case "V":d.U=f?32768:0;break;case "C":d.T=f?65536:0;break;case "SW":if(a.f&&dc(a.f)){e=a.f;if(dc(e)){e.Ta=f;for(b=0;22>b;b++)e.f["S"+b][0]=f&1<<b?1:0;Fb(e)}break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.A.ca();a.j("updated registers:")}a.j(fi(a));c&&(a.L=Z(d.u[7]),Xh(a,J(a,a.L.F)))}}function ki(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Dh(a,null,c[2].charCodeAt(0)):Ah(a,b,!0)}
|
|
|
|
|
f?0:1;break;case "V":d.U=f?32768:0;break;case "C":d.T=f?65536:0;break;case "SW":if(a.f&&dc(a.f)){e=a.f;if(dc(e)){e.Ua=f;for(b=0;22>b;b++)e.f["S"+b][0]=f&1<<b?1:0;Fb(e)}break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.j("unknown register: "+e);return}a.A.ca();a.j("updated registers:")}a.j(fi(a));c&&(a.L=Z(d.u[7]),Xh(a,J(a,a.L.F)))}}function ki(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Dh(a,null,c[2].charCodeAt(0)):Ah(a,b,!0)}
|
|
|
|
|
function li(a,b,c){var d="t"!=b;c=Ch(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Qa(c,function(){return rb(a,!0)&&a.ib(e,d,!1)},function(){a.f&&a.f.stop&&a.f.stop();a.A.ca();rb(a,!1)})}
|
|
|
|
|
function Xh(a,b,c,d){if(b=Ph(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ch(a,c.substr(1)),null!=c&&(d=c);else{d=Ph(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.j("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=sb(a,!1)||a.S?a.K:null;var g=null!=f?"cycles":null,h=gi(a,b),l=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);f=ci(a,b,g,f);a.j(f);a.L=b;e-=b.F-l;c++}}}
|
|
|
|
|
function bi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(">> "+b):(a.R&&(a.j("ended assemble at "+J(a,a.P.F)),a.L=a.P,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(tb(a)&&0<b.length){a.R&&(b="a "+J(a,a.P.F)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
|
|
|
|
|
Ph(a,g[1],!0);if(r)if(a.P=r,void 0===g[2])a.j("begin assemble at "+J(a,r.F)),a.R=!0,a.A.ca();else{var t;a.j("not supported yet");t=[];if(t.length){for(var w=0;w<t.length;w++)a.Wb(r,t[w],1);a.j(ci(a,a.P))}}break;case "b":a:{var y=g[0],x=g[1],A=b;if("?"==x)a.j("breakpoint commands:"),a.j("\tbp [a]\tset exec breakpoint at addr [a]"),a.j("\tbr [a]\tset read breakpoint at addr [a]"),a.j("\tbw [a]\tset write breakpoint at addr [a]"),a.j("\tbc [a]\tclear breakpoint at addr [a]"),a.j("\tbl\tlist all breakpoints"),
|
|
|
|
|
a.j("\tbn [n]\tbreak after [n] instruction(s)");else{var ja=y.charAt(1);if("l"==ja){var Ia;Ia=0+ai(a,a.g);Ia+=ai(a,a.N);(Ia+=ai(a,a.D))||a.j("no breakpoints")}else if("n"==ja)a.ta=Ch(a,x),a.j("break after "+a.ta+" instruction(s)");else if(void 0===x)a.j("missing breakpoint address");else{var Q=Z();if("*"!=x&&(Q=Ph(a,x,!0),!Q))break a;"c"==ja?null==Q.F?(Gh(a),a.j("all breakpoints cleared")):Zh(a,a.g,Q)||Zh(a,a.N,Q)||Zh(a,a.D,Q)||a.j("breakpoint missing: "+J(a,Q.F)):null!=Q.F&&(Th(a,Q,A),"p"==ja?a.mb(a.g,
|
|
|
|
|
Q):"r"==ja?a.mb(a.N,Q):"w"==ja?a.mb(a.D,Q):a.j("unknown breakpoint command: "+ja))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var db,eb=g[0],ma=g[1],Ka=g[2],Ei=g[3];if("?"==ma){var fb="";for(db in xb)a.La[db]&&(fb&&(fb+=","),fb+=db);fb+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
|
|
|
|
|
fb.length&&a.j("dump extension commands:\n\t"+fb)}else if("state"==ma){var rg=mi(a.A,!0);"console"==Ka?console.log(rg):(a.Pa&&(a.Pa.value=""),a.j(rg))}else if("symbols"==ma)for(var Ed=0;Ed<a.J.length;Ed++){var Fd=a.J[Ed],gb;for(gb in Fd.ia)if("."!=gb.charAt(0)){var sg=Fd.ia[gb].o;if(void 0!==sg){var tg=Fd.ia[gb].l;tg&&(gb=tg);a.j(J(a,sg)+" "+gb)}}}else{if("d"==eb){for(db in xb)if(g[1]==db){var ug=a.La[db];ug?(g.shift(),g.shift(),ug(g)):a.j("no dump registered for "+ma);break a}ma||(eb=a.Ub||"db")}else a.Ub=
|
|
|
|
|
Q):"r"==ja?a.mb(a.N,Q):"w"==ja?a.mb(a.D,Q):a.j("unknown breakpoint command: "+ja))}}}break;case "c":a.Qa&&(a.Qa.value="");break;case "d":a:{var db,eb=g[0],ma=g[1],Ka=g[2],Ei=g[3];if("?"==ma){var fb="";for(db in xb)a.La[db]&&(fb&&(fb+=","),fb+=db);fb+=",state,symbols";a.j("dump memory commands:");a.j("\tdb [a] [#] dump # bytes at address a");a.j("\tdw [a] [#] dump # words at address a");a.j("\tdd [a] [#] dump # dwords at address a");a.j("\tdh [#] [#] dump # instructions from history");
|
|
|
|
|
fb.length&&a.j("dump extension commands:\n\t"+fb)}else if("state"==ma){var rg=mi(a.A,!0);"console"==Ka?console.log(rg):(a.Qa&&(a.Qa.value=""),a.j(rg))}else if("symbols"==ma)for(var Ed=0;Ed<a.J.length;Ed++){var Fd=a.J[Ed],gb;for(gb in Fd.ia)if("."!=gb.charAt(0)){var sg=Fd.ia[gb].o;if(void 0!==sg){var tg=Fd.ia[gb].l;tg&&(gb=tg);a.j(J(a,sg)+" "+gb)}}}else{if("d"==eb){for(db in xb)if(g[1]==db){var ug=a.La[db];ug?(g.shift(),g.shift(),ug(g)):a.j("no dump registered for "+ma);break a}ma||(eb=a.Ub||"db")}else a.Ub=
|
|
|
|
|
eb;if("dh"==eb){var vg=ma,wg=Ka,xg="",yg=0,fa=a.$,na=a.H;if(na.length){var aa=+vg||a.tb,Hb=+wg||10;isNaN(aa)?aa=Hb:xg="more ";aa>na.length&&(a.j("note: only "+na.length+" available"),aa=na.length);fa-=aa;0>fa&&(null==na[na.length-1].F?(aa=fa+aa,fa=0):fa+=na.length);var Gd=[];"call"==wg&&(Hb=1E5,Gd=["CALL"]);for(void 0!==vg&&a.j(aa+" instructions earlier:");0<Hb&&fa!=a.$;){var zg=na[fa++];if(null==zg.F)break;var Ib=Z(zg.F),Fi=aa--,Ag=ci(a,Ib,"history",Fi);(!Gd.length||0<=Ag.indexOf(Gd[0]))&&a.j(Ag);
|
|
|
|
|
Ib.ac&&(fa+=Ib.ac,Hb-=Ib.ac,aa-=Ib.ac);fa>=na.length&&(fa=0);a.tb=aa;yg++;Hb--}}yg||(a.j("no "+xg+"history available"),a.tb=void 0)}else{var Jb=Ph(a,ma);if(Jb){var Ac=0;Ka&&("l"==Ka.charAt(0)&&(Ka=Ka.substr(1)||Ei),Ac=Ch(a,Ka)>>>0,65536<Ac&&(Ac=65536));for(var Kb="",hb="dd"==eb?4:"dw"==eb?2:1,Bc=hb*Ac||128,Gi=Bc+15>>4||1;Gi--&&0<Bc;){var Cc=0,Lb=0,Mb,Hd="",Bg="",ma=J(a,Jb.F);for(Mb=4==hb?16:a.da;0<Mb&&0<Bc;Mb--){var Dc=1,Ec=1==hb?a.Fb(Jb,Dc):a.oa(Jb,Dc=2),Cc=Cc|Ec<<(Lb<<3),Lb=Lb+Dc;Lb==hb&&(Hd+=J(a,
|
|
|
|
|
Cc,hb),Hd+=1==hb?9==Mb?"-":" ":" ",Cc=Lb=0);Bg+=32<=Ec&&128>Ec?String.fromCharCode(Ec):".";Bc-=Dc}Kb&&(Kb+="\n");Kb+=ma+" "+Hd+(0==Mb?" "+Bg:"")}Kb&&a.j(Kb);a.lb=Jb}}}}break;case "e":if("else"==g[0])break;var ib,Id,Jd,Kd,Ld=g[0],Md=g[1];"eb"==Ld?(ib=1,Id=255,Jd=a.Fb,Kd=a.Wb):"e"==Ld||"ew"==Ld?(ib=2,Id=65535,Jd=a.oa,Kd=a.gb):Md=null;if(null==Md)a.j("edit memory commands:"),a.j("\teb [a] [...] edit bytes at address a"),a.j("\tew [a] [...] edit words at address a");else{var Fc=Ph(a,Md);if(Fc)for(var Gc=
|
|
|
|
|
@ -285,8 +285,8 @@ G)Ca=1878917119,G=null;else if("on"==G)pa=!0,G=null;else if("off"==G)pa=!1,G=nul
|
|
|
|
|
"Mhz")+" ("+a.b.bb+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":li(a,g[0],g[1]);break;case "u":Xh(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ii(a,b.substr(3))||(d=!1);break}if("ver"==
|
|
|
|
|
g[0]){a.j("PDPjs version 1.30.2 ("+a.b.wb+",RELEASE"+(wb?",TYPEDARRAYS":",LONGARRAYS")+")");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){ki(a,b.substr(1));break}var Td="commands:",Ud;for(Ud in Jh)Td+="\n"+xa(Ud,9)+Jh[Ud];je(a)||(Td+="\nnote: history disabled if no exec breakpoints");a.j(Td);break;default:f=!0}f&&(a.j("unknown command: "+b),d=!1)}}catch(Jg){a.j("debugger error: "+(Jg.stack||Jg.message)),d=!1}return d}
|
|
|
|
|
function jd(a,b,c){b=yh(a,b,c);for(var d in b)if(!bi(a,b[+d]))return!1;return!0}Xa(function(){for(var a=D(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Fh(d);C(d,c)}});
|
|
|
|
|
function ni(a,b,c){u.call(this,"Computer",a,ni,67108864);this.B.ja=!1;oi(this,b);this.L=gd(this,"autoPower",a);this.v=0;this.Y=a.busWidth||a.buswidth;this.g=pi;this.J=null;this.D=this.R=!1;this.$=gd(this,"url")||"";(Math.random()+.1).toString(36);this.A=qi(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.w=new gc({id:this.Oa+".bus",busWidth:this.Y},this.b,this.i);var d,e=ob(this.id);if((this.f=qb("Panel",this.id))&&this.f.Pa)for(b=0;b<e.length;b++)d=e[b],d.O=this.f.O,d.j=this.f.j,
|
|
|
|
|
d.Pa=this.f.Pa;this.j("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Da&&d.Da(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.g=parseInt(d,10));var f;if(a=gd(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.D=!0,this.g=pi),this.g&&(this.K=
|
|
|
|
|
function ni(a,b,c){u.call(this,"Computer",a,ni,67108864);this.B.ja=!1;oi(this,b);this.L=gd(this,"autoPower",a);this.v=0;this.Y=a.busWidth||a.buswidth;this.g=pi;this.J=null;this.D=this.R=!1;this.$=gd(this,"url")||"";(Math.random()+.1).toString(36);this.A=qi(this);if(this.b=qb("CPU",this.id)){this.i=qb("Debugger",this.id);this.w=new gc({id:this.Pa+".bus",busWidth:this.Y},this.b,this.i);var d,e=ob(this.id);if((this.f=qb("Panel",this.id))&&this.f.Qa)for(b=0;b<e.length;b++)d=e[b],d.O=this.f.O,d.j=this.f.j,
|
|
|
|
|
d.Qa=this.f.Qa;this.j("PDPjs v1.30.2\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.j("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Da&&d.Da(this,this.w,this.b,this.i);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.g=parseInt(d,10));var f;if(a=gd(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.D=!0,this.g=pi),this.g&&(this.K=
|
|
|
|
|
new P(this,"1.30.2"),ri(this.K)?b=null:delete this.K);!b&&this.g&&(b=si(this))&&(this.D=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.H=null,g.D=!1,g.O("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.J=b,g.R=!0);H(g)})}else H(this);this.G.power||(this.L=!0);!c&&this.L&&ti(this,this.Ib)}else q("Unable to find CPU component")}z(ni);var pi=0;
|
|
|
|
|
function oi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.S=b}function gd(a,b,c){var d=b.toLowerCase(),d=bb[b]||bb[d];void 0===d&&a.S&&(d=a.S[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ti(a,b,c){for(var d=ob(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!tb(f)){tb(f,function(){ti(a,b,c)});return}}b.call(a,c)}
|
|
|
|
|
function ui(a,b){var c=new P(a,"1.30.2","validate");if(ri(c)&&vi(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.O("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ni.prototype;
|
|
|
|
|
@ -303,7 +303,7 @@ else return this.G[b]=c,c.onclick=function(){var a=qi(d,!0);if(a){var b=!!(d.g&&
|
|
|
|
|
function qi(a,b){var c=a.A;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=Bi(a,c))||a.O("The user ID is invalid.")):b&&a.O("Browser local storage is not available"));return c}
|
|
|
|
|
function Bi(a,b){a.A=null;b=Ea(Ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Oa("user",b.data),a.A=b.data)}catch(d){q(d.message+" ("+c+")")}return a.A}function si(a){var b=null;a.A&&(b=Ga()+"/api/v1/user?req=load&user="+a.A+"&state="+Ci(a,"1.30.2"));return b}
|
|
|
|
|
function Ai(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ci(a,"1.30.2");d.data=c;b=Ea(Ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.O("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.O(c),Oa("user",""),a.A=null)}}
|
|
|
|
|
function Tg(a){var b;a=ob(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.qb=function(a){if(this.Pa){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.Pa.focus();!a&&window&&window.scrollTo(b,c)}};k.ca=function(a){this.b&&this.b.ca(a);this.f&&this.f.ca(a)};
|
|
|
|
|
function Tg(a){var b;a=ob(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.qb=function(a){if(this.Qa){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.Qa.focus();!a&&window&&window.scrollTo(b,c)}};k.ca=function(a){this.b&&this.b.ca(a);this.f&&this.f.ca(a)};
|
|
|
|
|
Xa(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"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new ni(g,d,!0);C(g,f);g.L&&ti(g,g.Ib)}});Sa.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.da&&!c.B.ja&&c.Ib(-1)}});
|
|
|
|
|
Sa.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=qb("Computer",c.id))&&c.B.ja&&mi(c,!(!c.g||c.H),!0)}});function P(a,b,c){this.id=a.id;this.key=Ci(a,b,c);this.i=a.i;xi(this,a.Rc)}function Ci(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
|
|
|
|
P.prototype={constructor:P,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){xi(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
|
|
|
|
|