pcjs/versions/pdpjs/1.30.0/pdp11-dbg.js

223 lines
92 KiB
JavaScript

(function(){var k;
function aa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function ca(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function p(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}
function da(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ea(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function fa(){var a=ga();return-1!==a.indexOf("pcjs.org",a.length-8)}function ha(a,b){return(a+" ").slice(0,b)}function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var na={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};function oa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}var pa=Date.now||function(){return+new Date};
function qa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function ra(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}function ga(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function r(a){window&&window.alert(a)}function sa(a){var b=!1;window&&(b=window.confirm(a));return b}var ua=null;function va(){if(null==ua){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ua=a}return ua}function wa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(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 Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Da(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 Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!1,Ha=!0;function Ia(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ea.init.push(a)}
function Ka(a){if(Ha)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function La(a){Ea[a]&&Ka(Ea[a])}Ia("onload",function(){Fa=!0;Ka(Ea.init)});Ia("onpageshow",function(){Ga=!0;Ka(Ea.show)});Ia(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ka(Ea.exit)});
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Oc=b;b=this.id.indexOf(".");0>b?this.pb=this.id:(this.dc=this.id.substr(0,b),this.pb=this.id.substr(b+1));this[a]=c;this.v={ready:!1,Hb:!1,ec:!1,ia:!1,error:!1};this.Xb=null;this.v.error=!1;this.K={};this.j=null;this.ka=d||0;x.push(this)}var Sa=void 0,Ta={};
if(window){Sa||(Sa=window.location.search.substr(1));for(var Ua,Va=/\+/g,Wa=/([^&=]+)=?([^&]*)/g;Ua=Wa.exec(Sa);)Ta[decodeURIComponent(Ua[1].replace(Va," "))]=decodeURIComponent(Ua[2].replace(Va," "))}function Xa(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 y(a,b){b||(b=w);a.prototype=Xa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ya=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ya={},x=[];function Za(a,b,c){Ya[a]&&b&&(Ya[a][b]=c)}function $a(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function ab(a){if(void 0!==a){var b;for(b=0;b<x.length;b++)if(x[b].id===a)return x[b]}return null}function bb(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<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function cb(a,b){b=D(b.parentNode,"pdpjs-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 "pdpjs-binding":(g=B(f))&&g.binding&&a.pa(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}
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.K[b]||(this.K[b]=c,c.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.hb=this.K[b]=c,c.value="",this.i=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.sa=function(a){this.i(a,this.pb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.pb+": "+a)},sa:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},Ja:function(){return this.v.ia=!0},Ia:function(a,b){b&&(this.v.ia=!1);return!0}};function E(a,b,c,d){a.j&&(!0===c||F(a,c|0))&&a.j.message(b,d)}function F(a,b){if(a.j){a===a.j?b|=0:b=b||a.ka;var c=a.j.ka&b;return!!b&&c===b||!!(c&a.j.Lc)}return!1}
function db(a,b){if(a.v.ec)return a.v.Hb=!1,a.v.ec=!1;if(a.v.error)return a.i(a.toString()+" error"),!1;a.v.Hb=b;return a.v.Hb}function eb(a,b){a.v.Hb&&(b?a.v.ec=!0:void 0===b&&a.i(a.toString()+" busy"));return a.v.Hb}function G(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Xb;a.Xb=null;b&&b()}}function fb(a,b){b&&(a.v.ready?b():a.Xb=b);return a.v.ready}function gb(a){return a.v.error?(a.i(a.toString()+" error"),!0):!1}function hb(a,b){a.v.error=!0;a.sa(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});
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 ib="undefined"!==typeof ArrayBuffer,H={cpu:1,trap:16,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function jb(a){w.call(this,"Panel",a,jb)}y(jb);k=jb.prototype;k.pa=function(a,b,c,d){return this.C&&this.C.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.j&&this.j.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};k.Na=function(a,b,c,d){this.C=a;this.H=b;this.b=c;this.j=d};
k.Ja=function(a,b){b||wb();return!0};k.Ia=function(){return!0};k.Fa=function(){};function wb(){for(var a=!1,b=D(document,"pdpjs","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f=ab(e.id);f||(a=!0,f=new jb(e));cb(f,d);a&&G(f)}}Ja(wb);
function xb(a,b,c){w.call(this,"Bus",a,xb,64);this.b=b;this.j=c;this.G=a.busWidth||16;this.B=Math.pow(2,this.G);this.g=this.B-1|0;this.ca=(this.G>>1)+2;10>this.ca&&(this.ca=10);15<this.ca&&(this.ca=15);this.Ca=1<<this.ca;this.I=this.Ca>>2;this.f=this.Ca-1;this.w=this.B/this.Ca|0;this.C=this.w-1;this.Qa=[];this.F=null;this.Jb=this.Hc;a=new I;yb(a,this.j);this.O=Array(this.w);for(b=0;b<this.w;b++)this.O[b]=a;this.Db=Array(4);this.Db[0]=zb;this.Db[1]=Ab;this.Db[2]=Bb;this.Db[3]=Cb;Db(this,this.B-8192,
8192,Eb,this);Db(this,57344,8192,Eb,this);G(this)}y(xb);function zb(a,b){var c=-1,d=this.controller,e=d.Qa[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.Qa[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);if(0<=c)return this.j&&F(this.j,64)&&E(this.j,e[5]+".readByte("+J(this.j,b)+"): "+J(this.j,c),!0,!0),c;c=d.Jb(b|4186112,-1,1);this.j&&F(this.j,64)&&E(this.j,"warning: unconverted read access to byte @"+J(this.j,b)+": "+J(this.j,c));return c}
function Ab(a,b,c){var d=!1,e=this.controller,f=e.Qa[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.Qa[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](c):0,f[3](a&255|b<<8,c),d=!0);d?this.j&&F(this.j,64)&&E(this.j,f[5]+".writeByte("+J(this.j,c)+","+J(this.j,b)+")",!0,!0):(e.Jb(c|4186112,b,1),this.j&&F(this.j,64)&&E(this.j,"warning: unconverted write access to byte @"+J(this.j,c)+": "+J(this.j,b)))}
function Bb(a,b){var c=-1,d=this.controller;(a=d.Qa[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));if(0<=c)return this.j&&F(this.j,64)&&E(this.j,a[5]+".readWord("+J(this.j,b)+"): "+J(this.j,c),!0,!0),c;c=d.Jb(b|4186112,-1,0);this.j&&F(this.j,64)&&E(this.j,"warning: unconverted read access to word @"+J(this.j,b)+": "+J(this.j,c));return c}
function Cb(a,b,c){var d=!1,e=this.controller;if(a=e.Qa[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.j&&F(this.j,64)&&E(this.j,a[5]+".writeWord("+J(this.j,c)+","+J(this.j,b)+")",!0,!0):(e.Jb(c|4186112,b,0),this.j&&F(this.j,64)&&E(this.j,"warning: unconverted write access to word @"+J(this.j,c)+": "+J(this.j,b)))}k=xb.prototype;k.reset=function(){this.F&&this.F()};
k.Hc=function(a,b,c){this.j&&F(this.j,64)&&E(this.j,"warning: unrecognized access("+J(this.j,a)+","+J(this.j,b)+","+c+")");return 0};k.Ja=function(a,b){b||this.reset();return!0};
function Db(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.ca;0<g&&h<a.O.length;){var l=a.O[h],m=h*a.Ca,n=a.Ca-(f-m);n>g&&(n=g);if(l&&l.size){if(l.type==d&&l.controller==e){if(f+g<=l.A)return l.Ub+=l.A-f,l.A=f,!0;if(f>=l.A+l.Ub){n=l.size-(f-m);n>g&&(n=g);l.Ub=f-l.A+n;f=m+a.Ca;g-=n;h++;continue}}return Fb(1,f,g)}f=new I(f,n,a.Ca,d,e);yb(f,a.j,l);a.O[h++]=f;f=m+a.Ca;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Gb[d]+" at "+p(b,8,!0)),!0):Fb(2,b,c)}
k.jb=function(a){return this.O[(a&this.g)>>>this.ca].ub(a&this.f,a)};k.Ha=function(a){var b=a&this.f,c=(a&this.g)>>>this.ca;return b!=this.f?this.O[c].Ac(b,a):this.O[c++].ub(b,a)|this.O[c&this.C].ub(0,a+1)<<8};function Hb(a,b){var c=b&a.f,d=(b&a.g)>>>a.ca;return c!=a.f?a.O[d].jc(c,b):a.O[d++].Nb(c,b)|a.O[d&a.C].Nb(0,b+1)<<8}k.Rb=function(a,b){this.O[(a&this.g)>>>this.ca].Ab(a&this.f,b&255,a)};
k.nb=function(a,b){var c=a&this.f,d=(a&this.g)>>>this.ca;c!=this.f?this.O[d].Gc(c,b&65535,a):(this.O[d++].Ab(c,b&255,a),this.O[d&this.C].Ab(0,b>>8&255,a+1))};function Ib(a){for(var b=0,c=[],d=0;d<a.w;d++){var e=a.O[d];if(e.Ua||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 Jb(a,b,c){for(var d in c)for(var e=c[d],f=e[0]?e[0].bind(b):null,g=e[1]?e[1].bind(b):null,h=e[2]?e[2].bind(b):null,l=e[3]?e[3].bind(b):null,m=a,n=+d,e=e[4],t=+d;t<=n;t+=2){var q=t&8191;void 0!==m.Qa[q]?r("I/O address already registered: "+p(t,8,!0)):m.Qa[q]=[f,g,h,l,!1,e||"unknown"]}}function Kb(a,b,c){a.F=b;a.Jb=c}function Fb(a,b,c){r("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}
function K(a){w.call(this,"Device",a,K);this.g={data:0,wd:0,rb:20,nd:0};this.f={M:0,oc:-1};this.C={Pb:2496,oa:0,R:128,Qb:0,Ob:0,va:0,Bc:0,ra:[],cb:[406,406,406,406],da:[12,12,12,12]};this.w={M:129,Gb:0,fa:0,Wa:0,Ra:0,ab:0,ra:[],da:[40,40,40,40],cb:[1024,1024,512,512],Jc:[157,157,29,29]};this.B={b:[8210,8208,8210,8226],da:[22,22,22,50],bb:[19,19,19,32],cc:[815,411,815,630],ra:[],T:2176,xb:0,vb:0,Ea:[0,0,0,0,0,0,0,0],Da:0,ta:[4544,4544,4544,4544,4544,4544,4544,4544],wb:[0,0,0,0,0,0,0,0],mb:0,kd:[0,
0,0,0,0,0,0,0],Cc:0,Dc:[0,0,0,0,0,0,0,0],j:[0,0,0,0,0,0,0,0],ld:[1,2,3,4,5,6,7,8],Ec:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],bc:[0,0,0,0,0,0,0,0],hd:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],gd:[0,0,0,0,0,0,0,0],$a:0,mc:0}}y(K);
var Lb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];k=K.prototype;k.Na=function(a,b,c,d){this.H=b;this.b=c;this.j=d;var e=this;this.f.oc=Mb(this.b,function(){e.f.Va|=128;e.f.Va&64&&(L(e.b,0,6,64),Nb(e.b,e.f.oc,1E3/60))});Jb(b,this,Ob);Kb(b,this.reset.bind(this),this.Ic.bind(this));G(this)};k.Wc=function(){var a=this.f.Va;this.f.Va&=-129;return a};
k.pd=function(a){this.f.Va=a;a&64&&Nb(this.b,this.f.oc,1E3/60);this.f.Va=a&-129};k.Xc=function(){var a=this.b;return a.F&62337|a.wa<<5|a.xa<<1};k.qd=function(a){var b=4,c=this.b;c.F=a&=62337;c.wa=a>>5&3;c.xa=a>>1&15;c.Yb=a&257?a&1?6:4:0;Pb(c);a=c.F;a&1|256&&(b=this.b.lb&16?1:2);this.g.rb=this.g.rb&-8|b};k.Yc=function(){return Qb(this.b)};k.rd=function(a){Rb(this.b,a&-1809|Qb(this.b)&1808);this.b.D|=128};
function Sb(a){var b=a.C,c,d,e,f=b.va>>13&7;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.cd,drive:f,blocksize:256,mapped:0,maxblock:b.cb[f]*b.da[f],url:"rk"+f+".dsk"});b.R&=-129;switch(b.R>>1&7){case 0:b.Pb=2496;b.oa=0;b.R=128;b.va=0;break;case 1:if((b.va>>4&511)>=b.cb[f]){b.oa|=32832;b.R|=49152;break}if((b.va&15)>=b.da[f]){b.oa|=32800;b.R|=49152;break}c=(b.va>>4&511)*b.da[f]+(b.va&15);d=(b.R&48)<<12|b.Ob;e=65536-b.Qb&65535;Tb(a,b.ra[f],c,d,e);return;case 2:if((b.va>>4&511)>=b.cb[f])b.oa|=
32832,b.R|=49152;else if((b.va&15)>=b.da[f])b.oa|=32800,b.R|=49152;else{c=(b.va>>4&511)*b.da[f]+(b.va&15);d=(b.R&48)<<12|b.Ob;e=65536-b.Qb&65535;a.$b(b.ra[f],c,d,e);return}}b.Pb=f<<13|b.Pb&8176|b.va%9&15;L(a.b,20,5,144,function(){b.R=b.R&65534|128;return!!(b.R&64)})}k.cd=function(a,b,c,d,e){var f=this.C;f.Ob=d&65535;f.R=f.R&-49|d>>12&48;f.Qb=65536-e&65535;switch(a){case 1:f.oa|=33024;f.R|=49152;break;case 2:f.oa|=33792,f.R|=49152}L(this.b,20,5,144,function(){f.R=f.R&65534|128;return!!(f.R&64)})};
function Ub(a){var b=a.w,c,d,e,f=b.M>>8&3;b.M&=-2;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.dd,drive:f,blocksize:128,mapped:1,maxblock:b.cb[f]*b.da[f],url:"rl"+f+".dsk"});switch(b.M>>1&7){case 2:b.Wa&8&&(b.M&=63);b.Wa=b.Jc[f]|b.ab&64;break;case 3:1==(b.fa&3)&&(b.ab=b.fa&4?b.ab+(b.fa&65408)&65408|b.fa<<2&64:b.ab-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.ab);break;case 4:b.Wa=b.ab;break;case 5:if(b.fa>>6>=b.cb[f]){b.M|=37888;break}if((b.fa&63)>=b.da[f]){b.M|=37888;break}c=(b.fa>>6)*
b.da[f]+(b.fa&63);d=(b.Ra&63)<<16|b.Gb;e=65536-b.Wa&65535;Tb(a,b.ra[f],c,d,e);return;case 6:if(b.fa>>6>=b.cb[f])b.M|=37888;else if((b.fa&63)>=b.da[f])b.M|=37888;else{c=(b.fa>>6)*b.da[f]+(b.fa&63);d=(b.Ra&63)<<16|b.Gb;e=65536-b.Wa&65535;a.$b(b.ra[f],c,d,e);return}}L(a.b,20,5,112,function(){b.M|=129;return!!(b.M&64)})}
k.dd=function(a,b,c,d,e){var f=this.w;f.Gb=d&65535;f.M=f.M&-49|d>>12&48;f.Ra=d>>16&63;f.fa=~~(c/f.da[b.La])<<6|c%f.da[b.La];f.ab=f.fa;f.Wa=65536-e&65535;switch(a){case 1:f.M|=33792;break;case 2:f.M|=40960}L(this.b,20,5,112,function(){f.M|=129;return!!(f.M&64)})};function Vb(a){a=a.B;a.T=2176;a.Da=0;a.ta=[4544,4544,4544,4544,4544,4544,4544,4544];a.wb=[0,0,0,0,0,0,0,0];a.mb=a.xb=a.vb=a.$a=a.mc=0}
function Wb(a,b){var c=a.B,d,e,f;c.T&=-16513;c.Da&=-2049;c.ta[b]&=-1153;L(a.b,-1,0,172);"undefined"===typeof c.ra[b]&&(c.ra[b]={cache:[],postProcess:a.ed,drive:b,blocksize:256,mapped:0,maxblock:c.cc[0]*c.bb[0]*c.da[0],url:"rp"+b+".dsk"});switch(c.T&63){case 5:c.bc[b]=c.Pa[b];c.T|=32896;c.ta[b]|=32896;c.mb|=1<<b;break;case 9:Vb(a);break;case 19:c.ta[b]|=64;break;case 49:if(c.Pa[b]>=c.cc[0]||c.Ea[b]>>8>=c.bb[0]||(c.Ea[b]&255)>=c.da[0]){c.wb[b]|=1024;c.T|=49152;break}d=(c.Pa[b]*c.bb[0]+(c.Ea[b]>>8))*
c.da[0]+(c.Ea[b]&255);e=(c.$a&63)<<16|c.vb;f=65536-c.xb&65535;Tb(a,c.ra[b],d,e,f);return;case 57:if(c.Pa[b]>=c.cc[0]||c.Ea[b]>>8>=c.bb[0]||(c.Ea[b]&255)>=c.da[0])c.wb[b]|=1024,c.T|=49152;else{d=(c.Pa[b]*c.bb[0]+(c.Ea[b]>>8))*c.da[0]+(c.Ea[b]&255);e=(c.$a&63)<<16|c.vb;f=65536-c.xb&65535;a.$b(c.ra[b],d,e,f);return}}L(a.b,3,5,172,function(){c.T=c.T&65534|128;c.ta[b]|=128;return!!(c.T&64)})}
k.ed=function(a,b,c,d,e){var f=this.B;f.xb=65536-e&65535;f.vb=d&65535;f.T=f.T&-769|d>>8&768;f.$a=d>>16&63;e=~~(c/f.da[0]);d=~~(e/f.bb[0]);f.Ea[b.La]=e%f.bb[0]<<8|c%f.da[0];f.bc[b.La]=f.Pa[b.La]=d;f.mb|=1<<b.La;c>=b.Tc-1&&(f.ta[b.La]|=1024);switch(a){case 1:f.Da|=512;f.T|=49152;break;case 2:f.Da|=2048,f.T|=49152}L(this.b,20,5,172,function(){f.ta[b.La]|=128;f.T=f.T&65534|128;return!!(f.T&64)})};
function ec(a,b,c,d,e,f){var g=~~((f+c.Sa-1)/c.Sa),h=new XMLHttpRequest;2048>g&&d+2048<c.Tc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Sa<<1)+"-"+(((d+g)*c.Sa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,t,q;m=h.response;if(h.status&&206!=h.status||!m)c.ic(1,c,d,e,f);else{m=new Uint8Array(m);n=d;for(q=0;q<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],t=0;t<c.Sa;t++)c.cache[n][t]=q<m.length?
m[q]&255|m[q+1]<<8&65280:0,q+=2;else q+=c.Sa<<1;n++}g(c,d,e,f)}}};h.send(null)}function M(a,b,c,d,e){c&1?e?d=0<=d?d<<8&65280|b&255:b:a.b.L(4,122):0<=d?e&&(d=b&65280|d&255):d=b;return d}k.$b=function(a,b,c,d){for(var e;0<d;){if("undefined"===typeof a.cache[b]){ec(this,this.$b,a,b,c,d);return}for(e=0;e<a.Sa&&0<d;e++){var f=a.Sc?fc(this.b,c):c;this.b.H.nb(f,a.cache[b][e]&65535);c+=2;--d}b++}a.ic(0,a,b,c,d)};
function Tb(a,b,c,d,e){for(var f,g;0<e;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],f=0;f<b.Sa;f++)b.cache[c][f]=0;for(f=0;f<b.Sa&&0<e;f++){g=gc(a.b,b.Sc?fc(a.b,d):d);if(0>g){b.ic(2,b,c,d,e);return}b.cache[c][f]=g;d+=2;--e}c++}b.ic(0,b,c,d,e)}k.reset=function(){this.g.rb=this.g.rb&-120|20;this.f.Va=0;this.C.R=128;this.w.M=128;Vb(this)};
k.Ic=function(a,b,c){var d,e,f=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=f.Za&65280:(a&1&&(b<<=8),f.Za=b|255,d=0);break;case 4194298:if(0>b)d=f.lc;else{a&1&&(b<<=8);if(d=b&65024){e=d>>9;do d+=34;while(e>>=1)}f.lc=d;f.D|=2}break;case 4194294:if(70!==f.ib)return f.L(4,222);0>b?d=f.J:d=f.J=0;break;case 4194292:if(70!==f.ib)return f.L(4,224);d=1;break;case 4194290:if(70!==f.ib)return f.L(4,226);d=0;break;case 4194288:if(70!==f.ib)return f.L(4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==f.ib)return f.L(4,232);e=a-4194272>>1;0>b?d=f.gc[e]:(d=M(this,f.gc[e],a,b,c),0<=d&&(f.gc[e]=d));break;case 4194254:return a&1?f.P>>14&1?(0<=b&&(f.u[6]=b),d=f.u[6]):(0<=b&&(f.ya[3]=b),d=f.ya[3]):f.P>>14&0?(0<=b&&(f.u[6]=b),d=f.u[6]):(0<=b&&(f.ya[1]=b),d=f.ya[1]),d;case 4194252:case 4194250:case 4194248:return e=a&7,f.P&2048?(0<=b&&(f.u[e]=b),d=f.u[e]):(0<=b&&(f.Oa[e]=
b),d=f.Oa[e]),d;case 4194246:return a&1?(0<=b&&(f.u[7]=b),d=f.u[7]):f.P>>14&0?(0<=b&&(f.u[6]=b),d=f.u[6]):(0<=b&&(f.ya[0]=b),d=f.ya[0]),d;case 4194244:case 4194242:case 4194240:return e=a&7,f.P&2048?(0<=b&&(f.Oa[e]=b),d=f.Oa[e]):(0<=b&&(f.u[e]=b),d=f.u[e]),d;default:return f.J|=16,f.L(4,124)}break;case 4194176:e=a>>1&31;d=M(this,f.na[3][e],a,b,c);0<=d&&(f.na[3][e]=d,f.na[3][e&15]&=65295);break;case 4194112:switch(a&-2){case 4194174:d=M(this,f.ac,a,b,c);0<=d&&(f.ac=d);break;case 4194172:d=f.Ya;d&65280&&
(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.g.nd&65535:(d=M(this,this.g.data,a,b,c),0<=d&&(this.g.data=d));break;default:return f.J|=16,f.L(4,126)}break;case 4194048:e=this.C;switch(a&-2){case 4194048:d=M(this,e.Pb,a,b,c);0<=d&&(e.Pb=d);break;case 4194050:d=M(this,e.oa,a,b,c);0<=d&&(e.oa=d);break;case 4194052:d=M(this,e.R,a,b,c);0<=b&&0<=d&&(e.R=d&-36993|e.R&36992,e.R&1&&Sb(this));break;case 4194054:d=M(this,e.Qb,a,b,c);0<=d&&(e.Qb=d);break;case 4194056:d=M(this,e.Ob,a,b,c);0<=d&&(e.Ob=d);
break;case 4194058:d=M(this,e.va,a,b,c);0<=d&&(e.va=d);break;case 4194060:break;case 4194062:d=M(this,e.Bc,a,b,c);0<=d&&(e.Bc=d);break;default:return f.J|=16,f.L(4,128)}break;case 4193728:var g=this.B;e=g.Da&7;switch(a&-2){case 4193728:d=M(this,g.T,a,b,c);0<=b&&0<=d&&(g.$a=g.$a&60|d>>8&3,g.T=d&17279|g.T&34944|2048,d&1&&g.T&128?Wb(this,e):192==(d&192)&&L(f,0,5,172));break;case 4193730:d=M(this,g.xb,a,b,c);0<=d&&(g.xb=d);break;case 4193732:d=M(this,g.vb,a,b,c);0<=d&&(g.vb=d&65534);break;case 4193734:d=
M(this,g.Ea[e],a,b,c);0<=d&&(g.Ea[e]=d&7967);break;case 4193736:d=M(this,g.Da,a,b,c);0<=d&&(g.Da=d&63|g.Da&65472,d&128&&Vb(this));break;case 4193738:d=g.ta[e];break;case 4193740:d=g.wb[e];break;case 4193742:d=M(this,g.mb,a,b,c);0<=d&&(g.mb=d&255);break;case 4193744:d=g.kd[e];break;case 4193746:d=M(this,g.Cc,a,b,c);0<=d&&(g.Cc=d);break;case 4193748:d=M(this,g.Dc[e],a,b,c);0<=d&&(g.Dc[e]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.ld[e];break;case 4193754:d=M(this,g.Ec[e],a,b,c);0<=d&&
(g.Ec[e]=d);break;case 4193756:d=M(this,g.Pa[e],a,b,c);0<=d&&(g.Pa[e]=d&511);break;case 4193758:g.bc[e]=g.Pa[e];d=g.bc[e];break;case 4193760:d=g.hd[e];break;case 4193762:d=g.jd[e];break;case 4193764:d=g.fd[e];break;case 4193766:d=g.gd[e];break;case 4193768:d=M(this,g.$a,a,b,c);0<=d&&(g.$a=d&63,g.T=g.T&-769|(d&3)<<8);break;case 4193770:d=M(this,g.mc,a,b,c);0<=d&&(g.mc=d);break;default:return f.J|=16,f.L(4,132)}break;case 4192512:e=this.w;switch(a&-2){case 4192512:d=M(this,e.M,a,b,c);0<=b&&0<=d&&(e.Ra=
e.Ra&60|d>>4&3,e.M=e.M&-1023|d&1022,e.M&128||Ub(this));break;case 4192514:d=M(this,e.Gb,a,b,c);0<=d&&(e.Gb=d&65534);break;case 4192516:d=M(this,e.fa,a,b,c);0<=d&&(e.fa=d);break;case 4192518:d=M(this,e.Wa,a,b,c);0<=d&&(e.Wa=d);break;case 4192520:d=M(this,e.Ra,a,b,c);0<=d&&(e.Ra=d&63,e.M=e.M&-49|(e.Ra&3)<<4);break;default:return f.J|=16,f.L(4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=f.lb:(d=M(this,f.lb,a,b,c),0<=d&&(70!==f.ib&&(d&=-49),f.lb=d,f.Zb[0]=d&4?15:7,f.Zb[1]=d&2?15:7,f.Zb[3]=
d&1?15:7,f.Yb&&(e=2,f.lb&16&&(e=1),this.g.rb=this.g.rb&-8|e)));break;default:return f.J|=16,f.L(4,136)}break;case 4191424:e=a>>1&31;d=M(this,f.na[0][e],a,b,c);0<=d&&(f.na[0][e]=d,f.na[0][e&15]&=65295);break;case 4191360:e=a>>1&31;d=M(this,f.na[1][e],a,b,c);0<=d&&(f.na[1][e]=d,f.na[1][e&15]&=65295);break;case 4190400:case 4190336:if(70!==f.ib)return f.L(4,234);e=a>>2&31;d=f.Sb[e];a&2&&(d>>=16);d&=65535;0<=b&&(d=M(this,d,a,b,c),0<=d&&(f.Sb[e]=a&2?d<<16|f.Sb[e]&65535:f.Sb[e]&4294901760|d&65534));break;
case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Lb[a>>1&255];else return f.J|=16,f.L(4,138);break;default:return f.J|=16,f.L(4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var hc={},Ob=(hc[65382]=[null,null,K.prototype.Wc,K.prototype.pd,"LKS"],hc[65402]=[null,null,K.prototype.Xc,K.prototype.qd,"MMR0"],hc[65534]=[null,null,K.prototype.Yc,K.prototype.rd,"PSW"],hc);
Ja(function(){for(var a=D(document,"pdpjs","device"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new K(d);cb(d,c)}});var ic;if(ib){var jc=new ArrayBuffer(2);(new DataView(jc)).setUint16(0,256,!0);ic=256===(new Uint16Array(jc))[0]}else ic=!1;var kc=ic;
function I(a,b,c,d,e){this.id=lc+=2;this.b=null;this.A=a;this.Ub=b;this.size=c||0;this.type=d||mc;this.g=d==nc;this.controller=null;yb(this);this.Ua=this.Nc=!1;if(c)if(e)this.controller=e,this.b=null,oc(this,e.Db);else if(ib)this.B=new ArrayBuffer(c),this.F=new DataView(this.B,0,c),this.f=new Uint8Array(this.B,0,c),this.I=new Uint16Array(this.B,0,c>>1),this.b=new Int32Array(this.B,0,c>>2),oc(this,kc?pc:qc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;oc(this,rc)}else oc(this)}
var mc=0,nc=2,Eb=4,Gb=["NONE","RAM","ROM","VID","H/W"],lc=0;
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(ib)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.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(ib)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ua=!0}return!1},gb:function(a,b){b?this.C++||sc(this,tc,!1):this.K++||uc(this,tc,!1)},N:function(){this.j&&F(this.j,128)&&(E(this.j,"attempt to read invalid block %"+
p(this.A),!0),this.j.ja());return 255},w:function(a,b){this.j&&F(this.j,128)&&(E(this.j,"attempt to write "+p(b,4,!0)+" to invalid block %"+p(this.A),!0),this.j.ja())},S:function(a,b){return this.ub(a++,b++)|this.ub(a,b)<<8},G:function(a,b,c){this.Ab(a++,b&255,c++);this.Ab(a,b>>8,c)},$:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a){var 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},xa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<
a)|b<<a;this.Ua=!0},pb:function(a,b){var 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.Ua=!0},Y:function(a,b){if(this.j&&null!=this.A){var c=this.j;vc(c,this.A+a,1,c.U)&&c.ja(!0)}return this.Nb(a,b)},ha:function(a,b){if(this.j&&null!=this.A){var c=this.j;vc(c,this.A+a,2,c.U)&&c.ja(!0)}return this.jc(a,b)},ua:function(a,b,c){if(this.j&&null!=this.A){var d=this.j;vc(d,this.A+a,1,d.F)&&d.ja(!0)}this.g?this.w(a,
b,c):this.Bb(a,b,c)},Aa:function(a,b,c){if(this.j&&null!=this.A){var d=this.j;vc(d,this.A+a,2,d.F)&&d.ja(!0)}this.g?this.w(a,b,c):this.pc(a,b,c)},U:function(a){return this.f[a]},Z:function(a,b){a=this.f[a];this.j&&F(this.j,128)&&E(this.j,"Memory.readByte("+J(this.j,b)+"): "+J(this.j,a),!0);return a},ea:function(a){return this.F.getUint16(a,!0)},la:function(a,b){a=a&1?this.f[a]|this.f[a+1]<<8:this.I[a>>1];this.j&&F(this.j,128)&&E(this.j,"Memory.readWord("+J(this.j,b)+"): "+J(this.j,a),!0);return a},
qa:function(a,b){this.f[a]=b;this.Ua=!0},wa:function(a,b,c){this.f[a]=b;this.Ua=!0;this.j&&F(this.j,128)&&E(this.j,"Memory.writeByte("+J(this.j,c)+","+J(this.j,b)+")",!0)},za:function(a,b){this.F.setUint16(a,b,!0);this.Ua=!0},Ba:function(a,b,c){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.I[a>>1]=b;this.Ua=!0;this.j&&F(this.j,128)&&E(this.j,"Memory.writeWord("+J(this.j,c)+","+J(this.j,b)+")",!0)}};function yb(a,b,c){a.j=b;a.K=a.C=0;c&&((a.K=c.K)&&uc(a,tc,!1),(a.C=c.C)&&sc(a,tc,!1))}
function wc(a,b){b?--a.C||(a.Ab=a.g?a.w:a.Bb,a.Gc=a.g?a.G:a.pc):--a.K||(a.ub=a.Nb,a.Ac=a.jc)}function sc(a,b,c){c&&a.C||(a.Ab=!a.g&&b[1]||a.w,a.Gc=!a.g&&b[3]||a.G);if(c||void 0===c)a.Bb=b[1]||a.w,a.pc=b[3]||a.G}function uc(a,b,c){c&&a.K||(a.ub=b[0]||a.N,a.Ac=b[2]||a.S);if(c||void 0===c)a.Nb=b[0]||a.N,a.jc=b[2]||a.S}function oc(a,b){b||(b=xc);uc(a,b,void 0);sc(a,b,void 0)}var xc=[],rc=[I.prototype.$,I.prototype.xa,I.prototype.ma,I.prototype.pb],tc=[I.prototype.Y,I.prototype.ua,I.prototype.ha,I.prototype.Aa];
if(ib)var qc=[I.prototype.U,I.prototype.qa,I.prototype.ea,I.prototype.za],pc=[I.prototype.Z,I.prototype.wa,I.prototype.la,I.prototype.Ba];function yc(a,b){w.call(this,"CPU",a,yc,1);var c=a.multiplier||1;this.Aa=a.cycles||b;this.Xa=c;this.fb=Math.round(this.Aa/1E4)/100;this.kb=this.fb*this.Xa;this.v.ga=!1;this.v.nc=!1;this.v.Eb=a.autoStart;this.v.uc=!1;this.v.qb=!1;this.Kb=this.ha=0;this.Lb=a.csStart;this.sb=a.csInterval;this.tb=a.csStop;this.N=[];this.Wb=this.md.bind(this);G(this)}y(yc);
var zc=["power","reset"];k=yc.prototype;k.Na=function(a,b,c,d){this.C=a;this.H=b;this.j=d;for(b=0;b<zc.length;b++)(c=this.K[zc[b]])&&this.C.pa(null,zc[b],c);this.qa=null;a=Ac(a,"autoStart");null!=a&&(this.v.Eb="true"==a?!0:"false"==a?!1:!!a);G(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.Ja=function(a,b){if(!b){if(a&&this.restore){Bc(this);if(!this.restore(a))return!1;Cc(this)}else this.reset();this.j?(a=this.j,a.i("Type ? for help with PDP11 Debugger commands"),a.Fa(),a.fb&&(b=a.fb,a.fb=null,Dc(a,b))):this.i("No debugger detected")}N(this);return!0};k.Ia=function(a){return a?this.save():!0};k.Eb=function(){return this.v.Eb||!this.j&&void 0===this.K.run?(this.yb(!0),!0):!1};k.wc=function(){return 0};
function Cc(a){void 0===a.Lb&&(a.Lb=0);void 0===a.sb&&(a.sb=-1);void 0===a.tb&&(a.tb=-1);a.v.qb=0<=a.Lb&&0<a.sb;a.v.qb&&(a.Kb=0,a.ha=a.Lb-a.ea)}function Ec(a,b){if(a.v.qb){var c=!1;a.Kb=a.Kb+a.wc()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.sb,c=!0);0<=a.tb&&a.tb<=Fc(a)&&(a.sb=a.tb=-1,Cc(a),a.ja(),c=!0);c&&a.i(Fc(a)+" cycles: checksum="+p(a.Kb))}}
function Gc(a,b,c,d){if(a.K[b]){void 0===c&&(hb(a,"Value for "+b+" is invalid"),a.ja());var e=a.j&&a.j.ea||8;c=!a.v.ga||a.v.uc?8==e?ca(c,d):p(c,d):"--------".substr(0,d||4);a.K[b].textContent!=c&&(a.K[b].textContent=c)}}
k.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.K[b]=c;a=!0;break;case "run":this.K[b]=c;c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.v.ia)a=!0;else{var b=null,c,h=$a(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.ia);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.Xb?" (waiting for notification)":""))+".");a=!1}a&&(d.v.ga?d.ja():d.yb())};
a=!0;break;case "speed":this.K[b]=c;a=!0;break;case "setSpeed":this.K[b]=c,c.onclick=function(){Hc(d,d.Xa<<1,!0)},c.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b,c){a.ea+=b;c&&(a.$=a.b=0)}function Jc(a,b){var c=1;b&&1<a.Xa&&a.Y&&(c=a.Y/a.fb);a.Ib=Math.round(1E3/30);a.Ba=Math.floor(a.Aa/30*c);b||(a.la=a.Ba);a.ob=0}function Fc(a){return a.ea+a.U+a.$-a.b}function Bc(a){a.Y=0;a.Vb=0;a.ea=a.U=a.$=a.b=0;Cc(a);Hc(a,1)}
function Hc(a,b,c){var d=!1;if(void 0!==b){.8>a.Y/a.kb?b=1:d=!0;a.Xa=b;b=a.fb*a.Xa;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.C&&a.C.Tb()}Ic(a,a.U);a.U=0;a.S=pa();a.Z=0;Jc(a);return d}function Mb(a,b){var c=a.N.length;a.N.push([-1,b]);return c}function Nb(a,b,c){0<=b&&b<a.N.length&&0>a.N[b][0]&&(c*=a.Aa*a.Xa/1E3,a.N[b][0]=c)}function cd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}
function dd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ed(a){a.$-=a.b;a.b=0}
k.md=function(){if(this.v.ga){this.ob>=this.Aa&&Jc(this,!0);this.ua=0;this.za=pa();if(this.Z){var a=this.za-this.Z;a>this.Ib&&(this.S+=a,this.S>this.za&&(this.S=this.za))}try{do{var b=cd(this,this.v.qb?1:this.Ba);try{this.zb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.$-this.b;dd(this,c);this.ua+=c;this.U+=c;Ic(this,0,!0);Ec(this,c);this.la-=c;if(0>=this.la){this.la+=this.Ba;15<=++this.Vb&&(this.C&&this.C.Fa(),this.Vb=0);break}}while(this.v.ga)}catch(e){this.ja();N(this);this.C&&this.C.stop(pa(),
Fc(this));hb(this,e.stack||e.message);return}if(this.v.ga){a=setTimeout;b=this.Wb;this.Z=pa();c=this.Ib;this.ua&&(c=Math.round(c*this.ua/this.Ba));var c=c-(this.Z-this.za),d=this.Z-this.S;d&&(this.Y=Math.round(this.U/(10*d))/100,864E5<=d&&(this.ea=0,Hc(this)));if(0>c||this.Y<this.kb)-1E3>c&&(this.S-=c),c=0;this.ob+=this.ua;this.Z+=c;a(b,c)}}};
k.yb=function(a){if(gb(this))return!1;if(this.v.ga)return this.i(this.toString()+" busy"),!1;Hc(this);this.v.ga=!0;this.v.nc=!0;this.qa&&this.qa.start();var b=this.K.run;b&&(b.textContent="Halt");this.C&&(a&&this.C.Tb(!0),this.C.start(this.S,Fc(this)));N(this,!0);setTimeout(this.Wb,0);return!0};k.zb=function(){return 0};
k.ja=function(a){if(this.v.ga){ed(this);Ic(this,this.U);this.U=0;this.v.ga=!1;this.qa&&this.qa.stop();var b=this.K.run;b&&(b.textContent="Run");this.C&&this.C.stop(pa(),Fc(this));N(this)}this.v.complete=a};function N(a,b){a.C&&a.C.Fa(b)}
function fd(a){this.Uc=+a.model||1170;this.hc=a.resetAddr||0;yc.call(this,a,6666667);this.Fb=0;this.decode=gd.bind(this);this.V=65536;this.W=32768;this.aa=65535;this.X=32768;this.P=15;this.u=[0,0,0,0,0,0,0,this.hc];this.Oa=[0,0,0,0,0,0];this.ya=[0,0,0,0];this.xa=this.B=0;this.na=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Sb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.gc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.g=this.f=this.eb=this.G=this.I=this.D=0;this.ib=70;this.ma=-1;hd(this);this.v.complete=this.v.Mc=!1}y(fd,yc);k=fd.prototype;k.reset=function(){this.v.ga&&this.ja();hd(this);Bc(this);this.v.error=!1;this.parent.reset.call(this)};
function hd(a){a.Za=255;a.J=0;a.lc=0;a.F=0;a.Ya=0;a.ac=0;a.lb=0;a.Yb=0;a.wa=0;a.Zb=[7,7,7,7];a.w=[];a.D|=2;Pb(a)}function Pb(a){a.Yb?(a.Cb=65536,a.ba=a.Qc):(a.Cb=0,a.ba=a.Pc)}k.wc=function(){return 0};k.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.ea,this.Xa]);a.set(2,Ib(this.H));return a.data()};
k.restore=function(a){var b=a[1];this.ea=b[1];Hc(this,b[3]);a:{b=this.H;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.I){for(var f=0,g=Array(b.I),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.O[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.pa=function(a,b,c){switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.K[b]=c;this.Fb++;a=!0;break;default:a=this.parent.pa.call(this,a,b,c)}return a};
k.Fa=function(a){if(this.Fb&&(a||!this.v.ga||this.v.uc)){for(a=0;a<this.u.length;a++)Gc(this,"R"+a,this.u[a]);a=Qb(this);Gc(this,"PS",a);Gc(this,"NF",a&8?1:0,1);Gc(this,"ZF",a&4?1:0,1);Gc(this,"VF",a&2?1:0,1);Gc(this,"CF",a&1?1:0,1)}if(a=this.K.speed)a.textContent=this.v.ga&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped"};function id(a){return a.V&65536?1:0}function jd(a){return a.W&32768?2:0}function kd(a){return a.aa&65535?0:4}k.Ma=function(){return this.X&32768?8:0};
function ld(a){var b=md(a,a.u[7]);a.u[7]=a.u[7]+2&65535;return b}function nd(a,b){a.u[7]=b&65535}function L(a,b,c,d,e){for(var f=a.w.length;0<f--;)if(a.w[f].od===d){0<f&&(a.w[f-1].Ta+=a.w[f].Ta);a.w.splice(f,1);break}if(0<=b){for(f=a.w.length;0<f--;){if(a.w[f].Ta>b){a.w[f].Ta-=b;break}b-=a.w[f].Ta}a.w.splice(f+1,0,{delay:b,priority:c<<5&224,vector:d,callback:e})}a.D|=2}function Qb(a){return a.P=a.P&63728|a.Ma()|kd(a)|jd(a)|id(a)}
function Rb(a,b){a.X=b<<12;a.aa=~b&4;a.W=b<<14;a.V=b<<16;if((b^a.P)&2048)for(var c=a.Oa.length;0<=--c;){var d=a.u[c];a.u[c]=a.Oa[c];a.Oa[c]=d}a.B=b>>14&3;c=a.P>>14&3;a.B!=c&&(a.ya[c]=a.u[6],a.u[6]=a.ya[a.B]);a.D|=2;a.P=b}function P(a,b){a.D&128||(a.X=a.aa=b,a.W=0)}function od(a,b,c){a.D&128||(a.X=a.aa=a.V=b,a.W=c||0)}function pd(a,b,c,d){a.D&128||(a.X=a.aa=a.V=b,a.W=(c^b)&(d^b))}function qd(a,b){a.D&128||(a.X=a.aa=a.V=b,a.W=a.X^a.V>>1)}
function rd(a,b,c,d){a.D&128||(a.X=a.aa=a.V=b,a.W=(c^d)&(d^b))}k.L=function(a){var b=!1;0>this.ma?this.ma=Qb(this):this.B||(a=4,b=!0);this.F&57344||(this.Ya=63222,this.ac=a);this.B=0;var c=md(this,a|65536),d=md(this,a+2&65535|65536);Rb(this,d&-12289|this.ma>>2&12288);b&&(this.J|=4,this.u[6]=4);sd(this,this.ma);sd(this,this.u[7]);nd(this,c);this.D&=-113;this.ma=-1;throw a;};function td(a){var b=ud(a),c=ud(a)&-1793;a.P&49152&&(c=c&-225|a.P&63712);nd(a,b);Rb(a,c);a.D&=-17}
function fc(a,b){var c=b>>13&31;31>c?a.lb&32&&(b=a.Sb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function vd(a,b,c){var d,e,f,g=0;if(c&a.Yb){d=b>>13&a.Zb[a.B];e=a.na[a.B][d];f=(a.na[a.B][d+16]<<6)+(b&8191)&4194303;a.lb&16?3932160<=f&&4186112>f&&(f=fc(a,f&262143)):(f&=262143,253952<=f&&(f|=4186112));3932160>f&&(3915776<=f&&(a.J|=32,a.L(4,12)),f&1&&!(c&1)&&(a.J|=64,a.L(4,14)));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.na[a.B][d]=e;if(4194170!==f||a.B)a.wa=a.B,a.xa=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.F&57344||(a.F=a.F|g|a.wa<<5|a.xa<<1),a.L(168,16)),a.F&61440||!(4191360>f||4194239<f)||(a.F|=4096,a.F&512&&(a.D|=32)))}else f=b&65535,57344<=f?f|=4186112:f&1&&!(c&1)&&(a.J|=64,a.L(4,10));return f}function gc(a,b){return a.H.Ha(b)}function md(a,b){return gc(a,vd(a,b,2))}function ud(a){var b=md(a,a.u[6]|65536);a.u[6]=a.u[6]+2&65535;return b}
function sd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.F&57344||(a.Ya=a.Ya<<8|246);!a.B&&c<=a.Za&&4<c&&(c<=a.Za-32?(a.J|=4,a.u[6]=4,a.L(4,18)):(a.J|=8,a.D|=4));c=vd(a,c|65536,4);a.H.nb(c,b&65535)}
function wd(a,b,c,d){var e,f,g=d&8?0:a.Cb;switch(b){case 0:return a.L(4,20),0;case 1:return 6===c&&!a.B&&d&4&&(a.u[6]<=a.Za||65534<=a.u[6])&&(a.u[6]<=a.Za-32||65534<=a.u[6]?(a.J|=4,a.u[6]=4,a.L(4,22)):(a.J|=8,a.D|=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=md(a,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=md(a,e)|g;
a.b-=8;break;case 6:return e=ld(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=ld(a),e=e+a.u[c]&65535,e=md(a,e|65536)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.F&57344||(a.Ya=a.Ya<<8|f<<3&248|c);6==c&&!a.B&&d&4&&0>=f&&(a.u[6]<=a.Za||65534<=a.u[6])&&(a.u[6]<=a.Za-32?(a.J|=4,a.u[6]=4,a.L(4,24)):(a.J|=8,a.D|=64));return e}k.Pc=function(a,b,c){return wd(this,a,b,c)};k.Qc=function(a,b,c){return vd(this,wd(this,a,b,c),c)};
function xd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=wd(a,b,d,2),c&65536||61440!==(a.P&61440)&&(d&=65535),a.B=a.P>>12&3,c=md(a,d|c&65536),a.B=a.P>>14&3):c=6!=d||(a.P>>2&12288)===(a.P&12288)?a.u[d]:a.ya[a.P>>12&3];return c}function yd(a,b,c,d){a.F&57344||(a.Ya=22);var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=wd(a,b,e,4),c&65536||(e&=65535),a.B=a.P>>12&3,e=vd(a,e|c&65536,4),a.B=a.P>>14&3,a.H.nb(e,d&65535)):6!=e||(a.P>>2&12288)===(a.P&12288)?a.u[e]=d:a.ya[a.P>>12&3]=d}
function zd(a,b){b>>=6;var c=a.I=b&7;(b=a.G=(b&56)>>3)?(c=a.ba(b,c,3),a=a.H.jb(c)):a=a.u[c]&255;return a}function Ad(a,b){var c;b>>=6;var d=a.I=b&7;(b=a.G=(b&56)>>3)?c=gc(a,a.ba(b,d,2)):c=a.u[d];return c}function Bd(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return wd(a,b,c,8)}function Cd(a,b){var c=a.f=b&7;(b=a.g=(b&56)>>3)?(c=a.ba(b,c,3),a=a.H.jb(c)):a=a.u[c]&255;return a}function Dd(a,b){var c,d=a.f=b&7;(b=a.g=(b&56)>>3)?c=gc(a,a.ba(b,d,2)):c=a.u[d];return c}
function Q(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.eb=a.ba(b,e,7),c=d.call(a,c,a.H.jb(e)),e&1&&a.b--,a.H.Rb(e,c&255)):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function R(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.ba(b,e,6),c=d.call(a,c,gc(a,e)),a.H.nb(e,c&65535)):a.u[e]=d.call(a,c,a.u[e])}function Ed(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.ba(b,e,5),d&1&&a.b--,a.H.Rb(d,c&255)):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}
function Fd(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.ba(b,d,4),a.H.nb(d,c&65535)):a.u[d]=c&65535;return c}function T(a,b,c){c&&(nd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
k.zb=function(a){this.v.complete=!0;var b=this.v.Mc=this.j&&Gd(this.j),c=a?this.v.nc?0:1:-1;this.v.nc=!1;this.$=this.b=a;do{if(b){if(Hd(this.j,this.u[7],c)){this.ja();break}c=1}if(this.D&&(this.D&112&&(this.D&32?this.L(168,28):this.D&64?this.L(4,30):this.D&16&&this.L(12,32),this.D&=-113),this.D&7))if(this.D&2){this.D&=-3;a=null;for(var d=this.lc&224,e=this.w.length;0<=--e;){if(0<this.w[e].Ta){this.w[e].Ta--;this.D|=2;break}if(this.w[e].sc){if(!this.w[e].sc()){this.w.splice(e,1);continue}this.w[e].sc=
null}this.w[e].Vc>d&&(d=this.w[e].Vc,a=this.w[e],this.w.splice(e,1))}d>(this.P&224)&&(this.D&4&&(this.u[7]=this.u[7]+2&65535,this.D&=-5),a?this.L(a.od,26):this.L(160,26))}else this.D&1&&this.D++;this.F&57344||(this.Ya=0,this.ac=this.u[7]);this.D=this.D&7|this.P&16;this.decode(ld(this))}while(0<this.b);return this.v.complete?this.$-this.b:void 0===this.v.complete?0:-1};Ja(function(){for(var a=D(document,"pdpjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new fd(d);cb(d,c)}});
function Id(a,b){var c=b+a;pd(this,c,a,b);return c&65535}function Jd(a,b){var c=b+a;pd(this,c<<8,a<<8,b<<8);return c&255}function Kd(a,b){a=b<<1;qd(this,a);return a&65535}function Ld(a,b){a=b<<1;qd(this,a<<8);return a&255}function Md(a,b){a=b&32768|b>>1|b<<16;qd(this,a);return a&65535}function Nd(a,b){a=b&2048|b>>1|b<<8;qd(this,a<<8);return a&255}function Od(a,b){a=b&~a;P(this,a);return a}function Pd(a,b){a=b&~a;P(this,a<<8);return a}function Qd(a,b){a|=b;P(this,a);return a}
function Rd(a,b){a|=b;P(this,a<<8);return a}function Sd(a,b){a=~b|65536;od(this,a);return a&65535}function Td(a,b){a=~b|256;od(this,a<<8);return a&255}function Ud(a,b){a=b-a;this.D&128||(this.X=this.aa=a,this.W=b&(b^a));return a&65535}function Vd(a,b){a=b-a;var c=a<<8;b<<=8;this.D&128||(this.X=this.aa=c,this.W=b&(b^c));return a&255}function Wd(a,b){a=b+a;this.D&128||(this.X=this.aa=a,this.W=a&(b^a));return a&65535}
function Xd(a,b){a=b+a;var c=a<<8;this.D&128||(this.X=this.aa=c,this.W=c&(b<<8^c));return a&255}function Yd(a,b){a=-b;od(this,a,a&b&32768);return a&65535}function Zd(a,b){a=-b;od(this,a<<8,(a&b&128)<<8);return a&255}function $d(a,b){a=b<<1|this.V>>16&1;qd(this,a);return a&65535}function ae(a,b){a=b<<1|this.V>>16&1;qd(this,a<<8);return a&255}function be(a,b){a=(this.V&65536|b)>>1|b<<16;qd(this,a);return a&65535}function ce(a,b){a=((this.V&65536)>>8|b)>>1|b<<8;qd(this,a<<8);return a&255}
function de(a,b){var c=b-a;rd(this,c,a,b);return c&65535}function ee(a,b){var c=b-a;rd(this,c<<8,a<<8,b<<8);return c&255}function fe(a,b){this.D&128||(this.X=this.aa=b&65280,this.W=this.V=0);return(b<<8|b>>8)&65535}function ge(a,b){a^=b;P(this,a);return a&65535}
function he(a){var b=Dd(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.V=this.W=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.V=c<<17-b,c>>=b;else if(b)if(16<b)this.W=c,c=0;else{this.V=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.W=32768)}this.u[a]=c&65535;this.X=this.aa=c;this.b-=(this.g?6:7)+b}
function ie(a){var b=Dd(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.V=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.V=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.W=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 U(a){a&1&&(this.V=0);a&2&&(this.W=0);a&4&&(this.aa=1);a&8&&(this.X=0);this.b-=5}
function je(a){var b=Dd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.V=this.W=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.W=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.W=32768,this.V=65536,this.b-=7}var ke=[0,7,7,10,7,11,9,13];function le(a){var b=this.b;nd(this,Bd(this,a));this.b=b-ke[this.g]}
var me=[0,14,14,17,14,18,16,20];function ne(a){var b=this.b,c=Bd(this,a);a=a>>6&7;sd(this,this.u[a]);this.u[a]=this.u[7];nd(this,c);this.b=b-me[this.g]}var oe=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],pe=[7,13,13,17,14,18,17,21];function qe(a){var b=Dd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.D&128||(this.X=b>>16,this.aa=this.X|b,this.W=0,this.V=-32768>b||32767<b?65536:0);this.b-=23}
function re(){this.b-=5}function V(a){a&1&&(this.V=65536);a&2&&(this.W=32768);a&4&&(this.aa=0);a&8&&(this.X=32768);this.b-=5}function se(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)nd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Me(a){R(this,a,0,fe);this.b-=this.g?9:3+(7==this.f?2:0)}function Ne(a){R(this,a,Ad(this,a),ge);this.b-=this.g?9:3+(7==this.f?2:0)}function W(){this.L(8,6)}function gd(a){Oe[a>>12].call(this,a)}
var Oe=[function(a){Pe[a>>8&15].call(this,a)},function(a){var b=Ad(this,a),c=this.b;P(this,Fd(this,a,b));this.b=c-oe[(this.G?8:0)+this.g]+(7!=this.f||this.g?0:2)},function(a){var b=Ad(this,a);a=Dd(this,a);rd(this,b-a,a,b);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){P(this,Ad(this,a)&Dd(this,a));this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){R(this,a,Ad(this,a),Od);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?
2:0)},function(a){R(this,a,Ad(this,a),Qd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){R(this,a,Ad(this,a),Id);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Qe[a>>8&15].call(this,a)},function(a){Re[a>>8&15].call(this,a)},function(a){var b=zd(this,a);P(this,Ed(this,a,b,1)<<8);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){var b=zd(this,a)<<8;a=Cd(this,a)<<8;rd(this,b-a,a,b);this.b-=this.g?
4+(this.I&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){P(this,(zd(this,a)&Cd(this,a))<<8);this.b-=this.g?4+(this.I&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){Q(this,a,zd(this,a),Pd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Q(this,a,zd(this,a),Rd);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){R(this,a,Ad(this,a),de);this.b-=this.g?9+(this.I&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},W],Pe=
[function(a){Se[a>>4&15].call(this,a)},function(a){T(this,a,!0)},function(a){T(this,a,!kd(this))},function(a){T(this,a,kd(this))},function(a){T(this,a,!this.Ma()==!jd(this))},function(a){T(this,a,!this.Ma()!=!jd(this))},function(a){T(this,a,!kd(this)&&!this.Ma()==!jd(this))},function(a){T(this,a,kd(this)||!this.Ma()!=!jd(this))},ne,ne,function(a){Te[a>>6&3].call(this,a)},function(a){Ue[a>>6&3].call(this,a)},function(a){Ve[a>>6&3].call(this,a)},function(a){We[a>>6&3].call(this,a)},W,W],Te=[function(a){od(this,
Fd(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Sd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Wd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,1,Ud);this.b-=this.g?9:3+(7==this.f?2:0)}],Ue=[function(a){R(this,a,0,Yd);this.b-=this.g?11:6},function(a){R(this,a,id(this)?1:0,Id);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,id(this)?1:0,de);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Dd(this,a);od(this,a);this.b-=this.g?4:3+(7==this.f?
2:0)}],Ve=[function(a){R(this,a,0,be);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,$d);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Md);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){R(this,a,0,Kd);this.b-=this.g?9:3+(7==this.f?2:0)}],We=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=md(this,a|65536);nd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=xd(this,a,0);sd(this,a);P(this,a);this.b-=11},function(a){var b=ud(this),c=this.b;yd(this,a,
0,b);P(this,b);this.b=c-pe[this.g]},function(a){P(this,Fd(this,a,this.Ma?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],Se=[function(a){Xe[a&15].call(this,a)},W,W,W,le,le,le,le,function(a){if(a&8)this.L(8,6);else{var b=ud(this);a&=7;nd(this,this.u[a]);this.u[a]=b;this.b-=9}},function(a){a&8?(this.P&49152||(this.P=this.P&-2017|(a&7)<<5,this.D|=1),this.b-=5):this.L(8,6)},function(a){Ye[a&15].call(this,a)},function(a){Ze[a&15].call(this,a)},Me,Me,Me,Me],Xe=[function(){this.P&49152?(this.J|=128,this.L(4,
3)):ed(this);this.b-=7},function(){this.D|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3},function(){td(this);this.D|=this.P&16;this.b-=13},function(){this.L(12,1);this.b-=5},function(){this.L(16,4);this.b-=25},function(){this.P&49152||(hd(this),this.H.reset());this.b-=667},function(){td(this);this.b-=13},W,W,W,W,W,W,W,W,W],Ye=[re,function(){this.V=0;this.b-=5},function(){this.W=0;this.b-=5},U,function(){this.aa=1;this.b-=5},U,U,U,function(){this.X=0;this.b-=5},U,U,U,U,U,U,U],Ze=[re,function(){this.V=
65536;this.b-=5},function(){this.W=32768;this.b-=5},V,function(){this.aa=0;this.b-=5},V,V,V,function(){this.X=32768;this.b-=5},V,V,V,V,V,V,V],Qe=[qe,qe,je,je,he,he,ie,ie,Ne,Ne,W,W,W,W,se,se],Re=[function(a){T(this,a,!this.Ma())},function(a){T(this,a,this.Ma())},function(a){T(this,a,!id(this)&&!kd(this))},function(a){T(this,a,id(this)||kd(this))},function(a){T(this,a,!jd(this))},function(a){T(this,a,jd(this))},function(a){T(this,a,!id(this))},function(a){T(this,a,id(this))},function(){this.L(24,2);
this.b-=25},function(){this.L(28,5);this.b-=5},function(a){$e[a>>6&3].call(this,a)},function(a){af[a>>6&3].call(this,a)},function(a){bf[a>>6&3].call(this,a)},function(a){cf[a>>6&3].call(this,a)},W,W],$e=[function(a){od(this,Ed(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Td);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Xd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Vd);this.b-=this.g?9:3+(7==this.f?2:0)}],af=[function(a){Q(this,a,0,Zd);this.b-=
this.g?11:6},function(a){Q(this,a,id(this)?1:0,Jd);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,id(this)?1:0,ee);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Cd(this,a);od(this,a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],bf=[function(a){Q(this,a,0,ce);this.b-=this.g?9+(this.eb&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,ae);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Nd);this.b-=this.g?9+(this.eb&1):3+(7==this.f?2:0)},function(a){Q(this,a,0,Ld);this.b-=this.g?9:3+(7==
this.f?2:0)}],cf=[W,function(a){a=xd(this,a,65536);sd(this,a);P(this,a);this.b-=11},function(a){var b=ud(this),c=this.b;yd(this,a,65536,b);P(this,b);this.b=c-pe[this.g]},W];function df(a){w.call(this,"ROM",a,df);this.f=null;this.B=a.addr;this.g=a.size;this.F=a.writable;this.C=a.alias;this.w=a.file;this.G=da(this.w);if(this.w){a=this.w;var b=ea(this.G);"json"!=b&&"hex"!=b&&(a=ga()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;ra(a,null,!0,function(a,b,f){ef(c,a,b,f)})}}y(df);
df.prototype.Na=function(a,b,c,d){this.H=b;this.b=c;this.j=d;ff(this)};df.prototype.Ja=function(){if(this.Ka){if(this.j){var a=this.j,b=this.id,c=this.B,d=this.g,e=this.Ka,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],t=oa(n,l,a.tc);0>t&&n.splice(-(t+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({xd:b,A:c,Rc:d,Ka:e,qc:f})}delete this.Ka}return!0};df.prototype.Ia=function(){return!0};
function ef(a,b,c,d){if(d)a.sa("Unable to load system ROM (error "+d+": "+b+")");else{Za(a.dc,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,h=eval("("+c+")");if(f=h.bytes)a.f=f;else if(f=h.words)for(a.f=Array(2*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255;else if(f=h.data)for(a.f=Array(4*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=h;a.Ka=h.symbols;if(!a.f.length){r("Empty ROM: "+
b);return}if(1==a.f.length){r(a.f[0]);return}}catch(l){a.sa("ROM data error: "+l.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),e=0;e<b.length;e++)a.f[e]=aa(b[e],16);ff(a)}}
function ff(a){if(!fb(a))if(!a.w)G(a);else if(a.f&&a.H){a.g||(a.g=a.f.length);if(a.f.length!=a.g)hb(a,"ROM size ("+p(a.f.length,8,!0)+") does not match specified size ("+p(a.g,8,!0)+")");else{var b;b=a.B;if(Db(a.H,b,a.g,a.F?1:nc)){var c;for(c=0;c<a.f.length;c++){a.j&&a.j.g++;var d=a.H,e=b+c;d.O[(e&d.g)>>>d.ca].Bb(e&d.f,a.f[c]&255,e);a.j&&a.j.g--}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(c=0;c<b.length;c++){for(var f=a,d=b[c],e=f.H,g=f.g,h=[],l=f.B>>>
e.ca;0<g&&l<e.O.length;)h.push(e.O[l++]),g-=e.Ca;e=f.H;f=f.g;g=0;for(d>>>=e.ca;0<f&&d<e.O.length;){l=h[g++];if(!l)break;e.O[d++]=l;f-=e.Ca}}delete a.f}}G(a)}}Ja(function(){for(var a=D(document,"pdpjs","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new df(d);cb(d,c)}});function gf(a){w.call(this,"RAM",a,gf);this.C=a.addr;this.g=a.size;this.f=!1}y(gf);k=gf.prototype;k.Na=function(a,b,c,d){this.H=b;this.b=c;this.j=d;G(this)};k.Ja=function(a,b){b||this.reset();return!0};
k.Ia=function(a){return a?this.save():!0};k.reset=function(){!this.f&&this.g&&Db(this.H,this.C,this.g,1)&&(this.f=!0);this.f||r("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};Ja(function(){for(var a=D(document,"pdpjs","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new gf(d);cb(d,c)}});function hf(a){w.call(this,"Keyboard",a,hf,65536);G(this)}y(hf);hf.prototype.pa=function(){return!1};hf.prototype.Na=function(a,b,c,d){this.C=a;this.b=c;this.j=d;this.qa=null};
Ja(function(){for(var a=D(document,"pdpjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new hf(d);cb(d,c)}});function Y(a){this.w=this.F=null;this.Z=a.tabSize;this.S=a.charBOL;this.G=0;w.call(this,"SerialPort",a,Y,8388608);var b=a.binding;if("console"==b)this.F="";else{var c;a=jf;b&&(void 0===c&&(c="Panel"),(c=bb(c,this.id))&&(b=c.K[b])&&this.pa(null,a,b))}this.I=this.N=null;this.exports={connect:this.zc,receiveData:this.kc}}y(Y);var jf="buffer";k=Y.prototype;
k.pa=function(a,b,c){var d=this;switch(b){case jf:return this.K[b]=this.w=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.kc(b);return!0},c.onkeypress=function(a){a=a||window.event;d.kc(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
k.Na=function(a,b,c,d){this.C=a;this.H=b;this.b=c;this.j=d;var e=this;this.$=Mb(this.b,function(){e.f&128||!e.B.length||(e.Y=e.B.shift(),e.f|=128,e.f&64&&L(e.b,40,4,48))});this.U=function(){e.g|=128;return!!(e.g&64)};Jb(b,this,kf);G(this)};
k.zc=function(){if(!this.I){var a=Ac(this.C,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.pb)return;b=ma(b[1]);if(this.I=ab(b)){var d=this.I.exports;if(d){var e=d.connect;e&&e.call(this.I);if(this.N=d.receiveData){this.status(this.dc+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.Ja=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
k.Ia=function(a){return a?this.save():!0};k.reset=function(){lf(this)};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return lf(this)};function lf(a){a.Y=0;a.f=0;a.g=128;a.B=[];return!0}k.kc=function(a){if("number"==typeof a)this.B.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.B.push(a.charCodeAt(b));else this.B=this.B.concat(a);Nb(this.b,this.$,50);return!0};k.$c=function(){return this.f&65535};k.td=function(a){this.f=this.f&-112|a&111};
k.Zc=function(){this.f&=-129;0<this.B.length&&Nb(this.b,this.$,50);return this.Y};k.sd=function(){};k.bd=function(){return this.g};k.vd=function(a){128==(this.g&192)&&a&64&&L(this.b,8,4,52,this.U);this.g=this.g&-70|a&69};k.ad=function(){return 0};
k.ud=function(a){if(a&=255){E(this,"transmitByte("+p(a,2,!0)+")");this.N&&this.N.call(this.I,a);if(this.w)if(13==a)this.G=0;else if(8==a)this.w.value=this.w.value.slice(0,-1),0<this.G&&this.G--;else{var b;b=(b=na[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.Z||8,c=a-this.G%a,this.Z&&(b=ha("",c)));this.S&&!this.G&&c&&(b=String.fromCharCode(this.S)+b);this.w.value+=b;this.w.scrollTop=this.w.scrollHeight;this.G+=c}else if(null!=this.F){if(10==a||1024<=this.F.length)this.i(this.F),
this.F="";10!=a&&(this.F+=String.fromCharCode(a))}this.g&=-129;L(this.b,100,4,52,this.U)}};var mf={},kf=(mf[65392]=[null,null,Y.prototype.$c,Y.prototype.td,"RCSR"],mf[65394]=[null,null,Y.prototype.Zc,Y.prototype.sd,"RBUF"],mf[65396]=[null,null,Y.prototype.bd,Y.prototype.vd,"XCSR"],mf[65398]=[null,null,Y.prototype.ad,Y.prototype.ud,"XBUF"],mf);Ja(function(){for(var a=D(document,"pdpjs","serial"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Y(d);cb(d,c)}});
function nf(a){w.call(this,"Debugger",a,nf);this.ea=a.base||16;this.Ba=!1;this.Y=this.Aa=this.I=0;this.$=!1;this.B=-1;this.w=[];this.la={}}y(nf);var of={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};nf.prototype.xc=function(){return-1};nf.prototype.yc=function(){};
function pf(a,b,c,d){if(c)if(b){0>a.B&&a.w.length&&(a.B=0);if(0>a.B||b!=a.w[a.B])a.w.splice(0,0,b),a.B=0;a.B--}else a.$?b="end":b=a.w[a.B+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ma(b.substring(c,f))),c=f+1}}return a}
function qf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function rf(a,b,c){var d;if(b){b=sf(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=ma(n);if(!n){f=!0;break}n=tf(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],q=n.length;l.length&&of[n]<of[l[l.length-1]]&&qf(h,l,1);l.push(n);b=b.substr(t+q)}qf(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&uf(a,null,
d))}return d}function sf(a,b){for(var c,d=a.Ba?"(":"{",e=a.Ba?")":"}",f=new RegExp(a.Ba?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=rf(a,c[1]);b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.Y-a.Aa}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
function tf(a,b,c,d){var e;null!=b?(e=a.xc(b),0<=e?e=a.yc(e):(e=a.la[b],null==e&&(e=aa(b,a.ea))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function uf(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+". "+ca(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}function vf(a,b){if(b)return uf(a,b,a.la[b]);var c=0;for(b in a.la)uf(a,b,a.la[b]),c++;return 0<c}
function J(a,b,c,d){switch(a.ea){case 8:a=ca(b,3*c);break;case 10:a=b.toString();break;default:a=p(b,2*c)}d&&"0"==a.charAt(0)&&(a=a.replace(/^0+([0-9A-F]+)$/i,"$1"));return a}
function wf(a){nf.call(this,a);this.Ba=!0;this.S=Z(0);this.ob=Z(0);this.Z=Z(0);this.G=[];this.f=this.U=this.F=[];xf(this);this.wa=0;yf(this);this.eb={};zf(this,a.messages);this.fb=a.commands;var b=this;window?void 0===window.pdpjs&&(window.pdpjs=function(a){return Dc(b,a)}):void 0===global.pdpjs&&(global.pdpjs=function(a){return Dc(b,a)})}y(wf,nf);
var Af={"?":"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"},Bf="NONE 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(" "),
Cf={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],35072:[107]},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,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};k=wf.prototype;
k.Na=function(a,b,c,d){this.H=b;this.b=c;this.C=a;(a=Ac(a,"messages"))&&zf(this,a);this.Ib=Cf;Df(this,function(a){a:{var b=d.H.O,c=a[0],e=a=0,l=b.length;if(c){a=d.ba(Ef(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.ca;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Gb[c],n&&d.i(p(n.id,8)+" %"+p(e<<d.H.ca,8)+" %%"+p(n.A,8)+" "+p(n.Ub,
4,!0)+" "+p(n.size,4,!0)+" "+m),c!=mc&&(c=-1),m=0);a+=d.H.Ca;e++}}});G(this)};
k.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ua=this.K[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Dc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.w.length-1&&(b=d.w[++d.B])):40==a.keyCode&&(0<d.B?b=d.w[--d.B]:(b="",d.B=-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.K[b]=c,Da(c,function(){if(d.ua){var a=d.ua.value;
d.ua.value="";Dc(d,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=c,Da(c,function(a){var b=!1;eb(d,!0)||(db(d,!0),b=d.zb(a?1:0),db(d,!1));return b}),!0}return!1};k.Tb=function(){this.ua&&this.ua.focus()};k.ba=function(a){a=a&&a.A;null==a&&(a=-1);return a};k.jb=function(a,b){var c=255,d=this.ba(a,!1,1);-1!==d&&(this.g++,c=this.H,c=c.O[(d&c.g)>>>c.ca].Nb(d&c.f,d),this.g--,b&&Ff(a,b));return c};
k.Ha=function(a,b){var c=65535,d=this.ba(a,!1,2);-1!==d&&(this.g++,c=Hb(this.H,d),this.g--,b&&Ff(a,b));return c};k.Rb=function(a,b,c){var d=this.ba(a,!0,1);if(-1!==d){this.g++;var e=this.H;e.O[(d&e.g)>>>e.ca].Bb(d&e.f,b&255,d);this.g--;c&&Ff(a,c);N(this.b,!0)}};k.nb=function(a,b,c){var d=this.ba(a,!0,2);if(-1!==d){this.g++;var e=this.H,f=d&e.f,g=(d&e.g)>>>e.ca;f!=e.f?e.O[g].pc(f,b&65535,d):(e.O[g++].Bb(f,b&255,d),e.O[g&e.C].Bb(0,b>>8&255,d+1));this.g--;c&&Ff(a,c);N(this.b,!0)}};
function Z(a){return{A:a,Ga:!1}}function Gf(a){return[a.A,a.Ga]}function Hf(a){return{A:a[0],Ga:a[1]}}function Ef(a,b,c){var d;c=(c?a.S:a.ob).A;if(void 0!==b){d=b=sf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Ka[d];if(void 0!==f){d=f.o;void 0!==d&&(e=Z(d));break}}if(d=e)return d;c=rf(a,b,void 0)}null!=c&&(d=Z(c));return d}function If(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Kc=pf(a,b.Fc=c[2]))}function Ff(a,b){null!=a.A&&(a.A+=b||1)}
function zf(a,b){a.j=a;a.ka=a.Lc=536870912;a.xa=null;a.za=[];a.g=0;b=pf(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in H){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.ka|=H[c],a.i(c+" messages enabled"))}}function Df(a,b){for(var c in H)if(64==H[c]){a.eb[c]=b;break}}
k.xc=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Jf(a){return 6>a?"R"+a:6==a?"SP":"PC"}k.yc=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Oa[a-8]:20>a?b=this.b.ya[a-16]:20==a&&(b=Qb(this.b)));return b};
k.message=function(a,b){this.g||(b&&(a+=" @"+J(this,Z(this.b.u[7]).A)),this.ka&1073741824?this.za.push(a):this.xa&&a==this.xa||(this.xa=a,this.ka&-2147483648&&(this.ja(),a+=" (cpu halted)"),this.i(a),this.b&&(a=this.b,ed(a),a.la=0,N(a))))};
function yf(a){var b;if(Gd(a)){if(!a.N||!a.N.length){a.N=Array(1E3);for(b=0;b<a.N.length;b++)a.N[b]=Z();a.qa=0;a.i("instruction history buffer allocated")}if(!a.ma||!a.ma.length)for(a.ma=Array(256),b=0;b<a.ma.length;b++)a.ma[b]=[b,0]}else a.N&&a.N.length&&a.i("instruction history buffer freed"),a.qa=0,a.N=[],a.ma=[]}k.yb=function(a){if(!Kf(this))return!1;this.b.yb(a);return!0};
k.zb=function(a,b,c){if(!Kf(this))return!1;this.I=0;a||Gd(this)&&Hd(this,this.b.u[7],0);try{a=cd(this.b,a);var d=this.b.zb(a);0<d&&(dd(this.b,a),this.I+=d,Ic(this.b,d,!0),Ec(this.b,d),this.Y++)}catch(e){"number"!=typeof e&&(this.I=0,hb(this.b,e.stack||e.message))}!1!==c&&N(this.b);this.Fa(b||!1);return 0<this.I};k.ja=function(a){this.b&&this.b.ja(a)};k.Fa=function(a){void 0===a&&(a=!0);this.S=Z(this.b.u[7]);a&&1!=this.ha?Lf(this):Mf(this)};
function Kf(a){var b;if(b=a.b&&fb(a.b))b=a.b,b.v.ia?b=!0:(b.i(b.toString()+" not powered"),b=!1);return b&&!a.b.v.ga?!gb(a.b):!1}k.Ja=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};k.Ia=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){yf(this);this.Y=this.Aa=0;this.xa=null;this.I=0;this.S=Z(this.b.u[7]);this.v.ga=!1;Nf(this);a||this.Fa()};
k.save=function(){var a=new O(this);a.set(0,Gf(this.S));a.set(1,Gf(this.Z));a.set(2,[this.w,this.$,this.ka]);a.set(3,this.G);return a.data()};k.restore=function(a){var b=0;void 0!==a[2]&&(this.S=Hf(a[b++]),this.Z=Hf(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.$=a[b][1],this.ka|=a[b][2]);a[3]&&(this.G=a[3]);return!0};k.start=function(a,b){this.ha||this.i("running");this.v.ga=!0;this.Vb=a;this.Wb=b};
k.stop=function(a,b){if(this.v.ga){this.v.ga=!1;this.I=b-this.Wb;if(!this.ha){b="stopped";if(this.I){a-=this.Vb;var c=0<a?Math.round(1E3*this.I/a):0;b+=" (";Gd(this)&&(b+=this.Y+" opcodes, ",this.Aa-=this.Y,this.Y=0);b+=this.I+" cycles, "+a+" ms, "+c+" hz)"}else F(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}this.Fa(!0);this.Tb();Nf(this,this.b.u[7])}};function Gd(a){return 1<a.f.length||!!a.wa}
function Hd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||vc(a,b,1,a.f)))return!0;0<=c&&a.ma.length&&(a.Y++,a.g++,b=Hb(a.H,b),a.g--,null!=b&&(b=a.N[a.qa],b.A=d.u[7],b.Ga=!1,++a.qa==a.N.length&&(a.qa=0)));return!1}function xf(a){var b,c;a.f=["bp"];if(a.U)for(b=1;b<a.U.length;b++){c=a.U[b];var d=a.H;c=a.ba(c);wc(d.O[c>>>d.ca],!1)}a.U=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.H,c=a.ba(c),wc(d.O[c>>>d.ca],!0);a.F=["bw"];a.Cb=0}
k.gb=function(a,b,c){var d=!0;c||Of(this,a,b,!1,!0);if(a!=this.f){var e=this.ba(b);if(-1===e)this.i("invalid address: "+J(this,b.A)),d=!1;else{var f=this.H;f.O[e>>>f.ca].gb(e&f.f,a==this.F)}}d&&(a.push(b),c?b.Ga=!0:(Pf(this,a,a.length-1,"set"),yf(this)));return d};function Of(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.Ga)){f=!0;h.Ga||e||Pf(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.H,wc(d.O[c>>>d.ca],b==a.F));h.Ga||yf(a);break}}return f}
function Qf(a,b){for(var c=1;c<b.length;c++)Pf(a,b,c);return b.length-1}function Pf(a,b,c,d){c=b[c];a.i(b[0]+" "+J(a,c.A)+(d?" "+d:c.Fc?' "'+c.Fc+'"':""))}function Nf(a,b){if(void 0!==b)vc(a,b,1,a.f,!0),a.ha=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ga){if(!Of(a,a.f,c,!0))break;b=0}}}
function vc(a,b,c,d,e){var f=!1;if(!a.Cb++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ga)for(var l=a.ba(h),m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Ga&&(Of(a,d,h,!0),e=!0);if(n=h.Kc){for(var f=!1,t=0;t<n.length;t++)if(!Rf(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var q=t+1;q<n.length&&n[q].indexOf("else");q++)t++;if(q==n.length){f=!0;break}}a.b.v.ga||(f=!0)}if(f){e||Pf(a,d,g,"hit");break}}}a.Cb--;return f}
function Sf(a,b,c,d){var e=Z(b.A),f=a.Ha(b,2),g,h;for(h in a.Ib)if(g=a.Ib[h][f&h])break;g||(g=[0]);for(var l=h="",m=Bf[g[0]],n=g.length-1,t=1;t<=n;t++){var q=g[t];if(void 0!==q){var u;u=a;var z=q,q=b,v="",A=z&61440;if(4096==A)q=q.A+((f&255)<<24>>23)&65535,v=J(u,q);else if(8192==A)q=q.A-((f&63)<<1)&65535,v=J(u,q);else if(12288==A)v=J(u,f&7,1);else if(24576==A)v=J(u,f&63,1);else if(A=f&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:v=Jf(z);break;case 8:v="@"+Jf(z);break;case 16:7>z?v="("+Jf(z)+
")+":(A=u.Ha(q,2),v="#"+J(u,A,0,!0));break;case 24:7>z?v="@("+Jf(z)+")+":(A=u.Ha(q,2),v="@#"+J(u,A,0,!0));break;case 32:v="-("+Jf(z)+")";break;case 40:v="@-("+Jf(z)+")";break;case 48:A=u.Ha(q,2);v=J(u,A,0,!0)+"("+Jf(z)+")";7==z&&(v=[v,J(u,A+q.A&65535)]);break;case 56:A=u.Ha(q,2),v="@"+J(u,A)+"("+Jf(z)+")",7==z&&(v=[v,J(u,A+q.A&65535)])}u=v;if(!u||!u.length){h="INVALID";break}"string"!=typeof u&&(l=u[1],u=u[0]);0<h.length&&(h+=",");h+=u||"???"}}f="";g=J(a,e.A)+":";if(-1!==e.A&&-1!==b.A){do if(f+=" "+
J(a,a.Ha(e,2)),null==e.A)break;while(e.A!=b.A)}g+=ha(f,24);g+=ha(m,5);h&&(g+=" "+h);if(c||l)g=ha(g,60)+";"+(c||""),g=a.b.v.qb?g+("cycles="+Fc(a.b).toString()+" cs="+p(a.b.Kb)):g+(null!=d?"="+d.toString():""),l&&(g+=" @"+l);return g}function Tf(a,b){switch(b){case "N":a=a.b.Ma();break;case "Z":a=kd(a.b);break;case "V":a=jd(a.b);break;case "C":a=id(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Uf(a,b){var c="",d=a.b;8>b?(c=Jf(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Oa[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.ya[b-16]):20==b&&(c="PS="+J(a,Qb(d)));c&&(c+=" ");return c}function Vf(a){var b,c="";for(b=0;6>b;b++)c+=Uf(a,b);c=c+"\n"+(Uf(a,6)+Uf(a,7)+Uf(a,20));return c+=Tf(a,"T")+Tf(a,"N")+Tf(a,"Z")+Tf(a,"V")+Tf(a,"C")}k.tc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Wf(a,b,c){var d=[],e=a.ba(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],g=f.A>>>0,h=f.Rc;if(e>=g&&e<g+h){e=oa(f.qc,[e-g],a.tc);0<=e?Xf(a,b,e,d):c&&(e=~e,Xf(a,b,e-1,d),Xf(a,b,e,d));break}}return d}function Xf(a,b,c,d){var e={},f=a.G[b].qc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.G[b].Ka[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Yf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return vf(a)||a.i("no variables"),!0;if(!c[2])return vf(a,c[1]);if(!c[3])return delete a.la[c[1]],!0;b=rf(a,c[3]);return void 0!==b?(a.la[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function Zf(a,b,c){var d=null;if(b=Ef(a,b,!0)){a.ba(b);var e=Wf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.A-e[1])&&(g=" + "+p(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.A)&&(g=" - "+p(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
function Lf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\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.i("missing value for "+b[1]);return}f=rf(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":nd(d,f);a.S=Z(d.u[7]);break;case "N":d.X=f?32768:0;break;
case "Z":d.aa=f?0:1;break;case "V":d.W=f?32768:0;break;case "C":d.V=f?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.i("unknown register: "+e);return}N(d);a.i("updated registers:")}a.i(Vf(a));c&&(a.S=Z(d.u[7]),Mf(a,J(a,a.S.A)))}}function $f(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):uf(a,null,c[2].charCodeAt(0)):rf(a,b,!0)}
function ag(a,b,c){var d="t"!=b;c=tf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return db(a,!0)&&a.zb(e,d,!1)},function(){N(a.b);db(a,!1)})}
function Mf(a,b,c,d){if(b=Ef(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Ef(a,c,!0);if(!d||d.A<b.A)return;e=d.A-b.A;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=eb(a,!1)||a.ha?a.I:null;var g=null!=f?"cycles":null,h=Wf(a,b),l=b.A;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=Sf(a,b,g,f);a.i(f);a.S=b;e-=b.A-l;c++}}}
function Rf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.$&&(a.i("ended assemble at "+J(a,a.Z.A)),a.S=a.Z,a.$=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(fb(a)&&0<b.length){a.$&&(b="a "+J(a,a.Z.A)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");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}}g[0]=g[0].toLowerCase();switch(g[0].charAt(0)){case "a":var t=
Ef(a,g[1],!0);if(t)if(a.Z=t,void 0===g[2])a.i("begin assemble at "+J(a,t.A)),a.$=!0,N(a.b);else{var q;a.i("not supported yet");q=[];if(q.length){for(var u=0;u<q.length;u++)a.Rb(t,q[u],1);a.i(Sf(a,a.Z))}}break;case "b":a:{var z=g[0],v=g[1],A=b;if("?"==v)a.i("breakpoint commands:"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),a.i("\tbl\tlist all breakpoints"),
a.i("\tbn [n]\tbreak after [n] instruction(s)");else{var xa=z.charAt(1);if("l"==xa){var Kc;Kc=0+Qf(a,a.f);Kc+=Qf(a,a.U);(Kc+=Qf(a,a.F))||a.i("no breakpoints")}else if("n"==xa)a.wa=tf(a,v),a.i("break after "+a.wa+" instruction(s)");else if(void 0===v)a.i("missing breakpoint address");else{var S=Z();if("*"!=v&&(S=Ef(a,v,!0),!S))break a;"c"==xa?null==S.A?(xf(a),a.i("all breakpoints cleared")):Of(a,a.f,S)||Of(a,a.U,S)||Of(a,a.F,S)||a.i("breakpoint missing: "+J(a,S.A)):null!=S.A&&(If(a,S,A),"p"==xa?a.gb(a.f,
S):"r"==xa?a.gb(a.U,S):"w"==xa?a.gb(a.F,S):a.i("unknown breakpoint command: "+xa))}}}break;case "c":a.hb&&(a.hb.value="");break;case "d":a:{var Ma,Na=g[0],ia=g[1],ya=g[2],pg=g[3];if("?"==ia){var Oa="";for(Ma in H)a.eb[Ma]&&(Oa&&(Oa+=","),Oa+=Ma);Oa+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Oa.length&&
a.i("dump extension commands:\n\t"+Oa)}else if("state"==ia){var te=bg(a.C,!0);"console"==ya?console.log(te):(a.hb&&(a.hb.value=""),a.i(te))}else if("symbols"==ia)for(var Lc=0;Lc<a.G.length;Lc++){var Mc=a.G[Lc],Pa;for(Pa in Mc.Ka)if("."!=Pa.charAt(0)){var ue=Mc.Ka[Pa].o;if(void 0!==ue){var ve=Mc.Ka[Pa].l;ve&&(Pa=ve);a.i(J(a,ue)+" "+Pa)}}}else{if("d"==Na){for(Ma in H)if(g[1]==Ma){var we=a.eb[Ma];we?(g.shift(),g.shift(),we(g)):a.i("no dump registered for "+ia);break a}ia||(Na=a.hc||"db")}else a.hc=Na;
if("dh"==Na){var xe=ia,ye=ya,ze="",Ae=0,ba=a.qa,ja=a.N;if(ja.length){var X=+xe||a.Fb,kb=+ye||10;isNaN(X)?X=kb:ze="more ";X>ja.length&&(a.i("note: only "+ja.length+" available"),X=ja.length);ba-=X;0>ba&&(null==ja[ja.length-1].A?(X=ba+X,ba=0):ba+=ja.length);var Nc=[];"call"==ye&&(kb=1E5,Nc=["CALL"]);for(void 0!==xe&&a.i(X+" instructions earlier:");0<kb&&ba!=a.qa;){var Be=ja[ba++];if(null==Be.A)break;var lb=Z(Be.A),qg=X--,Ce=Sf(a,lb,"history",qg);(!Nc.length||0<=Ce.indexOf(Nc[0]))&&a.i(Ce);lb.fc&&(ba+=
lb.fc,kb-=lb.fc,X-=lb.fc);ba>=ja.length&&(ba=0);a.Fb=X;Ae++;kb--}}Ae||(a.i("no "+ze+"history available"),a.Fb=void 0)}else{var Xb=Ef(a,ia);if(Xb){var Yb=0;ya&&("l"==ya.charAt(0)&&(ya=ya.substr(1)||pg),Yb=tf(a,ya)>>>0,65536<Yb&&(Yb=65536));for(var mb="",Qa="dd"==Na?4:"dw"==Na?2:1,Zb=Qa*Yb||128,rg=Zb+15>>4||1;rg--&&0<Zb;){var nb=0,Oc=0,ob,Pc="",De="",ia=J(a,Xb.A);for(ob=4==Qa?16:a.ea;0<ob&&0<Zb;ob--){var $b=a.jb(Xb,1),nb=nb|$b<<(Oc++<<3);Oc==Qa&&(Pc+=8==a.ea?ca(nb,3*Qa):p(nb,2*Qa),Pc+=1==Qa?9==ob?"-":
" ":" ",nb=Oc=0);De+=32<=$b&&128>$b?String.fromCharCode($b):".";Zb--}mb&&(mb+="\n");mb+=ia+" "+Pc+(0==ob?" "+De:"")}mb&&a.i(mb);a.ob=Xb}}}}break;case "e":if("else"==g[0])break;var Ra,Qc,Rc,Sc,Tc=g[0],Uc=g[1];"eb"==Tc?(Ra=1,Qc=255,Rc=a.jb,Sc=a.Rb):"e"==Tc||"ew"==Tc?(Ra=2,Qc=65535,Rc=a.Ha,Sc=a.nb):Uc=null;if(null==Uc)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var ac=Ef(a,Uc);if(ac)for(var bc=2;bc<g.length;bc++){var pb=
rf(a,g[bc]);if(void 0===pb){a.i("unrecognized value: "+g[bc]);break}pb&~Qc&&a.i("warning: "+p(pb)+" exceeds "+Ra+"-byte value");var sg=Rc.call(a,ac);a.i("changing "+J(a,ac.A)+" from "+J(a,sg,Ra)+" to "+J(a,pb,Ra));Sc.call(a,ac,pb,Ra)}}break;case "g":a:{var Ee=g[1],tg=b;if(void 0!==Ee){var Vc=Ef(a,Ee,!0);if(!Vc)break a;If(a,Vc,tg);a.gb(a.f,Vc,!0)}a.yb(!0)||c||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a.v.ga?(c||a.i("halting"),a.ja()):eb(a,!0)||c||a.i("already halted");break;
case "i":if("if"==g[0]){var Wc;var qb=b.substr(2),qb=ma(qb);rf(a,qb)?(c||a.i("true: "+qb),Wc=!0):(c||a.i("false: "+qb),Wc=!1);Wc||(d=!1);break}f=!0;break;case "k":var ug=g[0];if("?"==g[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Xc=0,Yc=Z(),rb=Z(a.b.u[6]);for(a.i("stack trace for "+J(a,rb.A));10>Xc;){for(var za=null,vg=256;65536>rb.A>>>0;){Yc.A=a.Ha(rb,2);if(null==rb.A||!vg--)break;if(!(Yc.A&1)){for(var wg=a,cc=Yc,Fe=null,sb=cc.A,
Ge=sb,Zc=1;6>=Zc&&sb;Zc++){if(2<Zc){cc.A=sb;var dc=Sf(wg,cc);if(0<=dc.indexOf("JSR")){var He=dc.indexOf(" ");if(sb+(dc.indexOf(" ",He+1)-He-1)/2==Ge){Fe=dc;break}}}sb-=2}cc.A=Ge;if(za=Fe)break}}if(!za||null==za)break;var Ie=null;if("ks"==ug){var Je=za.match(/[0-9A-F]+$/);Je&&(Ie=Zf(a,Je[0]))}za=ha(za,50)+" ;"+(Ie||"stack="+J(a,rb.A));a.i(za);Xc++}Xc||a.i("no return addresses found")}break;case "l":if("ln"==g[0]){Zf(a,g[1],!0);break}f=!0;break;case "m":a:{var ka,la=null,C=g[1];"?"==C&&(C=void 0);
if(void 0!==C){var ta=0;if("all"==C)ta=1878917119,C=null;else if("on"==C)la=!0,C=null;else if("off"==C)la=!1,C=null;else{"keys"==C&&(C="key");"kbd"==C&&(C="keyboard");for(ka in H)if(C==ka){ta=H[ka];la=!!(a.ka&ta);break}if(!ta){a.i("unknown message category: "+C);break a}}if(ta)if("on"==g[2])a.ka|=ta,la=!0;else if("off"==g[2]&&(a.ka&=~ta,la=!1,1073741824==ta)){for(var $c=0;$c<a.za.length;$c++)a.i(a.za[$c]);a.za=[]}}var xg=0,tb="";for(ka in H)if(!C||C==ka){var yg=!!(a.ka&H[ka]);if(null===la||la==yg)tb&&
(tb+=","),++xg%10||(tb+="\n\t"),"key"==ka&&(ka="keys"),tb+=ka}void 0===C&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==la?la?"messages on: ":"messages off: ":"message categories:\n\t")+(tb||"none"));yf(a)}break;case "p":if("print"==g[0]){$f(a,b.substr(5));break}var zg="pr"==g[0]?1:0;if(a.ha)a.i("step in progress");else{var Ke=Z(a.b.u[7]);a.jb(Ke);a.ha?(a.gb(a.f,Ke,!0),a.yb()||(a.C&&a.C.Tb(),a.ha=0)):ag(a,zg?"tr":"t")}break;case "r":if("reset"==b){a.C&&a.C.reset();
break}Lf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var ub=+g[2];if(8==ub||10==ub||16==ub)a.ea=ub;else{a.i("invalid base: "+ub);break}}a.i("default base: "+a.ea);break;case "cs":var vb;void 0!==g[3]&&(vb=+g[3]);switch(g[2]){case "int":a.b.sb=vb;break;case "start":a.b.Lb=vb;break;case "stop":a.b.tb=vb;break;default:a.i("unknown cs option");break a}void 0!==vb&&Cc(a.b);a.i("checksums "+(a.b.v.qb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Hc(a.b,+g[2])||a.i("warning: using 1x multiplier, previous target not reached"));
a.i("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.Xa+"x)");break;default:if(g[1]){a.i("unknown option: "+g[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":ag(a,g[0],g[1]);break;case "u":Mf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Yf(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.i("PDP11 version 1.30.0 ("+a.b.Uc+",RELEASE"+(ib?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){$f(a,b.substr(1));break}var ad="commands:",bd;for(bd in Af)ad+="\n"+ha(bd,9)+Af[bd];Gd(a)||(ad+="\nnote: history disabled if no exec breakpoints");a.i(ad);break;default:f=!0}f&&(a.i("unknown command: "+b),d=!1)}}catch(Le){a.i("debugger error: "+(Le.stack||Le.message)),d=!1}return d}
function Dc(a,b,c){b=pf(a,b,c);for(var d in b)if(!Rf(a,b[+d]))return!1;return!0}Ja(function(){for(var a=D(document,"pdpjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new wf(d);cb(d,c)}});
function cg(a,b,c){w.call(this,"Computer",a,cg,67108864);this.v.ia=!1;dg(this,b);this.S=Ac(this,"autoPower",a);this.C=0;this.ea=a.busWidth||a.buswidth;this.f=eg;this.I=null;this.F=this.Z=!1;this.url=Ac(this,"url")||"";(Math.random()+.1).toString(36);this.g=fg(this);if(this.b=bb("CPU",this.id)){this.j=bb("Debugger",this.id);this.H=new xb({id:this.dc+".bus",busWidth:this.ea},this.b,this.j);var d,e=$a(this.id);if((this.w=bb("Panel",this.id))&&this.w.hb)for(b=0;b<e.length;b++)d=e[b],d.sa=this.w.sa,d.i=
this.w.i,d.hb=this.w.hb;this.i("PDP11 v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.i("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Na&&d.Na(this,this.H,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.G=d:this.f=parseInt(d,10));var f;if(a=Ac(this,"state")||(f=!0,a.state))b=this.U=a,f||(this.F=!0,this.f=eg),this.f&&
(this.N=new O(this,"1.30.0"),gg(this.N)?b=null:delete this.N);!b&&this.f&&(b=hg(this))&&(this.F=!0);if(b){var g=this;ra(b,null,!0,function(a,b,c){c?(g.G=null,g.F=!1,g.sa("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.I=b,g.Z=!0);G(g)})}else G(this);this.K.power||(this.S=!0);!c&&this.S&&ig(this,this.Mb)}else r("Unable to find CPU component")}y(cg);var eg=0;
function dg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.$=b}function Ac(a,b,c){var d=b.toLowerCase(),d=Ta[b]||Ta[d];void 0===d&&a.$&&(d=a.$[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ig(a,b,c){for(var d=$a(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!fb(f)){fb(f,function(){ig(a,b,c)});return}}b.call(a,c)}
function jg(a,b){var c=new O(a,"1.30.0","validate");if(gg(c)&&kg(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.sa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=cg.prototype;
k.Mb=function(a){void 0===a&&(a=this.f||(this.I?1:eg));if(!this.C){this.C++;var b=!1,c=!1;this.Y=!1;var d=this.N||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>eg){if(gg(d,this.I)){this.B=new O(this,"1.30.0","failsafe");gg(this.B)&&(lg(this,d),a=2,mg(this.B));this.B.set("timestamp",qa());ng(this.B);var e=this.f&&!this.F;if(1==a||sa("Click OK to restore the previous PDP11 machine state, or CANCEL to reset the machine.")){if(c=kg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?gg(d,g):("error"==
f&&"no machine state"!=g?(this.sa("Error: "+g),"unable to verify user"==g&&(Aa("user",""),this.g=null)):this.i(f+": "+g),mg(d),gg(d)?(c=kg(d),e=!0):c=!1))}e&&jg(this,c?d:null)}else 2==a&&d.clear()}else jg(this);delete this.I;delete this.N}e=$a(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=og(this,g,d,b,c));b=[d,a,c];-1!=a?ig(this,this.vc,b):this.vc(b)}};
function og(a,b,c,d,e){if(!b.v.ia){b.v.ia=!0;if(b.Ja){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ja(f,d)&&f&&(r("Unable to restore state for "+b.type),a.U&&!a.Z?(c.clear(),a.f=eg,window&&window.location.reload()):a.Y=!0,b.Ja(null),e=!1)}if(!d&&b.rc)for(a=b.rc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
k.vc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.v.ia=!0;var d=this.K.power;d&&(d.textContent="Shutdown");this.b&&(og(this,this.b,b,c,a),this.b.Eb());this.Y&&(lg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.C=0};
function lg(a,b){if(sa("There may be a problem with your PDP11 machine.\n\nTo help us diagnose it, click OK to send this PDP11 machine state to http://www.pcjs.org.")){var c=a.g||"";b=b.toString();var d={app:"PDP11",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ra("http://www.pcjs.org/api/v1/report",d,!0)}}
function bg(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=qa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.0");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ia&&(c&&a.b.ja(),d=a.b.Ia(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ia=!1,!1===d&&(e=null)));for(var h=$a(a.id),l=0;l<h.length;l++){var m=h[l];m.v.ia&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&f.set(m.id,
d)),c&&(m.v.ia=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&Ag(a,a.g,f.toString()),ng(g)&&ng(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.v.ia=!1,b=a.K.power)&&(b.textContent="Power");a.C=0;return e}k.reset=function(){this.H&&this.H.reset&&(E(this,"Resetting "+this.H.type),this.H.reset());for(var a=$a(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c.reset&&(E(this,"Resetting "+c.type),c.reset())}};
k.start=function(a,b){for(var c=$a(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=$a(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
k.pa=function(a,b,c){var d=this;switch(b){case "power":return this.K[b]=c,c.onclick=function(){d.C||(d.v.ia?bg(d,!1,!0):ig(d,d.Mb))},!0;case "reset":return this.K[b]=c,c.onclick=function(){if(d.v.ia&&!d.C)if(d.f&&!d.G){var a=sa("Click OK to save changes to this PDP11 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bg(d,a,!0);!a&&d.U?window&&window.location.reload():d.Mb(eg)}else d.reset(),d.b&&d.b.Eb()},!0;case "save":if(fa())c.parentNode.removeChild(c);else return this.K[b]=
c,c.onclick=function(){var a=fg(d,!0);if(a){var b=!!(d.f&&!d.G||d.U),c=bg(d,b);b?Ag(d,a,c):d.sa("Resume disabled, machine state not saved")}},!0}return!1};
function fg(a,b){var c=a.g;c||((c=wa("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=Bg(a,c))||a.sa("The user ID is invalid.")):b&&a.sa("Browser local storage is not available"));return c}
function Bg(a,b){a.g=null;b=ra(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&&(Aa("user",b.data),a.g=b.data)}catch(d){r(d.message+" ("+c+")")}return a.g}function hg(a){var b=null;a.g&&(b=ga()+"/api/v1/user?req=load&user="+a.g+"&state="+Cg(a,"1.30.0"));return b}
function Ag(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cg(a,"1.30.0");d.data=c;b=ra(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.sa("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.sa(c),Aa("user",""),a.g=null)}}k.Tb=function(){};
k.Fa=function(a){this.b&&this.b.Fa(a);this.w&&this.w.Fa(a)};Ja(function(){for(var a=D(document,"pdpjs-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdpjs","computer"),e=0;e<c.length;e++){var f=c[e],g=B(f),g=new cg(g,d,!0);cb(g,f);g.S&&ig(g,g.Mb)}});Ea.show.push(function(){for(var a=D(document,"pdpjs","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=bb("Computer",c.id))&&c.ha&&!c.v.ia&&c.Mb(-1)}});
Ea.exit.push(function(){for(var a=D(document,"pdpjs","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=bb("Computer",c.id))&&c.v.ia&&bg(c,!(!c.f||c.G),!0)}});function O(a,b,c){this.id=a.id;this.key=Cg(a,b,c);this.j=a.j;mg(this,a.Oc)}function Cg(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){mg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
1);c=0}}};function mg(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function ng(a){var b=!0;if(va()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function kg(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function gg(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:va()&&(b=wa(a.key))?(a[a.id]=b,a.b=!0):!1}window.enableEvents=function(a){!Ha&&a?(Ha=!0,Fa&&La("init"),Ga&&La("show")):Ha=a};
window.sendEvent=La;})();