Laid groundwork for MMU-specific functions, to avoid address mapping work when unnecessary

This commit is contained in:
Jeff 2016-09-25 12:12:26 -07:00 committed by Jeff Parsons
commit da617d454d
6 changed files with 804 additions and 687 deletions

View file

@ -171,19 +171,20 @@ BusPDP11.ERROR = {
* array), and since these I/O accesses should be pretty infrequent relative to all other memory accesses,
* the benefit seems pretty minimal.
*/
BusPDP11.controller = {
BusPDP11.IOController = {
/**
* readIOPageByte(off, addr)
* readByte(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} addr
* @return {number}
*/
readIOPageByte: function(off, addr)
readByte: function(off, addr)
{
var afn = this.controller.aIOHandlers[off];
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (afn) {
if (afn[0]) {
return afn[0](addr);
@ -195,26 +196,27 @@ BusPDP11.controller = {
}
}
} else if (addr & 0x1) {
afn = this.controller.aIOHandlers[off & ~0x1];
afn = bus.aIOHandlers[off & ~0x1];
if (afn[2]) {
return afn[2](addr & ~0x1) >> 8;
}
}
return this.controller.fnAccess(addr, -1, 1);
return bus.fnAccess(addr, -1, 1);
},
/**
* writeIOPageByte(off, b, addr)
* writeByte(off, b, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} b (which should already be pre-masked to 8 bits)
* @param {number} addr
*/
writeIOPageByte: function(off, b, addr)
writeByte: function(off, b, addr)
{
var w;
var afn = this.controller.aIOHandlers[off];
var bus = this.controller;
var afn = bus.aIOHandlers[off];
if (afn) {
if (afn[1]) {
afn[1](b, addr);
@ -229,7 +231,7 @@ BusPDP11.controller = {
return;
}
} else if (addr & 0x1) {
afn = this.controller.aIOHandlers[off & ~0x1];
afn = bus.aIOHandlers[off & ~0x1];
if (afn[3]) {
addr &= ~0x1;
w = afn[2]? afn[2](addr) : 0;
@ -237,21 +239,22 @@ BusPDP11.controller = {
return;
}
}
this.controller.fnAccess(addr, b, 1);
bus.fnAccess(addr, b, 1);
},
/**
* readIOPageShort(off, addr)
* readShort(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} addr
* @return {number}
*/
readIOPageShort: function(off, addr)
readShort: function(off, addr)
{
var bus = this.controller;
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
var afn = this.controller.aIOHandlers[off];
var afn = bus.aIOHandlers[off];
if (afn) {
if (afn[2]) {
return afn[2](addr);
@ -259,21 +262,22 @@ BusPDP11.controller = {
return afn[0](addr) | (afn[0](addr + 1) << 8);
}
}
return this.controller.fnAccess(addr, -1, 0);
return bus.fnAccess(addr, -1, 0);
},
/**
* writeIOPageShort(off, w, addr)
* writeShort(off, w, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} w (which should already be pre-masked to 16 bits)
* @param {number} addr
*/
writeIOPageShort: function(off, w, addr)
writeShort: function(off, w, addr)
{
var bus = this.controller;
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
var afn = this.controller.aIOHandlers[off];
var afn = bus.aIOHandlers[off];
if (afn) {
if (afn[3]) {
afn[3](w, addr);
@ -284,7 +288,7 @@ BusPDP11.controller = {
return;
}
}
this.controller.fnAccess(addr, w, 0);
bus.fnAccess(addr, w, 0);
}
};
@ -304,12 +308,17 @@ BusPDP11.prototype.initMemory = function()
this.aMemBlocks[iBlock] = block;
}
this.afnIOPage = new Array(4);
this.afnIOPage[0] = BusPDP11.controller.readIOPageByte;
this.afnIOPage[1] = BusPDP11.controller.writeIOPageByte;
this.afnIOPage[2] = BusPDP11.controller.readIOPageShort;
this.afnIOPage[3] = BusPDP11.controller.writeIOPageShort;
this.addrIOPage = this.addrTotal - BusPDP11.IOPAGE_LENGTH;
this.addMemory(this.addrIOPage, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);
this.afnIOPage[0] = BusPDP11.IOController.readByte;
this.afnIOPage[1] = BusPDP11.IOController.writeByte;
this.afnIOPage[2] = BusPDP11.IOController.readShort;
this.afnIOPage[3] = BusPDP11.IOController.writeShort;
/*
* Map IOPAGE at the top of the address space (as determined by nBusWidth), as well as at IOPAGE_VIRT
* (which is the only place that 16-bit code can reach the IOPAGE when memory management is not enabled).
*/
var addr = this.addrTotal - BusPDP11.IOPAGE_LENGTH;
this.addMemory(addr, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);
this.addMemory(BusPDP11.IOPAGE_VIRT, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);
};
/**
@ -342,6 +351,9 @@ BusPDP11.prototype.getControllerAccess = function()
/**
* reset()
*
* The Device component initializes fnReset by calling addIODefaultHandlers() from its initBus() function;
* it will be that function's responsibility to reset all the necessary devices.
*
* @this {BusPDP11}
*/
BusPDP11.prototype.reset = function()
@ -352,10 +364,15 @@ BusPDP11.prototype.reset = function()
/**
* access()
*
* This is our default I/O handler, called whenever there's an IOPAGE access without a corresponding entry
* in aIOHandlers; in the interim, our Device component will override this default handler with its own function
* by calling addIODefaultHandlers(), until the Device component has been completely rewritten to install I/O
* handlers for all supported I/O addresses.
*
* @this {BusPDP11}
* @param {number} addr
* @param {number} data
* @param {number} byteFlag
* @param {number} addr (ie, an IOPAGE address)
* @param {number} data (-1 if read, otherwise write)
* @param {number} byteFlag (true if byte I/O, otherwise word)
*/
BusPDP11.prototype.access = function(addr, data, byteFlag)
{
@ -957,11 +974,11 @@ BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte,
for (var addr = start; addr <= end; addr += 2) {
var off = addr & BusPDP11.IOPAGE_MASK;
if (this.aIOHandlers[off] !== undefined) {
Component.warning("I/O address already registered: " + str.toHexLong(this.addrIOPage + off));
Component.warning("I/O address already registered: " + str.toHexLong(addr));
continue;
}
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadShort, fnWriteShort, false];
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(this.addrIOPage + off) + ")");
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(addr) + ")");
}
};

File diff suppressed because it is too large Load diff

View file

@ -226,7 +226,8 @@ var PDP11 = {
BYTE: 0x1,
READ: 0x2,
WRITE: 0x4,
UPDATE: 0x6
UPDATE: 0x6,
DSPACE: 0x10000 // set bit 17 in any 16-bit virtual address that refers to D space (as opposed to I space)
},
/*
* Internal flags passed to writeByteByMode(), etc.
@ -276,13 +277,17 @@ var PDP11 = {
/*
* Assorted special (UNIBUS) addresses
*
* Within the PDP-11's 18-bit address space, of the 0x40000 possible addresses, the top 8Kb (0x2000)
* is called the IOPAGE and is reserved for CPU and I/O registers. The IOPAGE spans 0x3E000-0x3FFFF.
* Within the PDP-11/45's 18-bit address space, of the 0x40000 possible addresses (256Kb), the top 0x2000
* (8Kb) is called the IOPAGE and is reserved for CPU and I/O registers. The IOPAGE spans 0x3E000-0x3FFFF.
*
* To map UNIBUS addresses to 22-bit physical addresses, a UNIBUS relocation map is used. It consists
* of 31 double-word registers that each hold a 22-bit base address. When UNIBUS relocation is enabled,
* the top 5 bits of an address select one of the 31 mapping registers, and the bottom 13 bits are then
* added to the contents of the selected mapping register.
* Within the PDP-11/70's 22-bit address space, of the 0x400000 possible addresses (4Mb), the top 0x20000
* (256Kb) is mapped to the UNIBUS (not physical memory), and as before, the top 0x2000 (8Kb) of that is
* mapped to the IOPAGE.
*
* To map 18-bit UNIBUS addresses to 22-bit physical addresses, the 11/70 uses a UNIBUS relocation map.
* It consists of 31 double-word registers that each hold a 22-bit base address. When UNIBUS relocation
* is enabled, the top 5 bits of an address select one of the 31 mapping registers, and the bottom 13 bits
* are then added to the contents of the selected mapping register.
*
* ES6 ALERT: By using octal constants, this is the first place I'm dipping my toe into ECMAScript 6 waters.
* If you're loading this raw source code into your browser, then by now (2016) you're almost certainly using
@ -293,11 +298,15 @@ var PDP11 = {
* For more details: https://github.com/google/closure-compiler/wiki/ECMAScript6
*/
UNIBUS: { //16-bit 18-bit 22-bit Hex Description
PSW: 0o177776, // 777776 17777776 0x3FFFFE PSW
SL: 0o177774, // Stack Limit
PSW: 0o177776, // 777776 17777776 0x3FFFFE Processor Status Word
SL: 0o177774, // Stack Limit Register
PIR: 0o177772, // Program Interrupt Request
MB: 0o177770, // Microprogram break
CPUERR: 0o177766, // CPU error
MB: 0o177770, // Microprogram break (11/70 only?)
CPUERR: 0o177766, // CPU error (11/70 only?)
SYSID: 0o177764, // System ID Register (11/70 only?)
SIZE_HI: 0o177762, // Upper Size Register (always zero) (11/70 only?)
SIZE_LO: 0o177760, // Lower Size Register (last 32-word block) (11/70 only?)
DISPLAY: 0o177570, // Console Switch and Display
MMR0: 0o177572, // 777572 17777572
MMR1: 0o177574, // 777574 17777574
MMR2: 0o177576, // 777576 17777576

View file

@ -734,7 +734,7 @@ DevicePDP11.prototype.readData = function(meta, block, address, count)
return;
}
for (word = 0; word < meta.blocksize && count > 0; word++) {
if (this.cpu.writeWordByAddr((meta.mapped? this.cpu.mapUnibus(address) : address), meta.cache[block][word]) < 0) {
if (this.cpu.writeWordByPhysical((meta.mapped? this.cpu.mapUnibus(address) : address), meta.cache[block][word]) < 0) {
meta.postProcess(2, meta, block, address, count); // NXM
return;
}
@ -768,7 +768,7 @@ DevicePDP11.prototype.writeData = function(meta, block, address, count)
}
}
for (word = 0; word < meta.blocksize && count > 0; word++) {
data = this.cpu.readWordByAddr((meta.mapped? this.cpu.mapUnibus(address) : address));
data = this.cpu.readWordByPhysical((meta.mapped? this.cpu.mapUnibus(address) : address));
if (data < 0) {
meta.postProcess(2, meta, block, address, count); // NXM
return;

View file

@ -1,219 +1,216 @@
(function(){var l;
function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?c.match(/^[0-9a-f]+$/i):8==f?c.match(/^[0-7]+$/):2==f&&
c.match(/^[01]+$/):c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ca(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c}
function da(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function ea(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ga(){var a=ha();return-1!==a.indexOf("pcjs.org",a.length-8)}var ma={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function na(a){return a.replace(/[&<>"']/g,function(a){return ma[a]})}function oa(a,b){return(a+" ").slice(0,b)}
function pa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function qa(a,b,d){var c=0,f=a.length,e=0;for(d||(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var sa=Date.now||function(){return+new Date};function ta(){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 ua(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"==
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function va(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){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}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(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 Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Fa(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ga={init:[],show:[],exit:[]},Ha=!1,Ia=!1,Na=!0;function Oa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Pa(a){Ga.init.push(a)}
function Qa(a){if(Na)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ra(a){!Na&&a?(Na=!0,Ha&&Sa("init"),Ia&&Sa("show")):Na=a}function Sa(a){Ga[a]&&Qa(Ga[a])}Oa("onload",function(){Ha=!0;Qa(Ga.init)});Oa("onpageshow",function(){Ia=!0;Qa(Ga.show)});Oa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Qa(Ga.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.oc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,nb:!1,dc:!1,fa:!1,error:!1};this.Wb=null;this.A.error=!1;this.O={};this.I=null;this.ia=c||0;v.push(this)}var Ta=void 0,Ua={};
if(window){Ta||(Ta=window.location.search.substr(1));for(var Va,Wa=/\+/g,Xa=/([^&=]+)=?([^&]*)/g;Va=Xa.exec(Ta);)Ua[decodeURIComponent(Va[1].replace(Wa," "))]=decodeURIComponent(Va[2].replace(Wa," "))}function Ya(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=u);a.prototype=Ya(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Za=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Za={},v=[];function $a(a,b,d){Za[a]&&b&&(Za[a][b]=d)}function ab(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function bb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function x(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function cb(a,b){b=y(b.parentNode,"pdp11-control");for(var d=0;d<b.length;d++)for(var c=b[d].childNodes,f=0;f<c.length;f++){var e=c[f];if(1===e.nodeType){var h=e.getAttribute("class");if(h)for(var g=h.split(" "),k=0;k<g.length;k++)switch(h=g[k],h){case "pdp11-binding":(h=x(e))&&h.binding&&a.ua(h.type,h.binding,e,h.value),k=g.length}}}}
function y(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ua:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.fb=this.O[b]=d,d.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}}(d),
this.oa=function(a){this.i(a,this.Bb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Bb+": "+a)},oa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.fa=!0},Ma:function(a,b){b&&(this.A.fa=!1);return!0}};function db(a,b){if(a.I){a===a.I?b|=0:b=b||a.ia;var d=a.I.ia&b;return!!b&&d===b||!!(d&a.I.Gc)}return!1}
function eb(a,b){if(a.A.dc)return a.A.nb&&(a.A.nb=!1),a.A.dc=!1;if(a.A.error)return a.i(a.toString()+" error"),!1;a.A.nb=b;return a.A.nb}function fb(a,b){a.A.nb&&(b?a.A.dc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.A.nb}function A(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Wb;a.Wb=null;b&&b()}}function gb(a,b){b&&(a.A.ready?b():a.Wb=b);return a.A.ready}function hb(a,b){a.A.error=!0;a.oa(b)}
var tb="undefined"!==typeof ArrayBuffer,ub=2,B=4,C=6,ub=0|ub,vb=1|ub,B=0|B,wb=1|B,C=0|C,D=1|C,xb={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function yb(a){u.call(this,"Panel",a,yb)}w(yb);l=yb.prototype;l.ua=function(a,b,d,c){return this.F&&this.F.ua(a,b,d,c)||this.b&&this.b.ua(a,b,d,c)||this.I&&this.I.ua(a,b,d,c)?!0:this.parent.ua.call(this,a,b,d,c)};
l.Xa=function(a,b,d,c){this.F=a;this.H=b;this.b=d;this.I=c};l.Na=function(a,b){b||zb();return!0};l.Ma=function(){return!0};l.xa=function(){};function zb(){for(var a=!1,b=y(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=x(c),e;a:{e=f.id;if(void 0!==e){var h;for(h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}}e=null}e||(a=!0,e=new yb(f));cb(e,c);a&&A(e)}}Pa(zb);
function Ab(a,b,d){u.call(this,"Bus",a,Ab);this.b=b;this.I=d;this.N=a.busWidth||16;this.G=Math.pow(2,this.N);this.H=this.G-1|0;this.Y=(this.N>>1)+2;10>this.Y&&(this.Y=10);15<this.Y&&(this.Y=15);this.Aa=1<<this.Y;this.T=this.Aa>>2;this.g=this.Aa-1;this.C=this.G/this.Aa|0;this.F=this.C-1;this.Ta=[];this.J=null;this.Gb=this.Cc;a=new H;Bb(a,this.I);this.R=Array(this.C);for(b=0;b<this.C;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=Cb;this.Cb[1]=Db;this.Cb[2]=Eb;this.Cb[3]=Fb;this.P=this.G-8192;Gb(this,
this.P,8192,Hb,this);A(this)}w(Ab);function Cb(a,b){var d=this.controller.Ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Ta[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
function Db(a,b,d){var c=this.controller.Ta[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Ta[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Eb(a,b){if(a=this.controller.Ta[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
function Fb(a,b,d){if(a=this.controller.Ta[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}l=Ab.prototype;l.reset=function(){this.J&&this.J()};l.Cc=function(){return 0};l.Na=function(a,b){b||this.reset();return!0};
function Gb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.Y;0<h&&g<a.R.length;){var k=a.R[g],m=g*a.Aa,n=a.Aa-(e-m);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.D)return k.Ub+=k.D-e,k.D=e,!0;if(e>=k.D+k.Ub){n=k.size-(e-m);n>h&&(n=h);k.Ub=e-k.D+n;e=m+a.Aa;h-=n;g++;continue}}return Ib(1,e,h)}e=new H(e,n,a.Aa,c,f);Bb(e,a.I,k);a.R[g++]=e;e=m+a.Aa;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Jb[c]+" at "+r(b,8,!0)),!0):Ib(2,b,d)}
l.Hb=function(a){return this.R[(a&this.H)>>>this.Y].sb(a&this.g,a)};l.Ha=function(a){var b=a&this.g,d=(a&this.H)>>>this.Y;return b!=this.g?this.R[d].vc(b,a):this.R[d++].sb(b,a)|this.R[d&this.F].sb(0,a+1)<<8};function Kb(a,b){var d=b&a.g,c=(b&a.H)>>>a.Y;return d!=a.g?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.F].Ob(0,b+1)<<8}l.bc=function(a,b){this.R[(a&this.H)>>>this.Y].xb(a&this.g,b&255,a)};
l.jc=function(a,b){var d=a&this.g,c=(a&this.H)>>>this.Y;d!=this.g?this.R[c].Bc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.F].xb(0,b>>8&255,a+1))};function Lb(a){for(var b=0,d=[],c=0;c<a.C;c++){var f=a.R[c];if(f.Wa||f.Kc){d[b++]=c;var e=b++;if(f=f.save()){for(var h=0,g=0,k=[];h<f.length;){for(var m=f[h],n=h+1;n<f.length&&f[n]===m;)n++;k[g++]=n-h;k[g++]=m;h=n}k.length<f.length&&(f=k)}d[e]=f}}return d}function Ib(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Mb(a){u.call(this,"Device",a,Mb);this.N={gc:[],Ia:0,qa:128,g:127,Ic:0};this.g={data:0,gd:0,pb:20,dd:0};this.F={Ib:0,K:0};this.C={Qb:2496,la:0,S:128,Rb:0,Pb:0,ta:0,wc:0,na:[],cb:[406,406,406,406],Z:[12,12,12,12]};this.G={K:129,Fb:0,da:0,Ya:0,Ua:0,ab:0,na:[],Z:[40,40,40,40],cb:[1024,1024,512,512],Ec:[157,157,29,29]};this.J={b:[8210,8208,8210,8226],Z:[22,22,22,50],bb:[19,19,19,32],cc:[815,411,815,630],na:[],U:2176,vb:0,tb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,pa:[4544,4544,4544,4544,4544,4544,4544,4544],
ub:[0,0,0,0,0,0,0,0],kb:0,bd:[0,0,0,0,0,0,0,0],xc:0,yc:[0,0,0,0,0,0,0,0],I:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],zc:[0,0,0,0,0,0,0,0],Qa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$a:0,ic:0}}w(Mb);
var Yb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
function ba(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&e&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var f,c=a;((e=b)&&10!=e?16==e?c.match(/^[0-9a-f]+$/i):8==e?c.match(/^[0-7]+$/):2==e&&
c.match(/^[01]+$/):c.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d=f|0)}return d}function ca(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),c=String.fromCharCode(e)+c;a>>=4}return(d?"0x":"")+c}
function da(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function ia(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function na(a,b){return(a+" ").slice(0,b)}
function pa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function qa(a,b,d){var c=0,e=a.length,f=0;for(d||(d=function(a,b){return a>b?1:a<b?-1:0});c<e;){var g=c+e>>1,h;h=d(b,a[g]);0<h?c=g+1:(e=g,f=!h)}return f?c:~c}var ra=Date.now||function(){return+new Date};function va(){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 wa(a,b,d,c){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return c&&c(a,f,e),[f,e];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(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),c&&c(a,f,e))});if(b&&"object"==
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!d);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!d),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();d||(f=h.responseText,200!=h.status&&(e=h.status||-1),c&&c(a,f,e),g=[f,e]);return g}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function t(a){window&&window.alert(a)}function xa(a){var b=!1;window&&(b=window.confirm(a));return b}var ya=null;function za(){if(null==ya){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}ya=a}return ya}function Aa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
function Ba(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Ca(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 Da(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Ea(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ja={init:[],show:[],exit:[]},Ka=!1,La=!1,Ma=!0;function Na(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Oa(a){Ja.init.push(a)}
function Pa(a){if(Ma)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Qa(a){!Ma&&a?(Ma=!0,Ka&&Ra("init"),La&&Ra("show")):Ma=a}function Ra(a){Ja[a]&&Pa(Ja[a])}Na("onload",function(){Ka=!0;Pa(Ja.init)});Na("onpageshow",function(){La=!0;Pa(Ja.show)});Na(Ca("Opera")||Ca("iOS")?"onunload":"onbeforeunload",function(){Pa(Ja.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Pc=b;b=this.id.indexOf(".");0>b?this.Fb=this.id:(this.tc=this.id.substr(0,b),this.Fb=this.id.substr(b+1));this[a]=d;this.j={ready:!1,qb:!1,hc:!1,ga:!1,error:!1};this.$b=null;this.j.error=!1;this.P={};this.I=null;this.ja=c||0;v.push(this)}var Sa=void 0,Ta={};
if(window){Sa||(Sa=window.location.search.substr(1));for(var Ua,Va=/\+/g,Wa=/([^&=]+)=?([^&]*)/g;Ua=Wa.exec(Sa);)Ta[decodeURIComponent(Ua[1].replace(Va," "))]=decodeURIComponent(Ua[2].replace(Va," "))}function Xa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function w(a,b){b||(b=u);a.prototype=Xa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ya=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ya={},v=[];function Za(a,b,d){Ya[a]&&b&&(Ya[a][b]=d)}function $a(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function ab(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
function bb(a,b){b=B(b.parentNode,"pdp11-control");for(var d=0;d<b.length;d++)for(var c=b[d].childNodes,e=0;e<c.length;e++){var f=c[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=y(f))&&g.binding&&a.xa(g.type,g.binding,f,g.value),k=h.length}}}}
function B(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)e.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},xa:function(a,b,d){switch(b){case "clear":return this.P[b]||(this.P[b]=d,d.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ib=this.P[b]=d,d.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}}(d),
this.sa=function(a){this.i(a,this.Fb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Fb+": "+a)},sa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Qa:function(){return this.j.ga=!0},Pa:function(a,b){b&&(this.j.ga=!1);return!0}};function cb(a,b){if(a.I){a===a.I?b|=0:b=b||a.ja;var d=a.I.ja&b;return!!b&&d===b||!!(d&a.I.Kc)}return!1}
function db(a,b){if(a.j.hc)return a.j.qb&&(a.j.qb=!1),a.j.hc=!1;if(a.j.error)return a.i(a.toString()+" error"),!1;a.j.qb=b;return a.j.qb}function pb(a,b){a.j.qb&&(b?a.j.hc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.j.qb}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.$b;a.$b=null;b&&b()}}function qb(a,b){b&&(a.j.ready?b():a.$b=b);return a.j.ready}function rb(a,b){a.j.error=!0;a.sa(b)}
var sb="undefined"!==typeof ArrayBuffer,tb=2,E=4,F=6,tb=0|tb,ub=1|tb,E=0|E,vb=1|E,F=0|F,G=1|F,H={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function wb(a){u.call(this,"Panel",a,wb)}w(wb);l=wb.prototype;l.xa=function(a,b,d,c){return this.B&&this.B.xa(a,b,d,c)||this.b&&this.b.xa(a,b,d,c)||this.I&&this.I.xa(a,b,d,c)?!0:this.parent.xa.call(this,a,b,d,c)};
l.$a=function(a,b,d,c){this.B=a;this.H=b;this.b=d;this.I=c};l.Qa=function(a,b){b||xb();return!0};l.Pa=function(){return!0};l.Ba=function(){};function xb(){for(var a=!1,b=B(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],e=y(c),f;a:{f=e.id;if(void 0!==f){var g;for(g=0;g<v.length;g++)if(v[g].id===f){f=v[g];break a}}f=null}f||(a=!0,f=new wb(e));bb(f,c);a&&D(f)}}Oa(xb);
function yb(a,b,d){u.call(this,"Bus",a,yb);this.b=b;this.I=d;this.O=a.busWidth||16;this.G=Math.pow(2,this.O);this.H=this.G-1|0;this.Z=(this.O>>1)+2;10>this.Z&&(this.Z=10);15<this.Z&&(this.Z=15);this.Da=1<<this.Z;this.R=this.Da>>2;this.g=this.Da-1;this.u=this.G/this.Da|0;this.B=this.u-1;this.Wa=[];this.J=null;this.Mb=this.Gc;a=new I;zb(a,this.I);this.S=Array(this.u);for(b=0;b<this.u;b++)this.S[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.G-8192,8192,Fb,
this);Eb(this,57344,8192,Fb,this);D(this)}w(yb);function Ab(a,b){var d=this.controller,c=d.Wa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=d.Wa[a&-2],c[2]))return c[2](b&-2)>>8;return d.Mb(b,-1,1)}
function Bb(a,b,d){var c=this.controller,e=c.Wa[a];if(e){if(e[1]){e[1](b,d);return}if(e[3]){a=e[2]?e[2](d):0;if(d&1)e[3](a&255|b<<8,d&-2);else e[3](a&-256|b,d);return}}else if(d&1&&(e=c.Wa[a&-2],e[3])){d&=-2;a=e[2]?e[2](d):0;e[3](a&255|b<<8,d);return}c.Mb(d,b,1)}function Cb(a,b){var d=this.controller;if(a=d.Wa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return d.Mb(b,-1,0)}
function Db(a,b,d){var c=this.controller;if(a=c.Wa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}c.Mb(d,b,0)}l=yb.prototype;l.reset=function(){this.J&&this.J()};l.Gc=function(){return 0};l.Qa=function(a,b){b||this.reset();return!0};
function Eb(a,b,d,c,e){for(var f=b,g=d,h=f>>>a.Z;0<g&&h<a.S.length;){var k=a.S[h],m=h*a.Da,n=a.Da-(f-m);n>g&&(n=g);if(k&&k.size){if(k.type==c&&k.controller==e){if(f+g<=k.w)return k.Zb+=k.w-f,k.w=f,!0;if(f>=k.w+k.Zb){n=k.size-(f-m);n>g&&(n=g);k.Zb=f-k.w+n;f=m+a.Da;g-=n;h++;continue}}return Gb(1,f,g)}f=new I(f,n,a.Da,c,e);zb(f,a.I,k);a.S[h++]=f;f=m+a.Da;g-=n}return 0>=g?(a.status(Math.floor(d/1024)+"Kb "+Hb[c]+" at "+r(b,8,!0)),!0):Gb(2,b,d)}
l.Nb=function(a){return this.S[(a&this.H)>>>this.Z].wb(a&this.g,a)};l.La=function(a){var b=a&this.g,d=(a&this.H)>>>this.Z;return b!=this.g?this.S[d].zc(b,a):this.S[d++].wb(b,a)|this.S[d&this.B].wb(0,a+1)<<8};function Ib(a,b){var d=b&a.g,c=(b&a.H)>>>a.Z;return d!=a.g?a.S[c].mc(d,b):a.S[c++].Tb(d,b)|a.S[c&a.B].Tb(0,b+1)<<8}l.fc=function(a,b){this.S[(a&this.H)>>>this.Z].Bb(a&this.g,b&255,a)};
l.oc=function(a,b){var d=a&this.g,c=(a&this.H)>>>this.Z;d!=this.g?this.S[c].Fc(d,b&65535,a):(this.S[c++].Bb(d,b&255,a),this.S[c&this.B].Bb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,d=[],c=0;c<a.u;c++){var e=a.S[c];if(e.Za||e.Nc){d[b++]=c;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}d[f]=e}}return d}function Gb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
function Vb(a){u.call(this,"Device",a,Vb);this.O={lc:[],Ma:0,ua:128,g:127,Mc:0};this.g={data:0,md:0,sb:20,jd:0};this.B={Ob:0,K:0};this.u={Vb:2496,oa:0,T:128,Wb:0,Ub:0,wa:0,Ac:0,ra:[],gb:[406,406,406,406],aa:[12,12,12,12]};this.G={K:129,Jb:0,fa:0,ab:0,Xa:0,eb:0,ra:[],aa:[40,40,40,40],gb:[1024,1024,512,512],Ic:[157,157,29,29]};this.J={b:[8210,8208,8210,8226],aa:[22,22,22,50],fb:[19,19,19,32],gc:[815,411,815,630],ra:[],U:2176,zb:0,xb:0,Fa:[0,0,0,0,0,0,0,0],Ea:0,ta:[4544,4544,4544,4544,4544,4544,4544,
4544],yb:[0,0,0,0,0,0,0,0],nb:0,gd:[0,0,0,0,0,0,0,0],Bc:0,Cc:[0,0,0,0,0,0,0,0],I:[0,0,0,0,0,0,0,0],hd:[1,2,3,4,5,6,7,8],Dc:[0,0,0,0,0,0,0,0],Ta:[0,0,0,0,0,0,0,0],ec:[0,0,0,0,0,0,0,0],ed:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],cd:[0,0,0,0,0,0,0,0],dd:[0,0,0,0,0,0,0,0],cb:0,nc:0}}w(Vb);
var Wb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=Mb.prototype;
l.Xa=function(a,b,d,c){this.H=b;this.b=d;this.I=c;a=Zb;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,m=+f;m<=c;m+=2){var n=m&8191;void 0!==d.Ta[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Ta[n]=[h,g,k,e,!1]}}f=this.Dc.bind(this);b.J=this.reset.bind(this);b.Gb=f;A(this)};l.Uc=function(){return $b(this.b)};l.fd=function(a){ac(this.b,a&-1809|$b(this.b)&1808);this.b.V|=128};
function bc(a){var b=a.C,d,c,f,e=b.ta>>13&7;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.cb[e]*b.Z[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.la=0;b.S=128;b.ta=0;break;case 1:if((b.ta>>4&511)>=b.cb[e]){b.la|=32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;cc(a,b.na[e],d,c,f);return;case 2:if((b.ta>>4&511)>=b.cb[e])b.la|=
32832,b.S|=49152;else if((b.ta&15)>=b.Z[e])b.la|=32800,b.S|=49152;else{d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.na[e],d,c,f);return}}b.Qb=e<<13|b.Qb&8176|b.ta%9&15;I(a.b,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}l.Vc=function(a,b,d,c,f){var e=this.C;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.la|=33024;e.S|=49152;break;case 2:e.la|=33792,e.S|=49152}I(this.b,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
function dc(a){var b=a.G,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.cb[e]*b.Z[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Ya&8&&(b.K&=63);b.Ya=b.Ec[e]|b.ab&64;break;case 3:1==(b.da&3)&&(b.ab=b.da&4?b.ab+(b.da&65408)&65408|b.da<<2&64:b.ab-(b.da&65408)&65408|b.da<<2&64,b.da=b.ab);break;case 4:b.Ya=b.ab;break;case 5:if(b.da>>6>=b.cb[e]){b.K|=37888;break}if((b.da&63)>=b.Z[e]){b.K|=37888;break}d=(b.da>>6)*b.Z[e]+
(b.da&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;cc(a,b.na[e],d,c,f);return;case 6:if(b.da>>6>=b.cb[e])b.K|=37888;else if((b.da&63)>=b.Z[e])b.K|=37888;else{d=(b.da>>6)*b.Z[e]+(b.da&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;a.Zb(b.na[e],d,c,f);return}}I(a.b,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
l.Wc=function(a,b,d,c,f){var e=this.G;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ua=c>>16&63;e.da=~~(d/e.Z[b.La])<<6|d%e.Z[b.La];e.ab=e.da;e.Ya=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}I(this.b,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function ec(a){a=a.J;a.U=2176;a.Ba=0;a.pa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.kb=a.vb=a.tb=a.$a=a.ic=0}
function fc(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Ba&=-2049;d.pa[b]&=-1153;I(a.b,-1,0,172);"undefined"===typeof d.na[b]&&(d.na[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.bb[0]*d.Z[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Qa[b];d.U|=32896;d.pa[b]|=32896;d.kb|=1<<b;break;case 9:ec(a);break;case 19:d.pa[b]|=64;break;case 49:if(d.Qa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Qa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+
(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;cc(a,d.na[b],c,f,e);return;case 57:if(d.Qa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0])d.ub[b]|=1024,d.U|=49152;else{c=(d.Qa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;a.Zb(d.na[b],c,f,e);return}}I(a.b,3,160,172,function(){d.U=d.U&65534|128;d.pa[b]|=128;return!!(d.U&64)})}
l.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.$a=c>>16&63;f=~~(d/e.Z[0]);c=~~(f/e.bb[0]);e.Ca[b.La]=f%e.bb[0]<<8|d%e.Z[0];e.ac[b.La]=e.Qa[b.La]=c;e.kb|=1<<b.La;d>=b.Rc-1&&(e.pa[b.La]|=1024);switch(a){case 1:e.Ba|=512;e.U|=49152;break;case 2:e.Ba|=2048,e.U|=49152}I(this.b,20,160,172,function(){e.pa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};l.Oc=function(){this.F.K|=128;this.F.K&64&&I(this.b,0,192,64)};
function gc(a,b,d,c,f,e){var h=~~((e+d.Va-1)/d.Va),g=new XMLHttpRequest;2048>h&&c+2048<d.Rc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Va<<1)+"-"+(((c+h)*d.Va<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),m,n,q,p;m=g.response;if(g.status&&206!=g.status||!m)d.Yb(1,d,c,f,e);else{m=new Uint8Array(m);n=c;for(p=0;p<m.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],q=0;q<d.Va;q++)d.cache[n][q]=p<m.length?
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=d.Va<<1;n++}h(d,c,f,e)}}};g.send(null)}function J(a,b,d,c,f){if(d&1){if(!f)return K(a.b,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}l.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){gc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Va&&0<c;f++){if(0>L(this.b,a.Qc?hc(this.b,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
function cc(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Va;e++)b.cache[d][e]=0;for(e=0;e<b.Va&&0<f;e++){h=M(a.b,b.Qc?hc(a.b,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}l.reset=function(){this.g.pb=this.g.pb&-120|20;this.N.Ia=0;this.N.qa=128;this.F.K=0;this.C.S=128;this.G.K=128;ec(this)};
l.Dc=function(a,b,d){var c,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Pa&65280:(a&1&&(b<<=8),e.Pa=b|255,c=0);break;case 4194298:if(0>b)c=e.$b;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.$b=c;e.Oa=2}break;case 4194294:if(70!==e.gb)return K(e,4,222);0>b?c=e.M:c=e.M=0;break;case 4194292:if(70!==e.gb)return K(e,4,224);c=1;break;case 4194290:if(70!==e.gb)return K(e,4,226);c=0;break;case 4194288:if(70!==e.gb)return K(e,4,228);c=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.gb)return K(e,4,232);f=a-4194272>>1;0>b?c=e.fc[f]:(c=J(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.L>>14&1?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[3]=b),c=e.sa[3]):e.L>>14&0?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[1]=b),c=e.sa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.L&2048?(0<=b&&(e.f[f]=b),c=e.f[f]):(0<=b&&(e.Za[f]=
b),c=e.Za[f]),c;case 4194246:return a&1?(0<=b&&(e.f[7]=b),c=e.f[7]):e.L>>14&0?(0<=b&&(e.f[6]=b),c=e.f[6]):(0<=b&&(e.sa[0]=b),c=e.sa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.L&2048?(0<=b&&(e.Za[f]=b),c=e.Za[f]):(0<=b&&(e.f[f]=b),c=e.f[f]),c;default:return e.M|=16,K(e,4,124)}break;case 4194176:f=a>>1&31;c=J(this,e.ka[3][f],a,b,d);0<=c&&(e.ka[3][f]=c,e.ka[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.F;switch(a&-2){case 4194174:c=J(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=
e.Da;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ca=e.ca&62337|e.Kb<<5|e.Xb<<1;0>b?c=e.ca:(c=J(this,e.ca,a,b,d),0<=c&&(e.ca=c&=62337,e.Kb=c>>5&3,e.Xb=c>>1&15,c&257?(f=2,e.Ra&16&&(f=1),e.Jb=c&1?ub|B:B):(e.Jb=0,f=4),this.g.pb=this.g.pb&-8|f));break;case 4194168:0>b?c=this.g.dd&65535:(c=J(this,this.g.data,a,b,d),0<=c&&(this.g.data=c));break;case 4194166:0<=b&&(b&127&&(h.Ic=0),h.qa&=-129,I(e,100,128,52,function(){h.qa|=128;return!!(h.qa&64)}));c=0;break;case 4194164:0>b?c=h.qa:(c=J(this,h.qa,
a,b,d),0<=c&&(128==(h.qa&192)&&c&64&&I(e,8,128,52,function(){h.qa|=128;return!!(h.qa&64)}),h.qa=h.qa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ia&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ia|=128;h.Ia&64&&I(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ia:(c=J(this,h.Ia,a,b,d),0<=c&&(h.Ia=h.Ia&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=J(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Oc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.M|=
16,K(e,4,126)}break;case 4194048:f=this.C;switch(a&-2){case 4194048:c=J(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=J(this,f.la,a,b,d);0<=c&&(f.la=c);break;case 4194052:c=J(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&bc(this));break;case 4194054:c=J(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=J(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=J(this,f.ta,a,b,d);0<=c&&(f.ta=c);break;case 4194060:break;case 4194062:c=J(this,f.wc,a,b,d);0<=c&&(f.wc=c);break;default:return e.M|=
16,K(e,4,128)}break;case 4193728:var g=this.J;f=g.Ba&7;switch(a&-2){case 4193728:c=J(this,g.U,a,b,d);0<=b&&0<=c&&(g.$a=g.$a&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?fc(this,f):192==(c&192)&&I(e,0,160,172));break;case 4193730:c=J(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=J(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=J(this,g.Ca[f],a,b,d);0<=c&&(g.Ca[f]=c&7967);break;case 4193736:c=J(this,g.Ba,a,b,d);0<=c&&(g.Ba=c&63|g.Ba&65472,c&128&&ec(this));break;case 4193738:c=
g.pa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=J(this,g.kb,a,b,d);0<=c&&(g.kb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=J(this,g.xc,a,b,d);0<=c&&(g.xc=c);break;case 4193748:c=J(this,g.yc[f],a,b,d);0<=c&&(g.yc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=J(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c);break;case 4193756:c=J(this,g.Qa[f],a,b,d);0<=c&&(g.Qa[f]=c&511);break;case 4193758:g.ac[f]=g.Qa[f];c=g.ac[f];break;case 4193760:c=g.$c[f];
break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=J(this,g.$a,a,b,d);0<=c&&(g.$a=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=J(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.M|=16,K(e,4,132)}break;case 4192512:f=this.G;switch(a&-2){case 4192512:c=J(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ua=f.Ua&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||dc(this));break;case 4192514:c=J(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=J(this,f.da,
a,b,d);0<=c&&(f.da=c);break;case 4192518:c=J(this,f.Ya,a,b,d);0<=c&&(f.Ya=c);break;case 4192520:c=J(this,f.Ua,a,b,d);0<=c&&(f.Ua=c&63,f.K=f.K&-49|(f.Ua&3)<<4);break;default:return e.M|=16,K(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ra:(c=J(this,e.Ra,a,b,d),0<=c&&(70!==e.gb&&(c&=-49),e.Ra=c,e.ib[0]=c&4?15:7,e.ib[1]=c&2?15:7,e.ib[3]=c&1?15:7,e.Jb&&(f=2,e.Ra&16&&(f=1),this.g.pb=this.g.pb&-8|f)));break;default:return e.M|=16,K(e,4,136)}break;case 4191424:f=a>>1&31;c=J(this,e.ka[0][f],
a,b,d);0<=c&&(e.ka[0][f]=c,e.ka[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=J(this,e.ka[1][f],a,b,d);0<=c&&(e.ka[1][f]=c,e.ka[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.gb)return K(e,4,234);f=a>>2&31;c=e.Sb[f];a&2&&(c>>=16);c&=65535;0<=b&&(c=J(this,c,a,b,d),0<=c&&(e.Sb[f]=a&2?c<<16|e.Sb[f]&65535:e.Sb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Yb[a>>1&255];else return e.M|=16,K(e,
4,138);break;default:return e.M|=16,K(e,4,142)}d&&0<=c&&(a&1?c>>=8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var ic={},Zb=(ic[65534]=[null,null,Mb.prototype.Uc,Mb.prototype.fd],ic);Pa(function(){for(var a=y(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new Mb(c);cb(c,d)}});var jc;if(tb){var kc=new ArrayBuffer(2);(new DataView(kc)).setUint16(0,256,!0);jc=256===(new Uint16Array(kc))[0]}else jc=!1;var lc=jc;
function H(a,b,d,c,f){this.id=mc+=2;this.b=null;this.D=a;this.Ub=b;this.size=d||0;this.type=c||nc;this.H=c==oc;this.controller=null;Bb(this);this.Wa=this.Kc=!1;if(d)if(f)this.controller=f,this.b=null,pc(this,f.Cb);else if(tb)this.G=new ArrayBuffer(d),this.J=new DataView(this.G,0,d),this.g=new Uint8Array(this.G,0,d),this.P=new Uint16Array(this.G,0,d>>1),this.b=new Int32Array(this.G,0,d>>2),pc(this,lc?qc:rc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;pc(this,sc)}else pc(this)}
var nc=0,oc=2,Hb=4,Jb=["NONE","RAM","ROM","VID","H/W"],mc=0;
H.prototype={constructor:H,parent:null,Ib:function(a){this.D=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.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(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.b=a;return this.Wa=!0}return!1},eb:function(a,b){b?this.F++||tc(this,uc,!1):this.O++||vc(this,uc,!1)},T:function(){this.I&&db(this.I,
129)&&this.I.message("attempt to read invalid block %"+r(this.D),!0);return 255},C:function(a,b){this.I&&db(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},W:function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},ba:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var d=this.b[b]>>a;return 24>a?d&65535:d&255|(this.b[b+1]&255)<<8},za:function(a,b){var d=a>>
2;a=(a&3)<<3;this.b[d]=this.b[d]&~(255<<a)|b<<a;this.Wa=!0},Bb:function(a,b){var d=a>>2;a=(a&3)<<3;24>a?this.b[d]=this.b[d]&~(65535<<a)|b<<a:(this.b[d]=this.b[d]&16777215|b<<24,d++,this.b[d]=this.b[d]&-256|b>>8);this.Wa=!0},$:function(a,b){if(this.I&&null!=this.D){var d=this.I;wc(d,this.D+a,1,d.X)&&d.ma(!0)}return this.Ob(a,b)},ga:function(a,b){if(this.I&&null!=this.D){var d=this.I;wc(d,this.D+a,2,d.X)&&d.ma(!0)}return this.hc(a,b)},wa:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;wc(c,this.D+
a,1,c.J)&&c.ma(!0)}this.H?this.C(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;wc(c,this.D+a,2,c.J)&&c.ma(!0)}this.H?this.C(a,b,d):this.lc(a,b,d)},X:function(a){return this.g[a]},aa:function(a){return this.g[a]},ea:function(a){return this.J.getUint16(a,!0)},ha:function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.P[a>>1]},va:function(a,b){this.g[a]=b;this.Wa=!0},ya:function(a,b){this.g[a]=b;this.Wa=!0},Ea:function(a,b){this.J.setUint16(a,b,!0);this.Wa=!0},Sa:function(a,
b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.P[a>>1]=b;this.Wa=!0}};function Bb(a,b,d){a.I=b;a.O=a.F=0;d&&((a.O=d.O)&&vc(a,uc,!1),(a.F=d.F)&&tc(a,uc,!1))}function xc(a,b){b?--a.F||(a.xb=a.H?a.C:a.yb,a.Bc=a.H?a.N:a.lc):--a.O||(a.sb=a.Ob,a.vc=a.hc)}function tc(a,b,d){d&&a.F||(a.xb=!a.H&&b[1]||a.C,a.Bc=!a.H&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.C,a.lc=b[3]||a.N}function vc(a,b,d){d&&a.O||(a.sb=b[0]||a.T,a.vc=b[2]||a.W);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.W}
function pc(a,b){b||(b=yc);vc(a,b,void 0);tc(a,b,void 0)}var yc=[],sc=[H.prototype.ba,H.prototype.za,H.prototype.ra,H.prototype.Bb],uc=[H.prototype.$,H.prototype.wa,H.prototype.ga,H.prototype.Ja];if(tb)var rc=[H.prototype.X,H.prototype.va,H.prototype.ea,H.prototype.Ea],qc=[H.prototype.aa,H.prototype.ya,H.prototype.ha,H.prototype.Sa];
function zc(a,b){u.call(this,"CPU",a,zc,1);var d=a.multiplier||1;this.za=a.cycles||b;this.jb=d;this.ya=Math.round(this.za/1E4)/100;this.hb=this.ya*this.jb;this.A.ja=!1;this.A.kc=!1;this.A.Db=a.autoStart;this.A.sc=!1;this.A.ob=!1;this.Lb=this.$=0;this.Mb=a.csStart;this.qb=a.csInterval;this.rb=a.csStop;this.ra=[];this.Eb=this.lb.bind(this);A(this)}w(zc);var Ac=["power","reset"];l=zc.prototype;
l.Xa=function(a,b,d,c){this.F=a;this.H=b;this.I=c;for(b=0;b<Ac.length;b++)(d=this.O[Ac[b]])&&this.F.ua(null,Ac[b],d);this.ea=null;a=Bc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);A(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Na=function(a,b){if(!b){if(a&&this.restore){Cc(this);if(!this.restore(a))return!1;Dc(this)}else this.reset();this.I?this.I.Ib():this.i("No debugger detected")}Ec(this);return!0};
l.Ma=function(a){return a?this.save():!0};l.Db=function(){return this.A.Db||!this.I&&void 0===this.O.run?(this.lb(!0),!0):!1};l.uc=function(){return 0};function Dc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.A.ob=0<=a.Mb&&0<a.qb;a.A.ob&&(a.Lb=0,a.$=a.Mb-a.X)}function Tc(a,b){if(a.A.ob){var d=!1;a.Lb=a.Lb+a.uc()|0;a.$-=b;0>=a.$&&(a.$+=a.qb,d=!0);0<=a.rb&&a.rb<=Uc(a)&&(a.qb=a.rb=-1,Dc(a),a.ma(),d=!0);d&&a.i(Uc(a)+" cycles: checksum="+r(a.Lb))}}
function Vc(a,b,d,c){if(a.O[b]){void 0===d&&(hb(a,"Value for "+b+" is invalid"),a.ma());var f=a.I&&a.I.wa||8;d=!a.A.ja||a.A.sc?8==f?ca(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
l.ua=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.F)if(a=c.F,a.A.fa)a=!0;else{var b=null,d,g=ab(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.fa);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Wb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ja?c.ma():c.lb())};
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Wc(c,c.jb<<1,!0)},d.textContent=this.hb.toFixed(2)+"Mhz",a=!0}return a};function Xc(a,b,d){a.X+=b;d&&(a.W=a.b=0)}function Yc(a,b){var d=1;b&&1<a.jb&&a.P&&(d=a.P/a.ya);a.mb=Math.round(1E3/30);a.wa=Math.floor(a.za/30*d);b||(a.aa=a.wa);a.Ea=0}function Uc(a){return a.X+a.N+a.W-a.b}function Cc(a){a.P=0;a.zb=0;a.X=a.N=a.W=a.b=0;Dc(a);Wc(a,1)}
function Wc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.hb?b=1:c=!0;a.jb=b;b=a.ya*a.jb;if(a.hb!=b){a.hb=b;b=a.hb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.i("target speed: "+b)}d&&a.F&&a.F.Tb()}Xc(a,a.N);a.N=0;a.J=sa();a.T=0;Yc(a);return c}function Zc(a){a.W-=a.b;a.b=0}
l.lb=function(a){if(eb(this,!0)){if(!this.A.ja){Wc(this);this.F&&this.F.start(this.J,Uc(this));this.A.ja=!0;this.A.kc=!0;this.ea&&this.ea.start();var b=this.O.run;b&&(b.textContent="Halt");this.F&&(this.F.xa(!0),a&&this.F.Tb(!0))}this.Ea>=this.za&&Yc(this,!0);this.ga=0;this.va=sa();this.T&&(a=this.va-this.T,a>this.mb&&(this.J+=a,this.J>this.va&&(this.J=this.va)));try{do{for(var d,c=this.A.ob?1:this.wa,f=this.ra.length-1;0<=f;f--){var e=this.ra[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.wb(d)}catch(m){if("number"!=
typeof m)throw m;}var h=this.W-this.b;a=h;for(var g=this.ra.length-1;0<=g;g--){var k=this.ra[g];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ga+=h;this.N+=h;Xc(this,0,!0);Tc(this,h);this.aa-=h;if(0>=this.aa){this.aa+=this.wa;15<=++this.zb&&(this.F&&this.F.xa(),this.zb=0);break}}while(this.A.ja)}catch(m){this.ma();Ec(this);this.F&&this.F.stop(sa(),Uc(this));eb(this,!1);hb(this,m.stack||m.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.mb;this.ga&&(f=Math.round(f*this.ga/this.wa));f-=
this.T-this.va;if(e=this.T-this.J)this.P=Math.round(this.N/(10*e))/100,864E5<=e&&(this.X=0,Wc(this));if(0>f||this.P<this.hb)-1E3>f&&(this.J-=f),f=0;this.Ea+=this.ga;this.T+=f;d(c,f)}else Ec(this),this.F&&this.F.stop(sa(),Uc(this))};l.wb=function(){return 0};l.ma=function(a){fb(this,!0);Zc(this);Xc(this,this.N);this.N=0;if(this.A.ja){this.A.ja=!1;this.ea&&this.ea.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function Ec(a,b){a.F&&a.F.xa(b)}
function $c(a){this.Sc=+a.model||1170;this.Vb=a.resetAddr||0;zc.call(this,a,1E6);this.Ja=0;this.decode=ad.bind(this);this.B=65536;this.u=32768;this.w=65535;this.j=32768;this.f=[0,0,0,0,0,0,0,this.Vb];this.Za=[0,0,0,0,0,0];this.sa=[0,0,0,0];this.Pa=255;this.Xb=this.Kb=this.Jb=this.G=this.Ra=this.Ab=this.Da=this.ca=this.M=this.$b=0;this.ib=[7,7,7,7];this.ka=[[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],[65535,65535,
65535,65535,65535,65535,65535,65535,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]];this.Sb=[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];this.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.g=-1;this.V=0;this.gb=70;this.ba=-1;this.C=[];this.ha=0;this.Oa=2;this.A.complete=this.A.Hc=!1}w($c,zc);l=$c.prototype;
l.reset=function(){this.A.ja&&this.ma();bd(this);Cc(this);this.A.error=!1;this.parent.reset.call(this)};function bd(a){a.Pa=255;a.M=0;a.C=[];a.$b=0;a.ca=a.Da=a.Ab=a.Ra=a.Jb=0;a.ib[0]=a.ib[1]=a.ib[3]=7;a.Kb=0}l.uc=function(){return 0};l.save=function(){var a=new cd(this);a.set(0,[]);a.set(1,[this.Sa,this.X,this.jb]);a.set(2,Lb(this.H));return a.data()};
l.restore=function(a){var b=a[1];this.Sa=b[0];this.X=b[1];Wc(this,b[3]);a:{b=this.H;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],m=f[g++];k--;)h[e++]=m;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
l.ua=function(a,b,d){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":this.O[b]=d;this.Ja++;a=!0;break;default:a=this.parent.ua.call(this,a,b,d)}return a};
l.xa=function(a){if(this.Ja&&(a||!this.A.ja||this.A.sc)){for(a=0;a<this.f.length;a++)Vc(this,"R"+a,this.f[a]);a=$b(this);Vc(this,"PS",a);Vc(this,"NF",a&8?1:0,1);Vc(this,"ZF",a&4?1:0,1);Vc(this,"VF",a&2?1:0,1);Vc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ja&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};
function I(a,b,d,c,f){for(var e=a.C.length;0<e--;)if(a.C[e].ed===c){0<e&&(a.C[e-1].Fa+=a.C[e].Fa);a.C.splice(e,1);break}if(0<=b){2===a.ha&&(b=0,a.ha=0,setTimeout(a.Eb,0));for(e=a.C.length;0<e--;){if(a.C[e].Fa>b){a.C[e].Fa-=b;break}b-=a.C[e].Fa}a.C.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function $b(a){return a.L=a.L&63728|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.B&65536?1:0)}
function ac(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.B=b<<16;if((b^a.L)&2048)for(var d=a.Za.length;0<=--d;){var c=a.f[d];a.f[d]=a.Za[d];a.Za[d]=c}a.G=b>>14&3;d=a.L>>14&3;a.G!=d&&(a.sa[d]=a.f[6],a.f[6]=a.sa[a.G]);a.Oa=2;a.L=b}function dd(a,b){a.V&128||(a.j=a.w=a.B=b,a.u=0)}function ed(a,b){a.V&128||(a.j=a.w=b,a.u=0)}function fd(a,b,d,c){a.V&128||(a.j=a.w=a.B=b,a.u=(d^c)&(c^b))}
function K(a,b,d){var c,f,e=0;0>a.ba?a.ba=$b(a):a.G||(b=4,e=1);a.ca&57344||(a.Da=63222,a.Ab=b);a.G=0;0<=(c=N(a,b|65536))&&0<=(f=N(a,b+2&65535|65536))&&(ac(a,f&53247|a.ba>>2&12288),e&&(a.M|=4,a.f[6]=4),0<=gd(a,a.ba)&&0<=gd(a,a.f[7])&&(a.f[7]=c));a.V&=-113;a.ba=-1;throw b|d<<8;}function hc(a,b){var d=b>>13&31;31>d?a.Ra&32&&(b=a.Sb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function hd(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.ib[a.G];f=a.ka[a.G][c];e=(a.ka[a.G][c+16]<<6)+(b&8191)&4194303;a.Ra&16?3932160<=e&&4186112>e&&(e=hc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.M|=32,K(a,4,24)),e&1&&!(d&1)&&(a.M|=64,K(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;d&B&&(h=8192);break;case 4:h=4096;case 5:d&B&&(h=4096);case 6:f|=d&B?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&
8128)&&(h|=16384));a.ka[a.G][c]=f;if(4194170!==e||a.G)a.Kb=a.G,a.Xb=c;h&&(h&57344&&(0<=a.ba&&(h|=128),a.ca&57344||(a.ca=a.ca|h|a.Kb<<5|a.Xb<<1),K(a,168,28)),a.ca&61440||!(4191360>e||4194239<e)||(a.ca|=4096,a.ca&512&&(a.V|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.M|=64,K(a,4,22));return e}function M(a,b){return 4194304<=b?a.f[b-4194304]:0<=b?a.H.Ha(b):b}function L(a,b,d){d&=65535;return 4194304<=b?a.f[b-4194304]=d:0<=b?(a.H.jc(b,d),d):b}
function O(a,b){return 4194304<=b?a.f[b-4194304]&255:0<=b?a.H.Hb(b):b}function P(a,b,d){d&=255;return 4194304<=b?a.f[b-4194304]=a.f[b-4194304]&65280|d:0<=b?(a.H.bc(b,d),d):b}function N(a,b){return M(a,hd(a,b,ub))}function id(a){var b=N(a,a.f[6]|65536);0<=b&&(a.f[6]=a.f[6]+2&65535);return b}function gd(a,b){var d,c;a.f[6]=c=a.f[6]-2&65535;a.ca&57344||(a.Da=a.Da<<8|246);!a.G&&c<=a.Pa&&4<c&&(c<=a.Pa-32?(a.M|=4,a.f[6]=4,K(a,4,32)):(a.M|=8,a.V|=4));return 0<=(d=hd(a,c|65536,B))?L(a,d,b):d}
function jd(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:K(a,4,34);break;case 1:return 6===e&&!a.G&&d&B&&(a.f[6]<=a.Pa||65534<=a.f[6])&&(a.f[6]<=a.Pa-32||65534<=a.f[6]?(a.M|=4,a.f[6]=4,K(a,4,36)):(a.M|=8,a.V|=64)),7===e?a.f[e]:a.f[e]|65536;case 2:f=2;c=a.f[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.f[e];7!==e&&(c|=65536);if(0>(c=N(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.f[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.f[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
N(a,c)))return c;c|=65536;break;case 6:if(0>(c=N(a,a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[e]&65535;return c|65536;case 7:if(0>(c=N(a,a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[e]&65535;return 0>(c=N(a,c|65536))?c:c|65536}a.f[e]=a.f[e]+f&65535;a.ca&57344||(a.Da=a.Da<<8|f<<3&248|e);6===e&&!a.G&&d&B&&0>=f&&(a.f[6]<=a.Pa||65534<=a.f[6])&&(a.f[6]<=a.Pa-32?(a.M|=4,a.f[6]=4,K(a,4,38)):(a.M|=8,a.V|=64));return c}function Q(a,b,d){b&56?(b=jd(a,b,d),a=hd(a,b,d)):a=4194304+(b&7);return a}
function R(a,b){b&56?(b=Q(a,b,ub),a=M(a,b)):a=a.f[b&7];return a}function S(a,b){b&56?(b=Q(a,b,vb),a=O(a,b)):a=a.f[b&7]&255;return a}function kd(a,b,d,c){b&56?(b=Q(a,b,C),L(a,b,c.call(a,d,M(a,b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b])&65535)}function ld(a,b,d,c){b&56?(b=Q(a,b,D),P(a,b,c.call(a,d,O(a,b)))):(b&=7,a.f[b]=a.f[b]&65280|c.call(a,d,a.f[b])&255)}function md(a,b,d){b&56?L(a,Q(a,b,B),d):a.f[b&7]=d&65535;return d}
function nd(a,b,d,c){b&56?P(a,Q(a,b,wb),d):(b&=7,a.f[b]=c?c&1?a.f[b]&-256:d<<24>>24&65535:a.f[b]&-256|d&255);return d}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
l.wb=function(a){this.A.complete=!0;var b=this.A.Hc=this.I&&od(this.I),d=a?this.A.kc?0:1:-1;this.A.kc=!1;this.W=this.b=a;this.Sa&256?(Zc(this),a=!1):a=!0;if(a){do{if(b){if(pd(this.I,this.f[7],d)){this.ma();break}d=1}var c,f,e,h,g;this.V&112&&(this.V&32?K(this,168,52):this.V&64?K(this,4,54):this.V&16&&K(this,12,56),this.V&=-113);if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.$b&224;if(0<(a=this.C.length))for(;0<a--;){if(0<this.C[a].Fa){this.C[a].Fa--;this.Oa=2;break}if(this.C[a].pc){if(!this.C[a].pc()){this.C.splice(a,
1);g--;continue}this.C[a].pc=null}this.C[a].Tc>c&&(c=this.C[a].Tc,g=a)}c>(this.L&224)&&(0>g?K(this,160,42):(K(this,this.C[g].ed,44),this.C.splice(g,1)))}this.ca&57344||(this.Da=0,this.Ab=this.f[7]);this.V=this.L&16;this.g=a=N(this,this.f[7]);0<=a&&(this.f[7]=this.f[7]+2&65535);this.decode(a);if(0>this.g)switch(a&61440){case 4096:0<=(c=R(this,a>>6))&&(a&56?0<=(e=Q(this,a,B))&&0<=L(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.f[a&7]=c,this.u=0));break;case 8192:0<=(c=R(this,a>>6))&&0<=
(f=R(this,a))&&(this.j=this.w=this.B=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=R(this,a>>6))&&0<=(f=R(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=R(this,a>>6))&&(a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f&~c,0<=L(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.f[a&7]&=~c,this.u=0));break;case 20480:0<=(c=R(this,a>>6))&&(a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f|c,0<=L(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.f[a&7]|=c,this.u=0));break;case 24576:0<=
(c=R(this,a>>6))&&(a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=c+f,0<=L(this,e,a)&&(this.j=this.w=this.B=a,this.u=(c^a)&(f^a))):(g=a&7,f=this.f[g],this.f[g]=(a=c+f)&65535,this.j=this.w=this.B=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=S(this,a>>6))&&(a&56?0<=(e=Q(this,a,wb))&&0<=P(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.f[a&7]=c,this.u=0));break;case 40960:0<=(c=S(this,a>>6))&&0<=(f=S(this,a))&&(a=c-f,this.j=this.w=this.B=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=
(c=S(this,a>>6))&&0<=(f=S(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=S(this,a>>6))&&0<=(f=O(this,e=Q(this,a,D)))&&(a=f&~c,0<=P(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=S(this,a>>6))&&0<=(f=O(this,e=Q(this,a,D)))&&(a=f|c,0<=P(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=R(this,a>>6))&&(a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f-c,0<=L(this,e,a)&&(this.j=this.w=this.B=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.f[g],this.f[g]=(a=f-c)&65535,this.j=
this.w=this.B=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=jd(this,a,0))&&(g=a>>6&7,0<=gd(this,this.f[g])&&(this.f[g]=this.f[7],this.f[7]=h&65535));break;case 28672:0<=(c=R(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.f[g],f&32768&&(f|=-65536),a=~~(c*f),this.f[g]=a>>16&65535,this.f[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.B=this.u=0,-32768>a||32767<a)&&(this.B=65536);break;case 29184:0<=(c=R(this,a))&&(c?(g=a>>6&7,f=this.f[g]<<16|this.f[g|1],this.B=this.u=0,c&32768&&
(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.f[g]=a&65535,this.f[g|1]=f-a*c&65535,this.w=a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.f[g]&&(this.f[g]=this.f[g|1]=1))):(this.w=this.j=0,this.u=32768,this.B=65536));break;case 29696:0<=(c=R(this,a))&&(g=a>>6&7,a=this.f[g],a&32768&&(a|=4294901760),this.B=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.B=a<<17-c,a>>=c):c&&(16<c?(this.u=a,a=0):(this.B=a<<=c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.f[g]=
a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=R(this,a))){g=a>>6&7;f=this.f[g]<<16|this.f[g|1];this.B=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.B=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.B=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.f[g]=a>>16&65535;this.f[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(f^=this.f[a>>6&7],0<=L(this,e,f)&&
(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.f[a&7]^=this.f[a>>6&7],this.u=0);break;case 32256:g=a>>6&7;if(this.f[g]=this.f[g]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.f[7]=T(this.f[7],a);break;case 512:this.w&65535&&(this.f[7]=T(this.f[7],a));break;case 768:this.w&65535||(this.f[7]=T(this.f[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.f[7]=T(this.f[7],a));break;case 1280:(this.j&32768)!==(this.u&32768)&&(this.f[7]=T(this.f[7],
a));break;case 1536:this.w&65535&&(this.j&32768)===(this.u&32768)&&(this.f[7]=T(this.f[7],a));break;case 1792:this.w&65535&&(this.j&32768)===(this.u&32768)||(this.f[7]=T(this.f[7],a));break;case 32768:this.j&32768||(this.f[7]=T(this.f[7],a));break;case 33280:!(this.B&65536)&&this.w&65535&&(this.f[7]=T(this.f[7],a));break;case 33024:this.j&32768&&(this.f[7]=T(this.f[7],a));break;case 33536:if(this.B&65536||!(this.w&65535))this.f[7]=T(this.f[7],a);break;case 33792:this.u&32768||(this.f[7]=T(this.f[7],
a));break;case 34048:this.u&32768&&(this.f[7]=T(this.f[7],a));break;case 34304:this.B&65536||(this.f[7]=T(this.f[7],a));break;case 34560:this.B&65536&&(this.f[7]=T(this.f[7],a));break;case 34816:K(this,24,2);break;case 35072:K(this,28,4);break;default:switch(a&65472){case 64:0<=(h=jd(this,a,0))&&(this.f[7]=h&65535);break;case 192:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f<<8|f>>8,0<=L(this,e,a)&&(this.j=this.w=f&65280,this.u=this.B=0)):(g=a&7,f=this.f[g],this.f[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,
this.u=this.B=0);break;case 2560:a&56?0<=(e=Q(this,a,B))&&0<=L(this,e,0)&&(this.j=this.B=this.u=this.w=0):this.j=this.B=this.u=this.w=this.f[a&7]=0;break;case 2624:0<=(f=M(this,e=Q(this,a,C)))&&(a=~f,0<=L(this,e,a)&&(this.j=this.w=a,this.B=65536,this.u=0));break;case 2688:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f+1,0<=L(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.f[g],a=f+1,this.f[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f-1,0<=
L(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.f[g],a=f-1,this.f[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);break;case 2816:0<=(f=M(this,e=Q(this,a,C)))&&(a=-f,0<=L(this,e,a)&&(this.B=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=M(this,e=Q(this,a,C)))&&(a=f+(this.B>>16&1),0<=L(this,e,a)&&(this.B=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=M(this,e=Q(this,a,C)))&&(a=f-(this.B>>16&1),0<=L(this,e,a)&&(this.B=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=R(this,
a))&&(this.j=this.w=f,this.B=this.u=0);break;case 3072:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=(this.B&65536|f)>>1,0<=L(this,e,a)&&(this.B=f<<16,this.j=this.w=a,this.u=a^this.B>>1)):(g=a&7,f=this.f[g],a=(this.B&65536|f)>>1,this.f[g]=a&65535,this.B=f<<16,this.j=this.w=a,this.u=a^this.B>>1);break;case 3136:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f<<1|this.B>>16&1,0<=L(this,e,a)&&(this.B=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.f[g],a=f<<1|this.B>>16&1,this.f[g]=a&65535,this.B=this.j=this.w=a,this.u=a^
f);break;case 3200:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f&32768|f>>1,0<=L(this,e,a)&&(this.B=f<<16,this.j=this.w=a,this.u=this.j^this.B>>1)):(g=a&7,f=this.f[g],a=f&32768|f>>1,this.f[g]=a&65535,this.B=f<<16,this.j=this.w=a,this.u=this.j^this.B>>1);break;case 3264:a&56?0<=(f=M(this,e=Q(this,a,C)))&&(a=f<<1,0<=L(this,e,a)&&(this.B=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.f[g],a=f<<1,this.f[g]=a&65535,this.B=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.f[7]+((a&63)<<1)&65535;0<=(c=N(this,h|65536))&&
(this.f[7]=this.f[5],this.f[5]=c,this.f[6]=h+2&65535);break;case 3392:a&56?0<=(h=jd(this,a,0))&&(61440!==(this.L&61440)&&(h&=65535),this.G=this.L>>12&3,0<=(c=N(this,h))&&(this.G=this.L>>14&3,0<=gd(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.L>>2&12288)===(this.L&12288)?this.f[g]:this.sa[this.L>>12&3],0<=gd(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=id(this))&&((this.ca&57344||(this.Da=22),a&56)?0<=(h=jd(this,a,0))&&(h&=65535,this.G=this.L>>12&3,0<=(e=hd(this,h,B))&&
(this.G=this.L>>14&3,0<=L(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.L>>2&12288)===(this.L&12288)?this.f[g]=f:this.sa[this.L>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=Q(this,a,B))&&(a=-(this.j>>15&1),0<=L(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=Q(this,a,wb))&&0<=P(this,e,0)&&(this.j=this.B=this.u=this.w=0):(this.f[a&7]&=65280,this.j=this.B=this.u=this.w=0);break;case 35392:0<=(f=O(this,e=Q(this,a,D)))&&(a=~f,0<=P(this,e,a)&&(this.j=this.w=a<<8,
this.B=65536,this.u=0));break;case 35456:0<=(f=O(this,e=Q(this,a,D)))&&(a=f+1,0<=P(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^f))<<8));break;case 35520:0<=(f=O(this,e=Q(this,a,D)))&&(a=f-1,0<=P(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=O(this,e=Q(this,a,D)))&&(a=-f,0<=P(this,e,a)&&(this.B=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=O(this,e=Q(this,a,D)))&&(a=f+(this.B>>16&1),0<=P(this,e,a)&&(this.j=this.w=this.B=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=
(f=O(this,e=Q(this,a,D)))&&(a=f-(this.B>>16&1),0<=P(this,e,a)&&(this.j=this.w=this.B=a<<8,this.u=((a^f)&f)<<8));break;case 35776:0<=(f=S(this,a))&&(this.j=this.w=f<<8,this.B=this.u=0);break;case 35840:0<=(f=O(this,e=Q(this,a,D)))&&(a=((this.B&65536)>>8|f)>>1,0<=P(this,e,a)&&(this.B=f<<16,this.j=this.w=a<<8,this.u=this.j^this.B>>1));break;case 35904:0<=(f=O(this,e=Q(this,a,D)))&&(a=f<<1|this.B>>16&1,0<=P(this,e,a)&&(this.B=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=O(this,e=Q(this,
a,D)))&&(a=f&128|f>>1,0<=P(this,e,a)&&(this.B=f<<16,this.j=this.w=a<<8,this.u=this.j^this.B>>1));break;case 36032:0<=(f=O(this,e=Q(this,a,D)))&&(a=f<<1,0<=P(this,e,a)&&(this.B=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=jd(this,a,0))&&(this.G=this.L>>12&3,0<=(c=N(this,h|65536))&&(this.G=this.L>>14&3,0<=gd(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.L>>2&12288)===(this.L&12288)?this.f[g]:this.sa[this.L>>12&3],0<=gd(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=
(f=id(this))&&((this.ca&57344||(this.Da=22),a&56)?0<=(h=jd(this,a,0))&&(this.G=this.L>>12&3,0<=(e=hd(this,h|65536,B))&&(this.G=this.L>>14&3,0<=L(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.L>>2&12288)===(this.L&12288)?this.f[g]=f:this.sa[this.L>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=id(this))&&(g=a&7,this.f[7]=this.f[g],this.f[g]=c);break;case 152:this.L&49152||(this.L=this.L&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.B=0);
a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.B=65536);a&2&&(this.u=32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.L?(this.M|=128,K(this,4,46)):(this.ha=3,Zc(this),console.log("HALT at "+this.f[7].toString(8)));break;case 1:g=0;if(0<(a=this.C.length))for(;0<a--;)g+=this.C[a].Fa,this.C[a].Fa=0;0===g&&0===this.ha&&(this.ha=2,Zc(this));break;case 3:K(this,12,6);break;case 4:K(this,16,8);break;case 5:this.L&49152||(bd(this),this.H.reset());
break;case 2:case 6:e=this.f[6];0<=(h=N(this,e|65536))&&(e=e+2&65535,0<=(c=N(this,e|65536))&&(this.f[6]=e+2&65535,c&=63743,this.L&49152&&(c=c&63519|this.L&63712),this.f[7]=h,ac(this,c),this.V&=-17,2===a&&(this.V|=this.L&16)));break;default:K(this,8,48)}}}}}}}while(0<this.b)}return this.A.complete?this.W-this.b:void 0===this.A.complete?0:-1};Pa(function(){for(var a=y(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new $c(c);cb(c,d)}});
function qd(a,b){var d=a+b;this.V&128||(this.j=this.w=this.B=d,this.u=(a^d)&(b^d));return d&65535}function rd(a,b){a=~a&b;ed(this,a);return a}function sd(a,b){a=~a&b;ed(this,a<<8);return a}function td(a,b){a|=b;ed(this,a);return a}function ud(a,b){a|=b;ed(this,a<<8);return a}function vd(a,b){var d=b-a;fd(this,d,a,b);return d&65535}function wd(){this.g=-1;--this.b}function xd(){this.g=-1;--this.b}function U(a){a&1&&(this.B=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);--this.b}
function yd(){this.g=-1;--this.b}function zd(){this.g=-1;--this.b}function Ad(){this.g=-1;--this.b}function Bd(){--this.b}function Cd(a){a&1&&(this.B=65536);a&2&&(this.u=32768);a&4&&(this.w=0);a&8&&(this.j=32768);--this.b}function Dd(){this.g=-1;--this.b}function Ed(){this.g=-1;--this.b}function V(){K(this,8,48)}function ad(a){Fd[a>>12].call(this,a)}
var Fd=[function(a){Gd[a>>8&15].call(this,a)},function(a){ed(this,md(this,a,R(this,a>>6)));--this.b},function(a){var b=R(this,a>>6);a=R(this,a);fd(this,b-a,a,b);--this.b},function(a){ed(this,R(this,a>>6)&R(this,a));--this.b},function(a){kd(this,a,R(this,a>>6),rd);--this.b},function(a){kd(this,a,R(this,a>>6),td);--this.b},function(a){kd(this,a,R(this,a>>6),qd);--this.b},function(a){Hd[a>>8&15].call(this,a)},function(a){Id[a>>8&15].call(this,a)},function(a){var b=S(this,a>>6);ed(this,nd(this,a,b,2)<<
8);--this.b},function(a){var b=S(this,a>>6)<<8;a=S(this,a)<<8;fd(this,b-a,a,b);--this.b},function(a){ed(this,(S(this,a>>6)&S(this,a))<<8);--this.b},function(a){ld(this,a,S(this,a>>6),sd);--this.b},function(a){ld(this,a,S(this,a>>6),ud);--this.b},function(a){kd(this,a,R(this,a>>6),vd);--this.b},V],Gd=[function(a){Jd[a>>4&15].call(this,a)},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=
-1;--this.b},function(){this.g=-1;--this.b},zd,zd,function(a){Kd[a>>6&3].call(this,a)},function(a){Ld[a>>6&3].call(this,a)},function(a){Md[a>>6&3].call(this,a)},function(a){Nd[a>>6&3].call(this,a)},V,V],Jd=[function(a){Od[a&15].call(this,a)},V,V,V,V,V,V,V,V,V,function(a){Pd[a&15].call(this,a)},function(a){Qd[a&15].call(this,a)},V,V,V,V],Pd=[Bd,function(){this.B=0;--this.b},function(){this.u=0;--this.b},U,function(){this.w=1;--this.b},U,U,U,function(){this.j=0;--this.b},U,U,U,U,U,U,U],Qd=[Bd,function(){this.B=
65536;--this.b},function(){this.u=32768;--this.b},Cd,function(){this.w=0;--this.b},Cd,Cd,Cd,function(){this.j=32768;--this.b},Cd,Cd,Cd,Cd,Cd,Cd,Cd],Od=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.L&49152||(bd(this),this.H.reset());--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},V,V,V,V,V,V,V,V],Hd=[Ad,Ad,yd,yd,wd,wd,xd,xd,Ed,Ed,V,V,V,V,Dd,Dd],Id=[function(){this.g=
-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(a){Rd[a>>6&3].call(this,a)},function(a){Sd[a>>6&3].call(this,a)},function(a){Td[a>>6&3].call(this,a)},function(a){Ud[a>>6&3].call(this,a)},V,V],Kd=[function(a){dd(this,md(this,a,0));--this.b},function(){this.g=
-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Ld=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Md=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Nd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Rd=[function(a){dd(this,nd(this,a,0,1));
--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Sd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Td=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Ud=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}];
function Vd(a){u.call(this,"ROM",a,Vd);this.g=null;this.J=a.addr;this.F=a.size;this.N=a.writable;this.C=a.alias;this.G=a.file;this.P=da(this.G);if(this.G){a=this.G;var b=ea(this.P);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var d=this;ua(a,null,!0,function(a,b,e){ue(d,a,b,e)})}}w(Vd);Vd.prototype.Xa=function(a,b,d,c){this.H=b;this.b=d;this.I=c;ve(this)};
Vd.prototype.Na=function(){if(this.Ka){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.F,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,m=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],q=qa(n,k,a.qc);0>q&&n.splice(-(q+1),0,k)}m&&(g.a=m.replace(/''/g,'"'))}a.N.push({hd:b,D:d,Pc:c,Ka:f,nc:e})}delete this.Ka}return!0};Vd.prototype.Ma=function(){return!0};
function ue(a,b,d,c){if(c)a.oa("Unable to load system ROM (error "+c+": "+b+")");else{$a(a.oc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.g=e;else if(e=g.words)for(a.g=Array(2*e.length),h=f=0;f<e.length;f++)a.g[h++]=e[f]&255,a.g[h++]=e[f]>>8&255;else if(e=g.data)for(a.g=Array(4*e.length),h=f=0;f<e.length;f++)a.g[h++]=e[f]&255,a.g[h++]=e[f]>>8&255,a.g[h++]=e[f]>>16&255,a.g[h++]=e[f]>>24&255;else a.g=g;a.Ka=g.symbols;if(!a.g.length){t("Empty ROM: "+
b);return}if(1==a.g.length){t(a.g[0]);return}}catch(k){a.oa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.g=Array(b.length),f=0;f<b.length;f++)a.g[f]=aa(b[f],16);ve(a)}}
function ve(a){if(!gb(a))if(!a.G)A(a);else if(a.g&&a.H){a.F||(a.F=a.g.length);if(a.g.length!=a.F)hb(a,"ROM size ("+r(a.g.length,8,!0)+") does not match specified size ("+r(a.F,8,!0)+")");else{var b;b=a.J;if(Gb(a.H,b,a.F,a.N?1:oc)){var d;for(d=0;d<a.g.length;d++){var c=a.H,f=b+d;c.R[(f&c.H)>>>c.Y].yb(f&c.g,a.g[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.H,h=e.F,g=[],k=e.J>>>f.Y;0<h&&k<f.R.length;)g.push(f.R[k++]),
h-=f.Aa;f=e.H;e=e.F;h=0;for(c>>>=f.Y;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.Aa}}delete a.g}}A(a)}}Pa(function(){for(var a=y(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new Vd(c);cb(c,d)}});function we(a){u.call(this,"RAM",a,we);this.C=a.addr;this.F=a.size;this.g=!1}w(we);l=we.prototype;l.Xa=function(a,b,d,c){this.H=b;this.b=d;this.I=c;A(this)};l.Na=function(a,b){b||this.reset();return!0};l.Ma=function(a){return a?this.save():!0};
l.reset=function(){!this.g&&this.F&&Gb(this.H,this.C,this.F,1)&&(this.g=!0);this.g||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Pa(function(){for(var a=y(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new we(c);cb(c,d)}});function xe(a){u.call(this,"Keyboard",a,xe,65536);A(this)}w(xe);xe.prototype.ua=function(){return!1};xe.prototype.Xa=function(a,b,d,c){this.F=a;this.b=d;this.I=c;this.ea=null};
Pa(function(){for(var a=y(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new xe(c);cb(c,d)}});function ye(a){u.call(this,"Debugger",a,ye);this.wa=a.base||16;this.$=this.Ja=this.P=0;this.ba=!1;this.G=-1;this.C=[];this.ga={}}w(ye);var ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ae(a,b,d,c){if(d)if(b){0>a.G&&a.C.length&&(a.G=0);if(0>a.G||b!=a.C[a.G])a.C.splice(0,0,b),a.G=0;a.G--}else a.ba?b="end":b=a.C[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(pa(b.substring(d,e))),d=e+1}}return a}
function Be(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
function Ce(a,b,d){var c;if(b){b=De(a,b);for(var f=0,e=!1,h=b,g=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],q=n.length,n=pa(n);if(!n){e=!0;break}n=Ee(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==m.length)break;var n=m[f++],p=n.length;k.length&&ze[n]<ze[k[k.length-1]]&&Be(g,k,1);k.push(n);b=b.substr(q+p)}Be(g,k)&&1==g.length||(e=!0);e?d&&a.i("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&Fe(a,null,
c))}return c}function De(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=Ce(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=null;switch(d[1].toLowerCase()){case "ops":c=a.$-a.Ja}if(null==c)break;b=b.replace(d[0],c.toString())}return b}
function Ee(a,b,d,c){var f;null!=b?(f=a.ga[b],null==f&&(f=aa(b,a.wa)),null!=f||c||a.i("invalid "+(d?d:"value")+": "+b)):c||a.i("missing "+(d||"value"));return f}function Fe(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ca(d,0,!0)+" "+("0b"+h)}a.i((null!=b?b+": ":"")+c);return f}
function Ge(a,b){if(b)return Fe(a,b,a.ga[b]);var d=0;for(b in a.ga)Fe(a,b,a.ga[b]),d++;return 0<d}function W(a,b,d){switch(a.wa){case 8:return ca(b,d);case 10:return b.toString();default:return r(b,d)}}
function He(a){ye.call(this,a);this.W=Y();this.zb=Y();this.aa=Y();this.N=[];this.g=this.X=this.J=[];Ie(this);this.ya=0;Je(this);this.Sa={};Ke(this,a.messages);this.mb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Le(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Le(b,a)})}w(He,ye);
var Me={"?":"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",v:"print version","var":"assign variable"},Ne="NONE 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(" "),
Oe={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],
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=Vb.prototype;
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;a=Xb;for(var e in a){var f=a[e];d=b;c=+e;for(var g=f[0]?f[0].bind(this):null,h=f[1]?f[1].bind(this):null,k=f[2]?f[2].bind(this):null,f=f[3]?f[3].bind(this):null,m=+e;m<=c;m+=2){var n=m&8191;void 0!==d.Wa[n]?t("I/O address already registered: "+r(m,8,!0)):d.Wa[n]=[g,h,k,f,!1]}}e=this.Hc.bind(this);b.J=this.reset.bind(this);b.Mb=e;D(this)};l.Zc=function(){return Yb(this.b)};l.ld=function(a){Zb(this.b,a&-1809|Yb(this.b)&1808);this.b.V|=128};
function $b(a){var b=a.u,d,c,e,f=b.wa>>13&7;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.$c,drive:f,blocksize:256,mapped:0,maxblock:b.gb[f]*b.aa[f],url:"rk"+f+".dsk"});b.T&=-129;switch(b.T>>1&7){case 0:b.Vb=2496;b.oa=0;b.T=128;b.wa=0;break;case 1:if((b.wa>>4&511)>=b.gb[f]){b.oa|=32832;b.T|=49152;break}if((b.wa&15)>=b.aa[f]){b.oa|=32800;b.T|=49152;break}d=(b.wa>>4&511)*b.aa[f]+(b.wa&15);c=(b.T&48)<<12|b.Ub;e=65536-b.Wb&65535;ac(a,b.ra[f],d,c,e);return;case 2:if((b.wa>>4&511)>=b.gb[f])b.oa|=
32832,b.T|=49152;else if((b.wa&15)>=b.aa[f])b.oa|=32800,b.T|=49152;else{d=(b.wa>>4&511)*b.aa[f]+(b.wa&15);c=(b.T&48)<<12|b.Ub;e=65536-b.Wb&65535;a.cc(b.ra[f],d,c,e);return}}b.Vb=f<<13|b.Vb&8176|b.wa%9&15;J(a.b,20,160,144,function(){b.T=b.T&65534|128;return!!(b.T&64)})}l.$c=function(a,b,d,c,e){var f=this.u;f.Ub=c&65535;f.T=f.T&-49|c>>12&48;f.Wb=65536-e&65535;switch(a){case 1:f.oa|=33024;f.T|=49152;break;case 2:f.oa|=33792,f.T|=49152}J(this.b,20,160,144,function(){f.T=f.T&65534|128;return!!(f.T&64)})};
function bc(a){var b=a.G,d,c,e,f=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.ad,drive:f,blocksize:128,mapped:1,maxblock:b.gb[f]*b.aa[f],url:"rl"+f+".dsk"});switch(b.K>>1&7){case 2:b.ab&8&&(b.K&=63);b.ab=b.Ic[f]|b.eb&64;break;case 3:1==(b.fa&3)&&(b.eb=b.fa&4?b.eb+(b.fa&65408)&65408|b.fa<<2&64:b.eb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.eb);break;case 4:b.ab=b.eb;break;case 5:if(b.fa>>6>=b.gb[f]){b.K|=37888;break}if((b.fa&63)>=b.aa[f]){b.K|=37888;break}d=(b.fa>>6)*
b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;ac(a,b.ra[f],d,c,e);return;case 6:if(b.fa>>6>=b.gb[f])b.K|=37888;else if((b.fa&63)>=b.aa[f])b.K|=37888;else{d=(b.fa>>6)*b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;a.cc(b.ra[f],d,c,e);return}}J(a.b,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
l.ad=function(a,b,d,c,e){var f=this.G;f.Jb=c&65535;f.K=f.K&-49|c>>12&48;f.Xa=c>>16&63;f.fa=~~(d/f.aa[b.Oa])<<6|d%f.aa[b.Oa];f.eb=f.fa;f.ab=65536-e&65535;switch(a){case 1:f.K|=33792;break;case 2:f.K|=40960}J(this.b,20,160,112,function(){f.K|=129;return!!(f.K&64)})};function cc(a){a=a.J;a.U=2176;a.Ea=0;a.ta=[4544,4544,4544,4544,4544,4544,4544,4544];a.yb=[0,0,0,0,0,0,0,0];a.nb=a.zb=a.xb=a.cb=a.nc=0}
function dc(a,b){var d=a.J,c,e,f;d.U&=-16513;d.Ea&=-2049;d.ta[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof d.ra[b]&&(d.ra[b]={cache:[],postProcess:a.bd,drive:b,blocksize:256,mapped:0,maxblock:d.gc[0]*d.fb[0]*d.aa[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ec[b]=d.Ta[b];d.U|=32896;d.ta[b]|=32896;d.nb|=1<<b;break;case 9:cc(a);break;case 19:d.ta[b]|=64;break;case 49:if(d.Ta[b]>=d.gc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0]){d.yb[b]|=1024;d.U|=49152;break}c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*
d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;ac(a,d.ra[b],c,e,f);return;case 57:if(d.Ta[b]>=d.gc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0])d.yb[b]|=1024,d.U|=49152;else{c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;a.cc(d.ra[b],c,e,f);return}}J(a.b,3,160,172,function(){d.U=d.U&65534|128;d.ta[b]|=128;return!!(d.U&64)})}
l.bd=function(a,b,d,c,e){var f=this.J;f.zb=65536-e&65535;f.xb=c&65535;f.U=f.U&-769|c>>8&768;f.cb=c>>16&63;e=~~(d/f.aa[0]);c=~~(e/f.fb[0]);f.Fa[b.Oa]=e%f.fb[0]<<8|d%f.aa[0];f.ec[b.Oa]=f.Ta[b.Oa]=c;f.nb|=1<<b.Oa;d>=b.Wc-1&&(f.ta[b.Oa]|=1024);switch(a){case 1:f.Ea|=512;f.U|=49152;break;case 2:f.Ea|=2048,f.U|=49152}J(this.b,20,160,172,function(){f.ta[b.Oa]|=128;f.U=f.U&65534|128;return!!(f.U&64)})};l.Tc=function(){this.B.K|=128;this.B.K&64&&J(this.b,0,192,64)};
function ec(a,b,d,c,e,f){var g=~~((f+d.Ya-1)/d.Ya),h=new XMLHttpRequest;2048>g&&c+2048<d.Wc&&(g=2048);h.open("GET",d.url,!0);h.setRequestHeader("Range","bytes="+(c*d.Ya<<1)+"-"+(((c+g)*d.Ya<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,q,p;m=h.response;if(h.status&&206!=h.status||!m)d.bc(1,d,c,e,f);else{m=new Uint8Array(m);n=c;for(p=0;p<m.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],q=0;q<d.Ya;q++)d.cache[n][q]=p<m.length?
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=d.Ya<<1;n++}g(d,c,e,f)}}};h.send(null)}function K(a,b,d,c,e){if(d&1){if(!e)return L(a.b,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?e&&(c=b&65280|c&255):c=b;return c}l.cc=function(a,b,d,c){for(var e;0<c;){if("undefined"===typeof a.cache[b]){ec(this,this.cc,a,b,d,c);return}for(e=0;e<a.Ya&&0<c;e++){if(0>M(this.b,a.Vc?fc(this.b,d):d,a.cache[b][e])){a.bc(2,a,b,d,c);return}d+=2;--c}b++}a.bc(0,a,b,d,c)};
function ac(a,b,d,c,e){for(var f,g;0<e;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],f=0;f<b.Ya;f++)b.cache[d][f]=0;for(f=0;f<b.Ya&&0<e;f++){g=a.b.ka(b.Vc?fc(a.b,c):c);if(0>g){b.bc(2,b,d,c,e);return}b.cache[d][f]=g;c+=2;--e}d++}b.bc(0,b,d,c,e)}l.reset=function(){this.g.sb=this.g.sb&-120|20;this.O.Ma=0;this.O.ua=128;this.B.K=0;this.u.T=128;this.G.K=128;cc(this)};
l.Hc=function(a,b,d){var c,e,f=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=f.Sa&65280:(a&1&&(b<<=8),f.Sa=b|255,c=0);break;case 4194298:if(0>b)c=f.dc;else{a&1&&(b<<=8);if(c=b&65024){e=c>>9;do c+=34;while(e>>=1)}f.dc=c;f.Ra=2}break;case 4194294:if(70!==f.jb)return L(f,4,222);0>b?c=f.M:c=f.M=0;break;case 4194292:if(70!==f.jb)return L(f,4,224);c=1;break;case 4194290:if(70!==f.jb)return L(f,4,226);c=0;break;case 4194288:if(70!==f.jb)return L(f,4,228);c=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==f.jb)return L(f,4,232);e=a-4194272>>1;0>b?c=f.jc[e]:(c=K(this,f.jc[e],a,b,d),0<=c&&(f.jc[e]=c));break;case 4194254:return a&1?f.N>>14&1?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.va[3]=b),c=f.va[3]):f.N>>14&0?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.va[1]=b),c=f.va[1]),c;case 4194252:case 4194250:case 4194248:return e=a&7,f.N&2048?(0<=b&&(f.f[e]=b),c=f.f[e]):(0<=b&&(f.bb[e]=
b),c=f.bb[e]),c;case 4194246:return a&1?(0<=b&&(f.f[7]=b),c=f.f[7]):f.N>>14&0?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.va[0]=b),c=f.va[0]),c;case 4194244:case 4194242:case 4194240:return e=a&7,f.N&2048?(0<=b&&(f.bb[e]=b),c=f.bb[e]):(0<=b&&(f.f[e]=b),c=f.f[e]),c;default:return f.M|=16,L(f,4,124)}break;case 4194176:e=a>>1&31;c=K(this,f.ma[3][e],a,b,d);0<=c&&(f.ma[3][e]=c,f.ma[3][e&15]&=65295);break;case 4194112:var g=this.O;e=this.B;switch(a&-2){case 4194174:c=K(this,f.Eb,a,b,d);0<=c&&(f.Eb=c);break;case 4194172:c=
f.Ga;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:f.ea=f.ea&62337|f.Pb<<5|f.ac<<1;0>b?c=f.ea:(c=K(this,f.ea,a,b,d),0<=c&&(f.ea=c&=62337,f.Pb=c>>5&3,f.ac=c>>1&15,c&257?(e=2,f.Ua&16&&(e=1),f.tb=c&1?tb|E:E):(f.tb=0,e=4),this.g.sb=this.g.sb&-8|e));break;case 4194168:0>b?c=this.g.jd&65535:(c=K(this,this.g.data,a,b,d),0<=c&&(this.g.data=c));break;case 4194166:0<=b&&(b&127&&(g.Mc=0),g.ua&=-129,J(f,100,128,52,function(){g.ua|=128;return!!(g.ua&64)}));c=0;break;case 4194164:0>b?c=g.ua:(c=K(this,g.ua,
a,b,d),0<=c&&(128==(g.ua&192)&&c&64&&J(f,8,128,52,function(){g.ua|=128;return!!(g.ua&64)}),g.ua=g.ua&128|c&-129));break;case 4194162:c=0;0>b&&(g.Ma&=-129,0<g.lc.length&&(c=g.lc.shift(),0<g.lc.length&&setTimeout(function(){g.Ma|=128;g.Ma&64&&J(f,40,128,48)},50)));break;case 4194160:0>b?c=g.Ma:(c=K(this,g.Ma,a,b,d),0<=c&&(g.Ma=g.Ma&128|c&-129));break;case 4194150:0>b?(c=e.K,e.K&=-129):(c=K(this,e.K,a,b,d),0<=c&&(c&64&&!e.Ob&&(setInterval(this.Tc.bind(this),25),e.Ob=1),e.K=c&-129));break;default:return f.M|=
16,L(f,4,126)}break;case 4194048:e=this.u;switch(a&-2){case 4194048:c=K(this,e.Vb,a,b,d);0<=c&&(e.Vb=c);break;case 4194050:c=K(this,e.oa,a,b,d);0<=c&&(e.oa=c);break;case 4194052:c=K(this,e.T,a,b,d);0<=b&&0<=c&&(e.T=c&-36993|e.T&36992,e.T&1&&$b(this));break;case 4194054:c=K(this,e.Wb,a,b,d);0<=c&&(e.Wb=c);break;case 4194056:c=K(this,e.Ub,a,b,d);0<=c&&(e.Ub=c);break;case 4194058:c=K(this,e.wa,a,b,d);0<=c&&(e.wa=c);break;case 4194060:break;case 4194062:c=K(this,e.Ac,a,b,d);0<=c&&(e.Ac=c);break;default:return f.M|=
16,L(f,4,128)}break;case 4193728:var h=this.J;e=h.Ea&7;switch(a&-2){case 4193728:c=K(this,h.U,a,b,d);0<=b&&0<=c&&(h.cb=h.cb&60|c>>8&3,h.U=c&17279|h.U&34944|2048,c&1&&h.U&128?dc(this,e):192==(c&192)&&J(f,0,160,172));break;case 4193730:c=K(this,h.zb,a,b,d);0<=c&&(h.zb=c);break;case 4193732:c=K(this,h.xb,a,b,d);0<=c&&(h.xb=c&65534);break;case 4193734:c=K(this,h.Fa[e],a,b,d);0<=c&&(h.Fa[e]=c&7967);break;case 4193736:c=K(this,h.Ea,a,b,d);0<=c&&(h.Ea=c&63|h.Ea&65472,c&128&&cc(this));break;case 4193738:c=
h.ta[e];break;case 4193740:c=h.yb[e];break;case 4193742:c=K(this,h.nb,a,b,d);0<=c&&(h.nb=c&255);break;case 4193744:c=h.gd[e];break;case 4193746:c=K(this,h.Bc,a,b,d);0<=c&&(h.Bc=c);break;case 4193748:c=K(this,h.Cc[e],a,b,d);0<=c&&(h.Cc[e]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=h.hd[e];break;case 4193754:c=K(this,h.Dc[e],a,b,d);0<=c&&(h.Dc[e]=c);break;case 4193756:c=K(this,h.Ta[e],a,b,d);0<=c&&(h.Ta[e]=c&511);break;case 4193758:h.ec[e]=h.Ta[e];c=h.ec[e];break;case 4193760:c=h.ed[e];
break;case 4193762:c=h.fd[e];break;case 4193764:c=h.cd[e];break;case 4193766:c=h.dd[e];break;case 4193768:c=K(this,h.cb,a,b,d);0<=c&&(h.cb=c&63,h.U=h.U&-769|(c&3)<<8);break;case 4193770:c=K(this,h.nc,a,b,d);0<=c&&(h.nc=c);break;default:return f.M|=16,L(f,4,132)}break;case 4192512:e=this.G;switch(a&-2){case 4192512:c=K(this,e.K,a,b,d);0<=b&&0<=c&&(e.Xa=e.Xa&60|c>>4&3,e.K=e.K&-1023|c&1022,e.K&128||bc(this));break;case 4192514:c=K(this,e.Jb,a,b,d);0<=c&&(e.Jb=c&65534);break;case 4192516:c=K(this,e.fa,
a,b,d);0<=c&&(e.fa=c);break;case 4192518:c=K(this,e.ab,a,b,d);0<=c&&(e.ab=c);break;case 4192520:c=K(this,e.Xa,a,b,d);0<=c&&(e.Xa=c&63,e.K=e.K&-49|(e.Xa&3)<<4);break;default:return f.M|=16,L(f,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=f.Ua:(c=K(this,f.Ua,a,b,d),0<=c&&(70!==f.jb&&(c&=-49),f.Ua=c,f.lb[0]=c&4?15:7,f.lb[1]=c&2?15:7,f.lb[3]=c&1?15:7,f.tb&&(e=2,f.Ua&16&&(e=1),this.g.sb=this.g.sb&-8|e)));break;default:return f.M|=16,L(f,4,136)}break;case 4191424:e=a>>1&31;c=K(this,f.ma[0][e],
a,b,d);0<=c&&(f.ma[0][e]=c,f.ma[0][e&15]&=65295);break;case 4191360:e=a>>1&31;c=K(this,f.ma[1][e],a,b,d);0<=c&&(f.ma[1][e]=c,f.ma[1][e&15]&=65295);break;case 4190400:case 4190336:if(70!==f.jb)return L(f,4,234);e=a>>2&31;c=f.Xb[e];a&2&&(c>>=16);c&=65535;0<=b&&(c=K(this,c,a,b,d),0<=c&&(f.Xb[e]=a&2?c<<16|f.Xb[e]&65535:f.Xb[e]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Wb[a>>1&255];else return f.M|=16,L(f,
4,138);break;default:return f.M|=16,L(f,4,142)}d&&0<=c&&(a&1?c>>=8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var gc={},Xb=(gc[65534]=[null,null,Vb.prototype.Zc,Vb.prototype.ld],gc);Oa(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Vb(c);bb(c,d)}});var hc;if(sb){var ic=new ArrayBuffer(2);(new DataView(ic)).setUint16(0,256,!0);hc=256===(new Uint16Array(ic))[0]}else hc=!1;var jc=hc;
function I(a,b,d,c,e){this.id=kc+=2;this.b=null;this.w=a;this.Zb=b;this.size=d||0;this.type=c||lc;this.H=c==mc;this.controller=null;zb(this);this.Za=this.Nc=!1;if(d)if(e)this.controller=e,this.b=null,nc(this,e.Gb);else if(sb)this.G=new ArrayBuffer(d),this.J=new DataView(this.G,0,d),this.g=new Uint8Array(this.G,0,d),this.R=new Uint16Array(this.G,0,d>>1),this.b=new Int32Array(this.G,0,d>>2),nc(this,jc?oc:pc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;nc(this,qc)}else nc(this)}
var lc=0,mc=2,Fb=4,Hb=["NONE","RAM","ROM","VID","H/W"],kc=0;
I.prototype={constructor:I,parent:null,Ob:function(a){this.w=a},save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.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(sb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.b=a;return this.Za=!0}return!1},hb:function(a,b){b?this.B++||rc(this,sc,!1):this.P++||tc(this,sc,!1)},W:function(){this.I&&cb(this.I,
129)&&this.I.message("attempt to read invalid block %"+r(this.w),!0);return 255},u:function(a,b){this.I&&cb(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.w),!0)},X:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},O:function(a,b,d){this.Bb(a++,b&255,d++);this.Bb(a,b>>8,d)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.b[b]>>a;return 24>a?d&65535:d&255|(this.b[b+1]&255)<<8},Ca:function(a,b){var d=a>>
2;a=(a&3)<<3;this.b[d]=this.b[d]&~(255<<a)|b<<a;this.Za=!0},Fb:function(a,b){var d=a>>2;a=(a&3)<<3;24>a?this.b[d]=this.b[d]&~(65535<<a)|b<<a:(this.b[d]=this.b[d]&16777215|b<<24,d++,this.b[d]=this.b[d]&-256|b>>8);this.Za=!0},$:function(a,b){if(this.I&&null!=this.w){var d=this.I;uc(d,this.w+a,1,d.Y)&&d.pa(!0)}return this.Tb(a,b)},ha:function(a,b){if(this.I&&null!=this.w){var d=this.I;uc(d,this.w+a,2,d.Y)&&d.pa(!0)}return this.mc(a,b)},za:function(a,b,d){if(this.I&&null!=this.w){var c=this.I;uc(c,this.w+
a,1,c.J)&&c.pa(!0)}this.H?this.u(a,b,d):this.Cb(a,b,d)},Ia:function(a,b,d){if(this.I&&null!=this.w){var c=this.I;uc(c,this.w+a,2,c.J)&&c.pa(!0)}this.H?this.u(a,b,d):this.qc(a,b,d)},Y:function(a){return this.g[a]},ba:function(a){return this.g[a]},da:function(a){return this.J.getUint16(a,!0)},ia:function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.R[a>>1]},ya:function(a,b){this.g[a]=b;this.Za=!0},Aa:function(a,b){this.g[a]=b;this.Za=!0},Ha:function(a,b){this.J.setUint16(a,b,!0);this.Za=!0},Va:function(a,
b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.R[a>>1]=b;this.Za=!0}};function zb(a,b,d){a.I=b;a.P=a.B=0;d&&((a.P=d.P)&&tc(a,sc,!1),(a.B=d.B)&&rc(a,sc,!1))}function vc(a,b){b?--a.B||(a.Bb=a.H?a.u:a.Cb,a.Fc=a.H?a.O:a.qc):--a.P||(a.wb=a.Tb,a.zc=a.mc)}function rc(a,b,d){d&&a.B||(a.Bb=!a.H&&b[1]||a.u,a.Fc=!a.H&&b[3]||a.O);if(d||void 0===d)a.Cb=b[1]||a.u,a.qc=b[3]||a.O}function tc(a,b,d){d&&a.P||(a.wb=b[0]||a.W,a.zc=b[2]||a.X);if(d||void 0===d)a.Tb=b[0]||a.W,a.mc=b[2]||a.X}
function nc(a,b){b||(b=wc);tc(a,b,void 0);rc(a,b,void 0)}var wc=[],qc=[I.prototype.ca,I.prototype.Ca,I.prototype.qa,I.prototype.Fb],sc=[I.prototype.$,I.prototype.za,I.prototype.ha,I.prototype.Ia];if(sb)var pc=[I.prototype.Y,I.prototype.ya,I.prototype.da,I.prototype.Ha],oc=[I.prototype.ba,I.prototype.Aa,I.prototype.ia,I.prototype.Va];
function xc(a,b){u.call(this,"CPU",a,xc,1);var d=a.multiplier||1;this.Ha=a.cycles||b;this.mb=d;this.Ca=Math.round(this.Ha/1E4)/100;this.kb=this.Ca*this.mb;this.j.la=!1;this.j.pc=!1;this.j.Hb=a.autoStart;this.j.wc=!1;this.j.rb=!1;this.Qb=this.ba=0;this.Rb=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.ya=[];this.Kb=this.ob.bind(this);D(this)}w(xc);var yc=["power","reset"];l=xc.prototype;
l.$a=function(a,b,d,c){this.B=a;this.H=b;this.I=c;for(b=0;b<yc.length;b++)(d=this.P[yc[b]])&&this.B.xa(null,yc[b],d);this.ha=null;a=Nc(a,"autoStart");null!=a&&(this.j.Hb="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Qa=function(a,b){if(!b){if(a&&this.restore){Oc(this);if(!this.restore(a))return!1;Pc(this)}else this.reset();this.I?this.I.Ob():this.i("No debugger detected")}N(this);return!0};
l.Pa=function(a){return a?this.save():!0};l.Hb=function(){return this.j.Hb||!this.I&&void 0===this.P.run?(this.ob(!0),!0):!1};l.yc=function(){return 0};function Pc(a){void 0===a.Rb&&(a.Rb=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.j.rb=0<=a.Rb&&0<a.ub;a.j.rb&&(a.Qb=0,a.ba=a.Rb-a.$)}function Qc(a,b){if(a.j.rb){var d=!1;a.Qb=a.Qb+a.yc()|0;a.ba-=b;0>=a.ba&&(a.ba+=a.ub,d=!0);0<=a.vb&&a.vb<=Rc(a)&&(a.ub=a.vb=-1,Pc(a),a.pa(),d=!0);d&&a.i(Rc(a)+" cycles: checksum="+r(a.Qb))}}
function Sc(a,b,d,c){if(a.P[b]){void 0===d&&(rb(a,"Value for "+b+" is invalid"),a.pa());var e=a.I&&a.I.za||8;d=!a.j.la||a.j.wc?8==e?ca(d,c):r(d,c):"--------".substr(0,c||4);a.P[b].textContent!=d&&(a.P[b].textContent=d)}}
l.xa=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.P[b]=d;a=!0;break;case "run":this.P[b]=d;d.onclick=function(){var a;if(a=c.B)if(a=c.B,a.j.ga)a=!0;else{var b=null,d,h=$a(a.id);for(d=0;d<h.length&&(b=h[d],b===a||b.j.ready);d++);if(d==h.length)for(d=0;d<h.length&&(b=h[d],b===a||b.j.ga);d++);d==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.$b?" (waiting for notification)":""))+".");a=!1}a&&(c.j.la?c.pa():c.ob())};
a=!0;break;case "speed":this.P[b]=d;a=!0;break;case "setSpeed":this.P[b]=d,d.onclick=function(){Tc(c,c.mb<<1,!0)},d.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,d){a.$+=b;d&&(a.Y=a.b=0)}function Vc(a,b){var d=1;b&&1<a.mb&&a.W&&(d=a.W/a.Ca);a.Db=Math.round(1E3/30);a.Aa=Math.floor(a.Ha/30*d);b||(a.ca=a.Aa);a.Ia=0}function Rc(a){return a.$+a.R+a.Y-a.b}function Oc(a){a.W=0;a.Ib=0;a.$=a.R=a.Y=a.b=0;Pc(a);Tc(a,1)}
function Tc(a,b,d){var c=!1;if(void 0!==b){.8>a.W/a.kb?b=1:c=!0;a.mb=b;b=a.Ca*a.mb;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}d&&a.B&&a.B.Yb()}Uc(a,a.R);a.R=0;a.O=ra();a.X=0;Vc(a);return c}function Wc(a){a.Y-=a.b;a.b=0}
l.ob=function(a){if(db(this,!0)){if(!this.j.la){Tc(this);this.B&&this.B.start(this.O,Rc(this));this.j.la=!0;this.j.pc=!0;this.ha&&this.ha.start();var b=this.P.run;b&&(b.textContent="Halt");this.B&&(this.B.Ba(!0),a&&this.B.Yb(!0))}this.Ia>=this.Ha&&Vc(this,!0);this.ia=0;this.za=ra();this.X&&(a=this.za-this.X,a>this.Db&&(this.O+=a,this.O>this.za&&(this.O=this.za)));try{do{for(var d,c=this.j.rb?1:this.Aa,e=this.ya.length-1;0<=e;e--){var f=this.ya[e];0>f[0]||c>f[0]&&(c=f[0])}d=c;try{this.Ab(d)}catch(m){if("number"!=
typeof m)throw m;}var g=this.Y-this.b;a=g;for(var h=this.ya.length-1;0<=h;h--){var k=this.ya[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ia+=g;this.R+=g;Uc(this,0,!0);Qc(this,g);this.ca-=g;if(0>=this.ca){this.ca+=this.Aa;15<=++this.Ib&&(this.B&&this.B.Ba(),this.Ib=0);break}}while(this.j.la)}catch(m){this.pa();N(this);this.B&&this.B.stop(ra(),Rc(this));db(this,!1);rb(this,m.stack||m.message);return}d=setTimeout;c=this.Kb;this.X=ra();e=this.Db;this.ia&&(e=Math.round(e*this.ia/this.Aa));e-=this.X-
this.za;if(f=this.X-this.O)this.W=Math.round(this.R/(10*f))/100,864E5<=f&&(this.$=0,Tc(this));if(0>e||this.W<this.kb)-1E3>e&&(this.O-=e),e=0;this.Ia+=this.ia;this.X+=e;d(c,e)}else N(this),this.B&&this.B.stop(ra(),Rc(this))};l.Ab=function(){return 0};l.pa=function(a){pb(this,!0);Wc(this);Uc(this,this.R);this.R=0;if(this.j.la){this.j.la=!1;this.ha&&this.ha.stop();var b=this.P.run;b&&(b.textContent="Run")}this.j.complete=a};function N(a,b){a.B&&a.B.Ba(b)}
function Xc(a){this.Xc=+a.model||1170;this.kc=a.resetAddr||0;xc.call(this,a,1E6);this.Va=0;this.decode=Yc.bind(this);this.D=65536;this.C=32768;this.F=65535;this.A=32768;this.f=[0,0,0,0,0,0,0,this.kc];this.bb=[0,0,0,0,0,0];this.va=[0,0,0,0];this.Sa=255;this.ac=this.Pb=this.tb=this.G=this.Ua=this.Eb=this.Ga=this.ea=this.M=this.dc=0;this.lb=[7,7,7,7];this.ma=[[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],[65535,65535,
65535,65535,65535,65535,65535,65535,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]];this.Xb=[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];this.jc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.g=-1;this.V=0;this.jb=70;this.da=-1;this.u=[];this.qa=0;this.Ra=2;Zc(this);this.j.complete=this.j.Lc=!1}w(Xc,xc);l=Xc.prototype;
l.reset=function(){this.j.la&&this.pa();$c(this);Oc(this);this.j.error=!1;this.parent.reset.call(this)};function $c(a){a.Sa=255;a.M=0;a.u=[];a.dc=0;a.ea=a.Ga=a.Eb=a.Ua=a.tb=0;a.lb[0]=a.lb[1]=a.lb[3]=7;a.Pb=0;Zc(a)}function Zc(a){a.tb?(a.J=65536,a.L=a.Rc,a.Lb=a.na):(a.J=0,a.L=a.Qc,a.Lb=a.ka)}l.yc=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.pb,this.$,this.mb]);a.set(2,Jb(this.H));return a.data()};
l.restore=function(a){var b=a[1];this.pb=b[0];this.$=b[1];Tc(this,b[3]);a:{b=this.H;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],e=a[d+1];if(e&&e.length<b.R){for(var f=0,g=Array(b.R),h=0;h<e.length-1;)for(var k=e[h++],m=e[h++];k--;)g[f++]=m;e=g}f=b.S[c];if(!f||!f.restore(e)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
l.xa=function(a,b,d){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":this.P[b]=d;this.Va++;a=!0;break;default:a=this.parent.xa.call(this,a,b,d)}return a};
l.Ba=function(a){if(this.Va&&(a||!this.j.la||this.j.wc)){for(a=0;a<this.f.length;a++)Sc(this,"R"+a,this.f[a]);a=Yb(this);Sc(this,"PS",a);Sc(this,"NF",a&8?1:0,1);Sc(this,"ZF",a&4?1:0,1);Sc(this,"VF",a&2?1:0,1);Sc(this,"CF",a&1?1:0,1)}if(a=this.P.speed)a.textContent=this.j.la&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
function J(a,b,d,c,e){for(var f=a.u.length;0<f--;)if(a.u[f].kd===c){0<f&&(a.u[f-1].Ja+=a.u[f].Ja);a.u.splice(f,1);break}if(0<=b){2===a.qa&&(b=0,a.qa=0,setTimeout(a.Kb,0));for(f=a.u.length;0<f--;){if(a.u[f].Ja>b){a.u[f].Ja-=b;break}b-=a.u[f].Ja}a.u.splice(f+1,0,{delay:b,priority:d&224,vector:c,callback:e})}a.Ra=2}function Yb(a){return a.N=a.N&63728|(a.A&32768?8:0)|(a.F&65535?0:4)|(a.C&32768?2:0)|(a.D&65536?1:0)}
function Zb(a,b){a.A=b<<12;a.F=~b&4;a.C=b<<14;a.D=b<<16;if((b^a.N)&2048)for(var d=a.bb.length;0<=--d;){var c=a.f[d];a.f[d]=a.bb[d];a.bb[d]=c}a.G=b>>14&3;d=a.N>>14&3;a.G!=d&&(a.va[d]=a.f[6],a.f[6]=a.va[a.G]);a.Ra=2;a.N=b}function ad(a,b){a.V&128||(a.A=a.F=a.D=b,a.C=0)}function bd(a,b){a.V&128||(a.A=a.F=b,a.C=0)}function cd(a,b,d,c){a.V&128||(a.A=a.F=a.D=b,a.C=(d^c)&(c^b))}
function L(a,b,d){var c,e,f=0;0>a.da?a.da=Yb(a):a.G||(b=4,f=1);a.ea&57344||(a.Ga=63222,a.Eb=b);a.G=0;0<=(c=a.na(b|65536))&&0<=(e=a.na(b+2&65535|65536))&&(Zb(a,e&53247|a.da>>2&12288),f&&(a.M|=4,a.f[6]=4),0<=dd(a,a.da)&&0<=dd(a,a.f[7])&&(a.f[7]=c));a.V&=-113;a.da=-1;throw b|d<<8;}function fc(a,b){var d=b>>13&31;31>d?a.Ua&32&&(b=a.Xb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function ed(a,b,d){var c,e,f,g=0;if(d&a.tb){c=b>>13&a.lb[a.G];e=a.ma[a.G][c];f=(a.ma[a.G][c+16]<<6)+(b&8191)&4194303;a.Ua&16?3932160<=f&&4186112>f&&(f=fc(a,f&262143)):(f&=262143,253952<=f&&(f|=4186112));3932160>f&&(3915776<=f&&(a.M|=32,L(a,4,24)),f&1&&!(d&1)&&(a.M|=64,L(a,4,26)));switch(e&7){case 1:g=4096;case 2:e|=128;d&E&&(g=8192);break;case 4:g=4096;case 5:d&E&&(g=4096);case 6:e|=d&E?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.ma[a.G][c]=e;if(4194170!==f||a.G)a.Pb=a.G,a.ac=c;g&&(g&57344&&(0<=a.da&&(g|=128),a.ea&57344||(a.ea=a.ea|g|a.Pb<<5|a.ac<<1),L(a,168,28)),a.ea&61440||!(4191360>f||4194239<f)||(a.ea|=4096,a.ea&512&&(a.V|=32)))}else f=b&65535,57344<=f?f|=4186112:f&1&&!(d&1)&&(a.M|=64,L(a,4,22));return f}l.ka=function(a){return 4194304<=a?this.f[a-4194304]:0<=a?this.H.La(a):a};l.na=function(a){return this.ka(ed(this,a,tb))};
function M(a,b,d){d&=65535;return 4194304<=b?a.f[b-4194304]=d:0<=b?(a.H.oc(b,d),d):b}function P(a,b){return 4194304<=b?a.f[b-4194304]&255:0<=b?a.H.Nb(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.f[b-4194304]=a.f[b-4194304]&65280|d:0<=b?(a.H.fc(b,d),d):b}function fd(a){var b=a.na(a.f[6]|65536);0<=b&&(a.f[6]=a.f[6]+2&65535);return b}
function dd(a,b){var d,c;a.f[6]=c=a.f[6]-2&65535;a.ea&57344||(a.Ga=a.Ga<<8|246);!a.G&&c<=a.Sa&&4<c&&(c<=a.Sa-32?(a.M|=4,a.f[6]=4,L(a,4,32)):(a.M|=8,a.V|=4));return 0<=(d=ed(a,c|65536,E))?M(a,d,b):d}
function gd(a,b,d){var c,e,f=b&7;switch(b>>3&7){case 0:L(a,4,34);break;case 1:return 6===f&&!a.G&&d&E&&(a.f[6]<=a.Sa||65534<=a.f[6])&&(a.f[6]<=a.Sa-32||65534<=a.f[6]?(a.M|=4,a.f[6]=4,L(a,4,36)):(a.M|=8,a.V|=64)),7===f?a.f[f]:a.f[f]|a.J;case 2:e=2;c=a.f[f];7!==f&&(c|=a.J,6>f&&d&1&&(e=1));break;case 3:e=2;c=a.f[f];7!==f&&(c|=a.J);if(0>(c=a.na(c)))return c;c|=a.J;break;case 4:e=-2;6>f&&d&1&&(e=-1);c=a.f[f]+e&65535;7!==f&&(c|=a.J);break;case 5:e=-2;c=a.f[f]-2&65535;7!==f&&(c|=a.J);if(0>(c=a.na(c)))return c;
c|=a.J;break;case 6:if(0>(c=a.na(a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[f]&65535;return c|a.J;case 7:if(0>(c=a.na(a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[f]&65535;return 0>(c=a.na(c|65536))?c:c|a.J}a.f[f]=a.f[f]+e&65535;!a.J||a.ea&57344||(a.Ga=a.Ga<<8|e<<3&248|f);6===f&&!a.G&&d&E&&0>=e&&(a.f[6]<=a.Sa||65534<=a.f[6])&&(a.f[6]<=a.Sa-32?(a.M|=4,a.f[6]=4,L(a,4,38)):(a.M|=8,a.V|=64));return c}l.Qc=function(a,b){return gd(this,a,b)};l.Rc=function(a,b){return ed(this,gd(this,a,b),b)};
function S(a,b){return b&56?a.Lb(gd(a,b,tb)):a.f[b&7]}function hd(a,b){return b&56?P(a,a.L(b,ub)):a.f[b&7]&255}function id(a,b,d,c){b&56?(b=a.L(b,F),M(a,b,c.call(a,d,a.ka(b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b])&65535)}function jd(a,b,d,c){b&56?(b=a.L(b,G),Q(a,b,c.call(a,d,P(a,b)))):(b&=7,a.f[b]=a.f[b]&65280|c.call(a,d,a.f[b])&255)}function kd(a,b,d){b&56?M(a,a.L(b,E),d):a.f[b&7]=d&65535;return d}
function ld(a,b,d,c){b&56?Q(a,a.L(b,vb),d):(b&=7,a.f[b]=c?c&1?a.f[b]&-256:d<<24>>24&65535:a.f[b]&-256|d&255);return d}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
l.Ab=function(a){this.j.complete=!0;var b=this.j.Lc=this.I&&md(this.I),d=a?this.j.pc?0:1:-1;this.j.pc=!1;this.Y=this.b=a;this.pb&256?(Wc(this),a=!1):a=!0;if(a){do{if(b){if(nd(this.I,this.f[7],d)){this.pa();break}d=1}var c,e,f,g;this.V&112&&(this.V&32?L(this,168,52):this.V&64?L(this,4,54):this.V&16&&L(this,12,56),this.V&=-113);if(this.Ra)if(1===this.Ra)this.Ra=2;else{this.Ra=0;c=-1;e=this.dc&224;if(0<(a=this.u.length))for(;0<a--;){if(0<this.u[a].Ja){this.u[a].Ja--;this.Ra=2;break}if(this.u[a].uc){if(!this.u[a].uc()){this.u.splice(a,
1);c--;continue}this.u[a].uc=null}this.u[a].Yc>e&&(e=this.u[a].Yc,c=a)}e>(this.N&224)&&(0>c?L(this,160,42):(L(this,this.u[c].kd,44),this.u.splice(c,1)))}this.ea&57344||(this.Ga=0,this.Eb=this.f[7]);this.V=this.N&16;this.g=a=this.na(this.f[7]);0<=a&&(this.f[7]=this.f[7]+2&65535);this.decode(a);if(0>this.g)switch(a&61440){case 4096:break;case 8192:break;case 12288:break;case 16384:break;case 20480:break;case 24576:break;case 36864:break;case 40960:break;case 45056:break;case 49152:break;case 53248:break;
case 57344:break;default:switch(a&65024){case 2048:0<=(f=gd(this,a,0))&&(g=a>>6&7,0<=dd(this,this.f[g])&&(this.f[g]=this.f[7],this.f[7]=f&65535));break;case 28672:0<=(c=S(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),e=this.f[g],e&32768&&(e|=-65536),a=~~(c*e),this.f[g]=a>>16&65535,this.f[g|1]=a&65535,this.A=a>>16,this.F=this.A|a,this.D=this.C=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=S(this,a))&&(c?(g=a>>6&7,e=this.f[g]<<16|this.f[g|1],this.D=this.C=0,c&32768&&(c|=-65536),a=~~(e/c),-32768<=
a&&32767>=a?(this.f[g]=a&65535,this.f[g|1]=e-a*c&65535,this.F=a>>16|a,this.A=a>>16):(this.C=32768,this.F=a>>15|a,this.A=e>>16,-1===c&&65534===this.f[g]&&(this.f[g]=this.f[g|1]=1))):(this.F=this.A=0,this.C=32768,this.D=65536));break;case 29696:0<=(c=S(this,a))&&(g=a>>6&7,a=this.f[g],a&32768&&(a|=4294901760),this.D=this.C=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a>>=c):c&&(16<c?(this.C=a,a=0):(this.D=a<<=c,(e=a>>15&65535)&&65535!==e&&(this.C=32768))),this.f[g]=a&65535,this.A=this.F=a);break;
case 30208:if(0<=(c=S(this,a))){g=a>>6&7;e=this.f[g]<<16|this.f[g|1];this.D=this.C=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=e>>c-1,this.D=a<<16,a>>=1,e&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=e<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),e>>=32-c)e|=4294967295<<c&4294967295,4294967295!==e&&(this.C=32768)}else a=e;this.f[g]=a>>16&65535;this.f[g|1]=a&65535;this.A=a>>16;this.F=a>>16|a}break;case 30720:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(e^=this.f[a>>6&7],0<=M(this,c,e)&&(this.A=this.F=e,this.C=0)):
(this.A=this.F=e=this.f[a&7]^=this.f[a>>6&7],this.C=0);break;case 32256:g=a>>6&7;if(this.f[g]=this.f[g]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.f[7]=T(this.f[7],a);break;case 512:this.F&65535&&(this.f[7]=T(this.f[7],a));break;case 768:this.F&65535||(this.f[7]=T(this.f[7],a));break;case 1024:(this.A&32768)===(this.C&32768)&&(this.f[7]=T(this.f[7],a));break;case 1280:(this.A&32768)!==(this.C&32768)&&(this.f[7]=T(this.f[7],a));break;case 1536:this.F&
65535&&(this.A&32768)===(this.C&32768)&&(this.f[7]=T(this.f[7],a));break;case 1792:this.F&65535&&(this.A&32768)===(this.C&32768)||(this.f[7]=T(this.f[7],a));break;case 32768:this.A&32768||(this.f[7]=T(this.f[7],a));break;case 33280:!(this.D&65536)&&this.F&65535&&(this.f[7]=T(this.f[7],a));break;case 33024:this.A&32768&&(this.f[7]=T(this.f[7],a));break;case 33536:if(this.D&65536||!(this.F&65535))this.f[7]=T(this.f[7],a);break;case 33792:this.C&32768||(this.f[7]=T(this.f[7],a));break;case 34048:this.C&
32768&&(this.f[7]=T(this.f[7],a));break;case 34304:this.D&65536||(this.f[7]=T(this.f[7],a));break;case 34560:this.D&65536&&(this.f[7]=T(this.f[7],a));break;case 34816:L(this,24,2);break;case 35072:L(this,28,4);break;default:switch(a&65472){case 64:0<=(f=gd(this,a,0))&&(this.f[7]=f&65535);break;case 192:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e<<8|e>>8,0<=M(this,c,a)&&(this.A=this.F=e&65280,this.C=this.D=0)):(g=a&7,e=this.f[g],this.f[g]=(e<<8|e>>8)&65535,this.A=this.F=e&65280,this.C=this.D=0);break;
case 2560:break;case 2624:0<=(e=this.ka(c=this.L(a,F)))&&(a=~e,0<=M(this,c,a)&&(this.A=this.F=a,this.D=65536,this.C=0));break;case 2688:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e+1,0<=M(this,c,a)&&(this.A=this.F=a,this.C=a&(a^e))):(g=a&7,e=this.f[g],a=e+1,this.f[g]=a&65535,this.A=this.F=a,this.C=a&(a^e));break;case 2752:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e-1,0<=M(this,c,a)&&(this.A=this.F=a,this.C=(a^e)&e)):(g=a&7,e=this.f[g],a=e-1,this.f[g]=a&65535,this.A=this.F=a,this.C=(a^e)&e);break;case 2816:0<=
(e=this.ka(c=this.L(a,F)))&&(a=-e,0<=M(this,c,a)&&(this.D=this.A=this.F=a,this.C=a&e));break;case 2880:0<=(e=this.ka(c=this.L(a,F)))&&(a=e+(this.D>>16&1),0<=M(this,c,a)&&(this.D=this.A=this.F=a,this.C=a&(a^e)));break;case 2944:0<=(e=this.ka(c=this.L(a,F)))&&(a=e-(this.D>>16&1),0<=M(this,c,a)&&(this.D=this.A=this.F=a,this.C=(a^e)&e));break;case 3008:0<=(e=S(this,a))&&(this.A=this.F=e,this.D=this.C=0);break;case 3072:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=(this.D&65536|e)>>1,0<=M(this,c,a)&&(this.D=
e<<16,this.A=this.F=a,this.C=a^this.D>>1)):(g=a&7,e=this.f[g],a=(this.D&65536|e)>>1,this.f[g]=a&65535,this.D=e<<16,this.A=this.F=a,this.C=a^this.D>>1);break;case 3136:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e<<1|this.D>>16&1,0<=M(this,c,a)&&(this.D=this.A=this.F=a,this.C=a^e)):(g=a&7,e=this.f[g],a=e<<1|this.D>>16&1,this.f[g]=a&65535,this.D=this.A=this.F=a,this.C=a^e);break;case 3200:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e&32768|e>>1,0<=M(this,c,a)&&(this.D=e<<16,this.A=this.F=a,this.C=this.A^this.D>>
1)):(g=a&7,e=this.f[g],a=e&32768|e>>1,this.f[g]=a&65535,this.D=e<<16,this.A=this.F=a,this.C=this.A^this.D>>1);break;case 3264:a&56?0<=(e=this.ka(c=this.L(a,F)))&&(a=e<<1,0<=M(this,c,a)&&(this.D=this.A=this.F=a,this.C=a^e)):(g=a&7,e=this.f[g],a=e<<1,this.f[g]=a&65535,this.D=this.A=this.F=a,this.C=a^e);break;case 3328:f=this.f[7]+((a&63)<<1)&65535;0<=(c=this.na(f|65536))&&(this.f[7]=this.f[5],this.f[5]=c,this.f[6]=f+2&65535);break;case 3392:a&56?0<=(f=gd(this,a,0))&&(61440!==(this.N&61440)&&(f&=65535),
this.G=this.N>>12&3,0<=(c=this.na(f))&&(this.G=this.N>>14&3,0<=dd(this,c)&&(this.A=this.F=c,this.C=0))):(g=a&7,c=6!==g||(this.N>>2&12288)===(this.N&12288)?this.f[g]:this.va[this.N>>12&3],0<=dd(this,c)&&(this.A=this.F=c,this.C=0));break;case 3456:0<=(e=fd(this))&&((this.ea&57344||(this.Ga=22),a&56)?0<=(f=gd(this,a,0))&&(f&=65535,this.G=this.N>>12&3,0<=(c=ed(this,f,E))&&(this.G=this.N>>14&3,0<=M(this,c,e)&&(this.A=this.F=e,this.C=0))):(g=a&7,6!==g||(this.N>>2&12288)===(this.N&12288)?this.f[g]=e:this.va[this.N>>
12&3]=e,this.A=this.F=e,this.C=0));break;case 3520:0<=(c=this.L(a,E))&&(a=-(this.A>>15&1),0<=M(this,c,a)&&(this.F=a,this.C=0));break;case 35328:break;case 35392:0<=(e=P(this,c=this.L(a,G)))&&(a=~e,0<=Q(this,c,a)&&(this.A=this.F=a<<8,this.D=65536,this.C=0));break;case 35456:0<=(e=P(this,c=this.L(a,G)))&&(a=e+1,0<=Q(this,c,a)&&(this.A=this.F=a<<8,this.C=(a&(a^e))<<8));break;case 35520:0<=(e=P(this,c=this.L(a,G)))&&(a=e-1,0<=Q(this,c,a)&&(this.A=this.F=a<<8,this.C=((a^e)&e)<<8));break;case 35584:0<=
(e=P(this,c=this.L(a,G)))&&(a=-e,0<=Q(this,c,a)&&(this.D=this.A=this.F=a<<8,this.C=(a&e)<<8));break;case 35648:0<=(e=P(this,c=this.L(a,G)))&&(a=e+(this.D>>16&1),0<=Q(this,c,a)&&(this.A=this.F=this.D=a<<8,this.C=(a&(a^e))<<8));break;case 35712:0<=(e=P(this,c=this.L(a,G)))&&(a=e-(this.D>>16&1),0<=Q(this,c,a)&&(this.A=this.F=this.D=a<<8,this.C=((a^e)&e)<<8));break;case 35776:0<=(e=hd(this,a))&&(this.A=this.F=e<<8,this.D=this.C=0);break;case 35840:0<=(e=P(this,c=this.L(a,G)))&&(a=((this.D&65536)>>8|e)>>
1,0<=Q(this,c,a)&&(this.D=e<<16,this.A=this.F=a<<8,this.C=this.A^this.D>>1));break;case 35904:0<=(e=P(this,c=this.L(a,G)))&&(a=e<<1|this.D>>16&1,0<=Q(this,c,a)&&(this.D=this.A=this.F=a<<8,this.C=(a^e)<<8));break;case 35968:0<=(e=P(this,c=this.L(a,G)))&&(a=e&128|e>>1,0<=Q(this,c,a)&&(this.D=e<<16,this.A=this.F=a<<8,this.C=this.A^this.D>>1));break;case 36032:0<=(e=P(this,c=this.L(a,G)))&&(a=e<<1,0<=Q(this,c,a)&&(this.D=this.A=this.F=a<<8,this.C=(a^e)<<8));break;case 36160:a&56?0<=(f=gd(this,a,0))&&
(this.G=this.N>>12&3,0<=(c=this.na(f|65536))&&(this.G=this.N>>14&3,0<=dd(this,c)&&(this.A=this.F=c,this.C=0))):(g=a&7,c=6!==g||(this.N>>2&12288)===(this.N&12288)?this.f[g]:this.va[this.N>>12&3],0<=dd(this,c)&&(this.A=this.F=c,this.C=0));break;case 36224:0<=(e=fd(this))&&((this.ea&57344||(this.Ga=22),a&56)?0<=(f=gd(this,a,0))&&(this.G=this.N>>12&3,0<=(c=ed(this,f|65536,E))&&(this.G=this.N>>14&3,0<=M(this,c,e)&&(this.A=this.F=e,this.C=0))):(g=a&7,6!==g||(this.N>>2&12288)===(this.N&12288)?this.f[g]=
e:this.va[this.N>>12&3]=e,this.A=this.F=e,this.C=0));break;default:switch(a&65528){case 128:0<=(c=fd(this))&&(g=a&7,this.f[7]=this.f[g],this.f[g]=c);break;case 152:this.N&49152||(this.N=this.N&63519|(a&7)<<5,this.Ra=1);break;case 160:case 168:break;case 176:case 184:break;default:switch(a){case 0:49152&this.N?(this.M|=128,L(this,4,46)):(this.qa=3,Wc(this),console.log("HALT at "+this.f[7].toString(8)));break;case 1:c=0;if(0<(a=this.u.length))for(;0<a--;)c+=this.u[a].Ja,this.u[a].Ja=0;0===c&&0===this.qa&&
(this.qa=2,Wc(this));break;case 3:L(this,12,6);break;case 4:L(this,16,8);break;case 5:break;case 2:case 6:c=this.f[6];0<=(f=this.na(c|65536))&&(c=c+2&65535,0<=(e=this.na(c|65536))&&(this.f[6]=c+2&65535,e&=63743,this.N&49152&&(e=e&63519|this.N&63712),this.f[7]=f,Zb(this,e),this.V&=-17,2===a&&(this.V|=this.N&16)));break;default:L(this,8,48)}}}}}}}while(0<this.b)}return this.j.complete?this.Y-this.b:void 0===this.j.complete?0:-1};
Oa(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Xc(c);bb(c,d)}});function od(a,b){var d=a+b;this.V&128||(this.A=this.F=this.D=d,this.C=(a^d)&(b^d));return d&65535}function pd(a,b){a=~a&b;bd(this,a);return a}function qd(a,b){a=~a&b;bd(this,a<<8);return a}function rd(a,b){a|=b;bd(this,a);return a}function sd(a,b){a|=b;bd(this,a<<8);return a}function td(a,b){var d=b-a;cd(this,d,a,b);return d&65535}function ud(){this.g=-1;--this.b}
function vd(){this.g=-1;--this.b}function U(a){a&1&&(this.D=0);a&2&&(this.C=0);a&4&&(this.F=1);a&8&&(this.A=0);--this.b}function wd(){this.g=-1;--this.b}function xd(){this.g=-1;--this.b}function yd(){this.g=-1;--this.b}function zd(){--this.b}function V(a){a&1&&(this.D=65536);a&2&&(this.C=32768);a&4&&(this.F=0);a&8&&(this.A=32768);--this.b}function Ad(){this.g=-1;--this.b}function Bd(){this.g=-1;--this.b}function X(){L(this,8,48)}function Yc(a){Cd[a>>12].call(this,a)}
var Cd=[function(a){Dd[a>>8&15].call(this,a)},function(a){bd(this,kd(this,a,S(this,a>>6)));--this.b},function(a){var b=S(this,a>>6);a=S(this,a);cd(this,b-a,a,b);--this.b},function(a){bd(this,S(this,a>>6)&S(this,a));--this.b},function(a){id(this,a,S(this,a>>6),pd);--this.b},function(a){id(this,a,S(this,a>>6),rd);--this.b},function(a){id(this,a,S(this,a>>6),od);--this.b},function(a){Ed[a>>8&15].call(this,a)},function(a){Fd[a>>8&15].call(this,a)},function(a){var b=hd(this,a>>6);bd(this,ld(this,a,b,2)<<
8);--this.b},function(a){var b=hd(this,a>>6)<<8;a=hd(this,a)<<8;cd(this,b-a,a,b);--this.b},function(a){bd(this,(hd(this,a>>6)&hd(this,a))<<8);--this.b},function(a){jd(this,a,hd(this,a>>6),qd);--this.b},function(a){jd(this,a,hd(this,a>>6),sd);--this.b},function(a){id(this,a,S(this,a>>6),td);--this.b},X],Dd=[function(a){Gd[a>>4&15].call(this,a)},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},
function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},xd,xd,function(a){Hd[a>>6&3].call(this,a)},function(a){Id[a>>6&3].call(this,a)},function(a){Jd[a>>6&3].call(this,a)},function(a){Kd[a>>6&3].call(this,a)},X,X],Gd=[function(a){Ld[a&15].call(this,a)},X,X,X,X,X,X,X,X,X,function(a){Md[a&15].call(this,a)},function(a){Nd[a&15].call(this,a)},X,X,X,X],Md=[zd,function(){this.D=0;--this.b},function(){this.C=0;--this.b},U,function(){this.F=1;--this.b},U,U,U,function(){this.A=0;--this.b},U,U,U,U,U,
U,U],Nd=[zd,function(){this.D=65536;--this.b},function(){this.C=32768;--this.b},V,function(){this.F=0;--this.b},V,V,V,function(){this.A=32768;--this.b},V,V,V,V,V,V,V],Ld=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.N&49152||($c(this),this.H.reset());--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},X,X,X,X,X,X,X,X],Ed=[yd,yd,wd,wd,ud,ud,vd,vd,Bd,Bd,X,
X,X,X,Ad,Ad],Fd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(a){Od[a>>6&3].call(this,a)},function(a){Pd[a>>6&3].call(this,a)},function(a){Qd[a>>6&3].call(this,a)},function(a){Rd[a>>6&3].call(this,a)},X,X],Hd=[function(a){ad(this,
kd(this,a,0));--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Id=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Jd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Kd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],
Od=[function(a){ad(this,ld(this,a,0,1));--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Pd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Qd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Rd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=
-1;--this.b}];function Sd(a){u.call(this,"ROM",a,Sd);this.g=null;this.J=a.addr;this.B=a.size;this.O=a.writable;this.u=a.alias;this.G=a.file;this.R=da(this.G);if(this.G){a=this.G;var b=ia(this.R);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var d=this;wa(a,null,!0,function(a,b,f){re(d,a,b,f)})}}w(Sd);Sd.prototype.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;se(this)};
Sd.prototype.Qa=function(){if(this.Na){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.B,e=this.Na,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],q=qa(n,k,a.vc);0>q&&n.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.O.push({nd:b,w:d,Uc:c,Na:e,sc:f})}delete this.Na}return!0};Sd.prototype.Pa=function(){return!0};
function re(a,b,d,c){if(c)a.sa("Unable to load system ROM (error "+c+": "+b+")");else{Za(a.tc,b,d);var e;if("["==d.charAt(0)||"{"==d.charAt(0))try{var f,g,h=eval("("+d+")");if(f=h.bytes)a.g=f;else if(f=h.words)for(a.g=Array(2*f.length),g=e=0;e<f.length;e++)a.g[g++]=f[e]&255,a.g[g++]=f[e]>>8&255;else if(f=h.data)for(a.g=Array(4*f.length),g=e=0;e<f.length;e++)a.g[g++]=f[e]&255,a.g[g++]=f[e]>>8&255,a.g[g++]=f[e]>>16&255,a.g[g++]=f[e]>>24&255;else a.g=h;a.Na=h.symbols;if(!a.g.length){t("Empty ROM: "+
b);return}if(1==a.g.length){t(a.g[0]);return}}catch(k){a.sa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.g=Array(b.length),e=0;e<b.length;e++)a.g[e]=ba(b[e],16);se(a)}}
function se(a){if(!qb(a))if(!a.G)D(a);else if(a.g&&a.H){a.B||(a.B=a.g.length);if(a.g.length!=a.B)rb(a,"ROM size ("+r(a.g.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Eb(a.H,b,a.B,a.O?1:mc)){var d;for(d=0;d<a.g.length;d++){var c=a.H,e=b+d;c.S[(e&c.H)>>>c.Z].Cb(e&c.g,a.g[d]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.u?b.push(a.u):null!=a.u&&a.u.length&&(b=a.u);for(d=0;d<b.length;d++){for(var f=a,c=b[d],e=f.H,g=f.B,h=[],k=f.J>>>e.Z;0<g&&k<e.S.length;)h.push(e.S[k++]),
g-=e.Da;e=f.H;f=f.B;g=0;for(c>>>=e.Z;0<f&&c<e.S.length;){k=h[g++];if(!k)break;e.S[c++]=k;f-=e.Da}}delete a.g}}D(a)}}Oa(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Sd(c);bb(c,d)}});function te(a){u.call(this,"RAM",a,te);this.u=a.addr;this.B=a.size;this.g=!1}w(te);l=te.prototype;l.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;D(this)};l.Qa=function(a,b){b||this.reset();return!0};l.Pa=function(a){return a?this.save():!0};
l.reset=function(){!this.g&&this.B&&Eb(this.H,this.u,this.B,1)&&(this.g=!0);this.g||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Oa(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new te(c);bb(c,d)}});function ue(a){u.call(this,"Keyboard",a,ue,65536);D(this)}w(ue);ue.prototype.xa=function(){return!1};ue.prototype.$a=function(a,b,d,c){this.B=a;this.b=d;this.I=c;this.ha=null};
Oa(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new ue(c);bb(c,d)}});function ve(a){u.call(this,"Debugger",a,ve);this.za=a.base||16;this.$=this.Ia=this.R=0;this.ca=!1;this.G=-1;this.u=[];this.ha={}}w(ve);var we={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function xe(a,b,d,c){if(d)if(b){0>a.G&&a.u.length&&(a.G=0);if(0>a.G||b!=a.u[a.G])a.u.splice(0,0,b),a.G=0;a.G--}else a.ca?b="end":b=a.u[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var e=null;c=c||";";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==c&&!e||!g)a.push(pa(b.substring(d,f))),d=f+1}}return a}
function ye(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(c){case "*":c=f*e;break;case "/":if(!e)return!1;c=f/e;break;case "%":if(!e)return!1;c=f%e;break;case "+":c=f+e;break;case "-":c=f-e;break;case "<<":c=f<<e;break;case ">>":c=f>>e;break;case ">>>":c=f>>>e;break;case "<":c=f<e?1:0;break;case "<=":c=f<=e?1:0;break;case ">":c=f>e?1:0;break;case ">=":c=f>=e?1:0;break;case "==":c=f==e?1:0;break;case "!=":c=f!=e?1:0;break;case "&":c=f&e;break;
case "^":c=f^e;break;case "|":c=f|e;break;case "&&":c=f&&e?1:0;break;case "||":c=f||e?1:0;break;default:return!1}a.push(c|0)}return!0}
function ze(a,b,d){var c;if(b){b=Ae(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],q=n.length,n=pa(n);if(!n){f=!0;break}n=Be(a,n,null,!1===d);if(void 0===n){f=!0;d=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],p=n.length;k.length&&we[n]<we[k[k.length-1]]&&ye(h,k,1);k.push(n);b=b.substr(q+p)}ye(h,k)&&1==h.length||(f=!0);f?d&&a.i("error parsing '"+g+"' at character "+(g.length-b.length)):(c=h.pop(),d&&Ce(a,null,
c))}return c}function Ae(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=ze(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(;d=b.match(/\$([a-z]+)/i);){c=null;switch(d[1].toLowerCase()){case "ops":c=a.$-a.Ia}if(null==c)break;b=b.replace(d[0],c.toString())}return b}
function Be(a,b,d,c){var e;null!=b?(e=a.ha[b],null==e&&(e=ba(b,a.za)),null!=e||c||a.i("invalid "+(d?d:"value")+": "+b)):c||a.i("missing "+(d||"value"));return e}function Ce(a,b,d){var c,e=!1;if(void 0!==d){e=!0;c=d;var f=0,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=c&255,m=8,n="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)n="?"+n;else for(;0<m--;)n=(k&1?"1":"0")+n,k>>=1;g=n+g;c>>=8}c=r(d,0,!0)+" "+d+". "+ca(d,0,!0)+" "+("0b"+g)}a.i((null!=b?b+": ":"")+c);return e}
function De(a,b){if(b)return Ce(a,b,a.ha[b]);var d=0;for(b in a.ha)Ce(a,b,a.ha[b]),d++;return 0<d}function Y(a,b,d){switch(a.za){case 8:return ca(b,d);case 10:return b.toString();default:return r(b,d)}}
function Ee(a){ve.call(this,a);this.X=Z();this.Db=Z();this.ba=Z();this.O=[];this.g=this.Y=this.J=[];Fe(this);this.Aa=0;Ge(this);this.Va={};He(this,a.messages);this.pb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ie(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ie(b,a)})}w(Ee,ve);
var Je={"?":"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",v:"print version","var":"assign variable"},Ke="NONE 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(" "),
Le={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],35072:[107]},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]}};l=He.prototype;
l.Xa=function(a,b,d,c){this.H=b;this.b=d;this.F=a;(a=Bc(a,"messages"))&&Ke(this,a);this.rc=Oe;Pe(this,function(a){a:{var b=c.H.R,d=a[0],f=a=0,k=b.length;if(d){a=Z(Qe(c,d));if(-1===a){c.i("invalid address: "+d);break a}f=a>>>c.H.Y;k=1}c.i("blockid physical blockaddr used size type");c.i("-------- --------- ---------- ------ ------ ----");for(var d=-1,m=0;k--;){var n=b[f];n.type==d?m++||c.i("..."):(d=n.type,m=Jb[d],n&&c.i(r(n.id,8)+" %"+r(f<<c.H.Y,8)+" %%"+r(n.D,8)+" "+r(n.Ub,4,
!0)+" "+r(n.size,4,!0)+" "+m),d!=nc&&(d=-1),m=0);a+=c.H.Aa;f++}}});A(this)};
l.ua=function(a,b,d){var c=this;switch(b){case "debugInput":return this.va=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Le(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.G<c.C.length-1&&(b=c.C[++c.G])):40==a.keyCode&&(0<c.G?b=c.C[--c.G]:(b="",c.G=-1)),null!=b){var f=b.length;d.value=b;d.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Fa(d,function(){if(c.va){var a=c.va.value;
c.va.value="";Le(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Fa(d,function(a){var b=!1;fb(c,!0)||(eb(c,!0),b=c.wb(a?1:0),eb(c,!1));return b}),!0}return!1};l.Tb=function(){this.va&&this.va.focus()};function Z(a){a=a&&a.D;null==a&&(a=-1);return a}l.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.H,d=d.R[(c&d.H)>>>d.Y].Ob(c&d.g,c),b&&Re(a,b));return d};l.Ha=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Kb(this.H,c),b&&Re(a,b));return d};
l.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.H;f.R[(c&f.H)>>>f.Y].yb(c&f.g,b&255,c);d&&Re(a,d);Ec(this.b,!0)}};l.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.H,e=c&f.g,h=(c&f.H)>>>f.Y;e!=f.g?f.R[h].lc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.F].yb(0,b>>8&255,c+1));d&&Re(a,d);Ec(this.b,!0)}};function Y(a){return{D:a,Ga:!1}}function Se(a){return[a.D,a.Ga]}function Te(a){return{D:a[0],Ga:a[1]}}
function Qe(a,b,d){var c;d=(d?a.W:a.zb).D;if(void 0!==b){c=b=De(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=Ce(a,b,void 0)}null!=d&&(c=Y(d));return c}function Ue(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Fc=Ae(a,b.Ac=d[2]))}function Re(a,b){null!=a.D&&(a.D+=b||1)}
function Ke(a,b){a.I=a;a.ia=a.Gc=536870912;a.za=null;a.Ea=[];b=Ae(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var d in xb){var c;a:if(c=void 0,Array.prototype.indexOf)c=b.indexOf(d,c);else{c=c||0;0>c&&(c+=b.length);0>c&&(c=0);for(var f=b.length;c<f;c++)if(c in b&&b[c]===d)break a;c=-1}0<=c&&(a.ia|=xb[d],a.i(d+" messages enabled"))}}function Pe(a,b){for(var d in xb)if(64==xb[d]){a.Sa[d]=b;break}}
l.message=function(a,b){b&&(a+=" at "+W(this,Y(this.b.f[7]).D));this.ia&1073741824?this.Ea.push(a):this.za&&a==this.za||(this.za=a,this.ia&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.i(a),this.b&&(a=this.b,Zc(a),a.aa=0,Ec(a)))};l.Ib=function(){this.i("Type ? for help with PDP11 Debugger commands");this.xa();if(this.mb){var a=this.mb;this.mb=null;Le(this,a)}};
function Je(a){var b;if(od(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.ra=0;a.i("instruction history buffer allocated")}if(!a.ha||!a.ha.length)for(a.ha=Array(256),b=0;b<a.ha.length;b++)a.ha[b]=[b,0]}else a.T&&a.T.length&&a.i("instruction history buffer freed"),a.ra=0,a.T=[],a.ha=[]}l.lb=function(a){if(!Ve(this))return!1;this.b.lb(a);return!0};
l.wb=function(a,b,d){if(!Ve(this))return!1;this.P=0;a||od(this)&&pd(this,this.b.f[7],0);try{var c=this.b.wb(a);0<c&&(this.P+=c,Xc(this.b,c,!0),Tc(this.b,c),this.$++)}catch(f){"number"!=typeof f&&(this.P=0,hb(this.b,f.stack||f.message))}!1!==d&&Ec(this.b);this.xa(b||!1);return 0<this.P};l.ma=function(a){this.b&&this.b.ma(a)};l.xa=function(a){void 0===a&&(a=!0);this.W=Y(this.b.f[7]);a&&1!=this.ea?We(this):Xe(this)};
function Ve(a){var b;if(b=a.b&&gb(a.b))b=a.b,b.A.fa?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!fb(a.b)?(a=a.b,a.A.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ma=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.$=this.Ja=0;this.za=null;this.P=0;this.W=Y(this.b.f[7]);this.A.ja=!1;Ye(this);a||this.xa()};
l.save=function(){var a=new cd(this);a.set(0,Se(this.W));a.set(1,Se(this.aa));a.set(2,[this.C,this.ba,this.ia]);a.set(3,this.N);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.W=Te(a[b++]),this.aa=Te(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.ba=a[b][1],this.ia|=a[b][2]);a[3]&&(this.N=a[3]);return!0};l.start=function(a,b){this.ea||this.i("running");this.A.ja=!0;this.Jc=a;this.Lc=b};
l.stop=function(a,b){if(this.A.ja){this.A.ja=!1;this.P=b-this.Lc;if(!this.ea){b="stopped";if(this.P){a-=this.Jc;var d=0<a?Math.round(1E3*this.P/a):0;b+=" (";od(this)&&(b+=this.$+" opcodes, ",this.Ja-=this.$,this.$=0);b+=this.P+" cycles, "+a+" ms, "+d+" hz)"}else db(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}this.xa(!0);this.Tb();Ye(this,this.b.f[7])}};function od(a){return 1<a.g.length||!!a.ya}
function pd(a,b,d){var c=a.b;if(0<d&&(a.ya&&!--a.ya||wc(a,b,1,a.g)))return!0;0<=d&&a.ha.length&&(a.$++,null!=Kb(a.H,b)&&(b=a.T[a.ra],b.D=c.f[7],b.Ga=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function Ie(a){var b,d;a.g=["bp"];if(a.X)for(b=1;b<a.X.length;b++){d=a.X[b];var c=a.H;xc(c.R[Z(d)>>>c.Y],!1)}a.X=["br"];if(a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.H,xc(c.R[Z(d)>>>c.Y],!0);a.J=["bw"];a.Eb=0}
l.eb=function(a,b,d){var c=!0;d||Ze(this,a,b,!1,!0);if(a!=this.g){var f=Z(b);if(-1===f)this.i("invalid address: "+W(this,b.D)),c=!1;else{var e=this.H;e.R[f>>>e.Y].eb(f&e.g,a==this.J)}}c&&(a.push(b),d?b.Ga=!0:($e(this,a,a.length-1,"set"),Je(this)));return c};function Ze(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Ga)){e=!0;g.Ga||f||$e(a,b,h,"cleared");b.splice(h,1);b!=a.g&&(c=a.H,xc(c.R[d>>>c.Y],b==a.J));g.Ga||Je(a);break}}return e}
function af(a,b){for(var d=1;d<b.length;d++)$e(a,b,d);return b.length-1}function $e(a,b,d,c){d=b[d];a.i(b[0]+" "+W(a,d.D)+(c?" "+c:d.Ac?' "'+d.Ac+'"':""))}function Ye(a,b){if(void 0!==b)wc(a,b,1,a.g,!0),a.ea=0;else for(b=1;b<a.g.length;b++){var d=a.g[b];if(d.Ga){if(!Ze(a,a.g,d,!0))break;b=0}}}
function wc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Ga)for(var k=Z(g),m=0;m<d;m++)if(b+m==k){var n,e=!0;g.Ga&&(Ze(a,c,g,!0),f=!0);if(n=g.Fc){for(var e=!1,q=0;q<n.length;q++)if(!bf(a,n[q],!0)){if(n[q].indexOf("if")){e=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){e=!0;break}}a.b.A.ja||(e=!0)}if(e){f||$e(a,c,h,"hit");break}}}a.Eb--;return e}
function cf(a,b,d,c){var f=Y(b.D),e=a.Ha(b,2),h,g;for(g in a.rc)if(h=a.rc[g][e&g])break;h||(h=[0]);g="";for(var k=Ne[h[0]],m=h.length-1,n=1;n<=m;n++){var q=h[n];if(void 0!==q){var p;p=a;var E=q,q=b,z="",F=E&61440;if(4096==F)q=q.D+((e&255)<<24>>23)&65535,z=W(p,q);else if(8192==F)q=q.D-((e&63)<<1)&65535,z=W(p,q);else if(12288==F)z=W(p,e&7,2);else if(24576==F)z=W(p,e&63);else if(F=e&E,E&4032&&(F>>=6,E>>=6),E&63)switch(E=F&7,F&56){case 0:z=df(E);break;case 8:z="@"+df(E);break;case 16:7>E?z="("+df(E)+
")+":(F=p.Ha(q,2),z="#"+W(p,F));break;case 24:7>E?z="@("+df(E)+")+":(F=p.Ha(q,2),z="@#"+W(p,F));break;case 32:z="-("+df(E)+")";break;case 40:z="@-("+df(E)+")";break;case 48:F=p.Ha(q,2);z=W(p,F)+"("+df(E)+")";7==E&&(z=[z,W(p,F+q.D&65535)]);break;case 56:F=p.Ha(q,2),z="@"+W(p,F)+"("+df(E)+")",7==E&&(z=[z,W(p,F+q.D&65535)])}p=z;if(!p||!p.length){g="INVALID";break}"string"!=typeof p&&(d||(d=p[1]),p=p[0]);0<g.length&&(g+=",");g+=p||"???"}}e="";h=W(a,f.D)+":";if(-1!==f.D&&-1!==b.D){do if(e+=" "+W(a,a.Ha(f,
2)),null==f.D)break;while(f.D!=b.D)}h+=oa(e,24);h+=oa(k,5);g&&(h+=" "+g);d&&(h=oa(h,60)+";"+d,h=a.b.A.ob?h+("cycles="+Uc(a.b).toString()+" cs="+r(a.b.Lb)):h+(null!=c?"="+c.toString():""));return h}function ef(a,b){switch(b){case "N":a=a.b.j&32768?8:0;break;case "Z":a=a.b.w&65535?0:4;break;case "V":a=a.b.u&32768?2:0;break;case "C":a=a.b.B&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function df(a){return 6>a?"R"+a:6==a?"SP":"PC"}
function ff(a,b){var d="",c=a.b;8>b?(d=df(b),d+="="+W(a,c.f[b])):13>b?d="A"+(b-8)+"="+W(a,c.Za[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+W(a,c.sa[b-16]):20==b&&(d="PS="+W(a,$b(c)));d&&(d+=" ");return d}function gf(a){var b,d="";for(b=0;6>b;b++)d+=ff(a,b);d=d+"\n"+(ff(a,6)+ff(a,7)+ff(a,20));return d+=ef(a,"T")+ef(a,"N")+ef(a,"Z")+ef(a,"V")+ef(a,"C")}l.qc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function hf(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.D>>>0,g=e.Pc;if(f>=h&&f<h+g){f=qa(e.nc,[f-h],a.qc);0<=f?jf(a,b,f,c):d&&(f=~f,jf(a,b,f-1,c),jf(a,b,f,c));break}}return c}function jf(a,b,d,c){var f={},e=a.N[b].nc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
function kf(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return Ge(a)||a.i("no variables"),!0;if(!d[2])return Ge(a,d[1]);if(!d[3])return delete a.ga[d[1]],!0;b=Ce(a,d[3]);return void 0!==b?(a.ga[d[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function lf(a,b,d){var c=null;if(b=Qe(a,b,!0)){var f=hf(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.D-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+W(a,f[1])+")"+h,d&&a.i(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.D)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+W(a,f[5])+")"+h,d&&a.i(e),c||(c=e))}else d&&a.i("no symbols")}return c}
function We(a,b){var d;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var c=a.b;null==d&&(d=!0);if(b&&1<b.length){var f=b[1],e=f.indexOf("=");if(0<e)b=f.substr(e+1),f=f.substr(0,e);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}var e=!1,h=Ce(a,b);if(void 0!==h)switch(e=!0,f.toUpperCase()){case "PC":c.f[7]=h;a.W=Y(c.f[7]);break;case "NF":c.j=h?32768:0;break;case "ZF":c.w=h?0:1;break;case "VF":c.u=h?32768:
0;break;case "CF":c.B=h?65536:0;break;default:a.i("unknown register: "+f);return}if(!e){a.i("invalid value: "+b);return}Ec(c);a.i("updated registers:")}a.i(gf(a));d&&(a.W=Y(c.f[7]),Xe(a,W(a,a.W.D)))}}function mf(a,b){b=pa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.i(d[2]):Ce(a,b,!0)}function nf(a,b,d){var c="t"!=b;d=Ee(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return eb(a,!0)&&a.wb(f,c,!1)},function(){Ec(a.b);eb(a,!1)})}
function Xe(a,b,d,c){if(b=Qe(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=Qe(a,d,!0);if(!c||c.D<b.D)return;f=c.D-b.D;if(256<f){a.i("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=fb(a,!1)||a.ea?a.P:null;var h=null!=e?"cycles":null,g=hf(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.i(m)}g[3]&&(h=g[3],e=null);e=cf(a,b,h,e);a.i(e);a.W=b;f-=b.D-k;d++}}}
function bf(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.i(">> "+b):(a.ba&&(a.i("ended assemble at "+W(a,a.aa.D)),a.W=a.aa,a.ba=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(gb(a)&&0<b.length){a.ba&&(b="a "+W(a,a.aa.D)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=Qe(a,e[1],!0);
if(n)if(a.aa=n,void 0===e[2])a.i("begin assemble at "+W(a,n.D)),a.ba=!0,Ec(a.b);else{var q;a.i("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.bc(n,q[p],1);a.i(cf(a,a.aa))}}break;case "b":a:{var E=e[0],z=e[1],F=b;if("?"==z)a.i("breakpoint commands:"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");
else{var wa=E.charAt(1);if("l"==wa){var Fc;Fc=0+af(a,a.g);Fc+=af(a,a.X);(Fc+=af(a,a.J))||a.i("no breakpoints")}else if("n"==wa)a.ya=Ee(a,z),a.i("break after "+a.ya+" instruction(s)");else if(void 0===z)a.i("missing breakpoint address");else{var X=Y();if("*"!=z&&(X=Qe(a,z,!0),!X))break a;"c"==wa?null==X.D?(Ie(a),a.i("all breakpoints cleared")):Ze(a,a.g,X)||Ze(a,a.X,X)||Ze(a,a.J,X)||a.i("breakpoint missing: "+W(a,X.D)):null!=X.D&&(Ue(a,X,F),"p"==wa?a.eb(a.g,X):"r"==wa?a.eb(a.X,X):"w"==wa?a.eb(a.J,X):
a.i("unknown breakpoint command: "+wa))}}}break;case "c":a.fb&&(a.fb.value="");break;case "d":a:{var Ja,Ka=e[0],ia=e[1],xa=e[2],Gf=e[3];if("?"==ia){var La="";for(Ja in xb)a.Sa[Ja]&&(La&&(La+=","),La+=Ja);La+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");La.length&&a.i("dump extension commands:\n\t"+
La)}else if("state"==ia){var Wd=of(a.F,!0);"console"==xa?console.log(Wd):(a.fb&&(a.fb.value=""),a.i(Wd))}else if("symbols"==ia)for(var Gc=0;Gc<a.N.length;Gc++){var Hc=a.N[Gc],Ma;for(Ma in Hc.Ka)if("."!=Ma.charAt(0)){var Xd=Hc.Ka[Ma].o;if(void 0!==Xd){var Yd=Hc.Ka[Ma].l;Yd&&(Ma=Yd);a.i(W(a,Xd)+" "+Ma)}}}else{if("d"==Ka){for(Ja in xb)if(e[1]==Ja){var Zd=a.Sa[Ja];Zd?(e.shift(),e.shift(),Zd(e)):a.i("no dump registered for "+ia);break a}ia||(Ka=a.Nc||"db")}else a.Nc=Ka;if("dh"==Ka){var $d=ia,ae=xa,be=
"",ce=0,fa=a.ra,ja=a.T;if(ja.length){var ba=+$d||a.Vb,ib=+ae||10;isNaN(ba)?ba=ib:be="more ";ba>ja.length&&(a.i("note: only "+ja.length+" available"),ba=ja.length);fa-=ba;0>fa&&(null==ja[ja.length-1].D?(ba=fa+ba,fa=0):fa+=ja.length);var Ic=[];"call"==ae&&(ib=1E5,Ic=["CALL"]);for(void 0!==$d&&a.i(ba+" instructions earlier:");0<ib&&fa!=a.ra;){var de=ja[fa++];if(null==de.D)break;var jb=Y(de.D),Hf=ba--,ee=cf(a,jb,"history",Hf);(!Ic.length||0<=ee.indexOf(Ic[0]))&&a.i(ee);jb.ec&&(fa+=jb.ec,ib-=jb.ec,ba-=
jb.ec);fa>=ja.length&&(fa=0);a.Vb=ba;ce++;ib--}}ce||(a.i("no "+be+"history available"),a.Vb=void 0)}else{var Nb=Qe(a,ia);if(Nb){var Ob=0;xa&&("l"==xa.charAt(0)&&(xa=xa.substr(1)||Gf),Ob=Ee(a,xa)>>>0,65536<Ob&&(Ob=65536));for(var kb="",Pb="dd"==Ka?4:"dw"==Ka?2:1,Qb=Pb*Ob||128,If=Qb+15>>4||1;If--&&0<Qb;){var Rb=0,Jc=0,lb,Kc="",fe="",ia=W(a,Nb.D);for(lb=16;0<lb&&0<Qb;lb--){var Sb=a.Hb(Nb,1),Rb=Rb|Sb<<(Jc++<<3);Jc==Pb&&(Kc+=r(Rb,2*Pb),Kc+=1==Pb?9==lb?"-":" ":" ",Rb=Jc=0);fe+=32<=Sb&&128>Sb?String.fromCharCode(Sb):
".";Qb--}kb&&(kb+="\n");kb+=ia+" "+Kc+(lb?"":" "+fe)}kb&&a.i(kb);a.zb=Nb}}}}break;case "e":if("else"==e[0])break;var Tb=1,ge=255,he=a.Hb,ie=a.bc;"ew"==e[0]&&(Tb=2,ge=65535,he=a.Ha,ie=a.jc);var je=Tb<<1,ke=e[1];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 Ub=Qe(a,ke);if(Ub)for(var Vb=2;Vb<e.length;Vb++){var mb=Ce(a,e[Vb]);if(void 0===mb){a.i("unrecognized value: "+e[Vb]);break}mb&~ge&&a.i("warning: "+
r(mb)+" exceeds "+Tb+"-byte value");var Jf=he.call(a,Ub);a.i("changing "+W(a,Ub.D)+" from "+r(Jf,je,!0)+" to "+r(mb,je,!0));ie.call(a,Ub,mb,Tb)}}break;case "g":a:{var le=e[1],Kf=b;if(void 0!==le){var Lc=Qe(a,le,!0);if(!Lc)break a;Ue(a,Lc,Kf);a.eb(a.g,Lc,!0)}a.lb(!0)||d||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Mc;if(a.A.ja)Mc="halting",a.ma();else{if(fb(a,!0))break a;Mc="already halted"}d||a.i(Mc)}break;case "i":if("if"==e[0]){var Nc;var nb=b.substr(2),nb=pa(nb);Ce(a,
nb)?(d||a.i("true: "+nb),Nc=!0):(d||a.i("false: "+nb),Nc=!1);Nc||(c=!1)}break;case "k":var Lf=e[0];if("?"==e[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Oc=0,me=Y(),ob=Y(a.b.f[6]);for(a.i("stack trace for "+W(a,ob.D));10>Oc;){for(var ya=null,Mf=256;65536>ob.D>>>0;){me.D=a.Ha(ob,2);if(null==ob.D||!Mf--)break;for(var Nf=a,Wb=me,ne=null,pb=Wb.D,oe=pb,Pc=1;6>=Pc&&pb;Pc++){if(2<Pc){Wb.D=pb;var Xb=cf(Nf,Wb);if(0<=Xb.indexOf("JSR")){var pe=
Xb.indexOf(" ");if(pb+(Xb.indexOf(" ",pe+1)-pe-1)/2==oe){ne=Xb;break}}}pb--}Wb.D=oe;if(ya=ne)break}if(!ya||null==ya)break;var qe=null;if("ks"==Lf){var re=ya.match(/[0-9A-F]+$/);re&&(qe=lf(a,re[0]))}ya=oa(ya,50)+" ;"+(qe||"stack="+W(a,ob.D));a.i(ya);Oc++}Oc||a.i("no return addresses found")}break;case "l":"ln"==e[0]&&lf(a,e[1],!0);break;case "m":a:{var ka,la=null,G=e[1];"?"==G&&(G=void 0);if(void 0!==G){var ra=0;if("all"==G)ra=1878917119,G=null;else if("on"==G)la=!0,G=null;else if("off"==G)la=!1,
G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(ka in xb)if(G==ka){ra=xb[ka];la=!!(a.ia&ra);break}if(!ra){a.i("unknown message category: "+G);break a}}if(ra)if("on"==e[2])a.ia|=ra,la=!0;else if("off"==e[2]&&(a.ia&=~ra,la=!1,1073741824==ra)){for(var Qc=0;Qc<a.Ea.length;Qc++)a.i(a.Ea[Qc]);a.Ea=[]}}var Of=0,qb="";for(ka in xb)if(!G||G==ka){var Pf=!!(a.ia&xb[ka]);if(null===la||la==Pf)qb&&(qb+=","),++Of%10||(qb+="\n\t"),"key"==ka&&(ka="keys"),qb+=ka}void 0===G&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.i((null!==la?la?"messages on: ":"messages off: ":"message categories:\n\t")+(qb||"none"));Je(a)}break;case "p":if("print"==e[0]){mf(a,b.substr(5));break}var Qf="pr"==e[0]?1:0;if(a.ea)a.i("step in progress");else{var se=Y(a.b.f[7]);a.Hb(se);a.ea?(a.eb(a.g,se,!0),a.lb()||(a.F&&a.F.Tb(),a.ea=0)):nf(a,Qf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}We(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var rb=+e[2];if(8==rb||10==rb||16==rb)a.wa=rb;else{a.i("invalid base: "+rb);
break}}a.i("default base: "+a.wa);break;case "cs":var sb;void 0!==e[3]&&(sb=+e[3]);switch(e[2]){case "int":a.b.qb=sb;break;case "start":a.b.Mb=sb;break;case "stop":a.b.rb=sb;break;default:a.i("unknown cs option");break a}void 0!==sb&&Dc(a.b);a.i("checksums "+(a.b.A.ob?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Wc(a.b,+e[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.b.hb.toFixed(2)+"Mhz")+" ("+a.b.jb+"x)");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;default:e[1]&&a.i("unknown option: "+e[1])}break;case "t":nf(a,e[0],e[1]);break;case "u":Xe(a,e[1],e[2],8);break;case "v":if("var"==e[0]){kf(a,b.substr(3))||(c=!1);break}a.i("PDP11js version 1.30.0 ("+a.b.Sc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.i(window?window.navigator.userAgent:"");break;case "?":if(e[1]){mf(a,b.substr(1));break}var Rc="commands:",Sc;for(Sc in Me)Rc+="\n"+oa(Sc,9)+Me[Sc];od(a)||(Rc+="\nnote: history disabled if no exec breakpoints");a.i(Rc);break;default:a.i("unknown command: "+b),c=!1}}}catch(te){a.i("debugger error: "+(te.stack||te.message)),c=!1}return c}function Le(a,b,d){b=Ae(a,b,d);for(var c in b)if(!bf(a,b[+c]))return!1;return!0}
Pa(function(){for(var a=y(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=x(d),c=new He(c);cb(c,d)}});
function pf(a,b,d){u.call(this,"Computer",a,pf,67108864);this.A.fa=!1;qf(this,b);this.X=Bc(this,"autoPower",a);this.C=0;this.ga=a.busWidth||a.buswidth;this.g=rf;this.T=null;this.N=this.ba=!1;this.url=Bc(this,"url")||"";(Math.random()+.1).toString(36);this.F=sf(this);if(this.b=bb("CPU",this.id)){this.I=bb("Debugger",this.id);this.H=new Ab({id:this.oc+".bus",busWidth:this.ga},this.b,this.I);var c,f=ab(this.id);if((this.G=bb("Panel",this.id))&&this.G.fb)for(b=0;b<f.length;b++)c=f[b],c.oa=this.G.oa,c.i=
this.G.i,c.fb=this.G.fb;this.i("PDP11js v1.30.0\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.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Xa&&c.Xa(this,this.H,this.b,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.g=parseInt(c,10));var e;if(a=Bc(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.N=!0,this.g=rf),this.g&&
(this.W=new cd(this,"1.30.0"),tf(this.W)?b=null:delete this.W);!b&&this.g&&(b=uf(this))&&(this.N=!0);if(b){var h=this;ua(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.oa("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(h.T=b,h.ba=!0);A(h)})}else A(this);this.O.power||(this.X=!0);!d&&this.X&&vf(this,this.Nb)}else t("Unable to find CPU component")}w(pf);var rf=0;
function qf(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.ea=b}function Bc(a,b,d){var c=b.toLowerCase(),c=Ua[b]||Ua[c];void 0===c&&a.ea&&(c=a.ea[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function vf(a,b,d){for(var c=ab(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!gb(e)){gb(e,function(){vf(a,b,d)});return}}b.call(a,d)}
function wf(a,b){var d=new cd(a,"1.30.0","validate");if(tf(d)&&xf(d)){var c=d.get("timestamp"),f=b?b.get("timestamp"):"unknown";c!=f&&(a.oa("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}l=pf.prototype;
l.Nb=function(a){void 0===a&&(a=this.g||(this.T?1:rf));if(!this.C){this.C++;var b=!1,d=!1;this.aa=!1;var c=this.W||new cd(this,"1.30.0");if(-1==a)b=!0;else if(a>rf){if(tf(c,this.T)){this.J=new cd(this,"1.30.0","failsafe");tf(this.J)&&(yf(this,c),a=2,zf(this.J));this.J.set("timestamp",ta());Af(this.J);var f=this.g&&!this.N;if(1==a||va("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=xf(c)){var e=c.get("code"),h=c.get("data");e&&("ok"==e?tf(c,h):("error"==
e&&"no machine state"!=h?(this.oa("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.F=null)):this.i(e+": "+h),zf(c),tf(c)?(d=xf(c),f=!0):d=!1))}f&&wf(this,d?c:null)}else 2==a&&c.clear()}else wf(this);delete this.T;delete this.W}f=ab(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.b&&(d=Bf(this,h,c,b,d));b=[c,a,d];-1!=a?vf(this,this.tc,b):this.tc(b)}};
function Bf(a,b,d,c,f){if(!b.A.fa){b.A.fa=!0;if(b.Na){var e=null;f&&((e=d.get(b.id))||(e=d.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.$&&!a.ba?(d.clear(),a.g=rf,window&&window.location.reload()):a.aa=!0,b.Na(null),f=!1)}if(!c&&b.mc)for(a=b.mc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
l.tc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ha=!0;this.A.fa=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.b&&(Bf(this,this.b,b,d,a),this.b.Db());this.aa&&(yf(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.C=0};
function yf(a,b){if(va("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.F||"";b=b.toString();var c={app:"PDP11js",ver:"1.30.0"};c.url=a.url;c.user=d;c.type="bug";c.data=b;ua("http://www.pcjs.org/api/v1/report",c,!0)}}
function of(a,b,d){var c,f="none";if(a.C)return null;a.C--;var e=new cd(a,"1.30.0"),h=new cd(a,"1.30.0","validate"),g=ta();h.set("timestamp",g);e.set("timestamp",g);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Ma&&(d&&a.b.ma(),c=a.b.Ma(b,d),"object"===typeof c&&e.set(a.b.id,c),d&&(a.b.A.fa=!1,!1===c&&(f=null)));for(var g=ab(a.id),k=0;k<g.length;k++){var m=g[k];m.A.fa&&(m.Ma&&(c=m.Ma(b,d),"object"===typeof c&&
e.set(m.id,c)),d&&(m.A.fa=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.F&&Cf(a,a.F,e.toString()),Af(h)&&Af(e)||(f=null,c=g=!0)):a.g&&(c=!0,g=3==a.g),c&&e.clear(g)):f=e.toString());d&&(a.A.fa=!1,b=a.O.power)&&(b.textContent="Power");a.C=0;return f}
l.reset=function(){this.H&&this.H.reset&&(this.I&&db(this,0)&&this.I.message("Resetting "+this.H.type,void 0),this.H.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.H&&d.reset&&(this.I&&db(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}};l.start=function(a,b){for(var d=ab(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
l.stop=function(a,b){for(var d=ab(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
l.ua=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.C||(c.A.fa?of(c,!1,!0):vf(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.fa&&!c.C)if(c.g&&!c.P){var a=va("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");of(c,a,!0);!a&&c.$?window&&window.location.reload():c.Nb(rf)}else c.reset(),c.b&&c.b.Db()},!0;case "save":if(ga())d.parentNode.removeChild(d);else return this.O[b]=
d,d.onclick=function(){var a=sf(c,!0);if(a){var b=!!(c.g&&!c.P||c.$),d=of(c,b);b?Cf(c,a,d):c.oa("Resume disabled, machine state not saved")}},!0}return!1};
function sf(a,b){var d=a.F;d||((d=Ba("user"),void 0!==d)?!d&&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.","")),d=b)&&((d=Df(a,d))||a.oa("The user ID is invalid.")):b&&a.oa("Browser local storage is not available"));return d}
function Df(a,b){a.F=null;b=ua(ha()+"/api/v1/user?req=verify&user="+b);var d=b[1];if(!b[0]&&d)try{b=eval("("+d+")"),b.code&&"ok"==b.code&&(Ca("user",b.data),a.F=b.data)}catch(c){t(c.message+" ("+d+")")}return a.F}function uf(a){var b=null;a.F&&(b=ha()+"/api/v1/user?req=load&user="+a.F+"&state="+Ef(a,"1.30.0"));return b}
function Cf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ef(a,"1.30.0");c.data=d;b=ua(ha()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.oa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.oa(d),Ca("user",""),a.F=null)}}l.Tb=function(){};
l.xa=function(a){this.b&&this.b.xa(a);this.G&&this.G.xa(a)};Pa(function(){for(var a=y(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=x(d),d=y(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=x(e),h=new pf(h,c,!0);cb(h,e);h.X&&vf(h,h.Nb)}});Ga.show.push(function(){for(var a=y(document,"pdp11","computer"),b=0;b<a.length;b++){var d=x(a[b]);(d=bb("Computer",d.id))&&d.ha&&!d.A.fa&&d.Nb(-1)}});
Ga.exit.push(function(){for(var a=y(document,"pdp11","computer"),b=0;b<a.length;b++){var d=x(a[b]);(d=bb("Computer",d.id))&&d.A.fa&&of(d,!(!d.g||d.P),!0)}});function cd(a,b,d){this.id=a.id;this.key=Ef(a,b,d);this.I=a.I;zf(this,a.Mc)}function Ef(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
cd.prototype={constructor:cd,set:function(a,b){try{this[this.id][a]=b}catch(d){}},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){zf(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,
1);d=0}}};function zf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function Af(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function xf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function tf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.b=!0):!1}var Ff=0;
function Rf(a,b,d,c,f,e){f("Loading "+a+"...");ua(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Sf(g,a,b,d,c,f,e)})}
function Sf(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{d&&($a(d,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{",c+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,e)}}a?f?Tf(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Tf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");ua(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],h);Tf(a,b,d)}})}else d(a,null)}
function Uf(a,b,d,c){function f(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=na(a))}function e(a){f("Error: "+a);k&&(--Ff||Ra(!0));k=!1}var h,g,k=!0;Ff++;Za[a]={};try{if(h=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));n.appendChild(q)}d||
(d="/versions/pdp11/1.30.0/components.xsl");m=function(c,g){g?Rf(d,null,null,!1,f,function(c,k){k?($a(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=g.transformNode(k))?(h.outerHTML=k,--Ff||Ra(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(c=new XSLTProcessor,c.importStylesheet(k),(k=c.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--Ff||Ra(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(c)}):e(c)};"<"!=b.charAt(0)?Rf(b,a,c,!0,f,m):Sf(b,null,a,c,!1,f,m)}else e("missing machine element: "+a)}catch(p){e(p.message)}return k}window.embedPDP11=function(a,b,d,c){Ra(!1);return Uf(a,b,d,c)};window.enableEvents=Ra;window.sendEvent=Sa;})();
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]}};l=Ee.prototype;
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.B=a;(a=Nc(a,"messages"))&&He(this,a);this.Lb=Le;Me(this,function(a){a:{var b=c.H.S,d=a[0],e=a=0,k=b.length;if(d){a=c.L(Ne(c,d));if(-1===a){c.i("invalid address: "+d);break a}e=a>>>c.H.Z;k=1}c.i("blockid physical blockaddr used size type");c.i("-------- --------- ---------- ------ ------ ----");for(var d=-1,m=0;k--;){var n=b[e];n.type==d?m++||c.i("..."):(d=n.type,m=Hb[d],n&&c.i(r(n.id,8)+" %"+r(e<<c.H.Z,8)+" %%"+r(n.w,8)+" "+r(n.Zb,
4,!0)+" "+r(n.size,4,!0)+" "+m),d!=lc&&(d=-1),m=0);a+=c.H.Da;e++}}});D(this)};
l.xa=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ya=this.P[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Ie(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.G<c.u.length-1&&(b=c.u[++c.G])):40==a.keyCode&&(0<c.G?b=c.u[--c.G]:(b="",c.G=-1)),null!=b){var e=b.length;d.value=b;d.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=d,Ea(d,function(){if(c.ya){var a=c.ya.value;
c.ya.value="";Ie(c,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=d,Ea(d,function(a){var b=!1;pb(c,!0)||(db(c,!0),b=c.Ab(a?1:0),db(c,!1));return b}),!0}return!1};l.Yb=function(){this.ya&&this.ya.focus()};l.L=function(a){a=a&&a.w;null==a&&(a=-1);return a};l.Nb=function(a,b){var d=255,c=this.L(a,!1,1);-1!==c&&(d=this.H,d=d.S[(c&d.H)>>>d.Z].Tb(c&d.g,c),b&&Oe(a,b));return d};l.La=function(a,b){var d=65535,c=this.L(a,!1,2);-1!==c&&(d=Ib(this.H,c),b&&Oe(a,b));return d};
l.fc=function(a,b,d){var c=this.L(a,!0,1);if(-1!==c){var e=this.H;e.S[(c&e.H)>>>e.Z].Cb(c&e.g,b&255,c);d&&Oe(a,d);N(this.b,!0)}};l.oc=function(a,b,d){var c=this.L(a,!0,2);if(-1!==c){var e=this.H,f=c&e.g,g=(c&e.H)>>>e.Z;f!=e.g?e.S[g].qc(f,b&65535,c):(e.S[g++].Cb(f,b&255,c),e.S[g&e.B].Cb(0,b>>8&255,c+1));d&&Oe(a,d);N(this.b,!0)}};function Z(a){return{w:a,Ka:!1}}function Pe(a){return[a.w,a.Ka]}function Qe(a){return{w:a[0],Ka:a[1]}}
function Ne(a,b,d){var c;d=(d?a.X:a.Db).w;if(void 0!==b){c=b=Ae(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.O.length;d++){var f=a.O[d].Na[c];if(void 0!==f){c=f.o;void 0!==c&&(e=Z(c));break}}if(c=e)return c;d=ze(a,b,void 0)}null!=d&&(c=Z(d));return c}function Re(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Jc=xe(a,b.Ec=d[2]))}function Oe(a,b){null!=a.w&&(a.w+=b||1)}
function He(a,b){a.I=a;a.ja=a.Kc=536870912;a.Ca=null;a.Ha=[];b=xe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var d in H){var c;a:if(c=void 0,Array.prototype.indexOf)c=b.indexOf(d,c);else{c=c||0;0>c&&(c+=b.length);0>c&&(c=0);for(var e=b.length;c<e;c++)if(c in b&&b[c]===d)break a;c=-1}0<=c&&(a.ja|=H[d],a.i(d+" messages enabled"))}}function Me(a,b){for(var d in H)if(64==H[d]){a.Va[d]=b;break}}
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.f[7]).w));this.ja&1073741824?this.Ha.push(a):this.Ca&&a==this.Ca||(this.Ca=a,this.ja&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.i(a),this.b&&(a=this.b,Wc(a),a.ca=0,N(a)))};l.Ob=function(){this.i("Type ? for help with PDP11 Debugger commands");this.Ba();if(this.pb){var a=this.pb;this.pb=null;Ie(this,a)}};
function Ge(a){var b;if(md(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b<a.W.length;b++)a.W[b]=Z();a.qa=0;a.i("instruction history buffer allocated")}if(!a.ia||!a.ia.length)for(a.ia=Array(256),b=0;b<a.ia.length;b++)a.ia[b]=[b,0]}else a.W&&a.W.length&&a.i("instruction history buffer freed"),a.qa=0,a.W=[],a.ia=[]}l.ob=function(a){if(!Se(this))return!1;this.b.ob(a);return!0};
l.Ab=function(a,b,d){if(!Se(this))return!1;this.R=0;a||md(this)&&nd(this,this.b.f[7],0);try{var c=this.b.Ab(a);0<c&&(this.R+=c,Uc(this.b,c,!0),Qc(this.b,c),this.$++)}catch(e){"number"!=typeof e&&(this.R=0,rb(this.b,e.stack||e.message))}!1!==d&&N(this.b);this.Ba(b||!1);return 0<this.R};l.pa=function(a){this.b&&this.b.pa(a)};l.Ba=function(a){void 0===a&&(a=!0);this.X=Z(this.b.f[7]);a&&1!=this.da?Te(this):Ue(this)};
function Se(a){var b;if(b=a.b&&qb(a.b))b=a.b,b.j.ga?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!pb(a.b)?(a=a.b,a.j.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Pa=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ge(this);this.$=this.Ia=0;this.Ca=null;this.R=0;this.X=Z(this.b.f[7]);this.j.la=!1;Ve(this);a||this.Ba()};
l.save=function(){var a=new O(this);a.set(0,Pe(this.X));a.set(1,Pe(this.ba));a.set(2,[this.u,this.ca,this.ja]);a.set(3,this.O);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.X=Qe(a[b++]),this.ba=Qe(a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.ca=a[b][1],this.ja|=a[b][2]);a[3]&&(this.O=a[3]);return!0};l.start=function(a,b){this.da||this.i("running");this.j.la=!0;this.kc=a;this.Oc=b};
l.stop=function(a,b){if(this.j.la){this.j.la=!1;this.R=b-this.Oc;if(!this.da){b="stopped";if(this.R){a-=this.kc;var d=0<a?Math.round(1E3*this.R/a):0;b+=" (";md(this)&&(b+=this.$+" opcodes, ",this.Ia-=this.$,this.$=0);b+=this.R+" cycles, "+a+" ms, "+d+" hz)"}else cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}this.Ba(!0);this.Yb();Ve(this,this.b.f[7])}};function md(a){return 1<a.g.length||!!a.Aa}
function nd(a,b,d){var c=a.b;if(0<d&&(a.Aa&&!--a.Aa||uc(a,b,1,a.g)))return!0;0<=d&&a.ia.length&&(a.$++,null!=Ib(a.H,b)&&(b=a.W[a.qa],b.w=c.f[7],b.Ka=!1,++a.qa==a.W.length&&(a.qa=0)));return!1}function Fe(a){var b,d;a.g=["bp"];if(a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.H;d=a.L(d);vc(c.S[d>>>c.Z],!1)}a.Y=["br"];if(a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.H,d=a.L(d),vc(c.S[d>>>c.Z],!0);a.J=["bw"];a.Ib=0}
l.hb=function(a,b,d){var c=!0;d||We(this,a,b,!1,!0);if(a!=this.g){var e=this.L(b);if(-1===e)this.i("invalid address: "+Y(this,b.w)),c=!1;else{var f=this.H;f.S[e>>>f.Z].hb(e&f.g,a==this.J)}}c&&(a.push(b),d?b.Ka=!0:(Xe(this,a,a.length-1,"set"),Ge(this)));return c};function We(a,b,d,c,e){var f=!1;d=a.L(d);for(var g=1;g<b.length;g++){var h=b[g];if(d==a.L(h)&&(!c||h.Ka)){f=!0;h.Ka||e||Xe(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(c=a.H,vc(c.S[d>>>c.Z],b==a.J));h.Ka||Ge(a);break}}return f}
function Ye(a,b){for(var d=1;d<b.length;d++)Xe(a,b,d);return b.length-1}function Xe(a,b,d,c){d=b[d];a.i(b[0]+" "+Y(a,d.w)+(c?" "+c:d.Ec?' "'+d.Ec+'"':""))}function Ve(a,b){if(void 0!==b)uc(a,b,1,a.g,!0),a.da=0;else for(b=1;b<a.g.length;b++){var d=a.g[b];if(d.Ka){if(!We(a,a.g,d,!0))break;b=0}}}
function uc(a,b,d,c,e){var f=!1;if(!a.Ib++)for(var g=1;!f&&g<c.length;g++){var h=c[g];if(!e||h.Ka)for(var k=a.L(h),m=0;m<d;m++)if(b+m==k){var n,f=!0;h.Ka&&(We(a,c,h,!0),e=!0);if(n=h.Jc){for(var f=!1,q=0;q<n.length;q++)if(!Ze(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){f=!0;break}}a.b.j.la||(f=!0)}if(f){e||Xe(a,c,g,"hit");break}}}a.Ib--;return f}
function $e(a,b,d,c){var e=Z(b.w),f=a.La(b,2),g,h;for(h in a.Lb)if(g=a.Lb[h][f&h])break;g||(g=[0]);h="";for(var k=Ke[g[0]],m=g.length-1,n=1;n<=m;n++){var q=g[n];if(void 0!==q){var p;p=a;var z=q,q=b,x="",A=z&61440;if(4096==A)q=q.w+((f&255)<<24>>23)&65535,x=Y(p,q);else if(8192==A)q=q.w-((f&63)<<1)&65535,x=Y(p,q);else if(12288==A)x=Y(p,f&7,2);else if(24576==A)x=Y(p,f&63);else if(A=f&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=af(z);break;case 8:x="@"+af(z);break;case 16:7>z?x="("+af(z)+
")+":(A=p.La(q,2),x="#"+Y(p,A));break;case 24:7>z?x="@("+af(z)+")+":(A=p.La(q,2),x="@#"+Y(p,A));break;case 32:x="-("+af(z)+")";break;case 40:x="@-("+af(z)+")";break;case 48:A=p.La(q,2);x=Y(p,A)+"("+af(z)+")";7==z&&(x=[x,Y(p,A+q.w&65535)]);break;case 56:A=p.La(q,2),x="@"+Y(p,A)+"("+af(z)+")",7==z&&(x=[x,Y(p,A+q.w&65535)])}p=x;if(!p||!p.length){h="INVALID";break}"string"!=typeof p&&(d||(d=p[1]),p=p[0]);0<h.length&&(h+=",");h+=p||"???"}}f="";g=Y(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(f+=" "+Y(a,a.La(e,
2)),null==e.w)break;while(e.w!=b.w)}g+=na(f,24);g+=na(k,5);h&&(g+=" "+h);d&&(g=na(g,60)+";"+d,g=a.b.j.rb?g+("cycles="+Rc(a.b).toString()+" cs="+r(a.b.Qb)):g+(null!=c?"="+c.toString():""));return g}function bf(a,b){switch(b){case "N":a=a.b.A&32768?8:0;break;case "Z":a=a.b.F&65535?0:4;break;case "V":a=a.b.C&32768?2:0;break;case "C":a=a.b.D&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function af(a){return 6>a?"R"+a:6==a?"SP":"PC"}
function cf(a,b){var d="",c=a.b;8>b?(d=af(b),d+="="+Y(a,c.f[b])):13>b?d="A"+(b-8)+"="+Y(a,c.bb[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+Y(a,c.va[b-16]):20==b&&(d="PS="+Y(a,Yb(c)));d&&(d+=" ");return d}function df(a){var b,d="";for(b=0;6>b;b++)d+=cf(a,b);d=d+"\n"+(cf(a,6)+cf(a,7)+cf(a,20));return d+=bf(a,"T")+bf(a,"N")+bf(a,"Z")+bf(a,"V")+bf(a,"C")}l.vc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ef(a,b,d){var c=[],e=a.L(b)>>>0;for(b=0;b<a.O.length;b++){var f=a.O[b],g=f.w>>>0,h=f.Uc;if(e>=g&&e<g+h){e=qa(f.sc,[e-g],a.vc);0<=e?ff(a,b,e,c):d&&(e=~e,ff(a,b,e-1,c),ff(a,b,e,c));break}}return c}function ff(a,b,d,c){var e={},f=a.O[b].sc,g=0,h=null;0<=d&&d<f.length&&(g=f[d][0],h=f[d][1]);h&&(e=a.O[b].Na[h],h="."==h.charAt(0)?null:e.l||h);c.push(h);c.push(g);c.push(e.a);c.push(e.c)}
function gf(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return De(a)||a.i("no variables"),!0;if(!d[2])return De(a,d[1]);if(!d[3])return delete a.ha[d[1]],!0;b=ze(a,d[3]);return void 0!==b?(a.ha[d[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function hf(a,b,d){var c=null;if(b=Ne(a,b,!0)){a.L(b);var e=ef(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.w-e[1])&&(g=" + "+r(f,4,!0)),f=e[0]+" ("+Y(a,e[1])+")"+g,d&&a.i(f),c=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.w)&&(g=" - "+r(f,4,!0)),f=e[4]+" ("+Y(a,e[5])+")"+g,d&&a.i(f),c||(c=f))}else d&&a.i("no symbols")}return c}
function Te(a,b){var d;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var c=a.b;null==d&&(d=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}var f=!1,g=ze(a,b);if(void 0!==g)switch(f=!0,e.toUpperCase()){case "PC":c.f[7]=g;a.X=Z(c.f[7]);break;case "NF":c.A=g?32768:0;break;case "ZF":c.F=g?0:1;break;case "VF":c.C=g?32768:
0;break;case "CF":c.D=g?65536:0;break;default:a.i("unknown register: "+e);return}if(!f){a.i("invalid value: "+b);return}N(c);a.i("updated registers:")}a.i(df(a));d&&(a.X=Z(c.f[7]),Ue(a,Y(a,a.X.w)))}}function jf(a,b){b=pa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.i(d[2]):ze(a,b,!0)}function kf(a,b,d){var c="t"!=b;d=Be(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Da(d,function(){return db(a,!0)&&a.Ab(e,c,!1)},function(){N(a.b);db(a,!1)})}
function Ue(a,b,d,c){if(b=Ne(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Ne(a,d,!0);if(!c||c.w<b.w)return;e=c.w-b.w;if(256<e){a.i("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=pb(a,!1)||a.da?a.R:null;var g=null!=f?"cycles":null,h=ef(a,b),k=b.w;if(h[0]&&c&&(!d&&c||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=$e(a,b,g,f);a.i(f);a.X=b;e-=b.w-k;d++}}}
function Ze(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.i(">> "+b):(a.ca&&(a.i("ended assemble at "+Y(a,a.ba.w)),a.X=a.ba,a.ca=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ca=null;if(qb(a)&&0<b.length){a.ca&&(b="a "+Y(a,a.ba.w)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Ne(a,f[1],!0);
if(n)if(a.ba=n,void 0===f[2])a.i("begin assemble at "+Y(a,n.w)),a.ca=!0,N(a.b);else{var q;a.i("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.fc(n,q[p],1);a.i($e(a,a.ba))}}break;case "b":a:{var z=f[0],x=f[1],A=b;if("?"==x)a.i("breakpoint commands:"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");
else{var sa=z.charAt(1);if("l"==sa){var zc;zc=0+Ye(a,a.g);zc+=Ye(a,a.Y);(zc+=Ye(a,a.J))||a.i("no breakpoints")}else if("n"==sa)a.Aa=Be(a,x),a.i("break after "+a.Aa+" instruction(s)");else if(void 0===x)a.i("missing breakpoint address");else{var R=Z();if("*"!=x&&(R=Ne(a,x,!0),!R))break a;"c"==sa?null==R.w?(Fe(a),a.i("all breakpoints cleared")):We(a,a.g,R)||We(a,a.Y,R)||We(a,a.J,R)||a.i("breakpoint missing: "+Y(a,R.w)):null!=R.w&&(Re(a,R,A),"p"==sa?a.hb(a.g,R):"r"==sa?a.hb(a.Y,R):"w"==sa?a.hb(a.J,R):
a.i("unknown breakpoint command: "+sa))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Fa,Ga=f[0],ea=f[1],ta=f[2],Df=f[3];if("?"==ea){var Ha="";for(Fa in H)a.Va[Fa]&&(Ha&&(Ha+=","),Ha+=Fa);Ha+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Ha.length&&a.i("dump extension commands:\n\t"+
Ha)}else if("state"==ea){var Td=lf(a.B,!0);"console"==ta?console.log(Td):(a.ib&&(a.ib.value=""),a.i(Td))}else if("symbols"==ea)for(var Ac=0;Ac<a.O.length;Ac++){var Bc=a.O[Ac],Ia;for(Ia in Bc.Na)if("."!=Ia.charAt(0)){var Ud=Bc.Na[Ia].o;if(void 0!==Ud){var Vd=Bc.Na[Ia].l;Vd&&(Ia=Vd);a.i(Y(a,Ud)+" "+Ia)}}}else{if("d"==Ga){for(Fa in H)if(f[1]==Fa){var Wd=a.Va[Fa];Wd?(f.shift(),f.shift(),Wd(f)):a.i("no dump registered for "+ea);break a}ea||(Ga=a.Sc||"db")}else a.Sc=Ga;if("dh"==Ga){var Xd=ea,Yd=ta,Zd="",
$d=0,aa=a.qa,fa=a.W;if(fa.length){var W=+Xd||a.Kb,eb=+Yd||10;isNaN(W)?W=eb:Zd="more ";W>fa.length&&(a.i("note: only "+fa.length+" available"),W=fa.length);aa-=W;0>aa&&(null==fa[fa.length-1].w?(W=aa+W,aa=0):aa+=fa.length);var Cc=[];"call"==Yd&&(eb=1E5,Cc=["CALL"]);for(void 0!==Xd&&a.i(W+" instructions earlier:");0<eb&&aa!=a.qa;){var ae=fa[aa++];if(null==ae.w)break;var fb=Z(ae.w),Ef=W--,be=$e(a,fb,"history",Ef);(!Cc.length||0<=be.indexOf(Cc[0]))&&a.i(be);fb.ic&&(aa+=fb.ic,eb-=fb.ic,W-=fb.ic);aa>=fa.length&&
(aa=0);a.Kb=W;$d++;eb--}}$d||(a.i("no "+Zd+"history available"),a.Kb=void 0)}else{var Kb=Ne(a,ea);if(Kb){var Lb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Df),Lb=Be(a,ta)>>>0,65536<Lb&&(Lb=65536));for(var gb="",Mb="dd"==Ga?4:"dw"==Ga?2:1,Nb=Mb*Lb||128,Ff=Nb+15>>4||1;Ff--&&0<Nb;){var Ob=0,Dc=0,hb,Ec="",ce="",ea=Y(a,Kb.w);for(hb=16;0<hb&&0<Nb;hb--){var Pb=a.Nb(Kb,1),Ob=Ob|Pb<<(Dc++<<3);Dc==Mb&&(Ec+=r(Ob,2*Mb),Ec+=1==Mb?9==hb?"-":" ":" ",Ob=Dc=0);ce+=32<=Pb&&128>Pb?String.fromCharCode(Pb):".";Nb--}gb&&
(gb+="\n");gb+=ea+" "+Ec+(hb?"":" "+ce)}gb&&a.i(gb);a.Db=Kb}}}}break;case "e":if("else"==f[0])break;var Qb=1,de=255,ee=a.Nb,fe=a.fc;"ew"==f[0]&&(Qb=2,de=65535,ee=a.La,fe=a.oc);var ge=Qb<<1,he=f[1];if(null==he)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 Rb=Ne(a,he);if(Rb)for(var Sb=2;Sb<f.length;Sb++){var ib=ze(a,f[Sb]);if(void 0===ib){a.i("unrecognized value: "+f[Sb]);break}ib&~de&&a.i("warning: "+r(ib)+" exceeds "+
Qb+"-byte value");var Gf=ee.call(a,Rb);a.i("changing "+Y(a,Rb.w)+" from "+r(Gf,ge,!0)+" to "+r(ib,ge,!0));fe.call(a,Rb,ib,Qb)}}break;case "g":a:{var ie=f[1],Hf=b;if(void 0!==ie){var Fc=Ne(a,ie,!0);if(!Fc)break a;Re(a,Fc,Hf);a.hb(a.g,Fc,!0)}a.ob(!0)||d||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Gc;if(a.j.la)Gc="halting",a.pa();else{if(pb(a,!0))break a;Gc="already halted"}d||a.i(Gc)}break;case "i":if("if"==f[0]){var Hc;var jb=b.substr(2),jb=pa(jb);ze(a,jb)?(d||a.i("true: "+
jb),Hc=!0):(d||a.i("false: "+jb),Hc=!1);Hc||(c=!1)}break;case "k":var If=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ic=0,je=Z(),kb=Z(a.b.f[6]);for(a.i("stack trace for "+Y(a,kb.w));10>Ic;){for(var ua=null,Jf=256;65536>kb.w>>>0;){je.w=a.La(kb,2);if(null==kb.w||!Jf--)break;for(var Kf=a,Tb=je,ke=null,lb=Tb.w,le=lb,Jc=1;6>=Jc&&lb;Jc++){if(2<Jc){Tb.w=lb;var Ub=$e(Kf,Tb);if(0<=Ub.indexOf("JSR")){var me=Ub.indexOf(" ");if(lb+
(Ub.indexOf(" ",me+1)-me-1)/2==le){ke=Ub;break}}}lb--}Tb.w=le;if(ua=ke)break}if(!ua||null==ua)break;var ne=null;if("ks"==If){var oe=ua.match(/[0-9A-F]+$/);oe&&(ne=hf(a,oe[0]))}ua=na(ua,50)+" ;"+(ne||"stack="+Y(a,kb.w));a.i(ua);Ic++}Ic||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&hf(a,f[1],!0);break;case "m":a:{var ga,ha=null,C=f[1];"?"==C&&(C=void 0);if(void 0!==C){var oa=0;if("all"==C)oa=1878917119,C=null;else if("on"==C)ha=!0,C=null;else if("off"==C)ha=!1,C=null;else{"keys"==C&&
(C="key");"kbd"==C&&(C="keyboard");for(ga in H)if(C==ga){oa=H[ga];ha=!!(a.ja&oa);break}if(!oa){a.i("unknown message category: "+C);break a}}if(oa)if("on"==f[2])a.ja|=oa,ha=!0;else if("off"==f[2]&&(a.ja&=~oa,ha=!1,1073741824==oa)){for(var Kc=0;Kc<a.Ha.length;Kc++)a.i(a.Ha[Kc]);a.Ha=[]}}var Lf=0,mb="";for(ga in H)if(!C||C==ga){var Mf=!!(a.ja&H[ga]);if(null===ha||ha==Mf)mb&&(mb+=","),++Lf%10||(mb+="\n\t"),"key"==ga&&(ga="keys"),mb+=ga}void 0===C&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.i((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));Ge(a)}break;case "p":if("print"==f[0]){jf(a,b.substr(5));break}var Nf="pr"==f[0]?1:0;if(a.da)a.i("step in progress");else{var pe=Z(a.b.f[7]);a.Nb(pe);a.da?(a.hb(a.g,pe,!0),a.ob()||(a.B&&a.B.Yb(),a.da=0)):kf(a,Nf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Te(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.za=nb;else{a.i("invalid base: "+nb);
break}}a.i("default base: "+a.za);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.b.ub=ob;break;case "start":a.b.Rb=ob;break;case "stop":a.b.vb=ob;break;default:a.i("unknown cs option");break a}void 0!==ob&&Pc(a.b);a.i("checksums "+(a.b.j.rb?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Tc(a.b,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.mb+"x)");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;default:f[1]&&a.i("unknown option: "+f[1])}break;case "t":kf(a,f[0],f[1]);break;case "u":Ue(a,f[1],f[2],8);break;case "v":if("var"==f[0]){gf(a,b.substr(3))||(c=!1);break}a.i("PDP11js version 1.30.0 ("+a.b.Xc+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+
")");a.i(window?window.navigator.userAgent:"");break;case "?":if(f[1]){jf(a,b.substr(1));break}var Lc="commands:",Mc;for(Mc in Je)Lc+="\n"+na(Mc,9)+Je[Mc];md(a)||(Lc+="\nnote: history disabled if no exec breakpoints");a.i(Lc);break;default:a.i("unknown command: "+b),c=!1}}}catch(qe){a.i("debugger error: "+(qe.stack||qe.message)),c=!1}return c}function Ie(a,b,d){b=xe(a,b,d);for(var c in b)if(!Ze(a,b[+c]))return!1;return!0}
Oa(function(){for(var a=B(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Ee(c);bb(c,d)}});
function mf(a,b,d){u.call(this,"Computer",a,mf,67108864);this.j.ga=!1;nf(this,b);this.Y=Nc(this,"autoPower",a);this.u=0;this.ha=a.busWidth||a.buswidth;this.g=of;this.W=null;this.O=this.ca=!1;this.url=Nc(this,"url")||"";(Math.random()+.1).toString(36);this.B=pf(this);if(this.b=ab("CPU",this.id)){this.I=ab("Debugger",this.id);this.H=new yb({id:this.tc+".bus",busWidth:this.ha},this.b,this.I);var c,e=$a(this.id);if((this.G=ab("Panel",this.id))&&this.G.ib)for(b=0;b<e.length;b++)c=e[b],c.sa=this.G.sa,c.i=
this.G.i,c.ib=this.G.ib;this.i("PDP11js v1.30.0\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.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)c=e[b],c.$a&&c.$a(this,this.H,this.b,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.R=c:this.g=parseInt(c,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.$=a,f||(this.O=!0,this.g=of),this.g&&
(this.X=new O(this,"1.30.0"),qf(this.X)?b=null:delete this.X);!b&&this.g&&(b=rf(this))&&(this.O=!0);if(b){var g=this;wa(b,null,!0,function(a,b,c){c?(g.R=null,g.O=!1,g.sa("Unable to load machine state from server (error "+c+(b?": "+pa(b):"")+")")):(g.W=b,g.ca=!0);D(g)})}else D(this);this.P.power||(this.Y=!0);!d&&this.Y&&sf(this,this.Sb)}else t("Unable to find CPU component")}w(mf);var of=0;
function nf(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function Nc(a,b,d){var c=b.toLowerCase(),c=Ta[b]||Ta[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function sf(a,b,d){for(var c=$a(a.id),e=0;e<=c.length;e++){var f=e<c.length?c[e]:a;if(!qb(f)){qb(f,function(){sf(a,b,d)});return}}b.call(a,d)}
function tf(a,b){var d=new O(a,"1.30.0","validate");if(qf(d)&&uf(d)){var c=d.get("timestamp"),e=b?b.get("timestamp"):"unknown";c!=e&&(a.sa("Machine state may be out-of-date\n("+c+" vs. "+e+")\nCheck your browser's local storage limits"),b||d.clear())}}l=mf.prototype;
l.Sb=function(a){void 0===a&&(a=this.g||(this.W?1:of));if(!this.u){this.u++;var b=!1,d=!1;this.ba=!1;var c=this.X||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>of){if(qf(c,this.W)){this.J=new O(this,"1.30.0","failsafe");qf(this.J)&&(vf(this,c),a=2,wf(this.J));this.J.set("timestamp",va());xf(this.J);var e=this.g&&!this.O;if(1==a||xa("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=uf(c)){var f=c.get("code"),g=c.get("data");f&&("ok"==f?qf(c,g):("error"==
f&&"no machine state"!=g?(this.sa("Error: "+g),"unable to verify user"==g&&(Ba("user",""),this.B=null)):this.i(f+": "+g),wf(c),qf(c)?(d=uf(c),e=!0):d=!1))}e&&tf(this,d?c:null)}else 2==a&&c.clear()}else tf(this);delete this.W;delete this.X}e=$a(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(d=yf(this,g,c,b,d));b=[c,a,d];-1!=a?sf(this,this.xc,b):this.xc(b)}};
function yf(a,b,d,c,e){if(!b.j.ga){b.j.ga=!0;if(b.Qa){var f=null;e&&((f=d.get(b.id))||(f=d.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Qa(f,c)&&f&&(t("Unable to restore state for "+b.type),a.$&&!a.ca?(d.clear(),a.g=of,window&&window.location.reload()):a.ba=!0,b.Qa(null),e=!1)}if(!c&&b.rc)for(a=b.rc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return e}
l.xc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ia=!0;this.j.ga=!0;var c=this.P.power;c&&(c.textContent="Shutdown");this.b&&(yf(this,this.b,b,d,a),this.b.Hb());this.ba&&(vf(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.u=0};
function vf(a,b){if(xa("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"";b=b.toString();var c={app:"PDP11js",ver:"1.30.0"};c.url=a.url;c.user=d;c.type="bug";c.data=b;wa("http://www.pcjs.org/api/v1/report",c,!0)}}
function lf(a,b,d){var c,e="none";if(a.u)return null;a.u--;var f=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=va();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.0");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Pa&&(d&&a.b.pa(),c=a.b.Pa(b,d),"object"===typeof c&&f.set(a.b.id,c),d&&(a.b.j.ga=!1,!1===c&&(e=null)));for(var h=$a(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ga&&(m.Pa&&(c=m.Pa(b,d),"object"===typeof c&&f.set(m.id,
c)),d&&(m.j.ga=!1,!1===c&&(e=null)))}e&&(d?(h=c=!1,b?(a.B&&zf(a,a.B,f.toString()),xf(g)&&xf(f)||(e=null,c=h=!0)):a.g&&(c=!0,h=3==a.g),c&&f.clear(h)):e=f.toString());d&&(a.j.ga=!1,b=a.P.power)&&(b.textContent="Power");a.u=0;return e}
l.reset=function(){this.H&&this.H.reset&&(this.I&&cb(this,0)&&this.I.message("Resetting "+this.H.type,void 0),this.H.reset());for(var a=$a(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.H&&d.reset&&(this.I&&cb(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}};l.start=function(a,b){for(var d=$a(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
l.stop=function(a,b){for(var d=$a(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.xa=function(a,b,d){var c=this;switch(b){case "power":return this.P[b]=d,d.onclick=function(){c.u||(c.j.ga?lf(c,!1,!0):sf(c,c.Sb))},!0;case "reset":return this.P[b]=d,d.onclick=function(){if(c.j.ga&&!c.u)if(c.g&&!c.R){var a=xa("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lf(c,a,!0);!a&&c.$?window&&window.location.reload():c.Sb(of)}else c.reset(),c.b&&c.b.Hb()},!0;case "save":if(ja())d.parentNode.removeChild(d);else return this.P[b]=
d,d.onclick=function(){var a=pf(c,!0);if(a){var b=!!(c.g&&!c.R||c.$),d=lf(c,b);b?zf(c,a,d):c.sa("Resume disabled, machine state not saved")}},!0}return!1};
function pf(a,b){var d=a.B;d||((d=Aa("user"),void 0!==d)?!d&&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.","")),d=b)&&((d=Af(a,d))||a.sa("The user ID is invalid.")):b&&a.sa("Browser local storage is not available"));return d}
function Af(a,b){a.B=null;b=wa(ka()+"/api/v1/user?req=verify&user="+b);var d=b[1];if(!b[0]&&d)try{b=eval("("+d+")"),b.code&&"ok"==b.code&&(Ba("user",b.data),a.B=b.data)}catch(c){t(c.message+" ("+d+")")}return a.B}function rf(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Bf(a,"1.30.0"));return b}
function zf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Bf(a,"1.30.0");c.data=d;b=wa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.sa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.sa(d),Ba("user",""),a.B=null)}}l.Yb=function(){};
l.Ba=function(a){this.b&&this.b.Ba(a);this.G&&this.G.Ba(a)};Oa(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=y(d),d=B(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],g=y(f),g=new mf(g,c,!0);bb(g,f);g.Y&&sf(g,g.Sb)}});Ja.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.ia&&!d.j.ga&&d.Sb(-1)}});
Ja.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.j.ga&&lf(d,!(!d.g||d.R),!0)}});function O(a,b,d){this.id=a.id;this.key=Bf(a,b,d);this.I=a.I;wf(this,a.Pc)}function Bf(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(d){}},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){wf(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(e){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(e){}b.splice(d,
1);d=0}}};function wf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function xf(a){var b=!0;if(za()){var d=JSON.stringify(a[a.id]);Ba(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function uf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function qf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:za()&&(b=Aa(a.key))?(a[a.id]=b,a.b=!0):!1}var Cf=0;
function Of(a,b,d,c,e,f){e("Loading "+a+"...");wa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Pf(h,a,b,d,c,e,f)})}
function Pf(a,b,d,c,e,f,g){function h(a,f){if(f)g(f,null);else{d&&(Za(d,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{",c+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$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?Qf(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Qf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=c[2];b("Loading "+e+"...");wa(e,null,!0,function(f,g,h){if(h||!g)d(a,"unable to resolve XML reference: "+c[0]+" ("+h+")");else{if(f=c[3])if(h=g.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{d(a,"missing <"+c[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(c[0],g);Qf(a,b,d)}})}else d(a,null)}
function Rf(a,b,d,c){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);k&&(--Cf||Qa(!0));k=!1}var g,h,k=!0;Cf++;Ya[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));n.appendChild(q)}d||
(d="/versions/pdp11/1.30.0/components.xsl");m=function(c,h){h?Of(d,null,null,!1,e,function(c,k){k?(Za(a,d,c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Cf||Qa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(c=new XSLTProcessor,c.importStylesheet(k),(k=c.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Cf||Qa(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(c)}):f(c)};"<"!=b.charAt(0)?Of(b,a,c,!0,e,m):Pf(b,null,a,c,!1,e,m)}else f("missing machine element: "+a)}catch(p){f(p.message)}return k}window.embedPDP11=function(a,b,d,c){Qa(!1);return Rf(a,b,d,c)};window.enableEvents=Qa;window.sendEvent=Ra;})();

View file

@ -4,156 +4,152 @@ f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}ret
function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};function ia(){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 p(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];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&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){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}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function r(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){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}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(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}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Hb=b.comment;this.ac=b;b=this.id.indexOf(".");0>b?this.ub=this.id:(this.Fb=this.id.substr(0,b),this.ub=this.id.substr(b+1));this[a]=c;this.j={ready:!1,Za:!1,yb:!1,M:!1,error:!1};this.mb=null;this.j.error=!1;this.B={};this.I=null;w.push(this)}var wa=void 0,xa={};
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Kb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Lb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.j={ready:!1,bb:!1,Cb:!1,M:!1,error:!1};this.qb=null;this.j.error=!1;this.C={};this.K=null;w.push(this)}var wa=void 0,xa={};
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(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 x(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},w=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ea(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function A(a,b){b=B(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=z(e))&&g.binding&&a.ba(g.type,g.binding,e,g.value),k=h.length}}}}
function Ea(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function A(a,b){b=B(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=z(e))&&g.binding&&a.fa(g.type,g.binding,e,g.value),k=h.length}}}}
function B(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.zb=this.B[b]=c,c.value="",this.Y=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.L=function(a){this.Y(a,this.ub)}),!0;default:return!1}},log:function(){},Y:function(){},status:function(a){this.Y(this.ub+": "+a)},L:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},va:function(){return this.j.M=!0},ua:function(a,b){b&&(this.j.M=!1);return!0}};function Fa(a,b){if(a.j.yb)return a.j.Za&&(a.j.Za=!1),a.j.yb=!1;if(a.j.error)return a.Y(a.toString()+" error"),!1;a.j.Za=b;return a.j.Za}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.mb;a.mb=null;b&&b()}}
function Ga(a,b){b&&(a.j.ready?b():a.mb=b);return a.j.ready}var Ha="undefined"!==typeof ArrayBuffer,Ia=2,D=4,E=6,Ia=0|Ia,Ja=1|Ia,D=0|D,Ka=1|D,E=0|E,F=1|E;function La(a){v.call(this,"Panel",a,La)}x(La);l=La.prototype;l.ba=function(a,b,c,d){return this.v&&this.v.ba(a,b,c,d)||this.c&&this.c.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};l.Ha=function(a,b,c,d){this.v=a;this.w=b;this.c=c;this.I=d};l.va=function(a,b){b||Ma();return!0};l.ua=function(){return!0};l.La=function(){};
function Ma(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}}e=null}e||(a=!0,e=new La(f));A(e,d);a&&C(e)}}u(Ma);
function Na(a,b,c){v.call(this,"Bus",a,Na);this.c=b;this.I=c;this.v=a.busWidth||16;this.w=Math.pow(2,this.v);this.i=this.w-1|0;this.f=(this.v>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.K=this.g>>2;this.h=this.g-1;this.l=this.w/this.g|0;this.N=this.l-1;this.pa=[];this.u=null;this.$a=this.R;a=new G;Oa(a,this.I);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=Pa;this.Wa[1]=Qa;this.Wa[2]=Ra;this.Wa[3]=Sa;this.J=this.w-8192;Ta(this,this.J,
8192,Ua,this);C(this)}x(Na);function Pa(a,b){var c=this.controller.pa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.pa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
function Qa(a,b,c){var d=this.controller.pa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.pa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Ra(a,b){if(a=this.controller.pa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return this.controller.$a(b,-1,0)}
function Sa(a,b,c){if(a=this.controller.pa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}Na.prototype.reset=function(){this.u&&this.u()};Na.prototype.R=function(){return 0};Na.prototype.va=function(a,b){b||this.reset();return!0};
function Ta(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.g,r=a.g-(e-m);r>g&&(r=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Qa)return k.sb+=k.Qa-e,k.Qa=e,!0;if(e>=k.Qa+k.sb){r=k.size-(e-m);r>g&&(r=g);k.sb=e-k.Qa+r;e=m+a.g;g-=r;h++;continue}}return Va(1,e,g)}e=new G(e,r,a.g,d,f);Oa(e,a.I,k);a.b[h++]=e;e=m+a.g;g-=r}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Wa[d]+" at "+n(b,8,!0)),!0):Va(2,b,c)}
function Xa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.b[d];if(f.sa||f.bc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],r=g+1;r<f.length&&f[r]===m;)r++;k[h++]=r-g;k[h++]=m;g=r}k.length<f.length&&(f=k)}c[e]=f}}return c}function Va(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function Ya(a){v.call(this,"Device",a,Ya);this.l={Cb:[],ga:0,U:128,b:127,$b:0};this.b={data:0,wc:0,Ra:20,sc:0};this.f={Bb:0,m:0};this.g={gb:2496,P:0,A:128,hb:0,fb:0,V:0,Qb:0,S:[],Fa:[406,406,406,406],F:[12,12,12,12]};this.h={m:129,Ya:0,H:0,ta:0,qa:0,xa:0,S:[],F:[40,40,40,40],Fa:[1024,1024,512,512],Yb:[157,157,29,29]};this.i={c:[8210,8208,8210,8226],F:[22,22,22,50],Ea:[19,19,19,32],tb:[815,411,815,630],S:[],C:2176,Ua:0,Sa:0,aa:[0,0,0,0,0,0,0,0],$:0,T:[4544,4544,4544,4544,4544,4544,4544,4544],Ta:[0,
0,0,0,0,0,0,0],Ka:0,qc:[0,0,0,0,0,0,0,0],Rb:0,Sb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],rc:[1,2,3,4,5,6,7,8],Tb:[0,0,0,0,0,0,0,0],la:[0,0,0,0,0,0,0,0],rb:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],mc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],wa:0,Db:0}}x(Ya);
var Za=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},fa:function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Db=this.C[b]=c,c.value="",this.$=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.L=function(a){this.$(a,this.yb)}),!0;default:return!1}},log:function(){},$:function(){},status:function(a){this.$(this.yb+": "+a)},L:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},za:function(){return this.j.M=!0},ya:function(a,b){b&&(this.j.M=!1);return!0}};function Fa(a,b){if(a.j.Cb)return a.j.bb&&(a.j.bb=!1),a.j.Cb=!1;if(a.j.error)return a.$(a.toString()+" error"),!1;a.j.bb=b;return a.j.bb}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.qb;a.qb=null;b&&b()}}
function Ga(a,b){b&&(a.j.ready?b():a.qb=b);return a.j.ready}var Ha="undefined"!==typeof ArrayBuffer,D=2,E=4,F=6,D=0|D,Ia=1|D,E=0|E,Ja=1|E,F=0|F,G=1|F;function Ka(a){v.call(this,"Panel",a,Ka)}x(Ka);l=Ka.prototype;l.fa=function(a,b,c,d){return this.B&&this.B.fa(a,b,c,d)||this.a&&this.a.fa(a,b,c,d)?!0:this.parent.fa.call(this,a,b,c,d)};l.La=function(a,b,c,d){this.B=a;this.A=b;this.a=c;this.K=d};l.za=function(a,b){b||La();return!0};l.ya=function(){return!0};l.Pa=function(){};
function La(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}}e=null}e||(a=!0,e=new Ka(f));A(e,d);a&&C(e)}}u(La);
function Ma(a,b,c){v.call(this,"Bus",a,Ma);this.a=b;this.K=c;this.v=a.busWidth||16;this.o=Math.pow(2,this.v);this.i=this.o-1|0;this.f=(this.v>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.B=this.g>>2;this.h=this.g-1;this.l=this.o/this.g|0;this.H=this.l-1;this.ta=[];this.A=null;this.cb=this.O;a=new H;Na(a,this.K);this.c=Array(this.l);for(b=0;b<this.l;b++)this.c[b]=a;this.Za=Array(4);this.Za[0]=Oa;this.Za[1]=Pa;this.Za[2]=Qa;this.Za[3]=Ra;Sa(this,this.o-8192,8192,Ta,this);
Sa(this,57344,8192,Ta,this);C(this)}x(Ma);function Oa(a,b){var c=this.controller,d=c.ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=c.ta[a&-2],d[2]))return d[2](b&-2)>>8;return c.cb(b,-1,1)}
function Pa(a,b,c){var d=this.controller,f=d.ta[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.ta[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.cb(c,b,1)}function Qa(a,b){var c=this.controller;if(a=c.ta[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return c.cb(b,-1,0)}
function Ra(a,b,c){var d=this.controller;if(a=d.ta[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.cb(c,b,0)}Ma.prototype.reset=function(){this.A&&this.A()};Ma.prototype.O=function(){return 0};Ma.prototype.za=function(a,b){b||this.reset();return!0};
function Sa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.c.length;){var k=a.c[h],m=h*a.g,q=a.g-(e-m);q>g&&(q=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Sa)return k.wb+=k.Sa-e,k.Sa=e,!0;if(e>=k.Sa+k.wb){q=k.size-(e-m);q>g&&(q=g);k.wb=e-k.Sa+q;e=m+a.g;g-=q;h++;continue}}return Ua(1,e,g)}e=new H(e,q,a.g,d,f);Na(e,a.K,k);a.c[h++]=e;e=m+a.g;g-=q}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Va[d]+" at "+n(b,8,!0)),!0):Ua(2,b,c)}
function Wa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.c[d];if(f.wa||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],q=g+1;q<f.length&&f[q]===m;)q++;k[h++]=q-g;k[h++]=m;g=q}k.length<f.length&&(f=k)}c[e]=f}}return c}function Ua(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
function Xa(a){v.call(this,"Device",a,Xa);this.l={Gb:[],ia:0,V:128,c:127,ec:0};this.c={data:0,Dc:0,Ta:20,zc:0};this.f={Fb:0,m:0};this.g={ib:2496,S:0,w:128,jb:0,hb:0,X:0,Vb:0,T:[],Ja:[406,406,406,406],G:[12,12,12,12]};this.h={m:129,ab:0,J:0,xa:0,ua:0,Ba:0,T:[],G:[40,40,40,40],Ja:[1024,1024,512,512],cc:[157,157,29,29]};this.i={a:[8210,8208,8210,8226],G:[22,22,22,50],Ia:[19,19,19,32],xb:[815,411,815,630],T:[],D:2176,Xa:0,Va:0,ea:[0,0,0,0,0,0,0,0],da:0,U:[4544,4544,4544,4544,4544,4544,4544,4544],Wa:[0,
0,0,0,0,0,0,0],Oa:0,xc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],yc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],na:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],tc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],Aa:0,Hb:0}}x(Xa);
var Ya=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=Ya.prototype;
l.Ha=function(a,b,c,d){this.w=b;this.c=c;this.I=d;a=$a;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,h=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,m=+f;m<=d;m+=2){var r=m&8191;void 0!==c.pa[r]?q("I/O address already registered: "+n(c.J+r,8,!0)):c.pa[r]=[g,h,k,e,!1]}}f=this.Xb.bind(this);b.u=this.reset.bind(this);b.$a=f;C(this)};l.hc=function(){return ab(this.c)};l.uc=function(a){bb(this.c,a&-1809|ab(this.c)&1808);this.c.D|=128};
function cb(a){var b=a.g,c,d,f,e=b.V>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.jc,drive:e,blocksize:256,mapped:0,maxblock:b.Fa[e]*b.F[e],url:"rk"+e+".dsk"});b.A&=-129;switch(b.A>>1&7){case 0:b.gb=2496;b.P=0;b.A=128;b.V=0;break;case 1:if((b.V>>4&511)>=b.Fa[e]){b.P|=32832;b.A|=49152;break}if((b.V&15)>=b.F[e]){b.P|=32800;b.A|=49152;break}c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.fb;f=65536-b.hb&65535;db(a,b.S[e],c,d,f);return;case 2:if((b.V>>4&511)>=b.Fa[e])b.P|=32832,
b.A|=49152;else if((b.V&15)>=b.F[e])b.P|=32800,b.A|=49152;else{c=(b.V>>4&511)*b.F[e]+(b.V&15);d=(b.A&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.S[e],c,d,f);return}}b.gb=e<<13|b.gb&8176|b.V%9&15;H(a.c,20,160,144,function(){b.A=b.A&65534|128;return!!(b.A&64)})}l.jc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.A=e.A&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.P|=33024;e.A|=49152;break;case 2:e.P|=33792,e.A|=49152}H(this.c,20,160,144,function(){e.A=e.A&65534|128;return!!(e.A&64)})};
function eb(a){var b=a.h,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.kc,drive:e,blocksize:128,mapped:1,maxblock:b.Fa[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.ta&8&&(b.m&=63);b.ta=b.Yb[e]|b.xa&64;break;case 3:1==(b.H&3)&&(b.xa=b.H&4?b.xa+(b.H&65408)&65408|b.H<<2&64:b.xa-(b.H&65408)&65408|b.H<<2&64,b.H=b.xa);break;case 4:b.ta=b.xa;break;case 5:if(b.H>>6>=b.Fa[e]){b.m|=37888;break}if((b.H&63)>=b.F[e]){b.m|=37888;break}c=(b.H>>6)*b.F[e]+(b.H&63);
d=(b.qa&63)<<16|b.Ya;f=65536-b.ta&65535;db(a,b.S[e],c,d,f);return;case 6:if(b.H>>6>=b.Fa[e])b.m|=37888;else if((b.H&63)>=b.F[e])b.m|=37888;else{c=(b.H>>6)*b.F[e]+(b.H&63);d=(b.qa&63)<<16|b.Ya;f=65536-b.ta&65535;a.pb(b.S[e],c,d,f);return}}H(a.c,20,160,112,function(){b.m|=129;return!!(b.m&64)})}
l.kc=function(a,b,c,d,f){var e=this.h;e.Ya=d&65535;e.m=e.m&-49|d>>12&48;e.qa=d>>16&63;e.H=~~(c/e.F[b.ia])<<6|c%e.F[b.ia];e.xa=e.H;e.ta=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}H(this.c,20,160,112,function(){e.m|=129;return!!(e.m&64)})};function fb(a){a=a.i;a.C=2176;a.$=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Ka=a.Ua=a.Sa=a.wa=a.Db=0}
function gb(a,b){var c=a.i,d,f,e;c.C&=-16513;c.$&=-2049;c.T[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.lc,drive:b,blocksize:256,mapped:0,maxblock:c.tb[0]*c.Ea[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.C&63){case 5:c.rb[b]=c.la[b];c.C|=32896;c.T[b]|=32896;c.Ka|=1<<b;break;case 9:fb(a);break;case 19:c.T[b]|=64;break;case 49:if(c.la[b]>=c.tb[0]||c.aa[b]>>8>=c.Ea[0]||(c.aa[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.C|=49152;break}d=(c.la[b]*c.Ea[0]+(c.aa[b]>>8))*c.F[0]+
(c.aa[b]&255);f=(c.wa&63)<<16|c.Sa;e=65536-c.Ua&65535;db(a,c.S[b],d,f,e);return;case 57:if(c.la[b]>=c.tb[0]||c.aa[b]>>8>=c.Ea[0]||(c.aa[b]&255)>=c.F[0])c.Ta[b]|=1024,c.C|=49152;else{d=(c.la[b]*c.Ea[0]+(c.aa[b]>>8))*c.F[0]+(c.aa[b]&255);f=(c.wa&63)<<16|c.Sa;e=65536-c.Ua&65535;a.pb(c.S[b],d,f,e);return}}H(a.c,3,160,172,function(){c.C=c.C&65534|128;c.T[b]|=128;return!!(c.C&64)})}
l.lc=function(a,b,c,d,f){var e=this.i;e.Ua=65536-f&65535;e.Sa=d&65535;e.C=e.C&-769|d>>8&768;e.wa=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ea[0]);e.aa[b.ia]=f%e.Ea[0]<<8|c%e.F[0];e.rb[b.ia]=e.la[b.ia]=d;e.Ka|=1<<b.ia;c>=b.fc-1&&(e.T[b.ia]|=1024);switch(a){case 1:e.$|=512;e.C|=49152;break;case 2:e.$|=2048,e.C|=49152}H(this.c,20,160,172,function(){e.T[b.ia]|=128;e.C=e.C&65534|128;return!!(e.C&64)})};l.dc=function(){this.f.m|=128;this.f.m&64&&H(this.c,0,192,64)};
function hb(a,b,c,d,f,e){var g=~~((e+c.ra-1)/c.ra),h=new XMLHttpRequest;2048>g&&d+2048<c.fc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.ra<<1)+"-"+(((d+g)*c.ra<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,r,P,R;m=h.response;if(h.status&&206!=h.status||!m)c.ob(1,c,d,f,e);else{m=new Uint8Array(m);r=d;for(R=0;R<m.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],P=0;P<c.ra;P++)c.cache[r][P]=R<m.length?
m[R]&255|m[R+1]<<8&65280:0,R+=2;else R+=c.ra<<1;r++}g(c,d,f,e)}}};h.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}l.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){hb(this,this.pb,a,b,c,d);return}for(f=0;f<a.ra&&0<d;f++){if(0>K(this.c,a.ec?ib(this.c,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
function db(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.ra;e++)b.cache[c][e]=0;for(e=0;e<b.ra&&0<f;e++){g=L(a.c,b.ec?ib(a.c,d):d);if(0>g){b.ob(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.ob(0,b,c,d,f)}l.reset=function(){this.b.Ra=this.b.Ra&-120|20;this.l.ga=0;this.l.U=128;this.f.m=0;this.g.A=128;this.h.m=128;fb(this)};
l.Xb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ka&65280:(a&1&&(b<<=8),e.ka=b|255,d=0);break;case 4194298:if(0>b)d=e.qb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.qb=d;e.ja=2}break;case 4194294:if(70!==e.Ga)return J(e,4,222);0>b?d=e.s:d=e.s=0;break;case 4194292:if(70!==e.Ga)return J(e,4,224);d=1;break;case 4194290:if(70!==e.Ga)return J(e,4,226);d=0;break;case 4194288:if(70!==e.Ga)return J(e,4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ga)return J(e,4,232);f=a-4194272>>1;0>b?d=e.Ab[f]:(d=I(this,e.Ab[f],a,b,c),0<=d&&(e.Ab[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Z[3]=b),d=e.Z[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Z[1]=b),d=e.Z[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ja[f]=b),d=
e.Ja[f]),d;case 4194246:return a&1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Z[0]=b),d=e.Z[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ja[f]=b),d=e.Ja[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.s|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;d=I(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var g=this.l;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=
e.ea;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.G=e.G&62337|e.bb<<5|e.nb<<1;0>b?d=e.G:(d=I(this,e.G,a,b,c),0<=d&&(e.G=d&=62337,e.bb=d>>5&3,e.nb=d>>1&15,d&257?(f=2,e.oa&16&&(f=1),e.ab=d&1?Ia|D:D):(e.ab=0,f=4),this.b.Ra=this.b.Ra&-8|f));break;case 4194168:0>b?d=this.b.sc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(g.$b=0),g.U&=-129,H(e,100,128,52,function(){g.U|=128;return!!(g.U&64)}));d=0;break;case 4194164:0>b?d=g.U:(d=I(this,g.U,a,b,c),0<=
d&&(128==(g.U&192)&&d&64&&H(e,8,128,52,function(){g.U|=128;return!!(g.U&64)}),g.U=g.U&128|d&-129));break;case 4194162:d=0;0>b&&(g.ga&=-129,0<g.Cb.length&&(d=g.Cb.shift(),0<g.Cb.length&&setTimeout(function(){g.ga|=128;g.ga&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=g.ga:(d=I(this,g.ga,a,b,c),0<=d&&(g.ga=g.ga&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=I(this,f.m,a,b,c),0<=d&&(d&64&&!f.Bb&&(setInterval(this.dc.bind(this),25),f.Bb=1),f.m=d&-129));break;default:return e.s|=16,J(e,
4,126)}break;case 4194048:f=this.g;switch(a&-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=I(this,f.A,a,b,c);0<=b&&0<=d&&(f.A=d&-36993|f.A&36992,f.A&1&&cb(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;default:return e.s|=
16,J(e,4,128)}break;case 4193728:var h=this.i;f=h.$&7;switch(a&-2){case 4193728:d=I(this,h.C,a,b,c);0<=b&&0<=d&&(h.wa=h.wa&60|d>>8&3,h.C=d&17279|h.C&34944|2048,d&1&&h.C&128?gb(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,h.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=I(this,h.Sa,a,b,c);0<=d&&(h.Sa=d&65534);break;case 4193734:d=I(this,h.aa[f],a,b,c);0<=d&&(h.aa[f]=d&7967);break;case 4193736:d=I(this,h.$,a,b,c);0<=d&&(h.$=d&63|h.$&65472,d&128&&fb(this));break;case 4193738:d=h.T[f];
break;case 4193740:d=h.Ta[f];break;case 4193742:d=I(this,h.Ka,a,b,c);0<=d&&(h.Ka=d&255);break;case 4193744:d=h.qc[f];break;case 4193746:d=I(this,h.Rb,a,b,c);0<=d&&(h.Rb=d);break;case 4193748:d=I(this,h.Sb[f],a,b,c);0<=d&&(h.Sb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.rc[f];break;case 4193754:d=I(this,h.Tb[f],a,b,c);0<=d&&(h.Tb[f]=d);break;case 4193756:d=I(this,h.la[f],a,b,c);0<=d&&(h.la[f]=d&511);break;case 4193758:h.rb[f]=h.la[f];d=h.rb[f];break;case 4193760:d=h.oc[f];break;case 4193762:d=
h.pc[f];break;case 4193764:d=h.mc[f];break;case 4193766:d=h.nc[f];break;case 4193768:d=I(this,h.wa,a,b,c);0<=d&&(h.wa=d&63,h.C=h.C&-769|(d&3)<<8);break;case 4193770:d=I(this,h.Db,a,b,c);0<=d&&(h.Db=d);break;default:return e.s|=16,J(e,4,132)}break;case 4192512:f=this.h;switch(a&-2){case 4192512:d=I(this,f.m,a,b,c);0<=b&&0<=d&&(f.qa=f.qa&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||eb(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.H,a,b,c);0<=d&&(f.H=d);
break;case 4192518:d=I(this,f.ta,a,b,c);0<=d&&(f.ta=d);break;case 4192520:d=I(this,f.qa,a,b,c);0<=d&&(f.qa=d&63,f.m=f.m&-49|(f.qa&3)<<4);break;default:return e.s|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.oa:(d=I(this,e.oa,a,b,c),0<=d&&(70!==e.Ga&&(d&=-49),e.oa=d,e.Ia[0]=d&4?15:7,e.Ia[1]=d&2?15:7,e.Ia[3]=d&1?15:7,e.ab&&(f=2,e.oa&16&&(f=1),this.b.Ra=this.b.Ra&-8|f)));break;default:return e.s|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;d=I(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=
d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=I(this,e.O[1][f],a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ga)return J(e,4,234);f=a>>2&31;d=e.ib[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.ib[f]=a&2?d<<16|e.ib[f]&65535:e.ib[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Za[a>>1&255];else return e.s|=16,J(e,4,138);break;default:return e.s|=
16,J(e,4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var jb={},$a=(jb[65534]=[null,null,Ya.prototype.hc,Ya.prototype.uc],jb);u(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ya(d);A(d,c)}});var kb;if(Ha){var lb=new ArrayBuffer(2);(new DataView(lb)).setUint16(0,256,!0);kb=256===(new Uint16Array(lb))[0]}else kb=!1;var mb=kb;
function G(a,b,c,d,f){this.id=nb+=2;this.c=null;this.Qa=a;this.sb=b;this.size=c||0;this.type=d||ob;this.h=d==pb;this.controller=null;Oa(this);this.sa=this.bc=!1;if(c)if(f)this.controller=f,this.c=null,qb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.B=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),qb(this,mb?rb:sb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;qb(this,tb)}else qb(this)}
var ob=0,pb=2,Ua=4,Wa=["NONE","RAM","ROM","VID","H/W"],nb=0;
G.prototype={constructor:G,parent:null,Bb:function(a){this.Qa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.sa=!0}return!1},w:function(){return 255},v:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,b)<<
8},J:function(a,b,c){this.jb(a++,b&255,c++);this.jb(a,b>>8,c)},X:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},ya:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ca:function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.sa=!0},Pa:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.sa=!0},N:function(a,b){return this.R(a,
b)},da:function(a,b){return this.ma(a,b)},Aa:function(a,b,c){this.h||this.Wb(a,b,c)},Ma:function(a,b,c){this.h||this.Na(a,b,c)},K:function(a){return this.b[a]},W:function(a){return this.b[a]},ca:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.B[a>>1]},za:function(a,b){this.b[a]=b;this.sa=!0},Ba:function(a,b){this.b[a]=b;this.sa=!0},Da:function(a,b){this.g.setUint16(a,b,!0);this.sa=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.B[a>>
1]=b;this.sa=!0}};function Oa(a,b,c){a.I=b;a.i=a.l=0;c&&((a.i=c.i)&&ub(a,vb,!1),(a.l=c.l)&&wb(a,vb,!1))}function wb(a,b,c){c&&a.l||(a.jb=!a.h&&b[1]||a.v,a.vc=!a.h&&b[3]||a.J);if(c||void 0===c)a.Wb=b[1]||a.v,a.Na=b[3]||a.J}function ub(a,b,c){c&&a.i||(a.eb=b[0]||a.w,a.ic=b[2]||a.u);if(c||void 0===c)a.R=b[0]||a.w,a.ma=b[2]||a.u}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}
var xb=[],tb=[G.prototype.X,G.prototype.Ca,G.prototype.ya,G.prototype.Pa],vb=[G.prototype.N,G.prototype.Aa,G.prototype.da,G.prototype.Ma];if(Ha)var sb=[G.prototype.K,G.prototype.za,G.prototype.ca,G.prototype.Da],rb=[G.prototype.W,G.prototype.Ba,G.prototype.na,G.prototype.Oa];
function yb(a,b){v.call(this,"CPU",a,yb);var c=a.multiplier||1;this.wb=a.cycles||b;this.ma=c;this.vb=Math.round(this.wb/1E4)/100;this.ca=this.vb*this.ma;this.j.ha=!1;this.j.Ub=!1;this.j.Xa=a.autoStart;this.j.Nb=!1;this.j.lb=!1;this.Oa=this.da=0;this.Pa=a.csStart;this.za=a.csInterval;this.Aa=a.csStop;this.Ma=[];this.Mb=this.Eb.bind(this);C(this)}x(yb);var zb=["power","reset"];l=yb.prototype;
l.Ha=function(a,b,c,d){this.v=a;this.w=b;this.I=d;for(b=0;b<zb.length;b++)(c=this.B[zb[b]])&&this.v.ba(null,zb[b],c);this.ya=null;a=Ab(a,"autoStart");null!=a&&(this.j.Xa="true"==a?!0:"false"==a?!1:!!a);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.va=function(a,b){if(!b){if(a&&this.restore){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.Y("No debugger detected")}Db(this);return!0};l.ua=function(a){return a?this.save():!0};
l.Xa=function(){return this.j.Xa||void 0===this.B.run?(this.Eb(),!0):!1};l.Pb=function(){return 0};function Cb(a){void 0===a.Pa&&(a.Pa=0);void 0===a.za&&(a.za=-1);void 0===a.Aa&&(a.Aa=-1);a.j.lb=0<=a.Pa&&0<a.za;a.j.lb&&(a.Oa=0,a.da=a.Pa-a.X)}
function Eb(a,b,c,d){if(a.B[b]){void 0===c&&(a.j.error=!0,a.L("Value for "+b+" is invalid"),Fb(a));var f=a.I&&a.I.b||8;if(!a.j.ha||a.j.Nb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.B[b].textContent!=d&&(a.B[b].textContent=d)}}
l.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.j.M)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.M);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.mb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ha?Fb(d):d.Eb())};a=!0;
break;case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){Gb(d,d.ma<<1)},c.textContent=this.ca.toFixed(2)+"Mhz",a=!0}return a};function Hb(a,b,c){a.X+=b;c&&(a.W=a.c=0)}function Ib(a,b){var c=1;b&&1<a.ma&&a.N&&(c=a.N/a.vb);a.Jb=Math.round(1E3/30);a.kb=Math.floor(a.wb/30*c);b||(a.Ba=a.kb);a.xb=0}function Jb(a){return a.X+a.K+a.W-a.c}function Bb(a){a.N=0;a.Kb=0;a.X=a.K=a.W=a.c=0;Cb(a);Gb(a,1)}
function Gb(a,b){if(void 0!==b&&(.8>a.N/a.ca&&(b=1),a.ma=b,b=a.vb*a.ma,a.ca!=b)){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var c=a.B.setSpeed;c&&(c.textContent=b);a.Y("target speed: "+b)}Hb(a,a.K);a.K=0;a.J=ha();a.R=0;Ib(a)}function Kb(a){a.W-=a.c;a.c=0}
l.Eb=function(){if(Fa(this,!0)){if(!this.j.ha){Gb(this);this.v&&this.v.start(this.J,Jb(this));this.j.ha=!0;this.j.Ub=!0;this.ya&&this.ya.start();var a=this.B.run;a&&(a.textContent="Halt");this.v&&this.v.La(!0)}this.xb>=this.wb&&Ib(this,!0);this.Ca=0;this.Na=ha();this.R&&(a=this.Na-this.R,a>this.Jb&&(this.J+=a,this.J>this.Na&&(this.J=this.Na)));try{do{for(var b,c=this.j.lb?1:this.kb,d=this.Ma.length-1;0<=d;d--){var f=this.Ma[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Vb(b)}catch(m){if("number"!=typeof m)throw m;
}for(var e=this.W-this.c,a=e,g=this.Ma.length-1;0<=g;g--){var h=this.Ma[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ca+=e;this.K+=e;Hb(this,0,!0);a=e;if(this.j.lb){var k=!1;this.Oa=this.Oa+this.Pb()|0;this.da-=a;0>=this.da&&(this.da+=this.za,k=!0);0<=this.Aa&&this.Aa<=Jb(this)&&(this.za=this.Aa=-1,Cb(this),Fb(this),k=!0);k&&this.Y(Jb(this)+" cycles: checksum="+n(this.Oa))}this.Ba-=e;if(0>=this.Ba){this.Ba+=this.kb;15<=++this.Kb&&(this.v&&this.v.La(),this.Kb=0);break}}while(this.j.ha)}catch(m){Fb(this);
Db(this);this.v&&this.v.stop(ha(),Jb(this));Fa(this,!1);b=m.stack||m.message;this.j.error=!0;this.L(b);return}b=setTimeout;c=this.Mb;this.R=ha();d=this.Jb;this.Ca&&(d=Math.round(d*this.Ca/this.kb));d-=this.R-this.Na;if(f=this.R-this.J)this.N=Math.round(this.K/(10*f))/100,864E5<=f&&(this.X=0,Gb(this));if(0>d||this.N<this.ca)-1E3>d&&(this.J-=d),d=0;this.xb+=this.Ca;this.R+=d;b(c,d)}else Db(this),this.v&&this.v.stop(ha(),Jb(this))};l.Vb=function(){return 0};
function Fb(a){a.j.Za&&(a.j.yb=!0);Kb(a);Hb(a,a.K);a.K=0;if(a.j.ha){a.j.ha=!1;a.ya&&a.ya.stop();var b=a.B.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Db(a){a.v&&a.v.La(void 0)}
function Lb(a){this.cc=a.resetAddr||0;yb.call(this,a,1E6);this.Gb=0;this.decode=Mb.bind(this);this.h=65536;this.f=32768;this.g=65535;this.b=32768;this.a=[0,0,0,0,0,0,0,this.cc];this.Ja=[0,0,0,0,0,0];this.Z=[0,0,0,0];this.ka=255;this.nb=this.bb=this.ab=this.u=this.oa=this.Va=this.ea=this.G=this.s=this.qb=0;this.Ia=[7,7,7,7];this.O=[[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],[65535,65535,65535,65535,65535,65535,
65535,65535,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]];this.ib=[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];this.Ab=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.i=-1;this.D=0;this.Ga=70;this.na=-1;this.l=[];this.Da=0;this.ja=2;this.j.complete=this.j.Zb=!1}x(Lb,yb);l=Lb.prototype;
l.reset=function(){this.j.ha&&Fb(this);Nb(this);Bb(this);this.j.error=!1;this.parent.reset.call(this)};function Nb(a){a.ka=255;a.s=0;a.l=[];a.qb=0;a.G=a.ea=a.Va=a.oa=a.ab=0;a.Ia[0]=a.Ia[1]=a.Ia[3]=7;a.bb=0}l.Pb=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.Ib,this.X,this.ma]);a.set(2,Xa(this.w));return a.data()};
l.restore=function(a){var b=a[1];this.Ib=b[0];this.X=b[1];Gb(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],f=a[c+1];if(f&&f.length<b.K){for(var e=0,g=Array(b.K),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.ba=function(a,b,c){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":this.B[b]=c;this.Gb++;a=!0;break;default:a=this.parent.ba.call(this,a,b,c)}return a};
l.La=function(a){if(this.Gb&&(a||!this.j.ha||this.j.Nb)){for(a=0;a<this.a.length;a++)Eb(this,"R"+a,this.a[a]);a=ab(this);Eb(this,"PS",a);Eb(this,"NF",a&8?1:0,1);Eb(this,"ZF",a&4?1:0,1);Eb(this,"VF",a&2?1:0,1);Eb(this,"CF",a&1?1:0,1)}if(a=this.B.speed)a.textContent=this.j.ha&&this.N?this.N.toFixed(2)+"Mhz":"Stopped"};
function H(a,b,c,d,f){for(var e=a.l.length;0<e--;)if(a.l[e].tc===d){0<e&&(a.l[e-1].fa+=a.l[e].fa);a.l.splice(e,1);break}if(0<=b){2===a.Da&&(b=0,a.Da=0,setTimeout(a.Mb,0));for(e=a.l.length;0<e--;){if(a.l[e].fa>b){a.l[e].fa-=b;break}b-=a.l[e].fa}a.l.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function ab(a){return a.o=a.o&63728|(a.b&32768?8:0)|(a.g&65535?0:4)|(a.f&32768?2:0)|(a.h&65536?1:0)}
function bb(a,b){a.b=b<<12;a.g=~b&4;a.f=b<<14;a.h=b<<16;if((b^a.o)&2048)for(var c=a.Ja.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ja[c];a.Ja[c]=d}a.u=b>>14&3;c=a.o>>14&3;a.u!=c&&(a.Z[c]=a.a[6],a.a[6]=a.Z[a.u]);a.ja=2;a.o=b}function Ob(a,b){a.D&128||(a.b=a.g=a.h=b,a.f=0)}function N(a,b){a.D&128||(a.b=a.g=b,a.f=0)}function Pb(a,b,c,d){a.D&128||(a.b=a.g=a.h=b,a.f=(c^d)&(d^b))}
function J(a,b,c){var d,f,e=0;0>a.na?a.na=ab(a):a.u||(b=4,e=1);a.G&57344||(a.ea=63222,a.Va=b);a.u=0;0<=(d=O(a,b|65536))&&0<=(f=O(a,b+2&65535|65536))&&(bb(a,f&53247|a.na>>2&12288),e&&(a.s|=4,a.a[6]=4),0<=Qb(a,a.na)&&0<=Qb(a,a.a[7])&&(a.a[7]=d));a.D&=-113;a.na=-1;throw b|c<<8;}function ib(a,b){var c=b>>13&31;31>c?a.oa&32&&(b=a.ib[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Rb(a,b,c){var d,f,e,g=0;if(c&a.ab){d=b>>13&a.Ia[a.u];f=a.O[a.u][d];e=(a.O[a.u][d+16]<<6)+(b&8191)&4194303;a.oa&16?3932160<=e&&4186112>e&&(e=ib(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.s|=32,J(a,4,24)),e&1&&!(c&1)&&(a.s|=64,J(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;c&D&&(g=8192);break;case 4:g=4096;case 5:c&D&&(g=4096);case 6:f|=c&D?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&
(g|=16384));a.O[a.u][d]=f;if(4194170!==e||a.u)a.bb=a.u,a.nb=d;g&&(g&57344&&(0<=a.na&&(g|=128),a.G&57344||(a.G=a.G|g|a.bb<<5|a.nb<<1),J(a,168,28)),a.G&61440||!(4191360>e||4194239<e)||(a.G|=4096,a.G&512&&(a.D|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.s|=64,J(a,4,22));return e}function L(a,b){if(4194304<=b)b=a.a[b-4194304];else if(0<=b){a=a.w;var c=b&a.h,d=(b&a.i)>>>a.f;b=c!=a.h?a.b[d].ic(c,b):a.b[d++].eb(c,b)|a.b[d&a.N].eb(0,b+1)<<8}return b}
function K(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.w;var d=c,f=b&a.h,e=(b&a.i)>>>a.f;f!=a.h?a.b[e].vc(f,d&65535,b):(a.b[e++].jb(f,d&255,b),a.b[e&a.N].jb(0,d>>8&255,b+1));return c}return b}function Q(a,b){4194304<=b?b=a.a[b-4194304]&255:0<=b&&(a=a.w,b=a.b[(b&a.i)>>>a.f].eb(b&a.h,b));return b}function S(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.w,a.b[(b&a.i)>>>a.f].jb(b&a.h,c&255,b),c):b}function O(a,b){return L(a,Rb(a,b,Ia))}
function Sb(a){var b=O(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}function Qb(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.G&57344||(a.ea=a.ea<<8|246);!a.u&&d<=a.ka&&4<d&&(d<=a.ka-32?(a.s|=4,a.a[6]=4,J(a,4,32)):(a.s|=8,a.D|=4));return 0<=(c=Rb(a,d|65536,D))?K(a,c,b):c}
function Tb(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.u&&c&D&&(a.a[6]<=a.ka||65534<=a.a[6])&&(a.a[6]<=a.ka-32||65534<=a.a[6]?(a.s|=4,a.a[6]=4,J(a,4,36)):(a.s|=8,a.D|=64)),7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=O(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
O(a,d)))return d;d|=65536;break;case 6:if(0>(d=O(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=O(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=O(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.G&57344||(a.ea=a.ea<<8|f<<3&248|e);6===e&&!a.u&&c&D&&0>=f&&(a.a[6]<=a.ka||65534<=a.a[6])&&(a.a[6]<=a.ka-32?(a.s|=4,a.a[6]=4,J(a,4,38)):(a.s|=8,a.D|=64));return d}function T(a,b,c){b&56?(b=Tb(a,b,c),a=Rb(a,b,c)):a=4194304+(b&7);return a}
function U(a,b){b&56?(b=T(a,b,Ia),a=L(a,b)):a=a.a[b&7];return a}function V(a,b){b&56?(b=T(a,b,Ja),a=Q(a,b)):a=a.a[b&7]&255;return a}function Ub(a,b,c,d){b&56?(b=T(a,b,E),K(a,b,d.call(a,c,L(a,b)))):(b&=7,a.a[b]=d.call(a,c,a.a[b])&65535)}function Vb(a,b,c,d){b&56?(b=T(a,b,F),S(a,b,d.call(a,c,Q(a,b)))):(b&=7,a.a[b]=a.a[b]&65280|d.call(a,c,a.a[b])&255)}function Wb(a,b,c){b&56?K(a,T(a,b,D),c):a.a[b&7]=c&65535;return c}
function Xb(a,b,c,d){b&56?S(a,T(a,b,Ka),c):(b&=7,a.a[b]=d?d&1?a.a[b]&-256:c<<24>>24&65535:a.a[b]&-256|c&255);return c}function W(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
l.Vb=function(a){this.j.complete=!0;this.j.Zb=!1;this.j.Ub=!1;this.W=this.c=a;this.Ib&256?(Kb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;this.D&112&&(this.D&32?J(this,168,52):this.D&64?J(this,4,54):this.D&16&&J(this,12,56),this.D&=-113);if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.qb&224;if(0<(a=this.l.length))for(;0<a--;){if(0<this.l[a].fa){this.l[a].fa--;this.ja=2;break}if(this.l[a].Lb){if(!this.l[a].Lb()){this.l.splice(a,1);e--;continue}this.l[a].Lb=null}this.l[a].gc>b&&(b=this.l[a].gc,
e=a)}b>(this.o&224)&&(0>e?J(this,160,42):(J(this,this.l[e].tc,44),this.l.splice(e,1)))}this.G&57344||(this.ea=0,this.Va=this.a[7]);this.D=this.o&16;this.i=a=O(this,this.a[7]);0<=a&&(this.a[7]=this.a[7]+2&65535);this.decode(a);if(0>this.i)switch(a&61440){case 4096:0<=(b=U(this,a>>6))&&(a&56?0<=(d=T(this,a,D))&&0<=K(this,d,b)&&(this.b=this.g=b,this.f=0):(this.b=this.g=this.a[a&7]=b,this.f=0));break;case 8192:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(this.b=this.g=this.h=a=b-c,this.f=(b^c)&(b^a));break;
case 12288:0<=(b=U(this,a>>6))&&0<=(c=U(this,a))&&(this.b=this.g=b&c,this.f=0);break;case 16384:0<=(b=U(this,a>>6))&&(a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c&~b,0<=K(this,d,a)&&(this.b=this.g=a,this.f=0)):(this.b=this.g=a=this.a[a&7]&=~b,this.f=0));break;case 20480:0<=(b=U(this,a>>6))&&(a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c|b,0<=K(this,d,a)&&(this.b=this.g=a,this.f=0)):(this.b=this.g=a=this.a[a&7]|=b,this.f=0));break;case 24576:0<=(b=U(this,a>>6))&&(a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=b+c,0<=
K(this,d,a)&&(this.b=this.g=this.h=a,this.f=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.b=this.g=this.h=a,this.f=(b^a)&(c^a)));break;case 36864:0<=(b=V(this,a>>6))&&(a&56?0<=(d=T(this,a,Ka))&&0<=S(this,d,b)&&(this.b=this.g=b<<8,this.f=0):(b&128&&(b|=65280),this.b=this.g=this.a[a&7]=b,this.f=0));break;case 40960:0<=(b=V(this,a>>6))&&0<=(c=V(this,a))&&(a=b-c,this.b=this.g=this.h=a<<8,this.f=((b^c)&(b^a))<<8);break;case 45056:0<=(b=V(this,a>>6))&&0<=(c=V(this,a))&&(this.b=this.g=(b&
c)<<8,this.f=0);break;case 49152:0<=(b=V(this,a>>6))&&0<=(c=Q(this,d=T(this,a,F)))&&(a=c&~b,0<=S(this,d,a)&&(this.b=this.g=a<<8,this.f=0));break;case 53248:0<=(b=V(this,a>>6))&&0<=(c=Q(this,d=T(this,a,F)))&&(a=c|b,0<=S(this,d,a)&&(this.b=this.g=a<<8,this.f=0));break;case 57344:0<=(b=U(this,a>>6))&&(a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c-b,0<=K(this,d,a)&&(this.b=this.g=this.h=a,this.f=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.b=this.g=this.h=a,this.f=(b^c)&(c^a)));break;default:switch(a&
65024){case 2048:0<=(f=Tb(this,a,0))&&(e=a>>6&7,0<=Qb(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=(b=U(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.b=a>>16,this.g=this.b|a,this.h=this.f=0,-32768>a||32767<a)&&(this.h=65536);break;case 29184:0<=(b=U(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.h=this.f=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,
this.a[e|1]=c-a*b&65535,this.g=a>>16|a,this.b=a>>16):(this.f=32768,this.g=a>>15|a,this.b=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=this.a[e|1]=1))):(this.g=this.b=0,this.f=32768,this.h=65536));break;case 29696:0<=(b=U(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.h=this.f=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.h=a<<17-b,a>>=b):b&&(16<b?(this.f=a,a=0):(this.h=a<<=b,(c=a>>15&65535)&&65535!==c&&(this.f=32768))),this.a[e]=a&65535,this.b=this.g=a);break;case 30208:if(0<=(b=U(this,a))){e=
a>>6&7;c=this.a[e]<<16|this.a[e|1];this.h=this.f=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.h=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.h=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.f=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.b=a>>16;this.g=a>>16|a}break;case 30720:a&56?0<=(c=L(this,d=T(this,a,E)))&&(c^=this.a[a>>6&7],0<=K(this,d,c)&&(this.b=this.g=c,this.f=0)):(this.b=this.g=c=this.a[a&7]^=this.a[a>>
6&7],this.f=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.a[7]=W(this.a[7],a);break;case 512:this.g&65535&&(this.a[7]=W(this.a[7],a));break;case 768:this.g&65535||(this.a[7]=W(this.a[7],a));break;case 1024:(this.b&32768)===(this.f&32768)&&(this.a[7]=W(this.a[7],a));break;case 1280:(this.b&32768)!==(this.f&32768)&&(this.a[7]=W(this.a[7],a));break;case 1536:this.g&65535&&(this.b&32768)===(this.f&32768)&&
(this.a[7]=W(this.a[7],a));break;case 1792:this.g&65535&&(this.b&32768)===(this.f&32768)||(this.a[7]=W(this.a[7],a));break;case 32768:this.b&32768||(this.a[7]=W(this.a[7],a));break;case 33280:!(this.h&65536)&&this.g&65535&&(this.a[7]=W(this.a[7],a));break;case 33024:this.b&32768&&(this.a[7]=W(this.a[7],a));break;case 33536:if(this.h&65536||!(this.g&65535))this.a[7]=W(this.a[7],a);break;case 33792:this.f&32768||(this.a[7]=W(this.a[7],a));break;case 34048:this.f&32768&&(this.a[7]=W(this.a[7],a));break;
case 34304:this.h&65536||(this.a[7]=W(this.a[7],a));break;case 34560:this.h&65536&&(this.a[7]=W(this.a[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&65472){case 64:0<=(f=Tb(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c<<8|c>>8,0<=K(this,d,a)&&(this.b=this.g=c&65280,this.f=this.h=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.b=this.g=c&65280,this.f=this.h=0);break;case 2560:a&56?0<=(d=T(this,a,D))&&0<=K(this,
d,0)&&(this.b=this.h=this.f=this.g=0):this.b=this.h=this.f=this.g=this.a[a&7]=0;break;case 2624:0<=(c=L(this,d=T(this,a,E)))&&(a=~c,0<=K(this,d,a)&&(this.b=this.g=a,this.h=65536,this.f=0));break;case 2688:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c+1,0<=K(this,d,a)&&(this.b=this.g=a,this.f=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.b=this.g=a,this.f=a&(a^c));break;case 2752:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c-1,0<=K(this,d,a)&&(this.b=this.g=a,this.f=(a^c)&c)):(e=a&7,c=this.a[e],a=
c-1,this.a[e]=a&65535,this.b=this.g=a,this.f=(a^c)&c);break;case 2816:0<=(c=L(this,d=T(this,a,E)))&&(a=-c,0<=K(this,d,a)&&(this.h=this.b=this.g=a,this.f=a&c));break;case 2880:0<=(c=L(this,d=T(this,a,E)))&&(a=c+(this.h>>16&1),0<=K(this,d,a)&&(this.h=this.b=this.g=a,this.f=a&(a^c)));break;case 2944:0<=(c=L(this,d=T(this,a,E)))&&(a=c-(this.h>>16&1),0<=K(this,d,a)&&(this.h=this.b=this.g=a,this.f=(a^c)&c));break;case 3008:0<=(c=U(this,a))&&(this.b=this.g=c,this.h=this.f=0);break;case 3072:a&56?0<=(c=L(this,
d=T(this,a,E)))&&(a=(this.h&65536|c)>>1,0<=K(this,d,a)&&(this.h=c<<16,this.b=this.g=a,this.f=a^this.h>>1)):(e=a&7,c=this.a[e],a=(this.h&65536|c)>>1,this.a[e]=a&65535,this.h=c<<16,this.b=this.g=a,this.f=a^this.h>>1);break;case 3136:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c<<1|this.h>>16&1,0<=K(this,d,a)&&(this.h=this.b=this.g=a,this.f=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.h>>16&1,this.a[e]=a&65535,this.h=this.b=this.g=a,this.f=a^c);break;case 3200:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c&32768|c>>1,0<=
K(this,d,a)&&(this.h=c<<16,this.b=this.g=a,this.f=this.b^this.h>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.h=c<<16,this.b=this.g=a,this.f=this.b^this.h>>1);break;case 3264:a&56?0<=(c=L(this,d=T(this,a,E)))&&(a=c<<1,0<=K(this,d,a)&&(this.h=this.b=this.g=a,this.f=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.h=this.b=this.g=a,this.f=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=O(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&
56?0<=(f=Tb(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.u=this.o>>12&3,0<=(b=O(this,f))&&(this.u=this.o>>14&3,0<=Qb(this,b)&&(this.b=this.g=b,this.f=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Z[this.o>>12&3],0<=Qb(this,b)&&(this.b=this.g=b,this.f=0));break;case 3456:0<=(c=Sb(this))&&((this.G&57344||(this.ea=22),a&56)?0<=(f=Tb(this,a,0))&&(f&=65535,this.u=this.o>>12&3,0<=(d=Rb(this,f,D))&&(this.u=this.o>>14&3,0<=K(this,d,c)&&(this.b=this.g=c,this.f=0))):(e=a&7,
6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Z[this.o>>12&3]=c,this.b=this.g=c,this.f=0));break;case 3520:0<=(d=T(this,a,D))&&(a=-(this.b>>15&1),0<=K(this,d,a)&&(this.g=a,this.f=0));break;case 35328:a&56?0<=(d=T(this,a,Ka))&&0<=S(this,d,0)&&(this.b=this.h=this.f=this.g=0):(this.a[a&7]&=65280,this.b=this.h=this.f=this.g=0);break;case 35392:0<=(c=Q(this,d=T(this,a,F)))&&(a=~c,0<=S(this,d,a)&&(this.b=this.g=a<<8,this.h=65536,this.f=0));break;case 35456:0<=(c=Q(this,d=T(this,a,F)))&&(a=
c+1,0<=S(this,d,a)&&(this.b=this.g=a<<8,this.f=(a&(a^c))<<8));break;case 35520:0<=(c=Q(this,d=T(this,a,F)))&&(a=c-1,0<=S(this,d,a)&&(this.b=this.g=a<<8,this.f=((a^c)&c)<<8));break;case 35584:0<=(c=Q(this,d=T(this,a,F)))&&(a=-c,0<=S(this,d,a)&&(this.h=this.b=this.g=a<<8,this.f=(a&c)<<8));break;case 35648:0<=(c=Q(this,d=T(this,a,F)))&&(a=c+(this.h>>16&1),0<=S(this,d,a)&&(this.b=this.g=this.h=a<<8,this.f=(a&(a^c))<<8));break;case 35712:0<=(c=Q(this,d=T(this,a,F)))&&(a=c-(this.h>>16&1),0<=S(this,d,a)&&
(this.b=this.g=this.h=a<<8,this.f=((a^c)&c)<<8));break;case 35776:0<=(c=V(this,a))&&(this.b=this.g=c<<8,this.h=this.f=0);break;case 35840:0<=(c=Q(this,d=T(this,a,F)))&&(a=((this.h&65536)>>8|c)>>1,0<=S(this,d,a)&&(this.h=c<<16,this.b=this.g=a<<8,this.f=this.b^this.h>>1));break;case 35904:0<=(c=Q(this,d=T(this,a,F)))&&(a=c<<1|this.h>>16&1,0<=S(this,d,a)&&(this.h=this.b=this.g=a<<8,this.f=(a^c)<<8));break;case 35968:0<=(c=Q(this,d=T(this,a,F)))&&(a=c&128|c>>1,0<=S(this,d,a)&&(this.h=c<<16,this.b=this.g=
a<<8,this.f=this.b^this.h>>1));break;case 36032:0<=(c=Q(this,d=T(this,a,F)))&&(a=c<<1,0<=S(this,d,a)&&(this.h=this.b=this.g=a<<8,this.f=(a^c)<<8));break;case 36160:a&56?0<=(f=Tb(this,a,0))&&(this.u=this.o>>12&3,0<=(b=O(this,f|65536))&&(this.u=this.o>>14&3,0<=Qb(this,b)&&(this.b=this.g=b,this.f=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Z[this.o>>12&3],0<=Qb(this,b)&&(this.b=this.g=b,this.f=0));break;case 36224:0<=(c=Sb(this))&&((this.G&57344||(this.ea=22),a&56)?0<=(f=Tb(this,
a,0))&&(this.u=this.o>>12&3,0<=(d=Rb(this,f|65536,D))&&(this.u=this.o>>14&3,0<=K(this,d,c)&&(this.b=this.g=c,this.f=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Z[this.o>>12&3]=c,this.b=this.g=c,this.f=0));break;default:switch(a&65528){case 128:0<=(b=Sb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.h=0);a&2&&(this.f=0);a&4&&(this.g=1);a&8&&(this.b=0);break;case 176:case 184:a&
1&&(this.h=65536);a&2&&(this.f=32768);a&4&&(this.g=0);a&8&&(this.b=32768);break;default:switch(a){case 0:49152&this.o?(this.s|=128,J(this,4,46)):(this.Da=3,Kb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.l.length))for(;0<a--;)e+=this.l[a].fa,this.l[a].fa=0;0===e&&0===this.Da&&(this.Da=2,Kb(this));break;case 3:J(this,12,6);break;case 4:J(this,16,8);break;case 5:this.o&49152||(Nb(this),this.w.reset());break;case 2:case 6:d=this.a[6];0<=(f=O(this,d|65536))&&(d=d+
2&65535,0<=(b=O(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,bb(this,b),this.D&=-17,2===a&&(this.D|=this.o&16)));break;default:J(this,8,48)}}}}}}}while(0<this.c)}return this.j.complete?this.W-this.c:void 0===this.j.complete?0:-1};u(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Lb(d);A(d,c)}});function Yb(a,b){var c=a+b;this.D&128||(this.b=this.g=this.h=c,this.f=(a^c)&(b^c));return c&65535}
function Zb(a,b){a=~a&b;N(this,a);return a}function $b(a,b){a=~a&b;N(this,a<<8);return a}function ac(a,b){a|=b;N(this,a);return a}function bc(a,b){a|=b;N(this,a<<8);return a}function cc(a,b){var c=b-a;Pb(this,c,a,b);return c&65535}function dc(){this.i=-1;--this.c}function ec(){this.i=-1;--this.c}function X(a){a&1&&(this.h=0);a&2&&(this.f=0);a&4&&(this.g=1);a&8&&(this.b=0);--this.c}function fc(){this.i=-1;--this.c}function gc(){this.i=-1;--this.c}function hc(){this.i=-1;--this.c}
function ic(){--this.c}function Y(a){a&1&&(this.h=65536);a&2&&(this.f=32768);a&4&&(this.g=0);a&8&&(this.b=32768);--this.c}function jc(){this.i=-1;--this.c}function kc(){this.i=-1;--this.c}function Z(){J(this,8,48)}function Mb(a){lc[a>>12].call(this,a)}
var lc=[function(a){mc[a>>8&15].call(this,a)},function(a){N(this,Wb(this,a,U(this,a>>6)));--this.c},function(a){var b=U(this,a>>6);a=U(this,a);Pb(this,b-a,a,b);--this.c},function(a){N(this,U(this,a>>6)&U(this,a));--this.c},function(a){Ub(this,a,U(this,a>>6),Zb);--this.c},function(a){Ub(this,a,U(this,a>>6),ac);--this.c},function(a){Ub(this,a,U(this,a>>6),Yb);--this.c},function(a){nc[a>>8&15].call(this,a)},function(a){oc[a>>8&15].call(this,a)},function(a){var b=V(this,a>>6);N(this,Xb(this,a,b,2)<<8);
--this.c},function(a){var b=V(this,a>>6)<<8;a=V(this,a)<<8;Pb(this,b-a,a,b);--this.c},function(a){N(this,(V(this,a>>6)&V(this,a))<<8);--this.c},function(a){Vb(this,a,V(this,a>>6),$b);--this.c},function(a){Vb(this,a,V(this,a>>6),bc);--this.c},function(a){Ub(this,a,U(this,a>>6),cc);--this.c},Z],mc=[function(a){pc[a>>4&15].call(this,a)},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=
-1;--this.c},function(){this.i=-1;--this.c},gc,gc,function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},function(a){sc[a>>6&3].call(this,a)},function(a){tc[a>>6&3].call(this,a)},Z,Z],pc=[function(a){uc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,Z,Z,function(a){vc[a&15].call(this,a)},function(a){wc[a&15].call(this,a)},Z,Z,Z,Z],vc=[ic,function(){this.h=0;--this.c},function(){this.f=0;--this.c},X,function(){this.g=1;--this.c},X,X,X,function(){this.b=0;--this.c},X,X,X,X,X,X,X],wc=[ic,function(){this.h=
65536;--this.c},function(){this.f=32768;--this.c},Y,function(){this.g=0;--this.c},Y,Y,Y,function(){this.b=32768;--this.c},Y,Y,Y,Y,Y,Y,Y],uc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.o&49152||(Nb(this),this.w.reset());--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},Z,Z,Z,Z,Z,Z,Z,Z],nc=[hc,hc,fc,fc,dc,dc,ec,ec,kc,kc,Z,Z,Z,Z,jc,jc],oc=[function(){this.i=
-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},function(a){zc[a>>6&3].call(this,a)},function(a){Ac[a>>6&3].call(this,a)},Z,Z],qc=[function(a){Ob(this,Wb(this,a,0));--this.c},function(){this.i=
-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],rc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],sc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],tc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],xc=[function(a){Ob(this,Xb(this,a,0,1));
--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],yc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],zc=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}],Ac=[function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c},function(){this.i=-1;--this.c}];
function Bc(a){v.call(this,"ROM",a,Bc);this.b=null;this.l=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.h=a.file;this.v=ba(this.h);if(this.h){a=this.h;var b=ca(this.v);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Cc(c,a,b,e)})}}x(Bc);Bc.prototype.Ha=function(a,b,c,d){this.w=b;this.c=c;this.I=d;Dc(this)};Bc.prototype.va=function(){this.i&&(this.I&&this.I.c(this.id,this.l,this.f,this.i),delete this.i);return!0};
Bc.prototype.ua=function(){return!0};
function Cc(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Fb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.i=h.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.L("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Dc(a)}}
function Dc(a){if(!Ga(a))if(!a.h)C(a);else if(a.b&&a.w){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.j.error=!0;a.L(b)}else{b=a.l;if(Ta(a.w,b,a.f,a.u?1:pb)){var c;for(c=0;c<a.b.length;c++){var d=a.w,f=b+c;d.b[(f&d.i)>>>d.f].Wb(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.w,g=e.f,h=[],k=e.l>>>f.f;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.g;f=e.w;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}C(a)}}u(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Bc(d);A(d,c)}});function Ec(a){v.call(this,"RAM",a,Ec);this.g=a.addr;this.f=a.size;this.b=!1}x(Ec);l=Ec.prototype;l.Ha=function(a,b,c,d){this.w=b;this.c=c;this.I=d;C(this)};l.va=function(a,b){b||this.reset();return!0};l.ua=function(a){return a?this.save():!0};
l.reset=function(){!this.b&&this.f&&Ta(this.w,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ec(d);A(d,c)}});function Fc(a){v.call(this,"Keyboard",a,Fc);C(this)}x(Fc);Fc.prototype.ba=function(){return!1};Fc.prototype.Ha=function(a,b,c,d){this.v=a;this.c=c;this.I=d;this.ya=null};
u(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Fc(d);A(d,c)}});
function Gc(a,b,c){v.call(this,"Computer",a,Gc);this.j.M=!1;Hc(this,b);this.K=Ab(this,"autoPower",a);this.g=0;this.ca=a.busWidth||a.buswidth;this.b=Ic;this.v=null;this.l=this.W=!1;this.url=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.f=Jc(this);if(this.c=Ea("CPU",this.id)){this.I=Ea("Debugger",this.id);this.w=new Na({id:this.Fb+".bus",busWidth:this.ca},this.c,this.I);var d,f=y(this.id);if((this.h=Ea("Panel",this.id))&&this.h.zb)for(b=0;b<f.length;b++)d=f[b],d.L=this.h.L,d.Y=this.h.Y,d.zb=
this.h.zb;this.Y("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.Y("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ha&&d.Ha(this,this.w,this.c,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=Ab(this,"state")||(e=!0,a.state))b=this.N=a,e||(this.l=!0,this.b=Ic),this.b&&(this.J=
new M(this,"1.30.0"),Kc(this.J)?b=null:delete this.J);!b&&this.b&&(b=Lc(this))&&(this.l=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.u=null,g.l=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.W=!0);C(g)})}else C(this);this.B.power||(this.K=!0);!c&&this.K&&Mc(this,this.cb)}else q("Unable to find CPU component")}x(Gc);var Ic=0;
function Hc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.X=b}function Ab(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.X&&(d=a.X[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Mc(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Mc(a,b,c)});return}}b.call(a,c)}
function Nc(a,b){var c=new M(a,"1.30.0","validate");if(Kc(c)&&Oc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Gc.prototype;
l.cb=function(a){void 0===a&&(a=this.b||(this.v?1:Ic));if(!this.g){this.g++;var b=!1,c=!1;this.R=!1;var d=this.J||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>Ic){if(Kc(d,this.v)){this.i=new M(this,"1.30.0","failsafe");Kc(this.i)&&(Pc(this,d),a=2,Qc(this.i));this.i.set("timestamp",ia());Rc(this.i);var f=this.b&&!this.l;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Oc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Kc(d,g):("error"==
e&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(na("user",""),this.f=null)):this.Y(e+": "+g),Qc(d),Kc(d)?(c=Oc(d),f=!0):c=!1))}f&&Nc(this,c?d:null)}else 2==a&&d.clear()}else Nc(this);delete this.v;delete this.J}f=y(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.c&&(c=Sc(this,g,d,b,c));b=[d,a,c];-1!=a?Mc(this,this.Ob,b):this.Ob(b)}};
function Sc(a,b,c,d,f){if(!b.j.M){b.j.M=!0;if(b.va){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.va(e,d)&&e&&(q("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Ic,window&&window.location.reload()):a.R=!0,b.va(null),f=!1)}if(!d&&b.Hb)for(a=b.Hb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.j.M=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.c&&(Sc(this,this.c,b,c,a),this.c.Xa());this.R&&(Pc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
function Pc(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function Tc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=ia();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.c&&a.c.ua&&(c&&Fb(a.c),d=a.c.ua(b,c),"object"===typeof d&&e.set(a.c.id,d),c&&(a.c.j.M=!1,!1===d&&(f=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.j.M&&(m.ua&&(d=m.ua(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.j.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Uc(a,a.f,e.toString()),Rc(g)&&Rc(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.j.M=!1,b=a.B.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.w&&this.w.reset&&this.w.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];l=Xa.prototype;
l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;a=Za;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,h=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,m=+f;m<=d;m+=2){var q=m&8191;void 0!==c.ta[q]?r("I/O address already registered: "+n(m,8,!0)):c.ta[q]=[g,h,k,e,!1]}}f=this.bc.bind(this);b.A=this.reset.bind(this);b.cb=f;C(this)};l.oc=function(){return $a(this.a)};l.Bc=function(a){ab(this.a,a&-1809|$a(this.a)&1808);this.a.F|=128};
function bb(a){var b=a.g,c,d,f,e=b.X>>13&7;"undefined"===typeof b.T[e]&&(b.T[e]={cache:[],postProcess:a.qc,drive:e,blocksize:256,mapped:0,maxblock:b.Ja[e]*b.G[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.ib=2496;b.S=0;b.w=128;b.X=0;break;case 1:if((b.X>>4&511)>=b.Ja[e]){b.S|=32832;b.w|=49152;break}if((b.X&15)>=b.G[e]){b.S|=32800;b.w|=49152;break}c=(b.X>>4&511)*b.G[e]+(b.X&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;cb(a,b.T[e],c,d,f);return;case 2:if((b.X>>4&511)>=b.Ja[e])b.S|=32832,
b.w|=49152;else if((b.X&15)>=b.G[e])b.S|=32800,b.w|=49152;else{c=(b.X>>4&511)*b.G[e]+(b.X&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;a.tb(b.T[e],c,d,f);return}}b.ib=e<<13|b.ib&8176|b.X%9&15;I(a.a,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}l.qc=function(a,b,c,d,f){var e=this.g;e.hb=d&65535;e.w=e.w&-49|d>>12&48;e.jb=65536-f&65535;switch(a){case 1:e.S|=33024;e.w|=49152;break;case 2:e.S|=33792,e.w|=49152}I(this.a,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
function db(a){var b=a.h,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.T[e]&&(b.T[e]={cache:[],postProcess:a.rc,drive:e,blocksize:128,mapped:1,maxblock:b.Ja[e]*b.G[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.xa&8&&(b.m&=63);b.xa=b.cc[e]|b.Ba&64;break;case 3:1==(b.J&3)&&(b.Ba=b.J&4?b.Ba+(b.J&65408)&65408|b.J<<2&64:b.Ba-(b.J&65408)&65408|b.J<<2&64,b.J=b.Ba);break;case 4:b.xa=b.Ba;break;case 5:if(b.J>>6>=b.Ja[e]){b.m|=37888;break}if((b.J&63)>=b.G[e]){b.m|=37888;break}c=(b.J>>6)*b.G[e]+(b.J&63);
d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;cb(a,b.T[e],c,d,f);return;case 6:if(b.J>>6>=b.Ja[e])b.m|=37888;else if((b.J&63)>=b.G[e])b.m|=37888;else{c=(b.J>>6)*b.G[e]+(b.J&63);d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;a.tb(b.T[e],c,d,f);return}}I(a.a,20,160,112,function(){b.m|=129;return!!(b.m&64)})}
l.rc=function(a,b,c,d,f){var e=this.h;e.ab=d&65535;e.m=e.m&-49|d>>12&48;e.ua=d>>16&63;e.J=~~(c/e.G[b.ka])<<6|c%e.G[b.ka];e.Ba=e.J;e.xa=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}I(this.a,20,160,112,function(){e.m|=129;return!!(e.m&64)})};function eb(a){a=a.i;a.D=2176;a.da=0;a.U=[4544,4544,4544,4544,4544,4544,4544,4544];a.Wa=[0,0,0,0,0,0,0,0];a.Oa=a.Xa=a.Va=a.Aa=a.Hb=0}
function fb(a,b){var c=a.i,d,f,e;c.D&=-16513;c.da&=-2049;c.U[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.T[b]&&(c.T[b]={cache:[],postProcess:a.sc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ia[0]*c.G[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.vb[b]=c.na[b];c.D|=32896;c.U[b]|=32896;c.Oa|=1<<b;break;case 9:eb(a);break;case 19:c.U[b]|=64;break;case 49:if(c.na[b]>=c.xb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0]){c.Wa[b]|=1024;c.D|=49152;break}d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+
(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;cb(a,c.T[b],d,f,e);return;case 57:if(c.na[b]>=c.xb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0])c.Wa[b]|=1024,c.D|=49152;else{d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;a.tb(c.T[b],d,f,e);return}}I(a.a,3,160,172,function(){c.D=c.D&65534|128;c.U[b]|=128;return!!(c.D&64)})}
l.sc=function(a,b,c,d,f){var e=this.i;e.Xa=65536-f&65535;e.Va=d&65535;e.D=e.D&-769|d>>8&768;e.Aa=d>>16&63;f=~~(c/e.G[0]);d=~~(f/e.Ia[0]);e.ea[b.ka]=f%e.Ia[0]<<8|c%e.G[0];e.vb[b.ka]=e.na[b.ka]=d;e.Oa|=1<<b.ka;c>=b.mc-1&&(e.U[b.ka]|=1024);switch(a){case 1:e.da|=512;e.D|=49152;break;case 2:e.da|=2048,e.D|=49152}I(this.a,20,160,172,function(){e.U[b.ka]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};l.kc=function(){this.f.m|=128;this.f.m&64&&I(this.a,0,192,64)};
function gb(a,b,c,d,f,e){var g=~~((e+c.va-1)/c.va),h=new XMLHttpRequest;2048>g&&d+2048<c.mc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.va<<1)+"-"+(((d+g)*c.va<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,q,L,N;m=h.response;if(h.status&&206!=h.status||!m)c.sb(1,c,d,f,e);else{m=new Uint8Array(m);q=d;for(N=0;N<m.length;){if("undefined"===typeof c.cache[q])for(c.cache[q]=[],L=0;L<c.va;L++)c.cache[q][L]=N<m.length?
m[N]&255|m[N+1]<<8&65280:0,N+=2;else N+=c.va<<1;q++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){if(c&1){if(!f)return K(a.a,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}l.tb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){gb(this,this.tb,a,b,c,d);return}for(f=0;f<a.va&&0<d;f++){if(0>M(this.a,a.lc?hb(this.a,c):c,a.cache[b][f])){a.sb(2,a,b,c,d);return}c+=2;--d}b++}a.sb(0,a,b,c,d)};
function cb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.va;e++)b.cache[c][e]=0;for(e=0;e<b.va&&0<f;e++){g=a.a.N(b.lc?hb(a.a,d):d);if(0>g){b.sb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.sb(0,b,c,d,f)}l.reset=function(){this.c.Ta=this.c.Ta&-120|20;this.l.ia=0;this.l.V=128;this.f.m=0;this.g.w=128;this.h.m=128;eb(this)};
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ma&65280:(a&1&&(b<<=8),e.ma=b|255,d=0);break;case 4194298:if(0>b)d=e.ub;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.ub=d;e.la=2}break;case 4194294:if(70!==e.Ka)return K(e,4,222);0>b?d=e.s:d=e.s=0;break;case 4194292:if(70!==e.Ka)return K(e,4,224);d=1;break;case 4194290:if(70!==e.Ka)return K(e,4,226);d=0;break;case 4194288:if(70!==e.Ka)return K(e,4,228);d=61183;break;case 4194296:0<=
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ka)return K(e,4,232);f=a-4194272>>1;0>b?d=e.Eb[f]:(d=J(this,e.Eb[f],a,b,c),0<=d&&(e.Eb[f]=d));break;case 4194254:return a&1?e.u>>14&1?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[3]=b),d=e.aa[3]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[1]=b),d=e.aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.u&2048?(0<=b&&(e.b[f]=b),d=e.b[f]):(0<=b&&(e.Na[f]=
b),d=e.Na[f]),d;case 4194246:return a&1?(0<=b&&(e.b[7]=b),d=e.b[7]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[0]=b),d=e.aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.u&2048?(0<=b&&(e.Na[f]=b),d=e.Na[f]):(0<=b&&(e.b[f]=b),d=e.b[f]),d;default:return e.s|=16,K(e,4,124)}break;case 4194176:f=a>>1&31;d=J(this,e.P[3][f],a,b,c);0<=d&&(e.P[3][f]=d,e.P[3][f&15]&=65295);break;case 4194112:var g=this.l;f=this.f;switch(a&-2){case 4194174:d=J(this,e.Ya,a,b,c);0<=d&&(e.Ya=d);break;case 4194172:d=
e.ga;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.I=e.I&62337|e.eb<<5|e.rb<<1;0>b?d=e.I:(d=J(this,e.I,a,b,c),0<=d&&(e.I=d&=62337,e.eb=d>>5&3,e.rb=d>>1&15,d&257?(f=2,e.sa&16&&(f=1),e.Ua=d&1?D|E:E):(e.Ua=0,f=4),this.c.Ta=this.c.Ta&-8|f));break;case 4194168:0>b?d=this.c.zc&65535:(d=J(this,this.c.data,a,b,c),0<=d&&(this.c.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.V&=-129,I(e,100,128,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194164:0>b?d=g.V:(d=J(this,g.V,a,b,c),0<=d&&
(128==(g.V&192)&&d&64&&I(e,8,128,52,function(){g.V|=128;return!!(g.V&64)}),g.V=g.V&128|d&-129));break;case 4194162:d=0;0>b&&(g.ia&=-129,0<g.Gb.length&&(d=g.Gb.shift(),0<g.Gb.length&&setTimeout(function(){g.ia|=128;g.ia&64&&I(e,40,128,48)},50)));break;case 4194160:0>b?d=g.ia:(d=J(this,g.ia,a,b,c),0<=d&&(g.ia=g.ia&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=J(this,f.m,a,b,c),0<=d&&(d&64&&!f.Fb&&(setInterval(this.kc.bind(this),25),f.Fb=1),f.m=d&-129));break;default:return e.s|=16,K(e,4,
126)}break;case 4194048:f=this.g;switch(a&-2){case 4194048:d=J(this,f.ib,a,b,c);0<=d&&(f.ib=d);break;case 4194050:d=J(this,f.S,a,b,c);0<=d&&(f.S=d);break;case 4194052:d=J(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&bb(this));break;case 4194054:d=J(this,f.jb,a,b,c);0<=d&&(f.jb=d);break;case 4194056:d=J(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194058:d=J(this,f.X,a,b,c);0<=d&&(f.X=d);break;case 4194060:break;case 4194062:d=J(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.s|=
16,K(e,4,128)}break;case 4193728:var h=this.i;f=h.da&7;switch(a&-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.Aa=h.Aa&60|d>>8&3,h.D=d&17279|h.D&34944|2048,d&1&&h.D&128?fb(this,f):192==(d&192)&&I(e,0,160,172));break;case 4193730:d=J(this,h.Xa,a,b,c);0<=d&&(h.Xa=d);break;case 4193732:d=J(this,h.Va,a,b,c);0<=d&&(h.Va=d&65534);break;case 4193734:d=J(this,h.ea[f],a,b,c);0<=d&&(h.ea[f]=d&7967);break;case 4193736:d=J(this,h.da,a,b,c);0<=d&&(h.da=d&63|h.da&65472,d&128&&eb(this));break;case 4193738:d=
h.U[f];break;case 4193740:d=h.Wa[f];break;case 4193742:d=J(this,h.Oa,a,b,c);0<=d&&(h.Oa=d&255);break;case 4193744:d=h.xc[f];break;case 4193746:d=J(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=J(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.yc[f];break;case 4193754:d=J(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=J(this,h.na[f],a,b,c);0<=d&&(h.na[f]=d&511);break;case 4193758:h.vb[f]=h.na[f];d=h.vb[f];break;case 4193760:d=h.vc[f];break;
case 4193762:d=h.wc[f];break;case 4193764:d=h.tc[f];break;case 4193766:d=h.uc[f];break;case 4193768:d=J(this,h.Aa,a,b,c);0<=d&&(h.Aa=d&63,h.D=h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.s|=16,K(e,4,132)}break;case 4192512:f=this.h;switch(a&-2){case 4192512:d=J(this,f.m,a,b,c);0<=b&&0<=d&&(f.ua=f.ua&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||db(this));break;case 4192514:d=J(this,f.ab,a,b,c);0<=d&&(f.ab=d&65534);break;case 4192516:d=J(this,f.J,a,b,c);
0<=d&&(f.J=d);break;case 4192518:d=J(this,f.xa,a,b,c);0<=d&&(f.xa=d);break;case 4192520:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d&63,f.m=f.m&-49|(f.ua&3)<<4);break;default:return e.s|=16,K(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.sa:(d=J(this,e.sa,a,b,c),0<=d&&(70!==e.Ka&&(d&=-49),e.sa=d,e.Ma[0]=d&4?15:7,e.Ma[1]=d&2?15:7,e.Ma[3]=d&1?15:7,e.Ua&&(f=2,e.sa&16&&(f=1),this.c.Ta=this.c.Ta&-8|f)));break;default:return e.s|=16,K(e,4,136)}break;case 4191424:f=a>>1&31;d=J(this,e.P[0][f],a,b,c);
0<=d&&(e.P[0][f]=d,e.P[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.P[1][f],a,b,c);0<=d&&(e.P[1][f]=d,e.P[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Ka)return K(e,4,234);f=a>>2&31;d=e.kb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.kb[f]=a&2?d<<16|e.kb[f]&65535:e.kb[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Ya[a>>1&255];else return e.s|=16,K(e,4,138);break;
default:return e.s|=16,K(e,4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var ib={},Za=(ib[65534]=[null,null,Xa.prototype.oc,Xa.prototype.Bc],ib);u(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Xa(d);A(d,c)}});var jb;if(Ha){var kb=new ArrayBuffer(2);(new DataView(kb)).setUint16(0,256,!0);jb=256===(new Uint16Array(kb))[0]}else jb=!1;var lb=jb;
function H(a,b,c,d,f){this.id=mb+=2;this.a=null;this.Sa=a;this.wb=b;this.size=c||0;this.type=d||nb;this.h=d==ob;this.controller=null;Na(this);this.wa=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,pb(this,f.Za);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.c=new Uint8Array(this.f,0,c),this.o=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),pb(this,lb?qb:rb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;pb(this,sb)}else pb(this)}
var nb=0,ob=2,Ta=4,Va=["NONE","RAM","ROM","VID","H/W"],mb=0;
H.prototype={constructor:H,parent:null,Fb:function(a){this.Sa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.a=a;return this.wa=!0}return!1},C:function(){return 255},v:function(){},A:function(a,b){return this.gb(a++,b++)|this.gb(a,b)<<
8},B:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Z:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Ea:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.wa=!0},Ra:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.wa=!0},O:function(a,b){return this.W(a,
b)},ca:function(a,b){return this.oa(a,b)},Ca:function(a,b,c){this.h||this.ac(a,b,c)},Ga:function(a,b,c){this.h||this.Ha(a,b,c)},H:function(a){return this.c[a]},Y:function(a){return this.c[a]},ba:function(a){return this.g.getUint16(a,!0)},pa:function(a){return a&1?this.c[a]|this.c[a+1]<<8:this.o[a>>1]},ra:function(a,b){this.c[a]=b;this.wa=!0},Da:function(a,b){this.c[a]=b;this.wa=!0},Fa:function(a,b){this.g.setUint16(a,b,!0);this.wa=!0},Qa:function(a,b){a&1?(this.c[a]=b,this.c[a+1]=b>>8):this.o[a>>
1]=b;this.wa=!0}};function Na(a,b,c){a.K=b;a.i=a.l=0;c&&((a.i=c.i)&&tb(a,ub,!1),(a.l=c.l)&&vb(a,ub,!1))}function vb(a,b,c){c&&a.l||(a.lb=!a.h&&b[1]||a.v,a.Cc=!a.h&&b[3]||a.B);if(c||void 0===c)a.ac=b[1]||a.v,a.Ha=b[3]||a.B}function tb(a,b,c){c&&a.i||(a.gb=b[0]||a.C,a.pc=b[2]||a.A);if(c||void 0===c)a.W=b[0]||a.C,a.oa=b[2]||a.A}function pb(a,b){b||(b=wb);tb(a,b,void 0);vb(a,b,void 0)}
var wb=[],sb=[H.prototype.Z,H.prototype.Ea,H.prototype.qa,H.prototype.Ra],ub=[H.prototype.O,H.prototype.Ca,H.prototype.ca,H.prototype.Ga];if(Ha)var rb=[H.prototype.H,H.prototype.ra,H.prototype.ba,H.prototype.Fa],qb=[H.prototype.Y,H.prototype.Da,H.prototype.pa,H.prototype.Qa];
function xb(a,b){v.call(this,"CPU",a,xb);var c=a.multiplier||1;this.Ab=a.cycles||b;this.qa=c;this.zb=Math.round(this.Ab/1E4)/100;this.oa=this.zb*this.qa;this.j.ja=!1;this.j.Zb=!1;this.j.$a=a.autoStart;this.j.Pb=!1;this.j.pb=!1;this.mb=this.pa=0;this.nb=a.csStart;this.Da=a.csInterval;this.Ea=a.csStop;this.Qa=[];this.Sb=this.Ib.bind(this);C(this)}x(xb);var yb=["power","reset"];l=xb.prototype;
l.La=function(a,b,c,d){this.B=a;this.A=b;this.K=d;for(b=0;b<yb.length;b++)(c=this.C[yb[b]])&&this.B.fa(null,yb[b],c);this.Ca=null;a=zb(a,"autoStart");null!=a&&(this.j.$a="true"==a?!0:"false"==a?!1:!!a);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.za=function(a,b){if(!b){if(a&&this.restore){Ab(this);if(!this.restore(a))return!1;Bb(this)}else this.reset();this.$("No debugger detected")}Cb(this);return!0};l.ya=function(a){return a?this.save():!0};
l.$a=function(){return this.j.$a||void 0===this.C.run?(this.Ib(),!0):!1};l.Ub=function(){return 0};function Bb(a){void 0===a.nb&&(a.nb=0);void 0===a.Da&&(a.Da=-1);void 0===a.Ea&&(a.Ea=-1);a.j.pb=0<=a.nb&&0<a.Da;a.j.pb&&(a.mb=0,a.pa=a.nb-a.ca)}
function Db(a,b,c,d){if(a.C[b]){void 0===c&&(a.j.error=!0,a.L("Value for "+b+" is invalid"),Eb(a));var f=a.K&&a.K.c||8;if(!a.j.ja||a.j.Pb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.C[b].textContent!=d&&(a.C[b].textContent=d)}}
l.fa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.C[b]=c;a=!0;break;case "run":this.C[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.j.M)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.M);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.qb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ja?Eb(d):d.Ib())};a=!0;
break;case "speed":this.C[b]=c;a=!0;break;case "setSpeed":this.C[b]=c,c.onclick=function(){Fb(d,d.qa<<1)},c.textContent=this.oa.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b,c){a.ca+=b;c&&(a.ba=a.a=0)}function Hb(a,b){var c=1;b&&1<a.qa&&a.Y&&(c=a.Y/a.zb);a.Ob=Math.round(1E3/30);a.ob=Math.floor(a.Ab/30*c);b||(a.Fa=a.ob);a.Bb=0}function Ib(a){return a.ca+a.W+a.ba-a.a}function Ab(a){a.Y=0;a.Rb=0;a.ca=a.W=a.ba=a.a=0;Bb(a);Fb(a,1)}
function Fb(a,b){if(void 0!==b&&(.8>a.Y/a.oa&&(b=1),a.qa=b,b=a.zb*a.qa,a.oa!=b)){a.oa=b;b=a.oa.toFixed(2)+"Mhz";var c=a.C.setSpeed;c&&(c.textContent=b);a.$("target speed: "+b)}Gb(a,a.W);a.W=0;a.O=ha();a.Z=0;Hb(a)}function Jb(a){a.ba-=a.a;a.a=0}
l.Ib=function(){if(Fa(this,!0)){if(!this.j.ja){Fb(this);this.B&&this.B.start(this.O,Ib(this));this.j.ja=!0;this.j.Zb=!0;this.Ca&&this.Ca.start();var a=this.C.run;a&&(a.textContent="Halt");this.B&&this.B.Pa(!0)}this.Bb>=this.Ab&&Hb(this,!0);this.Ga=0;this.Ra=ha();this.Z&&(a=this.Ra-this.Z,a>this.Ob&&(this.O+=a,this.O>this.Ra&&(this.O=this.Ra)));try{do{for(var b,c=this.j.pb?1:this.ob,d=this.Qa.length-1;0<=d;d--){var f=this.Qa[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
}for(var e=this.ba-this.a,a=e,g=this.Qa.length-1;0<=g;g--){var h=this.Qa[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.W+=e;Gb(this,0,!0);a=e;if(this.j.pb){var k=!1;this.mb=this.mb+this.Ub()|0;this.pa-=a;0>=this.pa&&(this.pa+=this.Da,k=!0);0<=this.Ea&&this.Ea<=Ib(this)&&(this.Da=this.Ea=-1,Bb(this),Eb(this),k=!0);k&&this.$(Ib(this)+" cycles: checksum="+n(this.mb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.ob;15<=++this.Rb&&(this.B&&this.B.Pa(),this.Rb=0);break}}while(this.j.ja)}catch(m){Eb(this);
Cb(this);this.B&&this.B.stop(ha(),Ib(this));Fa(this,!1);b=m.stack||m.message;this.j.error=!0;this.L(b);return}b=setTimeout;c=this.Sb;this.Z=ha();d=this.Ob;this.Ga&&(d=Math.round(d*this.Ga/this.ob));d-=this.Z-this.Ra;if(f=this.Z-this.O)this.Y=Math.round(this.W/(10*f))/100,864E5<=f&&(this.ca=0,Fb(this));if(0>d||this.Y<this.oa)-1E3>d&&(this.O-=d),d=0;this.Bb+=this.Ga;this.Z+=d;b(c,d)}else Cb(this),this.B&&this.B.stop(ha(),Ib(this))};l.$b=function(){return 0};
function Eb(a){a.j.bb&&(a.j.Cb=!0);Jb(a);Gb(a,a.W);a.W=0;if(a.j.ja){a.j.ja=!1;a.Ca&&a.Ca.stop();var b=a.C.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Cb(a){a.B&&a.B.Pa(void 0)}
function Kb(a){this.jc=a.resetAddr||0;xb.call(this,a,1E6);this.Jb=0;this.decode=Lb.bind(this);this.g=65536;this.f=32768;this.h=65535;this.c=32768;this.b=[0,0,0,0,0,0,0,this.jc];this.Na=[0,0,0,0,0,0];this.aa=[0,0,0,0];this.ma=255;this.rb=this.eb=this.Ua=this.v=this.sa=this.Ya=this.ga=this.I=this.s=this.ub=0;this.Ma=[7,7,7,7];this.P=[[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],[65535,65535,65535,65535,65535,65535,
65535,65535,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]];this.kb=[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];this.Eb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.i=-1;this.F=0;this.Ka=70;this.ra=-1;this.o=[];this.Ha=0;this.la=2;Mb(this);this.j.complete=this.j.dc=!1}x(Kb,xb);l=Kb.prototype;
l.reset=function(){this.j.ja&&Eb(this);Nb(this);Ab(this);this.j.error=!1;this.parent.reset.call(this)};function Nb(a){a.ma=255;a.s=0;a.o=[];a.ub=0;a.I=a.ga=a.Ya=a.sa=a.Ua=0;a.Ma[0]=a.Ma[1]=a.Ma[3]=7;a.eb=0;Mb(a)}function Mb(a){a.Ua?(a.H=65536,a.l=a.hc,a.Tb=a.R):(a.H=0,a.l=a.gc,a.Tb=a.N)}l.Ub=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.Mb,this.ca,this.qa]);a.set(2,Wa(this.A));return a.data()};
l.restore=function(a){var b=a[1];this.Mb=b[0];this.ca=b[1];Fb(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.B){for(var e=0,g=Array(b.B),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.c[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.fa=function(a,b,c){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":this.C[b]=c;this.Jb++;a=!0;break;default:a=this.parent.fa.call(this,a,b,c)}return a};
l.Pa=function(a){if(this.Jb&&(a||!this.j.ja||this.j.Pb)){for(a=0;a<this.b.length;a++)Db(this,"R"+a,this.b[a]);a=$a(this);Db(this,"PS",a);Db(this,"NF",a&8?1:0,1);Db(this,"ZF",a&4?1:0,1);Db(this,"VF",a&2?1:0,1);Db(this,"CF",a&1?1:0,1)}if(a=this.C.speed)a.textContent=this.j.ja&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped"};
function I(a,b,c,d,f){for(var e=a.o.length;0<e--;)if(a.o[e].Ac===d){0<e&&(a.o[e-1].ha+=a.o[e].ha);a.o.splice(e,1);break}if(0<=b){2===a.Ha&&(b=0,a.Ha=0,setTimeout(a.Sb,0));for(e=a.o.length;0<e--;){if(a.o[e].ha>b){a.o[e].ha-=b;break}b-=a.o[e].ha}a.o.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.la=2}function $a(a){return a.u=a.u&63728|(a.c&32768?8:0)|(a.h&65535?0:4)|(a.f&32768?2:0)|(a.g&65536?1:0)}
function ab(a,b){a.c=b<<12;a.h=~b&4;a.f=b<<14;a.g=b<<16;if((b^a.u)&2048)for(var c=a.Na.length;0<=--c;){var d=a.b[c];a.b[c]=a.Na[c];a.Na[c]=d}a.v=b>>14&3;c=a.u>>14&3;a.v!=c&&(a.aa[c]=a.b[6],a.b[6]=a.aa[a.v]);a.la=2;a.u=b}function Ob(a,b){a.F&128||(a.c=a.h=a.g=b,a.f=0)}function P(a,b){a.F&128||(a.c=a.h=b,a.f=0)}function Pb(a,b,c,d){a.F&128||(a.c=a.h=a.g=b,a.f=(c^d)&(d^b))}
function K(a,b,c){var d,f,e=0;0>a.ra?a.ra=$a(a):a.v||(b=4,e=1);a.I&57344||(a.ga=63222,a.Ya=b);a.v=0;0<=(d=a.R(b|65536))&&0<=(f=a.R(b+2&65535|65536))&&(ab(a,f&53247|a.ra>>2&12288),e&&(a.s|=4,a.b[6]=4),0<=Q(a,a.ra)&&0<=Q(a,a.b[7])&&(a.b[7]=d));a.F&=-113;a.ra=-1;throw b|c<<8;}function hb(a,b){var c=b>>13&31;31>c?a.sa&32&&(b=a.kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
function Qb(a,b,c){var d,f,e,g=0;if(c&a.Ua){d=b>>13&a.Ma[a.v];f=a.P[a.v][d];e=(a.P[a.v][d+16]<<6)+(b&8191)&4194303;a.sa&16?3932160<=e&&4186112>e&&(e=hb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.s|=32,K(a,4,24)),e&1&&!(c&1)&&(a.s|=64,K(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;c&E&&(g=8192);break;case 4:g=4096;case 5:c&E&&(g=4096);case 6:f|=c&E?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&
(g|=16384));a.P[a.v][d]=f;if(4194170!==e||a.v)a.eb=a.v,a.rb=d;g&&(g&57344&&(0<=a.ra&&(g|=128),a.I&57344||(a.I=a.I|g|a.eb<<5|a.rb<<1),K(a,168,28)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.F|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.s|=64,K(a,4,22));return e}l.N=function(a){if(4194304<=a)a=this.b[a-4194304];else if(0<=a){var b=this.A,c=a&b.h,d=(a&b.i)>>>b.f;a=c!=b.h?b.c[d].pc(c,a):b.c[d++].gb(c,a)|b.c[d&b.H].gb(0,a+1)<<8}return a};
l.R=function(a){return this.N(Qb(this,a,D))};function M(a,b,c){c&=65535;if(4194304<=b)return a.b[b-4194304]=c;if(0<=b){a=a.A;var d=c,f=b&a.h,e=(b&a.i)>>>a.f;f!=a.h?a.c[e].Cc(f,d&65535,b):(a.c[e++].lb(f,d&255,b),a.c[e&a.H].lb(0,d>>8&255,b+1));return c}return b}function R(a,b){4194304<=b?b=a.b[b-4194304]&255:0<=b&&(a=a.A,b=a.c[(b&a.i)>>>a.f].gb(b&a.h,b));return b}function S(a,b,c){c&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|c:0<=b?(a=a.A,a.c[(b&a.i)>>>a.f].lb(b&a.h,c&255,b),c):b}
function Rb(a){var b=a.R(a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Q(a,b){var c,d;a.b[6]=d=a.b[6]-2&65535;a.I&57344||(a.ga=a.ga<<8|246);!a.v&&d<=a.ma&&4<d&&(d<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,32)):(a.s|=8,a.F|=4));return 0<=(c=Qb(a,d|65536,E))?M(a,c,b):c}
function T(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:K(a,4,34);break;case 1:return 6===e&&!a.v&&c&E&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32||65534<=a.b[6]?(a.s|=4,a.b[6]=4,K(a,4,36)):(a.s|=8,a.F|=64)),7===e?a.b[e]:a.b[e]|a.H;case 2:f=2;d=a.b[e];7!==e&&(d|=a.H,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.b[e];7!==e&&(d|=a.H);if(0>(d=a.R(d)))return d;d|=a.H;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.b[e]+f&65535;7!==e&&(d|=a.H);break;case 5:f=-2;d=a.b[e]-2&65535;7!==e&&(d|=a.H);if(0>(d=a.R(d)))return d;
d|=a.H;break;case 6:if(0>(d=a.R(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return d|a.H;case 7:if(0>(d=a.R(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return 0>(d=a.R(d|65536))?d:d|a.H}a.b[e]=a.b[e]+f&65535;!a.H||a.I&57344||(a.ga=a.ga<<8|f<<3&248|e);6===e&&!a.v&&c&E&&0>=f&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,38)):(a.s|=8,a.F|=64));return d}l.gc=function(a,b){return T(this,a,b)};l.hc=function(a,b){return Qb(this,T(this,a,b),b)};
function U(a,b){return b&56?a.Tb(T(a,b,D)):a.b[b&7]}function V(a,b){return b&56?R(a,a.l(b,Ia)):a.b[b&7]&255}function Sb(a,b,c,d){b&56?(b=a.l(b,F),M(a,b,d.call(a,c,a.N(b)))):(b&=7,a.b[b]=d.call(a,c,a.b[b])&65535)}function Tb(a,b,c,d){b&56?(b=a.l(b,G),S(a,b,d.call(a,c,R(a,b)))):(b&=7,a.b[b]=a.b[b]&65280|d.call(a,c,a.b[b])&255)}function Ub(a,b,c){b&56?M(a,a.l(b,E),c):a.b[b&7]=c&65535;return c}
function Vb(a,b,c,d){b&56?S(a,a.l(b,Ja),c):(b&=7,a.b[b]=d?d&1?a.b[b]&-256:c<<24>>24&65535:a.b[b]&-256|c&255);return c}function W(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
l.$b=function(a){this.j.complete=!0;this.j.dc=!1;this.j.Zb=!1;this.ba=this.a=a;this.Mb&256?(Jb(this),a=!1):a=!0;if(a){do{var b,c,d,f;this.F&112&&(this.F&32?K(this,168,52):this.F&64?K(this,4,54):this.F&16&&K(this,12,56),this.F&=-113);if(this.la)if(1===this.la)this.la=2;else{this.la=0;b=-1;c=this.ub&224;if(0<(a=this.o.length))for(;0<a--;){if(0<this.o[a].ha){this.o[a].ha--;this.la=2;break}if(this.o[a].Nb){if(!this.o[a].Nb()){this.o.splice(a,1);b--;continue}this.o[a].Nb=null}this.o[a].nc>c&&(c=this.o[a].nc,
b=a)}c>(this.u&224)&&(0>b?K(this,160,42):(K(this,this.o[b].Ac,44),this.o.splice(b,1)))}this.I&57344||(this.ga=0,this.Ya=this.b[7]);this.F=this.u&16;this.i=a=this.R(this.b[7]);0<=a&&(this.b[7]=this.b[7]+2&65535);this.decode(a);if(0>this.i)switch(a&61440){case 4096:break;case 8192:break;case 12288:break;case 16384:break;case 20480:break;case 24576:break;case 36864:break;case 40960:break;case 45056:break;case 49152:break;case 53248:break;case 57344:break;default:switch(a&65024){case 2048:0<=(d=T(this,
a,0))&&(f=a>>6&7,0<=Q(this,this.b[f])&&(this.b[f]=this.b[7],this.b[7]=d&65535));break;case 28672:0<=(b=U(this,a))&&(f=a>>6&7,b&32768&&(b|=-65536),c=this.b[f],c&32768&&(c|=-65536),a=~~(b*c),this.b[f]=a>>16&65535,this.b[f|1]=a&65535,this.c=a>>16,this.h=this.c|a,this.g=this.f=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=U(this,a))&&(b?(f=a>>6&7,c=this.b[f]<<16|this.b[f|1],this.g=this.f=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.b[f]=a&65535,this.b[f|1]=c-a*b&65535,this.h=
a>>16|a,this.c=a>>16):(this.f=32768,this.h=a>>15|a,this.c=c>>16,-1===b&&65534===this.b[f]&&(this.b[f]=this.b[f|1]=1))):(this.h=this.c=0,this.f=32768,this.g=65536));break;case 29696:0<=(b=U(this,a))&&(f=a>>6&7,a=this.b[f],a&32768&&(a|=4294901760),this.g=this.f=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a>>=b):b&&(16<b?(this.f=a,a=0):(this.g=a<<=b,(c=a>>15&65535)&&65535!==c&&(this.f=32768))),this.b[f]=a&65535,this.c=this.h=a);break;case 30208:if(0<=(b=U(this,a))){f=a>>6&7;c=this.b[f]<<16|this.b[f|
1];this.g=this.f=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.f=32768)}else a=c;this.b[f]=a>>16&65535;this.b[f|1]=a&65535;this.c=a>>16;this.h=a>>16|a}break;case 30720:a&56?0<=(c=this.N(b=this.l(a,F)))&&(c^=this.b[a>>6&7],0<=M(this,b,c)&&(this.c=this.h=c,this.f=0)):(this.c=this.h=c=this.b[a&7]^=this.b[a>>6&7],this.f=0);break;case 32256:f=
a>>6&7;if(this.b[f]=this.b[f]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=W(this.b[7],a);break;case 512:this.h&65535&&(this.b[7]=W(this.b[7],a));break;case 768:this.h&65535||(this.b[7]=W(this.b[7],a));break;case 1024:(this.c&32768)===(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1280:(this.c&32768)!==(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1536:this.h&65535&&(this.c&32768)===(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1792:this.h&
65535&&(this.c&32768)===(this.f&32768)||(this.b[7]=W(this.b[7],a));break;case 32768:this.c&32768||(this.b[7]=W(this.b[7],a));break;case 33280:!(this.g&65536)&&this.h&65535&&(this.b[7]=W(this.b[7],a));break;case 33024:this.c&32768&&(this.b[7]=W(this.b[7],a));break;case 33536:if(this.g&65536||!(this.h&65535))this.b[7]=W(this.b[7],a);break;case 33792:this.f&32768||(this.b[7]=W(this.b[7],a));break;case 34048:this.f&32768&&(this.b[7]=W(this.b[7],a));break;case 34304:this.g&65536||(this.b[7]=W(this.b[7],
a));break;case 34560:this.g&65536&&(this.b[7]=W(this.b[7],a));break;case 34816:K(this,24,2);break;case 35072:K(this,28,4);break;default:switch(a&65472){case 64:0<=(d=T(this,a,0))&&(this.b[7]=d&65535);break;case 192:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c<<8|c>>8,0<=M(this,b,a)&&(this.c=this.h=c&65280,this.f=this.g=0)):(f=a&7,c=this.b[f],this.b[f]=(c<<8|c>>8)&65535,this.c=this.h=c&65280,this.f=this.g=0);break;case 2560:break;case 2624:0<=(c=this.N(b=this.l(a,F)))&&(a=~c,0<=M(this,b,a)&&(this.c=this.h=
a,this.g=65536,this.f=0));break;case 2688:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c+1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=a&(a^c))):(f=a&7,c=this.b[f],a=c+1,this.b[f]=a&65535,this.c=this.h=a,this.f=a&(a^c));break;case 2752:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c-1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=(a^c)&c)):(f=a&7,c=this.b[f],a=c-1,this.b[f]=a&65535,this.c=this.h=a,this.f=(a^c)&c);break;case 2816:0<=(c=this.N(b=this.l(a,F)))&&(a=-c,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&c));break;
case 2880:0<=(c=this.N(b=this.l(a,F)))&&(a=c+(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&(a^c)));break;case 2944:0<=(c=this.N(b=this.l(a,F)))&&(a=c-(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=(a^c)&c));break;case 3008:0<=(c=U(this,a))&&(this.c=this.h=c,this.g=this.f=0);break;case 3072:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=(this.g&65536|c)>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1)):(f=a&7,c=this.b[f],a=(this.g&65536|c)>>1,this.b[f]=a&
65535,this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1);break;case 3136:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c<<1|this.g>>16&1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1|this.g>>16&1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3200:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c&32768|c>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=this.c^this.g>>1)):(f=a&7,c=this.b[f],a=c&32768|c>>1,this.b[f]=a&65535,this.g=c<<16,this.c=this.h=a,this.f=this.c^
this.g>>1);break;case 3264:a&56?0<=(c=this.N(b=this.l(a,F)))&&(a=c<<1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3328:d=this.b[7]+((a&63)<<1)&65535;0<=(b=this.R(d|65536))&&(this.b[7]=this.b[5],this.b[5]=b,this.b[6]=d+2&65535);break;case 3392:a&56?0<=(d=T(this,a,0))&&(61440!==(this.u&61440)&&(d&=65535),this.v=this.u>>12&3,0<=(b=this.R(d))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=0))):
(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 3456:0<=(c=Rb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(d&=65535,this.v=this.u>>12&3,0<=(b=Qb(this,d,E))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;case 3520:0<=(b=this.l(a,E))&&(a=-(this.c>>15&1),0<=M(this,
b,a)&&(this.h=a,this.f=0));break;case 35328:break;case 35392:0<=(c=R(this,b=this.l(a,G)))&&(a=~c,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.g=65536,this.f=0));break;case 35456:0<=(c=R(this,b=this.l(a,G)))&&(a=c+1,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.f=(a&(a^c))<<8));break;case 35520:0<=(c=R(this,b=this.l(a,G)))&&(a=c-1,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.f=((a^c)&c)<<8));break;case 35584:0<=(c=R(this,b=this.l(a,G)))&&(a=-c,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a&c)<<8));break;
case 35648:0<=(c=R(this,b=this.l(a,G)))&&(a=c+(this.g>>16&1),0<=S(this,b,a)&&(this.c=this.h=this.g=a<<8,this.f=(a&(a^c))<<8));break;case 35712:0<=(c=R(this,b=this.l(a,G)))&&(a=c-(this.g>>16&1),0<=S(this,b,a)&&(this.c=this.h=this.g=a<<8,this.f=((a^c)&c)<<8));break;case 35776:0<=(c=V(this,a))&&(this.c=this.h=c<<8,this.g=this.f=0);break;case 35840:0<=(c=R(this,b=this.l(a,G)))&&(a=((this.g&65536)>>8|c)>>1,0<=S(this,b,a)&&(this.g=c<<16,this.c=this.h=a<<8,this.f=this.c^this.g>>1));break;case 35904:0<=(c=
R(this,b=this.l(a,G)))&&(a=c<<1|this.g>>16&1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 35968:0<=(c=R(this,b=this.l(a,G)))&&(a=c&128|c>>1,0<=S(this,b,a)&&(this.g=c<<16,this.c=this.h=a<<8,this.f=this.c^this.g>>1));break;case 36032:0<=(c=R(this,b=this.l(a,G)))&&(a=c<<1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 36160:a&56?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=this.R(d|65536))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=
0))):(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 36224:0<=(c=Rb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=Qb(this,d|65536,E))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;default:switch(a&65528){case 128:0<=(b=Rb(this))&&
(f=a&7,this.b[7]=this.b[f],this.b[f]=b);break;case 152:this.u&49152||(this.u=this.u&63519|(a&7)<<5,this.la=1);break;case 160:case 168:break;case 176:case 184:break;default:switch(a){case 0:49152&this.u?(this.s|=128,K(this,4,46)):(this.Ha=3,Jb(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:b=0;if(0<(a=this.o.length))for(;0<a--;)b+=this.o[a].ha,this.o[a].ha=0;0===b&&0===this.Ha&&(this.Ha=2,Jb(this));break;case 3:K(this,12,6);break;case 4:K(this,16,8);break;case 5:break;case 2:case 6:b=
this.b[6];0<=(d=this.R(b|65536))&&(b=b+2&65535,0<=(c=this.R(b|65536))&&(this.b[6]=b+2&65535,c&=63743,this.u&49152&&(c=c&63519|this.u&63712),this.b[7]=d,ab(this,c),this.F&=-17,2===a&&(this.F|=this.u&16)));break;default:K(this,8,48)}}}}}}}while(0<this.a)}return this.j.complete?this.ba-this.a:void 0===this.j.complete?0:-1};u(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Kb(d);A(d,c)}});
function Wb(a,b){var c=a+b;this.F&128||(this.c=this.h=this.g=c,this.f=(a^c)&(b^c));return c&65535}function Xb(a,b){a=~a&b;P(this,a);return a}function Yb(a,b){a=~a&b;P(this,a<<8);return a}function Zb(a,b){a|=b;P(this,a);return a}function $b(a,b){a|=b;P(this,a<<8);return a}function ac(a,b){var c=b-a;Pb(this,c,a,b);return c&65535}function bc(){this.i=-1;--this.a}function cc(){this.i=-1;--this.a}function X(a){a&1&&(this.g=0);a&2&&(this.f=0);a&4&&(this.h=1);a&8&&(this.c=0);--this.a}
function dc(){this.i=-1;--this.a}function ec(){this.i=-1;--this.a}function fc(){this.i=-1;--this.a}function gc(){--this.a}function Y(a){a&1&&(this.g=65536);a&2&&(this.f=32768);a&4&&(this.h=0);a&8&&(this.c=32768);--this.a}function hc(){this.i=-1;--this.a}function ic(){this.i=-1;--this.a}function Z(){K(this,8,48)}function Lb(a){jc[a>>12].call(this,a)}
var jc=[function(a){kc[a>>8&15].call(this,a)},function(a){P(this,Ub(this,a,U(this,a>>6)));--this.a},function(a){var b=U(this,a>>6);a=U(this,a);Pb(this,b-a,a,b);--this.a},function(a){P(this,U(this,a>>6)&U(this,a));--this.a},function(a){Sb(this,a,U(this,a>>6),Xb);--this.a},function(a){Sb(this,a,U(this,a>>6),Zb);--this.a},function(a){Sb(this,a,U(this,a>>6),Wb);--this.a},function(a){lc[a>>8&15].call(this,a)},function(a){mc[a>>8&15].call(this,a)},function(a){var b=V(this,a>>6);P(this,Vb(this,a,b,2)<<8);
--this.a},function(a){var b=V(this,a>>6)<<8;a=V(this,a)<<8;Pb(this,b-a,a,b);--this.a},function(a){P(this,(V(this,a>>6)&V(this,a))<<8);--this.a},function(a){Tb(this,a,V(this,a>>6),Yb);--this.a},function(a){Tb(this,a,V(this,a>>6),$b);--this.a},function(a){Sb(this,a,U(this,a>>6),ac);--this.a},Z],kc=[function(a){nc[a>>4&15].call(this,a)},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=
-1;--this.a},function(){this.i=-1;--this.a},ec,ec,function(a){oc[a>>6&3].call(this,a)},function(a){pc[a>>6&3].call(this,a)},function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},Z,Z],nc=[function(a){sc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,Z,Z,function(a){tc[a&15].call(this,a)},function(a){uc[a&15].call(this,a)},Z,Z,Z,Z],tc=[gc,function(){this.g=0;--this.a},function(){this.f=0;--this.a},X,function(){this.h=1;--this.a},X,X,X,function(){this.c=0;--this.a},X,X,X,X,X,X,X],uc=[gc,function(){this.g=
65536;--this.a},function(){this.f=32768;--this.a},Y,function(){this.h=0;--this.a},Y,Y,Y,function(){this.c=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],sc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.u&49152||(Nb(this),this.A.reset());--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},Z,Z,Z,Z,Z,Z,Z,Z],lc=[fc,fc,dc,dc,bc,bc,cc,cc,ic,ic,Z,Z,Z,Z,hc,hc],mc=[function(){this.i=
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(a){vc[a>>6&3].call(this,a)},function(a){wc[a>>6&3].call(this,a)},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},Z,Z],oc=[function(a){Ob(this,Ub(this,a,0));--this.a},function(){this.i=
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],pc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],qc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],rc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],vc=[function(a){Ob(this,Vb(this,a,0,1));
--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],wc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],xc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],yc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}];
function zc(a){v.call(this,"ROM",a,zc);this.c=null;this.l=a.addr;this.f=a.size;this.o=a.writable;this.g=a.alias;this.h=a.file;this.v=ba(this.h);if(this.h){a=this.h;var b=ca(this.v);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Ac(c,a,b,e)})}}x(zc);zc.prototype.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;Bc(this)};zc.prototype.za=function(){this.i&&(this.K&&this.K.a(this.id,this.l,this.f,this.i),delete this.i);return!0};
zc.prototype.ya=function(){return!0};
function Ac(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Lb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.c=e;else if(e=h.words)for(a.c=Array(2*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255;else if(e=h.data)for(a.c=Array(4*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255,a.c[g++]=e[f]>>16&255,a.c[g++]=e[f]>>24&255;else a.c=h;a.i=h.symbols;if(!a.c.length){r("Empty ROM: "+b);
return}if(1==a.c.length){r(a.c[0]);return}}catch(k){a.L("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.c=Array(b.length),f=0;f<b.length;f++)a.c[f]=aa(b[f]);Bc(a)}}
function Bc(a){if(!Ga(a))if(!a.h)C(a);else if(a.c&&a.A){a.f||(a.f=a.c.length);if(a.c.length!=a.f){var b="ROM size ("+n(a.c.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.j.error=!0;a.L(b)}else{b=a.l;if(Sa(a.A,b,a.f,a.o?1:ob)){var c;for(c=0;c<a.c.length;c++){var d=a.A,f=b+c;d.c[(f&d.i)>>>d.f].ac(f&d.h,a.c[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.A,g=e.f,h=[],k=e.l>>>f.f;0<g&&
k<f.c.length;)h.push(f.c[k++]),g-=f.g;f=e.A;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.c.length;){k=h[g++];if(!k)break;f.c[d++]=k;e-=f.g}}delete a.c}}C(a)}}u(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zc(d);A(d,c)}});function Cc(a){v.call(this,"RAM",a,Cc);this.g=a.addr;this.f=a.size;this.c=!1}x(Cc);l=Cc.prototype;l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;C(this)};l.za=function(a,b){b||this.reset();return!0};l.ya=function(a){return a?this.save():!0};
l.reset=function(){!this.c&&this.f&&Sa(this.A,this.g,this.f,1)&&(this.c=!0);this.c||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Cc(d);A(d,c)}});function Dc(a){v.call(this,"Keyboard",a,Dc);C(this)}x(Dc);Dc.prototype.fa=function(){return!1};Dc.prototype.La=function(a,b,c,d){this.B=a;this.a=c;this.K=d;this.Ca=null};
u(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Dc(d);A(d,c)}});
function Ec(a,b,c){v.call(this,"Computer",a,Ec);this.j.M=!1;Fc(this,b);this.H=zb(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.c=Gc;this.v=null;this.l=this.Y=!1;this.url=zb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Hc(this);if(this.a=Ea("CPU",this.id)){this.K=Ea("Debugger",this.id);this.A=new Ma({id:this.Lb+".bus",busWidth:this.ba},this.a,this.K);var d,f=y(this.id);if((this.h=Ea("Panel",this.id))&&this.h.Db)for(b=0;b<f.length;b++)d=f[b],d.L=this.h.L,d.$=this.h.$,d.Db=
this.h.Db;this.$("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.$("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.La&&d.La(this,this.A,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.c=parseInt(d,10));var e;if(a=zb(this,"state")||(e=!0,a.state))b=this.O=a,e||(this.l=!0,this.c=Gc),this.c&&(this.B=
new O(this,"1.30.0"),Ic(this.B)?b=null:delete this.B);!b&&this.c&&(b=Jc(this))&&(this.l=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.l=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.Y=!0);C(g)})}else C(this);this.C.power||(this.H=!0);!c&&this.H&&Kc(this,this.fb)}else r("Unable to find CPU component")}x(Ec);var Gc=0;
function Fc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.Z=b}function zb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.Z&&(d=a.Z[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Kc(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Kc(a,b,c)});return}}b.call(a,c)}
function Lc(a,b){var c=new O(a,"1.30.0","validate");if(Ic(c)&&Mc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Ec.prototype;
l.fb=function(a){void 0===a&&(a=this.c||(this.v?1:Gc));if(!this.g){this.g++;var b=!1,c=!1;this.W=!1;var d=this.B||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Gc){if(Ic(d,this.v)){this.i=new O(this,"1.30.0","failsafe");Ic(this.i)&&(Nc(this,d),a=2,Oc(this.i));this.i.set("timestamp",ia());Pc(this.i);var f=this.c&&!this.l;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Mc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Ic(d,g):("error"==
e&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(na("user",""),this.f=null)):this.$(e+": "+g),Oc(d),Ic(d)?(c=Mc(d),f=!0):c=!1))}f&&Lc(this,c?d:null)}else 2==a&&d.clear()}else Lc(this);delete this.v;delete this.B}f=y(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Qc(this,g,d,b,c));b=[d,a,c];-1!=a?Kc(this,this.Qb,b):this.Qb(b)}};
function Qc(a,b,c,d,f){if(!b.j.M){b.j.M=!0;if(b.za){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.za(e,d)&&e&&(r("Unable to restore state for "+b.type),a.O&&!a.Y?(c.clear(),a.c=Gc,window&&window.location.reload()):a.W=!0,b.za(null),f=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
l.Qb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.M=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.a&&(Qc(this,this.a,b,c,a),this.a.$a());this.W&&(Nc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
function Nc(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function Rc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=ia();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ya&&(c&&Eb(a.a),d=a.a.ya(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.j.M=!1,!1===d&&(f=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.j.M&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&e.set(m.id,
d)),c&&(m.j.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Sc(a,a.f,e.toString()),Pc(g)&&Pc(e)||(f=null,d=h=!0)):a.c&&(d=!0,h=3==a.c),d&&e.clear(h)):f=e.toString());c&&(a.j.M=!1,b=a.C.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.A&&this.A.reset&&this.A.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
l.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
l.ba=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.g||(d.j.M?Tc(d,!1,!0):Mc(d,d.cb))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.j.M&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Tc(d,a,!0);!a&&d.N?window&&window.location.reload():d.cb(Ic)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.B[b]=
c,c.onclick=function(){var a=Jc(d,!0);if(a){var b=!!(d.b&&!d.u||d.N),c=Tc(d,b);b?Uc(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
function Jc(a,b){var c=a.f;c||((c=ma("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=Vc(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
function Vc(a,b){a.f=null;b=p(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(na("user",b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function Lc(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+Wc(a,"1.30.0"));return b}
function Uc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("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.L(c),na("user",""),a.f=null)}}
l.La=function(a){this.c&&this.c.La(a);this.h&&this.h.La(a)};u(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Gc(g,d,!0);A(g,e);g.K&&Mc(g,g.cb)}});t.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.da&&!c.j.M&&c.cb(-1)}});
t.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.j.M&&Tc(c,!(!c.b||c.u),!0)}});function M(a,b,c){this.id=a.id;this.key=Wc(a,b,c);this.I=a.I;Qc(this,a.ac)}function Wc(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}
M.prototype={constructor:M,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){Qc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,
1);c=0}}};function Qc(a,b){a[a.id]={};b&&a.set("parms",b);a.c=!1}function Rc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Oc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Kc(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}var Xc=0;
function Yc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Zc(h,a,b,c,d,f,e)})}
function Zc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Da(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){e=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?$c(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function $c(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,r=/( [a-z]+=)(['"])(.*?)\2/g;m=r.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);$c(a,b,c)}})}else c(a,null)}
function ad(a,b,c,d){function f(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Xc||ua(!0));k=!1}var g,h,k=!0;Xc++;Ca[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],P=document.createElement("style");P.type="text/css";P.styleSheet?P.styleSheet.cssText=m:P.appendChild(document.createTextNode(m));r.appendChild(P)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Yc(c,null,null,!1,f,function(d,k){k?(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Xc||ua(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Xc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Yc(b,a,d,!0,f,m):Zc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(R){e(R.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return ad(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
l.fa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.g||(d.j.M?Rc(d,!1,!0):Kc(d,d.fb))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.j.M&&!d.g)if(d.c&&!d.o){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rc(d,a,!0);!a&&d.O?window&&window.location.reload():d.fb(Gc)}else d.reset(),d.a&&d.a.$a()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.C[b]=
c,c.onclick=function(){var a=Hc(d,!0);if(a){var b=!!(d.c&&!d.o||d.O),c=Rc(d,b);b?Sc(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
function Hc(a,b){var c=a.f;c||((c=ma("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=Tc(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
function Tc(a,b){a.f=null;b=p(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(na("user",b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Jc(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+Uc(a,"1.30.0"));return b}
function Sc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Uc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("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.L(c),na("user",""),a.f=null)}}
l.Pa=function(a){this.a&&this.a.Pa(a);this.h&&this.h.Pa(a)};u(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Ec(g,d,!0);A(g,e);g.H&&Kc(g,g.fb)}});t.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.j.M&&c.fb(-1)}});
t.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.j.M&&Rc(c,!(!c.c||c.o),!0)}});function O(a,b,c){this.id=a.id;this.key=Uc(a,b,c);this.K=a.K;Oc(this,a.ic)}function Uc(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}
O.prototype={constructor:O,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){Oc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,
1);c=0}}};function Oc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Pc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Mc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Ic(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}var Vc=0;
function Wc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Xc(h,a,b,c,d,f,e)})}
function Xc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Da(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){e=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Yc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Yc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Yc(a,b,c)}})}else c(a,null)}
function Zc(a,b,c,d){function f(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Vc||ua(!0));k=!1}var g,h,k=!0;Vc++;Ca[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],L=document.createElement("style");L.type="text/css";L.styleSheet?L.styleSheet.cssText=m:L.appendChild(document.createTextNode(m));q.appendChild(L)}c||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Wc(c,null,null,!1,f,function(d,k){k?(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Vc||ua(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Vc||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Wc(b,a,d,!0,f,m):Xc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(N){e(N.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return Zc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();