226 lines
82 KiB
JavaScript
226 lines
82 KiB
JavaScript
(function(){/*
|
|
http://pcjs.org/modules/shared/lib/diskapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/messages.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/device.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/rom.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/ram.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/computer.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/int36.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/defines.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/panel.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/bus.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/memory.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/cpu.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/cpustate.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/cpuops.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/serial.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
*/
|
|
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
|
|
function ha(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
|
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
|
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
|
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={$b:0,nb:1,bc:2,cc:3,dc:4,ec:5,fc:6,gc:7,Ya:8,hc:9,ob:10,ic:11,jc:12,pb:13,kc:14,lc:15,mc:16,nc:17,oc:18,pc:19,qc:20,rc:21,sc:22,tc:23,uc:24,vc:25,wc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Xa:65,Zb:66,ac:67,xc:68,E:69,yc:70,zc:71,Ac:72,Bc:73,Cc:74,Dc:75,Ec:76,Fc:77,Gc:78,Hc:79,Ic:80,Q:81,
|
|
Jc:82,Kc:83,Lc:84,Mc:85,Nc:86,Oc:87,Pc:88,Qc:89,tb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Rc:97,Sc:98,Tc:99,d:100,e:101,Uc:102,Vc:103,Wc:104,Xc:105,Yc:106,k:107,Zc:108,$c:109,n:110,ad:111,p:112,q:113,r:114,bd:115,t:116,dd:117,ed:118,fd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,qb:127};
|
|
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.bb=b.comment;this.sb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ja=this.id:(this.Ka=this.id.substr(0,a),this.Ja=this.id.substr(a+1));this.j={ready:!1,Ea:!1,Ua:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.V=c||0;this.A=this.g=this.C=this.D=this.ka=null;v.push(this)}function ta(a,b,c){ua[a]&&b&&(ua[a][b]=c)}function va(){return Date.now()||+new Date}
|
|
function w(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function xa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
|
|
function y(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}
|
|
function ya(a,b){var c=B;b=C(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=A(g))&&h.binding&&a.ea(h.type,h.binding,g,h.value),m=k.length}}}}
|
|
function C(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}
|
|
function za(a){for(var b=!0,c=Aa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ba.indexOf(e)&&(f=function(){return function(){za(a)}}());var g=Ca[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=y(d[1],a);if(h)if(g=Ea[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Aa[a];return b}l=t.prototype;
|
|
l.toString=function(){return this.name?this.name:this.id||this.type};
|
|
l.ea=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ka=this.G[b]=c,c.value="",this.f=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.Z=function(a){this.f(a,this.Ja)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
|
l.status=function(a){this.f(this.Ja+": "+a)};l.Z=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function Ka(a,b){a.j.error=!0;a.Z(b)}function La(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Ma(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Na(a,b){a.j.Ea&&(b?a.j.Ua=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Ea}
|
|
function Oa(a,b){if(a.j.Ua)return a.j.Ea=!1,a.j.Ua=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Ea=b;return a.j.Ea}l.ma=function(){return this.j.U=!0};l.da=function(a,b){b&&(this.j.U=!1);return!0};function Pa(a,b){if(a.A){a===a.A?b|=0:b=b||a.V;var c=a.A.V&b;return!!b&&c===b||!!(c&a.A.hb)}return!1}function E(a,b,c,d){a.A&&(!0===c||Pa(a,c|0))&&a.A.message(b,d)}
|
|
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
|
var ua=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Aa=window?window.PCjs.Commands:{},Ba=["hold","sleep","wait"],Ca={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ea={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
|
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
|
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
|
function Qa(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)}return c}function Ra(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
|
|
function F(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>a&&-1<a&&(a=-1);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 G(a){return F(a,4,!0)}function Sa(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 Ta(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
|
function Ua(){var a=Va();return-1!==a.indexOf("pcjs.org",a.length-8)}function Wa(a){return a.replace(/[&<>"']/g,function(a){return Xa[a]})}function Ya(a,b){return(a+" ").slice(0,b)}function Za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Xa={"&":"&","<":"<",">":">",'"':""","'":"'"};
|
|
function $a(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}function ab(){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 jb(a,b,c,d){c=void 0===c?!1:c;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 k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
|
function kb(a,b){var c,d={W:null,T:null,ja:null,ia:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ja=g.load;d.ia=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,
|
|
d.W[f++]=e[c]>>8&255,d.W[f++]=e[c]>>16&255,d.W[f++]=e[c]>>24&255;else d.W=g;d.T=g.symbols;d.W.length?1==d.W.length&&(w(d.W[0]),d=null):(w("Empty resource: "+a),d=null)}catch(h){w("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){w("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.W=e)}return d}
|
|
function Va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function lb(){if(null==mb){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}mb=a}return mb}function nb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
|
function ob(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pb(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)}return!1}
|
|
function qb(a){if(!rb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}rb=c}return rb[a]}function sb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
function tb(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}}function ub(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function vb(a){wb.init.push(a)}
|
|
function xb(a){if(yb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){w(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function zb(a){!yb&&a?(yb=!0,Ab&&Bb("init"),Cb&&Bb("show")):yb=a}function Bb(a){wb[a]&&xb(wb[a])}var rb=null,wb={init:[],show:[],exit:[]},Ab=!1,Cb=!1,yb=!0,mb=null;ub("onload",function(){Ab=!0;xb(wb.init)});ub("onpageshow",function(){Cb=!0;xb(wb.show)});ub(pb("Opera")||pb("iOS")?"onunload":"onbeforeunload",function(){xb(wb.exit)});
|
|
var B="pdp10",Db="PDPjs",Jb=Math.pow(2,18),Kb=Math.pow(2,18)-1,Lb=Math.pow(2,36),Mb=Math.pow(2,21),Nb=Math.pow(2,26),Ob=Math.pow(2,23),B="pdp10",Db="PDPjs",H={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
|
function Pb(a,b){t.call(this,"Panel",a,512);this.I=this.K=0;this.S=b;this.i=this.H=this.u=this.w=0;this.L=this.M=-1;this.N=this.O=this.F=!1;this.P=Qb;this.B={};this.b={START:[1,1,!0,!1,this.Gb],STEP:[1,1,!1,!1,this.Hb],ENABLE:[1,1,!1,!1,this.Bb],CONT:[1,1,!0,!1,this.zb],DEP:[0,0,!0,!1,this.Ab],EXAM:[1,1,!0,!1,this.Cb],LOAD:[1,1,!0,!1,this.Eb],TEST:[0,0,!0,!1,this.Db]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Fb,a];this.A=this.g=this.C=this.D=null;this.exports={hold:this.xb,toggle:this.Sb,reset:this.Ob,
|
|
set:this.Rb};D(this)}p(Pb,t);l=Pb.prototype;l.reset=function(a){this.stop();a&&Rb(this,this.w=0)};
|
|
l.ea=function(a,b,c,d){if(this.D&&this.D.ea(a,b,c,d)||this.g&&this.g.ea(a,b,c,d)||this.A&&this.A.ea(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.K++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.K++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Sb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Tb(a,b)}}(this,b),a.ontouchstart=
|
|
function(a,b){return function(c){Sb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Tb(a,b)}}(this,b),!0):t.prototype.ea.call(this,a,b,c,d)}};l.ua=function(a,b,c,d){this.D=a;this.C=b;this.g=c;this.A=d;Ub(this);Vb(this)};l.ma=function(a,b){if(!b)if(this.S&&Wb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.da=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.w,this.u]);return a.data()};
|
|
l.restore=function(a){if(a=a[0])Xb(this,this.i=a[0]),Rb(this,this.w=a[1]),Yb(this,a[2]);return!0};l.Ob=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}Vb(this);return!0};function Zb(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Ub(a,b){for(var c in a.B)Zb(a,c,null!=b?b:a.B[c])}function $b(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Vb(a){for(var b in a.b)$b(a,b,a.b[b][1])}
|
|
l.xb=function(a,b,c){if(Sb(this,b)){if(c){var d=this;setTimeout(function(){Tb(d,b);a&&a()},+c);return!1}Tb(this,b)}return!0};l.Rb=function(a,b){if("SR"==a)return Yb(this,Qa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,$b(this,a,c[1]),!0):!1};l.Sb=function(a){return Sb(this,a)?(Tb(this,a),!0):!1};function Sb(a,b){var c=a.b[b];return c?($b(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=ac&&(a.N=b==bc,a.O=b==cc),!0):!1}
|
|
function Tb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&($b(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Gb=function(a){a||this.g.j.J||(this.g.i=this.i%Jb,this.b[dc]&&this.b[dc][1]&&ec(this.g))};l.Hb=function(){};l.Bb=function(a){a||this.g.R()};
|
|
l.zb=function(a){if(!a&&!this.g.j.J)if(this.b[dc]&&this.b[dc][1])ec(this.g);else{if((a=this.A)&&!Na(a,!0))Oa(a,!0),fc(a,0,null),Oa(a,!1);else try{var b=this.g.Ia(1);0<b&&(gc(this.g,b),hc(this.g,b,!0),ic(this.g,b))}catch(c){"number"!=typeof c&&Ka(this.g,c.stack||c.message)}this.stop();this.D&&K(this.D)}};l.Ab=function(a){a&&!this.g.j.J&&(this.N&&jc(this),a=Rb(this,this.w=this.u),this.P==Qb?kc(this.C,this.i,a):this.g.wa(this.i,a))};
|
|
l.Cb=function(a){if(!a&&!this.g.j.J){var b;this.O&&jc(this);this.P==Qb?b=lc(this.C,this.i):b=this.g.aa(this.i);Rb(this,this.w=b)}};l.Eb=function(a){a||this.g.j.J||Xb(this,this.u)};l.Db=function(a){a?(this.F=!0,Ub(this,!0)):(this.F=!1,Ub(this),Yb(this,0))};l.Fb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function jc(a){var b=1,c=a.C.u;a.b[ac]&&a.b[ac][1]||(b=-b);Xb(a,a.i&~c|a.i+b&c)}
|
|
function Xb(a,b){a.i=b&a.C.u;if(a.L!==a.i){a.L=a.i;b=a.L;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.B[e]=f;d.F||Zb(d,e,f)}}}function Rb(a,b){a.H=b%Lb;if(a.M!==a.H){a.M=a.H;b=a.M;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.B[e]=f;d.F||Zb(d,e,f)}}return a.H}function Yb(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Vb(a);return!0}l.stop=function(){Xb(this,this.g.i)};
|
|
function Wb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=xa(d.id);e||(e=new Pb(d,!0));ya(e,c)}}var Qb=7,bc="DEP",dc="ENABLE",cc="EXAM",ac="STEP";vb(Wb);function mc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.H=+a.busWidth||18;this.F=1<<this.H;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.w=0;this.b=[];a=new L(this);nc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(mc,t);l=mc.prototype;l.reset=function(){};
|
|
l.ma=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.da=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,oc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){w("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
|
function pc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.v)return h.Ha+=h.v-e,h.v=e,!0;if(e>=h.v+h.Ha){m=h.size-(e-k);m>f&&(m=f);h.Ha=e-h.v+m;e=k+16384;f-=m;g++;continue}}return qc(rc,e,f)}e=new L(a,e,m,16384,d);nc(e,a.A,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+Ra(b)),!0):qc(Jc,b,c)}
|
|
function lc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.i(b&16383,b);a.w--;return b}function kc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function oc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.La||e.ub){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
|
l.wb=function(a){this.w||(this.A&&Pa(this.A,4)&&E(this.A,"memory fault on "+M(this.A,a),!0,!0),this.g.R())};function qc(a,b,c){w("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var rc=1,Jc=2;function Kc(a){t.call(this,"Device",a,256)}p(Kc,t);l=Kc.prototype;l.ua=function(a,b,c,d){this.C=b;this.D=a;this.g=c;this.A=d;D(this)};l.ma=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.da=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new J(this)).data()};
|
|
l.restore=function(){return!0};vb(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new Kc(c),ya(c,d)}}});function L(a,b,c,d,e){this.B=a;this.id=Lc+=2;this.v=b;this.Ha=c;this.size=d||0;this.type=e||Mc;this.G=e==Nc;this.b=null;this.aa=this.i=this.u=this.Ga;this.wa=this.D=this.w=this.va;this.A=this.C=0;nc(this);this.La=this.ub=!1;if(this.size){a=this.g=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=L.prototype;
|
|
l.save=function(){return this.g};l.restore=function(a){return a&&this.size==a.length?(this.g=a,this.La=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.A||(a.aa=b[2]||a.Ga);if(c||void 0===c)a.u=b[0]||a.Ga,a.i=b[2]||a.Ga}function Sc(a,b,c){c&&a.C||(a.wa=!a.G&&b[3]||a.va);if(c||void 0===c)a.w=b[1]||a.va,a.D=b[3]||a.va}l.Aa=function(a,b){b?this.C++||Sc(this,Tc,!1):this.A++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.C||(a.wa=a.G?a.va:a.D):--a.A||(a.aa=a.i)}
|
|
function nc(a,b,c){a.b=b;a.A=a.C=0;c&&((a.A=c.A)&&Rc(a,Tc,!1),(a.C=c.C)&&Sc(a,Tc,!1))}l.Ga=function(a,b){this.b&&Pa(this.b,32)&&E(this.b,"attempt to read invalid address "+M(this.b,b),!0);this.B.wb(b);return-1};l.va=function(a,b,c){this.b&&Pa(this.b,32)&&E(this.b,"attempt to write "+M(this.b,a)+" to invalid addresses "+M(this.b,c),!0)};l.Jb=function(a,b,c,d){a=this.g[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};l.Mb=function(a){return this.g[a]};
|
|
l.Vb=function(a,b,c,d,e){c=this.g[b];var f=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*f+d%f;this.g[b]!=c&&(this.g[b]=c,this.La=!0)};l.Xb=function(a,b){this.g[b]=a;this.La=!0};l.Ib=function(a,b,c,d){if(this.b&&null!=this.v){var e=this.b;Vc(e,this.v+a,1,e.K)&&e.R(!1)}return this.u(a,b,c,d)};l.Kb=function(a,b){if(this.b&&null!=this.v){var c=this.b;Vc(c,this.v+a,2,c.K)&&c.R(!1)}return this.i(a,b)};
|
|
l.Ub=function(a,b,c,d,e){if(this.b&&null!=this.v){var f=this.b;Vc(f,this.v+b,1,f.F)&&f.R(!1)}this.G?this.va(a,0,c):this.w(a,b,c,d,e)};l.Wb=function(a,b,c){if(this.b&&null!=this.v){var d=this.b;Vc(d,this.v+b,2,d.F)&&d.R(!1)}this.G?this.va(a,0,c):this.D(a,b,c)};var Mc=0,Nc=2,Ic=["NONE","RAM","ROM"],Lc=0,Qc=[],Pc=[L.prototype.Jb,L.prototype.Vb,L.prototype.Mb,L.prototype.Xb],Tc=[L.prototype.Ib,L.prototype.Ub,L.prototype.Kb,L.prototype.Wb];
|
|
function Wc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Sa=b;this.S=c;this.Qa=Math.round(this.Sa/1E4)/100;this.P=this.Qa*this.S;this.Ra=this.ta=this.Y=this.ya=0;this.j.J=this.j.Pa=!1;this.j.X=a.autoStart;"string"==typeof this.j.X&&(this.j.X="true"==this.j.X);this.j.Da=!1;this.ra=this.fa=0;this.sa=+a.csStart;this.ba=+a.csInterval;this.ga=+a.csStop;this.H=[];this.eb=this.Pb.bind(this);this.M=this.F=this.K=this.L=this.B=this.qa=this.I=this.ha=this.Ta=this.O=0;this.xa=
|
|
null;D(this)}p(Wc,t);l=Wc.prototype;l.ua=function(a,b,c,d){this.D=a;this.C=b;this.A=d;this.xa=a.u;for(a=0;a<Xc.length;a++)(b=this.G[Xc[a]])&&this.D.ea(null,Xc[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
|
l.ma=function(a,b){var c=Yc(this.D,"autoStart");null!=c?this.j.X="true"==c?!0:"false"==c?!1:!!c:null==this.j.X&&(this.j.X=!this.A&&void 0===this.G.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.A?(a=this.A,b=this.j.X,a.xa=!0,a.f("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.sa&&(b=a.sa,a.sa=null,cd(a,b))):this.status("No debugger detected");this.j.X||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
|
l.da=function(a){return a?this.save():!0};l.X=function(){return this.j.J?!0:this.j.X?(ec(this),!0):!1};l.kb=function(){return 0};function $c(a){void 0===a.sa&&(a.sa=0);void 0===a.ba&&(a.ba=-1);void 0===a.ga&&(a.ga=-1);a.j.Da=0<=a.sa&&0<a.ba;a.j.Da&&(a.ra=0,a.fa=a.sa-a.M)}function ic(a,b){if(a.j.Da){var c=!1;a.ra=a.ra+a.kb()|0;a.fa-=b;0>=a.fa&&(a.fa+=a.ba,c=!0);0<=a.ga&&a.ga<=dd(a)&&(a.ba=a.ga=-1,$c(a),a.R(),c=!0);c&&a.f(dd(a)+" cycles: checksum="+F(a.ra))}}
|
|
l.ea=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.j.U)a=!0;else{var b=null,c,h=x(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.J?d.R():ec(d))},!0;case "speed":return this.G[b]=
|
|
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){ed(d,d.S<<1,!0)},c.textContent=this.P.toFixed(2)+"Mhz",!0}return!1};function hc(a,b,c){a.M+=b;c&&(a.K=a.L=0)}function fd(a,b){var c=1;b&&1<a.S&&a.O&&(c=a.O/a.Qa);a.Ra=Math.round(1E3/gd);a.ta=Math.floor(a.Sa/gd*c);b||(a.Y=a.ta);a.ya=0}function dd(a){return a.M+a.F+a.K-a.L}function Zc(a){a.O=0;a.Ta=0;a.M=a.F=a.K=a.L=0;$c(a);ed(a,1)}
|
|
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.O/a.P?b=1:d=!0;a.S=b;b=a.Qa*a.S;if(a.P!=b){a.P=b;b=a.P.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.D&&hd(a.D)}hc(a,a.F);a.F=0;a.B=va();a.I=0;fd(a);return d}function id(a,b){for(var c=a.H.length-1;0<=c;c--){var d=a.H[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.H.length;c++)b.push(a.H[c][0]);return b}
|
|
function gc(a,b){for(var c=a.H.length-1;0<=c;c--){var d=a.H[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.K-=a.L;a.L=0;b&&(a.K=0);return c}
|
|
l.Pb=function(){if(this.j.J){this.ya>=this.Sa&&fd(this,!0);this.ha=0;this.qa=va();if(this.I){var a=this.qa-this.I;a>this.Ra&&(this.B+=a,this.B>this.qa&&(this.B=this.qa))}try{do{var b=id(this,this.j.Da?1:this.ta);try{this.Ia(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.ha+=b;this.F+=b;ic(this,b);gc(this,b);this.Y-=b;if(0>=this.Y){this.Y+=this.ta;++this.Ta>=ld&&(this.D&&K(this.D,void 0),this.Ta=0);break}}while(this.j.J)}catch(e){this.R();this.D&&this.D.stop(va(),dd(this));Ka(this,e.stack||
|
|
e.message);return}if(this.j.J){a=setTimeout;b=this.eb;this.I=va();var c=this.Ra;this.ha&&(c=Math.round(c*this.ha/this.ta));var c=c-(this.I-this.qa),d=this.I-this.B;d&&(this.O=Math.round(this.F/(10*d))/100,864E5<=d&&(this.M=0,ed(this)));if(0>c||this.O<this.P)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ha;this.I+=c;a(b,c)}}};
|
|
function ec(a,b){if(!La(a))if(a.j.J)a.f(a.toString()+" busy");else{ed(a);a.j.J=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.D&&(b&&hd(a.D,!0),a.D.start(a.B,dd(a)));a.A||a.status("Started");setTimeout(a.eb,0)}}l.Ia=function(){return 0};l.R=function(a){var b=!1;if(this.j.J){kd(this);hc(this,this.F);this.F=0;this.j.J=!1;if(b=this.G.run)b.textContent="Run";this.D&&this.D.stop(va(),dd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
|
|
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.cb=b;this.ab=+a.addrReset||0;this.rb=nd.bind(this);this.b=P.bind(this);this.na=null;this.$a=[];this.j.complete=!1}p(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.cb);this.j.J&&this.R();this.w=this.N=this.za=0;this.oa=this.i=this.pa=this.ab;this.u=0;this.aa=this.Lb;this.wa=this.Yb;this.na=null;Zc(this);this.j.error=!1;Wc.prototype.reset.call(this)};l.kb=function(){return 0};
|
|
l.save=function(){var a=new J(this);a.set(0,[this.w,this.N,this.za,this.i,this.pa,this.oa,this.u]);a.set(1,[]);a.set(2,[this.M,this.S,this.j.X]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
|
|
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.w=b.next().value;this.N=b.next().value;this.za=b.next().value;this.i=b.next().value;this.pa=b.next().value;this.oa=b.next().value;this.u=b.next().value;b=a[2];this.M=b[0];ed(this,b[1]);this.j.X=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.$a.length;d++){var e=this.$a[d];if(e.Tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.na,this.na=d)}a=a[4];for(b=0;b<this.H.length&&b<a.length;b++)this.H[b][0]=
|
|
a[b];return!0};function pd(a,b){var c=a.i;a.i=(c+b)%Jb;return c}function od(a){var b=[];for(a=a.na;a;)b.push(a.Tb),a=a.next;return b}l.Lb=function(a){var b=this.C;a=this.oa=a;return b.b[(a&b.u)>>>b.i].aa(a&16383,a)};l.Yb=function(a,b){var c=this.C;a=this.oa=a;c.b[(a&c.u)>>>c.i].wa(b,a&16383,a)};
|
|
l.Ia=function(a){this.j.complete=!0;var b=this.A?qd(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.K=this.L=a;this.u=this.u&-5|(b?4:0);do{if(this.u){if(this.u&4){if(rd(this.A,this.i,c)){this.R();break}++b||(this.u&=-5);c||c++}if(a=this.u&11)this.u&2?this.na||(this.u&=-3):this.u&1&&this.u++,a=!1;if(a){if(this.u&4&&rd(this.A,this.i,c)){this.R();break}if(0>c)break}}this.u&=15;this.N=this.N&4194304?this.aa(this.w):this.za=this.aa(this.pa=this.i);this.w=this.N&262143;if(a=this.N>>18&
|
|
15)this.w=this.w+this.aa(a)&Kb;this.N&4194304?a=-1:(this.i=(this.i+1)%Jb,a=this.za/Ob|0);0<=a&&this.rb(a)}while(0<this.L);return this.j.complete?this.K-this.L:!1===this.j.complete?-1:0};vb(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new md(d);ya(d,c)}});function nd(a){sd[a>>4].call(this,a)}function Q(a){this.b(a)}function td(a){this.b(a)}function ud(a){this.b(a)}function vd(a){a&=15;var b=this.aa(this.w),c=this.aa(a);this.wa(a,(c&262143)+(b-(b&262143)))}
|
|
function R(a){this.b(a)}function P(a){this.f("undefined opcode: "+Ra(a));pd(this,-1);this.R()}
|
|
var sd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},td,ud,ud,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},td,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},vd,function(a){a&=15;var b=this.aa(a);this.wa(a,b&262143)},function(a){a=this.aa(a&15);var b=this.aa(this.w);this.wa(this.w,(b&262143)+(a-(a&262143)))},function(a){a&15&&vd.call(this,
|
|
a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R];
|
|
function wd(a){t.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=Sa(this.w);if(this.w){a=this.w;var b=Ta(this.F);"json"!=b&&"hex"!=b&&(a=Va()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;jb(a,null,!0,function(a,b,f){f?(c.Z("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(ta(c.Ka,a,b),(a=kb(a,b))?(c.b=a.W,c.T=a.T):c.w=null);xd(c)})}}p(wd,t);
|
|
wd.prototype.ua=function(a,b,c,d){this.C=b;this.g=c;this.A=d;xd(this)};wd.prototype.ma=function(){this.T&&(this.A&&yd(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};wd.prototype.da=function(){return!0};
|
|
function xd(a){if(!Ma(a)){if(a.w){if(!a.b||!a.C)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ka(a,"ROM size ("+F(a.b.length,8,!0)+") does not match specified size ("+F(a.u,8,!0)+")");else{var b;b=a.B;if(pc(a.C,b,a.u,Nc)){var c;for(c=0;c<a.b.length;c++)kc(a.C,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.C,g=d.u,h=[],k=d.B>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.C;d=d.u;g=0;for(e>>>=
|
|
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}vb(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new wd(d);ya(d,c)}});
|
|
function zd(a){t.call(this,"RAM",a);this.T=this.i=null;this.u=+a.addr;this.w=+a.size;this.ja=a.load;this.ia=a.exec;null!=this.ja&&(this.ja=+this.ja);null!=this.ia&&(this.ia=+this.ia);this.B=!1;this.b=a.file;this.F=Sa(this.b);if(this.b){a=this.b;var b=Ta(this.F);"json"!=b&&"hex"!=b&&(a=Va()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;jb(a,null,!0,function(a,b,f){f?(c.Z("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(ta(c.Ka,a,b),(a=kb(a,b))?(c.i=a.W,c.T=a.T,
|
|
null==c.ja&&(c.ja=a.ja),null==c.ia&&(c.ia=a.ia)):c.b=null);Ad(c)})}}p(zd,t);zd.prototype.ua=function(a,b,c,d){this.C=b;this.g=c;this.A=d;Ad(this)};zd.prototype.ma=function(a,b){this.T&&(this.A&&yd(this.A,this.id,this.u,this.w,this.T),delete this.T);b||this.reset();return!0};zd.prototype.da=function(){return!0};
|
|
function Ad(a){if(a.C&&(!a.B&&a.w&&(pc(a.C,a.u,a.w,1)?a.B=!0:a.w=0),!Ma(a))){if(!a.B)w("No RAM allocated");else if(a.b){if(!a.i||!a.C)return;Bd(a,a.i,a.ja,a.ia,a.u)?a.status('Loaded image "'+a.F+'"'):a.Z('Error loading image "'+a.F+'"')}D(a)}}
|
|
zd.prototype.reset=function(){if(this.B){for(var a=this.C,b=this.u,c=this.w,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ma&&(g+=la);g=Math.trunc(Math.abs(g))%la;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.D(g,d,e.v+d);c-=16384;b++;d=0}this.i&&Bd(this,this.i,this.ja,this.ia,this.u,!this.A)}};
|
|
function Bd(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var k=0;k<b.length-1;){var m=b[k]&255|(b[k+1]&255)<<8;if(m)if(m&255){var n=k;if(1!=m){E(a,"invalid signature ("+G(m)+") at offset "+G(n),4096);break}if(k+6>=b.length){E(a,"invalid block at offset "+G(n),4096);break}for(var k=k+2,r=b[k++]&255|(b[k++]&255)<<8,u=b[k++]&255|(b[k++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),N=k,Da=r-=6;0<r&&k<b.length;)m+=b[k++]&255,r--;if(r||k>=b.length){E(a,"insufficient data for block at offset "+G(n),4096);break}m+=
|
|
b[k++]&255;if(m&255){E(a,"invalid checksum ("+F(m,2,!0)+") for block at offset "+G(n),4096);break}if(Da)for(E(a,"loading "+G(Da)+" bytes at "+G(u)+"-"+G(u+Da),4096);Da--;)kc(a.C,u++,b[N++]);else u&1?g=!0:null==d&&(d=u),null!=d&&E(a,"starting address: "+G(d),4096);h=!0}else k++;else k+=2}if(!h&&(null==c&&(c=e),null!=c)){for(h=0;h<b.length;h++)kc(a.C,c+h,b[h]);h=!0}if(h){if(null==d||g)a.g.R(),f=!1;null!=d&&(a=a.g,a.ab=d,a.i=d%Jb,f?a.j.U?a.j.J||ec(a):a.j.X=!0:a.A&&a.j.U?a.R()||a.D.j.reset||(ad(a.A),
|
|
K(a.D,-1)):!1===f&&a.R(),!a.j.J&&a.xa&&a.xa.stop())}return h}vb(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new zd(d);ya(d,c)}});
|
|
function Cd(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Dd;b&&(void 0===c&&(c="Panel"),(c=y(c,this.id))&&(b=c.G[b])&&this.ea(null,a,b))}this.b=this.B=null;this.exports={connect:this.mb,receiveData:this.Na,receiveStatus:this.Nb,setConnection:this.Qb}}p(Cd,t);l=Cd.prototype;
|
|
l.ea=function(a,b,c){var d=this;switch(b){case Dd:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ya:q.qb:46==c?b=q.Ya:a.ctrlKey&&c>=q.Xa&&c<=q.tb&&(b=c-(q.Xa-q.nb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.pb&&(b=q.ob);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
|
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.ua=function(a,b,c,d){this.D=a;this.C=b;this.g=c;this.A=d;D(this)};
|
|
l.mb=function(a){if(!this.b){var b=Yc(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Za(c[0]);if(d!=this.Ja)return;c=Za(c[1]);if(this.b=xa(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ma=function(a,b){if(!b)if(this.mb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
|
l.da=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new J(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Nb=function(){};l.Qb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Dd="buffer";
|
|
vb(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Cd(d);ya(d,c)}});function Ed(a){t.call(this,"Debugger",a);this.ca=+a.base||16;this.na=!1;this.B=0;this.O=!1;this.w=-1;this.u=[];this.Y={}}p(Ed,t);Ed.prototype.lb=function(){return-1};Ed.prototype.Wa=function(){};
|
|
function Fd(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.O?b="end":b=a.u[a.w+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(Za(b.substring(c,f))),c=f+1}}return a}
|
|
function Gd(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 Hd(a,b,c){var d;if(b){b=Id(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Za(n);if(!n){f=!0;break}n=Jd(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++],u=n.length;k.length&&Kd[n]<Kd[k[k.length-1]]&&Gd(h,k,1);k.push(n);b=b.substr(r+u)}Gd(h,k)&&1==h.length||(f=!0);f?c&&a.f("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ld(a,null,
|
|
d))}return d}function Id(a,b){for(var c,d=a.na?"(":"{",e=a.na?")":"}",f=new RegExp(a.na?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Hd(a,c[1]);b=b.replace(d+c[1]+e,null!=g?M(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
|
function Jd(a,b,c,d){var e;null!=b?(e=a.lb(b),0<=e?e=a.Wa(e):(e=a.Y[b],null==e&&(e=Qa(b,a.ca))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
|
function Ld(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var u=null==k||isNaN(k),N=m=m||n;0<n--;)N||(r=","+r,N=m),r=(u?"?":k&1?"1":"0")+r,k>>=1,N--;g=r+g;d>>=8}d=F(c,0,!0)+" "+c+". "+Ra(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
|
function Md(a,b){if(b)return Ld(a,b,a.Y[b]);var c=0;for(b in a.Y)Ld(a,b,a.Y[b]),c++;return 0<c}function M(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:a=Ra(b,0<c?(c+2)/3|0:0);break;case 10:a=b;b=0<c?Math.ceil(.3*c):0;var d="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode(a%10+48)+d,a/=10;a=d;break;default:a=F(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
|
var Kd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
|
function Nd(a){Ed.call(this,a);this.xa=!1;this.na=!0;this.I=T();this.ta=T();this.N=T();this.H=[];this.b=this.K=this.F=[];Od(this);this.P=this.ha=0;this.i=[];this.qa=void 0;Pd(this);this.A=this;this.oa={};this.V=this.hb=0;this.S=null;this.M=[];Qd(this,a.messages);this.sa=a.commands;this.L=0;this.Ca=this.ra=null;this.B=this.za=this.ya=this.ga=this.pa=0;this.fa=this.ba=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return cd(b,a)}):void 0===global[B]&&(global[B]=function(a){return cd(b,
|
|
a)})}p(Nd,Ed);function Y(a){a=a&&a.v;null==a&&(a=-1);return a}function T(a,b,c){return{v:void 0===a?null:a,vb:void 0===b?!1:b,la:!1,ca:c}}function Rd(a){return[a.v,a.vb,a.ca,a.la,a.Oa]}function Sd(a,b){var c=T(b[0],b[1],b[2]);c.la=b[3];b[4]&&(c.fb=Fd(a,c.Oa=b[4]));return c}l=Nd.prototype;
|
|
l.ua=function(a,b,c,d){this.C=b;this.D=a;this.g=c;this.fa=a.u;(a=Yc(a,"messages"))&&Qd(this,a);Td(this,function(a){a:{var b=d.C.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.C.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Ic[c],n&&d.f(F(n.id,8)+" %"+F(e<<d.C.i,8)+" %"+F(n.v,8)+" "+G(n.Ha)+" "+
|
|
G(n.size)+" "+m),c!=Mc&&(c=-1),m=0);a+=16384;e++}}});D(this)};
|
|
l.ea=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ba=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,tb(c,function(){if(d.ba){var a=d.ba.value;
|
|
d.ba.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,tb(c,function(a){var b=!1;Na(d,!0)||(Oa(d,!0),b=fc(d,a?1:0,null),Oa(d,!1));return b}),!0}return!1};function bd(a){if(a.ba){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ba.focus();window&&window.scrollTo(b,c)}}l.Ba=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=lc(this.C,d),b&&null!=a.v&&(a.v+=b||1));return c};l.Za=function(a,b,c){var d=Y(a);-1!==d&&(kc(this.C,d,b),c&&null!=a.v&&(a.v+=c||1),K(this.D,-1))};
|
|
function Z(a,b,c){var d;c=(c?a.I:a.ta).v;var e,f;if(void 0!==b){b=Id(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var k=a.H[c].T[d];if(null!=k){h=k.o;break}}null!=h&&(g=T(h));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=Hd(a,b,void 0)}null!=c&&(d=T(c,e,f));return d}function Ud(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.fb=Fd(a,b.Oa=c[2]))}
|
|
function Vd(a){return Ra(a/Jb,6)+" "+Ra(a%Jb,6)}function Qd(a,b){a.A=a;a.V=a.hb=536870916;a.S=null;a.M=[];b=Fd(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.V|=H[c],a.f(c+" messages enabled"))}}function Td(a,b){for(var c in H)if(16==H[c]){a.oa[c]=b;break}}l.lb=function(a){return Wd.indexOf(a.toUpperCase())};
|
|
l.Wa=function(a){var b;switch(a){case Xd:b=this.g.i;break;case Yd:b=this.g.N;break;case Zd:b=this.g.w}return b};l.message=function(a,b){b&&(a+=" @"+M(this,T(this.g.pa).v));if(!this.S||a!=this.S)if(this.S=a,this.V&1073741824)this.M.push(a);else{var c;if(this.V&-2147483648&&this.g&&(c=this.g.j.J)||Na(this,!0))this.R(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,kd(a),a.Y=0,a.D&&K(a.D,void 0))}};
|
|
function Pd(a){var b;if(!qd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.P=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array($d);for(b=0;b<a.i.length;b++)a.i[b]=T();a.P=0;a.f("instruction history buffer allocated")}}function ae(a,b,c){if(!Ce(a,c))return!1;ec(a.g,b);return!0}
|
|
function fc(a,b,c,d){if(!Ce(a))return!1;var e="";null===c&&(e=(c=!a.ra||"tr"==a.ra)?"tr":"t");a.B=0;b||qd(a)&&rd(a,a.g.i,0);try{b=id(a.g,b);var f=a.g.Ia(b);0<f&&(gc(a.g,f),a.B+=f,hc(a.g,f,!0),ic(a.g,f),a.ga++)}catch(g){"number"!=typeof g&&(a.B=0,Ka(a.g,g.stack||g.message))}!1!==d&&(a.fa&&a.fa.stop(),K(a.D,-1));ad(a,c||!1,e);return 0<a.B}l.R=function(a){this.g&&this.g.R(a)};function ad(a,b,c){a.xa&&(void 0===b&&(b=!0),c&&a.f(Ee+c),a.I=T(a.g.i),b&&1!=a.L?Fe(a):Ge(a))}
|
|
function Ce(a,b){var c;(c=!a.g||!Ma(a.g))||(c=a.g,c.j.U?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.J?(b||a.f("cpu busy or unavailable, command ignored"),!1):!La(a.g)}l.ma=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.da=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Pd(this);this.ga=0;this.S=null;this.B=0;this.I=T(this.g.i);this.j.J=!1;He(this);a||ad(this)};
|
|
l.save=function(){var a=new J(this);a.set(0,Rd(this.I));a.set(1,Rd(this.N));a.set(2,[this.u,this.O,this.V]);a.set(3,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.I=Sd(this,a[b++]),this.N=Sd(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.O=a[b][1],this.V|=a[b][2]);a[3]&&(this.H=a[3]);return!0};l.start=function(a,b){this.L||this.f("running");this.j.J=!0;this.ya=a;this.za=b};
|
|
l.stop=function(a,b){if(this.j.J){this.j.J=!1;this.B=b-this.za;if(!this.L){b="stopped";if(this.B){a-=this.ya;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";qd(this)&&(b+=this.ga+" instructions, ",this.ga=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Pa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}ad(this,!0);bd(this);He(this,this.g.i);this.S=null}};function qd(a){return 1<a.b.length||!!a.ha}
|
|
function rd(a,b,c){var d=-1;c||(d=a.g.aa(b),2756==d>>23&&a.g.pa==b&&(b=pd(a.g,1)));if(0<c&&(a.ha&&!--a.ha||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ga++,0>d&&(d=a.g.aa(b)),0<=d&&(c=a.i[a.P],c.v=b,c.la=!1,c.ca=void 0,++a.P==a.i.length&&(a.P=0)));return!1}
|
|
function Ie(a,b,c,d){var e=T(b.v),f=a.Ba(b,1),g,h,k,m=0,n=f/Mb|0,r;for(r in Je)if(g=Je[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Ke;m=n&3;break;case 32256:k=Le;m=n&7;break;case 29248:k=Me,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>Ne&&(k="B");k=Oe[g||0]+k;k=Ya(k,8);g?(k=28700==h?k+M(a,f/Nb&127,-1):k+M(a,f>>23&15,-1),k+=",",f&4194304&&(k+="@"),k+=M(a,f&262143,-1),(f=f>>18&15)&&(k+="("+M(a,f,-1)+")")):k+=Vd(f);f=k;g="";h=M(a,e.v)+":";if(-1!==e.v&&-1!==b.v){do if(k=a.Ba(e,1),g+=" "+Vd(k),null==
|
|
e.v)break;while(e.v!=b.v)}h+=Ya(g,16)+f;c&&(h=Ya(h,60)+";"+(c||""),h=a.g.j.Da?h+("cycles="+dd(a.g).toString()+" cs="+F(a.g.ra)):h+(null!=d?"="+d.toString():""));return h}function Od(a){var b,c;a.b=["bp"];if(a.K)for(b=1;b<a.K.length;b++){c=a.K[b];c=Y(c);var d=a.C;Uc(d.b[c>>>d.i],!1)}a.K=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],c=Y(c),d=a.C,Uc(d.b[c>>>d.i],!0);a.F=["bw"];a.pa=0;a.ha=0}
|
|
l.Aa=function(a,b,c){var d=!0;c||Pe(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.f("invalid address: "+M(this,b.v)),d=!1;else{var f=this.C;f.b[e>>>f.i].Aa(e&16383,a==this.F)}}d&&(a.push(b),c?b.la=!0:(Qe(this,a,a.length-1,"set"),Pd(this)));return d};function Pe(a,b,c,d,e){var f=!1;c=Y(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Y(h)&&(!d||h.la)){f=!0;h.la||e||Qe(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.C,Uc(d.b[c>>>d.i],b==a.F));h.la||Pd(a);break}}return f}
|
|
function Re(a,b){for(var c=1;c<b.length;c++)Qe(a,b,c);return b.length-1}function Qe(a,b,c,d){c=b[c];a.f(b[0]+" "+M(a,c.v)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function He(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.L=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.la){if(!Pe(a,a.b,c,!0))break;b=0}}}
|
|
function Vc(a,b,c,d,e){var f=!1;if(!a.pa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.la)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.la&&(Pe(a,d,h,!0),e=!0);if(n=h.fb){for(var f=!1,r=0;r<n.length;r++)if(!Se(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.g.j.J||(f=!0)}if(f){e||Qe(a,d,g,"hit");break}}}a.pa--;return f}
|
|
function Te(a,b){var c=Wd[b]||"";c&&(c+="="+M(a,a.Wa(b))+" ");return c}l.ib=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function yd(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],r=$a(n,k,a.ib);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({cd:b,v:c,yb:d,T:e,gb:f})}
|
|
function Ue(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.v>>>0,h=f.yb;if(e>=g&&e<g+h){e=$a(f.gb,[e-g],a.ib);0<=e?Ve(a,b,e,d):c&&(e=~e,Ve(a,b,e-1,d),Ve(a,b,e,d));break}}return d}function Ve(a,b,c,d){var e={},f=a.H[b].gb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
|
function We(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Md(a)||a.f("no variables"),!0;if(!c[2])return Md(a,c[1]);if(!c[3])return delete a.Y[c[1]],!0;b=Hd(a,c[3]);return void 0!==b?(a.Y[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
|
function Xe(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=Ue(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.v-e[1])&&(g=" + "+G(f)),f=e[0]+" ("+M(a,e[1])+")"+g,c&&a.f(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.v)&&(g=" - "+G(f)),f=e[4]+" ("+M(a,e[5])+")"+g,c&&a.f(f),d||(d=f))}else c&&a.f("no symbols")}return d}
|
|
function Fe(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}g=Hd(a,b);if(void 0===g)return;switch(f.toUpperCase()){case "PC":e.i=g%Jb;a.I=T(e.i);break;default:a.f("unknown register: "+
|
|
f);return}K(a.D);a.f("updated registers:")}}f=""+(Te(a,Yd)+Te(a,Zd));d&&(f+="\n");a.f(f);c&&(a.I=T(e.i),Ge(a,M(a,a.I.v)))}}function Ye(a,b){b=Za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):Ld(a,null,c[2].charCodeAt(0)):Hd(a,b,!0)}
|
|
function Ze(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Jd(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ra=b;sb(c,function(){return Oa(a,!0)&&fc(a,e,d,!1)},function(){a.fa&&a.fa.stop();K(a.D,-1);Oa(a,!1)})}}
|
|
function Ge(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Jd(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.v<b.v)return;e=d.v-b.v;if(256<e){a.f("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Na(a,!1)||a.L?a.B:null;var g=null!=f?"cycles":null,h=Ue(a,b),k=b.v;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],f=null);f=Ie(a,b,g,f);a.f(f);a.I=b;e-=b.v-k;c++}}}
|
|
function Se(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Ee+b):(a.O&&(a.f("ended assemble at "+M(a,a.N.v)),a.I=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Ma(a)&&0<b.length){a.O&&(b="a "+M(a,a.N.v)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
|
|
Z(a,g[1],!0);if(r)if(a.N=r,void 0===g[2])a.f("begin assemble at "+M(a,r.v)),a.O=!0,K(a.D);else{var u;a.f("not supported yet");u=[];if(u.length){for(var N=0;N<u.length;N++)a.Za(r,u[N],1);a.f(Ie(a,a.N))}}break;case "b":a:{var Da=g[0],Fa=g[1],Bf=b;if("?"==Fa)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
|
else{var na=Da.charAt(1);if("l"==na){var sc;sc=0+Re(a,a.b);sc+=Re(a,a.K);(sc+=Re(a,a.F))||a.f("no breakpoints")}else if("n"==na){var be=+Fa||0;Fa&&(a.ha=be);a.f("break after "+be+" instruction(s)")}else if(void 0===Fa)a.f("missing breakpoint address");else{var I=T();if("*"!=Fa&&(I=Z(a,Fa,!0),!I))break a;"c"==na?null==I.v?(Od(a),a.f("all breakpoints cleared")):Pe(a,a.b,I)||Pe(a,a.K,I)||Pe(a,a.F,I)||a.f("breakpoint missing: "+M(a,I.v)):null!=I.v&&(Ud(a,I,Bf),"p"==na?a.Aa(a.b,I):"r"==na?a.Aa(a.K,I):
|
|
"w"==na?a.Aa(a.F,I):a.f("unknown breakpoint command: "+na))}}}break;case "c":a.ka&&(a.ka.value="");break;case "d":a:{var Ga,Ha=g[0],U=g[1],fa=g[2],Cf=g[3];if("?"==U){var Ia="";for(Ga in H)a.oa[Ga]&&(Ia&&(Ia+=","),Ia+=Ga);Ia+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");Ia.length&&a.f("dump extension commands:\n\t"+Ia)}else if("state"==
|
|
U){var tc=$e(a.D,!0);"console"==fa?console.log(tc):(a.ka&&(a.ka.value=""),tc&&a.f(tc))}else if("symbols"==U)for(var uc=0;uc<a.H.length;uc++){var vc=a.H[uc],Ja;for(Ja in vc.T)if("."!=Ja.charAt(0)){var ce=vc.T[Ja].o;if(void 0!==ce){var de=vc.T[Ja].l;de&&(Ja=de);a.f(M(a,ce)+" "+Ja)}}}else{if("d"==Ha){for(Ga in H)if(g[1]==Ga){var ee=a.oa[Ga];ee?(g.shift(),g.shift(),ee(g)):a.f("no dump registered for "+U);break a}U||(Ha=a.Ca||"dw")}else a.Ca=Ha;if("dh"==Ha){var fe=U,ge=fa,he="",ie=0,S=a.P,V=a.i;if(V.length){var O=
|
|
+fe||a.qa,bb=+ge||10;isNaN(O)?O=bb:he="more ";O>V.length&&(a.f("note: only "+V.length+" available"),O=V.length);S-=O;0>S&&(null==V[V.length-1].v?(O=S+O,S=0):S+=V.length);var wc=[];"call"==ge&&(bb=1E5,wc=["CALL"]);for(void 0!==fe&&a.f(O+" instructions earlier:");0<bb&&S!=a.P;){var je=V[S++];if(null==je.v)break;var cb=T(je.v),Df=O--,ke=Ie(a,cb,"history",Df);(!wc.length||0<=ke.indexOf(wc[0]))&&a.f(ke);cb.Va&&(S+=cb.Va,bb-=cb.Va,O-=cb.Va);S>=V.length&&(S=0);a.qa=O;ie++;bb--}}ie||(a.f("no "+he+"history available"),
|
|
a.qa=void 0)}else{var oa=Z(a,U);if(oa){var pa=0,le="ds"==Ha;if(fa){if("l"==fa.charAt(0))fa=fa.substr(1)||Cf,pa=Jd(a,fa);else{var me=Z(a,fa);me&&(pa=me.v-oa.v)}0>pa&&(pa=0);65536<pa&&(pa=65536)}var Ef=a.ca;oa.ca&&(a.ca=oa.ca);for(var ne="db"==Ha?1:2,xc=pa||32,yc=1==ne?2:4,Ff=(xc+yc-1)/yc|0||1,qa="";Ff--&&0<xc;){for(var ra="",oe="",U=M(a,oa.v),pe=yc;0<pe--&&0<xc--;){var Eb=a.Ba(oa,1);le?(ra&&(ra+=","),ra+=Eb):(ra+=Vd(Eb),ra+=" ");for(var qe=0;1==ne&&6>qe;qe++)oe+=String.fromCharCode((Eb%64|0)+32),
|
|
Eb/=64}qa&&(qa+="\n");qa=le?qa+(ra+","):qa+(U+": "+ra+(0>pe?" "+oe:""))}qa&&a.f(qa);a.ta=oa;a.ca=Ef}}}}break;case "e":if("else"==g[0])break;var re,se,te=g[0],zc=g[1];"e"==te||"ew"==te?(re=a.Ba,se=a.Za):zc=null;if(null==zc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Fb=Z(a,zc);if(Fb)for(var Gb=2;Gb<g.length;Gb++){var Ac=Hd(a,g[Gb]);if(void 0===Ac){a.f("unrecognized value: "+g[Gb]);break}a.f("changing "+M(a,Fb.v)+" from "+Vd(re.call(a,Fb))+" to "+Vd(Ac));se.call(a,
|
|
Fb,Ac,1)}}break;case "g":a:{var ue=g[1],Gf=b;if(void 0!==ue){var Bc=Z(a,ue,!0);if(!Bc)break a;Ud(a,Bc,Gf);a.Aa(a.b,Bc,!0)}ae(a,!0,c)}break;case "h":a.j.J?(c||a.f("halting"),a.R()):Na(a,!0)||c||a.f("already halted");break;case "i":if("if"==g[0]){var Cc;var db=b.substr(2),db=Za(db);Hd(a,db)?(c||a.f("true: "+db),Cc=!0):(c||a.f("false: "+db),Cc=!1);Cc||(d=!1);break}f=!0;break;case "k":var Hf=g[0];if("?"==g[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
|
else{var Dc=0,Ec=T(),eb=T();for(a.f("stack trace for "+M(a,eb.v));10>Dc;){for(var sa=null,If=256;65536>eb.v>>>0;){Ec.v=a.Ba(eb,2);if(null==eb.v||!If--)break;if(!(Ec.v&1)){for(var Jf=a,Hb=Ec,ve=null,fb=Hb.v,we=fb,Fc=1;6>=Fc&&fb;Fc++){if(2<Fc){Hb.v=fb;var Ib=Ie(Jf,Hb);if(0<=Ib.indexOf("JSR")){var xe=Ib.indexOf(" ");if(fb+(Ib.indexOf(" ",xe+1)-xe-1)/2==we){ve=Ib;break}}}fb-=2}Hb.v=we;if(sa=ve)break}}if(!sa||null==sa)break;var ye=null;if("ks"==Hf){var ze=sa.match(/[0-9A-F]+$/);ze&&(ye=Xe(a,ze[0]))}sa=
|
|
Ya(sa,50)+" ;"+(ye||"stack="+M(a,eb.v));a.f(sa);Dc++}Dc||a.f("no return addresses found")}break;case "l":if("ln"==g[0]){Xe(a,g[1],!0);break}f=!0;break;case "m":a:{var W,X=null,z=g[1];"?"==z&&(z=void 0);if(void 0!==z){var ga=0;if("all"==z)ga=1879046143,z=null;else if("on"==z)X=!0,z=null;else if("off"==z)X=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(W in H)if(z==W){ga=H[W];X=!!(a.V&ga);break}if(!ga){a.f("unknown message category: "+z);break a}}if(ga)if("on"==g[2])a.V|=ga,X=!0;
|
|
else if("off"==g[2]&&(a.V&=~ga,X=!1,1073741824==ga)){for(var Ae=1E3<=a.M.length?a.M.length-1E3:0;Ae<a.M.length;)a.f(a.M[Ae++]);a.M=[]}}var Kf=0,gb="";for(W in H)if(!z||z==W){var Lf=!!(a.V&H[W]);if(null===X||X==Lf)gb&&(gb+=","),++Kf%10||(gb+="\n\t"),"key"==W&&(W="keys"),gb+=W}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==X?X?"messages on: ":"messages off: ":"message categories:\n\t")+(gb||"none"));Pd(a)}break;case "p":if("print"==g[0]){Ye(a,b.substr(5));
|
|
break}var Mf=g[0];if("?"==g[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var Nf="pr"==Mf?1:0;if(a.L)a.f("step in progress");else{var Be=T(a.g.i);a.Ba(Be);a.L?(a.Aa(a.b,Be,!0),ae(a)||(a.D&&hd(a.D),a.L=0)):Ze(a,Nf?"tr":"t")}}break;case "r":if("reset"==b){a.D&&a.D.reset();break}Fe(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var hb=+g[2];if(8==hb||10==hb||16==hb)a.ca=hb;else{a.f("invalid base: "+hb);break}}a.f("default base: "+
|
|
a.ca);break;case "cs":var ib;void 0!==g[3]&&(ib=+g[3]);switch(g[2]){case "int":a.g.ba=ib;break;case "start":a.g.sa=ib;break;case "stop":a.g.ga=ib;break;default:a.f("unknown cs option");break a}void 0!==ib&&$c(a.g);a.f("checksums "+(a.g.j.Da?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ed(a.g,+g[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.P.toFixed(2)+"Mhz")+" ("+a.g.S+"x)");break;default:if(g[1]){a.f("unknown option: "+g[1]);break}case "?":a.f("debugger options:"),
|
|
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Ze(a,g[0],g[1]);break;case "u":Ge(a,g[1],g[2],8);break;case "v":if("var"==g[0]){We(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.f((Db||"PDP10")+" version 1.34.0 ("+a.g.cb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}f=!0;
|
|
break;case "?":if(g[1]){Ye(a,b.substr(1));break}var Gc="commands:",Hc;for(Hc in af)Gc+="\n"+Ya(Hc,9)+af[Hc];qd(a)||(Gc+="\nnote: history disabled if no exec breakpoints");a.f(Gc);break;default:f=!0}f&&(a.f("unknown command: "+b),d=!1)}}catch(De){a.f("debugger error: "+(De.stack||De.message)),d=!1}return d}function cd(a,b,c){b=Fd(a,b,c);for(var d in b)if(!Se(a,b[+d]))return!1;return!0}
|
|
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"},Ne=20,Oe=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
|
Xd=0,Yd=1,Zd=2,Wd=["PC","RA","EA"],bf={},Je=(bf[28672]={0:101},bf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},bf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ne,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
|
|
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},bf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},bf[29248]={24576:79,24640:80,25088:81,25152:82},bf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},bf),Ke=["","I",
|
|
"M","S"],Le=" L E LE A GE N G".split(" "),Me="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),$d=1E3,Ee=">> ";vb(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nd(d);ya(d,c)}});
|
|
function cf(a,b,c){t.call(this,"Computer",a,33554432);this.j.U=!1;this.O=null;df(this,b);this.M=Yc(this,"autoPower",a,6);this.w=0;this.Y=+a.busWidth||+a.buswidth;this.K=this.F=this.L=null;this.I=this.S=!1;this.H=this.B=null;this.P=this.N=!1;this.ba=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=ef(this);if(this.g=y("CPU",this.id)){this.A=y("Debugger",this.id);this.C=new mc({id:this.Ka+".bus",busWidth:this.Y},this.g,this.A);var d,e=x(this.id);if((this.u=y("Panel",this.id))&&this.u.ka)for(b=
|
|
0;b<e.length;b++)d=e[b],d.Z=this.u.Z,d.f=this.u.f,d.ka=this.u.ka;this.f(Db+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.ua&&d.ua(this,this.C,this.g,this.A);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Yc(this,"state")||(f=!0,a.state))this.L=b=a,f||(this.I=!0,this.b=ff),this.b&&(this.H=new J(this,"1.34.0"),gf(this.H)?b=null:
|
|
delete this.H);!b&&this.b&&(b=hf(this))&&(this.I=!0);if(b){var g=this;jb(b,null,!0,function(a,b,c){c?(g.F=null,g.I=!1,g.Z("Unable to load machine state from server (error "+c+(b?": "+Za(b):"")+")")):(g.K=b,g.S=!0);D(g)})}else D(this);this.G.power||(this.M=!0);!c&&this.M&&jf(this,this.Fa)}else w("Unable to find CPU component")}p(cf,t);function df(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}
|
|
function Yc(a,b,c,d){var e=b.toLowerCase(),e=qb(b)||qb(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function jf(a,b,c){for(var d=x(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ma(f)){Ma(f,function(){jf(a,b,c)});return}}b.call(a,c)}
|
|
function kf(a,b){var c=new J(a,"1.34.0",lf);if(gf(c)&&mf(c)){var d=c.get(nf),e=b?b.get(nf):"unknown";d!=e&&(a.Z("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=cf.prototype;
|
|
l.Fa=function(a){void 0===a&&(a=this.b||(this.K?of:ff));if(!this.w){this.w++;var b=!1,c=!1;this.N=!1;var d=this.H||new J(this,"1.34.0");if(a==pf)b=!0;else if(a>ff){if(gf(d,this.K)){this.B=new J(this,"1.34.0",qf);gf(this.B)&&(rf(this,d),a=sf,tf(this.B));this.B.set(nf,ab());uf(this.B);var e=this.b&&!this.I;if(a==of||wa("Click OK to restore the previous "+Db+" machine state, or CANCEL to reset the machine.")){if(c=mf(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?gf(d,g):("error"==f&&"no machine state"!=
|
|
g?(this.Z("Error: "+g),"unable to verify user"==g&&(ob(vf,""),this.i=null)):this.f(f+": "+g),tf(d),gf(d)?(c=mf(d),e=!0):c=!1))}e&&kf(this,c?d:null)}else a==sf&&d.clear()}else kf(this);delete this.K;delete this.H}e=x(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.g&&(c=wf(this,g,d,b,c));b=[d,a,c];a!=pf?jf(this,this.jb,b):this.jb(b)}};
|
|
function wf(a,b,c,d,e){if(!b.j.U){b.j.U=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ma(f,d)&&f&&(w("Unable to restore state for "+b.type),a.L&&!a.S?(c.clear(),a.b=ff,window&&window.location.reload()):a.N=!0,b.ma(null),e=!1),!d&&b.bb){var g=b.bb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){w("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
|
l.jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.j.U=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(wf(this,this.g,b,c,a),K(this,-2),this.g.X());this.N&&(rf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
|
|
function rf(a,b){if(wa("There may be a problem with your "+Db+" machine.\n\nTo help us diagnose it, click OK to send this "+Db+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Db;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;jb("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
function $e(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new J(a,"1.34.0"),g=new J(a,"1.34.0",lf),h=ab();g.set(nf,h);f.set(nf,h);f.set(xf,"1.34.0");f.set(yf,window?window.location.href:null);f.set(zf,window?window.navigator.userAgent:"");a.g&&a.g.da&&(c&&(b&&(a.g.j.X=a.g.j.J),a.g.R()),d=a.g.da(b,c),"object"===typeof d&&f.set(a.g.id,d),c&&(a.g.j.U=!1,!1===d&&(e=null)));for(var h=x(a.id),k=0;k<h.length;k++){var m=h[k];m.j.U&&(m.da&&(d=m.da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.j.U=
|
|
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Af(a,a.i,f.toString()),uf(g)&&uf(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Of),d&&f.clear(h)):e=f.toString());c&&(a.j.U=!1,b=a.G.power)&&(b.textContent="Power");a.w=0;return e}
|
|
l.reset=function(){this.j.reset=!0;this.C&&this.C.reset&&(E(this,"Resetting "+this.C.type),this.C.reset());this.g&&this.g.reset&&(E(this,"Resetting "+this.g.type),this.g.reset());for(var a=x(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c!==this.g&&c.reset&&(E(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;K(this,-1)};l.start=function(a,b){for(var c=x(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
|
|
l.stop=function(a,b){for(var c=x(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
|
|
function K(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.J?c.O.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.K)){c=a.g.j.J;d=!!(a.g.u&8);if(0>=b||60<=(a.I+=b)){e=a.g.i;if(a.G.PC){var f=a.A&&a.A.ca||8,e=e||0,e=8==f?Ra(e,void 0):F(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.I=0}-1>b?a.i=a.g.i:0<b&&c&&!d&&(a.i=a.g.oa);Xb(a,a.i);Rb(a,a.w)}}
|
|
l.ea=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.w||(d.j.U?$e(d,!1,!0):jf(d,d.Fa))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.U&&!d.w)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Db+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$e(d,a,!0);!a&&d.L?window&&window.location.reload():d.Fa(ff)}else d.reset(),d.g&&!d.A&&d.g.X()},!0;case "save":if(Ua())c.parentNode.removeChild(c);else return this.G[b]=
|
|
c,c.onclick=function(){var a=ef(d,!0);if(a){var b=!!(d.b&&!d.F||d.L),c=$e(d,b);b?Af(d,a,c):d.Z("Resume disabled, machine state not saved")}},!0}return!1};function ef(a,b){var c=a.i;c||((c=nb(vf),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=Pf(a,c))||a.Z("The user ID is invalid.")):b&&a.Z("Browser local storage is not available"));return c}
|
|
function Pf(a,b){a.i=null;b=jb(Va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ob(vf,b.data),a.i=b.data)}catch(d){w(d.message+" ("+c+")")}return a.i}function hf(a){var b=null;a.i&&(b=Va()+"/api/v1/user?req=load&user="+a.i+"&state="+Qf(a,"1.34.0"));return b}
|
|
function Af(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Qf(a,"1.34.0");d.data=c;b=jb(Va()+"/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.Z("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.Z(c),ob(vf,""),a.i=null)}}
|
|
function hd(a,b){if(a.ka){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ka.focus();!b&&window&&window.scrollTo(c,d)}}var qf="failsafe",lf="validate",nf="timestamp",xf="version",yf="url",zf="browser",vf="user",pf=-1,ff=0,of=1,sf=2,Of=3;vb(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new cf(g,d,!0);ya(g,f);g.M&&jf(g,g.Fa)}});
|
|
wb.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.P&&!c.j.U&&c.Fa(pf)}});wb.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.j.U&&$e(c,!(!c.b||c.F),!0)}});function J(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Qf(a,b,c);tf(this,a.sb)}l=J.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
|
l.data=function(){return this.b};function gf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:lb()&&(b=nb(a.key))?(a.g=b,a.A=!0):!1}function mf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){w(c.message||c),b=!1}return b}function uf(a){var b=!0;if(lb()){var c=JSON.stringify(a.b);ob(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
|
|
function tf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){tf(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 Qf(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}var Rf=0;
|
|
function Sf(a,b,c,d,e,f,g){f("Loading "+a+"...");jb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):Tf(k,a,b,c,d,e,f,g)})}
|
|
function Tf(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(ta(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){g=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Uf(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
|
function Uf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");jb(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
|
"");a=a.replace(d[0],g);Uf(a,b,c)}})}else c(a,null)}
|
|
function Vf(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Wa(a))}function g(a){f("Error: "+a);m&&(--Rf||zb(!0));m=!1}var h,k,m=!0;Rf++;ua[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=n:u.appendChild(document.createTextNode(n));r.appendChild(u)}d||
|
|
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?Sf(d,null,a,null,!1,f,function(a,e){e?(ta(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Rf||zb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Rf||
|
|
zb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Sf(c,b,a,e,!0,f,n):Tf(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(N){g(N.message)}return m}window.embedPDP10=function(a,b,c,d){zb(!1);return Vf("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){zb(!1);return Vf("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return y(b,a+".machine")};
|
|
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Aa[a]){for(var c=!0,d=Aa,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n<f;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(g.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&g.push(h);d[e]=g;za(a)||(c=!1)}return c};window.enableEvents=zb;window.sendEvent=Bb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|