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