Tested a couple half-word instructions (so far, so good)
This commit is contained in:
parent
0255b7b891
commit
17e807ecb6
8 changed files with 479 additions and 579 deletions
|
|
@ -28,22 +28,22 @@
|
|||
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
|
||||
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
|
||||
*/
|
||||
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ga=0;function da(a){return"jscomp_symbol_"+(a||"")+ga++}
|
||||
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=fa)}var ga=0;function fa(a){return"jscomp_symbol_"+(a||"")+ga++}
|
||||
function ha(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var la=Math.pow(2,36),sa=-Math.pow(2,35),q={ac:0,ob:1,cc:2,dc:3,ec:4,fc:5,gc:6,hc:7,Za:8,ic:9,pb:10,jc:11,kc:12,qb:13,lc:14,mc:15,nc:16,oc:17,pc:18,qc:19,rc:20,sc:21,tc:22,uc:23,vc:24,wc:25,xc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,$b:66,bc:67,yc:68,E:69,zc:70,Ac:71,Bc:72,Cc:73,Dc:74,Ec:75,Fc:76,Gc:77,Hc:78,Ic:79,Jc:80,Q:81,
|
||||
Kc:82,Lc:83,Mc:84,Nc:85,Oc:86,Pc:87,Qc:88,Rc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Sc:97,Tc:98,Uc:99,d:100,e:101,Vc:102,Wc:103,Xc:104,Yc:105,Zc:106,k:107,$c:108,ad:109,n:110,bd:111,p:112,q:113,r:114,cd:115,t:116,ed:117,fd:118,gd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Va:!1,W:!1,error:!1};this.Na=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.la=null;u.push(this)}function ta(a,b,c){ua[a]&&b&&(ua[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
var la=Math.pow(2,36),sa=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
|
||||
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ja=this.id:(this.Ka=this.id.substr(0,a),this.Ja=this.id.substr(a+1));this.j={ready:!1,Ea:!1,Ta:!1,V:!1,error:!1};this.La=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.la=null;u.push(this)}function ta(a,b,c){ua[a]&&b&&(ua[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
function v(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function xa(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
||||
function y(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){var c=C;b=D(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=A(f))&&h.binding&&a.fa(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function ya(a){for(var b=!0,c=za[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Aa.indexOf(e)&&(g=function(){return function(){ya(a)}}());var f=Ba[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=y(d[1],a);if(h)if(f=Ca[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){v("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete za[a];return b}l=t.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.fa=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.la=this.G[b]=c,c.value="",this.f=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ba=function(a){this.f(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.ba=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Da(a,b){a.j.error=!0;a.ba(b)}function Ja(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Ka(a,b){b&&(a.j.ready?b():a.Na=b);return a.j.ready}function E(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Na;a.Na=null;b&&b()}}function La(a,b){a.j.Fa&&(b?a.j.Va=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
function Ma(a,b){if(a.j.Va)return a.j.Fa=!1,a.j.Va=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.na=function(){return this.j.W=!0};l.ea=function(a,b){b&&(this.j.W=!1);return!0};function Na(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Oa(a,b,c,d){a.A&&(!0===c||Na(a,c|0))&&a.A.message(b,d)}
|
||||
l.fa=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.la=this.G[b]=c,c.value="",this.f=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ba=function(a){this.f(a,this.Ja)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ja+": "+a)};l.ba=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ia(a,b){a.j.error=!0;a.ba(b)}function Ja(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Ka(a,b){b&&(a.j.ready?b():a.La=b);return a.j.ready}function E(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.La;a.La=null;b&&b()}}function La(a,b){a.j.Ea&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Ea}
|
||||
function Ma(a,b){if(a.j.Ta)return a.j.Ea=!1,a.j.Ta=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Ea=b;return a.j.Ea}l.na=function(){return this.j.V=!0};l.ea=function(a,b){b&&(this.j.V=!1);return!0};function Na(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Oa(a,b,c,d){a.A&&(!0===c||Na(a,c|0))&&a.A.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var ua=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],za=window?window.PCjs.Commands:{},Aa=["hold","sleep","wait"],Ba={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ca={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
|
|
@ -53,175 +53,174 @@ d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c
|
|||
function F(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function Ra(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function Sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Ta(){var a=Ua();return-1!==a.indexOf("pcjs.org",a.length-8)}
|
||||
function Va(a){return a.replace(/[&<>"']/g,function(a){return Wa[a]})}function Xa(a,b){return(a+" ").slice(0,b)}function Ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Wa={"&":"&","<":"<",">":">",'"':""","'":"'"};function Za(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}
|
||||
function hb(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function ib(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
||||
function H(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
||||
g,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f}
|
||||
function jb(a,b){var c,d={Y:null,V:null,ka:null,ja:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ka=f.load;d.ja=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
|
||||
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Aa=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(v(d.Y[0]),d=null):(v("Empty resource: "+a),d=null));d.V=f.symbols}catch(h){v("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
||||
function Ua(){return"http://"+(window?window.location.host:"www.pcjs.org")}function kb(){if(null==lb){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}lb=a}return lb}function mb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function nb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ob(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 pb(a){if(!qb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}qb=c}return qb[a]}function rb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function sb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function tb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ub(a){vb.init.push(a)}
|
||||
function wb(a){if(xb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function yb(a){!xb&&a?(xb=!0,zb&&Ab("init"),Bb&&Ab("show")):xb=a}function Ab(a){vb[a]&&wb(vb[a])}var qb=null,vb={init:[],show:[],exit:[]},zb=!1,Bb=!1,xb=!0,lb=null;tb("onload",function(){zb=!0;wb(vb.init)});tb("onpageshow",function(){Bb=!0;wb(vb.show)});tb(ob("Opera")||ob("iOS")?"onunload":"onbeforeunload",function(){wb(vb.exit)});
|
||||
var C="pdp10",Cb="PDPjs",Ib=Math.pow(2,18),Jb=Math.pow(2,18)-1,Kb=Math.pow(2,36),H=Math.pow(2,18),Lb=Math.pow(2,21),Mb=Math.pow(2,26),Nb=Math.pow(2,23),C="pdp10",Cb="PDPjs",I={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Ob(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.U=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.P=this.F=!1;this.R=Pb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Tb,reset:this.Pb,
|
||||
set:this.Sb};E(this)}p(Ob,t);l=Ob.prototype;l.reset=function(a){this.stop();a&&Qb(this,this.v=0)};
|
||||
function ib(a,b){var c,d={Y:null,U:null,ka:null,ja:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ka=f.load;d.ja=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
|
||||
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.za=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(v(d.Y[0]),d=null):(v("Empty resource: "+a),d=null));d.U=f.symbols}catch(h){v("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
||||
function Ua(){return"http://"+(window?window.location.host:"www.pcjs.org")}function jb(){if(null==kb){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}kb=a}return kb}function lb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function mb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function nb(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
|
||||
function ob(a){if(!pb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}pb=c}return pb[a]}function qb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function rb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function sb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function tb(a){ub.init.push(a)}
|
||||
function vb(a){if(wb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function xb(a){!wb&&a?(wb=!0,yb&&zb("init"),Ab&&zb("show")):wb=a}function zb(a){ub[a]&&vb(ub[a])}var pb=null,ub={init:[],show:[],exit:[]},yb=!1,Ab=!1,wb=!0,kb=null;sb("onload",function(){yb=!0;vb(ub.init)});sb("onpageshow",function(){Ab=!0;vb(ub.show)});sb(nb("Opera")||nb("iOS")?"onunload":"onbeforeunload",function(){vb(ub.exit)});
|
||||
var C="pdp10",Bb="PDPjs",Cb=Math.pow(2,18),Db=Math.pow(2,18)-1,Eb=Math.pow(2,36),I=Math.pow(2,18),Fb=Math.pow(2,35)-1,Gb=Math.pow(2,21),Hb=Math.pow(2,26),Nb=Math.pow(2,23),C="pdp10",Bb="PDPjs",J={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Ob(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Pb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
|
||||
set:this.Qb};E(this)}p(Ob,t);l=Ob.prototype;l.reset=function(a){this.stop();a&&Qb(this,this.v=0)};
|
||||
l.fa=function(a,b,c,d){if(this.C&&this.C.fa(a,b,c,d)||this.g&&this.g.fa(a,b,c,d)||this.A&&this.A.fa(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Rb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Sb(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){Rb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Sb(a,b)}}(this,b),!0):t.prototype.fa.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;Tb(this);Ub(this)};l.na=function(a,b){if(!b)if(this.U&&Vb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])Wb(this,this.i=a[0]),Qb(this,this.v=a[1]),Xb(this,a[2]);return!0};l.Pb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}Ub(this);return!0};function Yb(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Tb(a,b){for(var c in a.B)Yb(a,c,null!=b?b:a.B[c])}function Zb(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ub(a){for(var b in a.b)Zb(a,b,a.b[b][1])}
|
||||
l.yb=function(a,b,c){if(Rb(this,b)){if(c){var d=this;setTimeout(function(){Sb(d,b);a&&a()},+c);return!1}Sb(this,b)}return!0};l.Sb=function(a,b){if("SR"==a)return Xb(this,Pa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,Zb(this,a,c[1]),!0):!1};l.Tb=function(a){return Rb(this,a)?(Sb(this,a),!0):!1};function Rb(a,b){var c=a.b[b];return c?(Zb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=$b&&(a.O=b==ac,a.P=b==bc),!0):!1}
|
||||
function Sb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(Zb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Ib,this.b[cc]&&this.b[cc][1]&&dc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.S()};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[cc]&&this.b[cc][1])dc(this.g);else{if((a=this.A)&&!La(a,!0))Ma(a,!0),ec(a,0,null),Ma(a,!1);else try{var b=this.g.Ja(1);0<b&&(fc(this.g,b),gc(this.g,b,!0),hc(this.g,b))}catch(c){"number"!=typeof c&&Da(this.g,c.stack||c.message)}this.stop();this.C&&K(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&ic(this),a=Qb(this,this.v=this.u),this.R==Pb?jc(this.D,this.i,a):this.g.T(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.P&&ic(this);this.R==Pb?b=kc(this.D,this.i):b=this.g.H(this.i);Qb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||Wb(this,this.u)};l.Eb=function(a){a?(this.F=!0,Tb(this,!0)):(this.F=!1,Tb(this),Xb(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function ic(a){var b=1,c=a.D.u;a.b[$b]&&a.b[$b][1]||(b=-b);Wb(a,a.i&~c|a.i+b&c)}
|
||||
function Wb(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||Yb(d,e,g)}}}function Qb(a,b){a.I=b%Kb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||Yb(d,e,g)}}return a.I}function Xb(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Ub(a);return!0}l.stop=function(){Wb(this,this.g.u)};
|
||||
function Vb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=xa(d.id);e||(e=new Ob(d,!0));B(e,c)}}var Pb=7,ac="DEP",cc="ENABLE",bc="EXAM",$b="STEP";ub(Vb);function lc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new M(this);mc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;E(this)}p(lc,t);l=lc.prototype;l.reset=function(){};
|
||||
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.save=function(){var a=new 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,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function oc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ia+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ia){m=h.size-(e-k);m>g&&(m=g);h.Ia=e-h.w+m;e=k+16384;g-=m;f++;continue}}return pc(qc,e,g)}e=new M(a,e,m,16384,d);mc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+Qa(b)),!0):pc(Ic,b,c)}
|
||||
function kc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.i(b&16383,b);a.v--;return b}function jc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function nc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Ma||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
||||
l.xb=function(a){this.v||(this.A&&Na(this.A,4)&&Oa(this.A,"memory fault on "+N(this.A,a),!0,!0),this.g.S())};function pc(a,b,c){v("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.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;E(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new J(this)).data()};
|
||||
l.restore=function(){return!0};ub(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 Jc(c),B(c,d)}}});function M(a,b,c,d,e){this.B=a;this.id=Kc+=2;this.w=b;this.Ia=c;this.size=d||0;this.type=e||Lc;this.G=e==Mc;this.b=null;this.H=this.i=this.u=this.Ha;this.T=this.D=this.v=this.wa;this.A=this.C=0;mc(this);this.Ma=this.vb=!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=M.prototype;
|
||||
l.save=function(){return this.g};l.restore=function(a){return a&&this.size==a.length?(this.g=a,this.Ma=!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.H=b[2]||a.Ha);if(c||void 0===c)a.u=b[0]||a.Ha,a.i=b[2]||a.Ha}function Rc(a,b,c){c&&a.C||(a.T=!a.G&&b[3]||a.wa);if(c||void 0===c)a.v=b[1]||a.wa,a.D=b[3]||a.wa}l.Ba=function(a,b){b?this.C++||Rc(this,Sc,!1):this.A++||Qc(this,Sc,!1)};function Tc(a,b){b?--a.C||(a.T=a.G?a.wa:a.D):--a.A||(a.H=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.Ha=function(a,b){this.b&&Na(this.b,32)&&Oa(this.b,"attempt to read invalid address "+N(this.b,b),!0);this.B.xb(b);return-1};l.wa=function(a,b,c){this.b&&Na(this.b,32)&&Oa(this.b,"attempt to write "+N(this.b,a)+" to invalid addresses "+N(this.b,c),!0)};l.Kb=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.Nb=function(a){return this.g[a]};
|
||||
l.Wb=function(a,b,c,d,e){c=this.g[b];var g=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*g+d%g;this.g[b]!=c&&(this.g[b]=c,this.Ma=!0)};l.Yb=function(a,b){this.g[b]=a;this.Ma=!0};l.Jb=function(a,b,c,d){if(this.b&&null!=this.w){var e=this.b;Uc(e,this.w+a,1,e.L)&&e.S(!1)}return this.u(a,b,c,d)};l.Lb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Uc(c,this.w+a,2,c.L)&&c.S(!1)}return this.i(a,b)};
|
||||
l.Vb=function(a,b,c,d,e){if(this.b&&null!=this.w){var g=this.b;Uc(g,this.w+b,1,g.F)&&g.S(!1)}this.G?this.wa(a,0,c):this.v(a,b,c,d,e)};l.Xb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Uc(d,this.w+b,2,d.F)&&d.S(!1)}this.G?this.wa(a,0,c):this.D(a,b,c)};var Lc=0,Mc=2,Hc=["NONE","RAM","ROM"],Kc=0,Pc=[],Oc=[M.prototype.Kb,M.prototype.Wb,M.prototype.Nb,M.prototype.Yb],Sc=[M.prototype.Jb,M.prototype.Vb,M.prototype.Lb,M.prototype.Xb];
|
||||
function Vc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Da=0;this.Ta=b;this.U=c;this.Ra=Math.round(this.Ta/1E4)/100;this.R=this.Ra*this.U;this.Sa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Qa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ga=0;this.ta=+a.csStart;this.ca=+a.csInterval;this.ha=+a.csStop;this.I=[];this.fb=this.Qb.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ia=this.Ua=this.P=0;this.xa=
|
||||
null;E(this)}p(Vc,t);l=Vc.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<Wc.length;a++)(b=this.G[Wc[a]])&&this.C.fa(null,Wc[a],b);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.na=function(a,b){var c=Xc(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){Yc(this);if(!this.restore(a))return!1;Zc(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.xa=!0,a.f("Type ? for help with PDPjs Debugger commands"),$c(a),b||ad(a),a.ta&&(b=a.ta,a.ta=null,bd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ea=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(dc(this),!0):!1};l.lb=function(){return 0};function Zc(a){void 0===a.ta&&(a.ta=0);void 0===a.ca&&(a.ca=-1);void 0===a.ha&&(a.ha=-1);a.j.Ea=0<=a.ta&&0<a.ca;a.j.Ea&&(a.sa=0,a.ga=a.ta-a.N)}function hc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ga-=b;0>=a.ga&&(a.ga+=a.ca,c=!0);0<=a.ha&&a.ha<=cd(a)&&(a.ca=a.ha=-1,Zc(a),a.S(),c=!0);c&&a.f(cd(a)+" cycles: checksum="+F(a.sa))}}
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.W)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.W);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Na?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.S():dc(d))},!0;case "speed":return this.G[b]=
|
||||
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){dd(d,d.U<<1,!0)},c.textContent=this.R.toFixed(2)+"Mhz",!0}return!1};function gc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function ed(a,b){var c=1;b&&1<a.U&&a.P&&(c=a.P/a.Ra);a.Sa=Math.round(1E3/fd);a.ua=Math.floor(a.Ta/fd*c);b||(a.aa=a.ua);a.ya=0}function cd(a){return a.N+a.F+a.L-a.M}function Yc(a){a.P=0;a.Ua=0;a.N=a.F=a.L=a.M=0;Zc(a);dd(a,1)}
|
||||
function dd(a,b,c){var d=!1;if(void 0!==b){.8>a.P/a.R?b=1:d=!0;a.U=b;b=a.Ra*a.U;if(a.R!=b){a.R=b;b=a.R.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&gd(a.C)}gc(a,a.F);a.F=0;a.B=va();a.J=0;ed(a);return d}function hd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function id(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function fc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function jd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
||||
l.Qb=function(){if(this.j.K){this.ya>=this.Ta&&ed(this,!0);this.ia=0;this.ra=va();if(this.J){var a=this.ra-this.J;a>this.Sa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=hd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=jd(this,!0);this.ia+=b;this.F+=b;hc(this,b);fc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Ua>=kd&&(this.C&&K(this.C,void 0),this.Ua=0);break}}while(this.j.K)}catch(e){this.S();this.C&&this.C.stop(va(),cd(this));Da(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=va();var c=this.Sa;this.ia&&(c=Math.round(c*this.ia/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.P=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,dd(this)));if(0>c||this.P<this.R)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ia;this.J+=c;a(b,c)}}};
|
||||
function dc(a,b){if(!Ja(a))if(a.j.K)a.f(a.toString()+" busy");else{dd(a);a.j.K=!0;a.j.Qa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&gd(a.C,!0),a.C.start(a.B,cd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.S=function(a){var b=!1;if(this.j.K){jd(this);gc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(va(),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.eb=b;this.bb=+a.addrReset||0;this.sb=md.bind(this);this.b=O.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(ld,Vc);l=ld.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.S();this.i=this.O=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Mb;this.T=this.Zb;this.oa=null;Yc(this);this.j.error=!1;Vc.prototype.reset.call(this)};l.lb=function(){return 0};
|
||||
l.save=function(){var a=new J(this);a.set(0,[this.i,this.O,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.U,this.j.Z]);a.set(3,nd(this));a.set(4,id(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.i=b.next().value;this.O=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];dd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Ub===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
|
||||
a[b];return!0};function od(a,b){var c=a.u;a.u=(c+b)%Ib;return c}function nd(a){var b=[];for(a=a.oa;a;)b.push(a.Ub),a=a.next;return b}l.Mb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Zb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].T(b,a&16383,a)};
|
||||
l.Ja=function(a){this.j.complete=!0;var b=this.A?pd(this.A)?1:this.j.Qa?-1:0:0,c=a?this.j.Qa?0:1:-1;this.j.Qa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(qd(this.A,this.u,c)){this.S();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&qd(this.A,this.u,c)){this.S();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i):this.za=this.H(this.qa=this.u);this.i=this.O&262143;if(a=this.O>>18&15)this.i=
|
||||
this.i+this.H(a)&Jb;this.O&4194304?a=-1:(this.u=(this.u+1)%Ib,a=this.za/Nb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};ub(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ld(d);B(d,c)}});function md(a){rd[a>>4].call(this,a)}function Q(a){this.b(a)}function sd(a){this.b(a)}function td(a){this.b(a)}function ud(a){a&=15;var b=this.H(this.i),c=this.H(a);this.T(a,(c&262143)+(b-(b&262143)))}
|
||||
function vd(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.T(a,c-(c&262143)+b)}function R(a){this.b(a)}function O(a){this.f("undefined opcode: "+Qa(a));od(this,-1);this.S()}
|
||||
var rd=[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,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a,b){return function(c){Rb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Sb(a,b)}}(this,b),!0):t.prototype.fa.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;Tb(this);Ub(this)};l.na=function(a,b){if(!b)if(this.T&&Vb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])Wb(this,this.i=a[0]),Qb(this,this.v=a[1]),Xb(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}Ub(this);return!0};function Yb(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Tb(a,b){for(var c in a.B)Yb(a,c,null!=b?b:a.B[c])}function Zb(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ub(a){for(var b in a.b)Zb(a,b,a.b[b][1])}
|
||||
l.yb=function(a,b,c){if(Rb(this,b)){if(c){var d=this;setTimeout(function(){Sb(d,b);a&&a()},+c);return!1}Sb(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return Xb(this,Pa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,Zb(this,a,c[1]),!0):!1};l.Rb=function(a){return Rb(this,a)?(Sb(this,a),!0):!1};function Rb(a,b){var c=a.b[b];return c?(Zb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=$b&&(a.O=b==ac,a.R=b==bc),!0):!1}
|
||||
function Sb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(Zb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Cb,this.b[cc]&&this.b[cc][1]&&dc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
|
||||
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[cc]&&this.b[cc][1])dc(this.g);else{if((a=this.A)&&!La(a,!0))Ma(a,!0),ec(a,0,null),Ma(a,!1);else try{var b=this.g.Ia(1);0<b&&(fc(this.g,b),gc(this.g,b,!0),hc(this.g,b))}catch(c){"number"!=typeof c&&Ia(this.g,c.stack||c.message)}this.stop();this.C&&M(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&ic(this),a=Qb(this,this.v=this.u),this.S==Pb?jc(this.D,this.i,a):this.g.P(this.i,a))};
|
||||
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&ic(this);this.S==Pb?b=kc(this.D,this.i):b=this.g.H(this.i);Qb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||Wb(this,this.u)};l.Eb=function(a){a?(this.F=!0,Tb(this,!0)):(this.F=!1,Tb(this),Xb(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function ic(a){var b=1,c=a.D.u;a.b[$b]&&a.b[$b][1]||(b=-b);Wb(a,a.i&~c|a.i+b&c)}
|
||||
function Wb(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||Yb(d,e,g)}}}function Qb(a,b){a.I=b%Eb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||Yb(d,e,g)}}return a.I}function Xb(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Ub(a);return!0}l.stop=function(){Wb(this,this.g.u)};
|
||||
function Vb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=xa(d.id);e||(e=new Ob(d,!0));B(e,c)}}var Pb=7,ac="DEP",cc="ENABLE",bc="EXAM",$b="STEP";tb(Vb);function lc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new mc(this);nc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;E(this)}p(lc,t);l=lc.prototype;l.reset=function(){};
|
||||
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,oc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function pc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ga+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ga){m=h.size-(e-k);m>g&&(m=g);h.Ga=e-h.w+m;e=k+16384;g-=m;f++;continue}}return qc(rc,e,g)}e=new mc(a,e,m,16384,d);nc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+sc[d]+" at "+Qa(b)),!0):qc(tc,b,c)}
|
||||
function kc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function jc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function oc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
||||
l.xb=function(a){this.v||(this.A&&Na(this.A,4)&&Oa(this.A,"memory fault on "+N(this.A,a),!0,!0),this.g.W())};function qc(a,b,c){v("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var rc=1,tc=2;function uc(a){t.call(this,"Device",a,256)}p(uc,t);l=uc.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;E(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ea=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new L(this)).data()};
|
||||
l.restore=function(){return!0};tb(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new uc(c),B(c,d)}}});function mc(a,b,c,d,e){this.u=a;this.id=vc+=2;this.w=b;this.Ga=c;this.size=d||0;this.type=e||Mc;this.i=e==Nc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ha;this.g=this.A=0;nc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Oc(this,Pc)}else Oc(this)}l=mc.prototype;l.save=function(){return this.C};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Oc(a,b){b||(b=Qc);Rc(a,b,void 0);Sc(a,b,void 0)}function Rc(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function Sc(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ha);if(c||void 0===c)a.D=b[1]||a.Ha}l.Aa=function(a,b){b?this.A++||Sc(this,Tc,!1):this.g++||Rc(this,Tc,!1)};function Uc(a,b){b?--a.A||(a.P=a.i?a.Ha:a.D):--a.g||(a.H=a.G)}
|
||||
function nc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&Rc(a,Tc,!1),(a.A=c.A)&&Sc(a,Tc,!1))}l.Xa=function(a,b){this.b&&Na(this.b,32)&&Oa(this.b,"attempt to read invalid address "+N(this.b,b),!0);this.u.xb(b);return-1};l.Ha=function(a,b,c){this.b&&Na(this.b,32)&&Oa(this.b,"attempt to write "+N(this.b,a)+" to invalid addresses "+N(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
|
||||
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Vc(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Vc(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ha(a,0,c):this.D(a,b,c)};var Mc=0,Nc=2,sc=["NONE","RAM","ROM"],vc=0,Qc=[],Pc=[mc.prototype.Lb,mc.prototype.Ub],Tc=[mc.prototype.Jb,mc.prototype.Tb];
|
||||
function Wc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Pa=Math.round(this.Ra/1E4)/100;this.S=this.Pa*this.T;this.Qa=this.ua=this.aa=this.xa=0;this.j.K=this.j.Oa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Da=!1;this.sa=this.ga=0;this.ta=+a.csStart;this.ca=+a.csInterval;this.ha=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ia=this.Sa=this.R=0;this.wa=
|
||||
null;E(this)}p(Wc,t);l=Wc.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.wa=a.u;for(a=0;a<Xc.length;a++)(b=this.G[Xc[a]])&&this.C.fa(null,Xc[a],b);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.na=function(a,b){var c=Yc(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){Zc(this);if(!this.restore(a))return!1;$c(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.wa=!0,a.f("Type ? for help with PDPjs Debugger commands"),ad(a),b||bd(a),a.ta&&(b=a.ta,a.ta=null,cd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.wa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ea=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(dc(this),!0):!1};l.lb=function(){return 0};function $c(a){void 0===a.ta&&(a.ta=0);void 0===a.ca&&(a.ca=-1);void 0===a.ha&&(a.ha=-1);a.j.Da=0<=a.ta&&0<a.ca;a.j.Da&&(a.sa=0,a.ga=a.ta-a.N)}function hc(a,b){if(a.j.Da){var c=!1;a.sa=a.sa+a.lb()|0;a.ga-=b;0>=a.ga&&(a.ga+=a.ca,c=!0);0<=a.ha&&a.ha<=dd(a)&&(a.ca=a.ha=-1,$c(a),a.W(),c=!0);c&&a.f(dd(a)+" cycles: checksum="+F(a.sa))}}
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.La?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():dc(d))},!0;case "speed":return this.G[b]=
|
||||
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){ed(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function gc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function fd(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Pa);a.Qa=Math.round(1E3/gd);a.ua=Math.floor(a.Ra/gd*c);b||(a.aa=a.ua);a.xa=0}function dd(a){return a.N+a.F+a.L-a.M}function Zc(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;$c(a);ed(a,1)}
|
||||
function ed(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Pa*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&hd(a.C)}gc(a,a.F);a.F=0;a.B=va();a.J=0;fd(a);return d}function id(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function jd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function fc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function kd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
|
||||
l.Ob=function(){if(this.j.K){this.xa>=this.Ra&&fd(this,!0);this.ia=0;this.ra=va();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=id(this,this.j.Da?1:this.ua);try{this.Ia(b)}catch(e){if("number"!=typeof e)throw e;}b=kd(this,!0);this.ia+=b;this.F+=b;hc(this,b);fc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=ld&&(this.C&&M(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(va(),dd(this));Ia(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=va();var c=this.Qa;this.ia&&(c=Math.round(c*this.ia/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,ed(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.xa+=this.ia;this.J+=c;a(b,c)}}};
|
||||
function dc(a,b){if(!Ja(a))if(a.j.K)a.f(a.toString()+" busy");else{ed(a);a.j.K=!0;a.j.Oa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&hd(a.C,!0),a.C.start(a.B,dd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ia=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){kd(this);gc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(va(),dd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var gd=30,ld=15,Xc=["power","reset"];
|
||||
function md(a){var b=+a.model||1001;Wc.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=nd.bind(this);this.b=P.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(md,Wc);l=md.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.ya=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;Zc(this);this.j.error=!1;Wc.prototype.reset.call(this)};l.lb=function(){return 0};
|
||||
l.save=function(){var a=new L(this);a.set(0,[this.i,this.O,this.ya,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,od(this));a.set(4,jd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ca();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.i=b.next().value;this.O=b.next().value;this.ya=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];ed(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
|
||||
a[b];return!0};function pd(a,b){var c=a.u;a.u=(c+b)%Cb;return c}function od(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].P(b,a&16383,a)};
|
||||
l.Ia=function(a){this.j.complete=!0;var b=this.A?qd(this.A)?1:this.j.Oa?-1:0:0,c=a?this.j.Oa?0:1:-1;this.j.Oa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(rd(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&rd(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i):this.ya=this.H(this.qa=this.u);this.i=this.O&262143;if(a=this.O>>18&15)this.i=
|
||||
this.i+this.H(a)&Db;this.O&4194304?a=-1:(this.u=(this.u+1)%Cb,a=this.ya/Nb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};tb(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new md(d);B(d,c)}});function nd(a){sd[a>>4].call(this,a)}function Q(a){this.b(a)}function td(a){this.b(a)}function ud(a){this.b(a)}function vd(a){var b=a&15,c=this.H(this.i),d=this.H(b),d=wd(a,d,c)+(c-(c&262143));this.P(b,d)}
|
||||
function xd(a){var b=a&15,c=this.H(b),c=wd(a,c,0);this.P(b,c)}function yd(a){var b=this.H(a&15),c=this.H(this.i),c=wd(a,c,b)+(b-(b&262143));this.P(this.i,c)}function zd(a){var b=this.H(this.i);this.P(this.i,wd(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,wd(a,b,b)))}function Ad(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function W(a){this.b(a)}function P(a){this.f("undefined opcode: "+Qa(a));pd(this,-1);this.W()}
|
||||
function wd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Fb?262143:0}return b}
|
||||
var sd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},sd,td,td,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},sd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},O,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},td,ud,ud,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},td,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},ud,function(a){a&=15;var b=this.H(a);this.T(a,b&262143)},function(a){a=this.H(a&15);var b=this.H(this.i);this.T(this.i,(b&262143)+(a-(a&262143)))},function(a){a&15&&ud.call(this,a)},
|
||||
function(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a),c=(c&262143)+b*H;this.T(a,c)},function(a){a&=15;var b=this.H(a),b=(b&262143)+this.i*H;this.T(a,b)},function(a){a=this.H(a&15)&262143;var b=this.H(this.i),b=(b&262143)+a*H;this.T(this.i,b)},function(a){var b=this.H(this.i)&262143;this.T(this.i,b+b*H);if(a&=15)b=this.H(a)&262143,this.T(a,b+b*H)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},vd,function(a){a&=15;var b=this.H(a),b=b-(b&262143)+this.i;this.T(a,b)},function(a){a=this.H(a&15)&262143;var b=
|
||||
this.H(this.i);this.T(this.i,b-(b&262143)+a)},function(a){a&15&&vd.call(this,a)},function(a){a&=15;var b=this.H(this.i)/H|0,c=this.H(a);this.T(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.T(a,b-(b&262143))},function(a){a=this.H(a&15)/H|0;var b=this.H(this.i);this.T(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.T(this.i,(b&262143)+(b/H|0));if(a&=15)b=this.H(a),this.T(a,(b&262143)+(b/H|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},vd,xd,yd,zd,function(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a),c=(c&262143)+b*I;this.P(a,c)},function(a){a&=15;var b=this.H(a),b=(b&262143)+this.i*I;this.P(a,b)},function(a){a=
|
||||
this.H(a&15)&262143;var b=this.H(this.i),b=(b&262143)+a*I;this.P(this.i,b)},function(a){var b=this.H(this.i)&262143;this.P(this.i,b+b*I);if(a&=15)b=this.H(a)&262143,this.P(a,b+b*I)},vd,xd,yd,zd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},vd,xd,yd,zd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},vd,xd,yd,zd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ad,function(a){a&=
|
||||
15;var b=this.H(a),b=b-(b&262143)+this.i;this.P(a,b)},function(a){a=this.H(a&15)&262143;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){a&15&&Ad.call(this,a)},function(a){a&=15;var b=this.H(this.i)/I|0,c=this.H(a);this.P(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.P(a,b-(b&262143))},function(a){a=this.H(a&15)/I|0;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.P(this.i,(b&262143)+(b/I|0));if(a&=15)b=this.H(a),this.P(a,(b&262143)+
|
||||
(b/I|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,
|
||||
R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R];
|
||||
function wd(a){t.call(this,"ROM",a,128);this.V=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Ra(this.v);if(this.v){a=this.v;var b=Sa(this.F);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;ib(a,null,!0,function(a,b,g){g?(c.ba("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(ta(c.La,a,b),(a=jb(a,b))?(c.b=a.Y,c.V=a.V):c.v=null);xd(c)})}}p(wd,t);
|
||||
wd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;xd(this)};wd.prototype.na=function(){this.V&&(this.A&&yd(this.A,this.id,this.B,this.u,this.V),delete this.V);return!0};wd.prototype.ea=function(){return!0};
|
||||
function xd(a){if(!Ka(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Da(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.D,b,a.u,Mc)){var c;for(c=0;c<a.b.length;c++)jc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}E(a)}}ub(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new wd(d);B(d,c)}});
|
||||
function zd(a){t.call(this,"RAM",a);this.V=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.ka=a.load;this.ja=a.exec;null!=this.ka&&(this.ka=+this.ka);null!=this.ja&&(this.ja=+this.ja);this.v=this.F=!1;this.b=a.file;this.B=Ra(this.b);if(this.b){a=this.b;var b=Sa(this.B);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;ib(a,null,!0,function(a,b,g){g?(c.ba("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(ta(c.La,a,b),(a=jb(a,b))?(c.Aa=a.Aa,
|
||||
c.V=a.V,null==c.ka&&(c.ka=a.ka),null==c.ja&&(c.ja=a.ja)):c.b=null);Ad(c)})}}p(zd,t);zd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Ad(this)};zd.prototype.na=function(a,b){this.V&&(this.A&&yd(this.A,this.id,this.i,this.u,this.V),delete this.V);b||this.reset();return!0};zd.prototype.ea=function(){return!0};
|
||||
function Ad(a){if(a.D&&(!a.v&&a.u&&(oc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Ka(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Bd(a,a.Aa,a.ka,a.ja,a.i)?a.status('Loaded image "'+a.B+'"'):a.ba('Error loading image "'+a.B+'"')}a.F=!0;E(a)}}
|
||||
zd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=sa&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Bd(this,this.Aa,this.ka,this.ja,this.i,!this.A)}this.F=!1};
|
||||
function Bd(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)jc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.S(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Ib,g?a.j.W?a.j.K||dc(a):a.j.Z=!0:a.A&&a.j.W?a.S()||a.C.j.reset||($c(a.A),K(a.C,-1)):!1===g&&a.S(),!a.j.K&&a.xa&&a.xa.stop()));return f}ub(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new zd(d);B(d,c)}});
|
||||
function Cd(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Dd;b&&(void 0===c&&(c="Panel"),(c=y(c,this.id))&&(b=c.G[b])&&this.fa(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Oa,receiveStatus:this.Ob,setConnection:this.Rb}}p(Cd,t);l=Cd.prototype;
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case Dd:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Oa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Oa(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.Oa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;E(this)};
|
||||
l.nb=function(a){if(!this.b){var b=Xc(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ya(c[0]);if(d!=this.Ka)return;c=Ya(c[1]);if(this.b=xa(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ea=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new J(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Oa=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.Ob=function(){};l.Rb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Dd="buffer";
|
||||
ub(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Cd(d);B(d,c)}});function Ed(a){t.call(this,"Debugger",a);this.da=+a.base||16;this.oa=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.aa={}}p(Ed,t);Ed.prototype.mb=function(){return-1};Ed.prototype.Xa=function(){};
|
||||
function Fd(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ya(b.substring(c,g))),c=g+1}}return a}
|
||||
function Gd(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
||||
W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W];
|
||||
function Bd(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Ra(this.v);if(this.v){a=this.v;var b=Sa(this.F);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,g){g?(c.ba("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(ta(c.Ka,a,b),(a=ib(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Cd(c)})}}p(Bd,t);
|
||||
Bd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Cd(this)};Bd.prototype.na=function(){this.U&&(this.A&&Dd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Bd.prototype.ea=function(){return!0};
|
||||
function Cd(a){if(!Ka(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ia(a,"ROM size ("+F(a.b.length,8,!0)+") does not match specified size ("+F(a.u,8,!0)+")");else{var b;b=a.B;if(pc(a.D,b,a.u,Nc)){var c;for(c=0;c<a.b.length;c++)jc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
|
||||
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}E(a)}}tb(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bd(d);B(d,c)}});
|
||||
function Ed(a){t.call(this,"RAM",a);this.U=this.za=null;this.i=+a.addr;this.u=+a.size;this.ka=a.load;this.ja=a.exec;null!=this.ka&&(this.ka=+this.ka);null!=this.ja&&(this.ja=+this.ja);this.v=this.F=!1;this.b=a.file;this.B=Ra(this.b);if(this.b){a=this.b;var b=Sa(this.B);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,g){g?(c.ba("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(ta(c.Ka,a,b),(a=ib(a,b))?(c.za=a.za,
|
||||
c.U=a.U,null==c.ka&&(c.ka=a.ka),null==c.ja&&(c.ja=a.ja)):c.b=null);Fd(c)})}}p(Ed,t);Ed.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Fd(this)};Ed.prototype.na=function(a,b){this.U&&(this.A&&Dd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Ed.prototype.ea=function(){return!0};
|
||||
function Fd(a){if(a.D&&(!a.v&&a.u&&(pc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Ka(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.za)return;Gd(a,a.za,a.ka,a.ja,a.i)?a.status('Loaded image "'+a.B+'"'):a.ba('Error loading image "'+a.B+'"')}a.F=!0;E(a)}}
|
||||
Ed.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=sa&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.za&&Gd(this,this.za,this.ka,this.ja,this.i,!this.A)}this.F=!1};
|
||||
function Gd(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)jc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Cb,g?a.j.V?a.j.K||dc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(ad(a.A),M(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.wa&&a.wa.stop()));return f}tb(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ed(d);B(d,c)}});
|
||||
function Hd(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Id;b&&(void 0===c&&(c="Panel"),(c=y(c,this.id))&&(b=c.G[b])&&this.fa(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Ma,receiveStatus:this.Mb,setConnection:this.Pb}}p(Hd,t);l=Hd.prototype;
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case Id:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Ma(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Ma(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ma(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;E(this)};
|
||||
l.nb=function(a){if(!this.b){var b=Yc(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ya(c[0]);if(d!=this.Ja)return;c=Ya(c[1]);if(this.b=xa(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ea=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new L(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ma=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Id="buffer";
|
||||
tb(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hd(d);B(d,c)}});function Jd(a){t.call(this,"Debugger",a);this.da=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(Jd,t);Jd.prototype.mb=function(){return-1};Jd.prototype.Wa=function(){};
|
||||
function Kd(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ya(b.substring(c,g))),c=g+1}}return a}
|
||||
function Ld(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
||||
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function Hd(a,b,c){var d;if(b){b=Id(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ya(n);if(!n){g=!0;break}n=Jd(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],x=n.length;k.length&&Kd[n]<Kd[k[k.length-1]]&&Gd(h,k,1);k.push(n);b=b.substr(r+x)}Gd(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Ld(a,null,
|
||||
d))}return d}function Id(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=Hd(a,c[1]);b=b.replace(d+c[1]+e,null!=f?N(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function Jd(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Xa(e):(e=a.aa[b],null==e&&(e=Pa(b,a.da))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function Ld(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var x=null==k||isNaN(k),S=m=m||n;0<n--;)S||(r=","+r,S=m),r=(x?"?":k&1?"1":"0")+r,k>>=1,S--;f=r+f;d>>=8}d=F(c,0,!0)+" "+c+". "+Qa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function Md(a,b){if(b)return Ld(a,b,a.aa[b]);var c=0;for(b in a.aa)Ld(a,b,a.aa[b]),c++;return 0<c}function N(a,b,c){c=void 0===c?0:c;switch(a.da){case 8:a=Qa(b,0<c?(c+2)/3|0:0);break;case 10:a=b;b=0<c?Math.ceil(.3*c):0;var d="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode(a%10+48)+d,a/=10;a=d;break;default:a=F(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var Kd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Nd(a){Ed.call(this,a);this.xa=!1;this.oa=!0;this.J=X();this.ua=X();this.O=X();this.I=[];this.b=this.L=this.F=[];Od(this);this.R=this.ia=0;this.i=[];this.ra=void 0;Pd(this);this.A=this;this.pa={};this.X=this.ib=0;this.U=null;this.N=[];Qd(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.za=this.ya=this.ha=this.qa=0;this.ga=this.ca=null;var b=this;window?void 0===window[C]&&(window[C]=function(a){return bd(b,a)}):void 0===global[C]&&(global[C]=function(a){return bd(b,
|
||||
a)})}p(Nd,Ed);function Y(a){a=a&&a.w;null==a&&(a=-1);return a}function X(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ma:!1,da:c}}function Rd(a){return[a.w,a.wb,a.da,a.ma,a.Pa]}function Sd(a,b){var c=X(b[0],b[1],b[2]);c.ma=b[3];b[4]&&(c.gb=Fd(a,c.Pa=b[4]));return c}l=Nd.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ga=a.u;(a=Xc(a,"messages"))&&Qd(this,a);Td(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Hc[c],n&&d.f(F(n.id,8)+" %"+F(e<<d.D.i,8)+" %"+F(n.w,8)+" "+F(n.Ia,4,!0)+
|
||||
" "+F(n.size,4,!0)+" "+m),c!=Lc&&(c=-1),m=0);a+=16384;e++}}});E(this)};
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",bd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,sb(c,function(){if(d.ca){var a=d.ca.value;
|
||||
d.ca.value="";bd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,sb(c,function(a){var b=!1;La(d,!0)||(Ma(d,!0),b=ec(d,a?1:0,null),Ma(d,!1));return b}),!0}return!1};function ad(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ca=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=kc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=Y(a);-1!==d&&(jc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),K(this.C,-1))};
|
||||
function Z(a,b,c){var d;c=(c?a.J:a.ua).w;var e,g;if(void 0!==b){b=Id(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.I.length;c++){var k=a.I[c].V[d];if(null!=k){h=k.o;break}}null!=h&&(f=X(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=Hd(a,b,void 0)}null!=c&&(d=X(c,e,g));return d}function Ud(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Fd(a,b.Pa=c[2]))}
|
||||
function Vd(a){return Qa(a/Ib,6)+" "+Qa(a%Ib,6)}function Qd(a,b){a.A=a;a.X=a.ib=536870916;a.U=null;a.N=[];b=Fd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in I){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=I[c],a.f(c+" messages enabled"))}}function Td(a,b){for(var c in I)if(16==I[c]){a.pa[c]=b;break}}l.mb=function(a){return Wd.indexOf(a.toUpperCase())};
|
||||
l.Xa=function(a){var b;switch(a){case Xd:b=this.g.u;break;case Yd:b=this.g.O;break;case Zd:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+N(this,X(this.g.qa).w));if(!this.U||a!=this.U)if(this.U=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||La(this,!0))this.S(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,jd(a),a.aa=0,a.C&&K(a.C,void 0))}};
|
||||
function Pd(a){var b;if(!pd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array($d);for(b=0;b<a.i.length;b++)a.i[b]=X();a.R=0;a.f("instruction history buffer allocated")}}function ae(a,b,c){if(!Ce(a,c))return!1;dc(a.g,b);return!0}
|
||||
function ec(a,b,c,d){if(!Ce(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||pd(a)&&qd(a,a.g.u,0);try{b=hd(a.g,b);var g=a.g.Ja(b);0<g&&(fc(a.g,g),a.B+=g,gc(a.g,g,!0),hc(a.g,g),a.ha++)}catch(f){"number"!=typeof f&&(a.B=0,Da(a.g,f.stack||f.message))}!1!==d&&(a.ga&&a.ga.stop(),K(a.C,-1));$c(a,c||!1,e);return 0<a.B}l.S=function(a){this.g&&this.g.S(a)};function $c(a,b,c){a.xa&&(void 0===b&&(b=!0),c&&a.f(Ee+c),a.J=X(a.g.u),b&&1!=a.M?Fe(a):Ge(a))}
|
||||
function Ce(a,b){var c;(c=!a.g||!Ka(a.g))||(c=a.g,c.j.W?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ja(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ea=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Pd(this);this.ha=0;this.U=null;this.B=0;this.J=X(this.g.u);this.j.K=!1;He(this);a||$c(this)};
|
||||
l.save=function(){var a=new J(this);a.set(0,Rd(this.J));a.set(1,Rd(this.O));a.set(2,[this.u,this.P,this.X]);a.set(3,this.I);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=Sd(this,a[b++]),this.O=Sd(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[3]&&(this.I=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.ya=a;this.za=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.za;if(!this.M){b="stopped";if(this.B){a-=this.ya;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";pd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Na(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}$c(this,!0);ad(this);He(this,this.g.u);this.U=null}};function pd(a){return 1<a.b.length||!!a.ia}
|
||||
function qd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=od(a.g,1)));if(0<c&&(a.ia&&!--a.ia||Uc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.g.H(b)),0<=d&&(c=a.i[a.R],c.w=b,c.ma=!1,c.da=void 0,++a.R==a.i.length&&(a.R=0)));return!1}
|
||||
function Ie(a,b,c,d){var e=X(b.w),g=a.Ca(b,1),f,h,k,m=0,n=g/Lb|0,r;for(r in Je)if(f=Je[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Ke;m=n&3;break;case 32256:k=Le;m=n&7;break;case 29248:k=Me,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Ne&&(k="B");k=Oe[f||0]+k;k=Xa(k,8);f?(k=28700==h?k+N(a,g/Mb&127,-1):k+N(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=N(a,g&262143,-1),(g=g>>18&15)&&(k+="("+N(a,g,-1)+")")):k+=Vd(g);g=k;f="";h=N(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.Ca(e,1),f+=" "+Vd(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=Xa(f,16)+g;c&&(h=Xa(h,60)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+cd(a.g).toString()+" cs="+F(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function Od(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=Y(c);var d=a.D;Tc(d.b[c>>>d.i],!1)}a.L=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],c=Y(c),d=a.D,Tc(d.b[c>>>d.i],!0);a.F=["bw"];a.qa=0;a.ia=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||Pe(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.f("invalid address: "+N(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.F)}}d&&(a.push(b),c?b.ma=!0:(Qe(this,a,a.length-1,"set"),Pd(this)));return d};function Pe(a,b,c,d,e){var g=!1;c=Y(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==Y(h)&&(!d||h.ma)){g=!0;h.ma||e||Qe(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Tc(d.b[c>>>d.i],b==a.F));h.ma||Pd(a);break}}return g}
|
||||
function Re(a,b){for(var c=1;c<b.length;c++)Qe(a,b,c);return b.length-1}function Qe(a,b,c,d){c=b[c];a.f(b[0]+" "+N(a,c.w)+(d?" "+d:c.Pa?' "'+c.Pa+'"':""))}function He(a,b){if(void 0!==b)Uc(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ma){if(!Pe(a,a.b,c,!0))break;b=0}}}
|
||||
function Uc(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ma)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ma&&(Pe(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!Se(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var x=r+1;x<n.length&&n[x].indexOf("else");x++)r++;if(x==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||Qe(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function Te(a,b){var c=Wd[b]||"";c&&(c+="="+N(a,a.Xa(b))+" ");return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function yd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Za(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.I.push({dd:b,w:c,zb:d,V:e,hb:g})}
|
||||
function Ue(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.I.length;b++){var g=a.I[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=Za(g.hb,[e-f],a.jb);0<=e?Ve(a,b,e,d):c&&(e=~e,Ve(a,b,e-1,d),Ve(a,b,e,d));break}}return d}function Ve(a,b,c,d){var e={},g=a.I[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.I[b].V[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}
|
||||
function We(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Md(a)||a.f("no variables"),!0;if(!c[2])return Md(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=Hd(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function Xe(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=Ue(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+F(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+F(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function Fe(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=Hd(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Ib;a.J=X(e.u);break;default:a.f("unknown register: "+
|
||||
g);return}K(a.C);a.f("updated registers:")}}g=""+(Te(a,Yd)+Te(a,Zd));d&&(g+="\n");a.f(g);c&&(a.J=X(e.u),Ge(a,N(a,a.J.w)))}}function Ye(a,b){b=Ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):Ld(a,null,c[2].charCodeAt(0)):Hd(a,b,!0)}
|
||||
function Ze(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Jd(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;rb(c,function(){return Ma(a,!0)&&ec(a,e,d,!1)},function(){a.ga&&a.ga.stop();K(a.C,-1);Ma(a,!1)})}}
|
||||
function Ge(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Jd(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=La(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=Ue(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Ie(a,b,f,g);a.f(g);a.J=b;e-=b.w-k;c++}}}
|
||||
function Se(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Ee+b):(a.P&&(a.f("ended assemble at "+N(a,a.O.w)),a.J=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(Ka(a)&&0<b.length){a.P&&(b="a "+N(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
Z(a,f[1],!0);if(r)if(a.O=r,void 0===f[2])a.f("begin assemble at "+N(a,r.w)),a.P=!0,K(a.C);else{var x;a.f("not supported yet");x=[];if(x.length){for(var S=0;S<x.length;S++)a.$a(r,x[S],1);a.f(Ie(a,a.O))}}break;case "b":a:{var Bf=f[0],Ea=f[1],Cf=b;if("?"==Ea)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var ma=Bf.charAt(1);if("l"==ma){var rc;rc=0+Re(a,a.b);rc+=Re(a,a.L);(rc+=Re(a,a.F))||a.f("no breakpoints")}else if("n"==ma){var be=+Ea||0;Ea&&(a.ia=be);a.f("break after "+be+" instruction(s)")}else if(void 0===Ea)a.f("missing breakpoint address");else{var G=X();if("*"!=Ea&&(G=Z(a,Ea,!0),!G))break a;"c"==ma?null==G.w?(Od(a),a.f("all breakpoints cleared")):Pe(a,a.b,G)||Pe(a,a.L,G)||Pe(a,a.F,G)||a.f("breakpoint missing: "+N(a,G.w)):null!=G.w&&(Ud(a,G,Cf),"p"==ma?a.Ba(a.b,G):"r"==ma?a.Ba(a.L,G):
|
||||
"w"==ma?a.Ba(a.F,G):a.f("unknown breakpoint command: "+ma))}}}break;case "c":a.la&&(a.la.value="");break;case "d":a:{var Fa,Ga=f[0],T=f[1],ea=f[2],Df=f[3];if("?"==T){var Ha="";for(Fa in I)a.pa[Fa]&&(Ha&&(Ha+=","),Ha+=Fa);Ha+=",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");Ha.length&&a.f("dump extension commands:\n\t"+Ha)}else if("state"==
|
||||
T){var sc=$e(a.C,!0);"console"==ea?console.log(sc):(a.la&&(a.la.value=""),sc&&a.f(sc))}else if("symbols"==T)for(var tc=0;tc<a.I.length;tc++){var uc=a.I[tc],Ia;for(Ia in uc.V)if("."!=Ia.charAt(0)){var ce=uc.V[Ia].o;if(void 0!==ce){var de=uc.V[Ia].l;de&&(Ia=de);a.f(N(a,ce)+" "+Ia)}}}else{if("d"==Ga){for(Fa in I)if(f[1]==Fa){var ee=a.pa[Fa];ee?(f.shift(),f.shift(),ee(f)):a.f("no dump registered for "+T);break a}T||(Ga=a.Da||"dw")}else a.Da=Ga;if("dh"==Ga){var fe=T,ge=ea,he="",ie=0,P=a.R,U=a.i;if(U.length){var L=
|
||||
+fe||a.ra,$a=+ge||10;isNaN(L)?L=$a:he="more ";L>U.length&&(a.f("note: only "+U.length+" available"),L=U.length);P-=L;0>P&&(null==U[U.length-1].w?(L=P+L,P=0):P+=U.length);var vc=[];"call"==ge&&($a=1E5,vc=["CALL"]);for(void 0!==fe&&a.f(L+" instructions earlier:");0<$a&&P!=a.R;){var je=U[P++];if(null==je.w)break;var ab=X(je.w),Ef=L--,ke=Ie(a,ab,"history",Ef);(!vc.length||0<=ke.indexOf(vc[0]))&&a.f(ke);ab.Wa&&(P+=ab.Wa,$a-=ab.Wa,L-=ab.Wa);P>=U.length&&(P=0);a.ra=L;ie++;$a--}}ie||(a.f("no "+he+"history available"),
|
||||
a.ra=void 0)}else{var na=Z(a,T);if(na){var oa=0,le="ds"==Ga;if(ea){if("l"==ea.charAt(0))ea=ea.substr(1)||Df,oa=Jd(a,ea);else{var me=Z(a,ea);me&&(oa=me.w-na.w)}0>oa&&(oa=0);65536<oa&&(oa=65536)}var Ff=a.da;na.da&&(a.da=na.da);for(var ne="db"==Ga?1:2,wc=oa||32,xc=1==ne?2:4,Gf=(wc+xc-1)/xc|0||1,pa="";Gf--&&0<wc;){for(var qa="",oe="",T=N(a,na.w),pe=xc;0<pe--&&0<wc--;){var Db=a.Ca(na,1);le?(qa&&(qa+=","),qa+=Db):(qa+=Vd(Db),qa+=" ");for(var qe=0;1==ne&&6>qe;qe++)oe+=String.fromCharCode((Db%64|0)+32),
|
||||
Db/=64}pa&&(pa+="\n");pa=le?pa+(qa+","):pa+(T+": "+qa+(0>pe?" "+oe:""))}pa&&a.f(pa);a.ua=na;a.da=Ff}}}}break;case "e":if("else"==f[0])break;var re,se,te=f[0],yc=f[1];"e"==te||"ew"==te?(re=a.Ca,se=a.$a):yc=null;if(null==yc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Eb=Z(a,yc);if(Eb)for(var Fb=2;Fb<f.length;Fb++){var zc=Hd(a,f[Fb]);if(void 0===zc){a.f("unrecognized value: "+f[Fb]);break}a.f("changing "+N(a,Eb.w)+" from "+Vd(re.call(a,Eb))+" to "+Vd(zc));se.call(a,
|
||||
Eb,zc,1)}}break;case "g":a:{var ue=f[1],Hf=b;if(void 0!==ue){var Ac=Z(a,ue,!0);if(!Ac)break a;Ud(a,Ac,Hf);a.Ba(a.b,Ac,!0)}ae(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.S()):La(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Bc;var bb=b.substr(2),bb=Ya(bb);Hd(a,bb)?(c||a.f("true: "+bb),Bc=!0):(c||a.f("false: "+bb),Bc=!1);Bc||(d=!1);break}g=!0;break;case "k":var If=f[0];if("?"==f[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
||||
else{var Cc=0,Dc=X(),cb=X();for(a.f("stack trace for "+N(a,cb.w));10>Cc;){for(var ra=null,Jf=256;65536>cb.w>>>0;){Dc.w=a.Ca(cb,2);if(null==cb.w||!Jf--)break;if(!(Dc.w&1)){for(var Kf=a,Gb=Dc,ve=null,db=Gb.w,we=db,Ec=1;6>=Ec&&db;Ec++){if(2<Ec){Gb.w=db;var Hb=Ie(Kf,Gb);if(0<=Hb.indexOf("JSR")){var xe=Hb.indexOf(" ");if(db+(Hb.indexOf(" ",xe+1)-xe-1)/2==we){ve=Hb;break}}}db-=2}Gb.w=we;if(ra=ve)break}}if(!ra||null==ra)break;var ye=null;if("ks"==If){var ze=ra.match(/[0-9A-F]+$/);ze&&(ye=Xe(a,ze[0]))}ra=
|
||||
Xa(ra,50)+" ;"+(ye||"stack="+N(a,cb.w));a.f(ra);Cc++}Cc||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Xe(a,f[1],!0);break}g=!0;break;case "m":a:{var V,W=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var fa=0;if("all"==z)fa=1879046143,z=null;else if("on"==z)W=!0,z=null;else if("off"==z)W=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(V in I)if(z==V){fa=I[V];W=!!(a.X&fa);break}if(!fa){a.f("unknown message category: "+z);break a}}if(fa)if("on"==f[2])a.X|=fa,W=!0;
|
||||
else if("off"==f[2]&&(a.X&=~fa,W=!1,1073741824==fa)){for(var Ae=1E3<=a.N.length?a.N.length-1E3:0;Ae<a.N.length;)a.f(a.N[Ae++]);a.N=[]}}var Lf=0,eb="";for(V in I)if(!z||z==V){var Mf=!!(a.X&I[V]);if(null===W||W==Mf)eb&&(eb+=","),++Lf%10||(eb+="\n\t"),"key"==V&&(V="keys"),eb+=V}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==W?W?"messages on: ":"messages off: ":"message categories:\n\t")+(eb||"none"));Pd(a)}break;case "p":if("print"==f[0]){Ye(a,b.substr(5));
|
||||
break}var Nf=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var Of="pr"==Nf?1:0;if(a.M)a.f("step in progress");else{var Be=X(a.g.u);a.Ca(Be);a.M?(a.Ba(a.b,Be,!0),ae(a)||(a.C&&gd(a.C),a.M=0)):Ze(a,Of?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Fe(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var fb=+f[2];if(8==fb||10==fb||16==fb)a.da=fb;else{a.f("invalid base: "+fb);break}}a.f("default base: "+
|
||||
a.da);break;case "cs":var gb;void 0!==f[3]&&(gb=+f[3]);switch(f[2]){case "int":a.g.ca=gb;break;case "start":a.g.ta=gb;break;case "stop":a.g.ha=gb;break;default:a.f("unknown cs option");break a}void 0!==gb&&Zc(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(dd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.R.toFixed(2)+"Mhz")+" ("+a.g.U+"x)");break;default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),
|
||||
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Ze(a,f[0],f[1]);break;case "u":Ge(a,f[1],f[2],8);break;case "v":if("var"==f[0]){We(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Cb||"PDP10")+" version 1.34.0 ("+a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;
|
||||
break;case "?":if(f[1]){Ye(a,b.substr(1));break}var Fc="commands:",Gc;for(Gc in af)Fc+="\n"+Xa(Gc,9)+af[Gc];pd(a)||(Fc+="\nnote: history disabled if no exec breakpoints");a.f(Fc);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(De){a.f("debugger error: "+(De.stack||De.message)),d=!1}return d}function bd(a,b,c){b=Fd(a,b,c);for(var d in b)if(!Se(a,b[+d]))return!1;return!0}
|
||||
var af={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ne=20,Oe=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
||||
Xd=0,Yd=1,Zd=2,Wd=["PC","RA","EA"],bf={},Je=(bf[28672]={0:101},bf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},bf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ne,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
|
||||
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},bf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},bf[29248]={24576:79,24640:80,25088:81,25152:82},bf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},bf),Ke=["","I",
|
||||
"M","S"],Le=" L E LE A GE N G".split(" "),Me="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),$d=1E3,Ee=">> ";ub(function(){for(var a=D(document,C,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nd(d);B(d,c)}});
|
||||
function cf(a,b,c){t.call(this,"Computer",a,33554432);this.j.W=!1;this.P=null;df(this,b);this.N=Xc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.U=!1;this.I=this.B=null;this.R=this.O=!1;this.ca=Xc(this,"url")||"";(Math.random()+.1).toString(36);this.i=ef(this);if(this.g=y("CPU",this.id)){this.A=y("Debugger",this.id);this.D=new lc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=w(this.id);if((this.u=y("Panel",this.id))&&this.u.la)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ba=this.u.ba,d.f=this.u.f,d.la=this.u.la;this.f(Cb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=Xc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=Xc(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=ff),this.b&&(this.I=new J(this,"1.34.0"),gf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=hf(this))&&(this.J=!0);if(b){var f=this;ib(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ba("Unable to load machine state from server (error "+c+(b?": "+Ya(b):"")+")")):(f.L=b,f.U=!0);E(f)})}else E(this);this.G.power||(this.N=!0);!c&&this.N&&jf(this,this.Ga)}else v("Unable to find CPU component")}p(cf,t);function df(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.P=b}
|
||||
function Xc(a,b,c,d){var e=b.toLowerCase(),e=pb(b)||pb(e);void 0===e&&a.P&&(e=a.P[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function jf(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Ka(g)){Ka(g,function(){jf(a,b,c)});return}}b.call(a,c)}
|
||||
function kf(a,b){var c=new J(a,"1.34.0",lf);if(gf(c)&&mf(c)){var d=c.get(nf),e=b?b.get(nf):"unknown";d!=e&&(a.ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=cf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?of:ff));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new J(this,"1.34.0");if(a==pf)b=!0;else if(a>ff){if(gf(d,this.L)){this.B=new J(this,"1.34.0",qf);gf(this.B)&&(rf(this,d),a=sf,tf(this.B));this.B.set(nf,hb());uf(this.B);var e=this.b&&!this.J;if(a==of||wa("Click OK to restore the previous "+Cb+" machine state, or CANCEL to reset the machine.")){if(c=mf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?gf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ba("Error: "+f),"unable to verify user"==f&&(nb(vf,""),this.i=null)):this.f(g+": "+f),tf(d),gf(d)?(c=mf(d),e=!0):c=!1))}e&&kf(this,c?d:null)}else a==sf&&d.clear()}else kf(this);delete this.L;delete this.I}e=w(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=wf(this,f,d,b,c));b=[d,a,c];a!=pf?jf(this,this.kb,b):this.kb(b)}};
|
||||
function wf(a,b,c,d,e){if(!b.j.W){b.j.W=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.U?(c.clear(),a.b=ff,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.j.W=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(wf(this,this.g,b,c,a),K(this,-2),this.g.Z());this.O&&(rf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function rf(a,b){if(wa("There may be a problem with your "+Cb+" machine.\n\nTo help us diagnose it, click OK to send this "+Cb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Cb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;ib("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function $e(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new J(a,"1.34.0"),f=new J(a,"1.34.0",lf),h=hb();f.set(nf,h);g.set(nf,h);g.set(xf,"1.34.0");g.set(yf,window?window.location.href:null);g.set(zf,window?window.navigator.userAgent:"");a.g&&a.g.ea&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.S()),d=a.g.ea(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.W=!1,!1===d&&(e=null)));for(var h=w(a.id),k=0;k<h.length;k++){var m=h[k];m.j.W&&(m.ea&&(d=m.ea(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.W=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Af(a,a.i,g.toString()),uf(f)&&uf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Pf),d&&g.clear(h)):e=g.toString());c&&(a.j.W=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Oa(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Oa(this,"Resetting "+this.g.type),this.g.reset());for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Oa(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;K(this,-1)};l.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
|
||||
l.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
|
||||
function K(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Da+=d))&&(e.textContent=c.j.K?c.P.toFixed(2)+"Mhz":"Stopped",c.Da=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.da||8,e=e||0,e=8==g?Qa(e,void 0):F(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);Wb(a,a.i);Qb(a,a.v)}}
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.W?$e(d,!1,!0):jf(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.W&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Cb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$e(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(ff)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Ta())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
c,c.onclick=function(){var a=ef(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=$e(d,b);b?Af(d,a,c):d.ba("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function ef(a,b){var c=a.i;c||((c=mb(vf),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Qf(a,c))||a.ba("The user ID is invalid.")):b&&a.ba("Browser local storage is not available"));return c}
|
||||
function Qf(a,b){a.i=null;b=ib(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&&(nb(vf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function hf(a){var b=null;a.i&&(b=Ua()+"/api/v1/user?req=load&user="+a.i+"&state="+Rf(a,"1.34.0"));return b}
|
||||
function Af(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Rf(a,"1.34.0");d.data=c;b=ib(Ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ba("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ba(c),nb(vf,""),a.i=null)}}
|
||||
function gd(a,b){if(a.la){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.la.focus();!b&&window&&window.scrollTo(c,d)}}var qf="failsafe",lf="validate",nf="timestamp",xf="version",yf="url",zf="browser",vf="user",pf=-1,ff=0,of=1,sf=2,Pf=3;ub(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var g=c[e],f=A(g),f=new cf(f,d,!0);B(f,g);f.N&&jf(f,f.Ga)}});
|
||||
vb.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.R&&!c.j.W&&c.Ga(pf)}});vb.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.j.W&&$e(c,!(!c.b||c.F),!0)}});function J(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Rf(a,b,c);tf(this,a.tb)}l=J.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function gf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:kb()&&(b=mb(a.key))?(a.g=b,a.A=!0):!1}function mf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function uf(a){var b=!0;if(kb()){var c=JSON.stringify(a.b);nb(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
|
||||
function tf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){tf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Rf(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 Sf=0;
|
||||
function Tf(a,b,c,d,e,g,f){g("Loading "+a+"...");ib(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Uf(k,a,b,c,d,e,g,f)})}
|
||||
function Uf(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(ta(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Vf(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Vf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ib(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],f);Vf(a,b,c)}})}else c(a,null)}
|
||||
function Wf(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&D(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Va(a))}function f(a){g("Error: "+a);m&&(--Sf||yb(!0));m=!1}var h,k,m=!0;Sf++;ua[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=n:x.appendChild(document.createTextNode(n));r.appendChild(x)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?Tf(d,null,a,null,!1,g,function(a,e){e?(ta(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Sf||yb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Sf||
|
||||
yb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Tf(c,b,a,e,!0,g,n):Uf(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(S){f(S.message)}return m}window.embedPDP10=function(a,b,c,d){yb(!1);return Wf("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){yb(!1);return Wf("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return y(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!za[a]){for(var c=!0,d=za,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;ya(a)||(c=!1)}return c};window.enableEvents=yb;window.sendEvent=Ab;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
function Md(a,b,c){var d;if(b){b=Nd(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ya(n);if(!n){g=!0;break}n=Od(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],x=n.length;k.length&&Pd[n]<Pd[k[k.length-1]]&&Ld(h,k,1);k.push(n);b=b.substr(r+x)}Ld(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Qd(a,null,
|
||||
d))}return d}function Nd(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=Md(a,c[1]);b=b.replace(d+c[1]+e,null!=f?N(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function Od(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Pa(b,a.da))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function Qd(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var x=null==k||isNaN(k),R=m=m||n;0<n--;)R||(r=","+r,R=m),r=(x?"?":k&1?"1":"0")+r,k>>=1,R--;f=r+f;d>>=8}d=F(c,0,!0)+" "+c+". "+Qa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function Rd(a,b){if(b)return Qd(a,b,a.aa[b]);var c=0;for(b in a.aa)Qd(a,b,a.aa[b]),c++;return 0<c}function N(a,b,c){c=void 0===c?0:c;switch(a.da){case 8:a=Qa(b,0<c?(c+2)/3|0:0);break;case 10:a=b;b=0<c?Math.ceil(.3*c):0;var d="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode(a%10+48)+d,a/=10;a=d;break;default:a=F(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var Pd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Sd(a){Jd.call(this,a);this.wa=!1;this.oa=!0;this.J=X();this.ua=X();this.O=X();this.F=[];this.b=this.L=this.I=[];Td(this);this.S=this.ia=0;this.i=[];this.ra=void 0;Ud(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];Vd(this,a.messages);this.ta=a.commands;this.M=0;this.Ca=this.sa=null;this.B=this.ya=this.xa=this.ha=this.qa=0;this.ga=this.ca=null;var b=this;window?void 0===window[C]&&(window[C]=function(a){return cd(b,a)}):void 0===global[C]&&(global[C]=function(a){return cd(b,
|
||||
a)})}p(Sd,Jd);function Y(a){a=a&&a.w;null==a&&(a=-1);return a}function X(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ma:!1,da:c}}function Wd(a){return[a.w,a.wb,a.da,a.ma,a.Na]}function Xd(a,b){var c=X(b[0],b[1],b[2]);c.ma=b[3];b[4]&&(c.gb=Kd(a,c.Na=b[4]));return c}l=Sd.prototype;
|
||||
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ga=a.u;(a=Yc(a,"messages"))&&Vd(this,a);Yd(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=sc[c],n&&d.f(F(n.id,8)+" %"+F(e<<d.D.i,8)+" %"+F(n.w,8)+" "+F(n.Ga,4,!0)+
|
||||
" "+F(n.size,4,!0)+" "+m),c!=Mc&&(c=-1),m=0);a+=16384;e++}}});E(this)};
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ca=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",cd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,rb(c,function(){if(d.ca){var a=d.ca.value;
|
||||
d.ca.value="";cd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,rb(c,function(a){var b=!1;La(d,!0)||(Ma(d,!0),b=ec(d,a?1:0,null),Ma(d,!1));return b}),!0}return!1};function bd(a){if(a.ca){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ca.focus();window&&window.scrollTo(b,c)}}l.Ba=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=kc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=Y(a);-1!==d&&(jc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),M(this.C,-1))};
|
||||
function Z(a,b,c){var d;c=(c?a.J:a.ua).w;var e,g;if(void 0!==b){b=Nd(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=X(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=Md(a,b,void 0)}null!=c&&(d=X(c,e,g));return d}function Zd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=Kd(a,b.Na=c[2]))}
|
||||
function $d(a){return Qa(a/Cb,6)+" "+Qa(a%Cb,6)}function Vd(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=Kd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in J){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=J[c],a.f(c+" messages enabled"))}}function Yd(a,b){for(var c in J)if(16==J[c]){a.pa[c]=b;break}}l.mb=function(a){return ae.indexOf(a.toUpperCase())};
|
||||
l.Wa=function(a){var b;switch(a){case be:b=this.g.u;break;case ce:b=this.g.O;break;case de:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+N(this,X(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||La(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,kd(a),a.aa=0,a.C&&M(a.C,void 0))}};
|
||||
function Ud(a){var b;if(!qd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(ee);for(b=0;b<a.i.length;b++)a.i[b]=X();a.S=0;a.f("instruction history buffer allocated")}}function Ge(a,b,c){if(!Ie(a,c))return!1;dc(a.g,b);return!0}
|
||||
function ec(a,b,c,d){if(!Ie(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||qd(a)&&rd(a,a.g.u,0);try{b=id(a.g,b);var g=a.g.Ia(b);0<g&&(fc(a.g,g),a.B+=g,gc(a.g,g,!0),hc(a.g,g),a.ha++)}catch(f){"number"!=typeof f&&(a.B=0,Ia(a.g,f.stack||f.message))}!1!==d&&(a.ga&&a.ga.stop(),M(a.C,-1));ad(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function ad(a,b,c){a.wa&&(void 0===b&&(b=!0),c&&a.f(Je+c),a.J=X(a.g.u),b&&1!=a.M?Ke(a):Le(a))}
|
||||
function Ie(a,b){var c;(c=!a.g||!Ka(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ja(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ea=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ud(this);this.ha=0;this.T=null;this.B=0;this.J=X(this.g.u);this.j.K=!1;Me(this);a||ad(this)};
|
||||
l.save=function(){var a=new L(this);a.set(0,Wd(this.J));a.set(1,Wd(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=Xd(this,a[b++]),this.O=Xd(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.xa=a;this.ya=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.ya;if(!this.M){b="stopped";if(this.B){a-=this.xa;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";qd(this)&&(b+=this.ha+" instructions, ",this.ha=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Na(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}ad(this,!0);bd(this);Me(this,this.g.u);this.T=null}};function qd(a){return 1<a.b.length||!!a.ia}
|
||||
function rd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=pd(a.g,1)));if(0<c&&(a.ia&&!--a.ia||Vc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ha++,0>d&&(d=a.g.H(b)),0<=d&&(c=a.i[a.S],c.w=b,c.ma=!1,c.da=void 0,++a.S==a.i.length&&(a.S=0)));return!1}
|
||||
function Ne(a,b,c,d){var e=X(b.w),g=a.Ba(b,1),f,h,k,m=0,n=g/Gb|0,r;for(r in Oe)if(f=Oe[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Pe;m=n&3;break;case 32256:k=Qe;m=n&7;break;case 29248:k=Re,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Se&&(k="B");k=Te[f||0]+k;k=Xa(k,8);f?(k=28700==h?k+N(a,g/Hb&127,-1):k+N(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=N(a,g&262143,-1),(g=g>>18&15)&&(k+="("+N(a,g,-1)+")")):k+=$d(g);g=k;f="";h=N(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.Ba(e,1),f+=" "+$d(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=Xa(f,16)+g;c&&(h=Xa(h,60)+";"+(c||""),h=a.g.j.Da?h+("cycles="+dd(a.g).toString()+" cs="+F(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function Td(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=Y(c);var d=a.D;Uc(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=Y(c),d=a.D,Uc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ia=0}
|
||||
l.Aa=function(a,b,c){var d=!0;c||Ue(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.f("invalid address: "+N(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Aa(e&16383,a==this.I)}}d&&(a.push(b),c?b.ma=!0:(Ve(this,a,a.length-1,"set"),Ud(this)));return d};function Ue(a,b,c,d,e){var g=!1;c=Y(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==Y(h)&&(!d||h.ma)){g=!0;h.ma||e||Ve(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Uc(d.b[c>>>d.i],b==a.I));h.ma||Ud(a);break}}return g}
|
||||
function We(a,b){for(var c=1;c<b.length;c++)Ve(a,b,c);return b.length-1}function Ve(a,b,c,d){c=b[c];a.f(b[0]+" "+N(a,c.w)+(d?" "+d:c.Na?' "'+c.Na+'"':""))}function Me(a,b){if(void 0!==b)Vc(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ma){if(!Ue(a,a.b,c,!0))break;b=0}}}
|
||||
function Vc(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ma)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ma&&(Ue(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!Xe(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var x=r+1;x<n.length&&n[x].indexOf("else");x++)r++;if(x==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||Ve(a,d,f,"hit");break}}}a.qa--;return g}
|
||||
function Ye(a,b){var c=ae[b]||"";c&&(c+="="+N(a,a.Wa(b))+" ");return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function Dd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Za(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}
|
||||
function Ze(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=Za(g.hb,[e-f],a.jb);0<=e?$e(a,b,e,d):c&&(e=~e,$e(a,b,e-1,d),$e(a,b,e,d));break}}return d}function $e(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}
|
||||
function af(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Rd(a)||a.f("no variables"),!0;if(!c[2])return Rd(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=Md(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function bf(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=Ze(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+F(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+F(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function Ke(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=Md(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Cb;a.J=X(e.u);break;default:a.f("unknown register: "+
|
||||
g);return}M(a.C);a.f("updated registers:")}}g=""+(Ye(a,ce)+Ye(a,de));d&&(g+="\n");a.f(g);c&&(a.J=X(e.u),Le(a,N(a,a.J.w)))}}function cf(a,b){b=Ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):Qd(a,null,c[2].charCodeAt(0)):Md(a,b,!0)}
|
||||
function df(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Od(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;qb(c,function(){return Ma(a,!0)&&ec(a,e,d,!1)},function(){a.ga&&a.ga.stop();M(a.C,-1);Ma(a,!1)})}}
|
||||
function Le(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Od(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=La(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=Ze(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Ne(a,b,f,g);a.f(g);a.J=b;e-=b.w-k;c++}}}
|
||||
function Xe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Je+b):(a.R&&(a.f("ended assemble at "+N(a,a.O.w)),a.J=a.O,a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Ka(a)&&0<b.length){a.R&&(b="a "+N(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
|
||||
Z(a,f[1],!0);if(r)if(a.O=r,void 0===f[2])a.f("begin assemble at "+N(a,r.w)),a.R=!0,M(a.C);else{var x;a.f("not supported yet");x=[];if(x.length){for(var R=0;R<x.length;R++)a.$a(r,x[R],1);a.f(Ne(a,a.O))}}break;case "b":a:{var Gf=f[0],Da=f[1],Hf=b;if("?"==Da)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var ma=Gf.charAt(1);if("l"==ma){var wc;wc=0+We(a,a.b);wc+=We(a,a.L);(wc+=We(a,a.I))||a.f("no breakpoints")}else if("n"==ma){var fe=+Da||0;Da&&(a.ia=fe);a.f("break after "+fe+" instruction(s)")}else if(void 0===Da)a.f("missing breakpoint address");else{var G=X();if("*"!=Da&&(G=Z(a,Da,!0),!G))break a;"c"==ma?null==G.w?(Td(a),a.f("all breakpoints cleared")):Ue(a,a.b,G)||Ue(a,a.L,G)||Ue(a,a.I,G)||a.f("breakpoint missing: "+N(a,G.w)):null!=G.w&&(Zd(a,G,Hf),"p"==ma?a.Aa(a.b,G):"r"==ma?a.Aa(a.L,G):
|
||||
"w"==ma?a.Aa(a.I,G):a.f("unknown breakpoint command: "+ma))}}}break;case "c":a.la&&(a.la.value="");break;case "d":a:{var Ea,Fa=f[0],S=f[1],da=f[2],If=f[3];if("?"==S){var Ga="";for(Ea in J)a.pa[Ea]&&(Ga&&(Ga+=","),Ga+=Ea);Ga+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");Ga.length&&a.f("dump extension commands:\n\t"+Ga)}else if("state"==
|
||||
S){var xc=ef(a.C,!0);"console"==da?console.log(xc):(a.la&&(a.la.value=""),xc&&a.f(xc))}else if("symbols"==S)for(var yc=0;yc<a.F.length;yc++){var zc=a.F[yc],Ha;for(Ha in zc.U)if("."!=Ha.charAt(0)){var ge=zc.U[Ha].o;if(void 0!==ge){var he=zc.U[Ha].l;he&&(Ha=he);a.f(N(a,ge)+" "+Ha)}}}else{if("d"==Fa){for(Ea in J)if(f[1]==Ea){var ie=a.pa[Ea];ie?(f.shift(),f.shift(),ie(f)):a.f("no dump registered for "+S);break a}S||(Fa=a.Ca||"dw")}else a.Ca=Fa;if("dh"==Fa){var je=S,ke=da,le="",me=0,O=a.S,T=a.i;if(T.length){var K=
|
||||
+je||a.ra,$a=+ke||10;isNaN(K)?K=$a:le="more ";K>T.length&&(a.f("note: only "+T.length+" available"),K=T.length);O-=K;0>O&&(null==T[T.length-1].w?(K=O+K,O=0):O+=T.length);var Ac=[];"call"==ke&&($a=1E5,Ac=["CALL"]);for(void 0!==je&&a.f(K+" instructions earlier:");0<$a&&O!=a.S;){var ne=T[O++];if(null==ne.w)break;var ab=X(ne.w),Jf=K--,oe=Ne(a,ab,"history",Jf);(!Ac.length||0<=oe.indexOf(Ac[0]))&&a.f(oe);ab.Ua&&(O+=ab.Ua,$a-=ab.Ua,K-=ab.Ua);O>=T.length&&(O=0);a.ra=K;me++;$a--}}me||(a.f("no "+le+"history available"),
|
||||
a.ra=void 0)}else{var na=Z(a,S);if(na){var oa=0,pe="ds"==Fa;if(da){if("l"==da.charAt(0))da=da.substr(1)||If,oa=Od(a,da);else{var qe=Z(a,da);qe&&(oa=qe.w-na.w)}0>oa&&(oa=0);65536<oa&&(oa=65536)}var Kf=a.da;na.da&&(a.da=na.da);for(var re="db"==Fa?1:2,Bc=oa||32,Cc=1==re?2:4,Lf=(Bc+Cc-1)/Cc|0||1,pa="";Lf--&&0<Bc;){for(var qa="",se="",S=N(a,na.w),te=Cc;0<te--&&0<Bc--;){var Ib=a.Ba(na,1);pe?(qa&&(qa+=","),qa+=Ib):(qa+=$d(Ib),qa+=" ");for(var ue=0;1==re&&6>ue;ue++)se+=String.fromCharCode((Ib%64|0)+32),
|
||||
Ib/=64}pa&&(pa+="\n");pa=pe?pa+(qa+","):pa+(S+": "+qa+(0>te?" "+se:""))}pa&&a.f(pa);a.ua=na;a.da=Kf}}}}break;case "e":if("else"==f[0])break;var ve,we,xe=f[0],Dc=f[1];"e"==xe||"ew"==xe?(ve=a.Ba,we=a.$a):Dc=null;if(null==Dc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Jb=Z(a,Dc);if(Jb)for(var Kb=2;Kb<f.length;Kb++){var Ec=Md(a,f[Kb]);if(void 0===Ec){a.f("unrecognized value: "+f[Kb]);break}a.f("changing "+N(a,Jb.w)+" from "+$d(ve.call(a,Jb))+" to "+$d(Ec));we.call(a,
|
||||
Jb,Ec,1)}}break;case "g":a:{var ye=f[1],Mf=b;if(void 0!==ye){var Fc=Z(a,ye,!0);if(!Fc)break a;Zd(a,Fc,Mf);a.Aa(a.b,Fc,!0)}Ge(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):La(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var Gc;var bb=b.substr(2),bb=Ya(bb);Md(a,bb)?(c||a.f("true: "+bb),Gc=!0):(c||a.f("false: "+bb),Gc=!1);Gc||(d=!1);break}g=!0;break;case "k":var Nf=f[0];if("?"==f[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
||||
else{var Hc=0,Ic=X(),cb=X();for(a.f("stack trace for "+N(a,cb.w));10>Hc;){for(var ra=null,Of=256;65536>cb.w>>>0;){Ic.w=a.Ba(cb,2);if(null==cb.w||!Of--)break;if(!(Ic.w&1)){for(var Pf=a,Lb=Ic,ze=null,db=Lb.w,Ae=db,Jc=1;6>=Jc&&db;Jc++){if(2<Jc){Lb.w=db;var Mb=Ne(Pf,Lb);if(0<=Mb.indexOf("JSR")){var Be=Mb.indexOf(" ");if(db+(Mb.indexOf(" ",Be+1)-Be-1)/2==Ae){ze=Mb;break}}}db-=2}Lb.w=Ae;if(ra=ze)break}}if(!ra||null==ra)break;var Ce=null;if("ks"==Nf){var De=ra.match(/[0-9A-F]+$/);De&&(Ce=bf(a,De[0]))}ra=
|
||||
Xa(ra,50)+" ;"+(Ce||"stack="+N(a,cb.w));a.f(ra);Hc++}Hc||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){bf(a,f[1],!0);break}g=!0;break;case "m":a:{var U,V=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ea=0;if("all"==z)ea=1879046143,z=null;else if("on"==z)V=!0,z=null;else if("off"==z)V=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(U in J)if(z==U){ea=J[U];V=!!(a.X&ea);break}if(!ea){a.f("unknown message category: "+z);break a}}if(ea)if("on"==f[2])a.X|=ea,V=!0;
|
||||
else if("off"==f[2]&&(a.X&=~ea,V=!1,1073741824==ea)){for(var Ee=1E3<=a.N.length?a.N.length-1E3:0;Ee<a.N.length;)a.f(a.N[Ee++]);a.N=[]}}var Qf=0,eb="";for(U in J)if(!z||z==U){var Rf=!!(a.X&J[U]);if(null===V||V==Rf)eb&&(eb+=","),++Qf%10||(eb+="\n\t"),"key"==U&&(U="keys"),eb+=U}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==V?V?"messages on: ":"messages off: ":"message categories:\n\t")+(eb||"none"));Ud(a)}break;case "p":if("print"==f[0]){cf(a,b.substr(5));
|
||||
break}var Sf=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var Tf="pr"==Sf?1:0;if(a.M)a.f("step in progress");else{var Fe=X(a.g.u);a.Ba(Fe);a.M?(a.Aa(a.b,Fe,!0),Ge(a)||(a.C&&hd(a.C),a.M=0)):df(a,Tf?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Ke(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var fb=+f[2];if(8==fb||10==fb||16==fb)a.da=fb;else{a.f("invalid base: "+fb);break}}a.f("default base: "+
|
||||
a.da);break;case "cs":var gb;void 0!==f[3]&&(gb=+f[3]);switch(f[2]){case "int":a.g.ca=gb;break;case "start":a.g.ta=gb;break;case "stop":a.g.ha=gb;break;default:a.f("unknown cs option");break a}void 0!==gb&&$c(a.g);a.f("checksums "+(a.g.j.Da?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(ed(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),
|
||||
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":df(a,f[0],f[1]);break;case "u":Le(a,f[1],f[2],8);break;case "v":if("var"==f[0]){af(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Bb||"PDP10")+" version 1.34.0 ("+a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;
|
||||
break;case "?":if(f[1]){cf(a,b.substr(1));break}var Kc="commands:",Lc;for(Lc in ff)Kc+="\n"+Xa(Lc,9)+ff[Lc];qd(a)||(Kc+="\nnote: history disabled if no exec breakpoints");a.f(Kc);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(He){a.f("debugger error: "+(He.stack||He.message)),d=!1}return d}function cd(a,b,c){b=Kd(a,b,c);for(var d in b)if(!Xe(a,b[+d]))return!1;return!0}
|
||||
var ff={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Se=20,Te=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
||||
be=0,ce=1,de=2,ae=["PC","RA","EA"],gf={},Oe=(gf[28672]={0:101},gf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},gf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Se,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
|
||||
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},gf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},gf[29248]={24576:79,24640:80,25088:81,25152:82},gf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},gf),Pe=["","I",
|
||||
"M","S"],Qe=" L E LE A GE N G".split(" "),Re="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),ee=1E3,Je=">> ";tb(function(){for(var a=D(document,C,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Sd(d);B(d,c)}});
|
||||
function hf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;jf(this,b);this.N=Yc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.ca=Yc(this,"url")||"";(Math.random()+.1).toString(36);this.i=kf(this);if(this.g=y("CPU",this.id)){this.A=y("Debugger",this.id);this.D=new lc({id:this.Ka+".bus",busWidth:this.aa},this.g,this.A);var d,e=w(this.id);if((this.u=y("Panel",this.id))&&this.u.la)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ba=this.u.ba,d.f=this.u.f,d.la=this.u.la;this.f(Bb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=Yc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=Yc(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=lf),this.b&&(this.I=new L(this,"1.34.0"),mf(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=nf(this))&&(this.J=!0);if(b){var f=this;H(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ba("Unable to load machine state from server (error "+c+(b?": "+Ya(b):"")+")")):(f.L=b,f.T=!0);E(f)})}else E(this);this.G.power||(this.N=!0);!c&&this.N&&of(this,this.Fa)}else v("Unable to find CPU component")}p(hf,t);function jf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
|
||||
function Yc(a,b,c,d){var e=b.toLowerCase(),e=ob(b)||ob(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function of(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Ka(g)){Ka(g,function(){of(a,b,c)});return}}b.call(a,c)}
|
||||
function pf(a,b){var c=new L(a,"1.34.0",qf);if(mf(c)&&rf(c)){var d=c.get(sf),e=b?b.get(sf):"unknown";d!=e&&(a.ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=hf.prototype;
|
||||
l.Fa=function(a){void 0===a&&(a=this.b||(this.L?tf:lf));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new L(this,"1.34.0");if(a==uf)b=!0;else if(a>lf){if(mf(d,this.L)){this.B=new L(this,"1.34.0",vf);mf(this.B)&&(wf(this,d),a=xf,yf(this.B));this.B.set(sf,hb());zf(this.B);var e=this.b&&!this.J;if(a==tf||wa("Click OK to restore the previous "+Bb+" machine state, or CANCEL to reset the machine.")){if(c=rf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?mf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ba("Error: "+f),"unable to verify user"==f&&(mb(Af,""),this.i=null)):this.f(g+": "+f),yf(d),mf(d)?(c=rf(d),e=!0):c=!1))}e&&pf(this,c?d:null)}else a==xf&&d.clear()}else pf(this);delete this.L;delete this.I}e=w(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=Bf(this,f,d,b,c));b=[d,a,c];a!=uf?of(this,this.kb,b):this.kb(b)}};
|
||||
function Bf(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=lf,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(Bf(this,this.g,b,c,a),M(this,-2),this.g.Z());this.O&&(wf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function wf(a,b){if(wa("There may be a problem with your "+Bb+" machine.\n\nTo help us diagnose it, click OK to send this "+Bb+" machine state to http://www.pcjs.org.")){var c=a.ca;a=a.i||"";b=b.toString();var d={};d.app=Bb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function ef(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new L(a,"1.34.0"),f=new L(a,"1.34.0",qf),h=hb();f.set(sf,h);g.set(sf,h);g.set(Cf,"1.34.0");g.set(Df,window?window.location.href:null);g.set(Ef,window?window.navigator.userAgent:"");a.g&&a.g.ea&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.ea(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=w(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.ea&&(d=m.ea(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Ff(a,a.i,g.toString()),zf(f)&&zf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Uf),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Oa(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Oa(this,"Resetting "+this.g.type),this.g.reset());for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Oa(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;M(this,-1)};l.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}M(this,-1)};
|
||||
l.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}M(this,-1)};
|
||||
function M(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.da||8,e=e||0,e=8==g?Qa(e,void 0):F(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);Wb(a,a.i);Qb(a,a.v)}}
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?ef(d,!1,!0):of(d,d.Fa))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Bb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ef(d,a,!0);!a&&d.M?window&&window.location.reload():d.Fa(lf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Ta())c.parentNode.removeChild(c);else return this.G[b]=
|
||||
c,c.onclick=function(){var a=kf(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=ef(d,b);b?Ff(d,a,c):d.ba("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function kf(a,b){var c=a.i;c||((c=lb(Af),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Vf(a,c))||a.ba("The user ID is invalid.")):b&&a.ba("Browser local storage is not available"));return c}
|
||||
function Vf(a,b){a.i=null;b=H(Ua()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(mb(Af,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function nf(a){var b=null;a.i&&(b=Ua()+"/api/v1/user?req=load&user="+a.i+"&state="+Wf(a,"1.34.0"));return b}
|
||||
function Ff(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wf(a,"1.34.0");d.data=c;b=H(Ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ba("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ba(c),mb(Af,""),a.i=null)}}
|
||||
function hd(a,b){if(a.la){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.la.focus();!b&&window&&window.scrollTo(c,d)}}var vf="failsafe",qf="validate",sf="timestamp",Cf="version",Df="url",Ef="browser",Af="user",uf=-1,lf=0,tf=1,xf=2,Uf=3;tb(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var g=c[e],f=A(g),f=new hf(f,d,!0);B(f,g);f.N&&of(f,f.Fa)}});
|
||||
ub.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.S&&!c.j.V&&c.Fa(uf)}});ub.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=y("Computer",c.id))&&c.j.V&&ef(c,!(!c.b||c.F),!0)}});function L(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Wf(a,b,c);yf(this,a.tb)}l=L.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function mf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:jb()&&(b=lb(a.key))?(a.g=b,a.A=!0):!1}function rf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function zf(a){var b=!0;if(jb()){var c=JSON.stringify(a.b);mb(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
|
||||
function yf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){yf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Wf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Xf=0;
|
||||
function Yf(a,b,c,d,e,g,f){g("Loading "+a+"...");H(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Zf(k,a,b,c,d,e,g,f)})}
|
||||
function Zf(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(ta(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?$f(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function $f(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],f);$f(a,b,c)}})}else c(a,null)}
|
||||
function ag(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&D(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Va(a))}function f(a){g("Error: "+a);m&&(--Xf||xb(!0));m=!1}var h,k,m=!0;Xf++;ua[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],x=document.createElement("style");x.type="text/css";x.styleSheet?x.styleSheet.cssText=n:x.appendChild(document.createTextNode(n));r.appendChild(x)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?Yf(d,null,a,null,!1,g,function(a,e){e?(ta(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Xf||xb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Xf||
|
||||
xb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Yf(c,b,a,e,!0,g,n):Zf(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(R){f(R.message)}return m}window.embedPDP10=function(a,b,c,d){xb(!1);return ag("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){xb(!1);return ag("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return y(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!za[a]){for(var c=!0,d=za,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;ya(a)||(c=!1)}return c};window.enableEvents=xb;window.sendEvent=zb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -32,17 +32,17 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function ea(){ba();var a=m.Symbol.iterator;a||(a=m.Symbol.iterator=m.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[m.Symbol.iterator]=function(){return this};return a}
|
||||
function n(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 ha(a,b){if(b){var c=m;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})}}
|
||||
ha("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}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ja=Math.pow(2,36),ka=-Math.pow(2,35),q={Cb:0,Ra:1,Eb:2,Fb:3,Gb:4,Hb:5,Ib:6,Jb:7,Ja:8,Kb:9,Sa:10,Lb:11,Mb:12,Ta:13,Nb:14,Ob:15,Pb:16,Qb:17,Rb:18,Sb:19,Tb:20,Ub:21,Vb:22,Wb:23,Xb:24,Yb:25,Zb: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,Ia:65,Bb:66,Db:67,$b:68,E:69,ac:70,bc:71,cc:72,dc:73,ec:74,fc:75,gc:76,hc:77,ic:78,jc:79,kc:80,Q:81,
|
||||
lc:82,mc:83,nc:84,oc:85,pc:86,qc:87,rc:88,sc:89,Ya:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,tc:97,uc:98,vc:99,d:100,e:101,wc:102,xc:103,yc:104,zc:105,Ac:106,k:107,Bc:108,Cc:109,n:110,Dc:111,p:112,q:113,r:114,Ec:115,t:116,Fc:117,Gc:118,Hc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ua:127};
|
||||
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.na=this.id:(this.oa=this.id.substr(0,a),this.na=this.id.substr(a+1));this.b={ready:!1,ta:!1,Ga:!1,B:!1,error:!1};this.wa=null;this.b.error=!1;this.s=this.f=this.l=this.o=this.ba=null;u.push(this)}function la(a,b,c){ma[a]&&b&&(ma[a][b]=c)}function w(){return Date.now()||+new Date}
|
||||
var ia=Math.pow(2,36),ka=-Math.pow(2,35),q={yb:0,Ra:1,Ab:2,Bb:3,Cb:4,Db:5,Eb:6,Fb:7,Ja:8,Gb:9,Sa:10,Hb:11,Ib:12,Ta:13,Jb:14,Kb:15,Lb:16,Mb:17,Nb:18,Ob:19,Pb:20,Qb:21,Rb:22,Sb:23,Tb:24,Ub:25,Vb: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,Ia:65,xb:66,zb:67,Wb:68,E:69,Xb:70,Yb:71,Zb:72,$b: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,Ya: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,Ac:115,t:116,Bc:117,Cc:118,Dc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ua:127};
|
||||
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.b={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.b.error=!1;this.u=this.f=this.l=this.o=this.ba=null;u.push(this)}function la(a,b,c){ma[a]&&b&&(ma[a][b]=c)}function w(){return Date.now()||+new Date}
|
||||
function x(a){window&&window.alert(a)}function na(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<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function oa(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
|
||||
function 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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){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 l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=A(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.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 pa(a){for(var b=!0,c=qa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=ra.indexOf(e)&&(f=function(){return function(){pa(a)}}());var g=sa[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=ta[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[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 qa[a];return b}k=t.prototype;
|
||||
k.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.i[b]||(this.i[b]=c,c.onclick=function(a){return function(){a.i.print&&(a.i.print.value="")}}(this)),!0;case "print":return this.i[b]||(this.ba=this.i[b]=c,c.value="",this.K=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.F=function(a){this.K(a,this.na)}),!0;default:return!1}};k.log=function(){};k.K=function(){};
|
||||
k.status=function(a){this.K(this.na+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function ua(a,b){b&&(a.b.ready?b():a.wa=b);return a.b.ready}function E(a){if(!a.b.error&&(a.b.ready=!0,a.b.ready)){var b=a.wa;a.wa=null;b&&b()}}function va(a,b){a.b.Ga?(a.b.ta=!1,a.b.Ga=!1):a.b.error?a.K(a.toString()+" error"):a.b.ta=b}k.V=function(){return this.b.B=!0};k.P=function(a,b){b&&(this.b.B=!1);return!0};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.i[b]||(this.i[b]=c,c.onclick=function(a){return function(){a.i.print&&(a.i.print.value="")}}(this)),!0;case "print":return this.i[b]||(this.ba=this.i[b]=c,c.value="",this.K=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.F=function(a){this.K(a,this.la)}),!0;default:return!1}};k.log=function(){};k.K=function(){};
|
||||
k.status=function(a){this.K(this.la+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function ua(a,b){b&&(a.b.ready?b():a.ta=b);return a.b.ready}function E(a){if(!a.b.error&&(a.b.ready=!0,a.b.ready)){var b=a.ta;a.ta=null;b&&b()}}function va(a,b){a.b.Da?(a.b.ra=!1,a.b.Da=!1):a.b.error?a.K(a.toString()+" error"):a.b.ra=b}k.V=function(){return this.b.B=!0};k.P=function(a,b){b&&(this.b.B=!1);return!0};
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var ma=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],qa=window?window.PCjs.Commands:{},ra=["hold","sleep","wait"],sa={alert:function(a){x(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ta={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)});
|
||||
|
|
@ -58,48 +58,48 @@ function G(){return"http://"+(window?window.location.host:"www.pcjs.org")}functi
|
|||
function Ia(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ja(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 Ka(a){if(!La){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," "))}La=c}return La[a]}function Ma(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function I(a){J.init.push(a)}
|
||||
function Na(a){if(Oa)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 K(a){!Oa&&a?(Oa=!0,Pa&&Qa("init"),Ra&&Qa("show")):Oa=a}function Qa(a){J[a]&&Na(J[a])}var La=null,J={init:[],show:[],exit:[]},Pa=!1,Ra=!1,Oa=!0,Ga=null;Ma("onload",function(){Pa=!0;Na(J.init)});Ma("onpageshow",function(){Ra=!0;Na(J.show)});Ma(Ja("Opera")||Ja("iOS")?"onunload":"onbeforeunload",function(){Na(J.exit)});
|
||||
var C="pdp10",L="PDPjs",Sa=Math.pow(2,18),Ta=Math.pow(2,18)-1,Ua=Math.pow(2,36),M=Math.pow(2,18),Va=Math.pow(2,23),C="pdp10",L="PDPjs";
|
||||
function Wa(a,b){t.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.c=this.v=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.u=!1;this.O=Xa;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.s=this.f=this.l=this.o=null;this.exports={hold:this.$a,toggle:this.ub,reset:this.qb,
|
||||
set:this.tb};E(this)}n(Wa,t);k=Wa.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
|
||||
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Ya(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ya(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.s=d;Za(this);$a(this)};k.V=function(a,b){if(!b)if(this.R&&ab(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.c,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])Q(this,this.c=a[0]),N(this,this.h=a[1]),bb(this,a[2]);return!0};k.qb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}$a(this);return!0};function cb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Za(a,b){for(var c in a.j)cb(a,c,null!=b?b:a.j[c])}function db(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $a(a){for(var b in a.a)db(a,b,a.a[b][1])}
|
||||
k.$a=function(a,b,c){if(Ya(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
|
||||
k.tb=function(a,b){if("SR"==a){a=b;b=8;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 bb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,db(this,a,c[1]),!0):!1};k.ub=function(a){return Ya(this,a)?(O(this,a),!0):!1};function Ya(a,b){var c=a.a[b];return c?(db(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=eb&&(a.L=b==fb,a.M=b==gb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(db(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.ib=function(a){a||this.f.b.w||(this.f.h=this.c%Sa,this.a[hb]&&this.a[hb][1]&&ib(this.f))};k.jb=function(){};k.cb=function(a){a||R(this.f)};k.ab=function(a){if(!a&&!this.f.b.w)if(this.a[hb]&&this.a[hb][1])ib(this.f);else{a=this.s;var b;if(b=a)a.b.ta&&(a.b.Ga=!0),b=!a.b.ta;if(b)va(a,!0),a.c(0,null),va(a,!1);else try{var c=this.f.za(1);0<c&&(jb(this.f,c),kb(this.f,c,!0),lb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.b.error=!0,c.F(a))}this.stop();this.o&&S(this.o)}};
|
||||
k.bb=function(a){a&&!this.f.b.w&&(this.L&&mb(this),a=N(this,this.h=this.g),this.O==Xa?nb(this.l,this.c,a):this.f.A(this.c,a))};k.eb=function(a){if(!a&&!this.f.b.w){this.M&&mb(this);if(this.O==Xa){a=this.l;var b=this.c,c=a.a[(b&a.g)>>>a.c];a.h++;b=c.s(b&16383,b);a.h--;a=b}else a=this.f.m(this.c);N(this,this.h=a)}};k.gb=function(a){a||this.f.b.w||Q(this,this.g)};k.fb=function(a){a?(this.u=!0,Za(this,!0)):(this.u=!1,Za(this),bb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function mb(a){var b=1,c=a.l.g;a.a[eb]&&a.a[eb][1]||(b=-b);Q(a,a.c&~c|a.c+b&c)}function Q(a,b){a.c=b&a.l.g;if(a.G!==a.c){a.G=a.c;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.u||cb(d,e,f)}}}function N(a,b){a.v=b%Ua;if(a.I!==a.v){a.I=a.v;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.u||cb(d,e,f)}}return a.v}function bb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;$a(a);return!0}k.stop=function(){Q(this,this.f.h)};
|
||||
function ab(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Wa(d,!0));B(e,c)}}var Xa=7,fb="DEP",hb="ENABLE",gb="EXAM",eb="STEP";I(ab);function ob(a,b,c){t.call(this,"Bus",a);this.f=b;this.s=c;this.v=+a.busWidth||18;this.u=1<<this.v;this.g=this.u-1;this.c=Math.log2(16384);this.j=this.u/16384|0;this.h=0;this.a=[];a=new T(this);pb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(ob,t);k=ob.prototype;k.reset=function(){};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,qb(this));return a.data()};k.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++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function rb(a,b,c,d){for(var e=b,f=c,g=e>>>a.c;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.ya+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.ya){p=h.size-(e-l);p>f&&(p=f);h.ya=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return sb(tb,e,f)}e=new T(a,e,p,16384,d);pb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+ub[d]+" at "+wa(b)),!0):sb(vb,b,c)}function nb(a,b,c){var d=a.a[(b&a.g)>>>a.c];a.h++;d.l(c,b&16383,b);a.h--}
|
||||
function qb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.va||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function sb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var tb=1,vb=2;function wb(a){t.call(this,"Device",a)}n(wb,t);k=wb.prototype;k.Z=function(a,b,c,d){this.l=b;this.o=a;this.f=c;this.s=d;E(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(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 wb(c),B(c,d)}}});
|
||||
function T(a,b,c,d,e){this.h=a;this.id=xb+=2;this.aa=b;this.ya=c;this.size=d||0;this.type=e||yb;this.o=e==zb;this.m=this.s=this.c=this.ha;this.A=this.l=this.g=this.ia;this.f=this.i=0;pb(this);this.va=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Ab(this,Bb)}else Ab(this)}k=T.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.va=!0):!1};function Ab(a,b){b||(b=Cb);Db(a,b,void 0);Eb(a,b,void 0)}
|
||||
function Db(a,b,c){c&&a.f||(a.m=b[2]||a.ha);if(c||void 0===c)a.c=b[0]||a.ha,a.s=b[2]||a.ha}function Eb(a,b,c){c&&a.i||(a.A=!a.o&&b[3]||a.ia);if(c||void 0===c)a.g=b[1]||a.ia,a.l=b[3]||a.ia}function pb(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Db(a,Fb,!1),(a.i=b.i)&&Eb(a,Fb,!1))}k.ha=function(){var a=this.h;a.h||R(a.f);return-1};k.ia=function(){};k.lb=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)};k.ob=function(a){return this.a[a]};
|
||||
k.xb=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.va=!0)};k.zb=function(a,b){this.a[b]=a;this.va=!0};k.kb=function(a,b,c,d){return this.c(a,b,c,d)};k.mb=function(a,b){return this.s(a,b)};k.wb=function(a,b,c,d,e){this.o||this.g(a,b,c,d,e)};k.yb=function(a,b,c){this.o||this.l(a,b,c)};
|
||||
var yb=0,zb=2,ub=["NONE","RAM","ROM"],xb=0,Cb=[],Bb=[T.prototype.lb,T.prototype.xb,T.prototype.ob,T.prototype.zb],Fb=[T.prototype.kb,T.prototype.wb,T.prototype.mb,T.prototype.yb];
|
||||
function Gb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Aa=0;this.Ea=b;this.W=c;this.Ca=Math.round(this.Ea/1E4)/100;this.O=this.Ca*this.W;this.Da=this.fa=this.X=this.ra=0;this.b.w=this.b.Ha=!1;this.b.J=a.autoStart;"string"==typeof this.b.J&&(this.b.J="true"==this.b.J);this.b.ua=!1;this.pa=this.R=0;this.qa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.v=[];this.Na=this.rb.bind(this);this.I=this.u=this.D=this.G=this.j=this.la=this.C=this.ca=this.Fa=this.L=0;this.ma=
|
||||
null;E(this)}n(Gb,t);k=Gb.prototype;k.Z=function(a,b,c,d){this.o=a;this.l=b;this.s=d;this.ma=a.g;for(a=0;a<Hb.length;a++)(b=this.i[Hb[a]])&&this.o.U(null,Hb[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=U(this.o,"autoStart");null!=c?this.b.J="true"==c?!0:"false"==c?!1:!!c:null==this.b.J&&(this.b.J=void 0===this.i.run);if(!b){if(a){Ib(this);if(!this.restore(a))return!1;Jb(this)}else this.reset();this.status("No debugger detected");this.b.J||this.K("CPU will not be auto-started "+(this.ma?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.b.w?!0:this.b.J?(ib(this),!0):!1};k.Pa=function(){return 0};
|
||||
function Jb(a){void 0===a.qa&&(a.qa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.b.ua=0<=a.qa&&0<a.da;a.b.ua&&(a.pa=0,a.R=a.qa-a.I)}function lb(a,b){if(a.b.ua){var c=!1;a.pa=a.pa+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Kb(a)&&(a.da=a.ea=-1,Jb(a),R(a),c=!0);c&&a.K(Kb(a)+" cycles: checksum="+F(a.pa))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.b.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.wa?" (waiting for notification)":""))+".");a=!1}a&&(d.b.w?R(d):ib(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Lb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function kb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Mb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.Ca);a.Da=Math.round(1E3/Nb);a.fa=Math.floor(a.Ea/Nb*c);b||(a.X=a.fa);a.ra=0}function Kb(a){return a.I+a.u+a.D-a.G}function Ib(a){a.L=0;a.Fa=0;a.I=a.u=a.D=a.G=0;Jb(a);Lb(a,1)}
|
||||
function Lb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.Ca*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}kb(a,a.u);a.u=0;a.j=w();a.C=0;Mb(a)}function Ob(a){for(var b=[],c=0;c<a.v.length;c++)b.push(a.v[c][0]);return b}
|
||||
function jb(a,b){for(var c=a.v.length-1;0<=c;c--){var d=a.v[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Pb(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
|
||||
k.rb=function(){if(this.b.w){this.ra>=this.Ea&&Mb(this,!0);this.ca=0;this.la=w();if(this.C){var a=this.la-this.C;a>this.Da&&(this.j+=a,this.j>this.la&&(this.j=this.la))}try{do{for(var b,c=this.b.ua?1:this.fa,d=this.v.length-1;0<=d;d--){var e=this.v[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.za(b)}catch(f){if("number"!=typeof f)throw f;}b=Pb(this,!0);this.ca+=b;this.u+=b;lb(this,b);jb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Fa>=Qb&&(this.o&&S(this.o,void 0),this.Fa=0);break}}while(this.b.w)}catch(f){R(this);
|
||||
this.o&&this.o.stop(w(),Kb(this));a=f.stack||f.message;this.b.error=!0;this.F(a);return}if(this.b.w){a=setTimeout;b=this.Na;this.C=w();c=this.Da;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.la;if(d=this.C-this.j)this.L=Math.round(this.u/(10*d))/100,864E5<=d&&(this.I=0,Lb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.ra+=this.ca;this.C+=c;a(b,c)}}};
|
||||
function ib(a){var b;a.b.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.w)a.K(a.toString()+" busy");else{Lb(a);a.b.w=!0;a.b.Ha=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Kb(a));a.s||a.status("Started");setTimeout(a.Na,0)}}k.za=function(){return 0};function R(a){var b=!1;if(a.b.w){Pb(a);kb(a,a.u);a.u=0;a.b.w=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Kb(a));b=!0;a.s||a.status("Stopped")}a.b.complete=void 0;return b}var Nb=30,Qb=15,Hb=["power","reset"];
|
||||
function Rb(a){var b=+a.model||1001;Gb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Sb.bind(this);this.a=V.bind(this);this.ja=null;this.Ka=[];this.b.complete=!1}n(Rb,Gb);k=Rb.prototype;k.reset=function(){this.status("Model "+this.Va);this.b.w&&R(this);this.c=this.M=this.sa=0;this.ka=this.h=this.Ba=this.La;this.g=0;this.m=this.nb;this.A=this.Ab;this.ja=null;Ib(this);this.b.error=!1;Gb.prototype.reset.call(this)};k.Pa=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.c,this.M,this.sa,this.h,this.Ba,this.ka,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.b.J]);a.set(3,Tb(this));a.set(4,Ob(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.c=b.next().value;this.M=b.next().value;this.sa=b.next().value;this.h=b.next().value;this.Ba=b.next().value;this.ka=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Lb(this,b[1]);this.b.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.vb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ja,this.ja=d)}a=a[4];for(b=0;b<this.v.length&&b<a.length;b++)this.v[b][0]=
|
||||
a[b];return!0};function Tb(a){var b=[];for(a=a.ja;a;)b.push(a.vb),a=a.next;return b}k.nb=function(a){var b=this.l;a=this.ka=a;return b.a[(a&b.g)>>>b.c].m(a&16383,a)};k.Ab=function(a,b){var c=this.l;a=this.ka=a;c.a[(a&c.g)>>>c.c].A(b,a&16383,a)};
|
||||
k.za=function(a){this.b.complete=!0;var b=a?this.b.Ha?0:1:-1;this.b.Ha=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ja||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.s.h(this.h,b)){R(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.m(this.c):this.sa=this.m(this.Ba=this.h);this.c=this.M&262143;if(a=this.M>>18&15)this.c=this.c+this.m(a)&Ta;this.M&4194304?a=-1:(this.h=(this.h+1)%Sa,a=this.sa/Va|0);0<=a&&this.Wa(a)}while(0<this.G);return this.b.complete?
|
||||
this.D-this.G:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Rb(d);B(d,c)}});function Sb(a){Ub[a>>4].call(this,a)}function W(a){this.a(a)}function Vb(a){this.a(a)}function Wb(a){this.a(a)}function Xb(a){a&=15;var b=this.m(this.c),c=this.m(a);this.A(a,(c&262143)+(b-(b&262143)))}function Yb(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a);this.A(a,c-(c&262143)+b)}function X(a){this.a(a)}
|
||||
function V(a){this.K("undefined opcode: "+wa(a));this.h=(this.h+-1)%Sa;R(this)}
|
||||
var Ub=[W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
var C="pdp10",L="PDPjs",Sa=Math.pow(2,18),Ta=Math.pow(2,18)-1,Ua=Math.pow(2,36),M=Math.pow(2,18),Va=Math.pow(2,35)-1,Wa=Math.pow(2,23),C="pdp10",L="PDPjs";
|
||||
function Xa(a,b){t.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.c=this.w=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.s=!1;this.O=Ya;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.u=this.f=this.l=this.o=null;this.exports={hold:this.$a,toggle:this.sb,reset:this.ob,
|
||||
set:this.rb};E(this)}n(Xa,t);k=Xa.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
|
||||
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Za(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Za(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;$a(this);ab(this)};k.V=function(a,b){if(!b)if(this.R&&bb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.c,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])Q(this,this.c=a[0]),N(this,this.h=a[1]),cb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}ab(this);return!0};function db(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function $a(a,b){for(var c in a.j)db(a,c,null!=b?b:a.j[c])}function eb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ab(a){for(var b in a.a)eb(a,b,a.a[b][1])}
|
||||
k.$a=function(a,b,c){if(Za(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
|
||||
k.rb=function(a,b){if("SR"==a){a=b;b=8;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 cb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,eb(this,a,c[1]),!0):!1};k.sb=function(a){return Za(this,a)?(O(this,a),!0):!1};function Za(a,b){var c=a.a[b];return c?(eb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=fb&&(a.L=b==gb,a.M=b==hb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(eb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.ib=function(a){a||this.f.b.A||(this.f.h=this.c%Sa,this.a[ib]&&this.a[ib][1]&&jb(this.f))};k.jb=function(){};k.cb=function(a){a||R(this.f)};k.ab=function(a){if(!a&&!this.f.b.A)if(this.a[ib]&&this.a[ib][1])jb(this.f);else{a=this.u;var b;if(b=a)a.b.ra&&(a.b.Da=!0),b=!a.b.ra;if(b)va(a,!0),a.c(0,null),va(a,!1);else try{var c=this.f.wa(1);0<c&&(kb(this.f,c),lb(this.f,c,!0),mb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.b.error=!0,c.F(a))}this.stop();this.o&&S(this.o)}};
|
||||
k.bb=function(a){a&&!this.f.b.A&&(this.L&&nb(this),a=N(this,this.h=this.g),this.O==Ya?ob(this.l,this.c,a):this.f.v(this.c,a))};k.eb=function(a){if(!a&&!this.f.b.A){this.M&&nb(this);if(this.O==Ya){a=this.l;var b=this.c,c=a.a[(b&a.g)>>>a.c];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.m(this.c);N(this,this.h=a)}};k.gb=function(a){a||this.f.b.A||Q(this,this.g)};k.fb=function(a){a?(this.s=!0,$a(this,!0)):(this.s=!1,$a(this),cb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function nb(a){var b=1,c=a.l.g;a.a[fb]&&a.a[fb][1]||(b=-b);Q(a,a.c&~c|a.c+b&c)}function Q(a,b){a.c=b&a.l.g;if(a.G!==a.c){a.G=a.c;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||db(d,e,f)}}}function N(a,b){a.w=b%Ua;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||db(d,e,f)}}return a.w}function cb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;ab(a);return!0}k.stop=function(){Q(this,this.f.h)};
|
||||
function bb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Xa(d,!0));B(e,c)}}var Ya=7,gb="DEP",ib="ENABLE",hb="EXAM",fb="STEP";I(bb);function pb(a,b,c){t.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.c=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new T(this);qb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(pb,t);k=pb.prototype;k.reset=function(){};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,rb(this));return a.data()};k.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++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function sb(a,b,c,d){for(var e=b,f=c,g=e>>>a.c;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return tb(ub,e,f)}e=new T(a,e,p,16384,d);qb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+vb[d]+" at "+wa(b)),!0):tb(wb,b,c)}function ob(a,b,c){var d=a.a[(b&a.g)>>>a.c];a.h++;d.l(c,b&16383,b);a.h--}
|
||||
function rb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function tb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var ub=1,wb=2;function xb(a){t.call(this,"Device",a)}n(xb,t);k=xb.prototype;k.Z=function(a,b,c,d){this.l=b;this.o=a;this.f=c;this.u=d;E(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(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 xb(c),B(c,d)}}});
|
||||
function T(a,b,c,d,e){this.u=a;this.id=yb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||zb;this.c=e==Ab;this.m=this.o=this.Fa;this.v=this.l=this.Ha;this.f=this.i=0;qb(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Bb(this,Cb)}else Bb(this)}k=T.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Bb(a,b){b||(b=Db);Eb(a,b,void 0);Fb(a,b,void 0)}
|
||||
function Eb(a,b,c){c&&a.f||(a.m=b[0]||a.Fa);if(c||void 0===c)a.o=b[0]||a.Fa}function Fb(a,b,c){c&&a.i||(a.v=!a.c&&b[1]||a.Ha);if(c||void 0===c)a.l=b[1]||a.Ha}function qb(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Eb(a,Gb,!1),(a.i=b.i)&&Fb(a,Gb,!1))}k.Fa=function(){var a=this.u;a.h||R(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.o(a,b)};k.ub=function(a,b,c){this.c||this.l(a,b,c)};
|
||||
var zb=0,Ab=2,vb=["NONE","RAM","ROM"],yb=0,Db=[],Cb=[T.prototype.mb,T.prototype.vb],Gb=[T.prototype.kb,T.prototype.ub];
|
||||
function Hb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.b.A=this.b.Ga=!1;this.b.J=a.autoStart;"string"==typeof this.b.J&&(this.b.J="true"==this.b.J);this.b.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
|
||||
null;E(this)}n(Hb,t);k=Hb.prototype;k.Z=function(a,b,c,d){this.o=a;this.l=b;this.u=d;this.ka=a.g;for(a=0;a<Ib.length;a++)(b=this.i[Ib[a]])&&this.o.U(null,Ib[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=U(this.o,"autoStart");null!=c?this.b.J="true"==c?!0:"false"==c?!1:!!c:null==this.b.J&&(this.b.J=void 0===this.i.run);if(!b){if(a){Jb(this);if(!this.restore(a))return!1;Kb(this)}else this.reset();this.status("No debugger detected");this.b.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.b.A?!0:this.b.J?(jb(this),!0):!1};k.Pa=function(){return 0};
|
||||
function Kb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.b.sa=0<=a.oa&&0<a.da;a.b.sa&&(a.na=0,a.R=a.oa-a.I)}function mb(a,b){if(a.b.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Lb(a)&&(a.da=a.ea=-1,Kb(a),R(a),c=!0);c&&a.K(Lb(a)+" cycles: checksum="+F(a.na))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.b.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.b.A?R(d):jb(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Mb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function lb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Nb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Ob);a.fa=Math.floor(a.Ba/Ob*c);b||(a.X=a.fa);a.pa=0}function Lb(a){return a.I+a.s+a.D-a.G}function Jb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Kb(a);Mb(a,1)}
|
||||
function Mb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}lb(a,a.s);a.s=0;a.j=w();a.C=0;Nb(a)}function Pb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
|
||||
function kb(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Qb(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
|
||||
k.pb=function(){if(this.b.A){this.pa>=this.Ba&&Nb(this,!0);this.ca=0;this.ja=w();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.b.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Qb(this,!0);this.ca+=b;this.s+=b;mb(this,b);kb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Rb&&(this.o&&S(this.o,void 0),this.Ca=0);break}}while(this.b.A)}catch(f){R(this);
|
||||
this.o&&this.o.stop(w(),Lb(this));a=f.stack||f.message;this.b.error=!0;this.F(a);return}if(this.b.A){a=setTimeout;b=this.Na;this.C=w();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Mb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
|
||||
function jb(a){var b;a.b.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.A)a.K(a.toString()+" busy");else{Mb(a);a.b.A=!0;a.b.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Lb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function R(a){var b=!1;if(a.b.A){Qb(a);lb(a,a.s);a.s=0;a.b.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Lb(a));b=!0;a.u||a.status("Stopped")}a.b.complete=void 0;return b}var Ob=30,Rb=15,Ib=["power","reset"];
|
||||
function Sb(a){var b=+a.model||1001;Hb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Tb.bind(this);this.a=V.bind(this);this.ha=null;this.Ka=[];this.b.complete=!1}n(Sb,Hb);k=Sb.prototype;k.reset=function(){this.status("Model "+this.Va);this.b.A&&R(this);this.c=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.m=this.lb;this.v=this.wb;this.ha=null;Jb(this);this.b.error=!1;Hb.prototype.reset.call(this)};k.Pa=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.c,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.b.J]);a.set(3,Ub(this));a.set(4,Pb(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.c=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Mb(this,b[1]);this.b.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
|
||||
a[b];return!0};function Ub(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.l;a=this.ia=a;return b.a[(a&b.g)>>>b.c].m(a&16383,a)};k.wb=function(a,b){var c=this.l;a=this.ia=a;c.a[(a&c.g)>>>c.c].v(b,a&16383,a)};
|
||||
k.wa=function(a){this.b.complete=!0;var b=a?this.b.Ga?0:1:-1;this.b.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){R(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.m(this.c):this.qa=this.m(this.ya=this.h);this.c=this.M&262143;if(a=this.M>>18&15)this.c=this.c+this.m(a)&Ta;this.M&4194304?a=-1:(this.h=(this.h+1)%Sa,a=this.qa/Wa|0);0<=a&&this.Wa(a)}while(0<this.G);return this.b.complete?
|
||||
this.D-this.G:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Sb(d);B(d,c)}});function Tb(a){Vb[a>>4].call(this,a)}function W(a){this.a(a)}function Wb(a){this.a(a)}function Xb(a){this.a(a)}function Yb(a){var b=a&15,c=this.m(this.c),d=this.m(b),d=Zb(a,d,c)+(c-(c&262143));this.v(b,d)}function $b(a){var b=a&15,c=this.m(b),c=Zb(a,c,0);this.v(b,c)}
|
||||
function ac(a){var b=this.m(a&15),c=this.m(this.c),c=Zb(a,c,b)+(b-(b&262143));this.v(this.c,c)}function bc(a){var b=this.m(this.c);this.v(this.c,Zb(a,b,b));var c=a&15;c&&(b=this.m(c),this.v(c,Zb(a,b,b)))}function cc(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a);this.v(a,c-(c&262143)+b)}function X(a){this.a(a)}function V(a){this.K("undefined opcode: "+wa(a));this.h=(this.h+-1)%Sa;R(this)}
|
||||
function Zb(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Va?262143:0}return b}
|
||||
var Vb=[W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Vb,Wb,Wb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Vb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Wb,Xb,Xb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Wb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},V,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},V,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
|
|
@ -107,58 +107,57 @@ function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a)
|
|||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Xb,function(a){a&=15;var b=this.m(a);this.A(a,b&262143)},function(a){a=this.m(a&15);var b=this.m(this.c);this.A(this.c,(b&262143)+(a-(a&262143)))},function(a){a&15&&Xb.call(this,a)},
|
||||
function(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a),c=(c&262143)+b*M;this.A(a,c)},function(a){a&=15;var b=this.m(a),b=(b&262143)+this.c*M;this.A(a,b)},function(a){a=this.m(a&15)&262143;var b=this.m(this.c),b=(b&262143)+a*M;this.A(this.c,b)},function(a){var b=this.m(this.c)&262143;this.A(this.c,b+b*M);if(a&=15)b=this.m(a)&262143,this.A(a,b+b*M)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,function(a){a&=15;var b=this.m(a),b=b-(b&262143)+this.c;this.A(a,b)},function(a){a=this.m(a&15)&262143;var b=
|
||||
this.m(this.c);this.A(this.c,b-(b&262143)+a)},function(a){a&15&&Yb.call(this,a)},function(a){a&=15;var b=this.m(this.c)/M|0,c=this.m(a);this.A(a,c-(c&262143)+b)},function(a){a&=15;var b=this.m(a);this.A(a,b-(b&262143))},function(a){a=this.m(a&15)/M|0;var b=this.m(this.c);this.A(this.c,b-(b&262143)+a)},function(a){var b=this.m(this.c);this.A(this.c,(b&262143)+(b/M|0));if(a&=15)b=this.m(a),this.A(a,(b&262143)+(b/M|0))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,$b,ac,bc,function(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a),c=(c&262143)+b*M;this.v(a,c)},function(a){a&=15;var b=this.m(a),b=(b&262143)+this.c*M;this.v(a,b)},function(a){a=
|
||||
this.m(a&15)&262143;var b=this.m(this.c),b=(b&262143)+a*M;this.v(this.c,b)},function(a){var b=this.m(this.c)&262143;this.v(this.c,b+b*M);if(a&=15)b=this.m(a)&262143,this.v(a,b+b*M)},Yb,$b,ac,bc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,$b,ac,bc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,$b,ac,bc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},cc,function(a){a&=
|
||||
15;var b=this.m(a),b=b-(b&262143)+this.c;this.v(a,b)},function(a){a=this.m(a&15)&262143;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){a&15&&cc.call(this,a)},function(a){a&=15;var b=this.m(this.c)/M|0,c=this.m(a);this.v(a,c-(c&262143)+b)},function(a){a&=15;var b=this.m(a);this.v(a,b-(b&262143))},function(a){a=this.m(a&15)/M|0;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){var b=this.m(this.c);this.v(this.c,(b&262143)+(b/M|0));if(a&=15)b=this.m(a),this.v(a,(b&262143)+
|
||||
(b/M|0))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
|
||||
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
|
||||
function Zb(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.c=a.alias;"string"==typeof this.c&&(this.c=eval(this.c));this.h=a.file;this.u=xa(this.h);if(this.h){a=this.h;var b=ya(this.u);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.oa,a,b),(a=Ea(a,b))?(c.a=a.H,c.N=a.N):c.h=null);$b(c)})}}n(Zb,t);
|
||||
Zb.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.s=d;$b(this)};Zb.prototype.V=function(){this.N&&(this.s&&this.s.a(this.id,this.j,this.g,this.N),delete this.N);return!0};Zb.prototype.P=function(){return!0};
|
||||
function $b(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.F(b)}else{b=a.j;if(rb(a.l,b,a.g,zb)){var c;for(c=0;c<a.a.length;c++)nb(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.c?b.push(a.c):null!=a.c&&a.c.length&&(b=a.c);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.c;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
|
||||
d=d.g;g=0;for(e>>>=f.c;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Zb(d);B(d,c)}});
|
||||
function Y(a){t.call(this,"RAM",a);this.N=this.Y=null;this.c=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.u=!1;this.a=a.file;this.j=xa(this.a);if(this.a){a=this.a;var b=ya(this.j);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(la(c.oa,a,b),(a=Ea(a,b))?(c.Y=a.Y,c.N=a.N,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);ac(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.s=d;ac(this)};Y.prototype.V=function(a,b){this.N&&(this.s&&this.s.a(this.id,this.c,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
|
||||
function ac(a){if(a.l&&(!a.h&&a.g&&(rb(a.l,a.c,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;bc(a,a.Y,a.T,a.S,a.c)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.u=!0;E(a)}}
|
||||
Y.prototype.reset=function(){if(this.h&&!this.u){for(var a=this.l,b=this.c,c=this.g,d=b&16383,b=b>>>a.c;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ka&&(g+=ja);g=Math.trunc(Math.abs(g))%ja;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&bc(this,this.Y,this.T,this.S,this.c,!this.s)}this.u=!1};
|
||||
function bc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)nb(a.l,c+g,b[g]);g=!0}g&&(null==d&&(R(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Sa,f?a.b.B?a.b.w||ib(a):a.b.J=!0:a.s&&a.b.B?R(a)||a.o.b.reset||(a.s.g(),S(a.o,-1)):!1===f&&R(a),!a.b.w&&a.ma&&a.ma.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function cc(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.c=[];var b=a.binding;if("console"!=b){var c;a=dc;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.xa,receiveStatus:this.pb,setConnection:this.sb}}n(cc,t);k=cc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case dc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.xa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.xa(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.xa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.s=d;E(this)};
|
||||
k.Qa=function(a){if(!this.a){var b=U(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.na)return;c=Ca(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.oa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.xa=function(a){if("number"==typeof a)this.c.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.c.push(b)}else this.c=this.c.concat(a);return!0};k.pb=function(){};k.sb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var dc="buffer";
|
||||
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new cc(d);B(d,c)}});
|
||||
function ec(a,b,c){t.call(this,"Computer",a);this.b.B=!1;this.M=null;fc(this,b);this.I=U(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.u=this.G=null;this.C=this.R=!1;this.v=this.j=null;this.O=this.L=!1;this.X=U(this,"url")||"";(Math.random()+.1).toString(36);this.c=gc(this);if(this.f=z("CPU",this.id)){this.s=z("Debugger",this.id);this.l=new ob({id:this.oa+".bus",busWidth:this.W},this.f,this.s);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" 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.Z&&d.Z(this,this.l,this.f,this.s);b=null;d=U(this,"resume",a);void 0!==d&&(1<d.length?b=this.u=d:this.a=parseInt(d,10));var f;if(a=U(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=hc),this.a&&(this.v=new P(this,"1.34.0"),Z(this.v)?b=null:delete this.v);!b&&this.a&&
|
||||
(b=ic(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.u=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&jc(this,this.ga)}else x("Unable to find CPU component")}n(ec,t);function fc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
function U(a,b,c,d){var e=b.toLowerCase(),e=Ka(b)||Ka(e);void 0===e&&a.M&&(e=a.M[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 jc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){jc(a,b,c)});return}}b.call(a,c)}
|
||||
function kc(a,b){var c=new P(a,"1.34.0",lc);if(Z(c)&&mc(c)){var d=c.get(nc),e=b?b.get(nc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ec.prototype;
|
||||
k.ga=function(a){void 0===a&&(a=this.a||(this.D?oc:hc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.v||new P(this,"1.34.0");if(a==pc)b=!0;else if(a>hc){if(Z(d,this.D)){this.j=new P(this,"1.34.0",qc);Z(this.j)&&(rc(this,d),a=sc,tc(this.j));this.j.set(nc,Da());uc(this.j);var e=this.a&&!this.C;if(a==oc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=mc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ia(vc,""),this.c=null)):this.K(f+": "+g),tc(d),Z(d)?(c=mc(d),e=!0):c=!1))}e&&kc(this,c?d:null)}else a==sc&&d.clear()}else kc(this);delete this.D;delete this.v}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=wc(this,g,d,b,c));b=[d,a,c];a!=pc?jc(this,this.Oa,b):this.Oa(b)}};
|
||||
function wc(a,b,c,d,e){if(!b.b.B){b.b.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=hc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.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}
|
||||
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.b.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(wc(this,this.f,b,c,a),S(this,-2),this.f.J());this.L&&(rc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function rc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.c||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function xc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",lc),h=Da();g.set(nc,h);f.set(nc,h);f.set(yc,"1.34.0");f.set(zc,window?window.location.href:null);f.set(Ac,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.b.J=a.f.b.w),R(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.b.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.b.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.b.B=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&Bc(a,a.c,f.toString()),uc(g)&&uc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Cc),d&&f.clear(h)):e=f.toString());c&&(a.b.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.f&&c.reset&&c.reset()}this.b.reset=!1;S(this,-1)};
|
||||
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
|
||||
function dc(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.c=a.alias;"string"==typeof this.c&&(this.c=eval(this.c));this.h=a.file;this.s=xa(this.h);if(this.h){a=this.h;var b=ya(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.ma,a,b),(a=Ea(a,b))?(c.a=a.H,c.N=a.N):c.h=null);ec(c)})}}n(dc,t);
|
||||
dc.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;ec(this)};dc.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};dc.prototype.P=function(){return!0};
|
||||
function ec(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.F(b)}else{b=a.j;if(sb(a.l,b,a.g,Ab)){var c;for(c=0;c<a.a.length;c++)ob(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.c?b.push(a.c):null!=a.c&&a.c.length&&(b=a.c);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.c;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
|
||||
d=d.g;g=0;for(e>>>=f.c;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new dc(d);B(d,c)}});
|
||||
function Y(a){t.call(this,"RAM",a);this.N=this.Y=null;this.c=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.s=!1;this.a=a.file;this.j=xa(this.a);if(this.a){a=this.a;var b=ya(this.j);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(la(c.ma,a,b),(a=Ea(a,b))?(c.Y=a.Y,c.N=a.N,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);fc(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;fc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.c,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
|
||||
function fc(a){if(a.l&&(!a.h&&a.g&&(sb(a.l,a.c,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;gc(a,a.Y,a.T,a.S,a.c)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;E(a)}}
|
||||
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.l,b=this.c,c=this.g,d=b&16383,b=b>>>a.c;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ka&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&gc(this,this.Y,this.T,this.S,this.c,!this.u)}this.s=!1};
|
||||
function gc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)ob(a.l,c+g,b[g]);g=!0}g&&(null==d&&(R(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Sa,f?a.b.B?a.b.A||jb(a):a.b.J=!0:a.u&&a.b.B?R(a)||a.o.b.reset||(a.u.g(),S(a.o,-1)):!1===f&&R(a),!a.b.A&&a.ka&&a.ka.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function hc(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.c=[];var b=a.binding;if("console"!=b){var c;a=ic;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(hc,t);k=hc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case ic:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(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.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;E(this)};
|
||||
k.Qa=function(a){if(!this.a){var b=U(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.la)return;c=Ca(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.c.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.c.push(b)}else this.c=this.c.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var ic="buffer";
|
||||
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new hc(d);B(d,c)}});
|
||||
function jc(a,b,c){t.call(this,"Computer",a);this.b.B=!1;this.M=null;kc(this,b);this.I=U(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=U(this,"url")||"";(Math.random()+.1).toString(36);this.c=lc(this);if(this.f=z("CPU",this.id)){this.u=z("Debugger",this.id);this.l=new pb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" 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.Z&&d.Z(this,this.l,this.f,this.u);b=null;d=U(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=U(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=mc),this.a&&(this.w=new P(this,"1.34.0"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
|
||||
(b=nc(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&oc(this,this.ga)}else x("Unable to find CPU component")}n(jc,t);function kc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
function U(a,b,c,d){var e=b.toLowerCase(),e=Ka(b)||Ka(e);void 0===e&&a.M&&(e=a.M[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 oc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){oc(a,b,c)});return}}b.call(a,c)}
|
||||
function pc(a,b){var c=new P(a,"1.34.0",qc);if(Z(c)&&rc(c)){var d=c.get(sc),e=b?b.get(sc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=jc.prototype;
|
||||
k.ga=function(a){void 0===a&&(a=this.a||(this.D?tc:mc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new P(this,"1.34.0");if(a==uc)b=!0;else if(a>mc){if(Z(d,this.D)){this.j=new P(this,"1.34.0",vc);Z(this.j)&&(wc(this,d),a=xc,yc(this.j));this.j.set(sc,Da());zc(this.j);var e=this.a&&!this.C;if(a==tc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=rc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ia(Ac,""),this.c=null)):this.K(f+": "+g),yc(d),Z(d)?(c=rc(d),e=!0):c=!1))}e&&pc(this,c?d:null)}else a==xc&&d.clear()}else pc(this);delete this.D;delete this.w}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Bc(this,g,d,b,c));b=[d,a,c];a!=uc?oc(this,this.Oa,b):this.Oa(b)}};
|
||||
function Bc(a,b,c,d,e){if(!b.b.B){b.b.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=mc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.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}
|
||||
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.b.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Bc(this,this.f,b,c,a),S(this,-2),this.f.J());this.L&&(wc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function wc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.c||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Cc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",qc),h=Da();g.set(sc,h);f.set(sc,h);f.set(Dc,"1.34.0");f.set(Ec,window?window.location.href:null);f.set(Fc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.b.J=a.f.b.A),R(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.b.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.b.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.b.B=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&Gc(a,a.c,f.toString()),zc(g)&&zc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Hc),d&&f.clear(h)):e=f.toString());c&&(a.b.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.f&&c.reset&&c.reset()}this.b.reset=!1;S(this,-1)};
|
||||
k.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)}S(this,-1)};k.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)}S(this,-1)};
|
||||
function S(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.Aa+=d))&&(e.textContent=c.b.w?c.L.toFixed(2)+"Mhz":"Stopped",c.Aa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.b.w;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.s&&a.s.j||8,e=e||0,e=8==f?wa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.c=a.f.h:0<b&&c&&!d&&(a.c=a.f.ka);Q(a,a.c);N(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.B?xc(d,!1,!0):jc(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.B&&!d.h)if(d.a&&!d.u){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(hc)}else d.reset(),d.f&&!d.s&&d.f.J()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.i[b]=
|
||||
c,c.onclick=function(){var a=gc(d,!0);if(a){var b=!!(d.a&&!d.u||d.G),c=xc(d,b);b?Bc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function gc(a,b){var c=a.c;c||((c=Ha(vc),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=Dc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
|
||||
function Dc(a,b){a.c=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(vc,b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function ic(a){var b=null;a.c&&(b=G()+"/api/v1/user?req=load&user="+a.c+"&state="+Ec(a,"1.34.0"));return b}
|
||||
function Bc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ec(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ia(vc,""),a.c=null)}}
|
||||
var qc="failsafe",lc="validate",nc="timestamp",yc="version",zc="url",Ac="browser",vc="user",pc=-1,hc=0,oc=1,sc=2,Cc=3;I(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 ec(g,d,!0);B(g,f);g.I&&jc(g,g.ga)}});J.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.O&&!c.b.B&&c.ga(pc)}});
|
||||
J.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.b.B&&xc(c,!(!c.a||c.u),!0)}});function P(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.l=!1;this.key=Ec(a,b,c);tc(this,a.Xa)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.l=!1,!0):a.i?!0:Fa()&&(b=Ha(a.key))?(a.f=b,a.i=!0):!1}
|
||||
function mc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function uc(a){var b=!0;if(Fa()){var c=JSON.stringify(a.a);Ia(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function tc(a,b){a.f="";a.a={};a.i=a.l=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){tc(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 Ec(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 Fc=0;
|
||||
function Gc(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Hc(l,a,b,c,d,e,f,g)})}
|
||||
function Hc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(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(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ic(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ic(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(e,null,!0,function(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 l=h[0],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Ic(a,b,c)}})}else c(a,null)}
|
||||
function Jc(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Aa(a))}function g(a){f("Error: "+a);p&&(--Fc||K(!0));p=!1}var h,l,p=!0;Fc++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ia=document.createElement("style");ia.type="text/css";ia.styleSheet?ia.styleSheet.cssText=r:ia.appendChild(document.createTextNode(r));v.appendChild(ia)}d||
|
||||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?Gc(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Fc||K(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Fc||
|
||||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Gc(c,b,a,e,!0,f,r):Hc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(Kc){g(Kc.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return Jc("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return Jc("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
|
||||
function S(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.b.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.b.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?wa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.c=a.f.h:0<b&&c&&!d&&(a.c=a.f.ia);Q(a,a.c);N(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.B?Cc(d,!1,!0):oc(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.B&&!d.h)if(d.a&&!d.s){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Cc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(mc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.i[b]=
|
||||
c,c.onclick=function(){var a=lc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Cc(d,b);b?Gc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function lc(a,b){var c=a.c;c||((c=Ha(Ac),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=Ic(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
|
||||
function Ic(a,b){a.c=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(Ac,b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function nc(a){var b=null;a.c&&(b=G()+"/api/v1/user?req=load&user="+a.c+"&state="+Jc(a,"1.34.0"));return b}
|
||||
function Gc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Jc(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ia(Ac,""),a.c=null)}}
|
||||
var vc="failsafe",qc="validate",sc="timestamp",Dc="version",Ec="url",Fc="browser",Ac="user",uc=-1,mc=0,tc=1,xc=2,Hc=3;I(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 jc(g,d,!0);B(g,f);g.I&&oc(g,g.ga)}});J.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.O&&!c.b.B&&c.ga(uc)}});
|
||||
J.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.b.B&&Cc(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.l=!1;this.key=Jc(a,b,c);yc(this,a.Xa)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.l=!1,!0):a.i?!0:Fa()&&(b=Ha(a.key))?(a.f=b,a.i=!0):!1}
|
||||
function rc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function zc(a){var b=!0;if(Fa()){var c=JSON.stringify(a.a);Ia(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function yc(a,b){a.f="";a.a={};a.i=a.l=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){yc(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 Jc(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 Kc=0;
|
||||
function Lc(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Mc(l,a,b,c,d,e,f,g)})}
|
||||
function Mc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(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(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Nc(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Nc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(e,null,!0,function(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 l=h[0],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Nc(a,b,c)}})}else c(a,null)}
|
||||
function Oc(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Aa(a))}function g(a){f("Error: "+a);p&&(--Kc||K(!0));p=!1}var h,l,p=!0;Kc++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ja=document.createElement("style");ja.type="text/css";ja.styleSheet?ja.styleSheet.cssText=r:ja.appendChild(document.createTextNode(r));v.appendChild(ja)}d||
|
||||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?Lc(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Kc||K(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Kc||
|
||||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Lc(c,b,a,e,!0,f,r):Mc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(Pc){g(Pc.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return Oc("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return Oc("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&&!qa[a]){for(var c=!0,d=qa,e=a,f=b.length,g=[],h=[],l="",p=null,r=0;r<f;r++){var v=b[r];if('"'==v||"'"==v)p&&v!=p?l+=v:(p?p=null:p=v,l&&(h.push(l),l=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){l&&(h.push(l),l="");";"==v&&h.length&&(g.push(h),h=[]);continue}}l+=v}}l&&h.push(l);h.length&&g.push(h);d[e]=g;pa(a)||(c=!1)}return c};window.enableEvents=K;window.sendEvent=Qa;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue