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