228 lines
83 KiB
JavaScript
228 lines
83 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 fa(){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 ja(this)}});fa=function(){}}function ja(a){var b=0;return ka(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ka(a){fa();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 la(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})}}
|
|
la("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}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
|
var ma=Math.pow(2,36),na=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc: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,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
|
|
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
|
|
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=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,Ta:!1,V:!1,error:!1};this.La=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function oa(a,b,c){va[a]&&b&&(va[a][b]=c)}function wa(){return Date.now()||+new Date}
|
|
function v(a){window&&window.alert(a)}function xa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
|
function za(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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
|
function Aa(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,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=z(f))&&h.binding&&a.ga(h.type,h.binding,f,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 Ba(a){for(var b=!0,c=Ca[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Da.indexOf(e)&&(g=function(){return function(){Ba(a)}}());var f=Ea[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=za(d[1],a);if(h)if(f=Fa[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){v("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Ca[a];return b}l=t.prototype;
|
|
l.toString=function(){return this.name?this.name:this.id||this.type};
|
|
l.ga=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.ma=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.ca=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.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Na(a,b){a.j.error=!0;a.ca(b)}function Oa(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.La=b);return a.j.ready}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.La;a.La=null;b&&b()}}function Qa(a,b){a.j.Ea&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Ea}
|
|
function Ra(a,b){if(a.j.Ta)return a.j.Ea=!1,a.j.Ta=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Ea=b;return a.j.Ea}l.na=function(){return this.j.V=!0};l.fa=function(a,b){b&&(this.j.V=!1);return!0};function Sa(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Ta(a,b,c,d){a.A&&(!0===c||Sa(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 va=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ca=window?window.PCjs.Commands:{},Da=["hold","sleep","wait"],Ea={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Fa={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 Ua(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 g,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(g=parseInt(a,b))&&(c=g)}return c}function Va(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 E(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 Wa(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 Xa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Ya(){var a=Za();return-1!==a.indexOf("pcjs.org",a.length-8)}
|
|
function $a(a){return a.replace(/[&<>"']/g,function(a){return ab[a]})}function bb(a,b){return(a+" ").slice(0,b)}function cb(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ab={"&":"&","<":"<",">":">",'"':""","'":"'"};function db(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}
|
|
function fb(){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 ob(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
|
g,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||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f}
|
|
function pb(a,b){var c,d={Y:null,U:null,la:null,ka:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=f.load;d.ka=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
|
|
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.za=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(v(d.Y[0]),d=null):(v("Empty resource: "+a),d=null));d.U=f.symbols}catch(h){v("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
|
function Za(){return"http://"+(window?window.location.host:"www.pcjs.org")}function qb(){if(null==rb){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}rb=a}return rb}function sb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
|
function tb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ub(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 vb(a){if(!wb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}wb=c}return wb[a]}function xb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
function yb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||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);g=!0}}function zb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ab(a){Bb.init.push(a)}
|
|
function Cb(a){if(Db)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Eb(a){!Db&&a?(Db=!0,Fb&&Gb("init"),Hb&&Gb("show")):Db=a}function Gb(a){Bb[a]&&Cb(Bb[a])}var wb=null,Bb={init:[],show:[],exit:[]},Fb=!1,Hb=!1,Db=!0,rb=null;zb("onload",function(){Fb=!0;Cb(Bb.init)});zb("onpageshow",function(){Hb=!0;Cb(Bb.show)});zb(ub("Opera")||ub("iOS")?"onunload":"onbeforeunload",function(){Cb(Bb.exit)});
|
|
var B="pdp10",Ib="PDPjs",Jb=Math.pow(2,18),Kb=Math.pow(2,18)-1,Lb=Math.pow(2,36),F=Math.pow(2,18),Mb=Math.pow(2,35)-1,Nb=Math.pow(2,21),Ob=Math.pow(2,26),Pb=Math.pow(2,23),B="pdp10",Ib="PDPjs",G={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 Wb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Xb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
|
set:this.Qb};D(this)}p(Wb,t);l=Wb.prototype;l.reset=function(a){this.stop();a&&Yb(this,this.v=0)};
|
|
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!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(){Zb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){$b(a,b)}}(this,b),a.ontouchstart=
|
|
function(a,b){return function(c){Zb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){$b(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;ac(this);bc(this)};l.na=function(a,b){if(!b)if(this.T&&cc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
|
l.restore=function(a){if(a=a[0])dc(this,this.i=a[0]),Yb(this,this.v=a[1]),ec(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}bc(this);return!0};function fc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ac(a,b){for(var c in a.B)fc(a,c,null!=b?b:a.B[c])}function gc(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function bc(a){for(var b in a.b)gc(a,b,a.b[b][1])}
|
|
l.yb=function(a,b,c){if(Zb(this,b)){if(c){var d=this;setTimeout(function(){$b(d,b);a&&a()},+c);return!1}$b(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return ec(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,gc(this,a,c[1]),!0):!1};l.Rb=function(a){return Zb(this,a)?($b(this,a),!0):!1};function Zb(a,b){var c=a.b[b];return c?(gc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=hc&&(a.O=b==ic,a.R=b==jc),!0):!1}
|
|
function $b(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(gc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Jb,this.b[kc]&&this.b[kc][1]&&lc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
|
|
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[kc]&&this.b[kc][1])lc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),mc(a,0,null),Ra(a,!1);else try{var b=this.g.Ia(1);0<b&&(nc(this.g,b),oc(this.g,b,!0),pc(this.g,b))}catch(c){"number"!=typeof c&&Na(this.g,c.stack||c.message)}this.stop();this.C&&K(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&qc(this),a=Yb(this,this.v=this.u),this.S==Xb?rc(this.D,this.i,a):this.g.P(this.i,a))};
|
|
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&qc(this);this.S==Xb?b=sc(this.D,this.i):b=this.g.H(this.i);Yb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||dc(this,this.u)};l.Eb=function(a){a?(this.F=!0,ac(this,!0)):(this.F=!1,ac(this),ec(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function qc(a){var b=1,c=a.D.u;a.b[hc]&&a.b[hc][1]||(b=-b);dc(a,a.i&~c|a.i+b&c)}
|
|
function dc(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||fc(d,e,g)}}}function Yb(a,b){a.I=b%Lb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||fc(d,e,g)}}return a.I}function ec(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;bc(a);return!0}l.stop=function(){dc(this,this.g.u)};
|
|
function cc(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=ya(d.id);e||(e=new Wb(d,!0));Aa(e,c)}}var Xb=7,ic="DEP",kc="ENABLE",jc="EXAM",hc="STEP";Ab(cc);function tc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new uc(this);vc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(tc,t);l=tc.prototype;l.reset=function(){};
|
|
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,wc(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,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
|
function xc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ga+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ga){m=h.size-(e-k);m>g&&(m=g);h.Ga=e-h.w+m;e=k+16384;g-=m;f++;continue}}return yc(zc,e,g)}e=new uc(a,e,m,16384,d);vc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Ac[d]+" at "+Va(b)),!0):yc(Bc,b,c)}
|
|
function sc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function rc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function wc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
|
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+L(this.A,a),!0,!0),this.g.W())};function yc(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var zc=1,Bc=2;function Cc(a){t.call(this,"Device",a,256)}p(Cc,t);l=Cc.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;D(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new J(this)).data()};
|
|
l.restore=function(){return!0};Ab(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new Cc(c),Aa(c,d)}}});function uc(a,b,c,d,e){this.u=a;this.id=Dc+=2;this.w=b;this.Ga=c;this.size=d||0;this.type=e||Ec;this.i=e==Fc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ha;this.g=this.A=0;vc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Gc(this,Hc)}else Gc(this)}l=uc.prototype;l.save=function(){return this.C};
|
|
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Gc(a,b){b||(b=cd);dd(a,b,void 0);ed(a,b,void 0)}function dd(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function ed(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ha);if(c||void 0===c)a.D=b[1]||a.Ha}l.Aa=function(a,b){b?this.A++||ed(this,fd,!1):this.g++||dd(this,fd,!1)};function gd(a,b){b?--a.A||(a.P=a.i?a.Ha:a.D):--a.g||(a.H=a.G)}
|
|
function vc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&dd(a,fd,!1),(a.A=c.A)&&ed(a,fd,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.u.xb(b);return-1};l.Ha=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
|
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;hd(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;hd(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ha(a,0,c):this.D(a,b,c)};var Ec=0,Fc=2,Ac=["NONE","RAM","ROM"],Dc=0,cd=[],Hc=[uc.prototype.Lb,uc.prototype.Ub],fd=[uc.prototype.Jb,uc.prototype.Tb];
|
|
function id(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Pa=Math.round(this.Ra/1E4)/100;this.S=this.Pa*this.T;this.Qa=this.ua=this.aa=this.xa=0;this.j.K=this.j.Oa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Da=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ja=this.Sa=this.R=0;this.wa=
|
|
null;D(this)}p(id,t);l=id.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.wa=a.u;for(a=0;a<jd.length;a++)(b=this.G[jd[a]])&&this.C.ga(null,jd[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
|
l.na=function(a,b){var c=kd(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){ld(this);if(!this.restore(a))return!1;md(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.wa=!0,a.f("Type ? for help with PDPjs Debugger commands"),nd(a),b||od(a),a.ta&&(b=a.ta,a.ta=null,pd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.wa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
|
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(lc(this),!0):!1};l.lb=function(){return 0};function md(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Da=0<=a.ta&&0<a.da;a.j.Da&&(a.sa=0,a.ha=a.ta-a.N)}function pc(a,b){if(a.j.Da){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=qd(a)&&(a.da=a.ia=-1,md(a),a.W(),c=!0);c&&a.f(qd(a)+" cycles: checksum="+E(a.sa))}}
|
|
l.ga=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.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=w(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.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.La?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():lc(d))},!0;case "speed":return this.G[b]=
|
|
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){rd(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function oc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function sd(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Pa);a.Qa=Math.round(1E3/td);a.ua=Math.floor(a.Ra/td*c);b||(a.aa=a.ua);a.xa=0}function qd(a){return a.N+a.F+a.L-a.M}function ld(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;md(a);rd(a,1)}
|
|
function rd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Pa*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&ud(a.C)}oc(a,a.F);a.F=0;a.B=wa();a.J=0;sd(a);return d}function vd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function wd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
|
function nc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function xd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
|
l.Ob=function(){if(this.j.K){this.xa>=this.Ra&&sd(this,!0);this.ja=0;this.ra=wa();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=vd(this,this.j.Da?1:this.ua);try{this.Ia(b)}catch(e){if("number"!=typeof e)throw e;}b=xd(this,!0);this.ja+=b;this.F+=b;pc(this,b);nc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=yd&&(this.C&&K(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(wa(),qd(this));Na(this,
|
|
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=wa();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,rd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.xa+=this.ja;this.J+=c;a(b,c)}}};
|
|
function lc(a,b){if(!Oa(a))if(a.j.K)a.f(a.toString()+" busy");else{rd(a);a.j.K=!0;a.j.Oa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&ud(a.C,!0),a.C.start(a.B,qd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ia=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){xd(this);oc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(wa(),qd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var td=30,yd=15,jd=["power","reset"];
|
|
function zd(a){var b=+a.model||1001;id.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Ad.bind(this);this.b=N.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(zd,id);l=zd.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.ya=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;ld(this);this.j.error=!1;id.prototype.reset.call(this)};l.lb=function(){return 0};
|
|
l.save=function(){var a=new J(this);a.set(0,[this.i,this.O,this.ya,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,Bd(this));a.set(4,wd(this));return a.data()};
|
|
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ja(b);this.i=b.next().value;this.O=b.next().value;this.ya=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];rd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
|
|
a[b];return!0};function Cd(a,b){var c=a.u;a.u=(c+b)%Jb;return c}function Bd(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].P(b,a&16383,a)};
|
|
l.Ia=function(a){this.j.complete=!0;var b=this.A?Dd(this.A)?1:this.j.Oa?-1:0:0,c=a?this.j.Oa?0:1:-1;this.j.Oa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Ed(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Ed(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i)&8388607:(this.ya=this.H(this.qa=this.u))&8388607;this.i=this.O&262143;
|
|
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Kb;this.O&4194304?a=-1:(this.u=(this.u+1)%Jb,a=this.ya/Pb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Ab(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zd(d);Aa(d,c)}});function Ad(a){Fd[a>>4].call(this,a)}function O(a){this.b(a)}function Gd(a){this.b(a)}function Hd(a){this.b(a)}
|
|
function Id(a){var b=a&15,c=this.H(this.i),d=this.H(b),d=Jd(a,d,c)+(c-(c&262143));this.P(b,d)}function Kd(a){var b=a&15,c=this.H(b),c=Jd(a,c,0);this.P(b,c)}function Ld(a){var b=this.H(a&15),c=this.H(this.i),c=Jd(a,c,b)+(b-(b&262143));this.P(this.i,c)}function Md(a){var b=this.H(this.i);this.P(this.i,Jd(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Jd(a,b,b)))}function Nd(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function P(a){this.b(a)}
|
|
function N(a){this.f("undefined opcode: "+Va(a));Cd(this,-1);this.W()}function Jd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Mb?262143:0}return b}
|
|
var Fd=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Gd,Hd,Hd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Gd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Kd,Ld,Md,function(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a),c=(c&262143)+b*F;this.P(a,c)},function(a){a&=15;var b=this.H(a),b=(b&262143)+this.i*F;this.P(a,b)},function(a){a=
|
|
this.H(a&15)&262143;var b=this.H(this.i),b=(b&262143)+a*F;this.P(this.i,b)},function(a){var b=this.H(this.i)&262143;this.P(this.i,b+b*F);if(a&=15)b=this.H(a)&262143,this.P(a,b+b*F)},Id,Kd,Ld,Md,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Kd,Ld,Md,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Kd,Ld,Md,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Nd,function(a){a&=
|
|
15;var b=this.H(a),b=b-(b&262143)+this.i;this.P(a,b)},function(a){a=this.H(a&15)&262143;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){a&15&&Nd.call(this,a)},function(a){a&=15;var b=this.H(this.i)/F|0,c=this.H(a);this.P(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.P(a,b-(b&262143))},function(a){a=this.H(a&15)/F|0;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.P(this.i,(b&262143)+(b/F|0));if(a&=15)b=this.H(a),this.P(a,(b&262143)+
|
|
(b/F|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(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,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,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 Od(a){t.call(this,"ROM",a,128);this.U=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.v=a.file;this.F=Wa(this.v);if(this.v){a=this.v;var b=Xa(this.F);"json"!=b&&"hex"!=b&&(a=Za()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;ob(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(oa(c.Ka,a,b),(a=pb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Pd(c)})}}p(Od,t);
|
|
Od.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Pd(this)};Od.prototype.na=function(){this.U&&(this.A&&Qd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Od.prototype.fa=function(){return!0};
|
|
function Pd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Na(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(xc(a.D,b,a.u,Fc)){var c;for(c=0;c<a.b.length;c++)rc(a.D,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],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
|
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}Ab(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Od(d);Aa(d,c)}});
|
|
function Rd(a){t.call(this,"RAM",a);this.U=this.za=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Wa(this.b);if(this.b){a=this.b;var b=Xa(this.B);"json"!=b&&"hex"!=b&&(a=Za()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;ob(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(oa(c.Ka,a,b),(a=pb(a,b))?(c.za=a.za,
|
|
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);Sd(c)})}}p(Rd,t);Rd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Sd(this)};Rd.prototype.na=function(a,b){this.U&&(this.A&&Qd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Rd.prototype.fa=function(){return!0};
|
|
function Sd(a){if(a.D&&(!a.v&&a.u&&(xc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.za)return;Td(a,a.za,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;D(a)}}
|
|
Rd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=na&&(f+=ma);f=Math.trunc(Math.abs(f))%ma;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.za&&Td(this,this.za,this.la,this.ka,this.i,!this.A)}this.F=!1};
|
|
function Td(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)rc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Jb,g?a.j.V?a.j.K||lc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(nd(a.A),K(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.wa&&a.wa.stop()));return f}Ab(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Rd(d);Aa(d,c)}});
|
|
function Ud(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Vd;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Ma,receiveStatus:this.Mb,setConnection:this.Pb}}p(Ud,t);l=Ud.prototype;
|
|
l.ga=function(a,b,c){var d=this;switch(b){case Vd: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.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Ma(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Ma(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.Ma(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;D(this)};
|
|
l.nb=function(a){if(!this.b){var b=kd(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=cb(c[0]);if(d!=this.Ja)return;c=cb(c[1]);if(this.b=ya(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.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.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
|
l.fa=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.Ma=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.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Vd="buffer";
|
|
Ab(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ud(d);Aa(d,c)}});function Wd(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(Wd,t);Wd.prototype.mb=function(){return-1};Wd.prototype.Wa=function(){};
|
|
function Xd(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(cb(b.substring(c,g))),c=g+1}}return a}
|
|
function Yd(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
|
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
|
function R(a,b,c){var d;if(b){b=Zd(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=cb(n);if(!n){g=!0;break}n=$d(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],x=n.length;k.length&&ae[n]<ae[k[k.length-1]]&&Yd(h,k,1);k.push(n);b=b.substr(r+x)}Yd(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&be(a,null,
|
|
d))}return d}function Zd(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=R(a,c[1]);b=b.replace(d+c[1]+e,null!=f?L(a,f):"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 $d(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
|
function be(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var x=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(x?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Va(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
|
function ce(a,b){if(b)return be(a,b,a.aa[b]);var c=0;for(b in a.aa)be(a,b,a.aa[b]),c++;return 0<c}function L(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:a=Va(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=E(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
|
var ae={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
|
function de(a){Wd.call(this,a);this.wa=!1;this.oa=!0;this.J=S();this.ua=S();this.O=S();this.F=[];this.b=this.L=this.I=[];ee(this);this.S=this.ja=0;this.i=[];this.ra=void 0;fe(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];ge(this,a.messages);this.ta=a.commands;this.M=0;this.Ca=this.sa=null;this.B=this.ya=this.xa=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return pd(b,a)}):void 0===global[B]&&(global[B]=function(a){return pd(b,
|
|
a)})}p(de,Wd);function T(a){a=a&&a.w;null==a&&(a=-1);return a}function S(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function he(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function ie(a,b){a.w=b;a.ea=!1;a.ba=void 0}function je(a){return[a.w,a.wb,a.ba,a.ea,a.Na]}function ke(a,b){var c=S(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=Xd(a,c.Na=b[4]));return c}l=de.prototype;
|
|
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=kd(a,"messages"))&&ge(this,a);le(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=T(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.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=Ac[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ga,4,!0)+
|
|
" "+E(n.size,4,!0)+" "+m),c!=Ec&&(c=-1),m=0);a+=16384;e++}}});D(this)};
|
|
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",pd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-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,yb(c,function(){if(d.da){var a=d.da.value;
|
|
d.da.value="";pd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,yb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=mc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function od(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.Ba=function(a,b){var c=-1,d=T(a);-1!==d&&(c=sc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=T(a);-1!==d&&(rc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),K(this.C,-1))};
|
|
function Z(a,b,c){var d;c=(c?a.J:a.ua).w;var e,g;if(void 0!==b){b=Zd(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=S(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=R(a,b,void 0)}null!=c&&(d=S(c,e,g));return d}function me(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Xd(a,b.Na=c[2]))}
|
|
function ne(a){return Va(a/Jb,6)+" "+Va(a%Jb,6)}function ge(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=Xd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){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.X|=G[c],a.f(c+" messages enabled"))}}function le(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return oe.indexOf(a.toUpperCase())};
|
|
l.Wa=function(a){var b;switch(a){case pe:b=this.g.u;break;case qe:b=this.g.O;break;case re:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+L(this,S(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,xd(a),a.aa=0,a.C&&K(a.C,void 0))}};
|
|
function fe(a){var b;if(!Dd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(se);for(b=0;b<a.i.length;b++)a.i[b]=S();a.S=0;a.f("instruction history buffer allocated")}}function te(a,b,c){if(!ue(a,c))return!1;lc(a.g,b);return!0}
|
|
function mc(a,b,c,d){if(!ue(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Dd(a)&&Ed(a,a.g.u,0);try{b=vd(a.g,b);var g=a.g.Ia(b);0<g&&(nc(a.g,g),a.B+=g,oc(a.g,g,!0),pc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Na(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),K(a.C,-1));nd(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function nd(a,b,c){a.wa&&(void 0===b&&(b=!0),c&&a.f(ve+c),ie(a.J,a.g.u),b&&1!=a.M?we(a):xe(a))}
|
|
function ue(a,b){var c;(c=!a.g||!Pa(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Oa(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){fe(this);this.ia=0;this.T=null;this.B=0;ie(this.J,this.g.u);this.j.K=!1;cf(this);a||nd(this)};
|
|
l.save=function(){var a=new J(this);a.set(0,je(this.J));a.set(1,je(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=ke(this,a[b++]),this.O=ke(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.xa=a;this.ya=b};
|
|
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.ya;if(!this.M){b="stopped";if(this.B){a-=this.xa;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Dd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}nd(this,!0);od(this);cf(this,this.g.u);this.T=null}};function Dd(a){return 1<a.b.length||!!a.ja}
|
|
function Ed(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Cd(a.g,1)));if(0<c&&(a.ja&&!--a.ja||hd(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(ie(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
|
|
function ef(a,b,c,d){var e=S(b.w),g=a.Ba(b,1),f,h,k,m=0,n=g/Nb|0,r;for(r in ff)if(f=ff[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=gf;m=n&3;break;case 32256:k=hf;m=n&7;break;case 29248:k=jf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>kf&&(k="B");k=lf[f||0]+k;k=bb(k,8);f?(k=28700==h?k+L(a,g/Ob&127,-1):k+L(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=L(a,g&262143,-1),(g=g>>18&15)&&(k+="("+L(a,g,-1)+")")):k+=ne(g);g=k;f="";h=L(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.Ba(e,1),f+=" "+ne(k),null==
|
|
e.w)break;while(e.w!=b.w)}h+=bb(f,16)+g;c&&(h=bb(h,60)+";"+(c||""),h=a.g.j.Da?h+("cycles="+qd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function ee(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=T(c);var d=a.D;gd(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=T(c),d=a.D,gd(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
|
|
l.Aa=function(a,b,c){var d=!0;c||mf(this,a,b,!1,!0);if(a!=this.b){var e=T(b);if(-1===e)this.f("invalid address: "+L(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Aa(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(nf(this,a,a.length-1,"set"),fe(this)));return d};function mf(a,b,c,d,e){var g=!1;c=T(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==T(h)&&(!d||h.ea)){g=!0;h.ea||e||nf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,gd(d.b[c>>>d.i],b==a.I));h.ea||fe(a);break}}return g}
|
|
function of(a,b){for(var c=1;c<b.length;c++)nf(a,b,c);return b.length-1}function nf(a,b,c,d){c=b[c];a.f(b[0]+" "+L(a,c.w)+(d?" "+d:c.Na?' "'+c.Na+'"':""))}function cf(a,b){if(void 0!==b)hd(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!mf(a,a.b,c,!0))break;b=0}}}
|
|
function hd(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=T(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(mf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!pf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var x=r+1;x<n.length&&n[x].indexOf("else");x++)r++;if(x==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||nf(a,d,f,"hit");break}}}a.qa--;return g}
|
|
function qf(a,b){var c=oe[b]||"";c&&(c+="="+L(a,a.Wa(b),b==qe?23:18)+" ");return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function Qd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=db(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}
|
|
function rf(a,b,c){var d=[],e=T(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=db(g.hb,[e-f],a.jb);0<=e?sf(a,b,e,d):c&&(e=~e,sf(a,b,e-1,d),sf(a,b,e,d));break}}return d}function sf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}
|
|
function tf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ce(a)||a.f("no variables"),!0;if(!c[2])return ce(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=R(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
|
function uf(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=rf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+L(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+L(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
|
function we(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 g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=R(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Jb;ie(a.J,e.u);break;default:a.f("unknown register: "+
|
|
g);return}K(a.C);a.f("updated registers:")}}g=""+(qf(a,qe)+qf(a,re));d&&(g+="\n");a.f(g);c&&(ie(a.J,e.u),xe(a,L(a,a.J.w)))}}function vf(a,b){b=cb(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):be(a,null,c[2].charCodeAt(0)):R(a,b,!0)}
|
|
function wf(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=$d(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;xb(c,function(){return Ra(a,!0)&&mc(a,e,d,!1)},function(){a.ha&&a.ha.stop();K(a.C,-1);Ra(a,!1)})}}
|
|
function xe(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=$d(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=rf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=ef(a,b,f,g);a.f(g);he(a.J,b);e-=b.w-k;c++}}}
|
|
function pf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(ve+b):(a.R&&(a.f("ended assemble at "+L(a,a.O.w)),he(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+L(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
|
Z(a,f[1],!0);if(r){var x=f[2];a.O=r;if(void 0==x)a.f("begin assemble at "+L(a,r.w)),a.R=!0,K(a.C);else{f.shift();f.shift();f.shift();var U,ye=f.join(""),A=-1,Ic,Yf=x.toUpperCase(),Jc;for(Jc in ff){var Ga;Ic=+Jc;var ze=ff[Jc];switch(Ic){case 32512:Ga=gf;break;case 32256:Ga=hf;break;case 29248:Ga=jf;break;default:Ga=[""]}var Ae,Kc;for(Kc in ze){for(var Be=ze[Kc],Ha=0;Ha<Ga.length;Ha++){var Lc=Ga[Ha];"S"==Lc&&Be>kf&&(Lc="B");if(Yf==lf[Be]+Lc){Ae=29248!=Ic?Ha:(Ha&3)<<1|(Ha&12)<<2;A=(Kc|Ae<<6)*Nb;break}}if(0<=
|
|
A)break}if(0<=A)break}if(0<=A)if(ye)for(var Mc=ye.split(","),eb=0;eb<Mc.length;eb++){var Qb=Mc[eb].trim();if(Qb){if(1<eb){a.f("too many operands: "+Qb);A=-1;break}var ga=Qb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!ga){a.f("unknown operand: "+Qb);A=-1;break}var H=R(a,ga[2]);if(void 0==H){A=-1;break}if(!eb&&1<Mc.length){if(0>H||15<H){a.f("accumulator index out of range: "+ga[2]);A=-1;break}A+=H<<23}else{if(0>H||262143<H){a.f("address out of range: "+ga[2]);A=-1;break}A+=H;if(ga[3]){H=R(a,ga[3]);if(void 0==
|
|
H){A=-1;break}if(0>H||15<H){a.f("index out of range: "+ga[3]);A=-1;break}A+=H<<18}ga[1]&&(A+=4194304)}}}else a.f("missing operand(s)"),A=-1;else a.f("unknown instruction: "+x);U=A;0<=U&&(a.$a(r,U),a.f(ef(a,a.O)))}}break;case "b":a:{var Zf=f[0],Ia=f[1],$f=b;if("?"==Ia)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 pa=Zf.charAt(1);if("l"==pa){var Nc;Nc=0+of(a,a.b);Nc+=of(a,a.L);(Nc+=of(a,a.I))||a.f("no breakpoints")}else if("n"==pa){var Ce=+Ia||0;Ia&&(a.ja=Ce);a.f("break after "+Ce+" instruction(s)")}else if(void 0===Ia)a.f("missing breakpoint address");else{var I=S();if("*"!=Ia&&(I=Z(a,Ia,!0),!I))break a;"c"==pa?null==I.w?(ee(a),a.f("all breakpoints cleared")):mf(a,a.b,I)||mf(a,a.L,I)||mf(a,a.I,I)||a.f("breakpoint missing: "+L(a,I.w)):null!=I.w&&(me(a,I,$f),"p"==pa?a.Aa(a.b,I):"r"==pa?a.Aa(a.L,I):
|
|
"w"==pa?a.Aa(a.I,I):a.f("unknown breakpoint command: "+pa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var Ja,Ka=f[0],V=f[1],ha=f[2],ag=f[3];if("?"==V){var La="";for(Ja in G)a.pa[Ja]&&(La&&(La+=","),La+=Ja);La+=",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");La.length&&a.f("dump extension commands:\n\t"+La)}else if("state"==
|
|
V){var Oc=xf(a.C,!0);"console"==ha?console.log(Oc):(a.ma&&(a.ma.value=""),Oc&&a.f(Oc))}else if("symbols"==V)for(var Pc=0;Pc<a.F.length;Pc++){var Qc=a.F[Pc],Ma;for(Ma in Qc.U)if("."!=Ma.charAt(0)){var De=Qc.U[Ma].o;if(void 0!==De){var Ee=Qc.U[Ma].l;Ee&&(Ma=Ee);a.f(L(a,De)+" "+Ma)}}}else{if("d"==Ka){for(Ja in G)if(f[1]==Ja){var Fe=a.pa[Ja];Fe?(f.shift(),f.shift(),Fe(f)):a.f("no dump registered for "+V);break a}V||(Ka=a.Ca||"dw")}else a.Ca=Ka;if("dh"==Ka){var Ge=V,He=ha,Ie="",Je=0,Q=a.S,W=a.i;if(W.length){var M=
|
|
+Ge||a.ra,gb=+He||10;isNaN(M)?M=gb:Ie="more ";M>W.length&&(a.f("note: only "+W.length+" available"),M=W.length);Q-=M;0>Q&&(null==W[W.length-1].w?(M=Q+M,Q=0):Q+=W.length);var Rc=[];"call"==He&&(gb=1E5,Rc=["CALL"]);for(void 0!==Ge&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Ke=W[Q++];if(null==Ke.w)break;var hb=S(Ke.w),bg=M--,Le=ef(a,hb,"history",bg);(!Rc.length||0<=Le.indexOf(Rc[0]))&&a.f(Le);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,M-=hb.Ua);Q>=W.length&&(Q=0);a.ra=M;Je++;gb--}}Je||(a.f("no "+Ie+"history available"),
|
|
a.ra=void 0)}else{var qa=Z(a,V);if(qa){var ra=0,Me="ds"==Ka;if(ha){if("l"==ha.charAt(0))ha=ha.substr(1)||ag,ra=$d(a,ha);else{var Ne=Z(a,ha);Ne&&(ra=Ne.w-qa.w)}0>ra&&(ra=0);65536<ra&&(ra=65536)}var cg=a.ba;qa.ba&&(a.ba=qa.ba);for(var Oe="db"==Ka?1:2,Sc=ra||32,Tc=1==Oe?2:4,dg=(Sc+Tc-1)/Tc|0||1,sa="";dg--&&0<Sc;){for(var ta="",Pe="",V=L(a,qa.w),Qe=Tc;0<Qe--&&0<Sc--;){var Rb=a.Ba(qa,1);Me?(ta&&(ta+=","),ta+=Rb):(ta+=ne(Rb),ta+=" ");for(var Re=0;1==Oe&&6>Re;Re++)Pe+=String.fromCharCode((Rb%64|0)+32),
|
|
Rb/=64}sa&&(sa+="\n");sa=Me?sa+(ta+","):sa+(V+": "+ta+(0>Qe?" "+Pe:""))}sa&&a.f(sa);he(a.ua,qa);a.ba=cg}}}}break;case "e":if("else"==f[0])break;var Se,Te,Ue=f[0],Uc=f[1];"e"==Ue||"ew"==Ue?(Se=a.Ba,Te=a.$a):Uc=null;if(null==Uc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Sb=Z(a,Uc);if(Sb)for(var Tb=2;Tb<f.length;Tb++){var Vc=R(a,f[Tb]);if(void 0===Vc){a.f("unknown value: "+f[Tb]);break}a.f("changing "+L(a,Sb.w)+" from "+ne(Se.call(a,Sb))+" to "+ne(Vc));Te.call(a,
|
|
Sb,Vc,1)}}break;case "g":a:{var Ve=f[1],eg=b;if(void 0!==Ve){var Wc=Z(a,Ve,!0);if(!Wc)break a;me(a,Wc,eg);a.Aa(a.b,Wc,!0)}te(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Xc;var ib=b.substr(2),ib=cb(ib);R(a,ib)?(c||a.f("true: "+ib),Xc=!0):(c||a.f("false: "+ib),Xc=!1);Xc||(d=!1);break}g=!0;break;case "k":var fg=f[0];if("?"==f[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
|
else{var Yc=0,Zc=S(),jb=S();for(a.f("stack trace for "+L(a,jb.w));10>Yc;){for(var ua=null,gg=256;65536>jb.w>>>0;){Zc.w=a.Ba(jb,2);if(null==jb.w||!gg--)break;if(!(Zc.w&1)){for(var hg=a,Ub=Zc,We=null,kb=Ub.w,Xe=kb,$c=1;6>=$c&&kb;$c++){if(2<$c){Ub.w=kb;var Vb=ef(hg,Ub);if(0<=Vb.indexOf("JSR")){var Ye=Vb.indexOf(" ");if(kb+(Vb.indexOf(" ",Ye+1)-Ye-1)/2==Xe){We=Vb;break}}}kb-=2}Ub.w=Xe;if(ua=We)break}}if(!ua||null==ua)break;var Ze=null;if("ks"==fg){var $e=ua.match(/[0-9A-F]+$/);$e&&(Ze=uf(a,$e[0]))}ua=
|
|
bb(ua,50)+" ;"+(Ze||"stack="+L(a,jb.w));a.f(ua);Yc++}Yc||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){uf(a,f[1],!0);break}g=!0;break;case "m":a:{var X,Y=null,y=f[1];"?"==y&&(y=void 0);if(void 0!==y){var ia=0;if("all"==y)ia=1879046143,y=null;else if("on"==y)Y=!0,y=null;else if("off"==y)Y=!1,y=null;else{"keys"==y&&(y="key");"kbd"==y&&(y="keyboard");for(X in G)if(y==X){ia=G[X];Y=!!(a.X&ia);break}if(!ia){a.f("unknown message category: "+y);break a}}if(ia)if("on"==f[2])a.X|=ia,Y=!0;
|
|
else if("off"==f[2]&&(a.X&=~ia,Y=!1,1073741824==ia)){for(var af=1E3<=a.N.length?a.N.length-1E3:0;af<a.N.length;)a.f(a.N[af++]);a.N=[]}}var ig=0,lb="";for(X in G)if(!y||y==X){var jg=!!(a.X&G[X]);if(null===Y||Y==jg)lb&&(lb+=","),++ig%10||(lb+="\n\t"),"key"==X&&(X="keys"),lb+=X}void 0===y&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Y?Y?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));fe(a)}break;case "p":if("print"==f[0]){vf(a,b.substr(5));
|
|
break}var kg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var lg="pr"==kg?1:0;if(a.M)a.f("step in progress");else{var bf=S(a.g.u);a.Ba(bf);a.M?(a.Aa(a.b,bf,!0),te(a)||(a.C&&ud(a.C),a.M=0)):wf(a,lg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}we(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;else{a.f("invalid base: "+mb);break}}a.f("default base: "+
|
|
a.ba);break;case "cs":var nb;void 0!==f[3]&&(nb=+f[3]);switch(f[2]){case "int":a.g.da=nb;break;case "start":a.g.ta=nb;break;case "stop":a.g.ia=nb;break;default:a.f("unknown cs option");break a}void 0!==nb&&md(a.g);a.f("checksums "+(a.g.j.Da?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(rd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;default:if(f[1]){a.f("unknown option: "+f[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":wf(a,f[0],f[1]);break;case "u":xe(a,f[1],f[2],8);break;case "v":if("var"==f[0]){tf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Ib||"PDP10")+" version 1.34.0 ("+a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;
|
|
break;case "?":if(f[1]){vf(a,b.substr(1));break}var ad="commands:",bd;for(bd in yf)ad+="\n"+bb(bd,9)+yf[bd];Dd(a)||(ad+="\nnote: history disabled if no exec breakpoints");a.f(ad);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(df){a.f("debugger error: "+(df.stack||df.message)),d=!1}return d}function pd(a,b,c){b=Xd(a,b,c);for(var d in b)if(!pf(a,b[+d]))return!1;return!0}
|
|
var yf={"?":"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"},kf=20,lf=".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(" "),
|
|
pe=0,qe=1,re=2,oe=["PC","RA","EA"],zf={},ff=(zf[28672]={0:101},zf[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},zf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:kf,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},zf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},zf[29248]={24576:79,24640:80,25088:81,25152:82},zf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},zf),gf=["","I",
|
|
"M","S"],hf=" L E LE A GE N G".split(" "),jf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),se=1E3,ve=">> ";Ab(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new de(d);Aa(d,c)}});
|
|
function Af(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;Bf(this,b);this.N=kd(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=kd(this,"url")||"";(Math.random()+.1).toString(36);this.i=Cf(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new tc({id:this.Ka+".bus",busWidth:this.aa},this.g,this.A);var d,e=w(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
|
|
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Ib+" 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.va&&d.va(this,this.D,this.g,this.A);b=null;d=kd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=kd(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Df),this.b&&(this.I=new J(this,"1.34.0"),Ef(this.I)?b=null:
|
|
delete this.I);!b&&this.b&&(b=Ff(this))&&(this.J=!0);if(b){var f=this;ob(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+cb(b):"")+")")):(f.L=b,f.T=!0);D(f)})}else D(this);this.G.power||(this.N=!0);!c&&this.N&&Gf(this,this.Fa)}else v("Unable to find CPU component")}p(Af,t);function Bf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
|
function kd(a,b,c,d){var e=b.toLowerCase(),e=vb(b)||vb(e);void 0===e&&a.R&&(e=a.R[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 Gf(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){Gf(a,b,c)});return}}b.call(a,c)}
|
|
function Hf(a,b){var c=new J(a,"1.34.0",If);if(Ef(c)&&Jf(c)){var d=c.get(Kf),e=b?b.get(Kf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Af.prototype;
|
|
l.Fa=function(a){void 0===a&&(a=this.b||(this.L?Lf:Df));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new J(this,"1.34.0");if(a==Mf)b=!0;else if(a>Df){if(Ef(d,this.L)){this.B=new J(this,"1.34.0",Nf);Ef(this.B)&&(Of(this,d),a=Pf,Qf(this.B));this.B.set(Kf,fb());Rf(this.B);var e=this.b&&!this.J;if(a==Lf||xa("Click OK to restore the previous "+Ib+" machine state, or CANCEL to reset the machine.")){if(c=Jf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Ef(d,f):("error"==g&&"no machine state"!=
|
|
f?(this.ca("Error: "+f),"unable to verify user"==f&&(tb(Sf,""),this.i=null)):this.f(g+": "+f),Qf(d),Ef(d)?(c=Jf(d),e=!0):c=!1))}e&&Hf(this,c?d:null)}else a==Pf&&d.clear()}else Hf(this);delete this.L;delete this.I}e=w(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=Tf(this,f,d,b,c));b=[d,a,c];a!=Mf?Gf(this,this.kb,b):this.kb(b)}};
|
|
function Tf(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Df,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
|
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(Tf(this,this.g,b,c,a),K(this,-2),this.g.Z());this.O&&(Of(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
|
function Of(a,b){if(xa("There may be a problem with your "+Ib+" machine.\n\nTo help us diagnose it, click OK to send this "+Ib+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Ib;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;ob("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
function xf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new J(a,"1.34.0"),f=new J(a,"1.34.0",If),h=fb();f.set(Kf,h);g.set(Kf,h);g.set(Uf,"1.34.0");g.set(Vf,window?window.location.href:null);g.set(Wf,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=w(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
|
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Xf(a,a.i,g.toString()),Rf(f)&&Rf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==mg),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
|
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;K(this,-1)};l.start=function(a,b){for(var c=w(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=w(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.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Va(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);dc(a,a.i);Yb(a,a.v)}}
|
|
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?xf(d,!1,!0):Gf(d,d.Fa))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=xa("Click OK to save changes to this "+Ib+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xf(d,a,!0);!a&&d.M?window&&window.location.reload():d.Fa(Df)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Ya())c.parentNode.removeChild(c);else return this.G[b]=
|
|
c,c.onclick=function(){var a=Cf(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=xf(d,b);b?Xf(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
|
function Cf(a,b){var c=a.i;c||((c=sb(Sf),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=ng(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
|
function ng(a,b){a.i=null;b=ob(Za()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(tb(Sf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Ff(a){var b=null;a.i&&(b=Za()+"/api/v1/user?req=load&user="+a.i+"&state="+og(a,"1.34.0"));return b}
|
|
function Xf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=og(a,"1.34.0");d.data=c;b=ob(Za()+"/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.ca("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.ca(c),tb(Sf,""),a.i=null)}}
|
|
function ud(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Nf="failsafe",If="validate",Kf="timestamp",Uf="version",Vf="url",Wf="browser",Sf="user",Mf=-1,Df=0,Lf=1,Pf=2,mg=3;Ab(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=z(g),f=new Af(f,d,!0);Aa(f,g);f.N&&Gf(f,f.Fa)}});
|
|
Bb.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Fa(Mf)}});Bb.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=za("Computer",c.id))&&c.j.V&&xf(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=og(a,b,c);Qf(this,a.tb)}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 Ef(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:qb()&&(b=sb(a.key))?(a.g=b,a.A=!0):!1}function Jf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function Rf(a){var b=!0;if(qb()){var c=JSON.stringify(a.b);tb(a.key,c)||(v("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 Qf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){Qf(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 og(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 pg=0;
|
|
function qg(a,b,c,d,e,g,f){g("Loading "+a+"...");ob(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):rg(k,a,b,c,d,e,g,f)})}
|
|
function rg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(oa(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?sg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
|
function sg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ob(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
|
"");a=a.replace(d[0],f);sg(a,b,c)}})}else c(a,null)}
|
|
function tg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=$a(a))}function f(a){g("Error: "+a);m&&(--pg||Eb(!0));m=!1}var h,k,m=!0;pg++;va[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=n:x.appendChild(document.createTextNode(n));r.appendChild(x)}d||
|
|
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?qg(d,null,a,null,!1,g,function(a,e){e?(oa(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--pg||Eb(!0)):f("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),--pg||
|
|
Eb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?qg(c,b,a,e,!0,g,n):rg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Eb(!1);return tg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Eb(!1);return tg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
|
|
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ca[a]){for(var c=!0,d=Ca,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;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&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Ba(a)||(c=!1)}return c};window.enableEvents=Eb;window.sendEvent=Gb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|