|
|
|
|
@ -32,328 +32,328 @@
|
|
|
|
|
http://pcjs.org/modules/pdp11/lib/computer.js (C) Jeff Parsons 2012-2016
|
|
|
|
|
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2016
|
|
|
|
|
*/
|
|
|
|
|
for(var k,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,ca=["Math","log2"],da=0;da<ca.length-1;da++){var fa=ca[da];fa in ba||(ba[fa]={});ba=ba[fa]}var ga=ca[ca.length-1],ha=ba[ga],ja=ha?ha:function(a){return Math.log(a)/Math.LN2};
|
|
|
|
|
ja!=ha&&null!=ja&&aa(ba,ga,{configurable:!0,writable:!0,value:ja});
|
|
|
|
|
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Df:0,Sc:1,Ff:2,Gf:3,Hf:4,If:5,Jf:6,Kf:7,vc:8,Lf:9,Tc:10,Mf:11,Nf:12,Uc:13,Of:14,Pf:15,Qf:16,Rf:17,Sf:18,Tf:19,Uf:20,Vf:21,Wf:22,Xf:23,Yf:24,Zf:25,$f: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,tc:65,Cf:66,Ef:67,ag:68,E:69,bg:70,cg:71,dg:72,eg:73,fg:74,gg:75,hg:76,ig:77,jg:78,kg:79,lg:80,Q:81,mg:82,ng:83,og:84,pg:85,qg:86,rg:87,sg:88,tg:89,dd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,ug:97,vg:98,wg:99,d:100,e:101,yg:102,zg:103,Ag:104,Bg:105,Eg:106,k:107,Fg:108,Gg:109,n:110,Hg:111,p:112,q:113,r:114,Ig:115,t:116,Kg:117,Lg:118,Mg:119,x:120,y:121,z:122,"{":123,
|
|
|
|
|
"|":124,"}":125,"~":126,Vc:127};
|
|
|
|
|
for(var k,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,ca=["Math","log2"],ea=0;ea<ca.length-1;ea++){var fa=ca[ea];fa in ba||(ba[fa]={});ba=ba[fa]}var ga=ca[ca.length-1],ia=ba[ga],ja=ia?ia:function(a){return Math.log(a)/Math.LN2};
|
|
|
|
|
ja!=ia&&null!=ja&&aa(ba,ga,{configurable:!0,writable:!0,value:ja});
|
|
|
|
|
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Ff:0,Uc:1,Hf:2,If:3,Jf:4,Kf:5,Lf:6,Mf:7,xc:8,Nf:9,Vc:10,Of:11,Pf:12,Wc:13,Qf:14,Rf:15,Sf:16,Tf:17,Uf:18,Vf:19,Wf:20,Xf:21,Yf:22,Zf:23,$f:24,ag:25,bg: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,vc:65,Ef:66,Gf:67,cg:68,E:69,dg:70,eg:71,fg:72,gg:73,hg:74,ig:75,jg:76,kg:77,lg:78,mg:79,ng:80,Q:81,og:82,pg:83,qg:84,rg:85,sg:86,tg:87,ug:88,vg:89,fd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,wg:97,xg:98,yg:99,d:100,e:101,Ag:102,Bg:103,Cg:104,Dg:105,Gg:106,k:107,Hg:108,Ig:109,n:110,Jg:111,p:112,q:113,r:114,Kg:115,t:116,Mg:117,Ng:118,Og:119,x:120,y:121,z:122,"{":123,
|
|
|
|
|
"|":124,"}":125,"~":126,Xc:127};
|
|
|
|
|
function ma(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
|
|
|
|
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function na(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function p(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<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 q(a){return p(a,4,!0)}
|
|
|
|
|
function u(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var qa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ra(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}
|
|
|
|
|
function ta(a,b){return(a+" ").slice(0,b)}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var za={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
|
|
|
|
|
function u(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(a,b){return-1!==a.indexOf(b,a.length-b.length)}var qa={"&":"&","<":"<",">":">",'"':""","'":"'"};function sa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}
|
|
|
|
|
function ta(a,b){return(a+" ").slice(0,b)}function ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var za={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
|
|
|
|
|
function Aa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}var Ba=Date.now||function(){return+new Date};function Ca(){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 Da(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
|
|
|
|
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
|
|
|
|
function Ea(a,b){var c,d={ga:null,ia:null,Sa:null,Ra:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Sa=g.load;d.Ra=g.exec;if(e=g.bytes)d.ga=e;else if(e=g.words)for(d.ga=Array(2*e.length),f=c=0;c<e.length;c++)d.ga[f++]=e[c]&255,d.ga[f++]=e[c]>>8&255;else if(e=g.data)for(d.ga=Array(4*e.length),f=c=0;c<e.length;c++)d.ga[f++]=
|
|
|
|
|
function Ea(a,b){var c,d={ga:null,ia:null,Ta:null,Sa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ta=g.load;d.Sa=g.exec;if(e=g.bytes)d.ga=e;else if(e=g.words)for(d.ga=Array(2*e.length),f=c=0;c<e.length;c++)d.ga[f++]=e[c]&255,d.ga[f++]=e[c]>>8&255;else if(e=g.data)for(d.ga=Array(4*e.length),f=c=0;c<e.length;c++)d.ga[f++]=
|
|
|
|
|
e[c]&255,d.ga[f++]=e[c]>>8&255,d.ga[f++]=e[c]>>16&255,d.ga[f++]=e[c]>>24&255;else d.ga=g;d.ia=g.symbols;d.ga.length?1==d.ga.length&&(v(d.ga[0]),d=null):(v("Empty resource: "+a),d=null)}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++){f=parseInt(b[c],16);if(isNaN(f)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ga=e)}return d}
|
|
|
|
|
function Fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function v(a){window&&window.alert(a)}function Ga(a){var b=!1;window&&(b=window.confirm(a));return b}var Ha=null;function Ia(){if(null==Ha){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}Ha=a}return Ha}
|
|
|
|
|
function Fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function v(a){window&&window.alert(a)}function Ga(a){var b=!1;window&&(b=window.confirm(a));return b}var Ia=null;function Ja(){if(null==Ia){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}Ia=a}return Ia}
|
|
|
|
|
function Ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function La(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ma(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)?!0:!1}return!1}
|
|
|
|
|
function Na(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Oa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
|
|
|
function Pa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ra={init:[],show:[],exit:[]},Ya=!1,Za=!1,$a=!0;function ab(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function bb(a){Ra.init.push(a)}
|
|
|
|
|
function cb(a){if($a)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 db(a){!$a&&a?($a=!0,Ya&&eb("init"),Za&&eb("show")):$a=a}function eb(a){Ra[a]&&cb(Ra[a])}ab("onload",function(){Ya=!0;cb(Ra.init)});ab("onpageshow",function(){Za=!0;cb(Ra.show)});ab(Ma("Opera")||Ma("iOS")?"onunload":"onbeforeunload",function(){cb(Ra.exit)});
|
|
|
|
|
function x(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.xc=b.comment;this.gd=b;b=this.id.indexOf(".");0>b?this.fb=this.id:(this.gb=this.id.substr(0,b),this.fb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,ib:!1,lc:!1,la:!1,error:!1};this.ac=null;this.C.error=!1;this.D={};this.j=null;this.oa=d||0;z.push(this)}var fb=void 0,gb={};
|
|
|
|
|
function Na(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function Pa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
|
|
|
function Wa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Xa={init:[],show:[],exit:[]},Ya=!1,Za=!1,$a=!0;function ab(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function bb(a){Xa.init.push(a)}
|
|
|
|
|
function cb(a){if($a)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 db(a){!$a&&a?($a=!0,Ya&&eb("init"),Za&&eb("show")):$a=a}function eb(a){Xa[a]&&cb(Xa[a])}ab("onload",function(){Ya=!0;cb(Xa.init)});ab("onpageshow",function(){Za=!0;cb(Xa.show)});ab(Ma("Opera")||Ma("iOS")?"onunload":"onbeforeunload",function(){cb(Xa.exit)});
|
|
|
|
|
function x(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.zc=b.comment;this.jd=b;b=this.id.indexOf(".");0>b?this.gb=this.id:(this.hb=this.id.substr(0,b),this.gb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,jb:!1,nc:!1,la:!1,error:!1};this.cc=null;this.C.error=!1;this.D={};this.j=null;this.oa=d||0;z.push(this)}var fb=void 0,gb={};
|
|
|
|
|
if(window){fb||(fb=window.location.search.substr(1));for(var hb,ib=/\+/g,jb=/([^&=]+)=?([^&]*)/g;hb=jb.exec(fb);)gb[decodeURIComponent(hb[1].replace(ib," "))]=decodeURIComponent(hb[2].replace(ib," "))}function kb(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
|
|
|
|
function B(a,b){b||(b=x);a.prototype=kb(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var lb=window.PCjs.Machines||(window.PCjs.Machines={}),z=window.PCjs.Components||(window.PCjs.Components=[])}else lb={},z=[];function mb(a,b,c){lb[a]&&b&&(lb[a][b]=c)}function nb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<z.length;b++){var d=z[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
|
|
|
|
function ob(a){if(void 0!==a){var b;for(b=0;b<z.length;b++)if(z[b].id===a)return z[b]}return null}function pb(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<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
|
|
|
|
function ob(a){if(void 0!==a){var b;for(b=0;b<z.length;b++)if(z[b].id===a)return z[b]}return null}function vb(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<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
|
|
|
|
function E(a,b){b=F(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pdp11-binding":(g=D(f))&&g.binding&&a.wa(g.type,g.binding,f,g.value),l=h.length}}}}
|
|
|
|
|
function F(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}
|
|
|
|
|
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},wa:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.$a=this.D[b]=c,c.value="",this.i=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.N=function(a){this.i(a,this.fb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.fb+": "+a)},N:function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)},Ia:function(){return this.C.la=!0},Ha:function(a,b){b&&(this.C.la=!1);return!0}};function G(a,b,c,d){a.j&&(!0===c||I(a,c|0))&&a.j.message(b,d)}function I(a,b){if(a.j){a===a.j?b|=0:b=b||a.oa;var c=a.j.oa&b;return!!b&&c===b||!!(c&a.j.nd)}return!1}
|
|
|
|
|
function qb(a,b){if(a.C.lc)return a.C.ib=!1,a.C.lc=!1;if(a.C.error)return a.i(a.toString()+" error"),!1;a.C.ib=b;return a.C.ib}function xb(a,b){a.C.ib&&(b?a.C.lc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.C.ib}function J(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.ac,a.ac=null,b&&b()))}function yb(a,b){b&&(a.C.ready?b():a.ac=b);return a.C.ready}function zb(a){return a.C.error?(a.i(a.toString()+" error"),!0):!1}function Ab(a,b){a.C.error=!0;a.N(b)}
|
|
|
|
|
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},wa:function(a,b,c){switch(b){case "clear":return this.D[b]||(this.D[b]=c,c.onclick=function(a){return function(){a.D.print&&(a.D.print.value="")}}(this)),!0;case "print":return this.D[b]||(this.ab=this.D[b]=c,c.value="",this.i=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.N=function(a){this.i(a,this.gb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.gb+": "+a)},N:function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)},Ja:function(){return this.C.la=!0},Ia:function(a,b){b&&(this.C.la=!1);return!0}};function G(a,b,c,d){a.j&&(!0===c||I(a,c|0))&&a.j.message(b,d)}function I(a,b){if(a.j){a===a.j?b|=0:b=b||a.oa;var c=a.j.oa&b;return!!b&&c===b||!!(c&a.j.pd)}return!1}
|
|
|
|
|
function wb(a,b){if(a.C.nc)return a.C.jb=!1,a.C.nc=!1;if(a.C.error)return a.i(a.toString()+" error"),!1;a.C.jb=b;return a.C.jb}function xb(a,b){a.C.jb&&(b?a.C.nc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.C.jb}function J(a,b){a.C.error||(a.C.ready=!1!==b,a.C.ready&&(b=a.cc,a.cc=null,b&&b()))}function yb(a,b){b&&(a.C.ready?b():a.cc=b);return a.C.ready}function zb(a){return a.C.error?(a.i(a.toString()+" error"),!0):!1}function Ab(a,b){a.C.error=!0;a.N(b)}
|
|
|
|
|
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
|
|
|
|
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
|
|
|
|
var Bb="undefined"!==typeof ArrayBuffer,Cb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Db={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},Eb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,dl11:262144,serial:262144,kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,
|
|
|
|
|
buffer:1073741824,halt:-2147483648};function Fb(a){x.call(this,"Panel",a,Fb,512);this.Ca=this.v=this.cb=this.yb=this.B=this.F=0;this.J=this.K=this.G=!1;this.L=Gb;this.g={};this.f={START:[1,1,!0,!1,this.Cd],STEP:[1,1,!1,!1,this.Dd],ENABLE:[1,1,!1,!1,this.yd],CONT:[1,1,!0,!1,this.wd],DEP:[0,0,!0,!1,this.xd],EXAM:[1,1,!0,!1,this.zd],LOAD:[1,1,!0,!1,this.Bd],TEST:[0,0,!0,!1,this.Ad]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Ed,a]}B(Fb);var Gb=7;function Hb(a,b){return a.f[b]&&a.f[b][1]}k=Fb.prototype;
|
|
|
|
|
buffer:1073741824,halt:-2147483648};function Fb(a){x.call(this,"Panel",a,Fb,512);this.Ca=this.v=this.eb=this.Ab=this.B=this.F=0;this.I=this.J=this.G=!1;this.K=Gb;this.g={};this.f={START:[1,1,!0,!1,this.Ed],STEP:[1,1,!1,!1,this.Fd],ENABLE:[1,1,!1,!1,this.Ad],CONT:[1,1,!0,!1,this.yd],DEP:[0,0,!0,!1,this.zd],EXAM:[1,1,!0,!1,this.Bd],LOAD:[1,1,!0,!1,this.Dd],TEST:[0,0,!0,!1,this.Cd]};for(a=0;22>a;a++)this.f["S"+a]=[0,0,!1,!1,this.Gd,a]}B(Fb);var Gb=7;function Hb(a,b){return a.f[b]&&a.f[b][1]}k=Fb.prototype;
|
|
|
|
|
k.reset=function(){this.stop()};
|
|
|
|
|
k.wa=function(a,b,c,d){if(this.A&&this.A.wa(a,b,c,d)||this.b&&this.b.wa(a,b,c,d)||this.j&&this.j.wa(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.D[b]=c,this.F++,!0;default:return"led"==a||"rled"==a?(this.D[b]=c,this.g[b]=d?1:0,this.F++,!0):"switch"==a?(void 0===this.f[b]&&(this.f[b]=[d?1:0,d?1:0]),this.D[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
|
|
|
|
|
b){return function(){Ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Jb(a,b)}}(this,b),!0):this.parent.wa.call(this,a,b,c,d)}};k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;Kb(b,this,Lb);Mb(b,this.reset.bind(this));Nb(this);Ob(this)};k.Ia=function(a,b){b||(Pb(),this.reset());return!0};k.Ha=function(){return!0};
|
|
|
|
|
b){return function(){Ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Ib(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Jb(a,b)}}(this,b),!0):this.parent.wa.call(this,a,b,c,d)}};k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;Kb(b,this,Lb);Mb(b,this.reset.bind(this));Nb(this);Ob(this)};k.Ja=function(a,b){b||(Pb(),this.reset());return!0};k.Ia=function(){return!0};
|
|
|
|
|
function Qb(a,b,c){if(a=a.D[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Nb(a,b){for(var c in a.g)Qb(a,c,null!=b?b:a.g[c])}function Rb(a,b,c){if(a=a.D[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ob(a){for(var b in a.f)Rb(a,b,a.f[b][1])}function Sb(a,b,c,d){a.D[b]&&(void 0===c&&(Ab(a,"Value for "+b+" is invalid"),a.b.ba()),c=8==(a.j&&a.j.ma||8)?na(c,d):p(c,d),a.D[b].textContent!=c&&(a.D[b].textContent=c))}
|
|
|
|
|
function Ib(a,b){var c=a.f[b];Rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.J="DEP"==b,a.K="EXAM"==b)}function Jb(a,b){var c=a.f[b];c[2]&&c[3]&&(Rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Cd=function(a){a||this.b.C.W||(a=this.b,a.w.reset(),Tb(a),Hb(this,"ENABLE")&&this.b.ob())};k.Dd=function(){};k.yd=function(a){a||this.b.ba()};
|
|
|
|
|
k.wd=function(a){if(!a&&!this.b.C.W)if(Hb(this,"ENABLE"))this.b.ob();else{if((a=this.j)&&!xb(a,!0))qb(a,!0),a.pb(0,null),qb(a,!1);else try{var b=this.b.pb(1);0<b&&(Ub(this.b,b),Vb(this.b,b,!0),Wb(this.b,b))}catch(c){"number"!=typeof c&&Ab(this.b,c.stack||c.message)}this.stop();this.A&&this.A.xa()}};k.xd=function(a){if(a&&!this.b.C.W)if(this.J&&Xb(this),a=Yb(this,this.cb),this.L==Gb)Zb(this.w,this.Ca,a);else{var b=this.b,c=this.Ca;b.K++;b.sc(mc(b,c,4),a);b.K--}};
|
|
|
|
|
k.zd=function(a){a||this.b.C.W||(this.K&&Xb(this),a=this.L==Gb?nc(this.w,this.Ca):oc(this.b,this.Ca),Yb(this,a))};k.Bd=function(a){a||this.b.C.W||pc(this,this.cb)};k.Ad=function(a){a?(this.G=!0,Nb(this,!0)):(this.G=!1,Nb(this),qc(this,0))};k.Ed=function(a,b){this.cb=a?this.cb|1<<b:this.cb&~(1<<b)};function Xb(a){var b=1145>a.b.jb?8:16,c=65472<=a.Ca&&a.Ca<65472+b,b=c?1:2,c=c?15:a.w.Eb;Hb(a,"STEP")||(b=-b);pc(a,a.Ca&~c|a.Ca+b&c)}
|
|
|
|
|
function pc(a,b){a.Ca=b&a.w.Eb;b=a.Ca;for(var c=0;22>c;c++)rc(a,"A"+c,b&1<<c)}function Yb(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)rc(a,"D"+c,b&1<<c);return a.v}function rc(a,b,c){a.g[b]=c;a.G||Qb(a,b,c)}function sc(a){return void 0!==a.D.S0}function qc(a,b){if(sc(a)){a.cb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Ob(a)}}k.stop=function(){pc(this,this.b.u[7])};k.qc=function(a){this.Ca=a};k.setData=function(a,b){b?this.yb=a:this.v=a};k.Fd=function(a,b){return(b?this.yb:this.cb)&65535};
|
|
|
|
|
k.Fe=function(a){this.yb=a};var tc={},Lb=(tc[65400]=[null,null,Fb.prototype.Fd,Fb.prototype.Fe,"CNSW"],tc);function Pb(){for(var a=!1,b=F(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),f=ob(e.id);f||(a=!0,f=new Fb(e));E(f,d);a&&J(f)}}bb(Pb);
|
|
|
|
|
function uc(a,b,c){x.call(this,"Bus",a,uc,16);this.b=b;this.j=c;this.M=a.busWidth||16;this.B=1<<this.M;this.Eb=this.B-1;this.Ga=vc;this.pa=Math.log2(this.Ga);this.L=this.Ga>>2;this.w=this.Ga-1;this.v=this.B/this.Ga|0;this.hb=[];this.qa=0;this.A=!1;this.F=[];this.hd=[wc,xc,yc,zc];a=new K(this);Ac(a,this.j);this.ea=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.ea[b]=this.f[b]=a;a=this.B-vc;Bc(this,a,vc,Cc,this);this.K=this.J=(a&this.Eb)>>>this.pa;this.G=0;this.g=this.Eb;J(this)}B(uc);
|
|
|
|
|
var vc=8192,Dc=vc-1;function wc(a,b){var c=-1,d=this.controller,e=d.hb[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.hb[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.j&&I(this.j,16|e[5])&&G(this.j,e[4]+".readByte("+L(this.j,b)+"): "+L(this.j,c),!0,!d.qa),c;d.Ma(b,16,3);c=255;this.j&&I(this.j,16)&&G(this.j,"warning: unconverted read access to byte @"+L(this.j,b)+": "+L(this.j,c),!0,!d.qa);return c}
|
|
|
|
|
function xc(a,b,c){var d=!1,e=this.controller,f=e.hb[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.hb[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.j&&I(this.j,16|f[5])&&G(this.j,f[4]+".writeByte("+L(this.j,c)+","+L(this.j,b)+")",!0,!e.qa):(e.Ma(c,16,5),this.j&&I(this.j,16)&&G(this.j,"warning: unconverted write access to byte @"+L(this.j,c)+": "+L(this.j,
|
|
|
|
|
b),!0,!e.qa))}function yc(a,b){var c=-1,d=this.controller;a=d.hb[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.j&&I(this.j,16|a[5])&&G(this.j,a[4]+".readWord("+L(this.j,b)+"): "+L(this.j,c),!0,!d.qa),c;d.Ma(b,16,2);c=65535;this.j&&I(this.j,16)&&G(this.j,"warning: unconverted read access to word @"+L(this.j,b)+": "+L(this.j,c),!0,!d.qa);return c}
|
|
|
|
|
function zc(a,b,c){var d=!1,e=this.controller;a=e.hb[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.j&&I(this.j,16|a[5])&&G(this.j,a[4]+".writeWord("+L(this.j,c)+","+L(this.j,b)+")",!0,!e.qa):(e.Ma(c,16,4),this.j&&I(this.j,16)&&G(this.j,"warning: unconverted write access to word @"+L(this.j,c)+": "+L(this.j,b),!0,!e.qa))}
|
|
|
|
|
function Ec(a,b){if(b!=a.G){for(var c=0;c<a.v;c++)a.f[c]=a.ea[c];a.G=0;a.g=a.Eb;b&&(a.G=b,b=1<<b,a.g=b-1,b-=vc,a.K=(b&a.g)>>>a.pa,a.f[a.K]=a.ea[a.J])}}k=uc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Ec(this,16)};k.Ia=function(a,b){b||this.reset();return!0};
|
|
|
|
|
function Bc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.pa;0<g&&h<a.ea.length;){var l=a.ea[h],m=h*a.Ga,n=a.Ga-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.H)return l.Lb+=l.H-f,l.H=f,!0;if(f>=l.H+l.Lb){n=l.size-(f-m);n>g&&(n=g);l.Lb=f-l.H+n;f=m+a.Ga;g-=n;h++;continue}}return Fc(1,f,g)}f=new K(a,f,n,a.Ga,d,e);Ac(f,a.j,l);a.ea[h++]=f;f=m+a.Ga;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Gc[d]+" at "+na(b)),!0):Fc(2,b,c)}k.bc=function(a){return this.f[(a&this.g)>>>this.pa].cc(a&this.w,a)};
|
|
|
|
|
function Hc(a,b){return a.ea[(b&a.Eb)>>>a.pa]}k.ua=function(a){return this.f[(a&this.g)>>>this.pa].Ba(a&this.w,a)};function nc(a,b){a.A=!1;a.qa++;b=Hc(a,b).K(b&a.w,b);a.qa--;return b}k.Kb=function(a,b){this.f[(a&this.g)>>>this.pa].fc(a&this.w,b&255,a)};function Ic(a,b,c){a.A=!1;a.qa++;Hc(a,b).G(b&a.w,c&255,b);a.qa--}k.zb=function(a,b){this.f[(a&this.g)>>>this.pa].Yb(a&this.w,b&65535,a)};function Zb(a,b,c){a.A=!1;a.qa++;Hc(a,b).M(b&a.w,c&65535,b);a.qa--}
|
|
|
|
|
function Jc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.ea[d];if(e.ab||e.rd){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Kc(a){for(var b=Lc,c=0,d=0;d<a.ea.length;d++){var e=a.ea[d];e.type==b&&(c=e.H+e.Lb)}return c}
|
|
|
|
|
function Mc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&Dc;if(void 0!==a.hb[m])return v("I/O address already registered: "+p(b,8,!0)),!1;a.hb[m]=[d,e,f,g,l||"unknown",h||16,!1]}return!0}
|
|
|
|
|
function Kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.jb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],w=g[5]||1,t=0;t<w;t++,f+=2)if(r&&1<w&&(r=g[4]+t),!Mc(a,f,f,h,l,m,n,g[7]||b.oa,r||b.fb))return!1}}return!0}
|
|
|
|
|
function Mb(a,b){a.F.push(b)}k.Ma=function(a,b,c){this.A=!0;this.qa||(this.j&&I(this.j,4)&&G(this.j,"memory fault ("+c+") on "+L(this.j,a),!0,!0),b&&(this.b.ra|=b),this.b.sa(4,0,a))};function Nc(a){var b=a.A;a.A=!1;return b}function Fc(a,b,c){v("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}function M(a){x.call(this,"Device",a,M,256);this.f={xg:0,rc:-1}}B(M);k=M.prototype;
|
|
|
|
|
k.Fa=function(a,b,c,d){this.w=b;this.A=a;this.b=c;this.j=d;var e=this;this.f.rc=Oc(c,function(){e.f.Db|=128;e.f.Db&64&&Pc(e.b,e.f.Cb);e.A&&e.A.xa(1);Qc(e.b,e.f.rc,1E3/60)});this.f.Cb=Rc(c,64,6,524288);Kb(b,this,Sc);Mb(b,this.reset.bind(this));d&&Tc(d,64,function(a){var b=e.b;N(e,"KIPDR",b.R[0],0,a[0]);N(e,"KDPDR",b.R[0],8,a[0]);N(e,"KIPAR",b.ja[0],0,a[0]);N(e,"KDPAR",b.ja[0],8,a[0],!0);N(e,"SIPDR",b.R[1],0,a[0]);N(e,"SDPDR",b.R[1],8,a[0]);N(e,"SIPAR",b.ja[1],0,a[0]);N(e,"SDPAR",b.ja[1],8,a[0],!0);
|
|
|
|
|
N(e,"UIPDR",b.R[3],0,a[0]);N(e,"UDPDR",b.R[3],8,a[0]);N(e,"UIPAR",b.ja[3],0,a[0]);N(e,"UDPAR",b.ja[3],8,a[0],!0)});J(this)};function N(a,b,c,d,e,f){a=a.j;if(!(e&&0>b.indexOf(e.toUpperCase()))){b+=":";for(e=0;8>e;e++)b+=" "+L(a,c[d+e]);a.i(b+(f?"\n":""))}}k.reset=function(){this.f.Db=128;Qc(this.b,this.f.rc,1E3/60,!0)};k.Md=function(){return this.f.Db};k.Me=function(a){this.f.Db=a&192;this.f.Db&64||bd(this.b,this.f.Cb)};k.Od=function(){return cd(this.b)};
|
|
|
|
|
k.Oe=function(a){dd(this.b,a&-129|this.b.Ea&128)};k.Pd=function(){return ed(this.b)};k.Qd=function(){return fd(this.b)};k.Rd=function(){return this.b.Wa};k.Pe=function(a){gd(this.b,a)};k.ye=function(a){a=a>>1&63;var b=this.b.Wb[a>>1];return a&1?b>>16:b&65535};k.yf=function(a,b){b=b>>1&63;var c=b>>1;this.b.Wb[c]=b&1?this.b.Wb[c]&65535|(a&63)<<16:this.b.Wb[c]&-65536|a&65534};k.re=function(a){return this.b.R[1][a>>1&7]};k.rf=function(a,b){this.b.R[1][b>>1&7]=a&65295};
|
|
|
|
|
k.pe=function(a){return this.b.R[1][(a>>1&7)+8]};k.pf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.qe=function(a){return this.b.ja[1][a>>1&7]};k.qf=function(a,b){b=b>>1&7;this.b.ja[1][b]=a;this.b.R[1][b]&=65295};k.oe=function(a){return this.b.ja[1][(a>>1&7)+8]};k.nf=function(a,b){b=(b>>1&7)+8;this.b.ja[1][b]=a;this.b.R[1][b]&=65295};k.Ld=function(a){return this.b.R[0][a>>1&7]};k.Le=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Jd=function(a){return this.b.R[0][(a>>1&7)+8]};
|
|
|
|
|
k.Je=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Kd=function(a){return this.b.ja[0][a>>1&7]};k.Ke=function(a,b){b=b>>1&7;this.b.ja[0][b]=a;this.b.R[0][b]&=65295};k.Id=function(a){return this.b.ja[0][(a>>1&7)+8]};k.Ie=function(a,b){b=(b>>1&7)+8;this.b.ja[0][b]=a;this.b.R[0][b]&=65295};k.xe=function(a){return this.b.R[3][a>>1&7]};k.xf=function(a,b){this.b.R[3][b>>1&7]=a&65295};k.ve=function(a){return this.b.R[3][(a>>1&7)+8]};k.vf=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};
|
|
|
|
|
k.we=function(a){return this.b.ja[3][a>>1&7]};k.wf=function(a,b){b=b>>1&7;this.b.ja[3][b]=a;this.b.R[3][b]&=65295};k.ue=function(a){return this.b.ja[3][(a>>1&7)+8]};k.uf=function(a,b){b=(b>>1&7)+8;this.b.ja[3][b]=a;this.b.R[3][b]&=65295};k.Hb=function(a){a&=7;return this.b.O&2048?this.b.eb[a]:this.b.u[a]};k.Mb=function(a,b){b&=7;this.b.O&2048?this.b.eb[b]=a:this.b.u[b]=a};k.Wd=function(){return this.b.O&49152?this.b.Oa[0]:this.b.u[6]};k.Ue=function(a){this.b.O&49152?this.b.Oa[0]=a:this.b.u[6]=a};
|
|
|
|
|
k.Zd=function(){return this.b.u[7]};k.Xe=function(a){this.b.u[7]=a};k.Ib=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.eb[a]};k.Nb=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.eb[b]=a};k.Xd=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[1]};k.Ve=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[1]=a};k.Yd=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Oa[3]};k.We=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Oa[3]=a};
|
|
|
|
|
k.Hd=function(a){return this.b.Nc[a-65504>>1]};k.He=function(a,b){this.b.Nc[b-65504>>1]=a};k.Kc=function(a){return 65520==a?(Kc(this.w)>>6)-1:0};k.Qc=function(){};k.te=function(){return 1};k.tf=function(){};k.Gd=function(){return this.b.ra};k.Ge=function(){this.b.ra=0};k.Nd=function(){return this.b.Mc};k.Ne=function(a,b){b&1||(a&=255);this.b.Mc=a};k.Sd=function(a,b){return b?0:this.b.Jb};k.Qe=function(a){hd(this.b,a)};k.se=function(a,b){return b?0:this.b.mb&65280};k.sf=function(a){this.b.mb=a|255};
|
|
|
|
|
k.Vd=function(){return id(this.b)};k.Te=function(a){jd(this.b,a&-1793|id(this.b)&1792);this.b.I|=512};k.Pc=function(a,b){I(this)&&G(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)};
|
|
|
|
|
var O={},Sc=(O[61568]=[null,null,M.prototype.ye,M.prototype.yf,"UNIMAP",64,1170],O[62592]=[null,null,M.prototype.re,M.prototype.rf,"SIPDR",8,1145,64],O[62608]=[null,null,M.prototype.pe,M.prototype.pf,"SDPDR",8,1145,64],O[62624]=[null,null,M.prototype.qe,M.prototype.qf,"SIPAR",8,1145,64],O[62640]=[null,null,M.prototype.oe,M.prototype.nf,"SDPAR",8,1145,64],O[62656]=[null,null,M.prototype.Ld,M.prototype.Le,"KIPDR",8,1145,64],O[62672]=[null,null,M.prototype.Jd,M.prototype.Je,"KDPDR",8,1145,64],O[62688]=
|
|
|
|
|
[null,null,M.prototype.Kd,M.prototype.Ke,"KIPAR",8,1145,64],O[62704]=[null,null,M.prototype.Id,M.prototype.Ie,"KDPAR",8,1145,64],O[62798]=[null,null,M.prototype.Rd,M.prototype.Pe,"MMR3",1,1145,64],O[65382]=[null,null,M.prototype.Md,M.prototype.Me,"LKS"],O[65402]=[null,null,M.prototype.Od,M.prototype.Oe,"MMR0",1,1145,64],O[65404]=[null,null,M.prototype.Pd,M.prototype.Pc,"MMR1",1,1145,64],O[65406]=[null,null,M.prototype.Qd,M.prototype.Pc,"MMR2",1,1145,64],O[65408]=[null,null,M.prototype.xe,M.prototype.xf,
|
|
|
|
|
"UIPDR",8,1145,64],O[65424]=[null,null,M.prototype.ve,M.prototype.vf,"UDPDR",8,1145,64],O[65440]=[null,null,M.prototype.we,M.prototype.wf,"UIPAR",8,1145,64],O[65456]=[null,null,M.prototype.ue,M.prototype.uf,"UDPAR",8,1145,64],O[65472]=[null,null,M.prototype.Hb,M.prototype.Mb,"R0SET0"],O[65473]=[null,null,M.prototype.Hb,M.prototype.Mb,"R1SET0"],O[65474]=[null,null,M.prototype.Hb,M.prototype.Mb,"R2SET0"],O[65475]=[null,null,M.prototype.Hb,M.prototype.Mb,"R3SET0"],O[65476]=[null,null,M.prototype.Hb,
|
|
|
|
|
M.prototype.Mb,"R4SET0"],O[65477]=[null,null,M.prototype.Hb,M.prototype.Mb,"R5SET0"],O[65478]=[null,null,M.prototype.Wd,M.prototype.Ue,"R6KERNEL"],O[65479]=[null,null,M.prototype.Zd,M.prototype.Xe,"R7KERNEL"],O[65480]=[null,null,M.prototype.Ib,M.prototype.Nb,"R0SET1",1,1145],O[65481]=[null,null,M.prototype.Ib,M.prototype.Nb,"R1SET1",1,1145],O[65482]=[null,null,M.prototype.Ib,M.prototype.Nb,"R2SET1",1,1145],O[65483]=[null,null,M.prototype.Ib,M.prototype.Nb,"R3SET1",1,1145],O[65484]=[null,null,M.prototype.Ib,
|
|
|
|
|
M.prototype.Nb,"R4SET1",1,1145],O[65485]=[null,null,M.prototype.Ib,M.prototype.Nb,"R5SET1",1,1145],O[65486]=[null,null,M.prototype.Xd,M.prototype.Ve,"R6SUPER",1,1145],O[65487]=[null,null,M.prototype.Yd,M.prototype.We,"R6USER",1,1145],O[65504]=[null,null,M.prototype.Hd,M.prototype.He,"CTRL",8,1170],O[65520]=[null,null,M.prototype.Kc,M.prototype.Qc,"LSIZE",1,1170],O[65522]=[null,null,M.prototype.Kc,M.prototype.Qc,"HSIZE",1,1170],O[65524]=[null,null,M.prototype.te,M.prototype.tf,"SYSID",1,1170],O[65526]=
|
|
|
|
|
[null,null,M.prototype.Gd,M.prototype.Ge,"CPUERR",1,1170],O[65528]=[null,null,M.prototype.Nd,M.prototype.Ne,"MB",1,1170],O[65530]=[null,null,M.prototype.Sd,M.prototype.Qe,"PIR"],O[65532]=[null,null,M.prototype.se,M.prototype.sf,"SL"],O[65534]=[null,null,M.prototype.Vd,M.prototype.Te,"PSW"],O);
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new M(c);E(c,d);break;case "pc11":c=new kd(c);E(c,d);break;case "rl11":c=new P(c);E(c,d);break;case "rk11":c=new Q(c),E(c,d)}}});var ld;if(Bb){var md=new ArrayBuffer(2);(new DataView(md)).setUint16(0,256,!0);ld=256===(new Uint16Array(md))[0]}else ld=!1;var nd=ld;
|
|
|
|
|
function K(a,b,c,d,e,f){this.w=a;this.id=od+=2;this.b=null;this.H=b;this.Lb=c;this.size=d||0;this.type=e||pd;this.f=e==qd;this.controller=null;Ac(this);this.ab=this.rd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],rd(this,f.hd);else if(Bb)this.B=new ArrayBuffer(this.size),this.F=new DataView(this.B,0,this.size),this.D=new Uint8Array(this.B,0,this.size),this.P=new Uint16Array(this.B,0,this.size>>1),this.b=new Int32Array(this.B,0,this.size>>2),rd(this,nd?sd:td);else{a=this.b=Array(this.size>>
|
|
|
|
|
function Ib(a,b){var c=a.f[b];Rb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);"STEP"!=b&&(a.I="DEP"==b,a.J="EXAM"==b)}function Jb(a,b){var c=a.f[b];c[2]&&c[3]&&(Rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}k.Ed=function(a){a||this.b.C.X||(a=this.b,a.w.reset(),Tb(a),Hb(this,"ENABLE")&&this.b.pb())};k.Fd=function(){};k.Ad=function(a){a||this.b.ba()};
|
|
|
|
|
k.yd=function(a){if(!a&&!this.b.C.X)if(Hb(this,"ENABLE"))this.b.pb();else{if((a=this.j)&&!xb(a,!0))wb(a,!0),a.qb(0,null),wb(a,!1);else try{var b=this.b.qb(1);0<b&&(Ub(this.b,b),Vb(this.b,b,!0),Wb(this.b,b))}catch(c){"number"!=typeof c&&Ab(this.b,c.stack||c.message)}this.stop();this.A&&this.A.xa()}};k.zd=function(a){if(a&&!this.b.C.X)if(this.I&&Xb(this),a=kc(this,this.eb),this.K==Gb)lc(this.w,this.Ca,a);else{var b=this.b,c=this.Ca;b.J++;b.uc(mc(b,c,4),a);b.J--}};
|
|
|
|
|
k.Bd=function(a){a||this.b.C.X||(this.J&&Xb(this),a=this.K==Gb?nc(this.w,this.Ca):oc(this.b,this.Ca),kc(this,a))};k.Dd=function(a){a||this.b.C.X||pc(this,this.eb)};k.Cd=function(a){a?(this.G=!0,Nb(this,!0)):(this.G=!1,Nb(this),qc(this,0))};k.Gd=function(a,b){this.eb=a?this.eb|1<<b:this.eb&~(1<<b)};function Xb(a){var b=1145>a.b.kb?8:16,c=65472<=a.Ca&&a.Ca<65472+b,b=c?1:2,c=c?15:a.w.Gb;Hb(a,"STEP")||(b=-b);pc(a,a.Ca&~c|a.Ca+b&c)}
|
|
|
|
|
function pc(a,b){a.Ca=b&a.w.Gb;b=a.Ca;for(var c=0;22>c;c++)rc(a,"A"+c,b&1<<c)}function kc(a,b){a.v=b&65535;b=a.v;for(var c=0;16>c;c++)rc(a,"D"+c,b&1<<c);return a.v}function rc(a,b,c){a.g[b]=c;a.G||Qb(a,b,c)}function sc(a){return void 0!==a.D.S0}function qc(a,b){if(sc(a)){a.eb=b;for(var c=0;22>c;c++)a.f["S"+c][1]=b&1<<c?1:0;Ob(a)}}k.stop=function(){pc(this,this.b.u[7])};k.sc=function(a){this.Ca=a};k.setData=function(a,b){b?this.Ab=a:this.v=a};k.Hd=function(a,b){return(b?this.Ab:this.eb)&65535};
|
|
|
|
|
k.He=function(a){this.Ab=a};var tc={},Lb=(tc[65400]=[null,null,Fb.prototype.Hd,Fb.prototype.He,"CNSW"],tc);function Pb(){for(var a=!1,b=F(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=D(d),f=ob(e.id);f||(a=!0,f=new Fb(e));E(f,d);a&&J(f)}}bb(Pb);
|
|
|
|
|
function uc(a,b,c){x.call(this,"Bus",a,uc,16);this.b=b;this.j=c;this.M=a.busWidth||16;this.B=1<<this.M;this.Gb=this.B-1;this.Ha=vc;this.pa=Math.log2(this.Ha);this.K=this.Ha>>2;this.w=this.Ha-1;this.v=this.B/this.Ha|0;this.ib=[];this.qa=0;this.A=!1;this.F=[];this.kd=[wc,xc,yc,zc];a=new K(this);Ac(a,this.j);this.ea=Array(this.v);this.f=Array(this.v);for(b=0;b<this.v;b++)this.ea[b]=this.f[b]=a;a=this.B-vc;Bc(this,a,vc,Cc,this);this.J=this.I=(a&this.Gb)>>>this.pa;this.G=0;this.g=this.Gb;J(this)}B(uc);
|
|
|
|
|
var vc=8192,Dc=vc-1;function wc(a,b){var c=-1,d=this.controller,e=d.ib[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.ib[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.j&&I(this.j,16|e[5])&&G(this.j,e[4]+".readByte("+L(this.j,b)+"): "+L(this.j,c),!0,!d.qa),c;d.Na(b,16,3);c=255;this.j&&I(this.j,16)&&G(this.j,"warning: unconverted read access to byte @"+L(this.j,b)+": "+L(this.j,c),!0,!d.qa);return c}
|
|
|
|
|
function xc(a,b,c){var d=!1,e=this.controller,f=e.ib[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.ib[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.j&&I(this.j,16|f[5])&&G(this.j,f[4]+".writeByte("+L(this.j,c)+","+L(this.j,b)+")",!0,!e.qa):(e.Na(c,16,5),this.j&&I(this.j,16)&&G(this.j,"warning: unconverted write access to byte @"+L(this.j,c)+": "+L(this.j,
|
|
|
|
|
b),!0,!e.qa))}function yc(a,b){var c=-1,d=this.controller;a=d.ib[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.j&&I(this.j,16|a[5])&&G(this.j,a[4]+".readWord("+L(this.j,b)+"): "+L(this.j,c),!0,!d.qa),c;d.Na(b,16,2);c=65535;this.j&&I(this.j,16)&&G(this.j,"warning: unconverted read access to word @"+L(this.j,b)+": "+L(this.j,c),!0,!d.qa);return c}
|
|
|
|
|
function zc(a,b,c){var d=!1,e=this.controller;a=e.ib[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.j&&I(this.j,16|a[5])&&G(this.j,a[4]+".writeWord("+L(this.j,c)+","+L(this.j,b)+")",!0,!e.qa):(e.Na(c,16,4),this.j&&I(this.j,16)&&G(this.j,"warning: unconverted write access to word @"+L(this.j,c)+": "+L(this.j,b),!0,!e.qa))}
|
|
|
|
|
function Ec(a,b){if(b!=a.G){for(var c=0;c<a.v;c++)a.f[c]=a.ea[c];a.G=0;a.g=a.Gb;b&&(a.G=b,b=1<<b,a.g=b-1,b-=vc,a.J=(b&a.g)>>>a.pa,a.f[a.J]=a.ea[a.I])}}k=uc.prototype;k.reset=function(){for(var a=0;a<this.F.length;a++)this.F[a]();Ec(this,16)};k.Ja=function(a,b){b||this.reset();return!0};
|
|
|
|
|
function Bc(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.pa;0<g&&h<a.ea.length;){var l=a.ea[h],m=h*a.Ha,n=a.Ha-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.H)return l.Nb+=l.H-f,l.H=f,!0;if(f>=l.H+l.Nb){n=l.size-(f-m);n>g&&(n=g);l.Nb=f-l.H+n;f=m+a.Ha;g-=n;h++;continue}}return Fc(1,f,g)}f=new K(a,f,n,a.Ha,d,e);Ac(f,a.j,l);a.ea[h++]=f;f=m+a.Ha;g-=n}return 0>=g?(a.status((c>>10)+"Kb "+Gc[d]+" at "+na(b)),!0):Fc(2,b,c)}k.dc=function(a){return this.f[(a&this.g)>>>this.pa].ec(a&this.w,a)};
|
|
|
|
|
k.ua=function(a){return this.f[(a&this.g)>>>this.pa].Ba(a&this.w,a)};k.Mb=function(a,b){this.f[(a&this.g)>>>this.pa].hc(a&this.w,b,a)};k.Bb=function(a,b){this.f[(a&this.g)>>>this.pa].$b(a&this.w,b,a)};function Hc(a,b){return a.ea[(b&a.Gb)>>>a.pa]}function nc(a,b){a.A=!1;a.qa++;b=Hc(a,b).J(b&a.w,b);a.qa--;return b}function Ic(a,b,c){a.A=!1;a.qa++;Hc(a,b).G(b&a.w,c&255,b);a.qa--}function lc(a,b,c){a.A=!1;a.qa++;Hc(a,b).M(b&a.w,c&65535,b);a.qa--}
|
|
|
|
|
function Jc(a){for(var b=0,c=[],d=0;d<a.v;d++){var e=a.ea[d];if(e.bb||e.td){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function Kc(a){for(var b=Lc,c=0,d=0;d<a.ea.length;d++){var e=a.ea[d];e.type==b&&(c=e.H+e.Nb)}return c}
|
|
|
|
|
function Mc(a,b,c,d,e,f,g,h,l){for(;b<=c;b+=2){var m=b&Dc;if(void 0!==a.ib[m])return v("I/O address already registered: "+p(b,8,!0)),!1;a.ib[m]=[d,e,f,g,l||"unknown",h||16,!1]}return!0}
|
|
|
|
|
function Kb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.b.kb)){var h=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!h&&m&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var r=g[4],w=g[5]||1,t=0;t<w;t++,f+=2)if(r&&1<w&&(r=g[4]+t),!Mc(a,f,f,h,l,m,n,g[7]||b.oa,r||b.gb))return!1}}return!0}
|
|
|
|
|
function Mb(a,b){a.F.push(b)}k.Na=function(a,b,c){this.A=!0;this.qa||(this.j&&I(this.j,4)&&G(this.j,"memory fault ("+c+") on "+L(this.j,a),!0,!0),b&&(this.b.ra|=b),this.b.sa(4,0,a))};function Nc(a){var b=a.A;a.A=!1;return b}function Fc(a,b,c){v("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}function M(a){x.call(this,"Device",a,M,256);this.f={zg:0,tc:-1}}B(M);k=M.prototype;
|
|
|
|
|
k.Ga=function(a,b,c,d){this.w=b;this.A=a;this.b=c;this.j=d;var e=this;this.f.tc=Oc(c,function(){e.f.Fb|=128;e.f.Fb&64&&Pc(e.b,e.f.Eb);e.A&&e.A.xa(1);Qc(e.b,e.f.tc,1E3/60)});this.f.Eb=Rc(c,64,6,524288);Kb(b,this,$c);Mb(b,this.reset.bind(this));d&&ad(d,64,function(a){var b=e.b;N(e,"KIPDR",b.R[0],0,a[0]);N(e,"KDPDR",b.R[0],8,a[0]);N(e,"KIPAR",b.ja[0],0,a[0]);N(e,"KDPAR",b.ja[0],8,a[0],!0);N(e,"SIPDR",b.R[1],0,a[0]);N(e,"SDPDR",b.R[1],8,a[0]);N(e,"SIPAR",b.ja[1],0,a[0]);N(e,"SDPAR",b.ja[1],8,a[0],!0);
|
|
|
|
|
N(e,"UIPDR",b.R[3],0,a[0]);N(e,"UDPDR",b.R[3],8,a[0]);N(e,"UIPAR",b.ja[3],0,a[0]);N(e,"UDPAR",b.ja[3],8,a[0],!0)});J(this)};function N(a,b,c,d,e,f){a=a.j;if(!(e&&0>b.indexOf(e.toUpperCase()))){b+=":";for(e=0;8>e;e++)b+=" "+L(a,c[d+e]);a.i(b+(f?"\n":""))}}k.reset=function(){this.f.Fb=128;Qc(this.b,this.f.tc,1E3/60,!0)};k.Od=function(){return this.f.Fb};k.Oe=function(a){this.f.Fb=a&192;this.f.Fb&64||bd(this.b,this.f.Eb)};k.Qd=function(){return cd(this.b)};
|
|
|
|
|
k.Qe=function(a){dd(this.b,a&-129|this.b.Ea&128)};k.Rd=function(){return ed(this.b)};k.Sd=function(){return fd(this.b)};k.Td=function(){return this.b.Xa};k.Re=function(a){gd(this.b,a)};k.Ae=function(a){a=a>>1&63;var b=this.b.Yb[a>>1];return a&1?b>>16:b&65535};k.Af=function(a,b){b=b>>1&63;var c=b>>1;this.b.Yb[c]=b&1?this.b.Yb[c]&65535|(a&63)<<16:this.b.Yb[c]&-65536|a&65534};k.te=function(a){return this.b.R[1][a>>1&7]};k.tf=function(a,b){this.b.R[1][b>>1&7]=a&65295};
|
|
|
|
|
k.re=function(a){return this.b.R[1][(a>>1&7)+8]};k.rf=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};k.se=function(a){return this.b.ja[1][a>>1&7]};k.sf=function(a,b){b=b>>1&7;this.b.ja[1][b]=a;this.b.R[1][b]&=65295};k.qe=function(a){return this.b.ja[1][(a>>1&7)+8]};k.qf=function(a,b){b=(b>>1&7)+8;this.b.ja[1][b]=a;this.b.R[1][b]&=65295};k.Nd=function(a){return this.b.R[0][a>>1&7]};k.Ne=function(a,b){this.b.R[0][b>>1&7]=a&65295};k.Ld=function(a){return this.b.R[0][(a>>1&7)+8]};
|
|
|
|
|
k.Le=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};k.Md=function(a){return this.b.ja[0][a>>1&7]};k.Me=function(a,b){b=b>>1&7;this.b.ja[0][b]=a;this.b.R[0][b]&=65295};k.Kd=function(a){return this.b.ja[0][(a>>1&7)+8]};k.Ke=function(a,b){b=(b>>1&7)+8;this.b.ja[0][b]=a;this.b.R[0][b]&=65295};k.ze=function(a){return this.b.R[3][a>>1&7]};k.zf=function(a,b){this.b.R[3][b>>1&7]=a&65295};k.xe=function(a){return this.b.R[3][(a>>1&7)+8]};k.xf=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};
|
|
|
|
|
k.ye=function(a){return this.b.ja[3][a>>1&7]};k.yf=function(a,b){b=b>>1&7;this.b.ja[3][b]=a;this.b.R[3][b]&=65295};k.we=function(a){return this.b.ja[3][(a>>1&7)+8]};k.wf=function(a,b){b=(b>>1&7)+8;this.b.ja[3][b]=a;this.b.R[3][b]&=65295};k.Jb=function(a){a&=7;return this.b.O&2048?this.b.fb[a]:this.b.u[a]};k.Ob=function(a,b){b&=7;this.b.O&2048?this.b.fb[b]=a:this.b.u[b]=a};k.Yd=function(){return this.b.O&49152?this.b.Pa[0]:this.b.u[6]};k.We=function(a){this.b.O&49152?this.b.Pa[0]=a:this.b.u[6]=a};
|
|
|
|
|
k.ae=function(){return this.b.u[7]};k.Ze=function(a){this.b.u[7]=a};k.Kb=function(a){a&=7;return this.b.O&2048?this.b.u[a]:this.b.fb[a]};k.Pb=function(a,b){b&=7;this.b.O&2048?this.b.u[b]=a:this.b.fb[b]=a};k.Zd=function(){return 1==(this.b.O&49152)>>14?this.b.u[6]:this.b.Pa[1]};k.Xe=function(a){1==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Pa[1]=a};k.$d=function(){return 3==(this.b.O&49152)>>14?this.b.u[6]:this.b.Pa[3]};k.Ye=function(a){3==(this.b.O&49152)>>14?this.b.u[6]=a:this.b.Pa[3]=a};
|
|
|
|
|
k.Jd=function(a){return this.b.Pc[a-65504>>1]};k.Je=function(a,b){this.b.Pc[b-65504>>1]=a};k.Mc=function(a){return 65520==a?(Kc(this.w)>>6)-1:0};k.Sc=function(){};k.ve=function(){return 1};k.vf=function(){};k.Id=function(){return this.b.ra};k.Ie=function(){this.b.ra=0};k.Pd=function(){return this.b.Oc};k.Pe=function(a,b){b&1||(a&=255);this.b.Oc=a};k.Ud=function(a,b){return b?0:this.b.Lb};k.Se=function(a){hd(this.b,a)};k.ue=function(a,b){return b?0:this.b.nb&65280};k.uf=function(a){this.b.nb=a|255};
|
|
|
|
|
k.Xd=function(){return id(this.b)};k.Ve=function(a){jd(this.b,a&-1793|id(this.b)&1792)};k.Rc=function(a,b){I(this)&&G(this,"writeIgnored("+na(b)+"): "+na(a),!0,!0)};
|
|
|
|
|
var O={},$c=(O[61568]=[null,null,M.prototype.Ae,M.prototype.Af,"UNIMAP",64,1170],O[62592]=[null,null,M.prototype.te,M.prototype.tf,"SIPDR",8,1145,64],O[62608]=[null,null,M.prototype.re,M.prototype.rf,"SDPDR",8,1145,64],O[62624]=[null,null,M.prototype.se,M.prototype.sf,"SIPAR",8,1145,64],O[62640]=[null,null,M.prototype.qe,M.prototype.qf,"SDPAR",8,1145,64],O[62656]=[null,null,M.prototype.Nd,M.prototype.Ne,"KIPDR",8,1145,64],O[62672]=[null,null,M.prototype.Ld,M.prototype.Le,"KDPDR",8,1145,64],O[62688]=
|
|
|
|
|
[null,null,M.prototype.Md,M.prototype.Me,"KIPAR",8,1145,64],O[62704]=[null,null,M.prototype.Kd,M.prototype.Ke,"KDPAR",8,1145,64],O[62798]=[null,null,M.prototype.Td,M.prototype.Re,"MMR3",1,1145,64],O[65382]=[null,null,M.prototype.Od,M.prototype.Oe,"LKS"],O[65402]=[null,null,M.prototype.Qd,M.prototype.Qe,"MMR0",1,1145,64],O[65404]=[null,null,M.prototype.Rd,M.prototype.Rc,"MMR1",1,1145,64],O[65406]=[null,null,M.prototype.Sd,M.prototype.Rc,"MMR2",1,1145,64],O[65408]=[null,null,M.prototype.ze,M.prototype.zf,
|
|
|
|
|
"UIPDR",8,1145,64],O[65424]=[null,null,M.prototype.xe,M.prototype.xf,"UDPDR",8,1145,64],O[65440]=[null,null,M.prototype.ye,M.prototype.yf,"UIPAR",8,1145,64],O[65456]=[null,null,M.prototype.we,M.prototype.wf,"UDPAR",8,1145,64],O[65472]=[null,null,M.prototype.Jb,M.prototype.Ob,"R0SET0"],O[65473]=[null,null,M.prototype.Jb,M.prototype.Ob,"R1SET0"],O[65474]=[null,null,M.prototype.Jb,M.prototype.Ob,"R2SET0"],O[65475]=[null,null,M.prototype.Jb,M.prototype.Ob,"R3SET0"],O[65476]=[null,null,M.prototype.Jb,
|
|
|
|
|
M.prototype.Ob,"R4SET0"],O[65477]=[null,null,M.prototype.Jb,M.prototype.Ob,"R5SET0"],O[65478]=[null,null,M.prototype.Yd,M.prototype.We,"R6KERNEL"],O[65479]=[null,null,M.prototype.ae,M.prototype.Ze,"R7KERNEL"],O[65480]=[null,null,M.prototype.Kb,M.prototype.Pb,"R0SET1",1,1145],O[65481]=[null,null,M.prototype.Kb,M.prototype.Pb,"R1SET1",1,1145],O[65482]=[null,null,M.prototype.Kb,M.prototype.Pb,"R2SET1",1,1145],O[65483]=[null,null,M.prototype.Kb,M.prototype.Pb,"R3SET1",1,1145],O[65484]=[null,null,M.prototype.Kb,
|
|
|
|
|
M.prototype.Pb,"R4SET1",1,1145],O[65485]=[null,null,M.prototype.Kb,M.prototype.Pb,"R5SET1",1,1145],O[65486]=[null,null,M.prototype.Zd,M.prototype.Xe,"R6SUPER",1,1145],O[65487]=[null,null,M.prototype.$d,M.prototype.Ye,"R6USER",1,1145],O[65504]=[null,null,M.prototype.Jd,M.prototype.Je,"CTRL",8,1170],O[65520]=[null,null,M.prototype.Mc,M.prototype.Sc,"LSIZE",1,1170],O[65522]=[null,null,M.prototype.Mc,M.prototype.Sc,"HSIZE",1,1170],O[65524]=[null,null,M.prototype.ve,M.prototype.vf,"SYSID",1,1170],O[65526]=
|
|
|
|
|
[null,null,M.prototype.Id,M.prototype.Ie,"CPUERR",1,1170],O[65528]=[null,null,M.prototype.Pd,M.prototype.Pe,"MB",1,1170],O[65530]=[null,null,M.prototype.Ud,M.prototype.Se,"PIR"],O[65532]=[null,null,M.prototype.ue,M.prototype.uf,"SL"],O[65534]=[null,null,M.prototype.Xd,M.prototype.Ve,"PSW"],O);
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new M(c);E(c,d);break;case "pc11":c=new kd(c);E(c,d);break;case "rl11":c=new P(c);E(c,d);break;case "rk11":c=new R(c),E(c,d)}}});var ld;if(Bb){var md=new ArrayBuffer(2);(new DataView(md)).setUint16(0,256,!0);ld=256===(new Uint16Array(md))[0]}else ld=!1;var nd=ld;
|
|
|
|
|
function K(a,b,c,d,e,f){this.w=a;this.id=od+=2;this.b=null;this.H=b;this.Nb=c;this.size=d||0;this.type=e||pd;this.f=e==qd;this.controller=null;Ac(this);this.bb=this.td=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],rd(this,f.kd);else if(Bb)this.B=new ArrayBuffer(this.size),this.F=new DataView(this.B,0,this.size),this.D=new Uint8Array(this.B,0,this.size),this.P=new Uint16Array(this.B,0,this.size>>1),this.b=new Int32Array(this.B,0,this.size>>2),rd(this,nd?sd:td);else{a=this.b=Array(this.size>>
|
|
|
|
|
2);for(f=0;f<a.length;f++)a[f]=0;rd(this,ud)}else rd(this)}var pd=0,Lc=1,qd=2,Cc=4,Gc=["NONE","RAM","ROM","VID","H/W"],od=0;
|
|
|
|
|
K.prototype={constructor:K,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Bb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.ab=!0}return!1},tb:function(a,b){b?this.g++||vd(this,wd,!1):this.A++||xd(this,wd,!1)},S:function(a,b){this.j&&I(this.j,32)&&G(this.j,
|
|
|
|
|
"attempt to read invalid address "+L(this.j,b),!0);this.w.Ma(b,32,2);return 255},v:function(a,b,c){this.j&&I(this.j,32)&&G(this.j,"attempt to write "+L(this.j,b)+" to invalid addresses "+L(this.j,c),!0);this.w.Ma(c,32,4)},T:function(a,b){return this.cc(a++,b++)|this.cc(a,b)<<8},L:function(a,b,c){this.fc(a++,b&255,c++);this.fc(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ya:function(a,b){a&1&&this.w.Ma(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
|
|
|
|
|
1]&255)<<8},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.ab=!0},Za:function(a,b,c){a&1&&this.w.Ma(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.ab=!0},gb:function(a,b){if(this.j&&null!=this.H){var c=this.j;yd(c,this.H+a,1,c.M)&&c.ba(!0)}return this.J(a,b)},ma:function(a,b){if(this.j&&null!=this.H){var c=this.j;yd(c,this.H+a,2,c.M)&&c.ba(!0)}return this.K(a,b)},za:function(a,
|
|
|
|
|
b,c){if(this.j&&null!=this.H){var d=this.j;yd(d,this.H+a,1,d.F)&&d.ba(!0)}this.f?this.v(a,b,c):this.G(a,b,c)},Xa:function(a,b,c){if(this.j&&null!=this.H){var d=this.j;yd(d,this.H+a,2,d.F)&&d.ba(!0)}this.f?this.v(a,b,c):this.M(a,b,c)},fb:function(a){return this.D[a]},Y:function(a,b){a=this.D[a];this.j&&I(this.j,32)&&G(this.j,"Memory.readByte("+L(this.j,b)+"): "+L(this.j,a),!0);return a},da:function(a,b){a&1&&this.w.Ma(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Ma(b,64,2);a=
|
|
|
|
|
this.P[a>>1];this.j&&I(this.j,32)&&G(this.j,"Memory.readWord("+L(this.j,b)+"): "+L(this.j,a),!0);return a},ta:function(a,b){this.D[a]=b;this.ab=!0},Ka:function(a,b,c){this.D[a]=b;this.ab=!0;this.j&&I(this.j,32)&&G(this.j,"Memory.writeByte("+L(this.j,c)+","+L(this.j,b)+")",!0)},Qa:function(a,b,c){a&1&&this.w.Ma(c,64,4);this.F.setUint16(a,b,!0);this.ab=!0},Ya:function(a,b,c){a&1&&this.w.Ma(c,64,4);this.P[a>>1]=b;this.ab=!0;this.j&&I(this.j,32)&&G(this.j,"Memory.writeWord("+L(this.j,c)+","+L(this.j,
|
|
|
|
|
b)+")",!0)}};function Ac(a,b,c){a.j=b;a.A=a.g=0;c&&((a.A=c.A)&&xd(a,wd,!1),(a.g=c.g)&&vd(a,wd,!1))}function zd(a,b){b?--a.g||(a.fc=a.f?a.v:a.G,a.Yb=a.f?a.L:a.M):--a.A||(a.cc=a.J,a.Ba=a.K)}function vd(a,b,c){c&&a.g||(a.fc=!a.f&&b[1]||a.v,a.Yb=!a.f&&b[3]||a.L);if(c||void 0===c)a.G=b[1]||a.v,a.M=b[3]||a.L}function xd(a,b,c){c&&a.A||(a.cc=b[0]||a.S,a.Ba=b[2]||a.T);if(c||void 0===c)a.J=b[0]||a.S,a.K=b[2]||a.T}function rd(a,b){b||(b=Ad);xd(a,b,void 0);vd(a,b,void 0)}
|
|
|
|
|
var Ad=[],ud=[K.prototype.ca,K.prototype.Pa,K.prototype.ya,K.prototype.Za],wd=[K.prototype.gb,K.prototype.za,K.prototype.ma,K.prototype.Xa];if(Bb)var td=[K.prototype.fb,K.prototype.ta,K.prototype.da,K.prototype.Qa],sd=[K.prototype.Y,K.prototype.Ka,K.prototype.na,K.prototype.Ya];
|
|
|
|
|
function Bd(a,b){x.call(this,"CPU",a,Bd,1);b=a.cycles||b;var c=a.multiplier||1;this.Ob=0;this.qb=b;this.kb=c;this.gc=Math.round(this.qb/1E4)/100;this.xb=this.gc*this.kb;this.C.W=!1;this.C.ec=!1;this.C.Ab=a.autoStart;this.C.Bb=!1;this.Tb=this.ya=0;this.Ub=a.csStart;this.Fb=a.csInterval;this.Gb=a.csStop;this.M=[];this.Bc=this.De.bind(this);J(this)}B(Bd);var Cd=["power","reset"];k=Bd.prototype;
|
|
|
|
|
k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.j=d;this.v=a.v;for(b=0;b<Cd.length;b++)(c=this.D[Cd[b]])&&this.A.wa(null,Cd[b],c);a=Dd(a,"autoStart");null!=a&&(this.C.Ab="true"==a?!0:"false"==a?!1:!!a);J(this)};k.uc=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
|
|
|
|
k.Ia=function(a,b){if(!b){this.uc();if(a&&this.restore){Ed(this);if(!this.restore(a))return!1;Fd(this)}else this.reset();this.j?(a=this.j,b=this.C.Ab,a.Ya=!0,a.i("Type ? for help with PDPjs Debugger commands"),Gd(a),b||a.nb(),a.Qa&&(b=a.Qa,a.Qa=null,Hd(a,b))):this.i("No debugger detected")}return!0};k.Ha=function(a){return a?this.save():!0};k.Ab=function(){return this.C.Ab||!this.j&&void 0===this.D.run?(this.ob(),!0):!1};k.Gc=function(){return 0};
|
|
|
|
|
function Fd(a){void 0===a.Ub&&(a.Ub=0);void 0===a.Fb&&(a.Fb=-1);void 0===a.Gb&&(a.Gb=-1);a.C.Bb=0<=a.Ub&&0<a.Fb;a.C.Bb&&(a.Tb=0,a.ya=a.Ub-a.da)}function Wb(a,b){if(a.C.Bb){var c=!1;a.Tb=a.Tb+a.Gc()|0;a.ya-=b;0>=a.ya&&(a.ya+=a.Fb,c=!0);0<=a.Gb&&a.Gb<=Id(a)&&(a.Fb=a.Gb=-1,Fd(a),a.ba(),c=!0);c&&a.i(Id(a)+" cycles: checksum="+p(a.Tb))}}
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.C.la)a=!0;else{var b=null,c,h=nb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.ac?" (waiting for notification)":""))+".");a=!1}a&&(d.C.W?d.ba():d.ob())},
|
|
|
|
|
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Jd(d,d.kb<<1,!0)},c.textContent=this.xb.toFixed(2)+"Mhz",!0}return!1};k.xa=function(a){this.A&&this.A.xa(a)};function Vb(a,b,c){a.da+=b;c&&(a.ca=a.b=a.L=0)}function Kd(a,b){var c=1;b&&1<a.kb&&a.na&&(c=a.na/a.gc);a.zc=Math.round(1E3/30);a.rb=Math.floor(a.qb/30*c);b||(a.ta=a.rb);a.hc=0}function Id(a){return a.da+a.T+a.ca-a.b}function Ed(a){a.na=0;a.Ac=0;a.da=a.T=a.ca=a.b=a.L=0;Fd(a);Jd(a,1)}
|
|
|
|
|
function Jd(a,b,c){var d=!1;if(void 0!==b){.8>a.na/a.xb?b=1:d=!0;a.kb=b;b=a.gc*a.kb;if(a.xb!=b){a.xb=b;b=a.xb.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.A&&a.A.nb()}Vb(a,a.T);a.T=0;a.S=Ba();a.Y=0;Kd(a);return d}function Oc(a,b){var c=a.M.length;a.M.push([-1,b]);return c}function Qc(a,b,c,d){0<=b&&b<a.M.length&&(d||0>a.M[b][0])&&(c=a.qb*a.kb/1E3*c|0,a.C.W&&(c+=Ld(a)),a.M[b][0]=c)}
|
|
|
|
|
function Md(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ub(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Ld(a,b){var c=a.ca-=a.b;a.b=a.L=0;b&&(a.ca=0);return c}
|
|
|
|
|
k.De=function(){if(this.C.W){this.hc>=this.qb&&Kd(this,!0);this.Qa=0;this.Za=Ba();if(this.Y){var a=this.Za-this.Y;a>this.zc&&(this.S+=a,this.S>this.Za&&(this.S=this.Za))}try{do{var b=Md(this,this.C.Bb?1:this.rb);try{this.pb(b)}catch(e){if("number"!=typeof e)throw e;}b=Ld(this,!0);this.Qa+=b;this.T+=b;Wb(this,b);Ub(this,b);this.ta-=b;if(0>=this.ta){this.ta+=this.rb;15<=++this.Ac&&(this.xa(),this.Ac=0);break}}while(this.C.W)}catch(e){this.ba();this.A&&this.A.stop(Ba(),Id(this));Ab(this,e.stack||e.message);
|
|
|
|
|
return}if(this.C.W){a=setTimeout;b=this.Bc;this.Y=Ba();var c=this.zc;this.Qa&&(c=Math.round(c*this.Qa/this.rb));var c=c-(this.Y-this.Za),d=this.Y-this.S;d&&(this.na=Math.round(this.T/(10*d))/100,864E5<=d&&(this.da=0,Jd(this)));if(0>c||this.na<this.xb)-1E3>c&&(this.S-=c),c=0;this.hc+=this.Qa;this.Y+=c;a(b,c)}}};
|
|
|
|
|
k.ob=function(a){if(zb(this))return!1;if(this.C.W)return this.i(this.toString()+" busy"),!1;Jd(this);this.C.W=!0;this.C.ec=!0;var b=this.D.run;b&&(b.textContent="Halt");this.A&&(a&&this.A.nb(!0),this.A.start(this.S,Id(this)));setTimeout(this.Bc,0);return!0};k.pb=function(){return 0};k.ba=function(a){var b=!1;if(this.C.W){Ld(this);Vb(this,this.T);this.T=0;this.C.W=!1;if(b=this.D.run)b.textContent="Run";this.A&&this.A.stop(Ba(),Id(this));b=!0}this.C.complete=a;return b};
|
|
|
|
|
function Nd(a){this.jb=+a.model||1170;this.wc=a.addrReset||0;Bd.call(this,a,6666667);this.sb=0;this.yc=255;1120==this.jb?(this.decode=Od.bind(this),this.ma=this.pd,this.sb=8,this.yc=-1):(this.decode=Pd.bind(this),this.ma=this.qd);Qd(this);this.K=0;this.J=null;this.Pb=[];this.C.complete=!1}B(Nd,Bd);k=Nd.prototype;k.uc=function(){for(var a=192,b=0;b<this.Pb.length;b++){var c=this.Pb[b];0>c.Xb&&(c.Xb=a,a+=4)}};
|
|
|
|
|
k.reset=function(){this.status("model "+this.jb);this.C.W&&this.ba();Qd(this);Ed(this);this.C.error=!1;this.parent.reset.call(this)};
|
|
|
|
|
function Qd(a){a.U=65536;a.V=32768;a.Z=65535;a.X=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.wc,-1,-2,-3,-4,-5,-6,-7,-8];a.eb=[0,0,0,0,0,0];a.Oa=[0,0,0,0];a.B=0;a.Ya=0;a.Rc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
|
|
|
|
|
0,0,0,0,0,0,0,0,0]];a.Wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.Nc=[0,0,0,0,0,0,0,0];a.Mc=0;a.I=0;a.F=a.G=0;a.g=a.f=a.Rb=0;a.za=-1;Tb(a)}function Tb(a){a.Ea=0;a.ic=0;a.jc=0;a.Wa=0;a.ra=0;a.Jb=0;a.mb=255;a.Ka=0;a.Xa=0;a.Pa=262143;a.Sb=0;a.va=0;a.J=null;a.w&&(Rd(a),a.ed=Kc(a.w))}function Rd(a){a.Ka?(a.P=65536,a.Qb=a.Wa&16?4186112:253952,a.aa=a.td,a.Ba=a.ze,a.Yb=a.zf,Ec(a.w,a.Wa&16?22:18)):(a.P=0,a.Qb=57344,a.aa=a.sd,a.Ba=a.Lc,a.Yb=a.sc,Ec(a.w,16))}
|
|
|
|
|
function cd(a){var b=a.Ea;b&57344||(b=b&-3199|a.Xa<<5|a.Ya<<1);return b}function dd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.ic=a.va>>16&65535,a.jc=a.va&65535);a.Ea=b;a.Xa=b>>5&3;a.Ya=b>>1&15;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ka!=c&&(a.Ka=c,Rd(a))}}function ed(a){a.Ea&57344||(a.ic=a.va>>16&65535);a=a.ic;a&65280&&(a=(a<<8|a>>8)&65535);return a}function fd(a){a.Ea&57344||(a.jc=a.va&65535);return a.jc}
|
|
|
|
|
function gd(a,b){1170>a.jb&&(b&=-49);a.Wa!=b&&(a.Wa=b,a.Pa=b&16?4194303:262143,Rd(a))}k.Gc=function(){return 0};k.save=function(){var a=new S(this);a.set(0,[]);a.set(1,[this.da,this.kb]);a.set(2,Jc(this.w));return a.data()};
|
|
|
|
|
k.restore=function(a){var b=a[1];this.da=b[1];Jd(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.L){for(var f=0,g=Array(b.L),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.ea[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Sd(a){return a.U&65536?1:0}function Td(a){return a.V&32768?2:0}function Ud(a){return a.Z&65535?0:4}function Vd(a){return a.X&32768?8:0}
|
|
|
|
|
function Wd(a){var b=a.u[7];a.va=b;var c=a.Ba(b);a.u[7]=b+2&65535;return c}function Xd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function T(a,b){a.u[7]=b&65535}function Rc(a,b,c,d){c={Xb:b,lb:c,message:d||0,next:null};c.name=Db[b];a.Pb.push(c);return c}function Yd(a,b){var c=a.J;if(c==b)a.J=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.J&&(a.I|=1)}
|
|
|
|
|
function Pc(a,b){if(b!=a.J){var c=a.J;if(!c||c.lb<=b.lb)b.next=c,a.J=b;else{do{var d=c.next;if(!d||d.lb<=b.lb){b.next=d;c.next=b;break}c=d}while(c)}}a.I|=1;b.message&&I(a,b.message|8)&&G(a,"setIRQ(vector="+na(b.Xb)+",priority="+b.lb+")",!0,!0)}function bd(a,b){Yd(a,b);b.message&&I(a,b.message|8)&&G(a,"clearIRQ(vector="+na(b.Xb)+",priority="+b.lb+")",!0,!0)}function Zd(a){return a.I&64?(a.sa(168,64,-6),!0):a.I&32?(a.sa(4,32,-5),!0):a.I&16?(a.sa(12,16,-7),!0):!1}
|
|
|
|
|
function id(a){return a.O=a.O&63728|Vd(a)|Ud(a)|Td(a)|Sd(a)}function jd(a,b){a.X=b<<12;a.Z=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.eb.length;0<=--c;){var d=a.u[c];a.u[c]=a.eb[c];a.eb[c]=d}a.B=b>>14&3;c=a.O>>14&3;a.B!=c&&(a.Oa[c]=a.u[6],a.u[6]=a.Oa[a.B]);a.O=b;a.I&=-3;a.I|=a.J?2:1}function hd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.I|=1}a.Jb=b}function U(a,b){a.I&512||(a.X=a.Z=b,a.V=0)}function $d(a,b,c){a.I&512||(a.X=a.Z=a.U=b,a.V=c||0)}
|
|
|
|
|
function ue(a,b,c,d){a.I&512||(a.X=a.Z=a.U=b,a.V=(c^b)&(d^b))}function ve(a,b){a.I&512||(a.X=a.Z=a.U=b,a.V=a.X^a.U>>1)}function we(a,b,c,d){a.I&512||(a.X=a.Z=a.U=b,a.V=(c^d)&(d^b))}
|
|
|
|
|
k.sa=function(a,b,c){if(!this.K){0>this.za?this.za=id(this):this.B||(c=-4);-4==c&&(this.I&256&&(c=-1),this.I|=256,this.ra|=4,this.u[6]=a=4);if(-1!=c){this.va=a|4143316992;this.B=0;var d=this.Ba(a|this.P),e=this.Ba(a+2&65535|this.P);jd(this,e&-12289|this.za>>2&12288);xe(this,this.za);xe(this,this.u[7]);T(this,d)}this.b-=5;this.I&=~(b|19);this.I|=129;this.za=-1;this.od=a;this.md=c;-1==c&&this.ba();if(-4<=c)throw a;}};
|
|
|
|
|
function ye(a){var b=ze(a),c=ze(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);T(a,b);jd(a,c);a.I&=-17}k.Na=function(a){var b=a>>13&31;31>b&&(a=this.Wa&32?this.Wb[b]+(a&8190)&4194302:a&-3932161);return a};
|
|
|
|
|
function mc(a,b,c){var d,e,f;if(!(c&a.Ka))return f=b&65535,57344<=f&&(f|=a.Qb),f;d=b>>13;a.Wa&a.Rc[a.B]||(d&=7);e=a.R[a.B][d];f=(a.ja[a.B][d]<<6)+(b&8191)&a.Pa;3932160<=f&&(f=a.Na(f));if(a.K)return f;f>=a.ed&&f<a.Qb?(a.ra|=32,a.sa(4,0,f)):f&1&&!(c&1)&&(a.ra|=64,a.sa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
|
|
|
|
|
8128)&&(g|=16384));a.R[a.B][d]=e;if(f!=(4194170&a.Pa)||a.B)a.Xa=a.B,a.Ya=d;g&&(g&57344&&(0<=a.za&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Xa<<5|a.Ya<<1,dd(a,a.Ea&-61695|g&61694)),a.sa(168,64,-2)),a.Ea&61440||!(f<(4191360&a.Pa)||f>(4194239&a.Pa))||(a.Ea|=4096,a.Ea&512&&(a.I|=64)));return f}function Ae(a,b){return a.w.bc(b)}function ze(a){var b=a.Ba(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
|
|
|
|
|
function xe(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.va=a.va&65535|(a.va&-65536)<<8|16121856;a.I&256||a.ma(4,-2,c);a.Yb(c,b)}
|
|
|
|
|
function Be(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.sa(4,0,-3),0;case 1:return 6==c&&a.ma(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.ma(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!=c&&(e|=g);e=a.Ba(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.ma(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.Ba(e)|g;a.b-=8;break;case 6:return e=a.Ba(Xd(a,2)),e=e+a.u[c]&65535,6==c&&a.ma(d,
|
|
|
|
|
0,e),a.b-=6,e|g;case 7:return e=a.Ba(Xd(a,2)),e=e+a.u[c]&65535,e=a.Ba(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.va=a.va&65535|(a.va&-65536)<<8|(f<<3&248|c)<<16;return e}k.pd=function(a,b,c){!this.B&&0>=b&&c<=this.mb&&(this.I|=32)};k.qd=function(a,b,c){this.B||(65534<=c&&(c|=-65536),a&4&&c<=this.mb&&(c<=this.mb-32?this.sa(4,0,-4):(this.ra|=8,this.I|=32)))};function oc(a,b){a.K++;b=a.Lc(mc(a,b,2));a.K--;return b}k.sd=function(a,b,c){a=Be(this,a,b,c);3932160<=a&&(a=this.Na(a));return a};
|
|
|
|
|
k.td=function(a,b,c){return mc(this,Be(this,a,b,c),c)};k.Lc=function(a){3932160<=a&&(a=this.Na(a));return this.w.ua(this.Sb=a)};k.ze=function(a){return this.w.ua(this.Sb=mc(this,a,2))};k.sc=function(a,b){3932160<=a&&(a=this.Na(a));this.w.zb(this.Sb=a,b&65535)};k.zf=function(a,b){this.w.zb(this.Sb=mc(this,a,4),b)};
|
|
|
|
|
function Ce(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=Be(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.B=a.O>>12&3,c=a.Ba(d|c&a.P),a.B=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Oa[a.O>>12&3];return c}function De(a,b,c,d){a.va=a.va&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=Be(a,b,e,4),c&65536||(e&=65535),a.B=a.O>>12&3,e=mc(a,e|c&65536,4),a.B=a.O>>14&3,a.w.zb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Oa[a.O>>12&3]=d}
|
|
|
|
|
function Ee(a,b){b>>=6;var c=a.G=b&7;return(b=a.F=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c+a.sb]&a.yc}function Fe(a,b){b>>=6;var c=a.G=b&7;return(b=a.F=(b&56)>>3)?a.w.ua(a.aa(b,c,2)):a.u[c+a.sb]}function Ge(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return Be(a,b,c,8)}function He(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?Ae(a,a.aa(b,c,3)):a.u[c]&255}function Ie(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.ua(a.aa(b,c,2)):a.u[c]}
|
|
|
|
|
function Je(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Rb=a.aa(b,e,7),c=0>c?a.u[-c-1]&255:c,c=d.call(a,c,Ae(a,e)),e&1&&a.b--,a.w.Kb(e,c)):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,6),a.w.zb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.ua(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
|
|
|
|
|
function Ke(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.aa(b,e,5),e=c=0>c?a.u[-c-1]&255:c,d&1&&a.b--,a.w.Kb(d,e)):c?(c=0>c?a.u[-c-1]&255:c,a.u[e]=a.u[e]&~d|c<<24>>24&d):a.u[e]&=~d;return c}function Le(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.aa(b,d,4),a.w.zb(d,c=0>c?a.u[-c-1]:c)):a.u[d]=c=0>c?a.u[-c-1]:c;return c}function W(a,b,c){c&&(T(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
|
|
|
|
k.pb=function(a){this.C.complete=!0;var b=this.j?Me(this.j)?1:this.C.ec?-1:0:0,c=a?this.C.ec?0:1:-1;this.C.ec=!1;this.ca=this.b=a;do{if(b){if(Ne(this.j,this.u[7],c)){this.ba();break}c||c++;b++}if(this.I){if(a=this.I&11)if(a=!1,this.I&2){var d=160,e=(this.Jb&224)>>5,f=this.J&&this.J.lb>e?this.J:null;f&&(d=f.Xb,e=f.lb);e>(this.O&224)>>5?(this.I&8&&(Xd(this,2),this.I&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&Yd(this,f),a=!0);this.J||this.Jb||(this.I&=-3)}else this.I&1&&this.I++;if(a){if(b&&Ne(this.j,this.u[7],
|
|
|
|
|
c)){this.ba();break}if(0>c)break}if(this.I&112&&Zd(this)){if(b&&Ne(this.j,this.u[7],c)){this.ba();break}if(0>c)break}}this.I=this.I&15|this.O&16;this.decode(Wd(this))}while(0<this.b);return this.C.complete?this.ca-this.b:void 0===this.C.complete?0:-1};bb(function(){for(var a=F(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Nd(d);E(d,c)}});function Oe(a,b){var c=b+a;ue(this,c,a,b);return c&65535}function Pe(a,b){var c=b+a;ue(this,c<<8,a<<8,b<<8);return c&255}
|
|
|
|
|
function Qe(a,b){a=b<<1;ve(this,a);return a&65535}function Re(a,b){a=b<<1;ve(this,a<<8);return a&255}function Se(a,b){a=b&32768|b>>1|b<<16;ve(this,a);return a&65535}function Te(a,b){a=b&128|b>>1|b<<8;ve(this,a<<8);return a&255}function Ue(a,b){a=b&~a;U(this,a);return a}function Ve(a,b){a=b&~a;U(this,a<<8);return a}function We(a,b){a|=b;U(this,a);return a}function Xe(a,b){a|=b;U(this,a<<8);return a}function Ye(a,b){a=~b|65536;$d(this,a);return a&65535}
|
|
|
|
|
function Ze(a,b){a=~b|256;$d(this,a<<8);return a&255}function $e(a,b){a=b-a;this.I&512||(this.X=this.Z=a,this.V=b&(b^a));return a&65535}function af(a,b){a=b-a;var c=a<<8;b<<=8;this.I&512||(this.X=this.Z=c,this.V=b&(b^c));return a&255}function bf(a,b){a=b+a;this.I&512||(this.X=this.Z=a,this.V=a&(b^a));return a&65535}function cf(a,b){a=b+a;var c=a<<8;this.I&512||(this.X=this.Z=c,this.V=c&(b<<8^c));return a&255}function df(a,b){a=-b;$d(this,a,a&b&32768);return a&65535}
|
|
|
|
|
function ef(a,b){a=-b;$d(this,a<<8,(a&b&128)<<8);return a&255}function ff(a,b){a=b<<1|this.U>>16&1;ve(this,a);return a&65535}function gf(a,b){a=b<<1|this.U>>16&1;ve(this,a<<8);return a&255}function hf(a,b){a=(this.U&65536|b)>>1|b<<16;ve(this,a);return a&65535}function jf(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;ve(this,a<<8);return a&255}function kf(a,b){var c=b-a;we(this,c,a,b);return c&65535}function lf(a,b){var c=b-a;we(this,c<<8,a<<8,b<<8);return c&255}
|
|
|
|
|
function mf(a,b){this.I&512||(this.X=this.Z=b&65280,this.V=this.U=0);return(b<<8|b>>8)&65535}function nf(a,b){a^=b;U(this,a);return a&65535}function of(a){V(this,a,Fe(this,a),Oe);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
|
|
|
|
|
function pf(a){var b=Ie(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b;else if(b)if(16<b)this.V=c,c=0;else{this.U=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.V=32768)}this.u[a]=c&65535;this.X=this.Z=c;this.b-=(this.g?6:7)+b}
|
|
|
|
|
function qf(a){var b=Ie(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.X=d>>16;this.Z=d>>16|d;this.b-=(this.g?6:7)+b}function rf(a){W(this,a,!Sd(this))}function sf(a){W(this,a,Sd(this))}
|
|
|
|
|
function tf(a){V(this,a,Fe(this,a),Ue);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function uf(a){Je(this,a,Ee(this,a),Ve);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function vf(a){V(this,a,Fe(this,a),We);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function wf(a){Je(this,a,Ee(this,a),Xe);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
|
|
|
|
|
function xf(a){var b=Fe(this,a);a=Ie(this,a);U(this,(0>b?this.u[-b-1]:b)&a);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function yf(a){var b=Ee(this,a);a=He(this,a);U(this,((0>b?this.u[-b-1]&255:b)&a)<<8);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function zf(a){W(this,a,Ud(this))}function Af(a){W(this,a,!Vd(this)==!Td(this))}function Bf(a){W(this,a,!Ud(this)&&!Vd(this)==!Td(this))}function Cf(a){W(this,a,!Sd(this)&&!Ud(this))}
|
|
|
|
|
function Df(a){W(this,a,Ud(this)||!Vd(this)!=!Td(this))}function Ef(a){W(this,a,Sd(this)||Ud(this))}function Ff(a){W(this,a,!Vd(this)!=!Td(this))}function Gf(a){W(this,a,Vd(this))}function Hf(a){W(this,a,!Ud(this))}function If(a){W(this,a,!Vd(this))}function Jf(){this.sa(12,0,-9)}function Kf(a){W(this,a,!0)}function Lf(a){W(this,a,!Td(this))}function Mf(a){W(this,a,Td(this))}function Nf(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Z=1);a&8&&(this.X=0);this.b-=5}
|
|
|
|
|
function Of(a){var b=Fe(this,a);a=Ie(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;we(this,c,a,b);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Pf(a){var b=Ee(this,a);a=He(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);we(this,c,a,b);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
|
|
|
|
|
function Qf(a){var b=Ie(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.Z=d>>16|d,this.X=d>>16):(this.V=32768,this.Z=d>>15|d,this.X=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.Z=this.X=0,this.V=32768,this.U=65536,this.b-=7}function Rf(){this.sa(24,0,-9);this.b-=20}
|
|
|
|
|
function Sf(){this.O&49152?(this.ra|=128,this.sa(4,0,-8)):(this.v&&1120==this.jb&&this.v.setData(this.u[0],!0),this.j?Tf(this.j):this.ba());this.b-=7}function Uf(){this.sa(16,0,-9);this.b-=20}var Vf=[0,7,7,10,7,11,9,13];function Wf(a){this.L=this.b;T(this,Ge(this,a));this.b=this.L-Vf[this.g]}var Xf=[0,14,14,17,14,18,16,20];function Yf(a){this.L=this.b;var b=Ge(this,a);a=a>>6&7;xe(this,this.u[a]);this.u[a]=this.u[7];T(this,b);this.b=this.L-Xf[this.g]}
|
|
|
|
|
var Zf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function $f(a){var b=Fe(this,a);this.L=this.b;U(this,Le(this,a,b));this.b=this.L-Zf[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function ag(a){var b=Ee(this,a);U(this,Ke(this,a,b,65535)<<8);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var bg=[7,13,13,17,14,18,17,21];
|
|
|
|
|
function cg(a){var b=Ie(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.I&512||(this.X=b>>16,this.Z=this.X|b,this.V=0,this.U=-32768>b||32767<b?65536:0);this.b-=23}function dg(){this.b-=5}function eg(){this.O&49152||(this.w.reset(),Tb(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function fg(a){if(a&8)X.call(this,a);else{var b=ze(this);a&=7;7==a?T(this,b):(T(this,this.u[a]),this.u[a]=b);this.b-=9}}
|
|
|
|
|
function gg(){ye(this);this.b-=13}function hg(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Z=0);a&8&&(this.X=32768);this.b-=5}function ig(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)T(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function jg(a){V(this,a,Fe(this,a),kf);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function kg(a){V(this,a,0,mf);this.b-=this.g?9:3+(7==this.f?2:0)}function lg(){this.sa(28,0,-9)}
|
|
|
|
|
function mg(){this.v&&(this.v.qc(this.u[7],!0),this.v.setData(this.u[0],!0));this.I|=8;Xd(this,-2);this.b-=3}function ng(a){V(this,a,this.u[(a>>6&7)+this.sb],nf);this.b-=this.g?9:3+(7==this.f?2:0)}function X(a){var b;if(b=this.j)b=this.j,I(b,1)?(G(b,"undefined opcode "+L(b,a),!0,!0),b=Tf(b)):b=!1;b||this.sa(8,0,-9)}function Od(a){og[a>>12].call(this,a)}function pg(a){qg[a>>6&3].call(this,a)}function rg(a){sg[a>>6&3].call(this,a)}function tg(a){ug[a>>6&3].call(this,a)}
|
|
|
|
|
function vg(a){wg[a&15].call(this,a)}function xg(a){yg[a&15].call(this,a)}function zg(a){Ag[a>>6&3].call(this,a)}function Bg(a){Cg[a>>6&3].call(this,a)}function Dg(a){Eg[a>>6&3].call(this,a)}
|
|
|
|
|
var og=[function(a){Fg[a>>8&15].call(this,a)},$f,Of,xf,tf,vf,of,X,function(a){Gg[a>>8&15].call(this,a)},ag,Pf,yf,uf,wf,jg,X],Fg=[function(a){Hg[a>>4&15].call(this,a)},Kf,Hf,zf,Af,Ff,Bf,Df,Yf,Yf,pg,rg,tg,X,X,X],qg=[function(a){$d(this,Le(this,a,0));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ye);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,bf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,$e);this.b-=this.g?9:3+(7==this.f?2:0)}],sg=[function(a){V(this,a,0,
|
|
|
|
|
df);this.b-=this.g?11:6},function(a){V(this,a,Sd(this)?1:0,Oe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,Sd(this)?1:0,kf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ie(this,a);$d(this,a);this.b-=this.g?4:3+(7==this.f?2:0)}],ug=[function(a){V(this,a,0,hf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,ff);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Se);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Qe);this.b-=this.g?9:3+(7==this.f?2:0)}],
|
|
|
|
|
Hg=[function(a){Ig[a&15].call(this,a)},X,X,X,Wf,Wf,Wf,Wf,fg,X,vg,xg,kg,kg,kg,kg],Ig=[Sf,mg,gg,Jf,Uf,eg,X,X,X,X,X,X,X,X,X,X],wg=[dg,function(){this.U=0;this.b-=5},function(){this.V=0;this.b-=5},Nf,function(){this.Z=1;this.b-=5},Nf,Nf,Nf,function(){this.X=0;this.b-=5},Nf,Nf,Nf,Nf,Nf,Nf,Nf],yg=[dg,function(){this.U=65536;this.b-=5},function(){this.V=32768;this.b-=5},hg,function(){this.Z=0;this.b-=5},hg,hg,hg,function(){this.X=32768;this.b-=5},hg,hg,hg,hg,hg,hg,hg],Gg=[If,Gf,Cf,Ef,Lf,Mf,rf,sf,Rf,lg,zg,
|
|
|
|
|
Bg,Dg,X,X,X],Ag=[function(a){$d(this,Ke(this,a,0,255));this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,0,Ze);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,1,cf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,1,af);this.b-=this.g?9:3+(7==this.f?2:0)}],Cg=[function(a){Je(this,a,0,ef);this.b-=this.g?11:6},function(a){Je(this,a,Sd(this)?1:0,Pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,Sd(this)?1:0,lf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=
|
|
|
|
|
He(this,a);$d(this,a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],Eg=[function(a){Je(this,a,0,jf);this.b-=this.g?9+(this.Rb&1):3+(7==this.f?2:0)},function(a){Je(this,a,0,gf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){Je(this,a,0,Te);this.b-=this.g?9+(this.Rb&1):3+(7==this.f?2:0)},function(a){Je(this,a,0,Re);this.b-=this.g?9:3+(7==this.f?2:0)}];function Pd(a){Jg[a>>12].call(this,a)}
|
|
|
|
|
var Jg=[function(a){Kg[a>>8&15].call(this,a)},$f,Of,xf,tf,vf,of,function(a){Lg[a>>8&15].call(this,a)},function(a){Mg[a>>8&15].call(this,a)},ag,Pf,yf,uf,wf,jg,X],Kg=[function(a){Ng[a>>4&15].call(this,a)},Kf,Hf,zf,Af,Ff,Bf,Df,Yf,Yf,pg,rg,tg,function(a){Og[a>>6&3].call(this,a)},X,X],Og=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Ba(a|this.P);T(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Ce(this,a,0);xe(this,a);U(this,a);this.b-=11},function(a){var b=ze(this);this.L=
|
|
|
|
|
this.b;De(this,a,0,b);U(this,b);this.b=this.L-bg[this.g]},function(a){U(this,Le(this,a,Vd(this)?65535:0));this.b-=this.g?9:3+(7==this.f?2:0)}],Ng=[function(a){Pg[a&15].call(this,a)},X,X,X,Wf,Wf,Wf,Wf,fg,function(a){a&8?(this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.I|=1,this.I&=-3),this.b-=5):X.call(this,a)},vg,xg,kg,kg,kg,kg],Pg=[Sf,mg,function(){ye(this);this.I|=this.O&16;this.b-=13},Jf,Uf,eg,gg,function(){this.sa(8,0,-9)},X,X,X,X,X,X,X,X],Lg=[cg,cg,Qf,Qf,pf,pf,qf,qf,ng,ng,X,X,X,X,ig,ig],Mg=
|
|
|
|
|
[If,Gf,Cf,Ef,Lf,Mf,rf,sf,Rf,lg,zg,Bg,Dg,function(a){Qg[a>>6&3].call(this,a)},X,X],Qg=[X,function(a){a=Ce(this,a,65536);xe(this,a);U(this,a);this.b-=11},function(a){var b=ze(this);this.L=this.b;De(this,a,65536,b);U(this,b);this.b=this.L-bg[this.g]},X];
|
|
|
|
|
function Rg(a){x.call(this,"ROM",a,Rg,128);this.ia=this.A=null;this.B=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.G=u(this.g);if(this.g){a=this.g;var b=oa(this.G);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){f?(c.N("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(mb(c.gb,a,b),(a=Ea(a,b))?(c.A=a.ga,c.ia=a.ia):c.g=null);Sg(c)})}}B(Rg);k=Rg.prototype;
|
|
|
|
|
k.Fa=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Sg(this)};k.Ia=function(){this.ia&&(this.j&&Tg(this.j,this.id,this.B,this.f,this.ia),delete this.ia);return!0};k.Ha=function(){return!0};
|
|
|
|
|
function Sg(a){if(!yb(a)){if(a.g){if(!a.A||!a.w)return;a.f||(a.f=a.A.length);if(a.A.length!=a.f)Ab(a,"ROM size ("+p(a.A.length,8,!0)+") does not match specified size ("+p(a.f,8,!0)+")");else{var b;a:{b=a.B;a.status(a.f+"-byte ROM at "+na(b));if(57344<=b&&b<57344+vc){var c={};b=(c[b]=[Rg.prototype.ne,Rg.prototype.mf,null,null,null,a.f>>1],c);if(Kb(a.w,a,b)){b=a.F=!0;break a}}else if(Bc(a.w,b,a.f,qd)){for(c=0;c<a.A.length;c++)Ic(a.w,b+c,a.A[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.v?b.push(a.v):
|
|
|
|
|
null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.B>>>f.pa;0<g&&l<f.ea.length;)h.push(f.ea[l++]),g-=f.Ga;f=d.w;d=d.f;g=0;for(e>>>=f.pa;0<d&&e<f.ea.length;){l=h[g++];if(!l)break;f.ea[e++]=l;d-=f.Ga}}a.F||delete a.A}}}J(a)}}k.ne=function(a){return this.A[a-this.B]};k.mf=function(){};bb(function(){for(var a=F(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Rg(d);E(d,c)}});
|
|
|
|
|
function Ug(a){x.call(this,"RAM",a,Ug);this.ia=this.A=null;this.g=a.addr;this.v=a.size;this.Sa=a.load;this.Ra=a.exec;this.B=!1;this.f=a.file;this.F=u(this.f);if(this.f){a=this.f;var b=oa(this.F);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){f?(c.N("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(mb(c.gb,a,b),(a=Ea(a,b))?(c.A=a.ga,c.ia=a.ia,null==c.Sa&&(c.Sa=a.Sa),null==c.Ra&&(c.Ra=a.Ra)):c.f=null);Vg(c)})}}
|
|
|
|
|
B(Ug);Ug.prototype.Fa=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Vg(this)};Ug.prototype.Ia=function(){this.ia&&(this.j&&Tg(this.j,this.id,this.g,this.v,this.ia),delete this.ia);return!0};Ug.prototype.Ha=function(){return!0};function Vg(a){if(a.w&&(!a.B&&a.v&&(Bc(a.w,a.g,a.v,Lc)?a.B=!0:a.v=0),!yb(a))){if(!a.B)v("No RAM allocated");else if(a.f){if(!a.A||!a.w)return;Wg(a,a.A,a.Sa,a.Ra,a.g)}J(a)}}
|
|
|
|
|
Ug.prototype.reset=function(){if(this.B){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.pa;0<c&&b<a.ea.length;){var e=a.ea[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Bb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.G(d,g,e.H+d);c-=a.Ga;b++;d=0}this.A&&Wg(this,this.A,this.Sa,this.Ra,this.g,!0)}};
|
|
|
|
|
function Wg(a,b,c,d,e,f){var g=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){var m=h;if(1!=l){G(a,"invalid signature ("+q(l)+") at offset "+q(m),4096);break}if(h+6>=b.length){G(a,"invalid block at offset "+q(m),4096);break}for(var h=h+2,n=b[h++]&255|(b[h++]&255)<<8,r=b[h++]&255|(b[h++]&255)<<8,l=l+((n&255)+(n>>8)+(r&255)+(r>>8)),w=h,t=n-=6;0<n&&h<b.length;)l+=b[h++]&255,n--;if(n||h>=b.length){G(a,"insufficient data for block at offset "+q(m),4096);break}l+=
|
|
|
|
|
b[h++]&255;if(l&255){G(a,"invalid checksum ("+p(l,2,!0)+") for block at offset "+q(m),4096);break}if(t)for(G(a,"loading "+q(t)+" bytes at "+q(r)+"-"+q(r+t-1),4096);t--;)Ic(a.w,r++,b[w++]&255);else r&1?a.b.ba():null==d&&(d=r),null!=d&&G(a,"starting address: "+q(d),4096);g=!0}else h++;else h+=2}if(!g&&(null==c&&(c=e),null!=c)){for(g=0;g<b.length;g++)Ic(a.w,c+g,b[g]);g=!0}g&&null!=d&&(a=a.b,a.wc=d,a.w.reset(),Tb(a),T(a,d),jd(a,0),!f&&a.j&&(a.ba()||Gd(a.j)));return g}
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ug(d);E(d,c)}});function Xg(a){x.call(this,"Keyboard",a,Xg,1024);J(this)}B(Xg);Xg.prototype.wa=function(){return!1};Xg.prototype.Fa=function(a,b,c,d){this.A=a;this.b=c;this.j=d};bb(function(){for(var a=F(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Xg(d);E(d,c)}});
|
|
|
|
|
function Yg(a){this.L=a.adapter;this.Y=a.baudReceive||9600;this.ta=a.baudTransmit||9600;this.ya=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ca=a.charBOL;this.G=0;this.K=!0;x.call(this,"SerialPort",a,Yg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Zg;b&&(void 0===c&&(c="Panel"),(c=pb(c,this.id))&&(b=c.D[b])&&this.wa(null,a,b))}this.B=this.P=this.S=null;this.exports={connect:this.Jc,receiveData:this.dc,receiveStatus:this.Ce}}B(Yg);var Zg="buffer";k=Yg.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case Zg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.vc:la.Vc:46==c?b=la.vc:a.ctrlKey&&c>=la.tc&&c<=la.dd&&(b=c-(la.tc-la.Sc));b&&(a.preventDefault&&a.preventDefault(),d.dc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==la.Uc&&(b=la.Tc);d.dc(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.dc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
|
|
|
|
|
k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;var e=this;this.da=Rc(this.b,this.L?-1:48,4,262144);this.na=Oc(this.b,function(){var a;a=-1;e.J.length&&(a=e.J.shift()&255,G(e,"receiveByte("+p(a,2,!0)+")"),e.ya&&97<=a&&122>a&&(a-=32),Qc(e.b,e.na,1E3/Math.round(e.Y/10)));0<=a&&(e.M=a,e.f&128?e.M|=49152:e.f|=128,e.f&64&&Pc(c,e.da))});this.T=Rc(this.b,this.L?-1:52,4,262144);this.za=Oc(this.b,function(){e.g|=128;e.g&64&&Pc(c,e.T)});Kb(b,this,$g,this.L?64832+8*(this.L-1)-65392:0);Mb(b,this.reset.bind(this));
|
|
|
|
|
J(this)};k.Jc=function(a){if(!this.B){var b=Dd(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.fb)return;c=ua(c[1]);if(this.B=ob(c)){var e=this.B.exports;if(e){var f=e.connect;f&&f.call(this.B,this.K);if(this.P=e.receiveData){this.K=a;this.S=e.receiveStatus;this.status(this.gb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
|
|
|
|
k.Ia=function(a,b){if(!b)if(this.Jc(this.K),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ha=function(a){return a?this.save():!0};k.reset=function(){ah(this)};k.save=function(){var a=new S(this);a.set(0,[]);return a.data()};k.restore=function(){return ah(this)};function ah(a){a.M=0;a.f=8192;a.g=128;a.J=[];return!0}
|
|
|
|
|
k.dc=function(a){if("number"==typeof a)this.J.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.J.push(b)}else this.J=this.J.concat(a);Qc(this.b,this.na,1E3/Math.round(this.Y/10));return!0};k.Ce=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Pc(this.b,this.da))};k.ae=function(){var a=this.f&65534;this.f&=-32769;return a};
|
|
|
|
|
k.Ze=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.K?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.B,b))};k.$d=function(){this.f&=-129;return this.M};k.Ye=function(){};k.Be=function(){return this.g};k.Bf=function(a){this.g&128&&(a&64?Pc(this.b,this.T):bd(this.b,this.T));this.g=this.g&-70|a&69};k.Ae=function(){return 0};
|
|
|
|
|
k.Af=function(a){a&=255;G(this,"transmitByte("+p(a,2,!0)+")");this.P&&this.P.call(this.B,a);a&=127;if(this.v)if(13==a)this.G=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.G&&this.G--;else{if(a){var b;b=(b=za[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.G%a,this.ma&&(b=ta("",c)));this.ca&&!this.G&&c&&(b=String.fromCharCode(this.ca)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.G+=c}}else if(null!=this.F){if(10==a||1024<=
|
|
|
|
|
this.F.length)this.i(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Qc(this.b,this.za,1E3/Math.round(this.ta/10));this.g&=-129};var vh={},$g=(vh[65392]=[null,null,Yg.prototype.ae,Yg.prototype.Ze,"RCSR"],vh[65394]=[null,null,Yg.prototype.$d,Yg.prototype.Ye,"RBUF"],vh[65396]=[null,null,Yg.prototype.Be,Yg.prototype.Bf,"XCSR"],vh[65398]=[null,null,Yg.prototype.Ae,Yg.prototype.Af,"XBUF"],vh);
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Yg(d);E(d,c)}});function kd(a){x.call(this,"PC11",a,kd);this.g=a.autoMount||null;this.F=0;this.ca=a.baudReceive||3600;this.K=this.L=this.f=0;this.J=[];this.G=wh;this.v=xh;this.M=this.B="";this.ga=this.Sa=this.Ra=null;this.T=-1;this.P=!Ma("Mobi")&&window&&"FileReader"in window}B(kd);var wh="",xh=0;k=kd.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this,e=xh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.D[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.D[b]=c,c.onclick=
|
|
|
|
|
function(){var a=d.D.listTapes;a&&yh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;yh(d,u(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
|
|
|
|
|
k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;this.Y=zh(a);var e=this;if((this.g=Dd(this.A,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){v("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.S=Rc(this.b,56,4,4096);this.da=Oc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.K<e.J.length&&(e.L=e.J[e.K++]&255,Ah(e,e.K/e.J.length*100),e.f|=128,e.f&=-2049,e.f&64&&Pc(e.b,e.S))});Kb(b,this,Bh);Mb(b,this.reset.bind(this));Ch(this,"None",
|
|
|
|
|
wh,!0);this.P&&Ch(this,"Local Tape","?");Ch(this,"Remote Tape","??");Dh(this)||J(this)};k.Ia=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ha=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.L=0};
|
|
|
|
|
function Dh(a){a.F=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.D.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=u(b,!0)}b&&c?Eh(a,c,b,1,!0):Fh(a)}return!!a.F}
|
|
|
|
|
function yh(a,b,c,d,e){if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"');a.G="??"}else a.G=c;Eh(a,b,c,d,!1,e)}else Gh(a,!1)}
|
|
|
|
|
function Eh(a,b,c,d,e,f){var g=-1;if(a.B.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Gh(a,!0),a.C.ib?a.N("PC11 busy"):(e&&(a.F++,I(a)&&G(a,"auto-loading tape: "+b)),Hh(a,b,c,d,f)?g++:a.C.ib=!0);g&&Ih(a,a.M,a.B,a.v,a.ga,a.Sa,a.Ra)}
|
|
|
|
|
function Hh(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Ih(a,b,c,d,e),a.G="?");Fh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=oa(c),f="json"==e||"gz"==e?encodeURI(c):Fa()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Da(f,null,!0,function(e,f,g){var h=0>g&&a.A&&!a.A.C.la;g?a.N('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(mb(a.gb,e,f),(e=Ea(e,f))&&Ih(a,b,c,d,e.ga,e.Sa,
|
|
|
|
|
e.Ra));a.C.ib=!1;a.F&&(a.F--,a.F||J(a));Fh(a)})}function Ch(a,b,c,d){if((a=a.D.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Fh(a){var b=a.D.listTapes;if(b&&b.options){a=a.G||a.B;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Ah(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=F(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
|
|
|
|
|
function Ih(a,b,c,d,e,f,g){a.M=b;a.B=c;a.v=d;a.ga=e;a.Sa=f;a.Ra=g;2==d?a.Y&&Wg(a.Y,e,f,g)?a.status('Loaded tape "'+b+'"'):(a.M="",a.B="",a.G=wh,a.v=xh,a.N('No load address available for tape "'+b+'"')):(a.K=0,a.J=e,a.status('Attached tape "'+b+'"'),Ah(a,0))}function Gh(a,b){if(a.B||!1===b)a.M="",a.B="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.G=wh,a.v=xh,Fh(a))}k.save=function(){return(new S(this)).data()};k.restore=function(){return!0};k.Ud=function(){return this.f&65534};
|
|
|
|
|
k.Se=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Pc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.L=0,Qc(this.b,this.da,1E3/Math.round(this.ca/10))));this.f=this.f&-66|a&65};k.Td=function(){this.f&=-129;this.f|=2048;return this.L};k.Re=function(){};var Jh={},Bh=(Jh[65384]=[null,null,kd.prototype.Ud,kd.prototype.Se,"PRS"],Jh[65386]=[null,null,kd.prototype.Td,kd.prototype.Re,"PRB"],Jh);
|
|
|
|
|
function Kh(a,b,c){x.call(this,"Disk",{id:a.gb+".disk"+p(++Lh,4)},Kh,8192);this.controller=a;this.A=a.A;this.j=a.j;this.v=b;this.Ta=b.name;this.$b=b.$b;Mh(this,c,b.fa,b.ka,b.ha,b.Aa);J(this)}var Lh=0;B(Kh);k=Kh.prototype;k.Fa=function(a,b,c,d){this.j=d};
|
|
|
|
|
function Mh(a,b,c,d,e,f){a.mode=b;a.fa=c;a.ka=d;a.ha=e;a.Aa=f;a.b=[];if("preload"!=a.mode){b=Array(a.fa);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ha);for(var g=1;g<=f.length;g++)f[g-1]=Nh(null,c,e,g,a.Aa,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
|
|
|
|
|
function Oh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Ta=b;a.Ja=c;a.pc=u(c);a.w=e;a.B=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.fa=e[0];a.ka=e[1];a.ha=e[2];a.Aa=e[3]||512;c=a.Aa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.fa);for(d=0;d<a.b.length;d++)for(var w=a.b[d]=Array(a.ka),t=0;t<w.length;t++)for(var A=w[t]=Array(a.ha),y=0;y<A.length;y++){for(var C=Nh(null,d,t,y+1,a.Aa,0),sa=C.data,Qa=0;Qa<c;Qa++,f+=4)var R=sa[Qa]=b.getInt32(f,
|
|
|
|
|
!0),e=e+R&-1;C.La=c;A[y]=C}a.f=e;c=a}else a.N("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Ta,a.Ja),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=oa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):pa(c,"/")&&(d="dir"),f=Fa()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.$b?"":e)+"&format=json"));return!!Da(f,
|
|
|
|
|
null,!0,function(b,c,d){Ph(a,b,c,d)})}
|
|
|
|
|
function Ph(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.A&&!a.A.C.la;if(d)a.controller.N('Unable to load disk "'+a.Ta+'" (error '+d+": "+b+")",f);else{mb(a.controller.gb,b,c);try{if(0<u(a.pc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Ta]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
|
|
|
|
c+")");if(h.length)if(1==h.length)v(h[0]);else{a.fa=h.length;a.ka=h[0].length;a.ha=h[0][0].length;var l=h[0][0][0];a.Aa=l&&l.length||512;for(d=c=0;d<a.fa;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ha;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var w=l.bytes;if(void 0!==w&&w.length){for(var t=m<<2,A=w.length;A<t;A++)w[A]=n;Qh(l,w)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Nh(l,d,f);for(t=
|
|
|
|
|
0;t<r.length;t++)c=c+r[t]&-1}a.b=h;a.f=c;e=a}else v("Empty disk image: "+a.Ta)}catch(y){v("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.B,a.v,e,a.Ta,a.Ja),a.w=null)}function Nh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Cg=b;a.Dg=c;a.Va=a.La=0;a.ab=!1;return a}
|
|
|
|
|
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.kd&&b<f.ka)for(h=g[b]=Array(f.Dc),g=0;g<h.length;g++)h[g]=Nh(null,a,b,g+1,f.oc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.kd&&9==f.kc&&(d=h[g]=Nh(null,a,b,f.kc,f.oc,0))}}e&&e(d,!1);return d};function Qh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
|
|
|
|
|
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.La?f<a.Va?(a.La+=a.Va-f,a.Va=f):f>=a.Va+a.La&&(a.La+=f-(a.Va+a.La)+1):(a.Va=f,a.La=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
|
|
|
|
|
function Rh(a,b){var c=a.ka*a.ha,d=b/c|0;return d<a.fa?(b%=c,a.seek(d,b/a.ha|0,b%a.ha+1)):null}function Sh(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Th(a){for(var b="",c=0,d;d=Rh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Sh(a,d,e));return btoa(b)}
|
|
|
|
|
k.save=function(){var a=0,b=[];b[a++]=[this.Ja,this.f,this.fa,this.ka,this.ha,this.Aa];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.La){for(var h=[],l=0,m=g.Va,n=g.Va+g.La;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Va,h]}}return b};
|
|
|
|
|
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Mh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
|
|
|
|
|
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Va=e;for(h.La=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.N("Unable to restore disk '"+this.Ta+": "+c);return b};
|
|
|
|
|
k.toJSON=function(){var a;a=0;for(var b;b=Rh(this,a++);)Uh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
|
|
|
|
|
function Uh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function Q(a){x.call(this,"RK11",a,Q,65536);this.K=a.autoMount||{};this.F=0;this.g=Array(8);this.L=!Ma("Mobi")&&window&&"FileReader"in window}B(Q);k=Q.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){v("RK11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&Vh(d,a)},!0;case "loadDrive":return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=d.D.listDisks;a&&Wh(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.L){c.parentNode.removeChild(c);break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[ma(a.value,10)||0])?(a=a.Da)?(a=Na(Th(a),a.pc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDrive":if(this.L)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=
|
|
|
|
|
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Wh(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
|
|
|
|
k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;if((a=Dd(this.A,"autoMount"))&&"string"==typeof a)try{a=eval("("+a+")")}catch(f){v(this.type+" auto-mount error: "+f.message+" ("+a+")"),a=null}if(a)for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);Xh(this);this.Cb=Rc(this.b,144,5,65536);Kb(b,this,Yh);Mb(b,this.reset.bind(this));Zh(this,"None","",!0);this.L&&Zh(this,"Local Disk","?");Zh(this,"Remote Disk","??");$h(this)||J(this)};
|
|
|
|
|
k.Ia=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.nc){for(a=0;a<this.g.length;a++)ai(this,a,!0);$h(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Vh(this,0)}}return!0};k.Ha=function(a){return a?this.save():!0};k.reset=function(){Xh(this)};k.save=function(){return(new S(this)).data()};
|
|
|
|
|
k.restore=function(a){return Xh(this,a[0])};function $h(a,b){b||(a.F=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!bi(a,g,f,e,!0)&&b&&J(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
|
|
|
|
|
function Wh(a,b,c,d){var e=a.D.listDrives,e=e&&ma(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}bi(a,e,b,c,!1,d)}else ai(a,e)}
|
|
|
|
|
function bi(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Ja.toLowerCase()!=d.toLowerCase()&&(g++,ai(a,b,!0),h.vb?a.N("RK11 busy"):(h.vb=!0,e&&(h.ub=!0,a.F++,I(a)&&G(a,"auto-loading disk: "+c)),h.bb=!!f,Oh(new Kh(a,h,"preload"),c,d,f,a.Xc)&&g++));return g}
|
|
|
|
|
k.Xc=function(a,b,c,d,e){a.vb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.N('Disk "'+c+'" too large for drive '+("RK"+a.wb)),b=null);b?(a.Da=b,a.Ta=c,a.Ja=d,this.N('Mounted disk "'+c+'" in drive '+("RK"+a.wb),a.ub||e),this.A&&this.A.nb()):a.bb=!1;a.ub&&(a.ub=!1,--this.F||J(this));Vh(this,a.wb)};
|
|
|
|
|
function Zh(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Vh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=ma(a.value,10),c=c.bb?"?":c.Ja,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ai(a,b,c){var d=a.g[b];if(d.Da||!1===c)d.Ta="",d.Ja="",d.Da=null,d.bb=!1,c||(a.N("Drive RK"+b+" unloaded",c),Vh(a,b))}
|
|
|
|
|
function Xh(a,b){var c=0;b||(b=[]);a.M=b[c++]||2496;a.B=b[c++]||0;a.f=b[c++]||128;a.J=b[c++]||0;a.G=b[c++]||0;a.v=b[c++]||0;a.P=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.wb=b;d.name=c.fb;d.vb=d.bb=!1;d.fa=203;d.ka=2;d.ha=12;d.Aa=512;d.$b=!0;d.ld=0;d.jd=0;d.kc=1;d.Dc=d.ha;d.oc=d.Aa;d.ud=0;d.Ee=null;d.Da||(d.Ja="");d.status=2496}return!0}
|
|
|
|
|
k.Wc=function(a,b,c,d,e,f){this.G=f&65535;this.f=this.f&-49|f>>12&48;this.J=65536-e&65535;a&&(this.B=this.B|a|32768,this.f|=49152);return!0};k.Yc=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=128,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=4096;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=32;break}Zb(this.w,f,n|r<<8);if(Nc(this.w)){h=1024;break}f+=2;if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=64;break}}return g(h,b,c,d,e,f)};
|
|
|
|
|
k.Zc=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=128,e=0);for(;e--;){var n=nc(this.w,f);if(Nc(this.w)){h=1024;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=4096;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=32;break}if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=64;break}}return g(h,b,c,d,e,f)};k.fe=function(){return this.M};k.df=function(){};k.ge=function(){return this.B};k.ef=function(){};k.ce=function(){return this.f&61438};
|
|
|
|
|
k.af=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){var b,c=!0;a=(this.v&57344)>>13;var d=this.g[a],e,f,g,h;this.f&=-129;switch(this.f&14){case 0:this.M=d.status;this.B=0;this.f=128;this.v=0;break;case 4:b=this.Yc;case 2:b||(b=this.Zc),e=(this.v&8160)>>5,f=(this.v&16)>>4,g=this.v&15,e>=d.fa?(this.B|=32832,this.f|=49152):g>=d.ha?(this.B|=32800,this.f|=49152):(h=(this.f&48)<<12|this.G,c=65536-this.J&65535,c=b.call(this,d,e,f,g,c,h,this.Wc.bind(this)))}this.M=d.status|a<<13|this.v%9&15;c&&(this.f&=
|
|
|
|
|
-2,this.f|=128,this.f&64&&Pc(this.b,this.Cb))}};k.he=function(){return this.J};k.ff=function(a){this.J=a};k.be=function(){return this.G};k.$e=function(a){this.G=a};k.de=function(){return this.v};k.bf=function(a){this.v=a};k.ee=function(){return this.P};k.cf=function(a){this.P=a};
|
|
|
|
|
var ci={},Yh=(ci[65280]=[null,null,Q.prototype.fe,Q.prototype.df,"RKDS"],ci[65282]=[null,null,Q.prototype.ge,Q.prototype.ef,"RKER"],ci[65284]=[null,null,Q.prototype.ce,Q.prototype.af,"RKCS"],ci[65286]=[null,null,Q.prototype.he,Q.prototype.ff,"RKWC"],ci[65288]=[null,null,Q.prototype.be,Q.prototype.$e,"RKBA"],ci[65290]=[null,null,Q.prototype.de,Q.prototype.bf,"RKDA"],ci[65294]=[null,null,Q.prototype.ee,Q.prototype.cf,"RKDB"],ci);
|
|
|
|
|
function P(a){x.call(this,"RL11",a,P,131072);this.L=a.autoMount||{};this.J=0;this.g=Array(4);this.M=!Ma("Mobi")&&window&&"FileReader"in window}B(P);k=P.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){v("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&di(d,a)},!0;case "loadDrive":return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=d.D.listDisks;a&&ei(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.M){c.parentNode.removeChild(c);break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[ma(a.value,10)||0])?(a=a.Da)?(a=Na(Th(a),a.pc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDrive":if(this.M)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=
|
|
|
|
|
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;ei(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
|
|
|
|
k.Fa=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;if((a=Dd(this.A,"autoMount"))&&"string"==typeof a)try{a=eval("("+a+")")}catch(f){v(this.type+" auto-mount error: "+f.message+" ("+a+")"),a=null}if(a)for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);fi(this);this.Cb=Rc(this.b,112,5,131072);Kb(b,this,gi);Mb(b,this.reset.bind(this));hi(this,"None","",!0);this.M&&hi(this,"Local Disk","?");hi(this,"Remote Disk","??");ii(this)||J(this)};
|
|
|
|
|
k.Ia=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.nc){for(a=0;a<this.g.length;a++)ji(this,a,!0);ii(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";di(this,0)}}return!0};k.Ha=function(a){return a?this.save():!0};k.reset=function(){fi(this)};k.save=function(){return(new S(this)).data()};
|
|
|
|
|
k.restore=function(a){return fi(this,a[0])};function ii(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!ki(a,g,f,e,!0)&&b&&J(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.J}
|
|
|
|
|
function ei(a,b,c,d){var e=a.D.listDrives,e=e&&ma(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}ki(a,e,b,c,!1,d)}else ji(a,e)}
|
|
|
|
|
function ki(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Ja.toLowerCase()!=d.toLowerCase()&&(g++,ji(a,b,!0),h.vb?a.N("RL11 busy"):(h.vb=!0,e&&(h.ub=!0,a.J++,I(a)&&G(a,"auto-loading disk: "+c)),h.bb=!!f,Oh(new Kh(a,h,"preload"),c,d,f,a.ad)&&g++));return g}
|
|
|
|
|
k.ad=function(a,b,c,d,e){a.vb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.N('Disk "'+c+'" too large for drive '+("RL"+a.wb)),b=null);b?(a.Da=b,a.Ta=c,a.Ja=d,this.N('Mounted disk "'+c+'" in drive '+("RL"+a.wb),a.ub||e),this.A&&this.A.nb()):a.bb=!1;a.ub&&(a.ub=!1,--this.J||J(this));di(this,a.wb)};
|
|
|
|
|
function hi(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function di(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=ma(a.value,10),c=c.bb?"?":c.Ja,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function ji(a,b,c){var d=a.g[b];if(d.Da||!1===c)d.Ta="",d.Ja="",d.Da=null,d.bb=!1,c||(a.N("Drive RL"+b+" unloaded",c),di(a,b))}
|
|
|
|
|
function fi(a,b){var c=0;b||(b=[]);a.f=b[c++]||0;a.K=b[c++]||0;a.v=b[c++]||0;a.B=b[c++]||0;a.G=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.wb=b;d.name=c.fb;d.vb=d.bb=!1;d.fa=512;d.ka=2;d.ha=40;d.Aa=256;d.$b=!0;d.ld=0;d.jd=0;d.kc=1;d.Dc=d.ha;d.oc=d.Aa;d.ud=0;d.Ee=null;d.Da||(d.Ja="");d.status=29}return!0}
|
|
|
|
|
k.$c=function(a,b,c,d,e,f){this.K=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.B=this.v=b<<7|(c?64:0)|d&63;this.G=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
|
|
|
|
|
k.bd=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=5120;break}Zb(this.w,this.b.Na(f),n|r<<8);if(Nc(this.w)){h=8192;break}f+=2;if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g(h,b,c,d,e,f)};
|
|
|
|
|
k.cd=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=nc(this.w,this.b.Na(f));if(Nc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g(h,b,c,d,e,f)};k.ke=function(){return this.f&65535};
|
|
|
|
|
k.jf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){var b;a=!0;var c=this.g[(this.f&768)>>8],d=c.Da,e,f,g;this.f&=-2;switch(this.f&14){case 4:this.G&8&&(this.f&=63);this.G=c.status|this.B&64|(d&&512==d.fa?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.B=this.v&4?this.B+b:this.B-b,this.v=this.B=this.B&65408|c);break;case 8:this.G=this.B;break;case 12:b=this.bd;case 10:b||(b=this.cd),e=this.v>>7,f=this.v&64?1:0,g=this.v&63,!d||e>=d.fa||
|
|
|
|
|
g>=d.ha?this.f|=37888:(d=(this.F&63)<<16|this.K,a=65536-this.G&65535,a=b.call(this,c,e,f,g,a,d,this.$c.bind(this)))}a&&(this.f|=129,this.f&64&&Pc(this.b,this.Cb))}};k.ie=function(){return this.K};k.gf=function(a){this.K=a&65534};k.le=function(){return this.v};k.kf=function(a){this.v=a};k.me=function(){return this.G};k.lf=function(a){this.G=a};k.je=function(){return this.F};k.hf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};
|
|
|
|
|
var li={},gi=(li[63744]=[null,null,P.prototype.ke,P.prototype.jf,"RLCS"],li[63746]=[null,null,P.prototype.ie,P.prototype.gf,"RLBA"],li[63748]=[null,null,P.prototype.le,P.prototype.kf,"RLDA"],li[63750]=[null,null,P.prototype.me,P.prototype.lf,"RLMP"],li[63752]=[null,null,P.prototype.je,P.prototype.hf,"RLBE"],li);function mi(a){x.call(this,"Debugger",a,mi);this.ma=a.base||16;this.Ka=!1;this.K=0;this.T=!1;this.B=-1;this.g=[];this.ca={}}B(mi);
|
|
|
|
|
var ni={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};mi.prototype.Hc=function(){return-1};mi.prototype.Ic=function(){};
|
|
|
|
|
function oi(a,b,c,d){if(c)if(b){0>a.B&&a.g.length&&(a.B=0);if(0>a.B||b!=a.g[a.B])a.g.splice(0,0,b),a.B=0;a.B--}else a.T?b="end":b=a.g[a.B+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ua(b.substring(c,f))),c=f+1}}return a}
|
|
|
|
|
function pi(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
|
|
|
|
K.prototype={constructor:K,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Bb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Bb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.bb=!0}return!1},vb:function(a,b){b?this.g++||vd(this,wd,!1):this.A++||xd(this,wd,!1)},S:function(a,b){this.j&&I(this.j,32)&&G(this.j,
|
|
|
|
|
"attempt to read invalid address "+L(this.j,b),!0);this.w.Na(b,32,2);return 255},v:function(a,b,c){this.j&&I(this.j,32)&&G(this.j,"attempt to write "+L(this.j,b)+" to invalid addresses "+L(this.j,c),!0);this.w.Na(c,32,4)},T:function(a,b){return this.ec(a++,b++)|this.ec(a,b)<<8},K:function(a,b,c){this.hc(a++,b&255,c++);this.hc(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ya:function(a,b){a&1&&this.w.Na(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+
|
|
|
|
|
1]&255)<<8},Qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.bb=!0},$a:function(a,b,c){a&1&&this.w.Na(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.bb=!0},hb:function(a,b){if(this.j&&null!=this.H){var c=this.j;yd(c,this.H+a,1,c.M)&&c.ba(!0)}return this.I(a,b)},ma:function(a,b){if(this.j&&null!=this.H){var c=this.j;yd(c,this.H+a,2,c.M)&&c.ba(!0)}return this.J(a,b)},za:function(a,
|
|
|
|
|
b,c){if(this.j&&null!=this.H){var d=this.j;yd(d,this.H+a,1,d.F)&&d.ba(!0)}this.f?this.v(a,b,c):this.G(a,b,c)},Ya:function(a,b,c){if(this.j&&null!=this.H){var d=this.j;yd(d,this.H+a,2,d.F)&&d.ba(!0)}this.f?this.v(a,b,c):this.M(a,b,c)},gb:function(a){return this.D[a]},Z:function(a,b){a=this.D[a];this.j&&I(this.j,32)&&G(this.j,"Memory.readByte("+L(this.j,b)+"): "+L(this.j,a),!0);return a},da:function(a,b){a&1&&this.w.Na(b,64,2);return this.F.getUint16(a,!0)},na:function(a,b){a&1&&this.w.Na(b,64,2);a=
|
|
|
|
|
this.P[a>>1];this.j&&I(this.j,32)&&G(this.j,"Memory.readWord("+L(this.j,b)+"): "+L(this.j,a),!0);return a},ta:function(a,b){this.D[a]=b;this.bb=!0},La:function(a,b,c){this.D[a]=b;this.bb=!0;this.j&&I(this.j,32)&&G(this.j,"Memory.writeByte("+L(this.j,c)+","+L(this.j,b)+")",!0)},Ra:function(a,b,c){a&1&&this.w.Na(c,64,4);this.F.setUint16(a,b,!0);this.bb=!0},Za:function(a,b,c){a&1&&this.w.Na(c,64,4);this.P[a>>1]=b;this.bb=!0;this.j&&I(this.j,32)&&G(this.j,"Memory.writeWord("+L(this.j,c)+","+L(this.j,
|
|
|
|
|
b)+")",!0)}};function Ac(a,b,c){a.j=b;a.A=a.g=0;c&&((a.A=c.A)&&xd(a,wd,!1),(a.g=c.g)&&vd(a,wd,!1))}function zd(a,b){b?--a.g||(a.hc=a.f?a.v:a.G,a.$b=a.f?a.K:a.M):--a.A||(a.ec=a.I,a.Ba=a.J)}function vd(a,b,c){c&&a.g||(a.hc=!a.f&&b[1]||a.v,a.$b=!a.f&&b[3]||a.K);if(c||void 0===c)a.G=b[1]||a.v,a.M=b[3]||a.K}function xd(a,b,c){c&&a.A||(a.ec=b[0]||a.S,a.Ba=b[2]||a.T);if(c||void 0===c)a.I=b[0]||a.S,a.J=b[2]||a.T}function rd(a,b){b||(b=Ad);xd(a,b,void 0);vd(a,b,void 0)}
|
|
|
|
|
var Ad=[],ud=[K.prototype.ca,K.prototype.Qa,K.prototype.ya,K.prototype.$a],wd=[K.prototype.hb,K.prototype.za,K.prototype.ma,K.prototype.Ya];if(Bb)var td=[K.prototype.gb,K.prototype.ta,K.prototype.da,K.prototype.Ra],sd=[K.prototype.Z,K.prototype.La,K.prototype.na,K.prototype.Za];
|
|
|
|
|
function Bd(a,b){x.call(this,"CPU",a,Bd,1);b=a.cycles||b;var c=a.multiplier||1;this.Qb=0;this.sb=b;this.lb=c;this.ic=Math.round(this.sb/1E4)/100;this.zb=this.ic*this.lb;this.C.X=!1;this.C.gc=!1;this.C.Cb=a.autoStart;this.C.Db=!1;this.Vb=this.ya=0;this.Wb=a.csStart;this.Hb=a.csInterval;this.Ib=a.csStop;this.M=[];this.Dc=this.Fe.bind(this);J(this)}B(Bd);var Cd=["power","reset"];k=Bd.prototype;
|
|
|
|
|
k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.j=d;this.v=a.v;for(b=0;b<Cd.length;b++)(c=this.D[Cd[b]])&&this.A.wa(null,Cd[b],c);a=Dd(a,"autoStart");null!=a&&(this.C.Cb="true"==a?!0:"false"==a?!1:!!a);J(this)};k.wc=function(){};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
|
|
|
|
k.Ja=function(a,b){if(!b){this.wc();if(a&&this.restore){Ed(this);if(!this.restore(a))return!1;Fd(this)}else this.reset();this.j?(a=this.j,b=this.C.Cb,a.Za=!0,a.i("Type ? for help with PDPjs Debugger commands"),Gd(a),b||a.ob(),a.Ra&&(b=a.Ra,a.Ra=null,Hd(a,b))):this.i("No debugger detected")}return!0};k.Ia=function(a){return a?this.save():!0};k.Cb=function(){return this.C.Cb||!this.j&&void 0===this.D.run?(this.pb(),!0):!1};k.Ic=function(){return 0};
|
|
|
|
|
function Fd(a){void 0===a.Wb&&(a.Wb=0);void 0===a.Hb&&(a.Hb=-1);void 0===a.Ib&&(a.Ib=-1);a.C.Db=0<=a.Wb&&0<a.Hb;a.C.Db&&(a.Vb=0,a.ya=a.Wb-a.da)}function Wb(a,b){if(a.C.Db){var c=!1;a.Vb=a.Vb+a.Ic()|0;a.ya-=b;0>=a.ya&&(a.ya+=a.Hb,c=!0);0<=a.Ib&&a.Ib<=Id(a)&&(a.Hb=a.Ib=-1,Fd(a),a.ba(),c=!0);c&&a.i(Id(a)+" cycles: checksum="+p(a.Vb))}}
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.D[b]=c,!0;case "run":return this.D[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.C.la)a=!0;else{var b=null,c,h=nb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.la);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.cc?" (waiting for notification)":""))+".");a=!1}a&&(d.C.X?d.ba():d.pb())},
|
|
|
|
|
!0;case "speed":return this.D[b]=c,!0;case "setSpeed":return this.D[b]=c,c.onclick=function(){Jd(d,d.lb<<1,!0)},c.textContent=this.zb.toFixed(2)+"Mhz",!0}return!1};k.xa=function(a){this.A&&this.A.xa(a)};function Vb(a,b,c){a.da+=b;c&&(a.ca=a.b=a.K=0)}function Kd(a,b){var c=1;b&&1<a.lb&&a.na&&(c=a.na/a.ic);a.Bc=Math.round(1E3/30);a.tb=Math.floor(a.sb/30*c);b||(a.ta=a.tb);a.jc=0}function Id(a){return a.da+a.T+a.ca-a.b}function Ed(a){a.na=0;a.Cc=0;a.da=a.T=a.ca=a.b=a.K=0;Fd(a);Jd(a,1)}
|
|
|
|
|
function Jd(a,b,c){var d=!1;if(void 0!==b){.8>a.na/a.zb?b=1:d=!0;a.lb=b;b=a.ic*a.lb;if(a.zb!=b){a.zb=b;b=a.zb.toFixed(2)+"Mhz";var e=a.D.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.A&&a.A.ob()}Vb(a,a.T);a.T=0;a.S=Ba();a.Z=0;Kd(a);return d}function Oc(a,b){var c=a.M.length;a.M.push([-1,b]);return c}function Qc(a,b,c,d){0<=b&&b<a.M.length&&(d||0>a.M[b][0])&&(c=a.sb*a.lb/1E3*c|0,a.C.X&&(c+=Ld(a)),a.M[b][0]=c)}
|
|
|
|
|
function Md(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ub(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Ld(a,b){var c=a.ca-=a.b;a.b=a.K=0;b&&(a.ca=0);return c}
|
|
|
|
|
k.Fe=function(){if(this.C.X){this.jc>=this.sb&&Kd(this,!0);this.Ra=0;this.$a=Ba();if(this.Z){var a=this.$a-this.Z;a>this.Bc&&(this.S+=a,this.S>this.$a&&(this.S=this.$a))}try{do{var b=Md(this,this.C.Db?1:this.tb);try{this.qb(b)}catch(e){if("number"!=typeof e)throw e;}b=Ld(this,!0);this.Ra+=b;this.T+=b;Wb(this,b);Ub(this,b);this.ta-=b;if(0>=this.ta){this.ta+=this.tb;15<=++this.Cc&&(this.xa(),this.Cc=0);break}}while(this.C.X)}catch(e){this.ba();this.A&&this.A.stop(Ba(),Id(this));Ab(this,e.stack||e.message);
|
|
|
|
|
return}if(this.C.X){a=setTimeout;b=this.Dc;this.Z=Ba();var c=this.Bc;this.Ra&&(c=Math.round(c*this.Ra/this.tb));var c=c-(this.Z-this.$a),d=this.Z-this.S;d&&(this.na=Math.round(this.T/(10*d))/100,864E5<=d&&(this.da=0,Jd(this)));if(0>c||this.na<this.zb)-1E3>c&&(this.S-=c),c=0;this.jc+=this.Ra;this.Z+=c;a(b,c)}}};
|
|
|
|
|
k.pb=function(a){if(zb(this))return!1;if(this.C.X)return this.i(this.toString()+" busy"),!1;Jd(this);this.C.X=!0;this.C.gc=!0;var b=this.D.run;b&&(b.textContent="Halt");this.A&&(a&&this.A.ob(!0),this.A.start(this.S,Id(this)));setTimeout(this.Dc,0);return!0};k.qb=function(){return 0};k.ba=function(a){var b=!1;if(this.C.X){Ld(this);Vb(this,this.T);this.T=0;this.C.X=!1;if(b=this.D.run)b.textContent="Run";this.A&&this.A.stop(Ba(),Id(this));b=!0}this.C.complete=a;return b};
|
|
|
|
|
function Nd(a){this.kb=+a.model||1170;this.yc=a.addrReset||0;Bd.call(this,a,6666667);this.ub=0;this.Ac=255;1120==this.kb?(this.decode=Od.bind(this),this.ma=this.rd,this.ub=8,this.Ac=-1):(this.decode=Pd.bind(this),this.ma=this.sd);Qd(this);this.J=0;this.I=null;this.Rb=[];this.C.complete=!1}B(Nd,Bd);k=Nd.prototype;k.wc=function(){for(var a=192,b=0;b<this.Rb.length;b++){var c=this.Rb[b];0>c.Zb&&(c.Zb=a,a+=4)}};
|
|
|
|
|
k.reset=function(){this.status("model "+this.kb);this.C.X&&this.ba();Qd(this);Ed(this);this.C.error=!1;this.parent.reset.call(this)};
|
|
|
|
|
function Qd(a){a.U=65536;a.V=32768;a.Y=65535;a.W=32768;a.O=15;a.u=[0,0,0,0,0,0,0,a.yc,-1,-2,-3,-4,-5,-6,-7,-8];a.fb=[0,0,0,0,0,0];a.Pa=[0,0,0,0];a.B=0;a.Za=0;a.Tc=[4,2,0,1];a.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];a.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
|
|
|
|
|
0,0,0,0,0,0,0,0,0]];a.Yb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];a.Pc=[0,0,0,0,0,0,0,0];a.Oc=0;a.L=0;a.F=a.G=0;a.g=a.f=a.Tb=0;a.za=-1;Tb(a)}function Tb(a){a.Ea=0;a.kc=0;a.lc=0;a.Xa=0;a.ra=0;a.Lb=0;a.nb=255;a.La=0;a.Ya=0;a.Qa=262143;a.Ub=0;a.va=0;a.I=null;a.w&&(Rd(a),a.gd=Kc(a.w))}function Rd(a){a.La?(a.P=65536,a.Sb=a.Xa&16?4186112:253952,a.aa=a.vd,a.Ba=a.Be,a.$b=a.Bf,Ec(a.w,a.Xa&16?22:18)):(a.P=0,a.Sb=57344,a.aa=a.ud,a.Ba=a.Nc,a.$b=a.uc,Ec(a.w,16))}
|
|
|
|
|
function cd(a){var b=a.Ea;b&57344||(b=b&-3199|a.Ya<<5|a.Za<<1);return b}function dd(a,b){b&=-3073;if(a.Ea!=b){b&57344&&!(a.Ea&57344)&&(a.kc=a.va>>16&65535,a.lc=a.va&65535);a.Ea=b;a.Ya=b>>5&3;a.Za=b>>1&15;var c=0;b&257&&(c=4,b&1&&(c|=2));a.La!=c&&(a.La=c,Rd(a))}}function ed(a){a.Ea&57344||(a.kc=a.va>>16&65535);a=a.kc;a&65280&&(a=(a<<8|a>>8)&65535);return a}function fd(a){a.Ea&57344||(a.lc=a.va&65535);return a.lc}
|
|
|
|
|
function gd(a,b){1170>a.kb&&(b&=-49);a.Xa!=b&&(a.Xa=b,a.Qa=b&16?4194303:262143,Rd(a))}k.Ic=function(){return 0};k.save=function(){var a=new S(this);a.set(0,[]);a.set(1,[this.da,this.lb]);a.set(2,Jc(this.w));return a.data()};
|
|
|
|
|
k.restore=function(a){var b=a[1];this.da=b[1];Jd(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.K){for(var f=0,g=Array(b.K),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)g[f++]=m;e=g}f=b.ea[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function Sd(a){return a.U&65536?1:0}function Td(a){return a.V&32768?2:0}function Ud(a){return a.Y&65535?0:4}function Vd(a){return a.W&32768?8:0}
|
|
|
|
|
function Wd(a){var b=a.u[7];a.va=b;var c=a.Ba(b);a.u[7]=b+2&65535;return c}function Xd(a,b){var c=a.u[7];a.u[7]=c+b&65535;return c}function T(a,b){a.u[7]=b&65535}function Rc(a,b,c,d){c={Zb:b,mb:c,message:d||0,next:null};c.name=Db[b];a.Rb.push(c);return c}function Yd(a,b){var c=a.I;if(c==b)a.I=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.I&&(a.L|=1)}
|
|
|
|
|
function Pc(a,b){if(b!=a.I){var c=a.I;if(!c||c.mb<=b.mb)b.next=c,a.I=b;else{do{var d=c.next;if(!d||d.mb<=b.mb){b.next=d;c.next=b;break}c=d}while(c)}}a.L|=1;b.message&&I(a,b.message|8)&&G(a,"setIRQ(vector="+na(b.Zb)+",priority="+b.mb+")",!0,!0)}function bd(a,b){Yd(a,b);b.message&&I(a,b.message|8)&&G(a,"clearIRQ(vector="+na(b.Zb)+",priority="+b.mb+")",!0,!0)}function se(a){return a.L&64?(a.sa(168,64,-6),!0):a.L&32?(a.sa(4,32,-5),!0):a.L&16?(a.sa(12,16,-7),!0):!1}
|
|
|
|
|
function id(a){return a.O=a.O&63728|Vd(a)|Ud(a)|Td(a)|Sd(a)}function jd(a,b){a.W=b<<12;a.Y=~b&4;a.V=b<<14;a.U=b<<16;if((b^a.O)&2048)for(var c=a.fb.length;0<=--c;){var d=a.u[c];a.u[c]=a.fb[c];a.fb[c]=d}a.B=b>>14&3;c=a.O>>14&3;a.B!=c&&(a.Pa[c]=a.u[6],a.u[6]=a.Pa[a.B]);a.O=b;a.L&=-3;a.L|=a.I?2:1}function hd(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.L|=1}a.Lb=b}k.Fa=function(a){this.W=this.Y=a;this.V=0};k.rb=function(a,b){this.W=this.Y=this.U=a;this.V=b||0};
|
|
|
|
|
function te(a,b){a.W=a.Y=a.U=b;a.V=a.W^a.U>>1}function ue(a,b,c,d){a.W=a.Y=a.U=b;a.V=(c^d)&(d^b)}
|
|
|
|
|
k.sa=function(a,b,c){if(!this.J){0>this.za?this.za=id(this):this.B||(c=-4);-4==c&&(this.L&256&&(c=-1),this.L|=256,this.ra|=4,this.u[6]=a=4);if(-1!=c){this.va=a|4143316992;this.B=0;var d=this.Ba(a|this.P),e=this.Ba(a+2&65535|this.P);jd(this,e&-12289|this.za>>2&12288);ve(this,this.za);ve(this,this.u[7]);T(this,d)}this.b-=5;this.L&=~(b|19);this.L|=129;this.za=-1;this.qd=a;this.od=c;-1==c&&this.ba();if(-4<=c)throw a;}};
|
|
|
|
|
function we(a){var b=xe(a),c=xe(a)&-1793;a.O&49152&&(c=c&-225|a.O&63712);T(a,b);jd(a,c);a.L&=-17}k.Oa=function(a){var b=a>>13&31;31>b&&(a=this.Xa&32?this.Yb[b]+(a&8190)&4194302:a&-3932161);return a};
|
|
|
|
|
function mc(a,b,c){var d,e,f;if(!(c&a.La))return f=b&65535,57344<=f&&(f|=a.Sb),f;d=b>>13;a.Xa&a.Tc[a.B]||(d&=7);e=a.R[a.B][d];f=(a.ja[a.B][d]<<6)+(b&8191)&a.Qa;3932160<=f&&(f=a.Oa(f));if(a.J)return f;f>=a.gd&&f<a.Sb?(a.ra|=32,a.sa(4,0,f)):f&1&&!(c&1)&&(a.ra|=64,a.sa(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
|
|
|
|
|
8128)&&(g|=16384));a.R[a.B][d]=e;if(f!=(4194170&a.Qa)||a.B)a.Ya=a.B,a.Za=d;g&&(g&57344&&(0<=a.za&&(g|=128),a.Ea&57344||(g|=a.Ea&4096|a.Ya<<5|a.Za<<1,dd(a,a.Ea&-61695|g&61694)),a.sa(168,64,-2)),a.Ea&61440||!(f<(4191360&a.Qa)||f>(4194239&a.Qa))||(a.Ea|=4096,a.Ea&512&&(a.L|=64)));return f}function ye(a,b){return a.w.dc(b)}function xe(a){var b=a.Ba(a.u[6]|a.P);a.u[6]=a.u[6]+2&65535;return b}
|
|
|
|
|
function ve(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.va=a.va&65535|(a.va&-65536)<<8|16121856;a.L&256||a.ma(4,-2,c);a.$b(c,b)}
|
|
|
|
|
function ze(a,b,c,d){var e,f,g=d&8?0:a.P;switch(b){case 0:return a.sa(4,0,-3),0;case 1:return 6==c&&a.ma(d,0,a.u[6]),a.b-=3,7==c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];6==c&&a.ma(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!=c&&(e|=g);e=a.Ba(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;6==c&&a.ma(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!=c&&(e|=g);e=a.Ba(e)|g;a.b-=8;break;case 6:return e=a.Ba(Xd(a,2)),e=e+a.u[c]&65535,6==c&&a.ma(d,
|
|
|
|
|
0,e),a.b-=6,e|g;case 7:return e=a.Ba(Xd(a,2)),e=e+a.u[c]&65535,e=a.Ba(e|a.P),a.b-=10,e|g}a.u[c]=a.u[c]+f&65535;a.va=a.va&65535|(a.va&-65536)<<8|(f<<3&248|c)<<16;return e}k.rd=function(a,b,c){!this.B&&0>=b&&c<=this.nb&&(this.L|=32)};k.sd=function(a,b,c){this.B||(65534<=c&&(c|=-65536),a&4&&c<=this.nb&&(c<=this.nb-32?this.sa(4,0,-4):(this.ra|=8,this.L|=32)))};function oc(a,b){a.J++;b=a.Nc(mc(a,b,2));a.J--;return b}k.ud=function(a,b,c){a=ze(this,a,b,c);3932160<=a&&(a=this.Oa(a));return a};
|
|
|
|
|
k.vd=function(a,b,c){return mc(this,ze(this,a,b,c),c)};k.Nc=function(a){3932160<=a&&(a=this.Oa(a));return this.w.ua(this.Ub=a)};k.Be=function(a){return this.w.ua(this.Ub=mc(this,a,2))};k.uc=function(a,b){3932160<=a&&(a=this.Oa(a));this.w.Bb(this.Ub=a,b)};k.Bf=function(a,b){this.w.Bb(this.Ub=mc(this,a,4),b)};
|
|
|
|
|
function Ae(a,b,c){var d=a.f=b&7;(b=a.g=(b&56)>>3)?(d=ze(a,b,d,2),c&65536||61440!==(a.O&61440)&&(d&=65535),a.B=a.O>>12&3,c=a.Ba(d|c&a.P),a.B=a.O>>14&3):c=6!=d||(a.O>>2&12288)===(a.O&12288)?a.u[d]:a.Pa[a.O>>12&3];return c}function Be(a,b,c,d){a.va=a.va&65535|1441792;var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=ze(a,b,e,4),c&65536||(e&=65535),a.B=a.O>>12&3,e=mc(a,e|c&65536,4),a.B=a.O>>14&3,a.w.Bb(e,d)):6!=e||(a.O>>2&12288)===(a.O&12288)?a.u[e]=d:a.Pa[a.O>>12&3]=d}
|
|
|
|
|
function Ce(a,b){b>>=6;var c=a.G=b&7;return(b=a.F=(b&56)>>3)?ye(a,a.aa(b,c,3)):a.u[c+a.ub]&a.Ac}function De(a,b){b>>=6;var c=a.G=b&7;return(b=a.F=(b&56)>>3)?a.w.ua(a.aa(b,c,2)):a.u[c+a.ub]}function Ee(a,b){var c=a.f=b&7;b=a.g=(b&56)>>3;return ze(a,b,c,8)}function Fe(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?ye(a,a.aa(b,c,3)):a.u[c]&255}function Ge(a,b){var c=a.f=b&7;return(b=a.g=(b&56)>>3)?a.w.ua(a.aa(b,c,2)):a.u[c]}
|
|
|
|
|
function U(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.Tb=a.aa(b,e,7),c=0>c?a.u[-c-1]&255:c,c=d.call(a,c,ye(a,e)),e&1&&a.b--,a.w.Mb(e,c)):(b=a.u[e],c=0>c?a.u[-c-1]&255:c,a.u[e]=b&65280|d.call(a,c,b&255))}function V(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,6),a.w.Bb(e,d.call(a,0>c?a.u[-c-1]:c,a.w.ua(e)))):a.u[e]=d.call(a,0>c?a.u[-c-1]:c,a.u[e])}
|
|
|
|
|
function He(a,b,c,d,e){var f=a.f=b&7;(b=a.g=(b&56)>>3)?(d=a.aa(b,f,5),e.call(a,(c=0>c?a.u[-c-1]&255:c)<<8),d&1&&a.b--,a.w.Mb(d,c)):(c?(c=0>c?a.u[-c-1]&255:c,a.u[f]=a.u[f]&~d|c<<24>>24&d):a.u[f]&=~d,e.call(a,c<<8))}function Ie(a,b,c,d){var e=a.f=b&7;(b=a.g=(b&56)>>3)?(e=a.aa(b,e,4),d.call(a,c=0>c?a.u[-c-1]:c),a.w.Bb(e,c)):(a.u[e]=c=0>c?a.u[-c-1]:c,d.call(a,c))}function W(a,b,c){c&&(T(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
|
|
|
|
k.qb=function(a){this.C.complete=!0;var b=this.j?Je(this.j)?1:this.C.gc?-1:0:0,c=a?this.C.gc?0:1:-1;this.C.gc=!1;this.ca=this.b=a;do{if(b){if(Ke(this.j,this.u[7],c)){this.ba();break}c||c++;b++}if(this.L){if(a=this.L&11)if(a=!1,this.L&2){var d=160,e=(this.Lb&224)>>5,f=this.I&&this.I.mb>e?this.I:null;f&&(d=f.Zb,e=f.mb);e>(this.O&224)>>5?(this.L&8&&(Xd(this,2),this.L&=-9),this.sa(d,0,-10),e=!0):e=!1;e&&(f&&Yd(this,f),a=!0);this.I||this.Lb||(this.L&=-3)}else this.L&1&&this.L++;if(a){if(b&&Ke(this.j,this.u[7],
|
|
|
|
|
c)){this.ba();break}if(0>c)break}if(this.L&112&&se(this)){if(b&&Ke(this.j,this.u[7],c)){this.ba();break}if(0>c)break}}this.L=this.L&15|this.O&16;this.decode(Wd(this))}while(0<this.b);return this.C.complete?this.ca-this.b:void 0===this.C.complete?0:-1};bb(function(){for(var a=F(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Nd(d);E(d,c)}});function Le(a,b){var c=b+a;this.W=this.Y=this.U=c;this.V=(a^c)&(b^c);return c&65535}
|
|
|
|
|
function Me(a,b){var c=b+a,d=c<<8;this.W=this.Y=this.U=d;this.V=(a<<8^d)&(b<<8^d);return c&255}function Ne(a,b){a=b<<1;te(this,a);return a&65535}function Oe(a,b){a=b<<1;te(this,a<<8);return a&255}function Pe(a,b){a=b&32768|b>>1|b<<16;te(this,a);return a&65535}function Qe(a,b){a=b&128|b>>1|b<<8;te(this,a<<8);return a&255}function Re(a,b){a=b&~a;this.Fa(a);return a}function Se(a,b){a=b&~a;this.Fa(a<<8);return a}function Te(a,b){a|=b;this.Fa(a);return a}function Ue(a,b){a|=b;this.Fa(a<<8);return a}
|
|
|
|
|
function Ve(a,b){a=~b|65536;this.rb(a);return a&65535}function We(a,b){a=~b|256;this.rb(a<<8);return a&255}function Xe(a,b){this.W=this.Y=a=b-a;this.V=b&(b^a);return a&65535}function Ye(a,b){a=b-a;var c=a<<8;b<<=8;this.W=this.Y=c;this.V=b&(b^c);return a&255}function Ze(a,b){this.W=this.Y=a=b+a;this.V=a&(b^a);return a&65535}function $e(a,b){a=b+a;var c=a<<8;this.W=this.Y=c;this.V=c&(b<<8^c);return a&255}function af(a,b){a=-b;this.rb(a,a&b&32768);return a&65535}
|
|
|
|
|
function bf(a,b){a=-b;this.rb(a<<8,(a&b&128)<<8);return a&255}function cf(a,b){a=b<<1|this.U>>16&1;te(this,a);return a&65535}function df(a,b){a=b<<1|this.U>>16&1;te(this,a<<8);return a&255}function ef(a,b){a=(this.U&65536|b)>>1|b<<16;te(this,a);return a&65535}function ff(a,b){a=((this.U&65536)>>8|b)>>1|b<<8;te(this,a<<8);return a&255}function gf(a,b){var c=b-a;ue(this,c,a,b);return c&65535}function hf(a,b){var c=b-a;ue(this,c<<8,a<<8,b<<8);return c&255}
|
|
|
|
|
function jf(a,b){this.W=this.Y=b&65280;this.V=this.U=0;return(b<<8|b>>8)&65535}function kf(a,b){a^=b;this.Fa(a);return a&65535}function lf(a){V(this,a,De(this,a),Le);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
|
|
|
|
|
function mf(a){var b=Ge(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.U=this.V=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.U=c<<17-b,c>>=b;else if(b)if(16<b)this.V=c,c=0;else{this.U=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.V=32768)}this.u[a]=c&65535;this.W=this.Y=c;this.b-=(this.g?6:7)+b}
|
|
|
|
|
function nf(a){var b=Ge(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.U=this.V=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.U=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.U=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.V=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.W=d>>16;this.Y=d>>16|d;this.b-=(this.g?6:7)+b}function of(a){W(this,a,!Sd(this))}function pf(a){W(this,a,Sd(this))}
|
|
|
|
|
function qf(a){V(this,a,De(this,a),Re);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function rf(a){U(this,a,Ce(this,a),Se);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function sf(a){V(this,a,De(this,a),Te);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function tf(a){U(this,a,Ce(this,a),Ue);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}
|
|
|
|
|
function uf(a){var b=De(this,a);a=Ge(this,a);this.Fa((0>b?this.u[-b-1]:b)&a);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function vf(a){var b=Ce(this,a);a=Fe(this,a);this.Fa(((0>b?this.u[-b-1]&255:b)&a)<<8);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function wf(a){W(this,a,Ud(this))}function xf(a){W(this,a,!Vd(this)==!Td(this))}function yf(a){W(this,a,!Ud(this)&&!Vd(this)==!Td(this))}function zf(a){W(this,a,!Sd(this)&&!Ud(this))}
|
|
|
|
|
function Af(a){W(this,a,Ud(this)||!Vd(this)!=!Td(this))}function Bf(a){W(this,a,Sd(this)||Ud(this))}function Cf(a){W(this,a,!Vd(this)!=!Td(this))}function Df(a){W(this,a,Vd(this))}function Ef(a){W(this,a,!Ud(this))}function Ff(a){W(this,a,!Vd(this))}function Gf(){this.sa(12,0,-9)}function Hf(a){W(this,a,!0)}function If(a){W(this,a,!Td(this))}function Jf(a){W(this,a,Td(this))}function Kf(a){a&1&&(this.U=0);a&2&&(this.V=0);a&4&&(this.Y=1);a&8&&(this.W=0);this.b-=5}
|
|
|
|
|
function Lf(a){var b=De(this,a);a=Ge(this,a);var c=(b=0>b?this.u[-b-1]:b)-a;ue(this,c,a,b);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}function Mf(a){var b=Ce(this,a);a=Fe(this,a);var c=(b=(0>b?this.u[-b-1]&255:b)<<8)-(a<<=8);ue(this,c,a,b);this.b-=this.g?4+(this.G&&6<=this.f?1:0):(this.F?4:3)+(7==this.f?2:0)}
|
|
|
|
|
function Nf(a){var b=Ge(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.U=this.V=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.Y=d>>16|d,this.W=d>>16):(this.V=32768,this.Y=d>>15|d,this.W=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.Y=this.W=0,this.V=32768,this.U=65536,this.b-=7}function Of(){this.sa(24,0,-9);this.b-=20}
|
|
|
|
|
function Pf(){this.O&49152?(this.ra|=128,this.sa(4,0,-8)):(this.v&&1120==this.kb&&this.v.setData(this.u[0],!0),this.j?Qf(this.j):this.ba());this.b-=7}function Rf(){this.sa(16,0,-9);this.b-=20}var Sf=[0,7,7,10,7,11,9,13];function Tf(a){this.K=this.b;T(this,Ee(this,a));this.b=this.K-Sf[this.g]}var Uf=[0,14,14,17,14,18,16,20];function Vf(a){this.K=this.b;var b=Ee(this,a);a=a>>6&7;ve(this,this.u[a]);this.u[a]=this.u[7];T(this,b);this.b=this.K-Uf[this.g]}
|
|
|
|
|
var Wf=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Xf(a){var b=De(this,a);this.K=this.b;Ie(this,a,b,this.Fa);this.b=this.K-Wf[(this.F?8:0)+this.g]+(7!=this.f||this.g?0:2)}function Yf(a){var b=Ce(this,a);He(this,a,b,65535,this.Fa);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}var Zf=[7,13,13,17,14,18,17,21];
|
|
|
|
|
function $f(a){var b=Ge(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.W=b>>16;this.Y=this.W|b;this.V=0;this.U=-32768>b||32767<b?65536:0;this.b-=23}function ag(){this.b-=5}function bg(){this.O&49152||(this.w.reset(),Tb(this),this.v&&this.v.setData(this.u[0],!0));this.b-=667}function cg(a){if(a&8)X.call(this,a);else{var b=xe(this);a&=7;7==a?T(this,b):(T(this,this.u[a]),this.u[a]=b);this.b-=9}}
|
|
|
|
|
function dg(){we(this);this.b-=13}function eg(a){a&1&&(this.U=65536);a&2&&(this.V=32768);a&4&&(this.Y=0);a&8&&(this.W=32768);this.b-=5}function fg(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)T(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function gg(a){V(this,a,De(this,a),gf);this.b-=this.g?9+(this.G&&6<=this.f?1:0):(this.F?5:3)+(7==this.f?2:0)}function hg(a){V(this,a,0,jf);this.b-=this.g?9:3+(7==this.f?2:0)}function ig(){this.sa(28,0,-9)}
|
|
|
|
|
function jg(){this.v&&(this.v.sc(this.u[7],!0),this.v.setData(this.u[0],!0));this.L|=8;Xd(this,-2);this.b-=3}function kg(a){V(this,a,this.u[(a>>6&7)+this.ub],kf);this.b-=this.g?9:3+(7==this.f?2:0)}function X(a){var b;if(b=this.j)b=this.j,I(b,1)?(G(b,"undefined opcode "+L(b,a),!0,!0),b=Qf(b)):b=!1;b||this.sa(8,0,-9)}function Od(a){lg[a>>12].call(this,a)}function mg(a){ng[a>>6&3].call(this,a)}function og(a){pg[a>>6&3].call(this,a)}function qg(a){rg[a>>6&3].call(this,a)}
|
|
|
|
|
function sg(a){tg[a&15].call(this,a)}function ug(a){vg[a&15].call(this,a)}function wg(a){xg[a>>6&3].call(this,a)}function yg(a){zg[a>>6&3].call(this,a)}function Ag(a){Bg[a>>6&3].call(this,a)}
|
|
|
|
|
var lg=[function(a){Cg[a>>8&15].call(this,a)},Xf,Lf,uf,qf,sf,lf,X,function(a){Dg[a>>8&15].call(this,a)},Yf,Mf,vf,rf,tf,gg,X],Cg=[function(a){Eg[a>>4&15].call(this,a)},Hf,Ef,wf,xf,Cf,yf,Af,Vf,Vf,mg,og,qg,X,X,X],ng=[function(a){Ie(this,a,0,this.rb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ve);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,Ze);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,1,Xe);this.b-=this.g?9:3+(7==this.f?2:0)}],pg=[function(a){V(this,a,0,af);
|
|
|
|
|
this.b-=this.g?11:6},function(a){V(this,a,Sd(this)?1:0,Le);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,Sd(this)?1:0,gf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Ge(this,a);this.rb(a);this.b-=this.g?4:3+(7==this.f?2:0)}],rg=[function(a){V(this,a,0,ef);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,cf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Pe);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){V(this,a,0,Ne);this.b-=this.g?9:3+(7==this.f?2:0)}],Eg=
|
|
|
|
|
[function(a){Fg[a&15].call(this,a)},X,X,X,Tf,Tf,Tf,Tf,cg,X,sg,ug,hg,hg,hg,hg],Fg=[Pf,jg,dg,Gf,Rf,bg,X,X,X,X,X,X,X,X,X,X],tg=[ag,function(){this.U=0;this.b-=5},function(){this.V=0;this.b-=5},Kf,function(){this.Y=1;this.b-=5},Kf,Kf,Kf,function(){this.W=0;this.b-=5},Kf,Kf,Kf,Kf,Kf,Kf,Kf],vg=[ag,function(){this.U=65536;this.b-=5},function(){this.V=32768;this.b-=5},eg,function(){this.Y=0;this.b-=5},eg,eg,eg,function(){this.W=32768;this.b-=5},eg,eg,eg,eg,eg,eg,eg],Dg=[Ff,Df,zf,Bf,If,Jf,of,pf,Of,ig,wg,yg,
|
|
|
|
|
Ag,X,X,X],xg=[function(a){He(this,a,0,255,this.rb);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){U(this,a,0,We);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){U(this,a,1,$e);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Ye);this.b-=this.g?9:3+(7==this.f?2:0)}],zg=[function(a){U(this,a,0,bf);this.b-=this.g?11:6},function(a){U(this,a,Sd(this)?1:0,Me);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){U(this,a,Sd(this)?1:0,hf);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){a=Fe(this,a);
|
|
|
|
|
this.rb(a<<8);this.b-=this.g?4:3+(7==this.f?2:0)}],Bg=[function(a){U(this,a,0,ff);this.b-=this.g?9+(this.Tb&1):3+(7==this.f?2:0)},function(a){U(this,a,0,df);this.b-=this.g?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Qe);this.b-=this.g?9+(this.Tb&1):3+(7==this.f?2:0)},function(a){U(this,a,0,Oe);this.b-=this.g?9:3+(7==this.f?2:0)}];function Pd(a){Gg[a>>12].call(this,a)}
|
|
|
|
|
var Gg=[function(a){Hg[a>>8&15].call(this,a)},Xf,Lf,uf,qf,sf,lf,function(a){Ig[a>>8&15].call(this,a)},function(a){Jg[a>>8&15].call(this,a)},Yf,Mf,vf,rf,tf,gg,X],Hg=[function(a){Kg[a>>4&15].call(this,a)},Hf,Ef,wf,xf,Cf,yf,Af,Vf,Vf,mg,og,qg,function(a){Lg[a>>6&3].call(this,a)},X,X],Lg=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Ba(a|this.P);T(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Ae(this,a,0);this.Fa(a);ve(this,a);this.b-=11},function(a){var b=xe(this);this.K=
|
|
|
|
|
this.b;this.Fa(b);Be(this,a,0,b);this.b=this.K-Zf[this.g]},function(a){Ie(this,a,Vd(this)?65535:0,this.Fa);this.b-=this.g?9:3+(7==this.f?2:0)}],Kg=[function(a){Mg[a&15].call(this,a)},X,X,X,Tf,Tf,Tf,Tf,cg,function(a){a&8?(this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.L|=1,this.L&=-3),this.b-=5):X.call(this,a)},sg,ug,hg,hg,hg,hg],Mg=[Pf,jg,function(){we(this);this.L|=this.O&16;this.b-=13},Gf,Rf,bg,dg,function(){this.sa(8,0,-9)},X,X,X,X,X,X,X,X],Ig=[$f,$f,Nf,Nf,mf,mf,nf,nf,kg,kg,X,X,X,X,fg,fg],Jg=
|
|
|
|
|
[Ff,Df,zf,Bf,If,Jf,of,pf,Of,ig,wg,yg,Ag,function(a){Ng[a>>6&3].call(this,a)},X,X],Ng=[X,function(a){a=Ae(this,a,65536);this.Fa(a);ve(this,a);this.b-=11},function(a){var b=xe(this);this.K=this.b;this.Fa(b);Be(this,a,65536,b);this.b=this.K-Zf[this.g]},X];
|
|
|
|
|
function Og(a){x.call(this,"ROM",a,Og,128);this.ia=this.A=null;this.B=a.addr;this.f=a.size;this.F=!1;this.v=a.alias;this.g=a.file;this.G=u(this.g);if(this.g){a=this.g;var b=oa(this.G);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){f?(c.N("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(mb(c.hb,a,b),(a=Ea(a,b))?(c.A=a.ga,c.ia=a.ia):c.g=null);Pg(c)})}}B(Og);k=Og.prototype;
|
|
|
|
|
k.Ga=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Pg(this)};k.Ja=function(){this.ia&&(this.j&&Qg(this.j,this.id,this.B,this.f,this.ia),delete this.ia);return!0};k.Ia=function(){return!0};
|
|
|
|
|
function Pg(a){if(!yb(a)){if(a.g){if(!a.A||!a.w)return;a.f||(a.f=a.A.length);if(a.A.length!=a.f)Ab(a,"ROM size ("+p(a.A.length,8,!0)+") does not match specified size ("+p(a.f,8,!0)+")");else{var b;a:{b=a.B;a.status(a.f+"-byte ROM at "+na(b));if(57344<=b&&b<57344+vc){var c={};b=(c[b]=[Og.prototype.pe,Og.prototype.pf,null,null,null,a.f>>1],c);if(Kb(a.w,a,b)){b=a.F=!0;break a}}else if(Bc(a.w,b,a.f,qd)){for(c=0;c<a.A.length;c++)Ic(a.w,b+c,a.A[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.v?b.push(a.v):
|
|
|
|
|
null!=a.v&&a.v.length&&(b=a.v);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,g=d.f,h=[],l=d.B>>>f.pa;0<g&&l<f.ea.length;)h.push(f.ea[l++]),g-=f.Ha;f=d.w;d=d.f;g=0;for(e>>>=f.pa;0<d&&e<f.ea.length;){l=h[g++];if(!l)break;f.ea[e++]=l;d-=f.Ha}}a.F||delete a.A}}}J(a)}}k.pe=function(a){return this.A[a-this.B]};k.pf=function(){};bb(function(){for(var a=F(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Og(d);E(d,c)}});
|
|
|
|
|
function Rg(a){x.call(this,"RAM",a,Rg);this.ia=this.A=null;this.g=a.addr;this.v=a.size;this.Ta=a.load;this.Sa=a.exec;this.B=!1;this.f=a.file;this.F=u(this.f);if(this.f){a=this.f;var b=oa(this.F);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.f+"&format=bytes&decimal=true");var c=this;Da(a,null,!0,function(a,b,f){f?(c.N("Unable to load RAM resource (error "+f+": "+a+")"),c.f=null):(mb(c.hb,a,b),(a=Ea(a,b))?(c.A=a.ga,c.ia=a.ia,null==c.Ta&&(c.Ta=a.Ta),null==c.Sa&&(c.Sa=a.Sa)):c.f=null);Sg(c)})}}
|
|
|
|
|
B(Rg);Rg.prototype.Ga=function(a,b,c,d){this.w=b;this.b=c;this.j=d;Sg(this)};Rg.prototype.Ja=function(){this.ia&&(this.j&&Qg(this.j,this.id,this.g,this.v,this.ia),delete this.ia);return!0};Rg.prototype.Ia=function(){return!0};function Sg(a){if(a.w&&(!a.B&&a.v&&(Bc(a.w,a.g,a.v,Lc)?a.B=!0:a.v=0),!yb(a))){if(!a.B)v("No RAM allocated");else if(a.f){if(!a.A||!a.w)return;Tg(a,a.A,a.Ta,a.Sa,a.g)}J(a)}}
|
|
|
|
|
Rg.prototype.reset=function(){if(this.B){for(var a=this.w,b=this.g,c=this.v,d=b&a.w,b=b>>>a.pa;0<c&&b<a.ea.length;){var e=a.ea[b],f=c,g=0,h,d=d||0,g=g&255;void 0===f&&(f=e.size);if(Bb&&e.D)for(h=d;f--&&h<e.D.length;h++)e.D[h]=g;else for(h=d;f--&&h<e.size;h++)e.G(d,g,e.H+d);c-=a.Ha;b++;d=0}this.A&&Tg(this,this.A,this.Ta,this.Sa,this.g,!0)}};
|
|
|
|
|
function Tg(a,b,c,d,e,f){var g=!1;if(null==c)for(var h=0;h<b.length-1;){var l=b[h]&255|(b[h+1]&255)<<8;if(l)if(l&255){var m=h;if(1!=l){G(a,"invalid signature ("+q(l)+") at offset "+q(m),4096);break}if(h+6>=b.length){G(a,"invalid block at offset "+q(m),4096);break}for(var h=h+2,n=b[h++]&255|(b[h++]&255)<<8,r=b[h++]&255|(b[h++]&255)<<8,l=l+((n&255)+(n>>8)+(r&255)+(r>>8)),w=h,t=n-=6;0<n&&h<b.length;)l+=b[h++]&255,n--;if(n||h>=b.length){G(a,"insufficient data for block at offset "+q(m),4096);break}l+=
|
|
|
|
|
b[h++]&255;if(l&255){G(a,"invalid checksum ("+p(l,2,!0)+") for block at offset "+q(m),4096);break}if(t)for(G(a,"loading "+q(t)+" bytes at "+q(r)+"-"+q(r+t-1),4096);t--;)Ic(a.w,r++,b[w++]&255);else r&1?a.b.ba():null==d&&(d=r),null!=d&&G(a,"starting address: "+q(d),4096);g=!0}else h++;else h+=2}if(!g&&(null==c&&(c=e),null!=c)){for(g=0;g<b.length;g++)Ic(a.w,c+g,b[g]);g=!0}g&&null!=d&&(a=a.b,a.yc=d,a.w.reset(),Tb(a),T(a,d),jd(a,0),!f&&a.j&&(a.ba()||Gd(a.j)));return g}
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Rg(d);E(d,c)}});function Ug(a){x.call(this,"Keyboard",a,Ug,1024);J(this)}B(Ug);Ug.prototype.wa=function(){return!1};Ug.prototype.Ga=function(a,b,c,d){this.A=a;this.b=c;this.j=d};bb(function(){for(var a=F(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Ug(d);E(d,c)}});
|
|
|
|
|
function Vg(a){this.K=a.adapter;this.Z=a.baudReceive||9600;this.ta=a.baudTransmit||9600;this.ya=a.upperCase;this.v=this.F=null;this.ma=a.tabSize;this.ca=a.charBOL;this.G=0;this.J=!0;x.call(this,"SerialPort",a,Vg,262144);var b=a.binding;if("console"==b)this.F="";else{var c;a=Wg;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.D[b])&&this.wa(null,a,b))}this.B=this.P=this.S=null;this.exports={connect:this.Lc,receiveData:this.fc,receiveStatus:this.Ee}}B(Vg);var Wg="buffer";k=Vg.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case Wg:return this.D[b]=this.v=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.xc:la.Xc:46==c?b=la.xc:a.ctrlKey&&c>=la.vc&&c<=la.fd&&(b=c-(la.vc-la.Uc));b&&(a.preventDefault&&a.preventDefault(),d.fc(b));return!0},c.onkeypress=function(a){a=a||window.event;var b=a.which||a.keyCode;a.altKey&&b==la.Wc&&(b=la.Vc);d.fc(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.fc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
|
|
|
|
|
k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;var e=this;this.da=Rc(this.b,this.K?-1:48,4,262144);this.na=Oc(this.b,function(){var a;a=-1;e.I.length&&(a=e.I.shift()&255,G(e,"receiveByte("+p(a,2,!0)+")"),e.ya&&97<=a&&122>a&&(a-=32),Qc(e.b,e.na,1E3/Math.round(e.Z/10)));0<=a&&(e.M=a,e.f&128?e.M|=49152:e.f|=128,e.f&64&&Pc(c,e.da))});this.T=Rc(this.b,this.K?-1:52,4,262144);this.za=Oc(this.b,function(){e.g|=128;e.g&64&&Pc(c,e.T)});Kb(b,this,Xg,this.K?64832+8*(this.K-1)-65392:0);Mb(b,this.reset.bind(this));
|
|
|
|
|
J(this)};k.Lc=function(a){if(!this.B){var b=Dd(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.gb)return;c=ya(c[1]);if(this.B=ob(c)){var e=this.B.exports;if(e){var f=e.connect;f&&f.call(this.B,this.J);if(this.P=e.receiveData){this.J=a;this.S=e.receiveStatus;this.status(this.hb+"."+d+" connected to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
|
|
|
|
k.Ja=function(a,b){if(!b)if(this.Lc(this.J),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ia=function(a){return a?this.save():!0};k.reset=function(){Yg(this)};k.save=function(){var a=new S(this);a.set(0,[]);return a.data()};k.restore=function(){return Yg(this)};function Yg(a){a.M=0;a.f=8192;a.g=128;a.I=[];return!0}
|
|
|
|
|
k.fc=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);Qc(this.b,this.na,1E3/Math.round(this.Z/10));return!0};k.Ee=function(a){var b=this.f;this.f&=-12289;a&32&&(this.f|=8192);a&256&&(this.f|=4096);b!=this.f&&(this.f|=32768,this.f&32&&Pc(this.b,this.da))};k.ce=function(){var a=this.f&65534;this.f&=-32769;return a};
|
|
|
|
|
k.af=function(a){var b=a^this.f;this.f=this.f&-112|a&111;this.S&&b&6&&(b=0,b=this.J?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.S.call(this.B,b))};k.be=function(){this.f&=-129;return this.M};k.$e=function(){};k.De=function(){return this.g};k.Df=function(a){this.g&128&&(a&64?Pc(this.b,this.T):bd(this.b,this.T));this.g=this.g&-70|a&69};k.Ce=function(){return 0};
|
|
|
|
|
k.Cf=function(a){a&=255;G(this,"transmitByte("+p(a,2,!0)+")");this.P&&this.P.call(this.B,a);a&=127;if(this.v)if(13==a)this.G=0;else if(8==a)this.v.value=this.v.value.slice(0,-1),0<this.G&&this.G--;else{if(a){var b;b=(b=za[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.ma||8,c=a-this.G%a,this.ma&&(b=ta("",c)));this.ca&&!this.G&&c&&(b=String.fromCharCode(this.ca)+b);this.v.value+=b;this.v.scrollTop=this.v.scrollHeight;this.G+=c}}else if(null!=this.F){if(10==a||1024<=
|
|
|
|
|
this.F.length)this.i(this.F),this.F="";10!=a&&(this.F+=String.fromCharCode(a))}Qc(this.b,this.za,1E3/Math.round(this.ta/10));this.g&=-129};var sh={},Xg=(sh[65392]=[null,null,Vg.prototype.ce,Vg.prototype.af,"RCSR"],sh[65394]=[null,null,Vg.prototype.be,Vg.prototype.$e,"RBUF"],sh[65396]=[null,null,Vg.prototype.De,Vg.prototype.Df,"XCSR"],sh[65398]=[null,null,Vg.prototype.Ce,Vg.prototype.Cf,"XBUF"],sh);
|
|
|
|
|
bb(function(){for(var a=F(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Vg(d);E(d,c)}});function kd(a){x.call(this,"PC11",a,kd);this.g=a.autoMount||null;this.F=0;this.ca=a.baudReceive||3600;this.J=this.K=this.f=0;this.I=[];this.G=th;this.v=uh;this.M=this.B="";this.ga=this.Ta=this.Sa=null;this.T=-1;this.P=!Ma("Mobi")&&window&&"FileReader"in window}B(kd);var th="",uh=0;k=kd.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this,e=uh;switch(b){case "listTapes":return this.D[b]=c,c.onchange=function(){var a=d.D.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.D[b]=c,!0;case "loadTape":e=2;case "attachTape":return e||(e=1),this.D[b]=c,c.onclick=
|
|
|
|
|
function(){var a=d.D.listTapes;a&&vh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.P){c.parentNode.removeChild(c);break}this.D[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;vh(d,u(b,!0),b,1,a)}return!1};return!0;case "readProgress":return this.D[b]=c,!0}return!1};
|
|
|
|
|
k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;this.Z=wh(a);var e=this;if((this.g=Dd(this.A,"autoMount")||this.g)&&"string"==typeof this.g)try{this.g=eval("("+this.g+")")}catch(f){v("PC11 auto-mount error: "+f.message+" ("+this.g+")"),this.g=null}this.S=Rc(this.b,56,4,4096);this.da=Oc(this.b,function(){1==(e.f&32769)&&!(e.f&128)&&e.J<e.I.length&&(e.K=e.I[e.J++]&255,xh(e,e.J/e.I.length*100),e.f|=128,e.f&=-2049,e.f&64&&Pc(e.b,e.S))});Kb(b,this,yh);Mb(b,this.reset.bind(this));zh(this,"None",
|
|
|
|
|
th,!0);this.P&&zh(this,"Local Tape","?");zh(this,"Remote Tape","??");Ah(this)||J(this)};k.Ja=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Ia=function(a){return a?this.save():!0};k.reset=function(){this.f&=-2241;this.K=0};
|
|
|
|
|
function Ah(a){a.F=0;if(a.g){var b=a.g.path||"",c;if(!(c=a.g.name))a:{if((c=a.D.listTapes)&&c.options)for(var d=0;d<c.options.length;d++){var e=c.options[d];if(e.value==b){c=e.text;break a}}c=u(b,!0)}b&&c?Bh(a,c,b,1,!0):Ch(a)}return!!a.F}
|
|
|
|
|
function vh(a,b,c,d,e){if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local tape.');else{if("??"==c){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"');a.G="??"}else a.G=c;Bh(a,b,c,d,!1,e)}else Dh(a,!1)}
|
|
|
|
|
function Bh(a,b,c,d,e,f){var g=-1;if(a.B.toLowerCase()!=c.toLowerCase()||a.v!=d)g++,Dh(a,!0),a.C.jb?a.N("PC11 busy"):(e&&(a.F++,I(a)&&G(a,"auto-loading tape: "+b)),Eh(a,b,c,d,f)?g++:a.C.jb=!0);g&&Fh(a,a.M,a.B,a.v,a.ga,a.Ta,a.Sa)}
|
|
|
|
|
function Eh(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),Fh(a,b,c,d,e),a.G="?");Ch(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=oa(c),f="json"==e||"gz"==e?encodeURI(c):Fa()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Da(f,null,!0,function(e,f,g){var h=0>g&&a.A&&!a.A.C.la;g?a.N('Unable to load tape "'+b+'" (error '+g+": "+e+")",h):(mb(a.hb,e,f),(e=Ea(e,f))&&Fh(a,b,c,d,e.ga,e.Ta,
|
|
|
|
|
e.Sa));a.C.jb=!1;a.F&&(a.F--,a.F||J(a));Ch(a)})}function zh(a,b,c,d){if((a=a.D.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Ch(a){var b=a.D.listTapes;if(b&&b.options){a=a.G||a.B;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function xh(a,b){b|=0;if(b!==a.T){var c=a.D.readProgress;c&&(c=(c=F(c,"pcjs-progress-bar"))&&c[0])&&c.style&&(c.style.width=b+"%");a.T=b}}
|
|
|
|
|
function Fh(a,b,c,d,e,f,g){a.M=b;a.B=c;a.v=d;a.ga=e;a.Ta=f;a.Sa=g;2==d?a.Z&&Tg(a.Z,e,f,g)?a.status('Loaded tape "'+b+'"'):(a.M="",a.B="",a.G=th,a.v=uh,a.N('No load address available for tape "'+b+'"')):(a.J=0,a.I=e,a.status('Attached tape "'+b+'"'),xh(a,0))}function Dh(a,b){if(a.B||!1===b)a.M="",a.B="",b||(a.v&&a.status(1==a.v?"tape detached":"tape unloaded"),a.G=th,a.v=uh,Ch(a))}k.save=function(){return(new S(this)).data()};k.restore=function(){return!0};k.Wd=function(){return this.f&65534};
|
|
|
|
|
k.Ue=function(a){a&1&&(this.f&32768?(a&=-2,this.f&64&&Pc(this.b,this.S)):(this.f&=-129,this.f|=2048,this.K=0,Qc(this.b,this.da,1E3/Math.round(this.ca/10))));this.f=this.f&-66|a&65};k.Vd=function(){this.f&=-129;this.f|=2048;return this.K};k.Te=function(){};var Gh={},yh=(Gh[65384]=[null,null,kd.prototype.Wd,kd.prototype.Ue,"PRS"],Gh[65386]=[null,null,kd.prototype.Vd,kd.prototype.Te,"PRB"],Gh);
|
|
|
|
|
function Hh(a,b,c){x.call(this,"Disk",{id:a.hb+".disk"+p(++Ih,4)},Hh,8192);this.controller=a;this.A=a.A;this.j=a.j;this.v=b;this.Ua=b.name;this.bc=b.bc;Jh(this,c,b.fa,b.ka,b.ha,b.Aa);J(this)}var Ih=0;B(Hh);k=Hh.prototype;k.Ga=function(a,b,c,d){this.j=d};
|
|
|
|
|
function Jh(a,b,c,d,e,f){a.mode=b;a.fa=c;a.ka=d;a.ha=e;a.Aa=f;a.b=[];if("preload"!=a.mode){b=Array(a.fa);for(c=0;c<b.length;c++){d=Array(a.ka);for(e=0;e<d.length;e++){f=Array(a.ha);for(var g=1;g<=f.length;g++)f[g-1]=Kh(null,c,e,g,a.Aa,0);d[e]=f}b[c]=d}a.b=b}a.f=null}
|
|
|
|
|
function Lh(a,b,c,d,e){var f=c;if(a.w)return!0;a.Ua=b;a.Ka=c;a.rc=u(c);a.w=e;a.B=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.fa=e[0];a.ka=e[1];a.ha=e[2];a.Aa=e[3]||512;c=a.Aa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.fa);for(d=0;d<a.b.length;d++)for(var w=a.b[d]=Array(a.ka),t=0;t<w.length;t++)for(var A=w[t]=Array(a.ha),y=0;y<A.length;y++){for(var C=Kh(null,d,t,y+1,a.Aa,0),ra=C.data,Oa=0;Oa<c;Oa++,f+=4)var Q=ra[Oa]=b.getInt32(f,
|
|
|
|
|
!0),e=e+Q&-1;C.Ma=c;A[y]=C}a.f=e;c=a}else a.N("Unrecognized disk format ("+d+" bytes)");a.w&&(a.w.call(a.controller,a.v,c,a.Ua,a.Ka),a.w=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=oa(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):pa(c,"/")&&(d="dir"),f=Fa()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.bc?"":e)+"&format=json"));return!!Da(f,
|
|
|
|
|
null,!0,function(b,c,d){Mh(a,b,c,d)})}
|
|
|
|
|
function Mh(a,b,c,d){var e=null;a.g=!1;var f=0>d&&a.A&&!a.A.C.la;if(d)a.controller.N('Unable to load disk "'+a.Ua+'" (error '+d+": "+b+")",f);else{mb(a.controller.hb,b,c);try{if(0<u(a.rc,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.Ua]:h=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
|
|
|
|
c+")");if(h.length)if(1==h.length)v(h[0]);else{a.fa=h.length;a.ka=h[0].length;a.ha=h[0][0].length;var l=h[0][0][0];a.Aa=l&&l.length||512;for(d=c=0;d<a.fa;d++)for(f=0;f<a.ka;f++)for(g=0;g<a.ha;g++)if(l=h[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var r=l.data;if(void 0===r){var w=l.bytes;if(void 0!==w&&w.length){for(var t=m<<2,A=w.length;A<t;A++)w[A]=n;Nh(l,w)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}Kh(l,d,f);for(t=
|
|
|
|
|
0;t<r.length;t++)c=c+r[t]&-1}a.b=h;a.f=c;e=a}else v("Empty disk image: "+a.Ua)}catch(y){v("Disk image error ("+b+"): "+y.message)}}a.w&&(a.w.call(a.B,a.v,e,a.Ua,a.Ka),a.w=null)}function Kh(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Eg=b;a.Fg=c;a.Wa=a.Ma=0;a.bb=!1;return a}
|
|
|
|
|
k.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var h=g[b];if(!h&&f.md&&b<f.ka)for(h=g[b]=Array(f.Fc),g=0;g<h.length;g++)h[g]=Kh(null,a,b,g+1,f.qc,0);if(h){for(g=0;g<h.length;g++)if(h[g]&&h[g].sector==c){d=h[g];break}!d&&f.md&&9==f.mc&&(d=h[g]=Kh(null,a,b,f.mc,f.qc,0))}}e&&e(d,!1);return d};function Nh(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
|
|
|
|
|
k.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};k.write=function(a,b,c){if(this.g)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Wa?(a.Ma+=a.Wa-f,a.Wa=f):f>=a.Wa+a.Ma&&(a.Ma+=f-(a.Wa+a.Ma)+1):(a.Wa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
|
|
|
|
|
function Oh(a,b){var c=a.ka*a.ha,d=b/c|0;return d<a.fa?(b%=c,a.seek(d,b/a.ha|0,b%a.ha+1)):null}function Ph(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}function Qh(a){for(var b="",c=0,d;d=Oh(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(Ph(a,d,e));return btoa(b)}
|
|
|
|
|
k.save=function(){var a=0,b=[];b[a++]=[this.Ka,this.f,this.fa,this.ka,this.ha,this.Aa];if(!this.g)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ma){for(var h=[],l=0,m=g.Wa,n=g.Wa+g.Ma;m<n;)h[l++]=g.data[m++];b[a++]=[d,e,f,g.Wa,h]}}return b};
|
|
|
|
|
k.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?Jh(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],l=g[f++],m=g[f++];if(h>=this.b.length||l>=this.b[h].length||m>=this.b[h][l].length){c="sector (CHS="+h+":"+l+":"+m+") out of range ("+
|
|
|
|
|
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.b[h][l][m]){for(l=h.data.length;l<e;)h.data[l++]=h.pattern;l=0;h.Wa=e;for(h.Ma=f.length;e<g;)h.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.N("Unable to restore disk '"+this.Ua+": "+c);return b};
|
|
|
|
|
k.toJSON=function(){var a;a=0;for(var b;b=Oh(this,a++);)Rh(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
|
|
|
|
|
function Rh(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function R(a){x.call(this,"RK11",a,R,65536);this.J=a.autoMount||{};this.F=0;this.g=Array(8);this.K=!Ma("Mobi")&&window&&"FileReader"in window}B(R);k=R.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){v("RK11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&Sh(d,a)},!0;case "loadDrive":return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=d.D.listDisks;a&&Th(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.K){c.parentNode.removeChild(c);break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[ma(a.value,10)||0])?(a=a.Da)?(a=Na(Qh(a),a.rc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDrive":if(this.K)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=
|
|
|
|
|
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Th(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
|
|
|
|
k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;if((a=Dd(this.A,"autoMount"))&&"string"==typeof a)try{a=eval("("+a+")")}catch(f){v(this.type+" auto-mount error: "+f.message+" ("+a+")"),a=null}if(a)for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.J[e]=a[e]);Uh(this);this.Eb=Rc(this.b,144,5,65536);Kb(b,this,Vh);Mb(b,this.reset.bind(this));Wh(this,"None","",!0);this.K&&Wh(this,"Local Disk","?");Wh(this,"Remote Disk","??");Xh(this)||J(this)};
|
|
|
|
|
k.Ja=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.pc){for(a=0;a<this.g.length;a++)Yh(this,a,!0);Xh(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Sh(this,0)}}return!0};k.Ia=function(a){return a?this.save():!0};k.reset=function(){Uh(this)};k.save=function(){return(new S(this)).data()};
|
|
|
|
|
k.restore=function(a){return Uh(this,a[0])};function Xh(a,b){b||(a.F=0);for(var c in a.J){var d=a.J[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Zh(a,g,f,e,!0)&&b&&J(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
|
|
|
|
|
function Th(a,b,c,d){var e=a.D.listDrives,e=e&&ma(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}Zh(a,e,b,c,!1,d)}else Yh(a,e)}
|
|
|
|
|
function Zh(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Ka.toLowerCase()!=d.toLowerCase()&&(g++,Yh(a,b,!0),h.xb?a.N("RK11 busy"):(h.xb=!0,e&&(h.wb=!0,a.F++,I(a)&&G(a,"auto-loading disk: "+c)),h.cb=!!f,Lh(new Hh(a,h,"preload"),c,d,f,a.Zc)&&g++));return g}
|
|
|
|
|
k.Zc=function(a,b,c,d,e){a.xb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.N('Disk "'+c+'" too large for drive '+("RK"+a.yb)),b=null);b?(a.Da=b,a.Ua=c,a.Ka=d,this.N('Mounted disk "'+c+'" in drive '+("RK"+a.yb),a.wb||e),this.A&&this.A.ob()):a.cb=!1;a.wb&&(a.wb=!1,--this.F||J(this));Sh(this,a.yb)};
|
|
|
|
|
function Wh(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function Sh(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=ma(a.value,10),c=c.cb?"?":c.Ka,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Yh(a,b,c){var d=a.g[b];if(d.Da||!1===c)d.Ua="",d.Ka="",d.Da=null,d.cb=!1,c||(a.N("Drive RK"+b+" unloaded",c),Sh(a,b))}
|
|
|
|
|
function Uh(a,b){var c=0;b||(b=[]);a.M=b[c++]||2496;a.B=b[c++]||0;a.f=b[c++]||128;a.I=b[c++]||0;a.G=b[c++]||0;a.v=b[c++]||0;a.P=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.yb=b;d.name=c.gb;d.xb=d.cb=!1;d.fa=203;d.ka=2;d.ha=12;d.Aa=512;d.bc=!0;d.nd=0;d.ld=0;d.mc=1;d.Fc=d.ha;d.qc=d.Aa;d.wd=0;d.Ge=null;d.Da||(d.Ka="");d.status=2496}return!0}
|
|
|
|
|
k.Yc=function(a,b,c,d,e,f){this.G=f&65535;this.f=this.f&-49|f>>12&48;this.I=65536-e&65535;a&&(this.B=this.B|a|32768,this.f|=49152);return!0};k.$c=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=128,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=4096;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=32;break}lc(this.w,f,n|r<<8);if(Nc(this.w)){h=1024;break}f+=2;if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=64;break}}return g(h,b,c,d,e,f)};
|
|
|
|
|
k.ad=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=128,e=0);for(;e--;){var n=nc(this.w,f);if(Nc(this.w)){h=1024;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=4096;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=32;break}if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=64;break}}return g(h,b,c,d,e,f)};k.he=function(){return this.M};k.ff=function(){};k.ie=function(){return this.B};k.gf=function(){};k.ee=function(){return this.f&61438};
|
|
|
|
|
k.cf=function(a){this.f=this.f&-3968|a&3967;if(this.f&1){var b,c=!0;a=(this.v&57344)>>13;var d=this.g[a],e,f,g,h;this.f&=-129;switch(this.f&14){case 0:this.M=d.status;this.B=0;this.f=128;this.v=0;break;case 4:b=this.$c;case 2:b||(b=this.ad),e=(this.v&8160)>>5,f=(this.v&16)>>4,g=this.v&15,e>=d.fa?(this.B|=32832,this.f|=49152):g>=d.ha?(this.B|=32800,this.f|=49152):(h=(this.f&48)<<12|this.G,c=65536-this.I&65535,c=b.call(this,d,e,f,g,c,h,this.Yc.bind(this)))}this.M=d.status|a<<13|this.v%9&15;c&&(this.f&=
|
|
|
|
|
-2,this.f|=128,this.f&64&&Pc(this.b,this.Eb))}};k.je=function(){return this.I};k.hf=function(a){this.I=a};k.de=function(){return this.G};k.bf=function(a){this.G=a};k.fe=function(){return this.v};k.df=function(a){this.v=a};k.ge=function(){return this.P};k.ef=function(a){this.P=a};
|
|
|
|
|
var $h={},Vh=($h[65280]=[null,null,R.prototype.he,R.prototype.ff,"RKDS"],$h[65282]=[null,null,R.prototype.ie,R.prototype.gf,"RKER"],$h[65284]=[null,null,R.prototype.ee,R.prototype.cf,"RKCS"],$h[65286]=[null,null,R.prototype.je,R.prototype.hf,"RKWC"],$h[65288]=[null,null,R.prototype.de,R.prototype.bf,"RKBA"],$h[65290]=[null,null,R.prototype.fe,R.prototype.df,"RKDA"],$h[65294]=[null,null,R.prototype.ge,R.prototype.ef,"RKDB"],$h);
|
|
|
|
|
function P(a){x.call(this,"RL11",a,P,131072);this.K=a.autoMount||{};this.I=0;this.g=Array(4);this.M=!Ma("Mobi")&&window&&"FileReader"in window}B(P);k=P.prototype;
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.D[b]=c,c.onchange=function(){var a=d.D.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){v("RL11 option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.D[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ai(d,a)},!0;case "loadDrive":return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=d.D.listDisks;a&&bi(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.M){c.parentNode.removeChild(c);break}this.D[b]=c;c.onclick=function(){var a=d.D.listDrives;a&&a.options&&d.g&&((a=d.g[ma(a.value,10)||0])?(a=a.Da)?(a=Na(Qh(a),a.rc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDrive":if(this.M)return this.D[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=
|
|
|
|
|
!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;bi(d,u(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
|
|
|
|
k.Ga=function(a,b,c,d){this.A=a;this.w=b;this.b=c;this.j=d;if((a=Dd(this.A,"autoMount"))&&"string"==typeof a)try{a=eval("("+a+")")}catch(f){v(this.type+" auto-mount error: "+f.message+" ("+a+")"),a=null}if(a)for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.K[e]=a[e]);ci(this);this.Eb=Rc(this.b,112,5,131072);Kb(b,this,di);Mb(b,this.reset.bind(this));ei(this,"None","",!0);this.M&&ei(this,"Local Disk","?");ei(this,"Remote Disk","??");fi(this)||J(this)};
|
|
|
|
|
k.Ja=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.A.pc){for(a=0;a<this.g.length;a++)gi(this,a,!0);fi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.D.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";ai(this,0)}}return!0};k.Ia=function(a){return a?this.save():!0};k.reset=function(){ci(this)};k.save=function(){return(new S(this)).data()};
|
|
|
|
|
k.restore=function(a){return ci(this,a[0])};function fi(a,b){b||(a.I=0);for(var c in a.K){var d=a.K[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.D.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.value==e){f=h.text;break a}}f=u(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!hi(a,g,f,e,!0)&&b&&J(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.I}
|
|
|
|
|
function bi(a,b,c,d){var e=a.D.listDrives,e=e&&ma(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if("?"==c)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=u(c);a.status("Attempting to load "+c+' as "'+b+'"')}hi(a,e,b,c,!1,d)}else gi(a,e)}
|
|
|
|
|
function hi(a,b,c,d,e,f){var g=-1,h=a.g[b];h.Ka.toLowerCase()!=d.toLowerCase()&&(g++,gi(a,b,!0),h.xb?a.N("RL11 busy"):(h.xb=!0,e&&(h.wb=!0,a.I++,I(a)&&G(a,"auto-loading disk: "+c)),h.cb=!!f,Lh(new Hh(a,h,"preload"),c,d,f,a.cd)&&g++));return g}
|
|
|
|
|
k.cd=function(a,b,c,d,e){a.xb=!1;b&&(b.fa>a.fa||b.ka>a.ka)&&(this.N('Disk "'+c+'" too large for drive '+("RL"+a.yb)),b=null);b?(a.Da=b,a.Ua=c,a.Ka=d,this.N('Mounted disk "'+c+'" in drive '+("RL"+a.yb),a.wb||e),this.A&&this.A.ob()):a.cb=!1;a.wb&&(a.wb=!1,--this.I||J(this));ai(this,a.yb)};
|
|
|
|
|
function ei(a,b,c,d){if((a=a.D.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
|
|
|
|
function ai(a,b){if(0<=b&&b<a.g.length){var c=a.g[b],d=a.D.listDisks;a=a.D.listDrives;if(d&&a&&d.options&&a.options&&(a=ma(a.value,10),c=c.cb?"?":c.Ka,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function gi(a,b,c){var d=a.g[b];if(d.Da||!1===c)d.Ua="",d.Ka="",d.Da=null,d.cb=!1,c||(a.N("Drive RL"+b+" unloaded",c),ai(a,b))}
|
|
|
|
|
function ci(a,b){var c=0;b||(b=[]);a.f=b[c++]||0;a.J=b[c++]||0;a.v=b[c++]||0;a.B=b[c++]||0;a.G=b[c++]||0;a.F=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.yb=b;d.name=c.gb;d.xb=d.cb=!1;d.fa=512;d.ka=2;d.ha=40;d.Aa=256;d.bc=!0;d.nd=0;d.ld=0;d.mc=1;d.Fc=d.ha;d.qc=d.Aa;d.wd=0;d.Ge=null;d.Da||(d.Ka="");d.status=29}return!0}
|
|
|
|
|
k.bd=function(a,b,c,d,e,f){this.J=f&65535;this.f=this.f&-49|f>>12&48;this.F=f>>16&63;this.B=this.v=b<<7|(c?64:0)|d&63;this.G=65536-e&65535;a&&(this.f=this.f|a|32768);return!0};
|
|
|
|
|
k.dd=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=5120,e=0);for(;e--;){if(!l){l=a.seek(b,c,d+1);if(!l){h=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){h=5120;break}lc(this.w,this.b.Oa(f),n|r<<8);if(Nc(this.w)){h=8192;break}f+=2;if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g(h,b,c,d,e,f)};
|
|
|
|
|
k.ed=function(a,b,c,d,e,f,g){var h=0;a=a.Da;var l=null,m;a||(h=5120,e=0);for(;e--;){var n=nc(this.w,this.b.Oa(f));if(Nc(this.w)){h=8192;break}f+=2;if(!l){l=a.seek(b,c,d+1,!0);if(!l){h=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){h=5120;break}if(m>=a.Aa&&(l=null,++d>=a.ha&&(d=0,++c>=a.ka&&(c=0,++b>=a.fa)))){h=5120;break}}return g(h,b,c,d,e,f)};k.me=function(){return this.f&65535};
|
|
|
|
|
k.lf=function(a){this.f=this.f&-1023|a&1022;this.F=this.F&60|(a&48)>>4;if(!(this.f&128)){var b;a=!0;var c=this.g[(this.f&768)>>8],d=c.Da,e,f,g;this.f&=-2;switch(this.f&14){case 4:this.G&8&&(this.f&=63);this.G=c.status|this.B&64|(d&&512==d.fa?128:0);break;case 6:1==(this.v&3)&&(b=this.v&65408,c=(this.v&16)<<2,this.B=this.v&4?this.B+b:this.B-b,this.v=this.B=this.B&65408|c);break;case 8:this.G=this.B;break;case 12:b=this.dd;case 10:b||(b=this.ed),e=this.v>>7,f=this.v&64?1:0,g=this.v&63,!d||e>=d.fa||
|
|
|
|
|
g>=d.ha?this.f|=37888:(d=(this.F&63)<<16|this.J,a=65536-this.G&65535,a=b.call(this,c,e,f,g,a,d,this.bd.bind(this)))}a&&(this.f|=129,this.f&64&&Pc(this.b,this.Eb))}};k.ke=function(){return this.J};k.jf=function(a){this.J=a&65534};k.ne=function(){return this.v};k.mf=function(a){this.v=a};k.oe=function(){return this.G};k.nf=function(a){this.G=a};k.le=function(){return this.F};k.kf=function(a){this.F=a&63;this.f=this.f&-49|(this.F&3)<<4};
|
|
|
|
|
var ii={},di=(ii[63744]=[null,null,P.prototype.me,P.prototype.lf,"RLCS"],ii[63746]=[null,null,P.prototype.ke,P.prototype.jf,"RLBA"],ii[63748]=[null,null,P.prototype.ne,P.prototype.mf,"RLDA"],ii[63750]=[null,null,P.prototype.oe,P.prototype.nf,"RLMP"],ii[63752]=[null,null,P.prototype.le,P.prototype.kf,"RLBE"],ii);function ji(a){x.call(this,"Debugger",a,ji);this.ma=a.base||16;this.La=!1;this.J=0;this.T=!1;this.B=-1;this.g=[];this.ca={}}B(ji);
|
|
|
|
|
var ki={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ji.prototype.Jc=function(){return-1};ji.prototype.Kc=function(){};
|
|
|
|
|
function li(a,b,c,d){if(c)if(b){0>a.B&&a.g.length&&(a.B=0);if(0>a.B||b!=a.g[a.B])a.g.splice(0,0,b),a.B=0;a.B--}else a.T?b="end":b=a.g[a.B+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(ya(b.substring(c,f))),c=f+1}}return a}
|
|
|
|
|
function mi(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
|
|
|
|
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
|
|
|
|
function qi(a,b,c){var d;if(b){b=ri(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ua(n);if(!n){f=!0;break}n=si(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],w=n.length;l.length&&ni[n]<ni[l[l.length-1]]&&pi(h,l,1);l.push(n);b=b.substr(r+w)}pi(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&ti(a,null,
|
|
|
|
|
d))}return d}function ri(a,b){for(var c,d=a.Ka?"(":"{",e=a.Ka?")":"}",f=new RegExp(a.Ka?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=qi(a,c[1]);b=b.replace(d+c[1]+e,null!=g?L(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
|
|
|
|
function si(a,b,c,d){var e;null!=b?(e=a.Hc(b),0<=e?e=a.Ic(e):(e=a.ca[b],null==e&&(e=ma(b,a.ma))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
|
|
|
|
|
function ti(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==l||isNaN(l))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(l&1?"1":"0")+n,l>>=1;g=n+g;d>>=8}d=p(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}function ui(a,b){if(b)return ti(a,b,a.ca[b]);var c=0;for(b in a.ca)ti(a,b,a.ca[b]),c++;return 0<c}
|
|
|
|
|
function ni(a,b,c){var d;if(b){b=oi(a,b);for(var e=0,f=!1,g=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=ya(n);if(!n){f=!0;break}n=pi(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],w=n.length;l.length&&ki[n]<ki[l[l.length-1]]&&mi(h,l,1);l.push(n);b=b.substr(r+w)}mi(h,l)&&1==h.length||(f=!0);f?c&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&qi(a,null,
|
|
|
|
|
d))}return d}function oi(a,b){for(var c,d=a.La?"(":"{",e=a.La?")":"}",f=new RegExp(a.La?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=ni(a,c[1]);b=b.replace(d+c[1]+e,null!=g?L(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
|
|
|
|
function pi(a,b,c,d){var e;null!=b?(e=a.Jc(b),0<=e?e=a.Kc(e):(e=a.ca[b],null==e&&(e=ma(b,a.ma))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
|
|
|
|
|
function qi(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var l=d&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==l||isNaN(l))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(l&1?"1":"0")+n,l>>=1;g=n+g;d>>=8}d=p(c,0,!0)+" "+c+". "+na(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}function ri(a,b){if(b)return qi(a,b,a.ca[b]);var c=0;for(b in a.ca)qi(a,b,a.ca[b]),c++;return 0<c}
|
|
|
|
|
function L(a,b,c,d){switch(a.ma){case 8:a=na(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=p(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}
|
|
|
|
|
function vi(a){mi.call(this,a);this.Ya=!1;this.Ka=!0;this.L=Y(0);this.Xa=Y(0);this.S=Y(0);this.J=[];this.f=this.M=this.F=[];wi(this);this.ta=0;xi(this);this.Pa={};yi(this,a.messages);this.Qa=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Hd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Hd(b,a)})}B(vi,mi);
|
|
|
|
|
var zi={"?":"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"},Ai=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
|
|
|
|
Bi={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},Ci={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],
|
|
|
|
|
function si(a){ji.call(this,a);this.Za=!1;this.La=!0;this.K=Y(0);this.Ya=Y(0);this.S=Y(0);this.I=[];this.f=this.M=this.F=[];ti(this);this.ta=0;ui(this);this.Qa={};vi(this,a.messages);this.Ra=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Hd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Hd(b,a)})}B(si,ji);
|
|
|
|
|
var wi={"?":"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"},xi=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
|
|
|
|
yi={SP:6,PC:7,PS:20,IR:21,ER:22,SL:23,MMR0:24,MMR1:25,MMR2:26,MMR3:27,AR:28,DR:29,SR:30},zi={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],
|
|
|
|
|
768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106,32768],35072:[107,32768]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],
|
|
|
|
|
35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],
|
|
|
|
|
183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},Di=[0],Ei=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=vi.prototype;
|
|
|
|
|
k.Fa=function(a,b,c,d){this.w=b;this.A=a;this.b=c;this.v=a.v;(a=Dd(a,"messages"))&&yi(this,a);this.rb=Ci;this.Ob=1145>this.b.jb?Ei:[];Tc(this,16,function(a){a:{var b=d.w.ea,c=a[0],e=a=0,l=b.length;if(c){a=d.aa(Fi(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.w.pa;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Gc[c],n&&d.i(p(n.id,8)+" %"+
|
|
|
|
|
p(e<<d.w.pa,8)+" %%"+p(n.H,8)+" "+q(n.Lb)+" "+q(n.size)+" "+m),c!=pd&&(c=-1),m=0);a+=d.w.Ga;e++}}});J(this)};
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ya=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Hd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.g.length-1&&(b=d.g[++d.B])):40==a.keyCode&&(0<d.B?b=d.g[--d.B]:(b="",d.B=-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.D[b]=c,Pa(c,function(){if(d.ya){var a=d.ya.value;
|
|
|
|
|
d.ya.value="";Hd(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Pa(c,function(a){var b=!1;xb(d,!0)||(qb(d,!0),b=d.pb(a?1:0,null),qb(d,!1));return b}),!0}return!1};k.nb=function(a){if(this.ya){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.ya.focus();!a&&window&&window.scrollTo(b,c)}};k.aa=function(a){a=a&&a.H;null==a&&(a=-1);return a};k.Na=function(a){return 3932160<=a?this.b.Na(a):a};
|
|
|
|
|
k.bc=function(a,b){var c=255,d=this.aa(a,!1,1);-1!==d&&(a.Zb||65535<d?(c=this.w,d=this.Na(d),c.A=!1,c.qa++,d=Hc(c,d).J(d&c.w,d),c.qa--):(c=this.b,c.K++,d=Ae(c,mc(c,d,3)),c.K--),c=d,b&&Gi(a,b));return c};k.ua=function(a,b){var c=65535,d=this.aa(a,!1,2);-1!==d&&(c=a.Zb||65535<d?nc(this.w,this.Na(d)):oc(this.b,d),b&&Gi(a,b));return c};
|
|
|
|
|
k.Kb=function(a,b,c){var d=this.aa(a,!0,1);if(-1!==d){if(a.Zb||65535<d)Ic(this.w,this.Na(d),b);else{var e=this.b;e.K++;d=mc(e,d,5);d&1&&e.b--;e.w.Kb(d,b);e.K--}c&&Gi(a,c);this.A.xa(-1)}};k.zb=function(a,b,c){var d=this.aa(a,!0,2);if(-1!==d){if(a.Zb||65535<d)Zb(this.w,this.Na(d),b);else{var e=this.b;e.K++;e.sc(mc(e,d,4),b);e.K--}c&&Gi(a,c);this.A.xa(-1)}};function Y(a,b){return{H:a,Zb:b,Ua:!1}}k.qc=function(a,b){a.H=b;a.Ua=!1;return a};function Hi(a){return[a.H,a.Ua]}
|
|
|
|
|
function Ii(a){return{H:a[0],Ua:a[1]}}function Fi(a,b,c){var d,e=(c?a.L:a.Xa).H;c=!1;if(void 0!==b){b=ri(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.J.length;e++){var g=a.J[e].ia[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=qi(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Ji(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.fd=oi(a,b.Oc=c[2]))}function Gi(a,b){null!=a.H&&(a.H+=b||1)}
|
|
|
|
|
function yi(a,b){a.j=a;a.oa=a.nd=536870912;a.na=null;a.Y=[];b=oi(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){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.oa|=Eb[c],a.i(c+" messages enabled"))}}function Tc(a,b,c){for(var d in Eb)if(b==Eb[d]){a.Pa[d]=c;break}}
|
|
|
|
|
k.Hc=function(a){a=a.toUpperCase();var b=Bi[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Ki(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
|
|
|
|
k.Ic=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.eb[a-8];else if(20>a)b=this.b.Oa[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=id(this.b);break;case 21:b=c.Jb;break;case 22:b=c.ra;break;case 23:b=c.mb;break;case 24:b=cd(c);break;case 25:b=ed(c);break;case 26:b=fd(c);break;case 27:b=c.Wa;break;case 28:d&&(b=d.Ca);break;case 29:d&&(b=d.yb);break;case 30:d&&sc(d)&&(b=d.cb)}}return b};
|
|
|
|
|
k.message=function(a,b){b&&(a+=" @"+L(this,Y(this.b.va&65535).H));if(!this.na||a!=this.na)if(this.na=a,this.oa&1073741824)this.Y.push(a);else{var c;if(this.oa&-2147483648&&this.b&&(c=this.b.C.W)||xb(this,!0))this.ba(),c&&(a+=" (cpu halted)");this.i(a);this.b&&(a=this.b,Ld(a),a.ta=0,a.xa())}};
|
|
|
|
|
function xi(a){var b;if(!Me(a))a.G&&a.G.length&&a.i("instruction history buffer freed"),a.da=0,a.G=[];else if(!a.G||!a.G.length){a.G=Array(1E3);for(b=0;b<a.G.length;b++)a.G[b]=Y();a.da=0;a.i("instruction history buffer allocated")}}k.ob=function(a,b){if(!Li(this,b))return!1;this.b.ob(a);return!0};
|
|
|
|
|
k.pb=function(a,b,c){if(!Li(this))return!1;null===b&&(b=!this.sb||"tr"==this.sb);this.K=0;a||Me(this)&&Ne(this,this.b.u[7],0);try{a=Md(this.b,a);var d=this.b.pb(a);0<d&&(Ub(this.b,d),this.K+=d,Vb(this.b,d,!0),Wb(this.b,d),this.za++)}catch(e){"number"!=typeof e&&(this.K=0,Ab(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop&&this.v.stop(),this.A.xa(-1));Gd(this,b||!1);return 0<this.K};k.ba=function(a){this.b&&this.b.ba(a)};
|
|
|
|
|
function Gd(a,b){if(a.Ya){void 0===b&&(b=!0);var c;c=a.b;if(c=c.I&128?c.od|c.md<<8:0){var d=c>>8;a.i("trapped to "+L(a,c&255,1)+" ("+(0>d?Cb[-d]:L(a,d))+")")}a.L=Y(a.b.u[7]);b&&1!=a.P?Mi(a):Ni(a)}}function Li(a,b){var c;(c=!a.b||!yb(a.b))||(c=a.b,c.C.la?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.W?(b||a.i("cpu busy or unavailable, command ignored"),!1):!zb(a.b)}k.Ia=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
|
|
|
|
|
k.Ha=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){xi(this);this.za=0;this.na=null;this.K=0;this.L=Y(this.b.u[7]);this.C.W=!1;Oi(this);a||Gd(this)};k.save=function(){var a=new S(this);a.set(0,Hi(this.L));a.set(1,Hi(this.S));a.set(2,[this.g,this.T,this.oa]);a.set(3,this.J);return a.data()};
|
|
|
|
|
k.restore=function(a){var b=0;void 0!==a[2]&&(this.L=Ii(a[b++]),this.S=Ii(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.oa|=a[b][2]);a[3]&&(this.J=a[3]);return!0};k.start=function(a,b){this.P||this.i("running");this.C.W=!0;this.Pb=a;this.Qb=b};
|
|
|
|
|
k.stop=function(a,b){if(this.C.W){this.C.W=!1;this.K=b-this.Qb;if(!this.P){b="stopped";if(this.K){a-=this.Pb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";Me(this)&&(b+=this.za+" instructions, ",this.za=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else I(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Gd(this,!0);this.nb();Oi(this,this.b.u[7]);this.na=null}};function Me(a){return 1<a.f.length||!!a.ta}
|
|
|
|
|
function Ne(a,b,c){var d=-1;c||(d=oc(a.b,b),0==d&&(b=Xd(a.b,2)));if(0<c&&(a.ta&&!--a.ta||yd(a,b,1,a.f)))return!0;0<=c&&a.G.length&&(a.za++,0>d&&(d=oc(a.b,b)),65535!=(d&65535)&&(a.qc(a.G[a.da],b),++a.da==a.G.length&&(a.da=0)));return!1}function Tf(a){var b=a.b;if(b.C.W)throw T(b,a.b.va&65535),a.ba(),-1;return!1}
|
|
|
|
|
function wi(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;c=a.aa(c);zd(d.ea[c>>>d.pa],!1)}a.M=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.w,c=a.aa(c),zd(d.ea[c>>>d.pa],!0);a.F=["bw"];a.Za=0}k.tb=function(a,b,c){var d=!0;c||Pi(this,a,b,!1,!0);if(a!=this.f){var e=this.aa(b);if(-1===e)this.i("invalid address: "+L(this,b.H)),d=!1;else{var f=this.w;f.ea[e>>>f.pa].tb(e&f.w,a==this.F)}}d&&(a.push(b),c?b.Ua=!0:(Qi(this,a,a.length-1,"set"),xi(this)));return d};
|
|
|
|
|
function Pi(a,b,c,d,e){var f=!1;c=a.aa(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.aa(h)&&(!d||h.Ua)){f=!0;h.Ua||e||Qi(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,zd(d.ea[c>>>d.pa],b==a.F));h.Ua||xi(a);break}}return f}function Ri(a,b){for(var c=1;c<b.length;c++)Qi(a,b,c);return b.length-1}function Qi(a,b,c,d){c=b[c];a.i(b[0]+" "+L(a,c.H)+(d?" "+d:c.Oc?' "'+c.Oc+'"':""))}
|
|
|
|
|
function Oi(a,b){if(void 0!==b)yd(a,b,1,a.f,!0),a.P=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ua){if(!Pi(a,a.f,c,!0))break;b=0}}}
|
|
|
|
|
function yd(a,b,c,d,e){var f=!1;if(!a.Za++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Ua)for(var l=a.aa(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Ua&&(Pi(a,d,h,!0),e=!0);if(n=h.fd){for(var f=!1,r=0;r<n.length;r++)if(!Si(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var w=r+1;w<n.length&&n[w].indexOf("else");w++)r++;if(w==n.length){f=!0;break}}a.b.C.W||(f=!0)}if(f){e||Qi(a,d,g,"hit");break}}}a.Za--;return f}
|
|
|
|
|
function Ti(a,b,c,d){var e=Y(b.H),f=a.ua(b,2),g,h;for(h in a.rb)if(g=a.rb[h][f&h])break;g||(g=Di);var l=g[0];0<=a.Ob.indexOf(l)&&(g=Di,l=g[0]);var m=h="",n=Ai[l],r=g.length-1;l||r||(h=L(a,f));for(l=1;l<=r;l++){var w=g[l];if(void 0!==w){var t;t=a;var A=w,w=b,y="",C=A&61440;if(4096==C)w=w.H+((f&255)<<24>>23)&65535,y=L(t,w);else if(8192==C)w=w.H-((f&63)<<1)&65535,y=L(t,w);else if(12288==C)y=L(t,f&7,1);else if(24576==C)y=L(t,f&63,1);else if(32768==C)y=L(t,f&255,1);else if(C=f&A,A&4032&&(C>>=6,A>>=6),
|
|
|
|
|
A&63)switch(A=C&7,C&56){case 0:y=Ki(A);break;case 8:y="@"+Ki(A);break;case 16:7>A?y="("+Ki(A)+")+":(C=t.ua(w,2),y="#"+L(t,C,0,!0));break;case 24:7>A?y="@("+Ki(A)+")+":(C=t.ua(w,2),y="@#"+L(t,C,0,!0));break;case 32:y="-("+Ki(A)+")";break;case 40:y="@-("+Ki(A)+")";break;case 48:C=t.ua(w,2);y=L(t,C,0,!0)+"("+Ki(A)+")";7==A&&(y=L(t,C+w.H&65535));break;case 56:C=t.ua(w,2),y="@"+L(t,C)+"("+Ki(A)+")",7==A&&(y="@"+L(t,C+w.H&65535))}t=y;if(!t||!t.length){h="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);
|
|
|
|
|
0<h.length&&(h+=",");h+=t||"???"}}f="";g=L(a,e.H)+":";if(-1!==e.H&&-1!==b.H){do if(f+=" "+L(a,a.ua(e,2)),null==e.H)break;while(e.H!=b.H)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Bb?g+("cycles="+Id(a.b).toString()+" cs="+p(a.b.Tb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function Ui(a,b){switch(b){case "N":a=Vd(a.b);break;case "Z":a=Ud(a.b);break;case "V":a=Td(a.b);break;case "C":a=Sd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
|
|
|
|
function Z(a,b){var c="",d=a.b;if(8>b)c=Ki(b),c+="="+L(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+L(a,d.eb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+L(a,d.Oa[b-16]);else switch(b){case 20:c="PS="+L(a,id(d));break;case 21:c="IR="+L(a,d.Jb);break;case 22:c="ER="+L(a,d.ra);break;case 23:c="SL="+L(a,d.mb);break;case 24:c="MMR0="+L(a,cd(d));break;case 25:c="MMR1="+L(a,ed(d));break;case 26:c="MMR2="+L(a,fd(d));break;case 27:c="MMR3="+L(a,d.Wa);break;case 28:a.v&&(c="AR="+L(a,a.v.Ca,3));break;case 29:a.v&&
|
|
|
|
|
(c="DR="+L(a,a.v.yb));break;case 30:a.v&&sc(a.v)&&(c="SR="+L(a,a.v.cb,3))}c&&(c+=" ");return c}function Vi(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=Ui(a,"T")+Ui(a,"N")+Ui(a,"Z")+Ui(a,"V")+Ui(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Ec=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
function Tg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Aa(n,l,a.Ec);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.J.push({Jg:b,H:c,vd:d,ia:e,Cc:f})}function Wi(a,b,c){var d=[],e=a.aa(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],g=f.H>>>0,h=f.vd;if(e>=g&&e<g+h){e=Aa(f.Cc,[e-g],a.Ec);0<=e?Xi(a,b,e,d):c&&(e=~e,Xi(a,b,e-1,d),Xi(a,b,e,d));break}}return d}
|
|
|
|
|
function Xi(a,b,c,d){var e={},f=a.J[b].Cc,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.J[b].ia[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function Yi(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ui(a)||a.i("no variables"),!0;if(!c[2])return ui(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=qi(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
|
|
|
|
|
function Zi(a,b,c){var d=null;if(b=Fi(a,b,!0)){a.aa(b);var e=Wi(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.H-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+L(a,e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.H)&&(g=" - "+q(f)),f=e[4]+" ("+L(a,e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
|
|
|
|
|
function Mi(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}g=qi(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":T(e,
|
|
|
|
|
g);a.L=Y(e.u[7]);break;case "N":e.X=g?32768:0;break;case "Z":e.Z=g?0:1;break;case "V":e.V=g?32768:0;break;case "C":e.U=g?65536:0;break;case "PS":jd(e,g);break;case "IR":hd(e,g);break;case "ER":e.ra=g;d=!0;break;case "SL":e.mb=g|255;break;case "MMR0":dd(e,g);d=!0;break;case "MMR3":gd(e,g);d=!0;break;case "AR":a.v&&(d=a.v,pc(d,d.Ca=g));d=!0;break;case "DR":a.v&&(d=a.v,Yb(d,d.yb=g));d=!0;break;case "SR":if(a.v&&sc(a.v)){qc(a.v,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.u[b]=
|
|
|
|
|
g&65535;break}a.i("unknown register: "+f);return}a.A.xa();a.i("updated registers:")}}a.i(Vi(a,d));c&&(a.L=Y(e.u[7]),Ni(a,L(a,a.L.H)))}}function $i(a,b){b=ua(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):ti(a,null,c[2].charCodeAt(0)):qi(a,b,!0)}
|
|
|
|
|
function aj(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=si(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sb=b;Oa(c,function(){return qb(a,!0)&&a.pb(e,d,!1)},function(){a.v&&a.v.stop&&a.v.stop();a.A.xa(-1);qb(a,!1)})}}
|
|
|
|
|
function Ni(a,b,c,d){if(b=Fi(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=si(a,c.substr(1)),null!=c&&(d=c);else{d=Fi(a,c,!0);if(!d||d.H<b.H)return;e=d.H-b.H;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=xb(a,!1)||a.P?a.K:null;var g=null!=f?"cycles":null,h=Wi(a,b),l=b.H;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=Ti(a,b,g,f);a.i(f);a.L=b;e-=b.H-l;c++}}}
|
|
|
|
|
function Si(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.T&&(a.i("ended assemble at "+L(a,a.S.H)),a.L=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(yb(a)&&0<b.length){a.T&&(b="a "+L(a,a.S.H)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
|
|
|
|
|
Fi(a,g[1],!0);if(r)if(a.S=r,void 0===g[2])a.i("begin assemble at "+L(a,r.H)),a.T=!0,a.A.xa();else{var w;a.i("not supported yet");w=[];if(w.length){for(var t=0;t<w.length;t++)a.Kb(r,w[t],1);a.i(Ti(a,a.S))}}break;case "b":a:{var A=g[0],y=g[1],C=b;if("?"==y)a.i("breakpoint commands:"),a.i("\tbp [#]\tset exec breakpoint at addr #"),a.i("\tbr [#]\tset read breakpoint at addr #"),a.i("\tbw [#]\tset write breakpoint at addr #"),a.i("\tbc [#]\tclear breakpoint at addr #"),a.i("\tbl\tlist all breakpoints"),
|
|
|
|
|
a.i("\tbn [#]\tbreak after # instruction(s)");else{var sa=A.charAt(1);if("l"==sa){var Qa;Qa=0+Ri(a,a.f);Qa+=Ri(a,a.M);(Qa+=Ri(a,a.F))||a.i("no breakpoints")}else if("n"==sa)a.ta=si(a,y),a.i("break after "+a.ta+" instruction(s)");else if(void 0===y)a.i("missing breakpoint address");else{var R=Y();if("*"!=y&&(R=Fi(a,y,!0),!R))break a;"c"==sa?null==R.H?(wi(a),a.i("all breakpoints cleared")):Pi(a,a.f,R)||Pi(a,a.M,R)||Pi(a,a.F,R)||a.i("breakpoint missing: "+L(a,R.H)):null!=R.H&&(Ji(a,R,C),"p"==sa?a.tb(a.f,
|
|
|
|
|
R):"r"==sa?a.tb(a.M,R):"w"==sa?a.tb(a.F,R):a.i("unknown breakpoint command: "+sa))}}}break;case "c":a.$a&&(a.$a.value="");break;case "d":a:{var rb,Sa=g[0],va=g[1],Ta=g[2],tj=g[3];if("?"==va){var sb="";for(rb in Eb)a.Pa[rb]&&(sb&&(sb+=","),sb+=rb);sb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [n] dump n bytes at address a");a.i("\tdw [a] [n] dump n words at address a");a.i("\tdd [a] [n] dump n dwords at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
|
|
|
|
|
a.i("\tdh [p] [n] dump n instructions from history position p");sb.length&&a.i("dump extension commands:\n\t"+sb)}else if("state"==va){var bh=bj(a.A,!0);"console"==Ta?console.log(bh):(a.$a&&(a.$a.value=""),a.i(bh))}else if("symbols"==va)for(var ae=0;ae<a.J.length;ae++){var be=a.J[ae],tb;for(tb in be.ia)if("."!=tb.charAt(0)){var ch=be.ia[tb].o;if(void 0!==ch){var dh=be.ia[tb].l;dh&&(tb=dh);a.i(L(a,ch)+" "+tb)}}}else{if("d"==Sa){for(rb in Eb)if(g[1]==rb){var eh=a.Pa[rb];eh?(g.shift(),g.shift(),eh(g)):
|
|
|
|
|
a.i("no dump registered for "+va);break a}va||(Sa=a.Rb||"dw")}else a.Rb=Sa;if("dh"==Sa){var fh=va,gh=Ta,hh="",ih=0,ia=a.da,wa=a.G;if(wa.length){var ea=+fh||a.qb,$b=+gh||10;isNaN(ea)?ea=$b:hh="more ";ea>wa.length&&(a.i("note: only "+wa.length+" available"),ea=wa.length);ia-=ea;0>ia&&(null==wa[wa.length-1].H?(ea=ia+ea,ia=0):ia+=wa.length);var ce=[];"call"==gh&&($b=1E5,ce=["CALL"]);for(void 0!==fh&&a.i(ea+" instructions earlier:");0<$b&&ia!=a.da;){var jh=wa[ia++];if(null==jh.H)break;var ac=Y(jh.H),uj=
|
|
|
|
|
ea--,kh=Ti(a,ac,"history",uj);(!ce.length||0<=kh.indexOf(ce[0]))&&a.i(kh);ac.mc&&(ia+=ac.mc,$b-=ac.mc,ea-=ac.mc);ia>=wa.length&&(ia=0);a.qb=ea;ih++;$b--}}ih||(a.i("no "+hh+"history available"),a.qb=void 0)}else{var ub=Fi(a,va);if(ub){var bc=0,de=!1,ee="ds"==Sa;Ta&&(de=!0,"l"==Ta.charAt(0)&&(de=!1,Ta=Ta.substr(1)||tj),bc=si(a,Ta)>>>0,65536<bc&&(bc=65536));for(var Ua="dd"==Sa?4:"db"==Sa?1:2,Uc=(de?bc-ub.H:Ua*bc)||128,fe=ee?16:a.ma,vj=(Uc+fe-1)/fe|0||1,Va="";vj--&&0<Uc;){for(var Wa="",ge="",va=L(a,ub.H),
|
|
|
|
|
Vc=fe,cc=0,dc=0;0<Vc&&0<Uc;){var vb=1,Wc=1==Ua?a.bc(ub,vb):a.ua(ub,vb=2),cc=cc|Wc<<(dc<<3),dc=dc+vb;dc==Ua&&(ee?(Wa&&(Wa+=","),Wa+="0x"+p(cc,2*Ua)):(Wa+=L(a,cc,Ua),Wa+=1==Ua?9==Vc?"-":" ":" "),cc=dc=0);Vc-=vb;for(Uc-=vb;1==Ua&&vb--;)var he=Wc&255,ge=ge+(32<=he&&128>he?String.fromCharCode(he):"."),Wc=Wc>>8}Va&&(Va+="\n");Va=ee?Va+(Wa+","):Va+(va+": "+Wa+(0==Vc?" "+ge:""))}Va&&a.i(Va);a.Xa=ub}}}}break;case "e":if("else"==g[0])break;var wb,ie,je,ke,le=g[0],me=g[1];"eb"==le?(wb=1,ie=255,je=a.bc,ke=
|
|
|
|
|
a.Kb):"e"==le||"ew"==le?(wb=2,ie=65535,je=a.ua,ke=a.zb):me=null;if(null==me)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var Xc=Fi(a,me);if(Xc)for(var Yc=2;Yc<g.length;Yc++){var ec=qi(a,g[Yc]);if(void 0===ec){a.i("unrecognized value: "+g[Yc]);break}ec&~ie&&a.i("warning: "+p(ec)+" exceeds "+wb+"-byte value");a.i("changing "+L(a,Xc.H)+(I(a,16)?"":" from "+L(a,je.call(a,Xc),wb))+" to "+L(a,ec,wb));ke.call(a,Xc,ec,wb)}}break;
|
|
|
|
|
case "g":a:{var lh=g[1],wj=b;if(void 0!==lh){var ne=Fi(a,lh,!0);if(!ne)break a;Ji(a,ne,wj);a.tb(a.f,ne,!0)}a.ob(!0,c)}break;case "h":a.C.W?(c||a.i("halting"),a.ba()):xb(a,!0)||c||a.i("already halted");break;case "i":if("if"==g[0]){var oe;var fc=b.substr(2),fc=ua(fc);qi(a,fc)?(c||a.i("true: "+fc),oe=!0):(c||a.i("false: "+fc),oe=!1);oe||(d=!1);break}f=!0;break;case "k":var xj=g[0];if("?"==g[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var pe=
|
|
|
|
|
0,qe=Y(),gc=Y(a.b.u[6]);for(a.i("stack trace for "+L(a,gc.H));10>pe;){for(var Xa=null,yj=256;65536>gc.H>>>0;){qe.H=a.ua(gc,2);if(null==gc.H||!yj--)break;if(!(qe.H&1)){for(var zj=a,Zc=qe,mh=null,hc=Zc.H,nh=hc,re=1;6>=re&&hc;re++){if(2<re){Zc.H=hc;var $c=Ti(zj,Zc);if(0<=$c.indexOf("JSR")){var oh=$c.indexOf(" ");if(hc+($c.indexOf(" ",oh+1)-oh-1)/2==nh){mh=$c;break}}}hc-=2}Zc.H=nh;if(Xa=mh)break}}if(!Xa||null==Xa)break;var ph=null;if("ks"==xj){var qh=Xa.match(/[0-9A-F]+$/);qh&&(ph=Zi(a,qh[0]))}Xa=ta(Xa,
|
|
|
|
|
50)+" ;"+(ph||"stack="+L(a,gc.H));a.i(Xa);pe++}pe||a.i("no return addresses found")}break;case "l":if("ln"==g[0]){Zi(a,g[1],!0);break}f=!0;break;case "m":a:{var xa,ya=null,H=g[1];"?"==H&&(H=void 0);if(void 0!==H){var Ja=0;if("all"==H)Ja=1879046143,H=null;else if("on"==H)ya=!0,H=null;else if("off"==H)ya=!1,H=null;else{"keys"==H&&(H="key");"kbd"==H&&(H="keyboard");for(xa in Eb)if(H==xa){Ja=Eb[xa];ya=!!(a.oa&Ja);break}if(!Ja){a.i("unknown message category: "+H);break a}}if(Ja)if("on"==g[2])a.oa|=Ja,
|
|
|
|
|
ya=!0;else if("off"==g[2]&&(a.oa&=~Ja,ya=!1,1073741824==Ja)){for(var rh=1E3<=a.Y.length?a.Y.length-1E3:0;rh<a.Y.length;)a.i(a.Y[rh++]);a.Y=[]}}var Aj=0,ic="";for(xa in Eb)if(!H||H==xa){var Bj=!!(a.oa&Eb[xa]);if(null===ya||ya==Bj)ic&&(ic+=","),++Aj%10||(ic+="\n\t"),"key"==xa&&(xa="keys"),ic+=xa}void 0===H&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==ya?ya?"messages on: ":"messages off: ":"message categories:\n\t")+(ic||"none"));xi(a)}break;case "p":if("print"==
|
|
|
|
|
g[0]){$i(a,b.substr(5));break}var Cj=g[0];if("?"==g[1])a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else{var sh="pr"==Cj?1:0,th=1+sh;if(a.P)a.i("step in progress");else{var ad=Y(a.b.u[7]),jc=a.ua(ad);3==jc||4==jc||34816==(jc&65280)||35072==(jc&65280)?(a.P=th,Gi(ad,2)):2048==(jc&65024)&&(Ti(a,ad),a.P=th);a.P?(a.tb(a.f,ad,!0),a.ob()||(a.A&&a.A.nb(),a.P=0)):aj(a,sh?"tr":"t")}}break;case "r":if("reset"==b){a.A&&a.A.reset();break}Mi(a,
|
|
|
|
|
g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var kc=+g[2];if(8==kc||10==kc||16==kc)a.ma=kc;else{a.i("invalid base: "+kc);break}}a.i("default base: "+a.ma);break;case "cs":var lc;void 0!==g[3]&&(lc=+g[3]);switch(g[2]){case "int":a.b.Fb=lc;break;case "start":a.b.Ub=lc;break;case "stop":a.b.Gb=lc;break;default:a.i("unknown cs option");break a}void 0!==lc&&Fd(a.b);a.i("checksums "+(a.b.C.Bb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Jd(a.b,+g[2])||a.i("warning: using 1x multiplier, previous target not reached"));
|
|
|
|
|
a.i("target speed: "+(a.b.xb.toFixed(2)+"Mhz")+" ("+a.b.kb+"x)");break;default:if(g[1]){a.i("unknown option: "+g[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":aj(a,g[0],g[1]);break;case "u":Ni(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Yi(a,
|
|
|
|
|
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.i("PDPjs version 1.30.5 ("+a.b.jb+",RELEASE"+(Bb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){$i(a,b.substr(1));break}var se="commands:",te;for(te in zi)se+="\n"+ta(te,9)+zi[te];Me(a)||(se+="\nnote: history disabled if no exec breakpoints");a.i(se);break;default:f=!0}f&&(a.i("unknown command: "+b),d=!1)}}catch(uh){a.i("debugger error: "+(uh.stack||uh.message)),d=!1}return d}
|
|
|
|
|
function Hd(a,b,c){b=oi(a,b,c);for(var d in b)if(!Si(a,b[+d]))return!1;return!0}bb(function(){for(var a=F(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new vi(d);E(d,c)}});
|
|
|
|
|
function cj(a,b,c){x.call(this,"Computer",a,cj,33554432);this.C.la=!1;dj(this,b);this.L=Dd(this,"autoPower",a);this.g=0;this.Y=a.busWidth||a.buswidth;this.f=ej;this.J=null;this.F=this.S=!1;this.ca=Dd(this,"url")||"";(Math.random()+.1).toString(36);this.A=fj(this);if(this.b=pb("CPU",this.id)){this.j=pb("Debugger",this.id);this.w=new uc({id:this.gb+".bus",busWidth:this.Y},this.b,this.j);var d,e=nb(this.id);if((this.v=pb("Panel",this.id))&&this.v.$a)for(b=0;b<e.length;b++)d=e[b],d.N=this.v.N,d.i=this.v.i,
|
|
|
|
|
d.$a=this.v.$a;this.i("PDPjs v1.30.5\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.i("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Fa&&d.Fa(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.G=d:this.f=parseInt(d,10));var f;if(a=Dd(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.F=!0,this.f=ej),this.f&&(this.K=
|
|
|
|
|
new S(this,"1.30.5"),gj(this.K)?b=null:delete this.K);!b&&this.f&&(b=hj(this))&&(this.F=!0);if(b){var g=this;Da(b,null,!0,function(a,b,c){c?(g.G=null,g.F=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.J=b,g.S=!0);J(g)})}else J(this);this.D.power||(this.L=!0);!c&&this.L&&ij(this,this.Vb)}else v("Unable to find CPU component")}B(cj);var ej=0;
|
|
|
|
|
function dj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.T=b}function Dd(a,b,c){var d=b.toLowerCase(),d=gb[b]||gb[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ij(a,b,c){for(var d=nb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){ij(a,b,c)});return}}b.call(a,c)}
|
|
|
|
|
function jj(a,b){var c=new S(a,"1.30.5","validate");if(gj(c)&&kj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=cj.prototype;
|
|
|
|
|
k.Vb=function(a){void 0===a&&(a=this.f||(this.J?1:ej));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.K||new S(this,"1.30.5");if(-1==a)b=!0;else if(a>ej){if(gj(d,this.J)){this.B=new S(this,"1.30.5","failsafe");gj(this.B)&&(lj(this,d),a=2,mj(this.B));this.B.set("timestamp",Ca());nj(this.B);var e=this.f&&!this.F;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=kj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?gj(d,g):("error"==
|
|
|
|
|
f&&"no machine state"!=g?(this.N("Error: "+g),"unable to verify user"==g&&(La("user",""),this.A=null)):this.i(f+": "+g),mj(d),gj(d)?(c=kj(d),e=!0):c=!1))}e&&jj(this,c?d:null)}else 2==a&&d.clear()}else jj(this);delete this.J;delete this.K}e=nb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=oj(this,g,d,b,c));b=[d,a,c];-1!=a?ij(this,this.Fc,b):this.Fc(b)}};
|
|
|
|
|
function oj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.Ia){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ia(f,d)&&f&&(v("Unable to restore state for "+b.type),a.M&&!a.S?(c.clear(),a.f=ej,window&&window.location.reload()):a.P=!0,b.Ia(null),e=!1)}if(!d&&b.xc)for(a=b.xc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
|
|
|
|
k.Fc=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(oj(this,this.b,b,c,a),this.xa(),this.b.Ab());this.P&&(lj(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.g=0};
|
|
|
|
|
function lj(a,b){if(Ga("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.A||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.5"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Da("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
|
|
|
function bj(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new S(a,"1.30.5"),g=new S(a,"1.30.5","validate"),h=Ca();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.5");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ha&&(c&&a.b.ba(),d=a.b.Ha(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=nb(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.Ha&&(d=m.Ha(b,c),"object"===typeof d&&f.set(m.id,
|
|
|
|
|
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.A&&pj(a,a.A,f.toString()),nj(g)&&nj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
|
|
|
|
|
183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},Ai=[0],Bi=[58,60,65,96,108,110,100,101,102,103,104,105,59,64];k=si.prototype;
|
|
|
|
|
k.Ga=function(a,b,c,d){this.w=b;this.A=a;this.b=c;this.v=a.v;(a=Dd(a,"messages"))&&vi(this,a);this.tb=zi;this.Qb=1145>this.b.kb?Bi:[];ad(this,16,function(a){a:{var b=d.w.ea,c=a[0],e=a=0,l=b.length;if(c){a=d.aa(Ci(d,c));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.w.pa;l=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Gc[c],n&&d.i(p(n.id,8)+" %"+
|
|
|
|
|
p(e<<d.w.pa,8)+" %%"+p(n.H,8)+" "+q(n.Nb)+" "+q(n.size)+" "+m),c!=pd&&(c=-1),m=0);a+=d.w.Ha;e++}}});J(this)};
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ya=this.D[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Hd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.g.length-1&&(b=d.g[++d.B])):40==a.keyCode&&(0<d.B?b=d.g[--d.B]:(b="",d.B=-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.D[b]=c,Wa(c,function(){if(d.ya){var a=d.ya.value;
|
|
|
|
|
d.ya.value="";Hd(d,a,!0);return!0}return!1}),!0;case "step":return this.D[b]=c,Wa(c,function(a){var b=!1;xb(d,!0)||(wb(d,!0),b=d.qb(a?1:0,null),wb(d,!1));return b}),!0}return!1};k.ob=function(a){if(this.ya){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.ya.focus();!a&&window&&window.scrollTo(b,c)}};k.aa=function(a){a=a&&a.H;null==a&&(a=-1);return a};k.Oa=function(a){return 3932160<=a?this.b.Oa(a):a};
|
|
|
|
|
k.dc=function(a,b){var c=255,d=this.aa(a,!1,1);-1!==d&&(a.ac||65535<d?(c=this.w,d=this.Oa(d),c.A=!1,c.qa++,d=Hc(c,d).I(d&c.w,d),c.qa--):(c=this.b,c.J++,d=ye(c,mc(c,d,3)),c.J--),c=d,b&&Di(a,b));return c};k.ua=function(a,b){var c=65535,d=this.aa(a,!1,2);-1!==d&&(c=a.ac||65535<d?nc(this.w,this.Oa(d)):oc(this.b,d),b&&Di(a,b));return c};
|
|
|
|
|
k.Mb=function(a,b,c){var d=this.aa(a,!0,1);if(-1!==d){if(a.ac||65535<d)Ic(this.w,this.Oa(d),b);else{var e=this.b;e.J++;d=mc(e,d,5);d&1&&e.b--;e.w.Mb(d,b);e.J--}c&&Di(a,c);this.A.xa(-1)}};k.Bb=function(a,b,c){var d=this.aa(a,!0,2);if(-1!==d){if(a.ac||65535<d)lc(this.w,this.Oa(d),b);else{var e=this.b;e.J++;e.uc(mc(e,d,4),b);e.J--}c&&Di(a,c);this.A.xa(-1)}};function Y(a,b){return{H:a,ac:b,Va:!1}}k.sc=function(a,b){a.H=b;a.Va=!1;return a};function Ei(a){return[a.H,a.Va]}
|
|
|
|
|
function Fi(a){return{H:a[0],Va:a[1]}}function Ci(a,b,c){var d,e=(c?a.K:a.Ya).H;c=!1;if(void 0!==b){b=oi(a,b);"%"==b.charAt(0)&&(c=!0,b=b.substr(1));d=b;var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),e=0;e<a.I.length;e++){var g=a.I[e].ia[d];if(void 0!==g){d=g.o;void 0!==d&&(f=Y(d));break}}if(d=f)return d;e=ni(a,b,void 0)}null!=e&&(d=Y(e,c));return d}function Gi(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.hd=li(a,b.Qc=c[2]))}function Di(a,b){null!=a.H&&(a.H+=b||1)}
|
|
|
|
|
function vi(a,b){a.j=a;a.oa=a.pd=536870912;a.na=null;a.Z=[];b=li(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Eb){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.oa|=Eb[c],a.i(c+" messages enabled"))}}function ad(a,b,c){for(var d in Eb)if(b==Eb[d]){a.Qa[d]=c;break}}
|
|
|
|
|
k.Jc=function(a){a=a.toUpperCase();var b=yi[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Hi(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
|
|
|
|
k.Kc=function(a){var b;if(0<=a)if(8>a)b=this.b.u[a];else if(16>a)b=this.b.fb[a-8];else if(20>a)b=this.b.Pa[a-16];else{var c=this.b,d=this.v;switch(a){case 20:b=id(this.b);break;case 21:b=c.Lb;break;case 22:b=c.ra;break;case 23:b=c.nb;break;case 24:b=cd(c);break;case 25:b=ed(c);break;case 26:b=fd(c);break;case 27:b=c.Xa;break;case 28:d&&(b=d.Ca);break;case 29:d&&(b=d.Ab);break;case 30:d&&sc(d)&&(b=d.eb)}}return b};
|
|
|
|
|
k.message=function(a,b){b&&(a+=" @"+L(this,Y(this.b.va&65535).H));if(!this.na||a!=this.na)if(this.na=a,this.oa&1073741824)this.Z.push(a);else{var c;if(this.oa&-2147483648&&this.b&&(c=this.b.C.X)||xb(this,!0))this.ba(),c&&(a+=" (cpu halted)");this.i(a);this.b&&(a=this.b,Ld(a),a.ta=0,a.xa())}};
|
|
|
|
|
function ui(a){var b;if(!Je(a))a.G&&a.G.length&&a.i("instruction history buffer freed"),a.da=0,a.G=[];else if(!a.G||!a.G.length){a.G=Array(1E3);for(b=0;b<a.G.length;b++)a.G[b]=Y();a.da=0;a.i("instruction history buffer allocated")}}k.pb=function(a,b){if(!Ii(this,b))return!1;this.b.pb(a);return!0};
|
|
|
|
|
k.qb=function(a,b,c){if(!Ii(this))return!1;null===b&&(b=!this.ub||"tr"==this.ub);this.J=0;a||Je(this)&&Ke(this,this.b.u[7],0);try{a=Md(this.b,a);var d=this.b.qb(a);0<d&&(Ub(this.b,d),this.J+=d,Vb(this.b,d,!0),Wb(this.b,d),this.za++)}catch(e){"number"!=typeof e&&(this.J=0,Ab(this.b,e.stack||e.message))}!1!==c&&(this.v&&this.v.stop&&this.v.stop(),this.A.xa(-1));Gd(this,b||!1);return 0<this.J};k.ba=function(a){this.b&&this.b.ba(a)};
|
|
|
|
|
function Gd(a,b){if(a.Za){void 0===b&&(b=!0);var c;c=a.b;if(c=c.L&128?c.qd|c.od<<8:0){var d=c>>8;a.i("trapped to "+L(a,c&255,1)+" ("+(0>d?Cb[-d]:L(a,d))+")")}a.K=Y(a.b.u[7]);b&&1!=a.P?Ji(a):Ki(a)}}function Ii(a,b){var c;(c=!a.b||!yb(a.b))||(c=a.b,c.C.la?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.C.X?(b||a.i("cpu busy or unavailable, command ignored"),!1):!zb(a.b)}k.Ja=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};
|
|
|
|
|
k.Ia=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};k.reset=function(a){ui(this);this.za=0;this.na=null;this.J=0;this.K=Y(this.b.u[7]);this.C.X=!1;Li(this);a||Gd(this)};k.save=function(){var a=new S(this);a.set(0,Ei(this.K));a.set(1,Ei(this.S));a.set(2,[this.g,this.T,this.oa]);a.set(3,this.I);return a.data()};
|
|
|
|
|
k.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Fi(a[b++]),this.S=Fi(a[b++]),this.g=a[b][0],"string"==typeof this.g&&(this.g=[this.g]),this.T=a[b][1],this.oa|=a[b][2]);a[3]&&(this.I=a[3]);return!0};k.start=function(a,b){this.P||this.i("running");this.C.X=!0;this.Rb=a;this.Sb=b};
|
|
|
|
|
k.stop=function(a,b){if(this.C.X){this.C.X=!1;this.J=b-this.Sb;if(!this.P){b="stopped";if(this.J){a-=this.Rb;var c=0<a?Math.round(1E3*this.J/a):0;b+=" (";Je(this)&&(b+=this.za+" instructions, ",this.za=0);b+=this.J+" cycles, "+a+" ms, "+c+" hz)"}else I(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}Gd(this,!0);this.ob();Li(this,this.b.u[7]);this.na=null}};function Je(a){return 1<a.f.length||!!a.ta}
|
|
|
|
|
function Ke(a,b,c){var d=-1;c||(d=oc(a.b,b),0==d&&(b=Xd(a.b,2)));if(0<c&&(a.ta&&!--a.ta||yd(a,b,1,a.f)))return!0;0<=c&&a.G.length&&(a.za++,0>d&&(d=oc(a.b,b)),65535!=(d&65535)&&(a.sc(a.G[a.da],b),++a.da==a.G.length&&(a.da=0)));return!1}function Qf(a){var b=a.b;if(b.C.X)throw T(b,a.b.va&65535),a.ba(),-1;return!1}
|
|
|
|
|
function ti(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;c=a.aa(c);zd(d.ea[c>>>d.pa],!1)}a.M=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.w,c=a.aa(c),zd(d.ea[c>>>d.pa],!0);a.F=["bw"];a.$a=0}k.vb=function(a,b,c){var d=!0;c||Mi(this,a,b,!1,!0);if(a!=this.f){var e=this.aa(b);if(-1===e)this.i("invalid address: "+L(this,b.H)),d=!1;else{var f=this.w;f.ea[e>>>f.pa].vb(e&f.w,a==this.F)}}d&&(a.push(b),c?b.Va=!0:(Ni(this,a,a.length-1,"set"),ui(this)));return d};
|
|
|
|
|
function Mi(a,b,c,d,e){var f=!1;c=a.aa(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.aa(h)&&(!d||h.Va)){f=!0;h.Va||e||Ni(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,zd(d.ea[c>>>d.pa],b==a.F));h.Va||ui(a);break}}return f}function Oi(a,b){for(var c=1;c<b.length;c++)Ni(a,b,c);return b.length-1}function Ni(a,b,c,d){c=b[c];a.i(b[0]+" "+L(a,c.H)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
|
|
|
|
|
function Li(a,b){if(void 0!==b)yd(a,b,1,a.f,!0),a.P=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Va){if(!Mi(a,a.f,c,!0))break;b=0}}}
|
|
|
|
|
function yd(a,b,c,d,e){var f=!1;if(!a.$a++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Va)for(var l=a.aa(h)&65535,m=0;m<c;m++)if(b+m==l){var n,f=!0;h.Va&&(Mi(a,d,h,!0),e=!0);if(n=h.hd){for(var f=!1,r=0;r<n.length;r++)if(!Pi(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var w=r+1;w<n.length&&n[w].indexOf("else");w++)r++;if(w==n.length){f=!0;break}}a.b.C.X||(f=!0)}if(f){e||Ni(a,d,g,"hit");break}}}a.$a--;return f}
|
|
|
|
|
function Qi(a,b,c,d){var e=Y(b.H),f=a.ua(b,2),g,h;for(h in a.tb)if(g=a.tb[h][f&h])break;g||(g=Ai);var l=g[0];0<=a.Qb.indexOf(l)&&(g=Ai,l=g[0]);var m=h="",n=xi[l],r=g.length-1;l||r||(h=L(a,f));for(l=1;l<=r;l++){var w=g[l];if(void 0!==w){var t;t=a;var A=w,w=b,y="",C=A&61440;if(4096==C)w=w.H+((f&255)<<24>>23)&65535,y=L(t,w);else if(8192==C)w=w.H-((f&63)<<1)&65535,y=L(t,w);else if(12288==C)y=L(t,f&7,1);else if(24576==C)y=L(t,f&63,1);else if(32768==C)y=L(t,f&255,1);else if(C=f&A,A&4032&&(C>>=6,A>>=6),
|
|
|
|
|
A&63)switch(A=C&7,C&56){case 0:y=Hi(A);break;case 8:y="@"+Hi(A);break;case 16:7>A?y="("+Hi(A)+")+":(C=t.ua(w,2),y="#"+L(t,C,0,!0));break;case 24:7>A?y="@("+Hi(A)+")+":(C=t.ua(w,2),y="@#"+L(t,C,0,!0));break;case 32:y="-("+Hi(A)+")";break;case 40:y="@-("+Hi(A)+")";break;case 48:C=t.ua(w,2);y=L(t,C,0,!0)+"("+Hi(A)+")";7==A&&(y=L(t,C+w.H&65535));break;case 56:C=t.ua(w,2),y="@"+L(t,C)+"("+Hi(A)+")",7==A&&(y="@"+L(t,C+w.H&65535))}t=y;if(!t||!t.length){h="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);
|
|
|
|
|
0<h.length&&(h+=",");h+=t||"???"}}f="";g=L(a,e.H)+":";if(-1!==e.H&&-1!==b.H){do if(f+=" "+L(a,a.ua(e,2)),null==e.H)break;while(e.H!=b.H)}g+=ta(f,24);g+=ta(n,5);h&&(g+=" "+h);if(c||m)g=ta(g,60)+";"+(c||""),g=a.b.C.Db?g+("cycles="+Id(a.b).toString()+" cs="+p(a.b.Vb)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function Ri(a,b){switch(b){case "N":a=Vd(a.b);break;case "Z":a=Ud(a.b);break;case "V":a=Td(a.b);break;case "C":a=Sd(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
|
|
|
|
function Z(a,b){var c="",d=a.b;if(8>b)c=Hi(b),c+="="+L(a,d.u[b]);else if(13>b)c="A"+(b-8)+"="+L(a,d.fb[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+L(a,d.Pa[b-16]);else switch(b){case 20:c="PS="+L(a,id(d));break;case 21:c="IR="+L(a,d.Lb);break;case 22:c="ER="+L(a,d.ra);break;case 23:c="SL="+L(a,d.nb);break;case 24:c="MMR0="+L(a,cd(d));break;case 25:c="MMR1="+L(a,ed(d));break;case 26:c="MMR2="+L(a,fd(d));break;case 27:c="MMR3="+L(a,d.Xa);break;case 28:a.v&&(c="AR="+L(a,a.v.Ca,3));break;case 29:a.v&&
|
|
|
|
|
(c="DR="+L(a,a.v.Ab));break;case 30:a.v&&sc(a.v)&&(c="SR="+L(a,a.v.eb,3))}c&&(c+=" ");return c}function Si(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,20)+Z(a,21)+Z(a,23);d+=Ri(a,"T")+Ri(a,"N")+Ri(a,"Z")+Ri(a,"V")+Ri(a,"C");b&&(b=d,c=""+(Z(a,24)+Z(a,25)),c+=Z(a,26)+Z(a,27)+Z(a,22),c=c+"\n"+(Z(a,30)+Z(a,28)+Z(a,29)),d=b+("\n"+c));return d}k.Gc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
function Qg(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var n=f,l=[l>>>0,g],r=Aa(n,l,a.Gc);0>r&&n.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.I.push({Lg:b,H:c,xd:d,ia:e,Ec:f})}function Ti(a,b,c){var d=[],e=a.aa(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.H>>>0,h=f.xd;if(e>=g&&e<g+h){e=Aa(f.Ec,[e-g],a.Gc);0<=e?Ui(a,b,e,d):c&&(e=~e,Ui(a,b,e-1,d),Ui(a,b,e,d));break}}return d}
|
|
|
|
|
function Ui(a,b,c,d){var e={},f=a.I[b].Ec,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].ia[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function Vi(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ri(a)||a.i("no variables"),!0;if(!c[2])return ri(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=ni(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
|
|
|
|
|
function Wi(a,b,c){var d=null;if(b=Ci(a,b,!0)){a.aa(b);var e=Ti(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.H-e[1])&&(g=" + "+q(f)),f=e[0]+" ("+L(a,e[1])+")"+g,c&&a.i(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.H)&&(g=" - "+q(f)),f=e[4]+" ("+L(a,e[5])+")"+g,c&&a.i(f),d||(d=f))}else c&&a.i("no symbols")}return d}
|
|
|
|
|
function Ji(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}g=ni(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.u[6]=g&65535;break;case "PC":case "R7":T(e,
|
|
|
|
|
g);a.K=Y(e.u[7]);break;case "N":e.W=g?32768:0;break;case "Z":e.Y=g?0:1;break;case "V":e.V=g?32768:0;break;case "C":e.U=g?65536:0;break;case "PS":jd(e,g);break;case "IR":hd(e,g);break;case "ER":e.ra=g;d=!0;break;case "SL":e.nb=g|255;break;case "MMR0":dd(e,g);d=!0;break;case "MMR3":gd(e,g);d=!0;break;case "AR":a.v&&(d=a.v,pc(d,d.Ca=g));d=!0;break;case "DR":a.v&&(d=a.v,kc(d,d.Ab=g));d=!0;break;case "SR":if(a.v&&sc(a.v)){qc(a.v,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.u[b]=
|
|
|
|
|
g&65535;break}a.i("unknown register: "+f);return}a.A.xa();a.i("updated registers:")}}a.i(Si(a,d));c&&(a.K=Y(e.u[7]),Ki(a,L(a,a.K.H)))}}function Xi(a,b){b=ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):qi(a,null,c[2].charCodeAt(0)):ni(a,b,!0)}
|
|
|
|
|
function Yi(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=pi(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ub=b;Pa(c,function(){return wb(a,!0)&&a.qb(e,d,!1)},function(){a.v&&a.v.stop&&a.v.stop();a.A.xa(-1);wb(a,!1)})}}
|
|
|
|
|
function Ki(a,b,c,d){if(b=Ci(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=pi(a,c.substr(1)),null!=c&&(d=c);else{d=Ci(a,c,!0);if(!d||d.H<b.H)return;e=d.H-b.H;if(256<e){a.i("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=xb(a,!1)||a.P?a.J:null;var g=null!=f?"cycles":null,h=Ti(a,b),l=b.H;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=Qi(a,b,g,f);a.i(f);a.K=b;e-=b.H-l;c++}}}
|
|
|
|
|
function Pi(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(">> "+b):(a.T&&(a.i("ended assemble at "+L(a,a.S.H)),a.K=a.S,a.T=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.na=null;if(yb(a)&&0<b.length){a.T&&(b="a "+L(a,a.S.H)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],l=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var r=
|
|
|
|
|
Ci(a,g[1],!0);if(r)if(a.S=r,void 0===g[2])a.i("begin assemble at "+L(a,r.H)),a.T=!0,a.A.xa();else{var w;a.i("not supported yet");w=[];if(w.length){for(var t=0;t<w.length;t++)a.Mb(r,w[t],1);a.i(Qi(a,a.S))}}break;case "b":a:{var A=g[0],y=g[1],C=b;if("?"==y)a.i("breakpoint commands:"),a.i("\tbp [#]\tset exec breakpoint at addr #"),a.i("\tbr [#]\tset read breakpoint at addr #"),a.i("\tbw [#]\tset write breakpoint at addr #"),a.i("\tbc [#]\tclear breakpoint at addr #"),a.i("\tbl\tlist all breakpoints"),
|
|
|
|
|
a.i("\tbn [#]\tbreak after # instruction(s)");else{var ra=A.charAt(1);if("l"==ra){var Oa;Oa=0+Oi(a,a.f);Oa+=Oi(a,a.M);(Oa+=Oi(a,a.F))||a.i("no breakpoints")}else if("n"==ra)a.ta=pi(a,y),a.i("break after "+a.ta+" instruction(s)");else if(void 0===y)a.i("missing breakpoint address");else{var Q=Y();if("*"!=y&&(Q=Ci(a,y,!0),!Q))break a;"c"==ra?null==Q.H?(ti(a),a.i("all breakpoints cleared")):Mi(a,a.f,Q)||Mi(a,a.M,Q)||Mi(a,a.F,Q)||a.i("breakpoint missing: "+L(a,Q.H)):null!=Q.H&&(Gi(a,Q,C),"p"==ra?a.vb(a.f,
|
|
|
|
|
Q):"r"==ra?a.vb(a.M,Q):"w"==ra?a.vb(a.F,Q):a.i("unknown breakpoint command: "+ra))}}}break;case "c":a.ab&&(a.ab.value="");break;case "d":a:{var pb,Qa=g[0],ua=g[1],Ra=g[2],qj=g[3];if("?"==ua){var qb="";for(pb in Eb)a.Qa[pb]&&(qb&&(qb+=","),qb+=pb);qb+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [n] dump n bytes at address a");a.i("\tdw [a] [n] dump n words at address a");a.i("\tdd [a] [n] dump n dwords at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
|
|
|
|
|
a.i("\tdh [p] [n] dump n instructions from history position p");qb.length&&a.i("dump extension commands:\n\t"+qb)}else if("state"==ua){var Zg=Zi(a.A,!0);"console"==Ra?console.log(Zg):(a.ab&&(a.ab.value=""),a.i(Zg))}else if("symbols"==ua)for(var Zd=0;Zd<a.I.length;Zd++){var $d=a.I[Zd],rb;for(rb in $d.ia)if("."!=rb.charAt(0)){var $g=$d.ia[rb].o;if(void 0!==$g){var ah=$d.ia[rb].l;ah&&(rb=ah);a.i(L(a,$g)+" "+rb)}}}else{if("d"==Qa){for(pb in Eb)if(g[1]==pb){var bh=a.Qa[pb];bh?(g.shift(),g.shift(),bh(g)):
|
|
|
|
|
a.i("no dump registered for "+ua);break a}ua||(Qa=a.Tb||"dw")}else a.Tb=Qa;if("dh"==Qa){var ch=ua,dh=Ra,eh="",fh=0,ha=a.da,va=a.G;if(va.length){var da=+ch||a.sb,Yb=+dh||10;isNaN(da)?da=Yb:eh="more ";da>va.length&&(a.i("note: only "+va.length+" available"),da=va.length);ha-=da;0>ha&&(null==va[va.length-1].H?(da=ha+da,ha=0):ha+=va.length);var ae=[];"call"==dh&&(Yb=1E5,ae=["CALL"]);for(void 0!==ch&&a.i(da+" instructions earlier:");0<Yb&&ha!=a.da;){var gh=va[ha++];if(null==gh.H)break;var Zb=Y(gh.H),rj=
|
|
|
|
|
da--,hh=Qi(a,Zb,"history",rj);(!ae.length||0<=hh.indexOf(ae[0]))&&a.i(hh);Zb.oc&&(ha+=Zb.oc,Yb-=Zb.oc,da-=Zb.oc);ha>=va.length&&(ha=0);a.sb=da;fh++;Yb--}}fh||(a.i("no "+eh+"history available"),a.sb=void 0)}else{var sb=Ci(a,ua);if(sb){var $b=0,be=!1,ce="ds"==Qa;Ra&&(be=!0,"l"==Ra.charAt(0)&&(be=!1,Ra=Ra.substr(1)||qj),$b=pi(a,Ra)>>>0,65536<$b&&($b=65536));for(var Sa="dd"==Qa?4:"db"==Qa?1:2,Sc=(be?$b-sb.H:Sa*$b)||128,de=ce?16:a.ma,sj=(Sc+de-1)/de|0||1,Ta="";sj--&&0<Sc;){for(var Ua="",ee="",ua=L(a,sb.H),
|
|
|
|
|
Tc=de,ac=0,bc=0;0<Tc&&0<Sc;){var tb=1,Uc=1==Sa?a.dc(sb,tb):a.ua(sb,tb=2),ac=ac|Uc<<(bc<<3),bc=bc+tb;bc==Sa&&(ce?(Ua&&(Ua+=","),Ua+="0x"+p(ac,2*Sa)):(Ua+=L(a,ac,Sa),Ua+=1==Sa?9==Tc?"-":" ":" "),ac=bc=0);Tc-=tb;for(Sc-=tb;1==Sa&&tb--;)var fe=Uc&255,ee=ee+(32<=fe&&128>fe?String.fromCharCode(fe):"."),Uc=Uc>>8}Ta&&(Ta+="\n");Ta=ce?Ta+(Ua+","):Ta+(ua+": "+Ua+(0==Tc?" "+ee:""))}Ta&&a.i(Ta);a.Ya=sb}}}}break;case "e":if("else"==g[0])break;var ub,ge,he,ie,je=g[0],ke=g[1];"eb"==je?(ub=1,ge=255,he=a.dc,ie=
|
|
|
|
|
a.Mb):"e"==je||"ew"==je?(ub=2,ge=65535,he=a.ua,ie=a.Bb):ke=null;if(null==ke)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var Vc=Ci(a,ke);if(Vc)for(var Wc=2;Wc<g.length;Wc++){var cc=ni(a,g[Wc]);if(void 0===cc){a.i("unrecognized value: "+g[Wc]);break}cc&~ge&&a.i("warning: "+p(cc)+" exceeds "+ub+"-byte value");a.i("changing "+L(a,Vc.H)+(I(a,16)?"":" from "+L(a,he.call(a,Vc),ub))+" to "+L(a,cc,ub));ie.call(a,Vc,cc,ub)}}break;
|
|
|
|
|
case "g":a:{var ih=g[1],tj=b;if(void 0!==ih){var le=Ci(a,ih,!0);if(!le)break a;Gi(a,le,tj);a.vb(a.f,le,!0)}a.pb(!0,c)}break;case "h":a.C.X?(c||a.i("halting"),a.ba()):xb(a,!0)||c||a.i("already halted");break;case "i":if("if"==g[0]){var me;var dc=b.substr(2),dc=ya(dc);ni(a,dc)?(c||a.i("true: "+dc),me=!0):(c||a.i("false: "+dc),me=!1);me||(d=!1);break}f=!0;break;case "k":var uj=g[0];if("?"==g[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var ne=
|
|
|
|
|
0,oe=Y(),ec=Y(a.b.u[6]);for(a.i("stack trace for "+L(a,ec.H));10>ne;){for(var Va=null,vj=256;65536>ec.H>>>0;){oe.H=a.ua(ec,2);if(null==ec.H||!vj--)break;if(!(oe.H&1)){for(var wj=a,Xc=oe,jh=null,fc=Xc.H,kh=fc,pe=1;6>=pe&&fc;pe++){if(2<pe){Xc.H=fc;var Yc=Qi(wj,Xc);if(0<=Yc.indexOf("JSR")){var lh=Yc.indexOf(" ");if(fc+(Yc.indexOf(" ",lh+1)-lh-1)/2==kh){jh=Yc;break}}}fc-=2}Xc.H=kh;if(Va=jh)break}}if(!Va||null==Va)break;var mh=null;if("ks"==uj){var nh=Va.match(/[0-9A-F]+$/);nh&&(mh=Wi(a,nh[0]))}Va=ta(Va,
|
|
|
|
|
50)+" ;"+(mh||"stack="+L(a,ec.H));a.i(Va);ne++}ne||a.i("no return addresses found")}break;case "l":if("ln"==g[0]){Wi(a,g[1],!0);break}f=!0;break;case "m":a:{var wa,xa=null,H=g[1];"?"==H&&(H=void 0);if(void 0!==H){var Ha=0;if("all"==H)Ha=1879046143,H=null;else if("on"==H)xa=!0,H=null;else if("off"==H)xa=!1,H=null;else{"keys"==H&&(H="key");"kbd"==H&&(H="keyboard");for(wa in Eb)if(H==wa){Ha=Eb[wa];xa=!!(a.oa&Ha);break}if(!Ha){a.i("unknown message category: "+H);break a}}if(Ha)if("on"==g[2])a.oa|=Ha,
|
|
|
|
|
xa=!0;else if("off"==g[2]&&(a.oa&=~Ha,xa=!1,1073741824==Ha)){for(var oh=1E3<=a.Z.length?a.Z.length-1E3:0;oh<a.Z.length;)a.i(a.Z[oh++]);a.Z=[]}}var xj=0,gc="";for(wa in Eb)if(!H||H==wa){var yj=!!(a.oa&Eb[wa]);if(null===xa||xa==yj)gc&&(gc+=","),++xj%10||(gc+="\n\t"),"key"==wa&&(wa="keys"),gc+=wa}void 0===H&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.i((null!==xa?xa?"messages on: ":"messages off: ":"message categories:\n\t")+(gc||"none"));ui(a)}break;case "p":if("print"==
|
|
|
|
|
g[0]){Xi(a,b.substr(5));break}var zj=g[0];if("?"==g[1])a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else{var ph="pr"==zj?1:0,qh=1+ph;if(a.P)a.i("step in progress");else{var Zc=Y(a.b.u[7]),hc=a.ua(Zc);3==hc||4==hc||34816==(hc&65280)||35072==(hc&65280)?(a.P=qh,Di(Zc,2)):2048==(hc&65024)&&(Qi(a,Zc),a.P=qh);a.P?(a.vb(a.f,Zc,!0),a.pb()||(a.A&&a.A.ob(),a.P=0)):Yi(a,ph?"tr":"t")}}break;case "r":if("reset"==b){a.A&&a.A.reset();break}Ji(a,
|
|
|
|
|
g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var ic=+g[2];if(8==ic||10==ic||16==ic)a.ma=ic;else{a.i("invalid base: "+ic);break}}a.i("default base: "+a.ma);break;case "cs":var jc;void 0!==g[3]&&(jc=+g[3]);switch(g[2]){case "int":a.b.Hb=jc;break;case "start":a.b.Wb=jc;break;case "stop":a.b.Ib=jc;break;default:a.i("unknown cs option");break a}void 0!==jc&&Fd(a.b);a.i("checksums "+(a.b.C.Db?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Jd(a.b,+g[2])||a.i("warning: using 1x multiplier, previous target not reached"));
|
|
|
|
|
a.i("target speed: "+(a.b.zb.toFixed(2)+"Mhz")+" ("+a.b.lb+"x)");break;default:if(g[1]){a.i("unknown option: "+g[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":Yi(a,g[0],g[1]);break;case "u":Ki(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Vi(a,
|
|
|
|
|
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.i("PDPjs version 1.30.5 ("+a.b.kb+",RELEASE"+(Bb?",TYPEDARRAYS":",LONGARRAYS")+")");a.i(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Xi(a,b.substr(1));break}var qe="commands:",re;for(re in wi)qe+="\n"+ta(re,9)+wi[re];Je(a)||(qe+="\nnote: history disabled if no exec breakpoints");a.i(qe);break;default:f=!0}f&&(a.i("unknown command: "+b),d=!1)}}catch(rh){a.i("debugger error: "+(rh.stack||rh.message)),d=!1}return d}
|
|
|
|
|
function Hd(a,b,c){b=li(a,b,c);for(var d in b)if(!Pi(a,b[+d]))return!1;return!0}bb(function(){for(var a=F(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new si(d);E(d,c)}});
|
|
|
|
|
function $i(a,b,c){x.call(this,"Computer",a,$i,33554432);this.C.la=!1;aj(this,b);this.K=Dd(this,"autoPower",a);this.g=0;this.Z=a.busWidth||a.buswidth;this.f=bj;this.I=null;this.F=this.S=!1;this.ca=Dd(this,"url")||"";(Math.random()+.1).toString(36);this.A=cj(this);if(this.b=vb("CPU",this.id)){this.j=vb("Debugger",this.id);this.w=new uc({id:this.hb+".bus",busWidth:this.Z},this.b,this.j);var d,e=nb(this.id);if((this.v=vb("Panel",this.id))&&this.v.ab)for(b=0;b<e.length;b++)d=e[b],d.N=this.v.N,d.i=this.v.i,
|
|
|
|
|
d.ab=this.v.ab;this.i("PDPjs v1.30.5\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.i("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ga&&d.Ga(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.G=d:this.f=parseInt(d,10));var f;if(a=Dd(this,"state")||(f=!0,a.state))b=this.M=a,f||(this.F=!0,this.f=bj),this.f&&(this.J=
|
|
|
|
|
new S(this,"1.30.5"),dj(this.J)?b=null:delete this.J);!b&&this.f&&(b=ej(this))&&(this.F=!0);if(b){var g=this;Da(b,null,!0,function(a,b,c){c?(g.G=null,g.F=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+ya(b):"")+")")):(g.I=b,g.S=!0);J(g)})}else J(this);this.D.power||(this.K=!0);!c&&this.K&&fj(this,this.Xb)}else v("Unable to find CPU component")}B($i);var bj=0;
|
|
|
|
|
function aj(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.T=b}function Dd(a,b,c){var d=b.toLowerCase(),d=gb[b]||gb[d];void 0===d&&a.T&&(d=a.T[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function fj(a,b,c){for(var d=nb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!yb(f)){yb(f,function(){fj(a,b,c)});return}}b.call(a,c)}
|
|
|
|
|
function gj(a,b){var c=new S(a,"1.30.5","validate");if(dj(c)&&hj(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=$i.prototype;
|
|
|
|
|
k.Xb=function(a){void 0===a&&(a=this.f||(this.I?1:bj));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.J||new S(this,"1.30.5");if(-1==a)b=!0;else if(a>bj){if(dj(d,this.I)){this.B=new S(this,"1.30.5","failsafe");dj(this.B)&&(ij(this,d),a=2,jj(this.B));this.B.set("timestamp",Ca());kj(this.B);var e=this.f&&!this.F;if(1==a||Ga("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=hj(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?dj(d,g):("error"==
|
|
|
|
|
f&&"no machine state"!=g?(this.N("Error: "+g),"unable to verify user"==g&&(La("user",""),this.A=null)):this.i(f+": "+g),jj(d),dj(d)?(c=hj(d),e=!0):c=!1))}e&&gj(this,c?d:null)}else 2==a&&d.clear()}else gj(this);delete this.I;delete this.J}e=nb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=lj(this,g,d,b,c));b=[d,a,c];-1!=a?fj(this,this.Hc,b):this.Hc(b)}};
|
|
|
|
|
function lj(a,b,c,d,e){if(!b.C.la){b.C.la=!0;if(b.Ja){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ja(f,d)&&f&&(v("Unable to restore state for "+b.type),a.M&&!a.S?(c.clear(),a.f=bj,window&&window.location.reload()):a.P=!0,b.Ja(null),e=!1)}if(!d&&b.zc)for(a=b.zc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
|
|
|
|
k.Hc=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.C.la=!0;var d=this.D.power;d&&(d.textContent="Shutdown");this.b&&(lj(this,this.b,b,c,a),this.xa(),this.b.Cb());this.P&&(ij(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.g=0};
|
|
|
|
|
function ij(a,b){if(Ga("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.A||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.5"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;Da("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
|
|
|
function Zi(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new S(a,"1.30.5"),g=new S(a,"1.30.5","validate"),h=Ca();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.5");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ia&&(c&&a.b.ba(),d=a.b.Ia(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.C.la=!1,!1===d&&(e=null)));for(var h=nb(a.id),l=0;l<h.length;l++){var m=h[l];m.C.la&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&f.set(m.id,
|
|
|
|
|
d)),c&&(m.C.la=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.A&&mj(a,a.A,f.toString()),kj(g)&&kj(f)||(e=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&f.clear(h)):e=f.toString());c&&(a.C.la=!1,b=a.D.power)&&(b.textContent="Power");a.g=0;return e}
|
|
|
|
|
k.reset=function(){this.w&&this.w.reset&&(G(this,"Resetting "+this.w.type),this.w.reset());this.b&&this.b.reset&&(G(this,"Resetting "+this.b.type),this.b.reset());for(var a=nb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c!==this.b&&c.reset&&(G(this,"Resetting "+c.type),c.reset())}this.xa(-1)};k.start=function(a,b){for(var c=nb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.xa(-1)};
|
|
|
|
|
k.stop=function(a,b){for(var c=nb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.xa(-1)};
|
|
|
|
|
k.xa=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Ob+=c))&&(d.textContent=b.C.W?b.na.toFixed(2)+"Mhz":"Stopped",b.Ob=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.W;d=!!(b.b.I&8);if(0>=a||60<=(b.B+=a)){for(var e=0;e<b.b.u.length;e++)Sb(b,"R"+e,b.b.u[e]);e=id(b.b);Sb(b,"PS",e);Sb(b,"NF",e&8?1:0,1);Sb(b,"ZF",e&4?1:0,1);Sb(b,"VF",e&2?1:0,1);Sb(b,"CF",e&1?1:0,1);b.B=0}pc(b,0<a&&c&&!d?b.b.Sb:b.Ca);Yb(b,b.yb);a=b.b;a=a.Ka?a.Wa&16?1:2:4;rc(b,"B22",a&1);rc(b,"B18",a&2);rc(b,"B16",
|
|
|
|
|
k.xa=function(a){if(this.b){var b=this.b,c=a||0,d=b.D.speed;d&&(0>=c||30<=(b.Qb+=c))&&(d.textContent=b.C.X?b.na.toFixed(2)+"Mhz":"Stopped",b.Qb=0)}if(this.v&&(b=this.v,a=a||0,b.F)){c=b.b.C.X;d=!!(b.b.L&8);if(0>=a||60<=(b.B+=a)){for(var e=0;e<b.b.u.length;e++)Sb(b,"R"+e,b.b.u[e]);e=id(b.b);Sb(b,"PS",e);Sb(b,"NF",e&8?1:0,1);Sb(b,"ZF",e&4?1:0,1);Sb(b,"VF",e&2?1:0,1);Sb(b,"CF",e&1?1:0,1);b.B=0}pc(b,0<a&&c&&!d?b.b.Ub:b.Ca);kc(b,b.Ab);a=b.b;a=a.La?a.Xa&16?1:2:4;rc(b,"B22",a&1);rc(b,"B18",a&2);rc(b,"B16",
|
|
|
|
|
a&4)}};
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?bj(d,!1,!0):ij(d,d.Vb))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!d.G){var a=Ga("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bj(d,a,!0);!a&&d.M?window&&window.location.reload():(a||(d.nc=!0),d.Vb(ej),d.nc=!1)}else d.reset(),d.b&&d.b.Ab()},!0;case "save":if(pa(Fa(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=fj(d,!0);if(a){var b=!!(d.f&&!d.G||d.M),c=bj(d,b);b?pj(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};
|
|
|
|
|
function fj(a,b){var c=a.A;c||((c=Ka("user"),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=qj(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
|
|
|
|
|
function qj(a,b){a.A=null;b=Da(Fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La("user",b.data),a.A=b.data)}catch(d){v(d.message+" ("+c+")")}return a.A}function hj(a){var b=null;a.A&&(b=Fa()+"/api/v1/user?req=load&user="+a.A+"&state="+rj(a,"1.30.5"));return b}
|
|
|
|
|
function pj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=rj(a,"1.30.5");d.data=c;b=Da(Fa()+"/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.N("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.N(c),La("user",""),a.A=null)}}
|
|
|
|
|
function zh(a){var b;a=nb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.nb=function(a){if(this.$a){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.$a.focus();!a&&window&&window.scrollTo(b,c)}};bb(function(){for(var a=F(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=F(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new cj(g,d,!0);E(g,f);g.L&&ij(g,g.Vb)}});
|
|
|
|
|
Ra.show.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=pb("Computer",c.id))&&c.da&&!c.C.la&&c.Vb(-1)}});Ra.exit.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=pb("Computer",c.id))&&c.C.la&&bj(c,!(!c.f||c.G),!0)}});function S(a,b,c){this.id=a.id;this.key=rj(a,b,c);this.j=a.j;mj(this,a.gd)}function rj(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}
|
|
|
|
|
S.prototype={constructor:S,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){mj(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 mj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function nj(a){var b=!0;if(Ia()){var c=JSON.stringify(a[a.id]);La(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function kj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function gj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ia()&&(b=Ka(a.key))?(a[a.id]=b,a.b=!0):!1}var sj=0;
|
|
|
|
|
function Dj(a,b,c,d,e,f){e("Loading "+a+"...");Da(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Ej(h,a,b,c,d,e,f)})}
|
|
|
|
|
function Ej(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(mb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
|
|
|
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(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(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Fj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
|
|
|
|
function Fj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Da(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],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[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);Fj(a,b,c)}})}else c(a,null)}
|
|
|
|
|
function Gj(a,b,c,d){function e(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ra(a))}function f(a){e("Error: "+a);l&&(--sj||db(!0));l=!1}var g,h,l=!0;sj++;lb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
|
|
|
|
|
(c="/versions/pdpjs/1.30.5/components.xsl");m=function(d,h){h?Dj(c,null,null,!1,e,function(d,l){l?(mb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--sj||db(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--sj||db(!0)):f("invalid machine element: "+
|
|
|
|
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Dj(b,a,d,!0,e,m):Ej(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){db(!1);return Gj(a,b,c,d)};window.enableEvents=db;window.sendEvent=eb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.5/pdp11-dbg.map
|
|
|
|
|
k.wa=function(a,b,c){var d=this;switch(b){case "power":return this.D[b]=c,c.onclick=function(){d.g||(d.C.la?Zi(d,!1,!0):fj(d,d.Xb))},!0;case "reset":return this.D[b]=c,c.onclick=function(){if(d.C.la&&!d.g)if(d.f&&!d.G){var a=Ga("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Zi(d,a,!0);!a&&d.M?window&&window.location.reload():(a||(d.pc=!0),d.Xb(bj),d.pc=!1)}else d.reset(),d.b&&d.b.Cb()},!0;case "save":if(pa(Fa(),"pcjs.org"))c.parentNode.removeChild(c);else return this.D[b]=
|
|
|
|
|
c,c.onclick=function(){var a=cj(d,!0);if(a){var b=!!(d.f&&!d.G||d.M),c=Zi(d,b);b?mj(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};
|
|
|
|
|
function cj(a,b){var c=a.A;c||((c=Ka("user"),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=nj(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
|
|
|
|
|
function nj(a,b){a.A=null;b=Da(Fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(La("user",b.data),a.A=b.data)}catch(d){v(d.message+" ("+c+")")}return a.A}function ej(a){var b=null;a.A&&(b=Fa()+"/api/v1/user?req=load&user="+a.A+"&state="+oj(a,"1.30.5"));return b}
|
|
|
|
|
function mj(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=oj(a,"1.30.5");d.data=c;b=Da(Fa()+"/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.N("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.N(c),La("user",""),a.A=null)}}
|
|
|
|
|
function wh(a){var b;a=nb(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}k.ob=function(a){if(this.ab){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);this.ab.focus();!a&&window&&window.scrollTo(b,c)}};bb(function(){for(var a=F(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=F(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new $i(g,d,!0);E(g,f);g.K&&fj(g,g.Xb)}});
|
|
|
|
|
Xa.show.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=vb("Computer",c.id))&&c.da&&!c.C.la&&c.Xb(-1)}});Xa.exit.push(function(){for(var a=F(document,"pdp11","computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=vb("Computer",c.id))&&c.C.la&&Zi(c,!(!c.f||c.G),!0)}});function S(a,b,c){this.id=a.id;this.key=oj(a,b,c);this.j=a.j;jj(this,a.jd)}function oj(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}
|
|
|
|
|
S.prototype={constructor:S,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){jj(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 jj(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function kj(a){var b=!0;if(Ja()){var c=JSON.stringify(a[a.id]);La(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function hj(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function dj(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ja()&&(b=Ka(a.key))?(a[a.id]=b,a.b=!0):!1}var pj=0;
|
|
|
|
|
function Aj(a,b,c,d,e,f){e("Loading "+a+"...");Da(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):Bj(h,a,b,c,d,e,f)})}
|
|
|
|
|
function Bj(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(mb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
|
|
|
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(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(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Cj(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
|
|
|
|
function Cj(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Da(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],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[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);Cj(a,b,c)}})}else c(a,null)}
|
|
|
|
|
function Dj(a,b,c,d){function e(a){if(void 0===h){var b=g&&F(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=sa(a))}function f(a){e("Error: "+a);l&&(--pj||db(!0));l=!1}var g,h,l=!0;pj++;lb[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
|
|
|
|
|
(c="/versions/pdpjs/1.30.5/components.xsl");m=function(d,h){h?Aj(c,null,null,!1,e,function(d,l){l?(mb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--pj||db(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--pj||db(!0)):f("invalid machine element: "+
|
|
|
|
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Aj(b,a,d,!0,e,m):Bj(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPDP11=function(a,b,c,d){db(!1);return Dj(a,b,c,d)};window.enableEvents=db;window.sendEvent=eb;})();//# sourceMappingURL=/tmp/pdpjs/1.30.5/pdp11-dbg.map
|
|
|
|
|
|