Cleaned up interrupt handling, register initialization, MMU initialization, etc
This commit is contained in:
parent
1e1388b9ca
commit
3497466113
8 changed files with 1642 additions and 1620 deletions
|
|
@ -1087,8 +1087,12 @@ CPUPDP11.prototype.runCPU = function(fUpdateFocus)
|
|||
this.stepCPU(nCyclesPerBurst);
|
||||
}
|
||||
catch(exception) {
|
||||
/*
|
||||
* We assume that any numeric exception was explicitly thrown by the CPU to interrupt the
|
||||
* current instruction (and by extension, the current burst, but not the current run). All
|
||||
* other exceptions are re-thrown to the catch below, which will attempt a stack dump.
|
||||
*/
|
||||
if (typeof exception != "number") throw exception;
|
||||
if (DEBUG) this.println("CPU exception: " + str.toHexWord(exception));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1200,12 +1200,14 @@ if (DEBUGGER) {
|
|||
}
|
||||
}
|
||||
catch(exception) {
|
||||
/*
|
||||
* We assume that any numeric exception was explicitly thrown by the CPU to interrupt the
|
||||
* current instruction. For all other exceptions, we attempt a stack dump.
|
||||
*/
|
||||
if (typeof exception != "number") {
|
||||
var e = exception;
|
||||
this.nCycles = 0;
|
||||
this.cpu.setError(e.stack || e.message);
|
||||
} else {
|
||||
if (DEBUG) this.println("CPU exception: " + str.toHexWord(exception));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1980,11 +1982,11 @@ if (DEBUGGER) {
|
|||
}
|
||||
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM3) {
|
||||
disp = (opCode & 0x7);
|
||||
sOperand = this.toStrBase(disp, 2);
|
||||
sOperand = this.toStrBase(disp, 1);
|
||||
}
|
||||
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM6) {
|
||||
disp = (opCode & 0x3f);
|
||||
sOperand = this.toStrBase(disp);
|
||||
sOperand = this.toStrBase(disp, 1);
|
||||
}
|
||||
else {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -157,14 +157,6 @@ var PDP11 = {
|
|||
CMODE: 14
|
||||
}
|
||||
},
|
||||
/*
|
||||
* Interrupt-related flags (stored in intFlags)
|
||||
*/
|
||||
INTFLAG: {
|
||||
NONE: 0x0000,
|
||||
INTR: 0x00ff, // mask for 8 bits, representing interrupt levels 0-7
|
||||
HALT: 0x0100 // halt requested; see opHLT()
|
||||
},
|
||||
/*
|
||||
* Internal operation state flags
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -233,6 +233,38 @@ DevicePDP11.prototype.writeLKS = function(data, addr)
|
|||
this.kw11.lks = data & ~PDP11.KW11.LKS.MONITOR;
|
||||
};
|
||||
|
||||
/**
|
||||
* readMMR0(addr)
|
||||
*
|
||||
* @this {DevicePDP11}
|
||||
* @param {number} addr (eg, PDP11.UNIBUS.MMR0 or 177572)
|
||||
* @return {number}
|
||||
*/
|
||||
DevicePDP11.prototype.readMMR0 = function(addr)
|
||||
{
|
||||
return this.cpu.getMMR0();
|
||||
};
|
||||
|
||||
/**
|
||||
* writeMMR0(data, addr)
|
||||
*
|
||||
* @this {DevicePDP11}
|
||||
* @param {number} data
|
||||
* @param {number} addr (eg, PDP11.UNIBUS.MMR0 or 177572)
|
||||
*/
|
||||
DevicePDP11.prototype.writeMMR0 = function(data, addr)
|
||||
{
|
||||
/*
|
||||
* Set idx to 1 (22-bit), 2 (18-bit), or 4 (16-bit)
|
||||
*/
|
||||
var idx = 4;
|
||||
data = this.cpu.setMMR0(data);
|
||||
if (data & PDP11.MMR0.ENABLED | PDP11.MMR0.DSTMODE) {
|
||||
idx = (this.cpu.MMR3 & PDP11.MMR3.MMU_22BIT)? 1 : 2;
|
||||
}
|
||||
this.display.misc = (this.display.misc & ~7) | idx;
|
||||
};
|
||||
|
||||
/**
|
||||
* readXCSR(addr)
|
||||
*
|
||||
|
|
@ -890,24 +922,23 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
switch (physicalAddress & ~0x3F) /*077*/ {
|
||||
case 0x3FFFC0: /*017777700*/ // 017777700 - 017777777
|
||||
switch (physicalAddress & ~1) {
|
||||
/*
|
||||
* Superseded by UNIBUS_TABLE (more of this code will be commented out
|
||||
* as it is replaced by read/write handlers in the UNIBUS_TABLE; stay tuned).
|
||||
*
|
||||
case 0x3FFFFE: // 017777776 // PSW
|
||||
result = cpu.getPSW();
|
||||
if (data >= 0) {
|
||||
if (physicalAddress & 1) {
|
||||
data = (data << 8) | (result & 0xff);
|
||||
} else {
|
||||
if (byteFlag) data = (result & 0xff00) | (data & 0xff);
|
||||
}
|
||||
data = (data & 0xf8ef) | (result & 0x0710);
|
||||
cpu.setPSW(data);
|
||||
return -1; // KLUDGE - no trap but abort any CC updates
|
||||
}
|
||||
break;
|
||||
*/
|
||||
//
|
||||
// Superseded by UNIBUS_TABLE (more of this code will be commented out
|
||||
// as it is replaced by read/write handlers in UNIBUS_TABLE; stay tuned).
|
||||
//
|
||||
// case 0x3FFFFE: // 017777776 // PSW
|
||||
// result = cpu.getPSW();
|
||||
// if (data >= 0) {
|
||||
// if (physicalAddress & 1) {
|
||||
// data = (data << 8) | (result & 0xff);
|
||||
// } else {
|
||||
// if (byteFlag) data = (result & 0xff00) | (data & 0xff);
|
||||
// }
|
||||
// data = (data & 0xf8ef) | (result & 0x0710);
|
||||
// cpu.setPSW(data);
|
||||
// return -1; // KLUDGE - no trap but abort any CC updates
|
||||
// }
|
||||
// break;
|
||||
case 0x3FFFFC: /*017777774*/ // stack limit
|
||||
if (data < 0) {
|
||||
result = cpu.regSL & 0xff00;
|
||||
|
|
@ -941,9 +972,9 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
case 0x3FFFF6: /*017777766*/ // CPU error
|
||||
if (cpu.cpuType !== 70) return cpu.trap(PDP11.TRAP.BUS_ERROR, 222);
|
||||
if (data < 0) {
|
||||
result = cpu.regCPUErr;
|
||||
result = cpu.regErr;
|
||||
} else {
|
||||
result = cpu.regCPUErr = 0; // TODO: Always writes as zero?
|
||||
result = cpu.regErr = 0; // TODO: Always writes as zero?
|
||||
}
|
||||
break;
|
||||
case 0x3FFFF4: /*017777764*/ // System I/D
|
||||
|
|
@ -1038,7 +1069,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
}
|
||||
return result;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 124);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1062,32 +1093,32 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
result = cpu.MMR1;
|
||||
if (result & 0xff00) result = ((result << 8) | (result >> 8)) & 0xffff;
|
||||
break;
|
||||
case 0x3FFF7A: /*017777572*/ // MMR0
|
||||
cpu.MMR0 = (cpu.MMR0 & 0xf381) | (cpu.mmuLastMode << 5) | (cpu.mmuLastPage << 1);
|
||||
if (data < 0) {
|
||||
result = cpu.MMR0;
|
||||
} else {
|
||||
result = this.insertData(cpu.MMR0, physicalAddress, data, byteFlag);
|
||||
if (result >= 0) {
|
||||
cpu.MMR0 = result &= 0xf381;
|
||||
cpu.mmuLastMode = (result >> 5) & 3;
|
||||
cpu.mmuLastPage = (result >> 1) & 0xf;
|
||||
if (result & 0x101) {
|
||||
idx = 2; // 18 bit
|
||||
if (cpu.MMR3 & 0x10) idx = 1; // 22 bit
|
||||
if (result & 0x1) {
|
||||
cpu.mmuEnable = PDP11.ACCESS.READ | PDP11.ACCESS.WRITE;
|
||||
} else {
|
||||
cpu.mmuEnable = PDP11.ACCESS.WRITE;
|
||||
}
|
||||
} else {
|
||||
cpu.mmuEnable = 0;
|
||||
idx = 4; // 16 bit
|
||||
}
|
||||
this.display.misc = (this.display.misc & ~7) | idx;
|
||||
}
|
||||
}
|
||||
break;
|
||||
// case 0x3FFF7A: /*017777572*/ // MMR0
|
||||
// cpu.MMR0 = (cpu.MMR0 & 0xf381) | (cpu.mmuLastMode << 5) | (cpu.mmuLastPage << 1);
|
||||
// if (data < 0) {
|
||||
// result = cpu.MMR0;
|
||||
// } else {
|
||||
// result = this.insertData(cpu.MMR0, physicalAddress, data, byteFlag);
|
||||
// if (result >= 0) {
|
||||
// cpu.MMR0 = result &= 0xf381;
|
||||
// cpu.mmuLastMode = (result >> 5) & 3;
|
||||
// cpu.mmuLastPage = (result >> 1) & 0xf;
|
||||
// if (result & 0x101) {
|
||||
// idx = 2; // 18 bit
|
||||
// if (cpu.MMR3 & 0x10) idx = 1; // 22 bit
|
||||
// if (result & 0x1) {
|
||||
// cpu.mmuEnable = PDP11.ACCESS.READ | PDP11.ACCESS.WRITE;
|
||||
// } else {
|
||||
// cpu.mmuEnable = PDP11.ACCESS.WRITE;
|
||||
// }
|
||||
// } else {
|
||||
// cpu.mmuEnable = 0;
|
||||
// idx = 4; // 16 bit
|
||||
// }
|
||||
// this.display.misc = (this.display.misc & ~7) | idx;
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
case 0x3FFF78: /*017777570*/ // console display/switch;
|
||||
if (data < 0) {
|
||||
result = this.display.switches & 0xffff;
|
||||
|
|
@ -1191,7 +1222,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
// }
|
||||
// break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 126);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1234,7 +1265,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
if (result >= 0) rk11.rkdb = result;
|
||||
break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 128);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1339,7 +1370,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
if (result >= 0) rp11.rpcs3 = result;
|
||||
break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 132);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1378,7 +1409,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 134);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1404,7 +1435,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
}
|
||||
break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 136);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1454,12 +1485,12 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
idx = (physicalAddress >> 1) & 0xff;
|
||||
result = DevicePDP11.M9312[idx];
|
||||
} else {
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 138);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
cpu.regCPUErr |= PDP11.CPUERR.TIMEOUT;
|
||||
cpu.regErr |= PDP11.CPUERR.TIMEOUT;
|
||||
return cpu.trap(PDP11.TRAP.BUS_ERROR, 142);
|
||||
}
|
||||
if (byteFlag && result >= 0) { // make any required byte adjustment
|
||||
|
|
@ -1480,6 +1511,7 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
*/
|
||||
DevicePDP11.UNIBUS_TABLE = {
|
||||
[PDP11.UNIBUS.LKS]: [null, null, DevicePDP11.prototype.readLKS, DevicePDP11.prototype.writeLKS],
|
||||
[PDP11.UNIBUS.MMR0]: [null, null, DevicePDP11.prototype.readMMR0, DevicePDP11.prototype.writeMMR0],
|
||||
[PDP11.UNIBUS.XCSR]: [null, null, DevicePDP11.prototype.readXCSR, DevicePDP11.prototype.writeXCSR],
|
||||
[PDP11.UNIBUS.PSW]: [null, null, DevicePDP11.prototype.readPSW, DevicePDP11.prototype.writePSW]
|
||||
};
|
||||
|
|
|
|||
|
|
@ -659,25 +659,25 @@ if (DEBUGGER) {
|
|||
};
|
||||
|
||||
/**
|
||||
* toStrBase(n, cch)
|
||||
* toStrBase(n, nBytes)
|
||||
*
|
||||
* Use this instead of str.toHex() or str.toOct() to convert words to the default base.
|
||||
* Use this instead of str.toHex() or str.toOct() to convert bytes/words to the Debugger's default base.
|
||||
*
|
||||
* @this {Debugger}
|
||||
* @param {number|null|undefined} n
|
||||
* @param {number} [cch] is the desired number of hex digits (0 or undefined for default)
|
||||
* @param {number} [nBytes] is the number of bytes to display, which we translate into a number of characters
|
||||
* @return {string}
|
||||
*/
|
||||
Debugger.prototype.toStrBase = function(n, cch)
|
||||
Debugger.prototype.toStrBase = function(n, nBytes)
|
||||
{
|
||||
switch(this.nBase) {
|
||||
case 8:
|
||||
return str.toOct(n, cch);
|
||||
return str.toOct(n, nBytes * 3);
|
||||
case 10:
|
||||
return n.toString(); // TODO: Do we want to support any formatting based on cch?
|
||||
return n.toString();
|
||||
case 16:
|
||||
default:
|
||||
return str.toHex(n, cch);
|
||||
return str.toHex(n, nBytes * 2);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,201 +1,201 @@
|
|||
(function(){var l;
|
||||
function ca(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 da(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 ea(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 fa(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 ia={"&":"&","<":"<",">":">",'"':""","'":"'"};function ja(a){return a.replace(/[&<>"']/g,function(a){return ia[a]})}function ka(a,b){return(a+" ").slice(0,b)}
|
||||
function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function na(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 g=c+f>>1,h;h=d(b,a[g]);0<h?c=g+1:(f=g,e=!h)}return e?c:~c}var oa=Date.now||function(){return+new Date};function sa(){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 ta(a,b,d,c){var f=0,e=null,g=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)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(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),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,"+");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||(e=h.responseText,200!=h.status&&(f=h.status||-1),c&&c(a,e,f),g=[e,f]);return g}function ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var va=null;function wa(){if(null==va){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}va=a}return va}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
|
||||
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function za(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 Fa(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
|
||||
function Ga(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 Ha={init:[],show:[],exit:[]},Ia=!1,Ja=!1,Ka=!0;function La(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Ma(a){Ha.init.push(a)}
|
||||
function Na(a){if(Ka)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 Oa(a){!Ka&&a?(Ka=!0,Ia&&Pa("init"),Ja&&Pa("show")):Ka=a}function Pa(a){Ha[a]&&Na(Ha[a])}La("onload",function(){Ia=!0;Na(Ha.init)});La("onpageshow",function(){Ja=!0;Na(Ha.show)});La(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Na(Ha.exit)});
|
||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.sc=b.comment;this.Qc=b;b=this.id.indexOf(".");0>b?this.Fb=this.id:(this.uc=this.id.substr(0,b),this.Fb=this.id.substr(b+1));this[a]=d;this.j={ready:!1,qb:!1,jc:!1,ca:!1,error:!1};this.ac=null;this.j.error=!1;this.I={};this.D=null;this.da=c||0;v.push(this)}var Qa=void 0,Ra={};
|
||||
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Wa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Wa={},v=[];function Xa(a,b,d){Wa[a]&&b&&(Wa[a][b]=d)}function Ya(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 kb(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 lb(a,b){b=C(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 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=y(e))&&g.binding&&a.ra(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function C(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},ra:function(a,b,d){switch(b){case "clear":return this.I[b]||(this.I[b]=d,d.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.ib=this.I[b]=d,d.value="",this.g=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.ma=function(a){this.g(a,this.Fb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Fb+": "+a)},ma:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Ma:function(){return this.j.ca=!0},La:function(a,b){b&&(this.j.ca=!1);return!0}};function mb(a,b){if(a.D){a===a.D?b|=0:b=b||a.da;var d=a.D.da&b;return!!b&&d===b||!!(d&a.D.Kc)}return!1}
|
||||
function nb(a,b){if(a.j.jc)return a.j.qb&&(a.j.qb=!1),a.j.jc=!1;if(a.j.error)return a.g(a.toString()+" error"),!1;a.j.qb=b;return a.j.qb}function ob(a,b){a.j.qb&&(b?a.j.jc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.qb}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.ac;a.ac=null;b&&b()}}function pb(a,b){b&&(a.j.ready?b():a.ac=b);return a.j.ready}function qb(a,b){a.j.error=!0;a.ma(b)}
|
||||
var rb="undefined"!==typeof ArrayBuffer,E={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 sb(a){u.call(this,"Panel",a,sb)}w(sb);l=sb.prototype;l.ra=function(a,b,d,c){return this.w&&this.w.ra(a,b,d,c)||this.b&&this.b.ra(a,b,d,c)||this.D&&this.D.ra(a,b,d,c)?!0:this.parent.ra.call(this,a,b,d,c)};l.Za=function(a,b,d,c){this.w=a;this.C=b;this.b=d;this.D=c};
|
||||
l.Ma=function(a,b){b||tb();return!0};l.La=function(){return!0};l.ta=function(){};function tb(){for(var a=!1,b=C(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=y(c),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<v.length;g++)if(v[g].id===e){e=v[g];break a}}e=null}e||(a=!0,e=new sb(f));lb(e,c);a&&D(e)}}Ma(tb);
|
||||
function ub(a,b,d){u.call(this,"Bus",a,ub);this.b=b;this.D=d;this.G=a.busWidth||16;this.B=Math.pow(2,this.G);this.C=this.B-1|0;this.S=(this.G>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.Aa=1<<this.S;this.K=this.Aa>>2;this.f=this.Aa-1;this.u=this.B/this.Aa|0;this.w=this.u-1;this.Ua=[];this.F=null;this.Lb=this.Gc;a=new F;vb(a,this.D);this.L=Array(this.u);for(b=0;b<this.u;b++)this.L[b]=a;this.Gb=Array(4);this.Gb[0]=wb;this.Gb[1]=xb;this.Gb[2]=yb;this.Gb[3]=zb;Ab(this,this.B-8192,8192,Bb,
|
||||
this);Ab(this,57344,8192,Bb,this);D(this)}w(ub);function wb(a,b){var d=this.controller,c=d.Ua[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.Ua[a&-2],c[2]))return c[2](b&-2)>>8;d.g("warning: unconverted read access to byte @"+da(b));return d.Lb(b,-1,1)}
|
||||
function xb(a,b,d){var c=this.controller,f=c.Ua[a];if(f){if(f[1]){f[1](b,d);return}if(f[3]){a=f[2]?f[2](d):0;if(d&1)f[3](a&255|b<<8,d&-2);else f[3](a&-256|b,d);return}}else if(d&1&&(f=c.Ua[a&-2],f[3])){d&=-2;a=f[2]?f[2](d):0;f[3](a&255|b<<8,d);return}c.g("warning: unconverted write access to byte @"+da(d));c.Lb(d,b,1)}
|
||||
function yb(a,b){var d=this.controller;if(a=d.Ua[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}d.g("warning: unconverted read access to word @"+da(b));return d.Lb(b,-1,0)}function zb(a,b,d){var c=this.controller;if(a=c.Ua[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.g("warning: unconverted write access to word @"+da(d));c.Lb(d,b,0)}l=ub.prototype;l.reset=function(){this.F&&this.F()};l.Gc=function(){return 0};l.Ma=function(a,b){b||this.reset();return!0};
|
||||
function Ab(a,b,d,c,f){for(var e=b,g=d,h=e>>>a.S;0<g&&h<a.L.length;){var k=a.L[h],m=h*a.Aa,n=a.Aa-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+g<=k.A)return k.Zb+=k.A-e,k.A=e,!0;if(e>=k.A+k.Zb){n=k.size-(e-m);n>g&&(n=g);k.Zb=e-k.A+n;e=m+a.Aa;g-=n;h++;continue}}return Cb(1,e,g)}e=new F(e,n,a.Aa,c,f);vb(e,a.D,k);a.L[h++]=e;e=m+a.Aa;g-=n}return 0>=g?(a.status(Math.floor(d/1024)+"Kb "+Db[c]+" at "+r(b,8,!0)),!0):Cb(2,b,d)}
|
||||
l.Mb=function(a){return this.L[(a&this.C)>>>this.S].wb(a&this.f,a)};l.Ea=function(a){var b=a&this.f,d=(a&this.C)>>>this.S;return b!=this.f?this.L[d].Tb(b,a):this.L[d++].wb(b,a)|this.L[d&this.w].wb(0,a+1)<<8};function Eb(a,b){var d=b&a.f,c=(b&a.C)>>>a.S;return d!=a.f?a.L[c].nc(d,b):a.L[c++].Sb(d,b)|a.L[c&a.w].Sb(0,b+1)<<8}l.hc=function(a,b){this.L[(a&this.C)>>>this.S].Bb(a&this.f,b&255,a)};
|
||||
l.pc=function(a,b){var d=a&this.f,c=(a&this.C)>>>this.S;d!=this.f?this.L[c].Fc(d,b&65535,a):(this.L[c++].Bb(d,b&255,a),this.L[c&this.w].Bb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,d=[],c=0;c<a.u;c++){var f=a.L[c];if(f.Ya||f.Oc){d[b++]=c;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}d[e]=f}}return d}function Cb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||
function G(a){u.call(this,"Device",a,G);this.w={mc:[],Fa:0,sa:128,D:127,Mc:0};this.u={data:0,rd:0,sb:20,md:0};this.f={Nb:0,J:0};this.B={Vb:2496,ja:0,M:128,Wb:0,Ub:0,qa:0,Ac:0,la:[],gb:[406,406,406,406],U:[12,12,12,12]};this.F={J:129,Jb:0,Z:0,ab:0,Va:0,eb:0,la:[],U:[40,40,40,40],gb:[1024,1024,512,512],Ic:[157,157,29,29]};this.G={b:[8210,8208,8210,8226],U:[22,22,22,50],fb:[19,19,19,32],ic:[815,411,815,630],la:[],N:2176,zb:0,xb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,na:[4544,4544,4544,4544,4544,4544,4544,4544],
|
||||
yb:[0,0,0,0,0,0,0,0],nb:0,kd:[0,0,0,0,0,0,0,0],Bc:0,Cc:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],ld:[1,2,3,4,5,6,7,8],Dc:[0,0,0,0,0,0,0,0],Qa:[0,0,0,0,0,0,0,0],gc:[0,0,0,0,0,0,0,0],hd:[0,0,0,0,0,0,0,0],jd:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],gd:[0,0,0,0,0,0,0,0],cb:0,oc:0}}w(G);
|
||||
function ca(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&f&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var e,d=a;((f=b)&&10!=f?16==f?d.match(/^[0-9a-f]+$/i):8==f?d.match(/^[0-7]+$/):2==f&&
|
||||
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function da(a,b,c){var d="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}function r(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function ea(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function fa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ga(){var a=ha();return-1!==a.indexOf("pcjs.org",a.length-8)}var ia={"&":"&","<":"<",">":">",'"':""","'":"'"};function ja(a){return a.replace(/[&<>"']/g,function(a){return ia[a]})}function ka(a,b){return(a+" ").slice(0,b)}
|
||||
function ma(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function na(a,b,c){var d=0,f=a.length,e=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<f;){var g=d+f>>1,h;h=c(b,a[g]);0<h?d=g+1:(f=g,e=!h)}return e?d:~d}var oa=Date.now||function(){return+new Date};function sa(){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 ta(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 ha(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}var va=null;function wa(){if(null==va){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}va=a}return va}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(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 Fa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Ga(a,b){function c(){b(100===d)&&(f=setTimeout(c,d),d=100)}var d=0,f=null,e=!1;a.onmousedown=function(){e||f||(d=500,c())};a.ontouchstart=function(){f||(d=500,c())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var Ha={init:[],show:[],exit:[]},Ia=!1,Ja=!1,Ka=!0;function La(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Ha.init.push(a)}
|
||||
function Na(a){if(Ka)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Oa(a){!Ka&&a?(Ka=!0,Ia&&Pa("init"),Ja&&Pa("show")):Ka=a}function Pa(a){Ha[a]&&Na(Ha[a])}La("onload",function(){Ia=!0;Na(Ha.init)});La("onpageshow",function(){Ja=!0;Na(Ha.show)});La(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Na(Ha.exit)});
|
||||
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Ab=this.id:(this.tc=this.id.substr(0,b),this.Ab=this.id.substr(b+1));this[a]=c;this.j={ready:!1,ob:!1,gc:!1,ba:!1,error:!1};this.Yb=null;this.j.error=!1;this.I={};this.F=null;this.da=d||0;v.push(this)}var Qa=void 0,Ra={};
|
||||
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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 w(a,b){b||(b=u);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Wa=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Wa={},v=[];function Xa(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function Ya(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function lb(a,b){b=C(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=y(e))&&g.binding&&a.qa(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function C(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}
|
||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},qa:function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.hb=this.I[b]=c,c.value="",this.g=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.la=function(a){this.g(a,this.Ab)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Ab+": "+a)},la:function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)},Ma:function(){return this.j.ba=!0},La:function(a,b){b&&(this.j.ba=!1);return!0}};function mb(a,b){if(a.F){a===a.F?b|=0:b=b||a.da;var c=a.F.da&b;return!!b&&c===b||!!(c&a.F.Jc)}return!1}
|
||||
function nb(a,b){if(a.j.gc)return a.j.ob&&(a.j.ob=!1),a.j.gc=!1;if(a.j.error)return a.g(a.toString()+" error"),!1;a.j.ob=b;return a.j.ob}function ob(a,b){a.j.ob&&(b?a.j.gc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.ob}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Yb;a.Yb=null;b&&b()}}function pb(a,b){b&&(a.j.ready?b():a.Yb=b);return a.j.ready}function qb(a,b){a.j.error=!0;a.la(b)}
|
||||
var rb="undefined"!==typeof ArrayBuffer,E={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 sb(a){u.call(this,"Panel",a,sb)}w(sb);l=sb.prototype;l.qa=function(a,b,c,d){return this.u&&this.u.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.F&&this.F.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};l.Va=function(a,b,c,d){this.u=a;this.C=b;this.b=c;this.F=d};
|
||||
l.Ma=function(a,b){b||tb();return!0};l.La=function(){return!0};l.va=function(){};function tb(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=y(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<v.length;g++)if(v[g].id===e){e=v[g];break a}}e=null}e||(a=!0,e=new sb(f));lb(e,d);a&&D(e)}}Ma(tb);
|
||||
function ub(a,b,c){u.call(this,"Bus",a,ub);this.b=b;this.F=c;this.G=a.busWidth||16;this.B=Math.pow(2,this.G);this.C=this.B-1|0;this.S=(this.G>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.za=1<<this.S;this.K=this.za>>2;this.f=this.za-1;this.w=this.B/this.za|0;this.u=this.w-1;this.Qa=[];this.D=null;this.Ib=this.Fc;a=new F;vb(a,this.F);this.L=Array(this.w);for(b=0;b<this.w;b++)this.L[b]=a;this.Cb=Array(4);this.Cb[0]=wb;this.Cb[1]=xb;this.Cb[2]=yb;this.Cb[3]=zb;Ab(this,this.B-8192,8192,Bb,
|
||||
this);Ab(this,57344,8192,Bb,this);D(this)}w(ub);function wb(a,b){var c=this.controller,d=c.Qa[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.Qa[a&-2],d[2]))return d[2](b&-2)>>8;c.g("warning: unconverted read access to byte @"+da(b));return c.Ib(b,-1,1)}
|
||||
function xb(a,b,c){var d=this.controller,f=d.Qa[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.Qa[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.g("warning: unconverted write access to byte @"+da(c));d.Ib(c,b,1)}
|
||||
function yb(a,b){var c=this.controller;if(a=c.Qa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.g("warning: unconverted read access to word @"+da(b));return c.Ib(b,-1,0)}function zb(a,b,c){var d=this.controller;if(a=d.Qa[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.g("warning: unconverted write access to word @"+da(c));d.Ib(c,b,0)}l=ub.prototype;l.reset=function(){this.D&&this.D()};l.Fc=function(){return 0};l.Ma=function(a,b){b||this.reset();return!0};
|
||||
function Ab(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.S;0<g&&h<a.L.length;){var k=a.L[h],m=h*a.za,n=a.za-(e-m);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.A)return k.Vb+=k.A-e,k.A=e,!0;if(e>=k.A+k.Vb){n=k.size-(e-m);n>g&&(n=g);k.Vb=e-k.A+n;e=m+a.za;g-=n;h++;continue}}return Cb(1,e,g)}e=new F(e,n,a.za,d,f);vb(e,a.F,k);a.L[h++]=e;e=m+a.za;g-=n}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Db[d]+" at "+r(b,8,!0)),!0):Cb(2,b,c)}
|
||||
l.Jb=function(a){return this.L[(a&this.C)>>>this.S].tb(a&this.f,a)};l.Fa=function(a){var b=a&this.f,c=(a&this.C)>>>this.S;return b!=this.f?this.L[c].Pb(b,a):this.L[c++].tb(b,a)|this.L[c&this.u].tb(0,a+1)<<8};function Eb(a,b){var c=b&a.f,d=(b&a.C)>>>a.S;return c!=a.f?a.L[d].lc(c,b):a.L[d++].Ob(c,b)|a.L[d&a.u].Ob(0,b+1)<<8}l.ec=function(a,b){this.L[(a&this.C)>>>this.S].yb(a&this.f,b&255,a)};
|
||||
l.oc=function(a,b){var c=a&this.f,d=(a&this.C)>>>this.S;c!=this.f?this.L[d].Ec(c,b&65535,a):(this.L[d++].yb(c,b&255,a),this.L[d&this.u].yb(0,b>>8&255,a+1))};function Fb(a){for(var b=0,c=[],d=0;d<a.w;d++){var f=a.L[d];if(f.Ua||f.Mc){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],n=g+1;n<f.length&&f[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<f.length&&(f=k)}c[e]=f}}return c}function Cb(a,b,c){t("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}
|
||||
function G(a){u.call(this,"Device",a,G);this.u={kc:[],Ga:0,ra:128,F:127,Lc:0};this.w={data:0,qd:0,qb:20,kd:0};this.f={Kb:0,J:0};this.B={Rb:2496,ia:0,M:128,Sb:0,Qb:0,pa:0,zc:0,ka:[],fb:[406,406,406,406],V:[12,12,12,12]};this.D={J:129,Fb:0,$:0,Xa:0,Ra:0,ab:0,ka:[],V:[40,40,40,40],fb:[1024,1024,512,512],Hc:[157,157,29,29]};this.G={b:[8210,8208,8210,8226],V:[22,22,22,50],eb:[19,19,19,32],fc:[815,411,815,630],ka:[],N:2176,wb:0,ub:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,ma:[4544,4544,4544,4544,4544,4544,4544,4544],
|
||||
vb:[0,0,0,0,0,0,0,0],lb:0,hd:[0,0,0,0,0,0,0,0],Ac:0,Bc:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],jd:[1,2,3,4,5,6,7,8],Cc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],dc:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],gd:[0,0,0,0,0,0,0,0],dd:[0,0,0,0,0,0,0,0],ed:[0,0,0,0,0,0,0,0],$a:0,nc:0}}w(G);
|
||||
var Gb=[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=G.prototype;
|
||||
l.Za=function(a,b,d,c){this.C=b;this.b=d;this.D=c;a=Hb;for(var f in a){var e=a[f];d=b;c=+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<=c;m+=2){var n=m&8191;void 0!==d.Ua[n]?t("I/O address already registered: "+r(m,8,!0)):d.Ua[n]=[g,h,k,e,!1]}}f=this.Hc.bind(this);b.F=this.reset.bind(this);b.Lb=f;D(this)};l.$c=function(){var a=this.f.$a;this.f.$a&=-129;return a};
|
||||
l.od=function(a){this.f.$a=a;a&64&&!this.f.Nb&&(setInterval(this.Uc.bind(this),25),this.f.Nb=1);this.f.$a=a&-129};l.bd=function(){return this.w.sa};l.qd=function(a){if(128==(this.w.sa&192)&&a&64){var b=this;H(this.b,8,4,52,function(){b.w.sa|=128;return!!(b.w.sa&64)})}this.w.sa=this.w.sa&128|a&-129};l.ad=function(){return Rb(this.b)};l.pd=function(a){Sb(this.b,a&-1809|Rb(this.b)&1808);this.b.T|=128};
|
||||
function Tb(a){var b=a.B,d,c,f,e=b.qa>>13&7;"undefined"===typeof b.la[e]&&(b.la[e]={cache:[],postProcess:a.cd,drive:e,blocksize:256,mapped:0,maxblock:b.gb[e]*b.U[e],url:"rk"+e+".dsk"});b.M&=-129;switch(b.M>>1&7){case 0:b.Vb=2496;b.ja=0;b.M=128;b.qa=0;break;case 1:if((b.qa>>4&511)>=b.gb[e]){b.ja|=32832;b.M|=49152;break}if((b.qa&15)>=b.U[e]){b.ja|=32800;b.M|=49152;break}d=(b.qa>>4&511)*b.U[e]+(b.qa&15);c=(b.M&48)<<12|b.Ub;f=65536-b.Wb&65535;Ub(a,b.la[e],d,c,f);return;case 2:if((b.qa>>4&511)>=b.gb[e])b.ja|=
|
||||
32832,b.M|=49152;else if((b.qa&15)>=b.U[e])b.ja|=32800,b.M|=49152;else{d=(b.qa>>4&511)*b.U[e]+(b.qa&15);c=(b.M&48)<<12|b.Ub;f=65536-b.Wb&65535;a.dc(b.la[e],d,c,f);return}}b.Vb=e<<13|b.Vb&8176|b.qa%9&15;H(a.b,20,5,144,function(){b.M=b.M&65534|128;return!!(b.M&64)})}l.cd=function(a,b,d,c,f){var e=this.B;e.Ub=c&65535;e.M=e.M&-49|c>>12&48;e.Wb=65536-f&65535;switch(a){case 1:e.ja|=33024;e.M|=49152;break;case 2:e.ja|=33792,e.M|=49152}H(this.b,20,5,144,function(){e.M=e.M&65534|128;return!!(e.M&64)})};
|
||||
function Vb(a){var b=a.F,d,c,f,e=b.J>>8&3;b.J&=-2;"undefined"===typeof b.la[e]&&(b.la[e]={cache:[],postProcess:a.dd,drive:e,blocksize:128,mapped:1,maxblock:b.gb[e]*b.U[e],url:"rl"+e+".dsk"});switch(b.J>>1&7){case 2:b.ab&8&&(b.J&=63);b.ab=b.Ic[e]|b.eb&64;break;case 3:1==(b.Z&3)&&(b.eb=b.Z&4?b.eb+(b.Z&65408)&65408|b.Z<<2&64:b.eb-(b.Z&65408)&65408|b.Z<<2&64,b.Z=b.eb);break;case 4:b.ab=b.eb;break;case 5:if(b.Z>>6>=b.gb[e]){b.J|=37888;break}if((b.Z&63)>=b.U[e]){b.J|=37888;break}d=(b.Z>>6)*b.U[e]+(b.Z&
|
||||
63);c=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;Ub(a,b.la[e],d,c,f);return;case 6:if(b.Z>>6>=b.gb[e])b.J|=37888;else if((b.Z&63)>=b.U[e])b.J|=37888;else{d=(b.Z>>6)*b.U[e]+(b.Z&63);c=(b.Va&63)<<16|b.Jb;f=65536-b.ab&65535;a.dc(b.la[e],d,c,f);return}}H(a.b,20,5,112,function(){b.J|=129;return!!(b.J&64)})}
|
||||
l.dd=function(a,b,d,c,f){var e=this.F;e.Jb=c&65535;e.J=e.J&-49|c>>12&48;e.Va=c>>16&63;e.Z=~~(d/e.U[b.Ka])<<6|d%e.U[b.Ka];e.eb=e.Z;e.ab=65536-f&65535;switch(a){case 1:e.J|=33792;break;case 2:e.J|=40960}H(this.b,20,5,112,function(){e.J|=129;return!!(e.J&64)})};function Wb(a){a=a.G;a.N=2176;a.Ba=0;a.na=[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.oc=0}
|
||||
function Xb(a,b){var d=a.G,c,f,e;d.N&=-16513;d.Ba&=-2049;d.na[b]&=-1153;H(a.b,-1,0,172);"undefined"===typeof d.la[b]&&(d.la[b]={cache:[],postProcess:a.ed,drive:b,blocksize:256,mapped:0,maxblock:d.ic[0]*d.fb[0]*d.U[0],url:"rp"+b+".dsk"});switch(d.N&63){case 5:d.gc[b]=d.Qa[b];d.N|=32896;d.na[b]|=32896;d.nb|=1<<b;break;case 9:Wb(a);break;case 19:d.na[b]|=64;break;case 49:if(d.Qa[b]>=d.ic[0]||d.Ca[b]>>8>=d.fb[0]||(d.Ca[b]&255)>=d.U[0]){d.yb[b]|=1024;d.N|=49152;break}c=(d.Qa[b]*d.fb[0]+(d.Ca[b]>>8))*d.U[0]+
|
||||
(d.Ca[b]&255);f=(d.cb&63)<<16|d.xb;e=65536-d.zb&65535;Ub(a,d.la[b],c,f,e);return;case 57:if(d.Qa[b]>=d.ic[0]||d.Ca[b]>>8>=d.fb[0]||(d.Ca[b]&255)>=d.U[0])d.yb[b]|=1024,d.N|=49152;else{c=(d.Qa[b]*d.fb[0]+(d.Ca[b]>>8))*d.U[0]+(d.Ca[b]&255);f=(d.cb&63)<<16|d.xb;e=65536-d.zb&65535;a.dc(d.la[b],c,f,e);return}}H(a.b,3,5,172,function(){d.N=d.N&65534|128;d.na[b]|=128;return!!(d.N&64)})}
|
||||
l.ed=function(a,b,d,c,f){var e=this.G;e.zb=65536-f&65535;e.xb=c&65535;e.N=e.N&-769|c>>8&768;e.cb=c>>16&63;f=~~(d/e.U[0]);c=~~(f/e.fb[0]);e.Ca[b.Ka]=f%e.fb[0]<<8|d%e.U[0];e.gc[b.Ka]=e.Qa[b.Ka]=c;e.nb|=1<<b.Ka;d>=b.Xc-1&&(e.na[b.Ka]|=1024);switch(a){case 1:e.Ba|=512;e.N|=49152;break;case 2:e.Ba|=2048,e.N|=49152}H(this.b,20,5,172,function(){e.na[b.Ka]|=128;e.N=e.N&65534|128;return!!(e.N&64)})};l.Uc=function(){this.f.$a|=128;this.f.$a&64&&H(this.b,0,6,64)};
|
||||
function Yb(a,b,d,c,f,e){var g=~~((e+d.Wa-1)/d.Wa),h=new XMLHttpRequest;2048>g&&c+2048<d.Xc&&(g=2048);h.open("GET",d.url,!0);h.setRequestHeader("Range","bytes="+(c*d.Wa<<1)+"-"+(((c+g)*d.Wa<<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.cc(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.Wa;q++)d.cache[n][q]=p<m.length?
|
||||
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=d.Wa<<1;n++}g(d,c,f,e)}}};h.send(null)}function I(a,b,d,c,f){d&1?f?c=0<=c?c<<8&65280|b&255:b:J(a.b,4,122):0<=c?f&&(c=b&65280|c&255):c=b;return c}l.dc=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){Yb(this,this.dc,a,b,d,c);return}for(f=0;f<a.Wa&&0<c;f++){if(0>Zb(this.b,a.Wc?$b(this.b,d):d,a.cache[b][f])){a.cc(2,a,b,d,c);return}d+=2;--c}b++}a.cc(0,a,b,d,c)};
|
||||
function Ub(a,b,d,c,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Wa;e++)b.cache[d][e]=0;for(e=0;e<b.Wa&&0<f;e++){g=a.b.ec(b.Wc?$b(a.b,c):c);if(0>g){b.cc(2,b,d,c,f);return}b.cache[d][e]=g;c+=2;--f}d++}b.cc(0,b,d,c,f)}l.reset=function(){this.u.sb=this.u.sb&-120|20;this.w.Fa=0;this.w.sa=128;this.f.$a=0;this.B.M=128;this.F.J=128;Wb(this)};
|
||||
l.Hc=function(a,b,d){var c,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Oa&65280:(a&1&&(b<<=8),e.Oa=b|255,c=0);break;case 4194298:if(0>b)c=e.fc;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.fc=c;e.Na=2}break;case 4194294:if(70!==e.jb)return J(e,4,222);0>b?c=e.H:c=e.H=0;break;case 4194292:if(70!==e.jb)return J(e,4,224);c=1;break;case 4194290:if(70!==e.jb)return J(e,4,226);c=0;break;case 4194288:if(70!==e.jb)return J(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.jb)return J(e,4,232);f=a-4194272>>1;0>b?c=e.lc[f]:(c=I(this,e.lc[f],a,b,d),0<=c&&(e.lc[f]=c));break;case 4194254:return a&1?e.ga>>14&1?(0<=b&&(e.i[6]=b),c=e.i[6]):(0<=b&&(e.Pa[3]=b),c=e.Pa[3]):e.ga>>14&0?(0<=b&&(e.i[6]=b),c=e.i[6]):(0<=b&&(e.Pa[1]=b),c=e.Pa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.ga&2048?(0<=b&&(e.i[f]=b),c=e.i[f]):(0<=b&&(e.bb[f]=
|
||||
b),c=e.bb[f]),c;case 4194246:return a&1?(0<=b&&(e.i[7]=b),c=e.i[7]):e.ga>>14&0?(0<=b&&(e.i[6]=b),c=e.i[6]):(0<=b&&(e.Pa[0]=b),c=e.Pa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.ga&2048?(0<=b&&(e.bb[f]=b),c=e.bb[f]):(0<=b&&(e.i[f]=b),c=e.i[f]),c;default:return e.H|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;c=I(this,e.ia[3][f],a,b,d);0<=c&&(e.ia[3][f]=c,e.ia[3][f&15]&=65295);break;case 4194112:var g=this.w;switch(a&-2){case 4194174:c=I(this,e.Eb,a,b,d);0<=c&&(e.Eb=c);break;case 4194172:c=
|
||||
e.Ra;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Ob<<5|e.bc<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Ob=c>>5&3,e.bc=c>>1&15,c&257?(f=2,e.Sa&16&&(f=1),e.tb=c&1?6:4):(e.tb=0,f=4),this.u.sb=this.u.sb&-8|f));break;case 4194168:0>b?c=this.u.md&65535:(c=I(this,this.u.data,a,b,d),0<=c&&(this.u.data=c));break;case 4194166:0<=b&&(b&127&&(g.Mc=0),g.sa&=-129,H(e,100,4,52,function(){g.sa|=128;return!!(g.sa&64)}));c=0;break;case 4194162:c=0;0>b&&(g.Fa&=-129,0<g.mc.length&&
|
||||
(c=g.mc.shift(),0<g.mc.length&&setTimeout(function(){g.Fa|=128;g.Fa&64&&H(e,40,4,48)},50)));break;case 4194160:0>b?c=g.Fa:(c=I(this,g.Fa,a,b,d),0<=c&&(g.Fa=g.Fa&128|c&-129));break;default:return e.H|=16,J(e,4,126)}break;case 4194048:f=this.B;switch(a&-2){case 4194048:c=I(this,f.Vb,a,b,d);0<=c&&(f.Vb=c);break;case 4194050:c=I(this,f.ja,a,b,d);0<=c&&(f.ja=c);break;case 4194052:c=I(this,f.M,a,b,d);0<=b&&0<=c&&(f.M=c&-36993|f.M&36992,f.M&1&&Tb(this));break;case 4194054:c=I(this,f.Wb,a,b,d);0<=c&&(f.Wb=
|
||||
c);break;case 4194056:c=I(this,f.Ub,a,b,d);0<=c&&(f.Ub=c);break;case 4194058:c=I(this,f.qa,a,b,d);0<=c&&(f.qa=c);break;case 4194060:break;case 4194062:c=I(this,f.Ac,a,b,d);0<=c&&(f.Ac=c);break;default:return e.H|=16,J(e,4,128)}break;case 4193728:var h=this.G;f=h.Ba&7;switch(a&-2){case 4193728:c=I(this,h.N,a,b,d);0<=b&&0<=c&&(h.cb=h.cb&60|c>>8&3,h.N=c&17279|h.N&34944|2048,c&1&&h.N&128?Xb(this,f):192==(c&192)&&H(e,0,5,172));break;case 4193730:c=I(this,h.zb,a,b,d);0<=c&&(h.zb=c);break;case 4193732:c=
|
||||
I(this,h.xb,a,b,d);0<=c&&(h.xb=c&65534);break;case 4193734:c=I(this,h.Ca[f],a,b,d);0<=c&&(h.Ca[f]=c&7967);break;case 4193736:c=I(this,h.Ba,a,b,d);0<=c&&(h.Ba=c&63|h.Ba&65472,c&128&&Wb(this));break;case 4193738:c=h.na[f];break;case 4193740:c=h.yb[f];break;case 4193742:c=I(this,h.nb,a,b,d);0<=c&&(h.nb=c&255);break;case 4193744:c=h.kd[f];break;case 4193746:c=I(this,h.Bc,a,b,d);0<=c&&(h.Bc=c);break;case 4193748:c=I(this,h.Cc[f],a,b,d);0<=c&&(h.Cc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=
|
||||
h.ld[f];break;case 4193754:c=I(this,h.Dc[f],a,b,d);0<=c&&(h.Dc[f]=c);break;case 4193756:c=I(this,h.Qa[f],a,b,d);0<=c&&(h.Qa[f]=c&511);break;case 4193758:h.gc[f]=h.Qa[f];c=h.gc[f];break;case 4193760:c=h.hd[f];break;case 4193762:c=h.jd[f];break;case 4193764:c=h.fd[f];break;case 4193766:c=h.gd[f];break;case 4193768:c=I(this,h.cb,a,b,d);0<=c&&(h.cb=c&63,h.N=h.N&-769|(c&3)<<8);break;case 4193770:c=I(this,h.oc,a,b,d);0<=c&&(h.oc=c);break;default:return e.H|=16,J(e,4,132)}break;case 4192512:f=this.F;switch(a&
|
||||
-2){case 4192512:c=I(this,f.J,a,b,d);0<=b&&0<=c&&(f.Va=f.Va&60|c>>4&3,f.J=f.J&-1023|c&1022,f.J&128||Vb(this));break;case 4192514:c=I(this,f.Jb,a,b,d);0<=c&&(f.Jb=c&65534);break;case 4192516:c=I(this,f.Z,a,b,d);0<=c&&(f.Z=c);break;case 4192518:c=I(this,f.ab,a,b,d);0<=c&&(f.ab=c);break;case 4192520:c=I(this,f.Va,a,b,d);0<=c&&(f.Va=c&63,f.J=f.J&-49|(f.Va&3)<<4);break;default:return e.H|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Sa:(c=I(this,e.Sa,a,b,d),0<=c&&(70!==e.jb&&(c&=
|
||||
-49),e.Sa=c,e.lb[0]=c&4?15:7,e.lb[1]=c&2?15:7,e.lb[3]=c&1?15:7,e.tb&&(f=2,e.Sa&16&&(f=1),this.u.sb=this.u.sb&-8|f)));break;default:return e.H|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;c=I(this,e.ia[0][f],a,b,d);0<=c&&(e.ia[0][f]=c,e.ia[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=I(this,e.ia[1][f],a,b,d);0<=c&&(e.ia[1][f]=c,e.ia[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.jb)return J(e,4,234);f=a>>2&31;c=e.Xb[f];a&2&&(c>>=16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.Xb[f]=a&
|
||||
2?c<<16|e.Xb[f]&65535:e.Xb[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=Gb[a>>1&255];else return e.H|=16,J(e,4,138);break;default:return e.H|=16,J(e,4,142)}d&&0<=c&&(a&1?c>>=8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};
|
||||
var ac={},Hb=(ac[65382]=[null,null,G.prototype.$c,G.prototype.od],ac[65396]=[null,null,G.prototype.bd,G.prototype.qd],ac[65534]=[null,null,G.prototype.ad,G.prototype.pd],ac);Ma(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new G(c);lb(c,d)}});var bc;if(rb){var cc=new ArrayBuffer(2);(new DataView(cc)).setUint16(0,256,!0);bc=256===(new Uint16Array(cc))[0]}else bc=!1;var dc=bc;
|
||||
function F(a,b,d,c,f){this.id=ec+=2;this.b=null;this.A=a;this.Zb=b;this.size=d||0;this.type=c||fc;this.C=c==gc;this.controller=null;vb(this);this.Ya=this.Oc=!1;if(d)if(f)this.controller=f,this.b=null,hc(this,f.Gb);else if(rb)this.B=new ArrayBuffer(d),this.F=new DataView(this.B,0,d),this.f=new Uint8Array(this.B,0,d),this.K=new Uint16Array(this.B,0,d>>1),this.b=new Int32Array(this.B,0,d>>2),hc(this,dc?ic:jc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;hc(this,kc)}else hc(this)}
|
||||
var fc=0,gc=2,Bb=4,Db=["NONE","RAM","ROM","VID","H/W"],ec=0;
|
||||
F.prototype={constructor:F,parent:null,Nb:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.F.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.F.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ya=!0}return!1},hb:function(a,b){b?this.w++||lc(this,mc,!1):this.I++||nc(this,mc,!1)},O:function(){this.D&&mb(this.D,
|
||||
129)&&this.D.message("attempt to read invalid block %"+r(this.A),!0);return 255},u:function(a,b){this.D&&mb(this.D,129)&&this.D.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},P:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},G:function(a,b,d){this.Bb(a++,b&255,d++);this.Bb(a,b>>8,d)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},oa: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},wa:function(a,b){var d=a>>
|
||||
2;a=(a&3)<<3;this.b[d]=this.b[d]&~(255<<a)|b<<a;this.Ya=!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.Ya=!0},V:function(a,b){if(this.D&&null!=this.A){var d=this.D;oc(d,this.A+a,1,d.R)&&d.ka(!0)}return this.Sb(a,b)},aa:function(a,b){if(this.D&&null!=this.A){var d=this.D;oc(d,this.A+a,2,d.R)&&d.ka(!0)}return this.nc(a,b)},ua:function(a,b,d){if(this.D&&null!=this.A){var c=this.D;oc(c,this.A+
|
||||
a,1,c.F)&&c.ka(!0)}this.C?this.u(a,b,d):this.Cb(a,b,d)},Ia:function(a,b,d){if(this.D&&null!=this.A){var c=this.D;oc(c,this.A+a,2,c.F)&&c.ka(!0)}this.C?this.u(a,b,d):this.rc(a,b,d)},R:function(a){return this.f[a]},X:function(a){return this.f[a]},$:function(a){return this.F.getUint16(a,!0)},fa:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.K[a>>1]},pa:function(a,b){this.f[a]=b;this.Ya=!0},va:function(a,b){this.f[a]=b;this.Ya=!0},Ha:function(a,b){this.F.setUint16(a,b,!0);this.Ya=!0},Ta:function(a,
|
||||
b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.K[a>>1]=b;this.Ya=!0}};function vb(a,b,d){a.D=b;a.I=a.w=0;d&&((a.I=d.I)&&nc(a,mc,!1),(a.w=d.w)&&lc(a,mc,!1))}function pc(a,b){b?--a.w||(a.Bb=a.C?a.u:a.Cb,a.Fc=a.C?a.G:a.rc):--a.I||(a.wb=a.Sb,a.Tb=a.nc)}function lc(a,b,d){d&&a.w||(a.Bb=!a.C&&b[1]||a.u,a.Fc=!a.C&&b[3]||a.G);if(d||void 0===d)a.Cb=b[1]||a.u,a.rc=b[3]||a.G}function nc(a,b,d){d&&a.I||(a.wb=b[0]||a.O,a.Tb=b[2]||a.P);if(d||void 0===d)a.Sb=b[0]||a.O,a.nc=b[2]||a.P}
|
||||
function hc(a,b){b||(b=qc);nc(a,b,void 0);lc(a,b,void 0)}var qc=[],kc=[F.prototype.Y,F.prototype.wa,F.prototype.oa,F.prototype.Fb],mc=[F.prototype.V,F.prototype.ua,F.prototype.aa,F.prototype.Ia];if(rb)var jc=[F.prototype.R,F.prototype.pa,F.prototype.$,F.prototype.Ha],ic=[F.prototype.X,F.prototype.va,F.prototype.fa,F.prototype.Ta];
|
||||
function rc(a,b){u.call(this,"CPU",a,rc,1);var d=a.multiplier||1;this.va=a.cycles||b;this.mb=d;this.ua=Math.round(this.va/1E4)/100;this.kb=this.ua*this.mb;this.j.ea=!1;this.j.qc=!1;this.j.Hb=a.autoStart;this.j.xc=!1;this.j.rb=!1;this.Pb=this.V=0;this.Qb=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.fa=[];this.Ib=this.ob.bind(this);D(this)}w(rc);var sc=["power","reset"];l=rc.prototype;
|
||||
l.Za=function(a,b,d,c){this.w=a;this.C=b;this.D=c;for(b=0;b<sc.length;b++)(d=this.I[sc[b]])&&this.w.ra(null,sc[b],d);this.$=null;a=tc(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.Ma=function(a,b){if(!b){if(a&&this.restore){uc(this);if(!this.restore(a))return!1;Jc(this)}else this.reset();this.D?this.D.Nb():this.g("No debugger detected")}K(this);return!0};
|
||||
l.La=function(a){return a?this.save():!0};l.Hb=function(){return this.j.Hb||!this.D&&void 0===this.I.run?(this.ob(!0),!0):!1};l.zc=function(){return 0};function Jc(a){void 0===a.Qb&&(a.Qb=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.j.rb=0<=a.Qb&&0<a.ub;a.j.rb&&(a.Pb=0,a.V=a.Qb-a.R)}function Kc(a,b){if(a.j.rb){var d=!1;a.Pb=a.Pb+a.zc()|0;a.V-=b;0>=a.V&&(a.V+=a.ub,d=!0);0<=a.vb&&a.vb<=Lc(a)&&(a.ub=a.vb=-1,Jc(a),a.ka(),d=!0);d&&a.g(Lc(a)+" cycles: checksum="+r(a.Pb))}}
|
||||
function Mc(a,b,d,c){if(a.I[b]){void 0===d&&(qb(a,"Value for "+b+" is invalid"),a.ka());var f=a.D&&a.D.$||8;d=!a.j.ea||a.j.xc?8==f?da(d,c):r(d,c):"--------".substr(0,c||4);a.I[b].textContent!=d&&(a.I[b].textContent=d)}}
|
||||
l.ra=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.I[b]=d;a=!0;break;case "run":this.I[b]=d;d.onclick=function(){var a;if(a=c.w)if(a=c.w,a.j.ca)a=!0;else{var b=null,d,h=Ya(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.ca);d++);d==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.ac?" (waiting for notification)":""))+".");a=!1}a&&(c.j.ea?c.ka():c.ob())};
|
||||
a=!0;break;case "speed":this.I[b]=d;a=!0;break;case "setSpeed":this.I[b]=d,d.onclick=function(){Nc(c,c.mb<<1,!0)},d.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Oc(a,b,d){a.R+=b;d&&(a.P=a.b=0)}function Pc(a,b){var d=1;b&&1<a.mb&&a.K&&(d=a.K/a.ua);a.pb=Math.round(1E3/30);a.pa=Math.floor(a.va/30*d);b||(a.X=a.pa);a.wa=0}function Lc(a){return a.R+a.G+a.P-a.b}function uc(a){a.K=0;a.Db=0;a.R=a.G=a.P=a.b=0;Jc(a);Nc(a,1)}
|
||||
function Nc(a,b,d){var c=!1;if(void 0!==b){.8>a.K/a.kb?b=1:c=!0;a.mb=b;b=a.ua*a.mb;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.w&&a.w.Yb()}Oc(a,a.G);a.G=0;a.F=oa();a.O=0;Pc(a);return c}function Qc(a){a.P-=a.b;a.b=0}
|
||||
l.ob=function(a){if(nb(this,!0)){if(!this.j.ea){Nc(this);this.w&&this.w.start(this.F,Lc(this));this.j.ea=!0;this.j.qc=!0;this.$&&this.$.start();var b=this.I.run;b&&(b.textContent="Halt");this.w&&(this.w.ta(!0),a&&this.w.Yb(!0))}this.wa>=this.va&&Pc(this,!0);this.aa=0;this.oa=oa();this.O&&(a=this.oa-this.O,a>this.pb&&(this.F+=a,this.F>this.oa&&(this.F=this.oa)));try{do{for(var d,c=this.j.rb?1:this.pa,f=this.fa.length-1;0<=f;f--){var e=this.fa[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.Ab(d)}catch(m){if("number"!=
|
||||
typeof m)throw m;}var g=this.P-this.b;a=g;for(var h=this.fa.length-1;0<=h;h--){var k=this.fa[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.aa+=g;this.G+=g;Oc(this,0,!0);Kc(this,g);this.X-=g;if(0>=this.X){this.X+=this.pa;15<=++this.Db&&(this.w&&this.w.ta(),this.Db=0);break}}while(this.j.ea)}catch(m){this.ka();K(this);this.w&&this.w.stop(oa(),Lc(this));nb(this,!1);qb(this,m.stack||m.message);return}d=setTimeout;c=this.Ib;this.O=oa();f=this.pb;this.aa&&(f=Math.round(f*this.aa/this.pa));f-=this.O-
|
||||
this.oa;if(e=this.O-this.F)this.K=Math.round(this.G/(10*e))/100,864E5<=e&&(this.R=0,Nc(this));if(0>f||this.K<this.kb)-1E3>f&&(this.F-=f),f=0;this.wa+=this.aa;this.O+=f;d(c,f)}else K(this),this.w&&this.w.stop(oa(),Lc(this))};l.Ab=function(){return 0};l.ka=function(a){ob(this,!0);Qc(this);Oc(this,this.G);this.G=0;if(this.j.ea){this.j.ea=!1;this.$&&this.$.stop();var b=this.I.run;b&&(b.textContent="Run")}this.j.complete=a};function K(a,b){a.w&&a.w.ta(b)}
|
||||
function Rc(a){this.Yc=+a.model||1170;this.$b=a.resetAddr||0;rc.call(this,a,1E6);this.Ia=0;this.decode=Sc.bind(this);this.ha=65536;this.ya=32768;this.za=65535;this.xa=32768;this.i=[0,0,0,0,0,0,0,this.$b];this.bb=[0,0,0,0,0,0];this.Pa=[0,0,0,0];this.Oa=255;this.bc=this.Ob=this.tb=this.B=this.Sa=this.Eb=this.Ra=this.ba=this.H=this.fc=0;this.lb=[7,7,7,7];this.ia=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.lc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.f=-1;this.T=0;this.jb=70;this.Y=-1;this.u=[];this.Kb=0;this.Na=2;Tc(this);this.j.complete=this.j.Lc=!1}w(Rc,rc);l=Rc.prototype;
|
||||
l.reset=function(){this.j.ea&&this.ka();Uc(this);uc(this);this.j.error=!1;this.parent.reset.call(this)};function Uc(a){a.Oa=255;a.H=0;a.u=[];a.fc=0;a.ba=a.Ra=a.Eb=a.Sa=a.tb=0;a.lb[0]=a.lb[1]=a.lb[3]=7;a.Ob=0;Tc(a)}function Tc(a){a.tb?(a.Ha=65536,a.W=a.Sc,a.Tb=a.Ga):(a.Ha=0,a.W=a.Rc,a.Tb=a.ec)}l.zc=function(){return 0};l.save=function(){var a=new M(this);a.set(0,[]);a.set(1,[this.Ta,this.R,this.mb]);a.set(2,Fb(this.C));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Ta=b[0];this.R=b[1];Nc(this,b[3]);a:{b=this.C;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.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.L[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
||||
l.ra=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.I[b]=d;this.Ia++;a=!0;break;default:a=this.parent.ra.call(this,a,b,d)}return a};
|
||||
l.ta=function(a){if(this.Ia&&(a||!this.j.ea||this.j.xc)){for(a=0;a<this.i.length;a++)Mc(this,"R"+a,this.i[a]);a=Rb(this);Mc(this,"PS",a);Mc(this,"NF",a&8?1:0,1);Mc(this,"ZF",a&4?1:0,1);Mc(this,"VF",a&2?1:0,1);Mc(this,"CF",a&1?1:0,1)}if(a=this.I.speed)a.textContent=this.j.ea&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};function Vc(a){return a.ya&32768?2:0}function Wc(a){return a.za&65535?0:4}function Xc(a){return a.xa&32768?8:0}
|
||||
function H(a,b,d,c,f){for(var e=a.u.length;0<e--;)if(a.u[e].nd===c){0<e&&(a.u[e-1].Xa+=a.u[e].Xa);a.u.splice(e,1);break}if(0<=b){2===a.Kb&&(b=0,a.Kb=0,setTimeout(a.Ib,0));for(e=a.u.length;0<e--;){if(a.u[e].Xa>b){a.u[e].Xa-=b;break}b-=a.u[e].Xa}a.u.splice(e+1,0,{delay:b,priority:d<<5&224,vector:c,callback:f})}a.Na=2}function Rb(a){return a.ga=a.ga&63728|Xc(a)|Wc(a)|Vc(a)|(a.ha&65536?1:0)}
|
||||
function Sb(a,b){a.xa=b<<12;a.za=~b&4;a.ya=b<<14;a.ha=b<<16;if((b^a.ga)&2048)for(var d=a.bb.length;0<=--d;){var c=a.i[d];a.i[d]=a.bb[d];a.bb[d]=c}a.B=b>>14&3;d=a.ga>>14&3;a.B!=d&&(a.Pa[d]=a.i[6],a.i[6]=a.Pa[a.B]);a.Na=2;a.ga=b}function Yc(a,b){a.T&128||(a.xa=a.za=a.ha=b,a.ya=0)}function Zc(a,b){a.T&128||(a.xa=a.za=b,a.ya=0)}function $c(a,b,d,c){a.T&128||(a.xa=a.za=a.ha=b,a.ya=(d^c)&(c^b))}
|
||||
function J(a,b,d){var c=!1;0>a.Y?a.Y=Rb(a):a.B||(b=4,c=!0);a.ba&57344||(a.Ra=63222,a.Eb=b);a.B=0;var f=a.Ga(b|65536),e=a.Ga(b+2&65535|65536);Sb(a,e&53247|a.Y>>2&12288);c&&(a.H|=4,a.i[6]=4);ad(a,a.Y);ad(a,a.i[7]);a.i[7]=f;a.T&=-113;a.Y=-1;throw b|d<<8;}function $b(a,b){var d=b>>13&31;31>d?a.Sa&32&&(b=a.Xb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function bd(a,b,d){var c,f,e,g=0;if(d&a.tb){c=b>>13&a.lb[a.B];f=a.ia[a.B][c];e=(a.ia[a.B][c+16]<<6)+(b&8191)&4194303;a.Sa&16?3932160<=e&&4186112>e&&(e=$b(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.H|=32,J(a,4,24)),e&1&&!(d&1)&&(a.H|=64,J(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;d&4&&(g=8192);break;case 4:g=4096;case 5:d&4&&(g=4096);case 6:f|=d&4?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.ia[a.B][c]=f;if(4194170!==e||a.B)a.Ob=a.B,a.bc=c;g&&(g&57344&&(0<=a.Y&&(g|=128),a.ba&57344||(a.ba=a.ba|g|a.Ob<<5|a.bc<<1),J(a,168,28)),a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.T|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.H|=64,J(a,4,22));return e}l.ec=function(a){return 4194304<=a?this.i[a-4194304]:0<=a?this.C.Ea(a):a};l.Ga=function(a){return this.ec(bd(this,a,2))};
|
||||
function Zb(a,b,d){d&=65535;return 4194304<=b?a.i[b-4194304]=d:0<=b?(a.C.pc(b,d),d):b}function cd(a,b){return 4194304<=b?a.i[b-4194304]&255:0<=b?a.C.Mb(b):b}function dd(a,b,d){d&=255;4194304<=b?a.i[b-4194304]=a.i[b-4194304]&65280|d:0<=b&&a.C.hc(b,d)}function ad(a,b){var d=a.i[6]-2&65535;a.i[6]=d;a.ba&57344||(a.Ra=a.Ra<<8|246);!a.B&&d<=a.Oa&&4<d&&(d<=a.Oa-32?(a.H|=4,a.i[6]=4,J(a,4,32)):(a.H|=8,a.T|=4));d=bd(a,d|65536,4);Zb(a,d,b)}
|
||||
function ed(a,b,d){var c,f,e=b&7,g=d&8?0:a.Ha;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.B&&d&4&&(a.i[6]<=a.Oa||65534<=a.i[6])&&(a.i[6]<=a.Oa-32||65534<=a.i[6]?(a.H|=4,a.i[6]=4,J(a,4,36)):(a.H|=8,a.T|=64)),7===e?a.i[e]:a.i[e]|g;case 2:f=2;c=a.i[e];7!==e&&(c|=g,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.i[e];7!==e&&(c|=g);if(0>(c=a.Ga(c)))return c;c|=g;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.i[e]+f&65535;7!==e&&(c|=g);break;case 5:f=-2;c=a.i[e]-2&65535;7!==e&&(c|=g);if(0>(c=a.Ga(c)))return c;
|
||||
c|=g;break;case 6:if(0>(c=a.Ga(a.i[7])))return c;a.i[7]=a.i[7]+2&65535;c=c+a.i[e]&65535;return c|g;case 7:if(0>(c=a.Ga(a.i[7])))return c;a.i[7]=a.i[7]+2&65535;c=c+a.i[e]&65535;return 0>(c=a.Ga(c|65536))?c:c|g}a.i[e]=a.i[e]+f&65535;!g||a.ba&57344||(a.Ra=a.Ra<<8|f<<3&248|e);6===e&&!a.B&&d&4&&0>=f&&(a.i[6]<=a.Oa||65534<=a.i[6])&&(a.i[6]<=a.Oa-32?(a.H|=4,a.i[6]=4,J(a,4,38)):(a.H|=8,a.T|=64));return c}l.Rc=function(a,b){return ed(this,a,b)};l.Sc=function(a,b){return bd(this,ed(this,a,b),b)};
|
||||
function N(a,b){return b&56?a.Tb(ed(a,b,2)):a.i[b&7]}function fd(a,b){return b&56?cd(a,a.W(b,3)):a.i[b&7]&255}function gd(a,b,d,c){b&56?(b=a.W(b,6),Zb(a,b,c.call(a,d,a.ec(b)))):(b&=7,a.i[b]=c.call(a,d,a.i[b])&65535)}function hd(a,b,d,c){b&56?(b=a.W(b,7),dd(a,b,c.call(a,d,cd(a,b)))):(b&=7,a.i[b]=a.i[b]&65280|c.call(a,d,a.i[b])&255)}function id(a,b,d){b&56?Zb(a,a.W(b,4),d):a.i[b&7]=d&65535;return d}
|
||||
function jd(a,b,d,c){b&56?dd(a,a.W(b,5),d):(b&=7,a.i[b]=d?c&1?d<<24>>24&65535:a.i[b]&-256|d&255:a.i[b]&-256);return d}function O(a,b){return a.i[7]+(b<<24>>23)&65535}
|
||||
l.Ab=function(a){this.j.complete=!0;var b=this.j.Lc=this.D&&kd(this.D),d=a?this.j.qc?0:1:-1;this.j.qc=!1;this.P=this.b=a;this.Ta&256?(Qc(this),a=!1):a=!0;if(a){do{if(b){if(ld(this.D,this.i[7],d)){this.ka();break}d=1}var c,f;this.T&112&&(this.T&32?J(this,168,52):this.T&64?J(this,4,54):this.T&16&&J(this,12,56),this.T&=-113);if(this.Na)if(1===this.Na)this.Na=2;else{this.Na=0;f=-1;a=this.fc&224;if(0<(c=this.u.length))for(;0<c--;){if(0<this.u[c].Xa){this.u[c].Xa--;this.Na=2;break}if(this.u[c].vc){if(!this.u[c].vc()){this.u.splice(c,
|
||||
1);f--;continue}this.u[c].vc=null}this.u[c].Zc>a&&(a=this.u[c].Zc,f=c)}a>(this.ga&224)&&(0>f?J(this,160,42):(J(this,this.u[f].nd,44),this.u.splice(f,1)))}this.ba&57344||(this.Ra=0,this.Eb=this.i[7]);this.T=this.ga&16;this.f=a=this.Ga(this.i[7]);0<=a&&(this.i[7]=this.i[7]+2&65535);this.decode(a);if(0>this.f){this.i[7]=this.i[7]-2&65535;this.g("unimplemented");break}}while(0<this.b)}return this.j.complete?this.P-this.b:void 0===this.j.complete?0:-1};
|
||||
Ma(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Rc(c);lb(c,d)}});function md(a,b){var d=a+b;this.T&128||(this.xa=this.za=this.ha=d,this.ya=(a^d)&(b^d));return d&65535}function nd(a,b){a=~a&b;Zc(this,a);return a}function od(a,b){a=~a&b;Zc(this,a<<8);return a}function pd(a,b){a|=b;Zc(this,a);return a}function qd(a,b){a|=b;Zc(this,a<<8);return a}function rd(a,b){var d=b-a;$c(this,d,a,b);return d&65535}function sd(){this.f=-1;--this.b}
|
||||
function td(){this.f=-1;--this.b}function Q(a){a&1&&(this.ha=0);a&2&&(this.ya=0);a&4&&(this.za=1);a&8&&(this.xa=0);--this.b}function ud(){this.f=-1;--this.b}function vd(a){var b=ed(this,a,8);a=a>>6&7;ad(this,this.i[a]);this.i[a]=this.i[7];this.i[7]=b;--this.b}function wd(){this.f=-1;--this.b}function xd(){--this.b}function R(a){a&1&&(this.ha=65536);a&2&&(this.ya=32768);a&4&&(this.za=0);a&8&&(this.xa=32768);--this.b}function yd(){this.f=-1;--this.b}function zd(){this.f=-1;--this.b}
|
||||
function S(){J(this,8,48)}function Sc(a){Ad[a>>12].call(this,a)}
|
||||
var Ad=[function(a){Bd[a>>8&15].call(this,a)},function(a){Zc(this,id(this,a,N(this,a>>6)));--this.b},function(a){var b=N(this,a>>6);a=N(this,a);$c(this,b-a,a,b);--this.b},function(a){Zc(this,N(this,a>>6)&N(this,a));--this.b},function(a){gd(this,a,N(this,a>>6),nd);--this.b},function(a){gd(this,a,N(this,a>>6),pd);--this.b},function(a){gd(this,a,N(this,a>>6),md);--this.b},function(a){Cd[a>>8&15].call(this,a)},function(a){Dd[a>>8&15].call(this,a)},function(a){var b=fd(this,a>>6);Zc(this,jd(this,a,b,1)<<
|
||||
8);--this.b},function(a){var b=fd(this,a>>6)<<8;a=fd(this,a)<<8;$c(this,b-a,a,b);--this.b},function(a){Zc(this,(fd(this,a>>6)&fd(this,a))<<8);--this.b},function(a){hd(this,a,fd(this,a>>6),od);--this.b},function(a){hd(this,a,fd(this,a>>6),qd);--this.b},function(a){gd(this,a,N(this,a>>6),rd);--this.b},S],Bd=[function(a){Ed[a>>4&15].call(this,a)},function(a){this.i[7]=O(this,a);--this.b},function(a){Wc(this)||(this.i[7]=O(this,a));--this.b},function(a){Wc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!Xc(this)==
|
||||
!Vc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!Xc(this)!=!Vc(this)&&(this.i[7]=O(this,a));--this.b},function(a){Wc(this)||!Xc(this)!=!Vc(this)||(this.i[7]=O(this,a));--this.b},function(a){if(Wc(this)||!Xc(this)!=!Vc(this))this.i[7]=O(this,a);--this.b},vd,vd,function(a){Fd[a>>6&3].call(this,a)},function(a){Gd[a>>6&3].call(this,a)},function(a){Hd[a>>6&3].call(this,a)},function(a){Id[a>>6&3].call(this,a)},S,S],Ed=[function(a){Jd[a&15].call(this,a)},S,S,S,S,S,S,S,function(a){var b=this.Ga(this.i[6]|
|
||||
65536);0<=b&&(this.i[6]=this.i[6]+2&65535);a&=7;this.i[7]=this.i[a];this.i[a]=b;--this.b},function(a){this.ga&49152||(this.ga=this.ga&-2017|(a&7)<<5,this.Na=1);--this.b},function(a){Kd[a&15].call(this,a)},function(a){Ld[a&15].call(this,a)},S,S,S,S],Kd=[xd,function(){this.ha=0;--this.b},function(){this.ya=0;--this.b},Q,function(){this.za=1;--this.b},Q,Q,Q,function(){this.xa=0;--this.b},Q,Q,Q,Q,Q,Q,Q],Ld=[xd,function(){this.ha=65536;--this.b},function(){this.ya=32768;--this.b},R,function(){this.za=
|
||||
0;--this.b},R,R,R,function(){this.xa=32768;--this.b},R,R,R,R,R,R,R],Jd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.ga&49152||(Uc(this),this.C.reset());--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},S,S,S,S,S,S,S,S],Cd=[wd,wd,ud,ud,sd,sd,td,td,zd,zd,S,S,S,S,yd,yd],Dd=[function(a){Xc(this)||(this.i[7]=O(this,a));--this.b},function(a){Xc(this)&&(this.i[7]=
|
||||
O(this,a));--this.b},function(a){this.ha&65536||Wc(this)||(this.i[7]=O(this,a));--this.b},function(a){if(this.ha&65536||Wc(this))this.i[7]=O(this,a);--this.b},function(a){Vc(this)||(this.i[7]=O(this,a));--this.b},function(a){Vc(this)&&(this.i[7]=O(this,a));--this.b},function(a){this.ha&65536||(this.i[7]=O(this,a));--this.b},function(a){this.ha&65536&&(this.i[7]=O(this,a));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(a){Md[a>>6&3].call(this,a)},function(a){Nd[a>>
|
||||
6&3].call(this,a)},function(a){Od[a>>6&3].call(this,a)},function(a){Pd[a>>6&3].call(this,a)},S,S],Fd=[function(a){Yc(this,id(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Gd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Hd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Id=
|
||||
[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Md=[function(a){Yc(this,jd(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Nd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Od=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=
|
||||
-1;--this.b}],Pd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}];function Qd(a){u.call(this,"ROM",a,Qd);this.f=null;this.F=a.addr;this.w=a.size;this.G=a.writable;this.u=a.alias;this.B=a.file;this.K=ea(this.B);if(this.B){a=this.B;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var d=this;ta(a,null,!0,function(a,b,e){pe(d,a,b,e)})}}w(Qd);
|
||||
Qd.prototype.Za=function(a,b,d,c){this.C=b;this.b=d;this.D=c;qe(this)};Qd.prototype.Ma=function(){if(this.Ja){if(this.D){var a=this.D,b=this.id,d=this.F,c=this.w,f=this.Ja,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],q=na(n,k,a.wc);0>q&&n.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({sd:b,A:d,Vc:c,Ja:f,tc:e})}delete this.Ja}return!0};Qd.prototype.La=function(){return!0};
|
||||
function pe(a,b,d,c){if(c)a.ma("Unable to load system ROM (error "+c+": "+b+")");else{Xa(a.uc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,g,h=eval("("+d+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Ja=h.symbols;if(!a.f.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){t(a.f[0]);return}}catch(k){a.ma("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ca(b[f],16);qe(a)}}
|
||||
function qe(a){if(!pb(a))if(!a.B)D(a);else if(a.f&&a.C){a.w||(a.w=a.f.length);if(a.f.length!=a.w)qb(a,"ROM size ("+r(a.f.length,8,!0)+") does not match specified size ("+r(a.w,8,!0)+")");else{var b;b=a.F;if(Ab(a.C,b,a.w,a.G?1:gc)){var d;for(d=0;d<a.f.length;d++){var c=a.C,f=b+d;c.L[(f&c.C)>>>c.S].Cb(f&c.f,a.f[d]&255,f)}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 e=a,c=b[d],f=e.C,g=e.w,h=[],k=e.F>>>f.S;0<g&&k<f.L.length;)h.push(f.L[k++]),
|
||||
g-=f.Aa;f=e.C;e=e.w;g=0;for(c>>>=f.S;0<e&&c<f.L.length;){k=h[g++];if(!k)break;f.L[c++]=k;e-=f.Aa}}delete a.f}}D(a)}}Ma(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Qd(c);lb(c,d)}});function re(a){u.call(this,"RAM",a,re);this.u=a.addr;this.w=a.size;this.f=!1}w(re);l=re.prototype;l.Za=function(a,b,d,c){this.C=b;this.b=d;this.D=c;D(this)};l.Ma=function(a,b){b||this.reset();return!0};l.La=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.f&&this.w&&Ab(this.C,this.u,this.w,1)&&(this.f=!0);this.f||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new re(c);lb(c,d)}});function se(a){u.call(this,"Keyboard",a,se,65536);D(this)}w(se);se.prototype.ra=function(){return!1};se.prototype.Za=function(a,b,d,c){this.w=a;this.b=d;this.D=c;this.$=null};
|
||||
Ma(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new se(c);lb(c,d)}});function te(a){u.call(this,"Debugger",a,te);this.$=a.base||16;this.V=this.Ia=this.K=0;this.Y=!1;this.B=-1;this.u=[];this.fa={}}w(te);var ue={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ve(a,b,d,c){if(d)if(b){0>a.B&&a.u.length&&(a.B=0);if(0>a.B||b!=a.u[a.B])a.u.splice(0,0,b),a.B=0;a.B--}else a.Y?b="end":b=a.u[a.B+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 g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==c&&!f||!g)a.push(ma(b.substring(d,e))),d=e+1}}return a}
|
||||
function we(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 xe(a,b,d){var c;if(b){b=ye(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],q=n.length,n=ma(n);if(!n){e=!0;break}n=ze(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],p=n.length;k.length&&ue[n]<ue[k[k.length-1]]&&we(h,k,1);k.push(n);b=b.substr(q+p)}we(h,k)&&1==h.length||(e=!0);e?d&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(c=h.pop(),d&&Ae(a,null,
|
||||
c))}return c}function ye(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=xe(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.V-a.Ia}if(null==c)break;b=b.replace(d[0],c.toString())}return b}
|
||||
function ze(a,b,d,c){var f;null!=b?(f=a.fa[b],null==f&&(f=ca(b,a.$)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function Ae(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;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+". "+da(d,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+c);return f}
|
||||
function Be(a,b){if(b)return Ae(a,b,a.fa[b]);var d=0;for(b in a.fa)Ae(a,b,a.fa[b]),d++;return 0<d}function T(a,b,d){switch(a.$){case 8:return da(b,d);case 10:return b.toString();default:return r(b,d)}}
|
||||
function Ce(a){te.call(this,a);this.P=V();this.Db=V();this.X=V();this.G=[];this.f=this.R=this.F=[];De(this);this.va=0;Ee(this);this.Ta={};Fe(this,a.messages);this.pb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ge(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ge(b,a)})}w(Ce,te);
|
||||
var He={"?":"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"},Ie="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(" "),
|
||||
Je={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],
|
||||
l.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;a=Hb;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 n=m&8191;void 0!==c.Qa[n]?t("I/O address already registered: "+r(m,8,!0)):c.Qa[n]=[g,h,k,e,!1]}}f=this.Gc.bind(this);b.D=this.reset.bind(this);b.Ib=f;D(this)};l.Xc=function(){var a=this.f.Wa;this.f.Wa&=-129;return a};
|
||||
l.md=function(a){this.f.Wa=a;a&64&&!this.f.Kb&&(setInterval(this.Rc.bind(this),25),this.f.Kb=1);this.f.Wa=a&-129};l.Yc=function(){var a=this.b;return a.B&62337|a.oa<<5|a.sa<<1};l.nd=function(a){var b=4,c=this.b;c.B=a&=62337;c.oa=a>>5&3;c.sa=a>>1&15;c.Zb=a&257?a&1?6:4:0;Rb(c);a=c.B;a&1|256&&(b=this.b.cb&16?1:2);this.w.qb=this.w.qb&-8|b};l.$c=function(){return this.u.ra};
|
||||
l.pd=function(a){if(128==(this.u.ra&192)&&a&64){var b=this;H(this.b,8,4,52,function(){b.u.ra|=128;return!!(b.u.ra&64)})}this.u.ra=this.u.ra&128|a&-129};l.Zc=function(){return Sb(this.b)};l.od=function(a){Tb(this.b,a&-1809|Sb(this.b)&1808);this.b.T|=128};
|
||||
function Ub(a){var b=a.B,c,d,f,e=b.pa>>13&7;"undefined"===typeof b.ka[e]&&(b.ka[e]={cache:[],postProcess:a.ad,drive:e,blocksize:256,mapped:0,maxblock:b.fb[e]*b.V[e],url:"rk"+e+".dsk"});b.M&=-129;switch(b.M>>1&7){case 0:b.Rb=2496;b.ia=0;b.M=128;b.pa=0;break;case 1:if((b.pa>>4&511)>=b.fb[e]){b.ia|=32832;b.M|=49152;break}if((b.pa&15)>=b.V[e]){b.ia|=32800;b.M|=49152;break}c=(b.pa>>4&511)*b.V[e]+(b.pa&15);d=(b.M&48)<<12|b.Qb;f=65536-b.Sb&65535;Vb(a,b.ka[e],c,d,f);return;case 2:if((b.pa>>4&511)>=b.fb[e])b.ia|=
|
||||
32832,b.M|=49152;else if((b.pa&15)>=b.V[e])b.ia|=32800,b.M|=49152;else{c=(b.pa>>4&511)*b.V[e]+(b.pa&15);d=(b.M&48)<<12|b.Qb;f=65536-b.Sb&65535;a.bc(b.ka[e],c,d,f);return}}b.Rb=e<<13|b.Rb&8176|b.pa%9&15;H(a.b,20,5,144,function(){b.M=b.M&65534|128;return!!(b.M&64)})}l.ad=function(a,b,c,d,f){var e=this.B;e.Qb=d&65535;e.M=e.M&-49|d>>12&48;e.Sb=65536-f&65535;switch(a){case 1:e.ia|=33024;e.M|=49152;break;case 2:e.ia|=33792,e.M|=49152}H(this.b,20,5,144,function(){e.M=e.M&65534|128;return!!(e.M&64)})};
|
||||
function Wb(a){var b=a.D,c,d,f,e=b.J>>8&3;b.J&=-2;"undefined"===typeof b.ka[e]&&(b.ka[e]={cache:[],postProcess:a.bd,drive:e,blocksize:128,mapped:1,maxblock:b.fb[e]*b.V[e],url:"rl"+e+".dsk"});switch(b.J>>1&7){case 2:b.Xa&8&&(b.J&=63);b.Xa=b.Hc[e]|b.ab&64;break;case 3:1==(b.$&3)&&(b.ab=b.$&4?b.ab+(b.$&65408)&65408|b.$<<2&64:b.ab-(b.$&65408)&65408|b.$<<2&64,b.$=b.ab);break;case 4:b.Xa=b.ab;break;case 5:if(b.$>>6>=b.fb[e]){b.J|=37888;break}if((b.$&63)>=b.V[e]){b.J|=37888;break}c=(b.$>>6)*b.V[e]+(b.$&
|
||||
63);d=(b.Ra&63)<<16|b.Fb;f=65536-b.Xa&65535;Vb(a,b.ka[e],c,d,f);return;case 6:if(b.$>>6>=b.fb[e])b.J|=37888;else if((b.$&63)>=b.V[e])b.J|=37888;else{c=(b.$>>6)*b.V[e]+(b.$&63);d=(b.Ra&63)<<16|b.Fb;f=65536-b.Xa&65535;a.bc(b.ka[e],c,d,f);return}}H(a.b,20,5,112,function(){b.J|=129;return!!(b.J&64)})}
|
||||
l.bd=function(a,b,c,d,f){var e=this.D;e.Fb=d&65535;e.J=e.J&-49|d>>12&48;e.Ra=d>>16&63;e.$=~~(c/e.V[b.Ka])<<6|c%e.V[b.Ka];e.ab=e.$;e.Xa=65536-f&65535;switch(a){case 1:e.J|=33792;break;case 2:e.J|=40960}H(this.b,20,5,112,function(){e.J|=129;return!!(e.J&64)})};function Xb(a){a=a.G;a.N=2176;a.Aa=0;a.ma=[4544,4544,4544,4544,4544,4544,4544,4544];a.vb=[0,0,0,0,0,0,0,0];a.lb=a.wb=a.ub=a.$a=a.nc=0}
|
||||
function Yb(a,b){var c=a.G,d,f,e;c.N&=-16513;c.Aa&=-2049;c.ma[b]&=-1153;H(a.b,-1,0,172);"undefined"===typeof c.ka[b]&&(c.ka[b]={cache:[],postProcess:a.cd,drive:b,blocksize:256,mapped:0,maxblock:c.fc[0]*c.eb[0]*c.V[0],url:"rp"+b+".dsk"});switch(c.N&63){case 5:c.dc[b]=c.Pa[b];c.N|=32896;c.ma[b]|=32896;c.lb|=1<<b;break;case 9:Xb(a);break;case 19:c.ma[b]|=64;break;case 49:if(c.Pa[b]>=c.fc[0]||c.Ba[b]>>8>=c.eb[0]||(c.Ba[b]&255)>=c.V[0]){c.vb[b]|=1024;c.N|=49152;break}d=(c.Pa[b]*c.eb[0]+(c.Ba[b]>>8))*c.V[0]+
|
||||
(c.Ba[b]&255);f=(c.$a&63)<<16|c.ub;e=65536-c.wb&65535;Vb(a,c.ka[b],d,f,e);return;case 57:if(c.Pa[b]>=c.fc[0]||c.Ba[b]>>8>=c.eb[0]||(c.Ba[b]&255)>=c.V[0])c.vb[b]|=1024,c.N|=49152;else{d=(c.Pa[b]*c.eb[0]+(c.Ba[b]>>8))*c.V[0]+(c.Ba[b]&255);f=(c.$a&63)<<16|c.ub;e=65536-c.wb&65535;a.bc(c.ka[b],d,f,e);return}}H(a.b,3,5,172,function(){c.N=c.N&65534|128;c.ma[b]|=128;return!!(c.N&64)})}
|
||||
l.cd=function(a,b,c,d,f){var e=this.G;e.wb=65536-f&65535;e.ub=d&65535;e.N=e.N&-769|d>>8&768;e.$a=d>>16&63;f=~~(c/e.V[0]);d=~~(f/e.eb[0]);e.Ba[b.Ka]=f%e.eb[0]<<8|c%e.V[0];e.dc[b.Ka]=e.Pa[b.Ka]=d;e.lb|=1<<b.Ka;c>=b.Uc-1&&(e.ma[b.Ka]|=1024);switch(a){case 1:e.Aa|=512;e.N|=49152;break;case 2:e.Aa|=2048,e.N|=49152}H(this.b,20,5,172,function(){e.ma[b.Ka]|=128;e.N=e.N&65534|128;return!!(e.N&64)})};l.Rc=function(){this.f.Wa|=128;this.f.Wa&64&&H(this.b,0,6,64)};
|
||||
function Zb(a,b,c,d,f,e){var g=~~((e+c.Sa-1)/c.Sa),h=new XMLHttpRequest;2048>g&&d+2048<c.Uc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.Sa<<1)+"-"+(((d+g)*c.Sa<<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)c.ac(1,c,d,f,e);else{m=new Uint8Array(m);n=d;for(p=0;p<m.length;){if("undefined"===typeof c.cache[n])for(c.cache[n]=[],q=0;q<c.Sa;q++)c.cache[n][q]=p<m.length?
|
||||
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=c.Sa<<1;n++}g(c,d,f,e)}}};h.send(null)}function I(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:J(a.b,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.bc=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){Zb(this,this.bc,a,b,c,d);return}for(f=0;f<a.Sa&&0<d;f++){if(0>$b(this.b,a.Tc?ac(this.b,c):c,a.cache[b][f])){a.ac(2,a,b,c,d);return}c+=2;--d}b++}a.ac(0,a,b,c,d)};
|
||||
function Vb(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.Sa;e++)b.cache[c][e]=0;for(e=0;e<b.Sa&&0<f;e++){g=a.b.cc(b.Tc?ac(a.b,d):d);if(0>g){b.ac(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.ac(0,b,c,d,f)}l.reset=function(){this.w.qb=this.w.qb&-120|20;this.u.Ga=0;this.u.ra=128;this.f.Wa=0;this.B.M=128;this.D.J=128;Xb(this)};
|
||||
l.Gc=function(a,b,c){var d,f,e=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.Ya&65280:(a&1&&(b<<=8),e.Ya=b|255,d=0);break;case 4194298:if(0>b)d=e.mc;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.mc=d;e.Na=2}break;case 4194294:if(70!==e.ib)return J(e,4);0>b?d=e.H:d=e.H=0;break;case 4194292:if(70!==e.ib)return J(e,4);d=1;break;case 4194290:if(70!==e.ib)return J(e,4);d=0;break;case 4194288:if(70!==e.ib)return J(e,4);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.ib)return J(e,4);f=a-4194272>>1;0>b?d=e.ic[f]:(d=I(this,e.ic[f],a,b,c),0<=d&&(e.ic[f]=d));break;case 4194254:return a&1?e.fa>>14&1?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[3]=b),d=e.Oa[3]):e.fa>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[1]=b),d=e.Oa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.fa&2048?(0<=b&&(e.i[f]=b),d=e.i[f]):(0<=b&&(e.Za[f]=b),d=e.Za[f]),d;
|
||||
case 4194246:return a&1?(0<=b&&(e.i[7]=b),d=e.i[7]):e.fa>>14&0?(0<=b&&(e.i[6]=b),d=e.i[6]):(0<=b&&(e.Oa[0]=b),d=e.Oa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.fa&2048?(0<=b&&(e.Za[f]=b),d=e.Za[f]):(0<=b&&(e.i[f]=b),d=e.i[f]),d;default:return e.H|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.ha[3][f],a,b,c);0<=d&&(e.ha[3][f]=d,e.ha[3][f&15]&=65295);break;case 4194112:var g=this.u;switch(a&-2){case 4194174:d=I(this,e.Wb,a,b,c);0<=d&&(e.Wb=d);break;case 4194172:d=e.bb;d&65280&&
|
||||
(d=(d<<8|d>>8)&65535);break;case 4194168:0>b?d=this.w.kd&65535:(d=I(this,this.w.data,a,b,c),0<=d&&(this.w.data=d));break;case 4194166:0<=b&&(b&127&&(g.Lc=0),g.ra&=-129,H(e,100,4,52,function(){g.ra|=128;return!!(g.ra&64)}));d=0;break;case 4194162:d=0;0>b&&(g.Ga&=-129,0<g.kc.length&&(d=g.kc.shift(),0<g.kc.length&&setTimeout(function(){g.Ga|=128;g.Ga&64&&H(e,40,4,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;default:return e.H|=16,J(e,4)}break;case 4194048:f=
|
||||
this.B;switch(a&-2){case 4194048:d=I(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;case 4194050:d=I(this,f.ia,a,b,c);0<=d&&(f.ia=d);break;case 4194052:d=I(this,f.M,a,b,c);0<=b&&0<=d&&(f.M=d&-36993|f.M&36992,f.M&1&&Ub(this));break;case 4194054:d=I(this,f.Sb,a,b,c);0<=d&&(f.Sb=d);break;case 4194056:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;case 4194058:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d);break;case 4194060:break;case 4194062:d=I(this,f.zc,a,b,c);0<=d&&(f.zc=d);break;default:return e.H|=16,J(e,4)}break;case 4193728:var h=
|
||||
this.G;f=h.Aa&7;switch(a&-2){case 4193728:d=I(this,h.N,a,b,c);0<=b&&0<=d&&(h.$a=h.$a&60|d>>8&3,h.N=d&17279|h.N&34944|2048,d&1&&h.N&128?Yb(this,f):192==(d&192)&&H(e,0,5,172));break;case 4193730:d=I(this,h.wb,a,b,c);0<=d&&(h.wb=d);break;case 4193732:d=I(this,h.ub,a,b,c);0<=d&&(h.ub=d&65534);break;case 4193734:d=I(this,h.Ba[f],a,b,c);0<=d&&(h.Ba[f]=d&7967);break;case 4193736:d=I(this,h.Aa,a,b,c);0<=d&&(h.Aa=d&63|h.Aa&65472,d&128&&Xb(this));break;case 4193738:d=h.ma[f];break;case 4193740:d=h.vb[f];break;
|
||||
case 4193742:d=I(this,h.lb,a,b,c);0<=d&&(h.lb=d&255);break;case 4193744:d=h.hd[f];break;case 4193746:d=I(this,h.Ac,a,b,c);0<=d&&(h.Ac=d);break;case 4193748:d=I(this,h.Bc[f],a,b,c);0<=d&&(h.Bc[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.jd[f];break;case 4193754:d=I(this,h.Cc[f],a,b,c);0<=d&&(h.Cc[f]=d);break;case 4193756:d=I(this,h.Pa[f],a,b,c);0<=d&&(h.Pa[f]=d&511);break;case 4193758:h.dc[f]=h.Pa[f];d=h.dc[f];break;case 4193760:d=h.fd[f];break;case 4193762:d=h.gd[f];break;case 4193764:d=
|
||||
h.dd[f];break;case 4193766:d=h.ed[f];break;case 4193768:d=I(this,h.$a,a,b,c);0<=d&&(h.$a=d&63,h.N=h.N&-769|(d&3)<<8);break;case 4193770:d=I(this,h.nc,a,b,c);0<=d&&(h.nc=d);break;default:return e.H|=16,J(e,4)}break;case 4192512:f=this.D;switch(a&-2){case 4192512:d=I(this,f.J,a,b,c);0<=b&&0<=d&&(f.Ra=f.Ra&60|d>>4&3,f.J=f.J&-1023|d&1022,f.J&128||Wb(this));break;case 4192514:d=I(this,f.Fb,a,b,c);0<=d&&(f.Fb=d&65534);break;case 4192516:d=I(this,f.$,a,b,c);0<=d&&(f.$=d);break;case 4192518:d=I(this,f.Xa,
|
||||
a,b,c);0<=d&&(f.Xa=d);break;case 4192520:d=I(this,f.Ra,a,b,c);0<=d&&(f.Ra=d&63,f.J=f.J&-49|(f.Ra&3)<<4);break;default:return e.H|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.cb:(d=I(this,e.cb,a,b,c),0<=d&&(70!==e.ib&&(d&=-49),e.cb=d,e.$b[0]=d&4?15:7,e.$b[1]=d&2?15:7,e.$b[3]=d&1?15:7,e.Zb&&(f=2,e.cb&16&&(f=1),this.w.qb=this.w.qb&-8|f)));break;default:return e.H|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.ha[0][f],a,b,c);0<=d&&(e.ha[0][f]=d,e.ha[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;d=I(this,e.ha[1][f],a,b,c);0<=d&&(e.ha[1][f]=d,e.ha[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.ib)return J(e,4);f=a>>2&31;d=e.Tb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Tb[f]=a&2?d<<16|e.Tb[f]&65535:e.Tb[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=Gb[a>>1&255];else return e.H|=16,J(e,4);break;default:return e.H|=16,J(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===
|
||||
typeof d&&console.log("panic(76)");return d};var bc={},Hb=(bc[65382]=[null,null,G.prototype.Xc,G.prototype.md],bc[65402]=[null,null,G.prototype.Yc,G.prototype.nd],bc[65396]=[null,null,G.prototype.$c,G.prototype.pd],bc[65534]=[null,null,G.prototype.Zc,G.prototype.od],bc);Ma(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new G(d);lb(d,c)}});var cc;
|
||||
if(rb){var dc=new ArrayBuffer(2);(new DataView(dc)).setUint16(0,256,!0);cc=256===(new Uint16Array(dc))[0]}else cc=!1;var ec=cc;
|
||||
function F(a,b,c,d,f){this.id=fc+=2;this.b=null;this.A=a;this.Vb=b;this.size=c||0;this.type=d||gc;this.C=d==hc;this.controller=null;vb(this);this.Ua=this.Mc=!1;if(c)if(f)this.controller=f,this.b=null,ic(this,f.Cb);else if(rb)this.B=new ArrayBuffer(c),this.D=new DataView(this.B,0,c),this.f=new Uint8Array(this.B,0,c),this.K=new Uint16Array(this.B,0,c>>1),this.b=new Int32Array(this.B,0,c>>2),ic(this,ec?jc:kc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;ic(this,lc)}else ic(this)}
|
||||
var gc=0,hc=2,Bb=4,Db=["NONE","RAM","ROM","VID","H/W"],fc=0;
|
||||
F.prototype={constructor:F,parent:null,Kb:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.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(rb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ua=!0}return!1},gb:function(a,b){b?this.u++||mc(this,nc,!1):this.I++||oc(this,nc,!1)},O:function(){this.F&&mb(this.F,
|
||||
129)&&this.F.message("attempt to read invalid block %"+r(this.A),!0);return 255},w:function(a,b){this.F&&mb(this.F,129)&&this.F.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},P:function(a,b){return this.tb(a++,b++)|this.tb(a,b)<<8},G:function(a,b,c){this.yb(a++,b&255,c++);this.yb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},na:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ua:function(a,b){var c=a>>
|
||||
2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ua=!0},Ab:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ua=!0},U:function(a,b){if(this.F&&null!=this.A){var c=this.F;pc(c,this.A+a,1,c.R)&&c.ja(!0)}return this.Ob(a,b)},aa:function(a,b){if(this.F&&null!=this.A){var c=this.F;pc(c,this.A+a,2,c.R)&&c.ja(!0)}return this.lc(a,b)},sa:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;pc(d,this.A+
|
||||
a,1,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.zb(a,b,c)},Da:function(a,b,c){if(this.F&&null!=this.A){var d=this.F;pc(d,this.A+a,2,d.D)&&d.ja(!0)}this.C?this.w(a,b,c):this.qc(a,b,c)},R:function(a){return this.f[a]},X:function(a){return this.f[a]},Z:function(a){return this.D.getUint16(a,!0)},ca:function(a){return a&1?this.f[a]|this.f[a+1]<<8:this.K[a>>1]},oa:function(a,b){this.f[a]=b;this.Ua=!0},ta:function(a,b){this.f[a]=b;this.Ua=!0},Ca:function(a,b){this.D.setUint16(a,b,!0);this.Ua=!0},Ia:function(a,
|
||||
b){a&1?(this.f[a]=b,this.f[a+1]=b>>8):this.K[a>>1]=b;this.Ua=!0}};function vb(a,b,c){a.F=b;a.I=a.u=0;c&&((a.I=c.I)&&oc(a,nc,!1),(a.u=c.u)&&mc(a,nc,!1))}function qc(a,b){b?--a.u||(a.yb=a.C?a.w:a.zb,a.Ec=a.C?a.G:a.qc):--a.I||(a.tb=a.Ob,a.Pb=a.lc)}function mc(a,b,c){c&&a.u||(a.yb=!a.C&&b[1]||a.w,a.Ec=!a.C&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.qc=b[3]||a.G}function oc(a,b,c){c&&a.I||(a.tb=b[0]||a.O,a.Pb=b[2]||a.P);if(c||void 0===c)a.Ob=b[0]||a.O,a.lc=b[2]||a.P}
|
||||
function ic(a,b){b||(b=rc);oc(a,b,void 0);mc(a,b,void 0)}var rc=[],lc=[F.prototype.Y,F.prototype.ua,F.prototype.na,F.prototype.Ab],nc=[F.prototype.U,F.prototype.sa,F.prototype.aa,F.prototype.Da];if(rb)var kc=[F.prototype.R,F.prototype.oa,F.prototype.Z,F.prototype.Ca],jc=[F.prototype.X,F.prototype.ta,F.prototype.ca,F.prototype.Ia];
|
||||
function sc(a,b){u.call(this,"CPU",a,sc,1);var c=a.multiplier||1;this.Da=a.cycles||b;this.kb=c;this.Ca=Math.round(this.Da/1E4)/100;this.jb=this.Ca*this.kb;this.j.ea=!1;this.j.pc=!1;this.j.Db=a.autoStart;this.j.wc=!1;this.j.pb=!1;this.Lb=this.X=0;this.Mb=a.csStart;this.rb=a.csInterval;this.sb=a.csStop;this.na=[];this.Hb=this.mb.bind(this);D(this)}w(sc);var tc=["power","reset"];l=sc.prototype;
|
||||
l.Va=function(a,b,c,d){this.u=a;this.C=b;this.F=d;for(b=0;b<tc.length;b++)(c=this.I[tc[b]])&&this.u.qa(null,tc[b],c);this.aa=null;a=uc(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Ma=function(a,b){if(!b){if(a&&this.restore){Jc(this);if(!this.restore(a))return!1;Kc(this)}else this.reset();this.F?this.F.Kb():this.g("No debugger detected")}K(this);return!0};
|
||||
l.La=function(a){return a?this.save():!0};l.Db=function(){return this.j.Db||!this.F&&void 0===this.I.run?(this.mb(!0),!0):!1};l.yc=function(){return 0};function Kc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.rb&&(a.rb=-1);void 0===a.sb&&(a.sb=-1);a.j.pb=0<=a.Mb&&0<a.rb;a.j.pb&&(a.Lb=0,a.X=a.Mb-a.U)}function Lc(a,b){if(a.j.pb){var c=!1;a.Lb=a.Lb+a.yc()|0;a.X-=b;0>=a.X&&(a.X+=a.rb,c=!0);0<=a.sb&&a.sb<=Mc(a)&&(a.rb=a.sb=-1,Kc(a),a.ja(),c=!0);c&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
|
||||
function Nc(a,b,c,d){if(a.I[b]){void 0===c&&(qb(a,"Value for "+b+" is invalid"),a.ja());var f=a.F&&a.F.Z||8;c=!a.j.ea||a.j.wc?8==f?da(c,d):r(c,d):"--------".substr(0,d||4);a.I[b].textContent!=c&&(a.I[b].textContent=c)}}
|
||||
l.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.I[b]=c;a=!0;break;case "run":this.I[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.j.ba)a=!0;else{var b=null,c,h=Ya(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.ba);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Yb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ea?d.ja():d.mb())};
|
||||
a=!0;break;case "speed":this.I[b]=c;a=!0;break;case "setSpeed":this.I[b]=c,c.onclick=function(){Oc(d,d.kb<<1,!0)},c.textContent=this.jb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,c){a.U+=b;c&&(a.G=a.b=0)}function Qc(a,b){var c=1;b&&1<a.kb&&a.P&&(c=a.P/a.Ca);a.Eb=Math.round(1E3/30);a.ua=Math.floor(a.Da/30*c);b||(a.Y=a.ua);a.Ia=0}function Mc(a){return a.U+a.O+a.G-a.b}function Jc(a){a.P=0;a.Gb=0;a.U=a.O=a.G=a.b=0;Kc(a);Oc(a,1)}
|
||||
function Oc(a,b,c){var d=!1;if(void 0!==b){.8>a.P/a.jb?b=1:d=!0;a.kb=b;b=a.Ca*a.kb;if(a.jb!=b){a.jb=b;b=a.jb.toFixed(2)+"Mhz";var f=a.I.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Ub()}Pc(a,a.O);a.O=0;a.K=oa();a.R=0;Qc(a);return d}
|
||||
l.mb=function(a){if(nb(this,!0)){if(!this.j.ea){Oc(this);this.u&&this.u.start(this.K,Mc(this));this.j.ea=!0;this.j.pc=!0;this.aa&&this.aa.start();var b=this.I.run;b&&(b.textContent="Halt");this.u&&(this.u.va(!0),a&&this.u.Ub(!0))}this.Ia>=this.Da&&Qc(this,!0);this.ca=0;this.ta=oa();this.R&&(a=this.ta-this.R,a>this.Eb&&(this.K+=a,this.K>this.ta&&(this.K=this.ta)));try{do{for(var c,d=this.j.pb?1:this.ua,f=this.na.length-1;0<=f;f--){var e=this.na[f];0>e[0]||d>e[0]&&(d=e[0])}c=d;try{this.xb(c)}catch(m){if("number"!=
|
||||
typeof m)throw m;}var g=this.G-this.b;a=g;for(var h=this.na.length-1;0<=h;h--){var k=this.na[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ca+=g;this.O+=g;Pc(this,0,!0);Lc(this,g);this.Y-=g;if(0>=this.Y){this.Y+=this.ua;15<=++this.Gb&&(this.u&&this.u.va(),this.Gb=0);break}}while(this.j.ea)}catch(m){this.ja();K(this);this.u&&this.u.stop(oa(),Mc(this));nb(this,!1);qb(this,m.stack||m.message);return}c=setTimeout;d=this.Hb;this.R=oa();f=this.Eb;this.ca&&(f=Math.round(f*this.ca/this.ua));f-=this.R-
|
||||
this.ta;if(e=this.R-this.K)this.P=Math.round(this.O/(10*e))/100,864E5<=e&&(this.U=0,Oc(this));if(0>f||this.P<this.jb)-1E3>f&&(this.K-=f),f=0;this.Ia+=this.ca;this.R+=f;c(d,f)}else K(this),this.u&&this.u.stop(oa(),Mc(this))};l.xb=function(){return 0};l.ja=function(a){ob(this,!0);this.G-=this.b;this.b=0;Pc(this,this.O);this.O=0;if(this.j.ea){this.j.ea=!1;this.aa&&this.aa.stop();var b=this.I.run;b&&(b.textContent="Run")}this.j.complete=a};function K(a,b){a.u&&a.u.va(b)}
|
||||
function Rc(a){this.Vc=+a.model||1170;this.jc=a.resetAddr||0;sc.call(this,a,1E6);this.Bb=0;this.decode=Sc.bind(this);this.ga=65536;this.xa=32768;this.ya=65535;this.wa=32768;this.i=[0,0,0,0,0,0,0,this.jc];this.Za=[0,0,0,0,0,0];this.Oa=[0,0,0,0];this.sa=this.D=0;this.ha=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Tb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.ic=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.f=-1;this.T=0;this.ib=70;this.Z=-1;this.Xb=0;Tc(this);this.j.complete=this.j.Kc=!1}w(Rc,sc);l=Rc.prototype;l.reset=function(){this.j.ea&&this.ja();Tc(this);Jc(this);this.j.error=!1;this.parent.reset.call(this)};
|
||||
function Tc(a){a.Ya=255;a.H=0;a.mc=0;a.B=0;a.bb=0;a.Wb=0;a.cb=0;a.Zb=0;a.oa=0;a.$b=[7,7,7,7];a.w=[];a.Na=2;Rb(a)}function Rb(a){a.Zb?(a.nb=65536,a.W=a.Pc,a.Pb=a.Ha):(a.nb=0,a.W=a.Oc,a.Pb=a.cc)}l.yc=function(){return 0};l.save=function(){var a=new L(this);a.set(0,[]);a.set(1,[this.U,this.kb]);a.set(2,Fb(this.C));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.U=b[1];Oc(this,b[3]);a:{b=this.C;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.L[d];if(!e||!e.restore(f)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.qa=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.I[b]=c;this.Bb++;a=!0;break;default:a=this.parent.qa.call(this,a,b,c)}return a};
|
||||
l.va=function(a){if(this.Bb&&(a||!this.j.ea||this.j.wc)){for(a=0;a<this.i.length;a++)Nc(this,"R"+a,this.i[a]);a=Sb(this);Nc(this,"PS",a);Nc(this,"NF",a&8?1:0,1);Nc(this,"ZF",a&4?1:0,1);Nc(this,"VF",a&2?1:0,1);Nc(this,"CF",a&1?1:0,1)}if(a=this.I.speed)a.textContent=this.j.ea&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};function Uc(a){return a.xa&32768?2:0}function Vc(a){return a.ya&65535?0:4}function Wc(a){return a.wa&32768?8:0}
|
||||
function H(a,b,c,d,f){for(var e=a.w.length;0<e--;)if(a.w[e].ld===d){0<e&&(a.w[e-1].Ta+=a.w[e].Ta);a.w.splice(e,1);break}if(0<=b){2===a.Xb&&(b=0,a.Xb=0,setTimeout(a.Hb,0));for(e=a.w.length;0<e--;){if(a.w[e].Ta>b){a.w[e].Ta-=b;break}b-=a.w[e].Ta}a.w.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.Na=2}function Sb(a){return a.fa=a.fa&63728|Wc(a)|Vc(a)|Uc(a)|(a.ga&65536?1:0)}
|
||||
function Tb(a,b){a.wa=b<<12;a.ya=~b&4;a.xa=b<<14;a.ga=b<<16;if((b^a.fa)&2048)for(var c=a.Za.length;0<=--c;){var d=a.i[c];a.i[c]=a.Za[c];a.Za[c]=d}a.D=b>>14&3;c=a.fa>>14&3;a.D!=c&&(a.Oa[c]=a.i[6],a.i[6]=a.Oa[a.D]);a.Na=2;a.fa=b}function Xc(a,b){a.T&128||(a.wa=a.ya=a.ga=b,a.xa=0)}function Yc(a,b){a.T&128||(a.wa=a.ya=b,a.xa=0)}function Zc(a,b,c,d){a.T&128||(a.wa=a.ya=a.ga=b,a.xa=(c^d)&(d^b))}
|
||||
function J(a,b){var c=!1;0>a.Z?a.Z=Sb(a):a.D||(b=4,c=!0);a.B&57344||(a.bb=63222,a.Wb=b);a.D=0;var d=a.Ha(b|65536),f=a.Ha(b+2&65535|65536);Tb(a,f&53247|a.Z>>2&12288);c&&(a.H|=4,a.i[6]=4);$c(a,a.Z);$c(a,a.i[7]);a.i[7]=d;a.T&=-113;a.Z=-1;throw b;}function ac(a,b){var c=b>>13&31;31>c?a.cb&32&&(b=a.Tb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function ad(a,b,c){var d,f,e,g=0;if(c&a.Zb){d=b>>13&a.$b[a.D];f=a.ha[a.D][d];e=(a.ha[a.D][d+16]<<6)+(b&8191)&4194303;a.cb&16?3932160<=e&&4186112>e&&(e=ac(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.H|=32,J(a,4)),e&1&&!(c&1)&&(a.H|=64,J(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?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.ha[a.D][d]=f;if(4194170!==e||a.D)a.oa=a.D,a.sa=d;g&&(g&57344&&(0<=a.Z&&(g|=128),a.B&57344||(a.B=a.B|g|a.oa<<5|a.sa<<1),J(a,168)),a.B&61440||!(4191360>e||4194239<e)||(a.B|=4096,a.B&512&&(a.T|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.H|=64,J(a,4));return e}l.cc=function(a){return 4194304<=a?this.i[a-4194304]:0<=a?this.C.Fa(a):a};l.Ha=function(a){return this.cc(ad(this,a,2))};function $b(a,b,c){c&=65535;return 4194304<=b?a.i[b-4194304]=c:0<=b?(a.C.oc(b,c),c):b}
|
||||
function bd(a,b){return 4194304<=b?a.i[b-4194304]&255:0<=b?a.C.Jb(b):b}function cd(a,b,c){c&=255;4194304<=b?a.i[b-4194304]=a.i[b-4194304]&65280|c:0<=b&&a.C.ec(b,c)}function $c(a,b){var c=a.i[6]-2&65535;a.i[6]=c;a.B&57344||(a.bb=a.bb<<8|246);!a.D&&c<=a.Ya&&4<c&&(c<=a.Ya-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=4));c=ad(a,c|65536,4);$b(a,c,b)}
|
||||
function dd(a,b,c){var d,f,e=b&7,g=c&8?0:a.nb;switch(b>>3&7){case 0:J(a,4);break;case 1:return 6===e&&!a.D&&c&4&&(a.i[6]<=a.Ya||65534<=a.i[6])&&(a.i[6]<=a.Ya-32||65534<=a.i[6]?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=64)),7===e?a.i[e]:a.i[e]|g;case 2:f=2;d=a.i[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.i[e];7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.i[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.i[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.Ha(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return d|g;case 7:if(0>(d=a.Ha(a.i[7])))return d;a.i[7]=a.i[7]+2&65535;d=d+a.i[e]&65535;return 0>(d=a.Ha(d|65536))?d:d|g}a.i[e]=a.i[e]+f&65535;!g||a.B&57344||(a.bb=a.bb<<8|f<<3&248|e);6===e&&!a.D&&c&4&&0>=f&&(a.i[6]<=a.Ya||65534<=a.i[6])&&(a.i[6]<=a.Ya-32?(a.H|=4,a.i[6]=4,J(a,4)):(a.H|=8,a.T|=64));return d}l.Oc=function(a,b){return dd(this,a,b)};l.Pc=function(a,b){return ad(this,dd(this,a,b),b)};
|
||||
function N(a,b){return b&56?a.Pb(dd(a,b,2)):a.i[b&7]}function ed(a,b){return b&56?bd(a,a.W(b,3)):a.i[b&7]&255}function fd(a,b,c,d){b&56?(b=a.W(b,6),$b(a,b,d.call(a,c,a.cc(b)))):(b&=7,a.i[b]=d.call(a,c,a.i[b])&65535)}function gd(a,b,c,d){b&56?(b=a.W(b,7),cd(a,b,d.call(a,c,bd(a,b)))):(b&=7,a.i[b]=a.i[b]&65280|d.call(a,c,a.i[b])&255)}function hd(a,b,c){b&56?$b(a,a.W(b,4),c):a.i[b&7]=c&65535;return c}
|
||||
function id(a,b,c,d){b&56?cd(a,a.W(b,5),c):(b&=7,a.i[b]=c?d&1?c<<24>>24&65535:a.i[b]&-256|c&255:a.i[b]&-256);return c}function O(a,b){return a.i[7]+(b<<24>>23)&65535}
|
||||
l.xb=function(a){this.j.complete=!0;var b=this.j.Kc=this.F&&jd(this.F),c=a?this.j.pc?0:1:-1;this.j.pc=!1;this.G=this.b=a;do{if(b){if(kd(this.F,this.i[7],c)){this.ja();break}c=1}this.T&112&&(this.T&32?J(this,168):this.T&64?J(this,4):this.T&16&&J(this,12),this.T&=-113);if(this.Na)if(1==this.Na)this.Na=2;else{this.Na=0;a=null;for(var d=this.mc&224,f=this.w.length;0<=--f;){if(0<this.w[f].Ta){this.w[f].Ta--;this.Na=2;break}if(this.w[f].uc){if(!this.w[f].uc()){this.w.splice(f,1);continue}this.w[f].uc=null}this.w[f].Wc>
|
||||
d&&(d=this.w[f].Wc,a=this.w[f],this.w.splice(f,1))}d>(this.fa&224)&&(a?J(this,a.ld):J(this,160))}this.B&57344||(this.bb=0,this.Wb=this.i[7]);this.T=this.fa&16;a=this.f=this.Ha(this.i[7]);0<=a&&(this.i[7]=this.i[7]+2&65535);this.decode(a);if(0>this.f){this.i[7]=this.i[7]-2&65535;this.g("unimplemented");break}}while(0<this.b);return this.j.complete?this.G-this.b:void 0===this.j.complete?0:-1};Ma(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Rc(d);lb(d,c)}});
|
||||
function ld(a,b){var c=a+b;this.T&128||(this.wa=this.ya=this.ga=c,this.xa=(a^c)&(b^c));return c&65535}function md(a,b){a=~a&b;Yc(this,a);return a}function nd(a,b){a=~a&b;Yc(this,a<<8);return a}function od(a,b){a|=b;Yc(this,a);return a}function pd(a,b){a|=b;Yc(this,a<<8);return a}function qd(a,b){var c=b-a;Zc(this,c,a,b);return c&65535}function rd(){this.f=-1;--this.b}function sd(){this.f=-1;--this.b}function P(a){a&1&&(this.ga=0);a&2&&(this.xa=0);a&4&&(this.ya=1);a&8&&(this.wa=0);--this.b}
|
||||
function td(){this.f=-1;--this.b}function ud(a){var b=dd(this,a,8);a=a>>6&7;$c(this,this.i[a]);this.i[a]=this.i[7];this.i[7]=b;--this.b}function vd(){this.f=-1;--this.b}function wd(){--this.b}function R(a){a&1&&(this.ga=65536);a&2&&(this.xa=32768);a&4&&(this.ya=0);a&8&&(this.wa=32768);--this.b}function xd(){this.f=-1;--this.b}function yd(){this.f=-1;--this.b}function S(){J(this,8)}function Sc(a){zd[a>>12].call(this,a)}
|
||||
var zd=[function(a){Ad[a>>8&15].call(this,a)},function(a){Yc(this,hd(this,a,N(this,a>>6)));--this.b},function(a){var b=N(this,a>>6);a=N(this,a);Zc(this,b-a,a,b);--this.b},function(a){Yc(this,N(this,a>>6)&N(this,a));--this.b},function(a){fd(this,a,N(this,a>>6),md);--this.b},function(a){fd(this,a,N(this,a>>6),od);--this.b},function(a){fd(this,a,N(this,a>>6),ld);--this.b},function(a){Bd[a>>8&15].call(this,a)},function(a){Cd[a>>8&15].call(this,a)},function(a){var b=ed(this,a>>6);Yc(this,id(this,a,b,1)<<
|
||||
8);--this.b},function(a){var b=ed(this,a>>6)<<8;a=ed(this,a)<<8;Zc(this,b-a,a,b);--this.b},function(a){Yc(this,(ed(this,a>>6)&ed(this,a))<<8);--this.b},function(a){gd(this,a,ed(this,a>>6),nd);--this.b},function(a){gd(this,a,ed(this,a>>6),pd);--this.b},function(a){fd(this,a,N(this,a>>6),qd);--this.b},S],Ad=[function(a){Dd[a>>4&15].call(this,a)},function(a){this.i[7]=O(this,a);--this.b},function(a){Vc(this)||(this.i[7]=O(this,a));--this.b},function(a){Vc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!Wc(this)==
|
||||
!Uc(this)&&(this.i[7]=O(this,a));--this.b},function(a){!Wc(this)!=!Uc(this)&&(this.i[7]=O(this,a));--this.b},function(a){Vc(this)||!Wc(this)!=!Uc(this)||(this.i[7]=O(this,a));--this.b},function(a){if(Vc(this)||!Wc(this)!=!Uc(this))this.i[7]=O(this,a);--this.b},ud,ud,function(a){Ed[a>>6&3].call(this,a)},function(a){Fd[a>>6&3].call(this,a)},function(a){Gd[a>>6&3].call(this,a)},function(a){Hd[a>>6&3].call(this,a)},S,S],Dd=[function(a){Id[a&15].call(this,a)},S,S,S,S,S,S,S,function(a){var b=this.Ha(this.i[6]|
|
||||
65536);0<=b&&(this.i[6]=this.i[6]+2&65535);a&=7;this.i[7]=this.i[a];this.i[a]=b;--this.b},function(a){this.fa&49152||(this.fa=this.fa&-2017|(a&7)<<5,this.Na=1);--this.b},function(a){Jd[a&15].call(this,a)},function(a){Kd[a&15].call(this,a)},S,S,S,S],Jd=[wd,function(){this.ga=0;--this.b},function(){this.xa=0;--this.b},P,function(){this.ya=1;--this.b},P,P,P,function(){this.wa=0;--this.b},P,P,P,P,P,P,P],Kd=[wd,function(){this.ga=65536;--this.b},function(){this.xa=32768;--this.b},R,function(){this.ya=
|
||||
0;--this.b},R,R,R,function(){this.wa=32768;--this.b},R,R,R,R,R,R,R],Id=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.fa&49152||(Tc(this),this.C.reset());--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},S,S,S,S,S,S,S,S],Bd=[vd,vd,td,td,rd,rd,sd,sd,yd,yd,S,S,S,S,xd,xd],Cd=[function(a){Wc(this)||(this.i[7]=O(this,a));--this.b},function(a){Wc(this)&&(this.i[7]=
|
||||
O(this,a));--this.b},function(a){this.ga&65536||Vc(this)||(this.i[7]=O(this,a));--this.b},function(a){if(this.ga&65536||Vc(this))this.i[7]=O(this,a);--this.b},function(a){Uc(this)||(this.i[7]=O(this,a));--this.b},function(a){Uc(this)&&(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536||(this.i[7]=O(this,a));--this.b},function(a){this.ga&65536&&(this.i[7]=O(this,a));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},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)},function(a){Od[a>>6&3].call(this,a)},S,S],Ed=[function(a){Xc(this,hd(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Fd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Gd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Hd=
|
||||
[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Ld=[function(a){Xc(this,id(this,a,0));--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Md=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}],Nd=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=
|
||||
-1;--this.b}],Od=[function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b},function(){this.f=-1;--this.b}];function Pd(a){u.call(this,"ROM",a,Pd);this.f=null;this.D=a.addr;this.u=a.size;this.G=a.writable;this.w=a.alias;this.B=a.file;this.K=ea(this.B);if(this.B){a=this.B;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.B+"&format=bytes&decimal=true");var c=this;ta(a,null,!0,function(a,b,e){oe(c,a,b,e)})}}w(Pd);
|
||||
Pd.prototype.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;pe(this)};Pd.prototype.Ma=function(){if(this.Ja){if(this.F){var a=this.F,b=this.id,c=this.D,d=this.u,f=this.Ja,e=[],g;for(g in f){var h=f[g];"number"==typeof h&&(f[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=e,k=[k>>>0,g],q=na(n,k,a.vc);0>q&&n.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({rd:b,A:c,Sc:d,Ja:f,sc:e})}delete this.Ja}return!0};Pd.prototype.La=function(){return!0};
|
||||
function oe(a,b,c,d){if(d)a.la("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.tc,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.f=e;else if(e=h.words)for(a.f=Array(2*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255;else if(e=h.data)for(a.f=Array(4*e.length),g=f=0;f<e.length;f++)a.f[g++]=e[f]&255,a.f[g++]=e[f]>>8&255,a.f[g++]=e[f]>>16&255,a.f[g++]=e[f]>>24&255;else a.f=h;a.Ja=h.symbols;if(!a.f.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){t(a.f[0]);return}}catch(k){a.la("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),f=0;f<b.length;f++)a.f[f]=ca(b[f],16);pe(a)}}
|
||||
function pe(a){if(!pb(a))if(!a.B)D(a);else if(a.f&&a.C){a.u||(a.u=a.f.length);if(a.f.length!=a.u)qb(a,"ROM size ("+r(a.f.length,8,!0)+") does not match specified size ("+r(a.u,8,!0)+")");else{var b;b=a.D;if(Ab(a.C,b,a.u,a.G?1:hc)){var c;for(c=0;c<a.f.length;c++){var d=a.C,f=b+c;d.L[(f&d.C)>>>d.S].zb(f&d.f,a.f[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.C,g=e.u,h=[],k=e.D>>>f.S;0<g&&k<f.L.length;)h.push(f.L[k++]),
|
||||
g-=f.za;f=e.C;e=e.u;g=0;for(d>>>=f.S;0<e&&d<f.L.length;){k=h[g++];if(!k)break;f.L[d++]=k;e-=f.za}}delete a.f}}D(a)}}Ma(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Pd(d);lb(d,c)}});function qe(a){u.call(this,"RAM",a,qe);this.w=a.addr;this.u=a.size;this.f=!1}w(qe);l=qe.prototype;l.Va=function(a,b,c,d){this.C=b;this.b=c;this.F=d;D(this)};l.Ma=function(a,b){b||this.reset();return!0};l.La=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.f&&this.u&&Ab(this.C,this.w,this.u,1)&&(this.f=!0);this.f||t("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new qe(d);lb(d,c)}});function re(a){u.call(this,"Keyboard",a,re,65536);D(this)}w(re);re.prototype.qa=function(){return!1};re.prototype.Va=function(a,b,c,d){this.u=a;this.b=c;this.F=d;this.aa=null};
|
||||
Ma(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new re(d);lb(d,c)}});function se(a){u.call(this,"Debugger",a,se);this.Z=a.base||16;this.U=this.Da=this.K=0;this.Y=!1;this.B=-1;this.w=[];this.ca={}}w(se);var te={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function ue(a,b,c,d){if(c)if(b){0>a.B&&a.w.length&&(a.B=0);if(0>a.B||b!=a.w[a.B])a.w.splice(0,0,b),a.B=0;a.B--}else a.Y?b="end":b=a.w[a.B+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var f=null;d=d||";";for(var e=0;e<=b.length;e++){var g=b.charAt(e);if('"'==g||"'"==g)f?g==f&&(f=null):f=g;else if(g==d&&!f||!g)a.push(ma(b.substring(c,e))),c=e+1}}return a}
|
||||
function ve(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(d){case "*":d=e*f;break;case "/":if(!f)return!1;d=e/f;break;case "%":if(!f)return!1;d=e%f;break;case "+":d=e+f;break;case "-":d=e-f;break;case "<<":d=e<<f;break;case ">>":d=e>>f;break;case ">>>":d=e>>>f;break;case "<":d=e<f?1:0;break;case "<=":d=e<=f?1:0;break;case ">":d=e>f?1:0;break;case ">=":d=e>=f?1:0;break;case "==":d=e==f?1:0;break;case "!=":d=e!=f?1:0;break;case "&":d=e&f;break;
|
||||
case "^":d=e^f;break;case "|":d=e|f;break;case "&&":d=e&&f?1:0;break;case "||":d=e||f?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function we(a,b,c){var d;if(b){b=xe(a,b);for(var f=0,e=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<m.length;){var n=m[f++],q=n.length,n=ma(n);if(!n){e=!0;break}n=ye(a,n,null,!1===c);if(void 0===n){e=!0;c=!1;break}h.push(n);if(f==m.length)break;var n=m[f++],p=n.length;k.length&&te[n]<te[k[k.length-1]]&&ve(h,k,1);k.push(n);b=b.substr(q+p)}ve(h,k)&&1==h.length||(e=!0);e?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&ze(a,null,
|
||||
d))}return d}function xe(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=we(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?r(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.U-a.Da}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function ye(a,b,c,d){var f;null!=b?(f=a.ca[b],null==f&&(f=ca(b,a.Z)),null!=f||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return f}function ze(a,b,c){var d,f=!1;if(void 0!==c){f=!0;d=c;var e=0,g="";if(!e||4<e)e=4;for(var h=0;h<e;h++){g&&(g=","+g);var k=d&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;d>>=8}d=r(c,0,!0)+" "+c+". "+da(c,0,!0)+" "+("0b"+g)}a.g((null!=b?b+": ":"")+d);return f}
|
||||
function Ae(a,b){if(b)return ze(a,b,a.ca[b]);var c=0;for(b in a.ca)ze(a,b,a.ca[b]),c++;return 0<c}function T(a,b,c){switch(a.Z){case 8:return da(b,3*c);case 10:return b.toString();default:return r(b,2*c)}}
|
||||
function Be(a){se.call(this,a);this.P=V();this.Bb=V();this.X=V();this.G=[];this.f=this.R=this.D=[];Ce(this);this.ta=0;De(this);this.Ia={};Ee(this,a.messages);this.nb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Fe(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Fe(b,a)})}w(Be,se);
|
||||
var Ge={"?":"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"},He="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(" "),
|
||||
Ie={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=Ce.prototype;
|
||||
l.Za=function(a,b,d,c){this.C=b;this.b=d;this.w=a;(a=tc(a,"messages"))&&Fe(this,a);this.$b=Je;Ke(this,function(a){a:{var b=c.C.L,d=a[0],f=a=0,k=b.length;if(d){a=c.W(W(c,d));if(-1===a){c.g("invalid address: "+d);break a}f=a>>>c.C.S;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,m=0;k--;){var n=b[f];n.type==d?m++||c.g("..."):(d=n.type,m=Db[d],n&&c.g(r(n.id,8)+" %"+r(f<<c.C.S,8)+" %%"+r(n.A,8)+" "+r(n.Zb,4,
|
||||
!0)+" "+r(n.size,4,!0)+" "+m),d!=fc&&(d=-1),m=0);a+=c.C.Aa;f++}}});D(this)};
|
||||
l.ra=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.I[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Ge(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.B<c.u.length-1&&(b=c.u[++c.B])):40==a.keyCode&&(0<c.B?b=c.u[--c.B]:(b="",c.B=-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.I[b]=d,Ga(d,function(){if(c.ua){var a=c.ua.value;
|
||||
c.ua.value="";Ge(c,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=d,Ga(d,function(a){var b=!1;ob(c,!0)||(nb(c,!0),b=c.Ab(a?1:0),nb(c,!1));return b}),!0}return!1};l.Yb=function(){this.ua&&this.ua.focus()};l.W=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Mb=function(a,b){var d=255,c=this.W(a,!1,1);-1!==c&&(d=this.C,d=d.L[(c&d.C)>>>d.S].Sb(c&d.f,c),b&&Le(a,b));return d};l.Ea=function(a,b){var d=65535,c=this.W(a,!1,2);-1!==c&&(d=Eb(this.C,c),b&&Le(a,b));return d};
|
||||
l.hc=function(a,b,d){var c=this.W(a,!0,1);if(-1!==c){var f=this.C;f.L[(c&f.C)>>>f.S].Cb(c&f.f,b&255,c);d&&Le(a,d);K(this.b,!0)}};l.pc=function(a,b,d){var c=this.W(a,!0,2);if(-1!==c){var f=this.C,e=c&f.f,g=(c&f.C)>>>f.S;e!=f.f?f.L[g].rc(e,b&65535,c):(f.L[g++].Cb(e,b&255,c),f.L[g&f.w].Cb(0,b>>8&255,c+1));d&&Le(a,d);K(this.b,!0)}};function V(a){return{A:a,Da:!1}}function Me(a){return[a.A,a.Da]}function Ne(a){return{A:a[0],Da:a[1]}}
|
||||
function W(a,b,d){var c;d=(d?a.P:a.Db).A;if(void 0!==b){c=b=ye(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.G.length;d++){var e=a.G[d].Ja[c];if(void 0!==e){c=e.o;void 0!==c&&(f=V(c));break}}if(c=f)return c;d=xe(a,b,void 0)}null!=d&&(c=V(d));return c}function Oe(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Jc=ve(a,b.Ec=d[2]))}function Le(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Fe(a,b){a.D=a;a.da=a.Kc=536870912;a.wa=null;a.Ha=[];b=ve(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var d in E){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.da|=E[d],a.g(d+" messages enabled"))}}function Ke(a,b){for(var d in E)if(64==E[d]){a.Ta[d]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+T(this,V(this.b.i[7]).A));this.da&1073741824?this.Ha.push(a):this.wa&&a==this.wa||(this.wa=a,this.da&-2147483648&&(this.ka(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Qc(a),a.X=0,K(a)))};l.Nb=function(){this.g("Type ? for help with PDP11 Debugger commands");this.ta();if(this.pb){var a=this.pb;this.pb=null;Ge(this,a)}};
|
||||
function Ee(a){var b;if(kd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=V();a.pa=0;a.g("instruction history buffer allocated")}if(!a.oa||!a.oa.length)for(a.oa=Array(256),b=0;b<a.oa.length;b++)a.oa[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.pa=0,a.O=[],a.oa=[]}l.ob=function(a){if(!Pe(this))return!1;this.b.ob(a);return!0};
|
||||
l.Ab=function(a,b,d){if(!Pe(this))return!1;this.K=0;a||kd(this)&&ld(this,this.b.i[7],0);try{var c=this.b.Ab(a);0<c&&(this.K+=c,Oc(this.b,c,!0),Kc(this.b,c),this.V++)}catch(f){"number"!=typeof f&&(this.K=0,qb(this.b,f.stack||f.message))}!1!==d&&K(this.b);this.ta(b||!1);return 0<this.K};l.ka=function(a){this.b&&this.b.ka(a)};l.ta=function(a){void 0===a&&(a=!0);this.P=V(this.b.i[7]);a&&1!=this.aa?Qe(this):Re(this)};
|
||||
function Pe(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.j.ca?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ob(a.b)?(a=a.b,a.j.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.La=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ee(this);this.V=this.Ia=0;this.wa=null;this.K=0;this.P=V(this.b.i[7]);this.j.ea=!1;Se(this);a||this.ta()};
|
||||
l.save=function(){var a=new M(this);a.set(0,Me(this.P));a.set(1,Me(this.X));a.set(2,[this.u,this.Y,this.da]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Ne(a[b++]),this.X=Ne(a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.Y=a[b][1],this.da|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.aa||this.g("running");this.j.ea=!0;this.Nc=a;this.Pc=b};
|
||||
l.stop=function(a,b){if(this.j.ea){this.j.ea=!1;this.K=b-this.Pc;if(!this.aa){b="stopped";if(this.K){a-=this.Nc;var d=0<a?Math.round(1E3*this.K/a):0;b+=" (";kd(this)&&(b+=this.V+" opcodes, ",this.Ia-=this.V,this.V=0);b+=this.K+" cycles, "+a+" ms, "+d+" hz)"}else mb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.ta(!0);this.Yb();Se(this,this.b.i[7])}};function kd(a){return 1<a.f.length||!!a.va}
|
||||
function ld(a,b,d){var c=a.b;if(0<d&&(a.va&&!--a.va||oc(a,b,1,a.f)))return!0;0<=d&&a.oa.length&&(a.V++,null!=Eb(a.C,b)&&(b=a.O[a.pa],b.A=c.i[7],b.Da=!1,++a.pa==a.O.length&&(a.pa=0)));return!1}function De(a){var b,d;a.f=["bp"];if(a.R)for(b=1;b<a.R.length;b++){d=a.R[b];var c=a.C;d=a.W(d);pc(c.L[d>>>c.S],!1)}a.R=["br"];if(a.F)for(b=1;b<a.F.length;b++)d=a.F[b],c=a.C,d=a.W(d),pc(c.L[d>>>c.S],!0);a.F=["bw"];a.Ib=0}
|
||||
l.hb=function(a,b,d){var c=!0;d||Te(this,a,b,!1,!0);if(a!=this.f){var f=this.W(b);if(-1===f)this.g("invalid address: "+T(this,b.A)),c=!1;else{var e=this.C;e.L[f>>>e.S].hb(f&e.f,a==this.F)}}c&&(a.push(b),d?b.Da=!0:(Ue(this,a,a.length-1,"set"),Ee(this)));return c};function Te(a,b,d,c,f){var e=!1;d=a.W(d);for(var g=1;g<b.length;g++){var h=b[g];if(d==a.W(h)&&(!c||h.Da)){e=!0;h.Da||f||Ue(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(c=a.C,pc(c.L[d>>>c.S],b==a.F));h.Da||Ee(a);break}}return e}
|
||||
function Ve(a,b){for(var d=1;d<b.length;d++)Ue(a,b,d);return b.length-1}function Ue(a,b,d,c){d=b[d];a.g(b[0]+" "+T(a,d.A)+(c?" "+c:d.Ec?' "'+d.Ec+'"':""))}function Se(a,b){if(void 0!==b)oc(a,b,1,a.f,!0),a.aa=0;else for(b=1;b<a.f.length;b++){var d=a.f[b];if(d.Da){if(!Te(a,a.f,d,!0))break;b=0}}}
|
||||
function oc(a,b,d,c,f){var e=!1;if(!a.Ib++)for(var g=1;!e&&g<c.length;g++){var h=c[g];if(!f||h.Da)for(var k=a.W(h),m=0;m<d;m++)if(b+m==k){var n,e=!0;h.Da&&(Te(a,c,h,!0),f=!0);if(n=h.Jc){for(var e=!1,q=0;q<n.length;q++)if(!We(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.j.ea||(e=!0)}if(e){f||Ue(a,c,g,"hit");break}}}a.Ib--;return e}
|
||||
function Xe(a,b,d,c){var f=V(b.A),e=a.Ea(b,2),g,h;for(h in a.$b)if(g=a.$b[h][e&h])break;g||(g=[0]);h="";for(var k=Ie[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.A+((e&255)<<24>>23)&65535,x=T(p,q);else if(8192==A)q=q.A-((e&63)<<1)&65535,x=T(p,q);else if(12288==A)x=T(p,e&7,2);else if(24576==A)x=T(p,e&63);else if(A=e&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=X(z);break;case 8:x="@"+X(z);break;case 16:7>z?x="("+X(z)+")+":
|
||||
(A=p.Ea(q,2),x="#"+T(p,A));break;case 24:7>z?x="@("+X(z)+")+":(A=p.Ea(q,2),x="@#"+T(p,A));break;case 32:x="-("+X(z)+")";break;case 40:x="@-("+X(z)+")";break;case 48:A=p.Ea(q,2);x=T(p,A)+"("+X(z)+")";7==z&&(x=[x,T(p,A+q.A&65535)]);break;case 56:A=p.Ea(q,2),x="@"+T(p,A)+"("+X(z)+")",7==z&&(x=[x,T(p,A+q.A&65535)])}p=x;if(!p||!p.length){h="INVALID";break}"string"!=typeof p&&(d=p[1],c=null,p=p[0]);0<h.length&&(h+=",");h+=p||"???"}}e="";g=T(a,f.A)+":";if(-1!==f.A&&-1!==b.A){do if(e+=" "+T(a,a.Ea(f,2)),
|
||||
null==f.A)break;while(f.A!=b.A)}g+=ka(e,24);g+=ka(k,5);h&&(g+=" "+h);d&&(g=ka(g,60)+";"+d,g=a.b.j.rb?g+("cycles="+Lc(a.b).toString()+" cs="+r(a.b.Pb)):g+(null!=c?"="+c.toString():""));return g}function Ye(a,b){switch(b){case "N":a=Xc(a.b);break;case "Z":a=Wc(a.b);break;case "V":a=Vc(a.b);break;case "C":a=a.b.ha&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function X(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
function Ze(a,b){var d="",c=a.b;8>b?(d=X(b),d+="="+T(a,c.i[b])):13>b?d="A"+(b-8)+"="+T(a,c.bb[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+T(a,c.Pa[b-16]):20==b&&(d="PS="+T(a,Rb(c)));d&&(d+=" ");return d}function $e(a){var b,d="";for(b=0;6>b;b++)d+=Ze(a,b);d=d+"\n"+(Ze(a,6)+Ze(a,7)+Ze(a,20));return d+=Ye(a,"T")+Ye(a,"N")+Ye(a,"Z")+Ye(a,"V")+Ye(a,"C")}l.wc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function af(a,b,d){var c=[],f=a.W(b)>>>0;for(b=0;b<a.G.length;b++){var e=a.G[b],g=e.A>>>0,h=e.Vc;if(f>=g&&f<g+h){f=na(e.tc,[f-g],a.wc);0<=f?bf(a,b,f,c):d&&(f=~f,bf(a,b,f-1,c),bf(a,b,f,c));break}}return c}function bf(a,b,d,c){var f={},e=a.G[b].tc,g=0,h=null;0<=d&&d<e.length&&(g=e[d][0],h=e[d][1]);h&&(f=a.G[b].Ja[h],h="."==h.charAt(0)?null:f.l||h);c.push(h);c.push(g);c.push(f.a);c.push(f.c)}
|
||||
function cf(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return Be(a)||a.g("no variables"),!0;if(!d[2])return Be(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;b=xe(a,d[3]);return void 0!==b?(a.fa[d[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function df(a,b,d){var c=null;if(b=W(a,b,!0)){a.W(b);var f=af(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.A-f[1])&&(g=" + "+r(e,4,!0)),e=f[0]+" ("+T(a,f[1])+")"+g,d&&a.g(e),c=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.A)&&(g=" - "+r(e,4,!0)),e=f[4]+" ("+T(a,f[5])+")"+g,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
|
||||
function Qe(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\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.g("missing value for "+b[1]);return}var e=!1,g=xe(a,b);if(void 0!==g)switch(e=!0,f.toUpperCase()){case "PC":c.i[7]=g;a.P=V(c.i[7]);break;case "NF":c.xa=g?32768:0;break;case "ZF":c.za=g?0:1;break;case "VF":c.ya=g?32768:
|
||||
0;break;case "CF":c.ha=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!e){a.g("invalid value: "+b);return}K(c);a.g("updated registers:")}a.g($e(a));d&&(a.P=V(c.i[7]),Re(a,T(a,a.P.A)))}}function ef(a,b){b=ma(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):xe(a,b,!0)}function ff(a,b,d){var c="t"!=b;d=ze(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Fa(d,function(){return nb(a,!0)&&a.Ab(f,c,!1)},function(){K(a.b);nb(a,!1)})}
|
||||
function Re(a,b,d,c){if(b=W(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=W(a,d,!0);if(!c||c.A<b.A)return;f=c.A-b.A;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=ob(a,!1)||a.aa?a.K:null;var g=null!=e?"cycles":null,h=af(a,b),k=b.A;if(h[0]&&c&&(!d&&c||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=Xe(a,b,g,e);a.g(e);a.P=b;f-=b.A-k;d++}}}
|
||||
function We(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.Y&&(a.g("ended assemble at "+T(a,a.X.A)),a.P=a.X,a.Y=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.wa=null;if(pb(a)&&0<b.length){a.Y&&(b="a "+T(a,a.X.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=W(a,e[1],!0);if(n)if(a.X=
|
||||
n,void 0===e[2])a.g("begin assemble at "+T(a,n.A)),a.Y=!0,K(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.hc(n,q[p],1);a.g(Xe(a,a.X))}}break;case "b":a:{var z=e[0],x=e[1],A=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var pa=z.charAt(1);if("l"==pa){var vc;vc=0+Ve(a,a.f);vc+=Ve(a,a.R);(vc+=Ve(a,a.F))||a.g("no breakpoints")}else if("n"==pa)a.va=ze(a,x),a.g("break after "+a.va+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var L=V();if("*"!=x&&(L=W(a,x,!0),!L))break a;"c"==pa?null==L.A?(De(a),a.g("all breakpoints cleared")):Te(a,a.f,L)||Te(a,a.R,L)||Te(a,a.F,L)||a.g("breakpoint missing: "+T(a,L.A)):null!=L.A&&(Oe(a,L,A),"p"==pa?a.hb(a.f,L):"r"==pa?a.hb(a.R,L):"w"==pa?a.hb(a.F,L):
|
||||
a.g("unknown breakpoint command: "+pa))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Aa,Ba=e[0],Y=e[1],qa=e[2],zf=e[3];if("?"==Y){var Ca="";for(Aa in E)a.Ta[Aa]&&(Ca&&(Ca+=","),Ca+=Aa);Ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ca.length&&a.g("dump extension commands:\n\t"+
|
||||
Ca)}else if("state"==Y){var Rd=gf(a.w,!0);"console"==qa?console.log(Rd):(a.ib&&(a.ib.value=""),a.g(Rd))}else if("symbols"==Y)for(var wc=0;wc<a.G.length;wc++){var xc=a.G[wc],Da;for(Da in xc.Ja)if("."!=Da.charAt(0)){var Sd=xc.Ja[Da].o;if(void 0!==Sd){var Td=xc.Ja[Da].l;Td&&(Da=Td);a.g(T(a,Sd)+" "+Da)}}}else{if("d"==Ba){for(Aa in E)if(e[1]==Aa){var Ud=a.Ta[Aa];Ud?(e.shift(),e.shift(),Ud(e)):a.g("no dump registered for "+Y);break a}Y||(Ba=a.Tc||"db")}else a.Tc=Ba;if("dh"==Ba){var Vd=Y,Wd=qa,Xd="",Yd=
|
||||
0,U=a.pa,Z=a.O;if(Z.length){var P=+Vd||a.Kb,Za=+Wd||10;isNaN(P)?P=Za:Xd="more ";P>Z.length&&(a.g("note: only "+Z.length+" available"),P=Z.length);U-=P;0>U&&(null==Z[Z.length-1].A?(P=U+P,U=0):U+=Z.length);var yc=[];"call"==Wd&&(Za=1E5,yc=["CALL"]);for(void 0!==Vd&&a.g(P+" instructions earlier:");0<Za&&U!=a.pa;){var Zd=Z[U++];if(null==Zd.A)break;var $a=V(Zd.A),Af=P--,$d=Xe(a,$a,"history",Af);(!yc.length||0<=$d.indexOf(yc[0]))&&a.g($d);$a.kc&&(U+=$a.kc,Za-=$a.kc,P-=$a.kc);U>=Z.length&&(U=0);a.Kb=P;Yd++;
|
||||
Za--}}Yd||(a.g("no "+Xd+"history available"),a.Kb=void 0)}else{var Ib=W(a,Y);if(Ib){var Jb=0;qa&&("l"==qa.charAt(0)&&(qa=qa.substr(1)||zf),Jb=ze(a,qa)>>>0,65536<Jb&&(Jb=65536));for(var ab="",Ea="dd"==Ba?4:"dw"==Ba?2:1,Kb=Ea*Jb||128,Bf=Kb+15>>4||1;Bf--&&0<Kb;){var bb=0,zc=0,cb,Ac="",ae="",Y=T(a,Ib.A);for(cb=4==Ea?16:a.$;0<cb&&0<Kb;cb--){var Lb=a.Mb(Ib,1),bb=bb|Lb<<(zc++<<3);zc==Ea&&(Ac+=8==a.$?da(bb,3*Ea):r(bb,2*Ea),Ac+=1==Ea?9==cb?"-":" ":" ",bb=zc=0);ae+=32<=Lb&&128>Lb?String.fromCharCode(Lb):".";
|
||||
Kb--}ab&&(ab+="\n");ab+=Y+" "+Ac+(0==cb?" "+ae:"")}ab&&a.g(ab);a.Db=Ib}}}}break;case "e":if("else"==e[0])break;var Mb=1,be=255,ce=a.Mb,de=a.hc;"ew"==e[0]&&(Mb=2,be=65535,ce=a.Ea,de=a.pc);var ee=Mb<<1,fe=e[1];if(null==fe)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Nb=W(a,fe);if(Nb)for(var Ob=2;Ob<e.length;Ob++){var db=xe(a,e[Ob]);if(void 0===db){a.g("unrecognized value: "+e[Ob]);break}db&~be&&a.g("warning: "+r(db)+
|
||||
" exceeds "+Mb+"-byte value");var Cf=ce.call(a,Nb);a.g("changing "+T(a,Nb.A)+" from "+r(Cf,ee,!0)+" to "+r(db,ee,!0));de.call(a,Nb,db,Mb)}}break;case "g":a:{var ge=e[1],Df=b;if(void 0!==ge){var Bc=W(a,ge,!0);if(!Bc)break a;Oe(a,Bc,Df);a.hb(a.f,Bc,!0)}a.ob(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Cc;if(a.j.ea)Cc="halting",a.ka();else{if(ob(a,!0))break a;Cc="already halted"}d||a.g(Cc)}break;case "i":if("if"==e[0]){var Dc;var eb=b.substr(2),eb=ma(eb);xe(a,eb)?
|
||||
(d||a.g("true: "+eb),Dc=!0):(d||a.g("false: "+eb),Dc=!1);Dc||(c=!1)}break;case "k":var Ef=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ec=0,he=V(),fb=V(a.b.i[6]);for(a.g("stack trace for "+T(a,fb.A));10>Ec;){for(var ra=null,Ff=256;65536>fb.A>>>0;){he.A=a.Ea(fb,2);if(null==fb.A||!Ff--)break;for(var Gf=a,Pb=he,ie=null,gb=Pb.A,je=gb,Fc=1;6>=Fc&&gb;Fc++){if(2<Fc){Pb.A=gb;var Qb=Xe(Gf,Pb);if(0<=Qb.indexOf("JSR")){var ke=Qb.indexOf(" ");
|
||||
if(gb+(Qb.indexOf(" ",ke+1)-ke-1)/2==je){ie=Qb;break}}}gb--}Pb.A=je;if(ra=ie)break}if(!ra||null==ra)break;var le=null;if("ks"==Ef){var me=ra.match(/[0-9A-F]+$/);me&&(le=df(a,me[0]))}ra=ka(ra,50)+" ;"+(le||"stack="+T(a,fb.A));a.g(ra);Ec++}Ec||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&df(a,e[1],!0);break;case "m":a:{var aa,ba=null,B=e[1];"?"==B&&(B=void 0);if(void 0!==B){var la=0;if("all"==B)la=1878917119,B=null;else if("on"==B)ba=!0,B=null;else if("off"==B)ba=!1,B=null;else{"keys"==
|
||||
B&&(B="key");"kbd"==B&&(B="keyboard");for(aa in E)if(B==aa){la=E[aa];ba=!!(a.da&la);break}if(!la){a.g("unknown message category: "+B);break a}}if(la)if("on"==e[2])a.da|=la,ba=!0;else if("off"==e[2]&&(a.da&=~la,ba=!1,1073741824==la)){for(var Gc=0;Gc<a.Ha.length;Gc++)a.g(a.Ha[Gc]);a.Ha=[]}}var Hf=0,hb="";for(aa in E)if(!B||B==aa){var If=!!(a.da&E[aa]);if(null===ba||ba==If)hb&&(hb+=","),++Hf%10||(hb+="\n\t"),"key"==aa&&(aa="keys"),hb+=aa}void 0===B&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ba?ba?"messages on: ":"messages off: ":"message categories:\n\t")+(hb||"none"));Ee(a)}break;case "p":if("print"==e[0]){ef(a,b.substr(5));break}var Jf="pr"==e[0]?1:0;if(a.aa)a.g("step in progress");else{var ne=V(a.b.i[7]);a.Mb(ne);a.aa?(a.hb(a.f,ne,!0),a.ob()||(a.w&&a.w.Yb(),a.aa=0)):ff(a,Jf?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}Qe(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var ib=+e[2];if(8==ib||10==ib||16==ib)a.$=ib;else{a.g("invalid base: "+ib);
|
||||
break}}a.g("default base: "+a.$);break;case "cs":var jb;void 0!==e[3]&&(jb=+e[3]);switch(e[2]){case "int":a.b.ub=jb;break;case "start":a.b.Qb=jb;break;case "stop":a.b.vb=jb;break;default:a.g("unknown cs option");break a}void 0!==jb&&Jc(a.b);a.g("checksums "+(a.b.j.rb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Nc(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.mb+"x)");break;case "?":a.g("debugger options:");
|
||||
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":ff(a,e[0],e[1]);break;case "u":Re(a,e[1],e[2],8);break;case "v":if("var"==e[0]){cf(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.b.Yc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){ef(a,b.substr(1));break}var Hc="commands:",Ic;for(Ic in He)Hc+="\n"+ka(Ic,9)+He[Ic];kd(a)||(Hc+="\nnote: history disabled if no exec breakpoints");a.g(Hc);break;default:a.g("unknown command: "+b),c=!1}}}catch(oe){a.g("debugger error: "+(oe.stack||oe.message)),c=!1}return c}function Ge(a,b,d){b=ve(a,b,d);for(var c in b)if(!We(a,b[+c]))return!1;return!0}
|
||||
Ma(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Ce(c);lb(c,d)}});
|
||||
function hf(a,b,d){u.call(this,"Computer",a,hf,67108864);this.j.ca=!1;jf(this,b);this.R=tc(this,"autoPower",a);this.u=0;this.aa=a.busWidth||a.buswidth;this.f=kf;this.O=null;this.G=this.Y=!1;this.url=tc(this,"url")||"";(Math.random()+.1).toString(36);this.w=lf(this);if(this.b=kb("CPU",this.id)){this.D=kb("Debugger",this.id);this.C=new ub({id:this.uc+".bus",busWidth:this.aa},this.b,this.D);var c,f=Ya(this.id);if((this.B=kb("Panel",this.id))&&this.B.ib)for(b=0;b<f.length;b++)c=f[b],c.ma=this.B.ma,c.g=
|
||||
this.B.g,c.ib=this.B.ib;this.g("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.g("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.Za&&c.Za(this,this.C,this.b,this.D);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.K=c:this.f=parseInt(c,10));var e;if(a=tc(this,"state")||(e=!0,a.state))b=this.V=a,e||(this.G=!0,this.f=kf),this.f&&
|
||||
(this.P=new M(this,"1.30.0"),mf(this.P)?b=null:delete this.P);!b&&this.f&&(b=nf(this))&&(this.G=!0);if(b){var g=this;ta(b,null,!0,function(a,b,c){c?(g.K=null,g.G=!1,g.ma("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.O=b,g.Y=!0);D(g)})}else D(this);this.I.power||(this.R=!0);!d&&this.R&&of(this,this.Rb)}else t("Unable to find CPU component")}w(hf);var kf=0;
|
||||
function jf(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.$=b}function tc(a,b,d){var c=b.toLowerCase(),c=Ra[b]||Ra[c];void 0===c&&a.$&&(c=a.$[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function of(a,b,d){for(var c=Ya(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!pb(e)){pb(e,function(){of(a,b,d)});return}}b.call(a,d)}
|
||||
function pf(a,b){var d=new M(a,"1.30.0","validate");if(mf(d)&&qf(d)){var c=d.get("timestamp"),f=b?b.get("timestamp"):"unknown";c!=f&&(a.ma("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}l=hf.prototype;
|
||||
l.Rb=function(a){void 0===a&&(a=this.f||(this.O?1:kf));if(!this.u){this.u++;var b=!1,d=!1;this.X=!1;var c=this.P||new M(this,"1.30.0");if(-1==a)b=!0;else if(a>kf){if(mf(c,this.O)){this.F=new M(this,"1.30.0","failsafe");mf(this.F)&&(rf(this,c),a=2,sf(this.F));this.F.set("timestamp",sa());tf(this.F);var f=this.f&&!this.G;if(1==a||ua("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=qf(c)){var e=c.get("code"),g=c.get("data");e&&("ok"==e?mf(c,g):("error"==
|
||||
e&&"no machine state"!=g?(this.ma("Error: "+g),"unable to verify user"==g&&(ya("user",""),this.w=null)):this.g(e+": "+g),sf(c),mf(c)?(d=qf(c),f=!0):d=!1))}f&&pf(this,d?c:null)}else 2==a&&c.clear()}else pf(this);delete this.O;delete this.P}f=Ya(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(d=uf(this,g,c,b,d));b=[c,a,d];-1!=a?of(this,this.yc,b):this.yc(b)}};
|
||||
function uf(a,b,d,c,f){if(!b.j.ca){b.j.ca=!0;if(b.Ma){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.Ma(e,c)&&e&&(t("Unable to restore state for "+b.type),a.V&&!a.Y?(d.clear(),a.f=kf,window&&window.location.reload()):a.X=!0,b.Ma(null),f=!1)}if(!c&&b.sc)for(a=b.sc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
|
||||
l.yc=function(a){var b=a[0],d=0>a[1];a=a[2];this.fa=!0;this.j.ca=!0;var c=this.I.power;c&&(c.textContent="Shutdown");this.b&&(uf(this,this.b,b,d,a),this.b.Hb());this.X&&(rf(this,b),b.clear());!d&&this.F&&(this.F.clear(),delete this.F);this.u=0};
|
||||
function rf(a,b){if(ua("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.w||"";b=b.toString();var c={app:"PDP11js",ver:"1.30.0"};c.url=a.url;c.user=d;c.type="bug";c.data=b;ta("http://www.pcjs.org/api/v1/report",c,!0)}}
|
||||
function gf(a,b,d){var c,f="none";if(a.u)return null;a.u--;var e=new M(a,"1.30.0"),g=new M(a,"1.30.0","validate"),h=sa();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.b&&a.b.La&&(d&&a.b.ka(),c=a.b.La(b,d),"object"===typeof c&&e.set(a.b.id,c),d&&(a.b.j.ca=!1,!1===c&&(f=null)));for(var h=Ya(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ca&&(m.La&&(c=m.La(b,d),"object"===typeof c&&e.set(m.id,
|
||||
c)),d&&(m.j.ca=!1,!1===c&&(f=null)))}f&&(d?(h=c=!1,b?(a.w&&vf(a,a.w,e.toString()),tf(g)&&tf(e)||(f=null,c=h=!0)):a.f&&(c=!0,h=3==a.f),c&&e.clear(h)):f=e.toString());d&&(a.j.ca=!1,b=a.I.power)&&(b.textContent="Power");a.u=0;return f}
|
||||
l.reset=function(){this.C&&this.C.reset&&(this.D&&mb(this,0)&&this.D.message("Resetting "+this.C.type,void 0),this.C.reset());for(var a=Ya(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.C&&d.reset&&(this.D&&mb(this,0)&&this.D.message("Resetting "+d.type,void 0),d.reset())}};l.start=function(a,b){for(var d=Ya(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=Ya(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.ra=function(a,b,d){var c=this;switch(b){case "power":return this.I[b]=d,d.onclick=function(){c.u||(c.j.ca?gf(c,!1,!0):of(c,c.Rb))},!0;case "reset":return this.I[b]=d,d.onclick=function(){if(c.j.ca&&!c.u)if(c.f&&!c.K){var a=ua("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gf(c,a,!0);!a&&c.V?window&&window.location.reload():c.Rb(kf)}else c.reset(),c.b&&c.b.Hb()},!0;case "save":if(ga())d.parentNode.removeChild(d);else return this.I[b]=
|
||||
d,d.onclick=function(){var a=lf(c,!0);if(a){var b=!!(c.f&&!c.K||c.V),d=gf(c,b);b?vf(c,a,d):c.ma("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function lf(a,b){var d=a.w;d||((d=xa("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=wf(a,d))||a.ma("The user ID is invalid.")):b&&a.ma("Browser local storage is not available"));return d}
|
||||
function wf(a,b){a.w=null;b=ta(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&&(ya("user",b.data),a.w=b.data)}catch(c){t(c.message+" ("+d+")")}return a.w}function nf(a){var b=null;a.w&&(b=ha()+"/api/v1/user?req=load&user="+a.w+"&state="+xf(a,"1.30.0"));return b}
|
||||
function vf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=xf(a,"1.30.0");c.data=d;b=ta(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.ma("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.ma(d),ya("user",""),a.w=null)}}l.Yb=function(){};
|
||||
l.ta=function(a){this.b&&this.b.ta(a);this.B&&this.B.ta(a)};Ma(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=y(d),d=C(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],g=y(e),g=new hf(g,c,!0);lb(g,e);g.R&&of(g,g.Rb)}});Ha.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=kb("Computer",d.id))&&d.fa&&!d.j.ca&&d.Rb(-1)}});
|
||||
Ha.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=kb("Computer",d.id))&&d.j.ca&&gf(d,!(!d.f||d.K),!0)}});function M(a,b,d){this.id=a.id;this.key=xf(a,b,d);this.D=a.D;sf(this,a.Qc)}function xf(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}
|
||||
M.prototype={constructor:M,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){sf(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 sf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function tf(a){var b=!0;if(wa()){var d=JSON.stringify(a[a.id]);ya(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function qf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function mf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:wa()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}var yf=0;
|
||||
function Kf(a,b,d,c,f,e){f("Loading "+a+"...");ta(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Lf(h,a,b,d,c,f,e)})}
|
||||
function Lf(a,b,d,c,f,e,g){function h(a,e){if(e)g(e,null);else{d&&(Xa(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);g(a,e)}}a?f?Mf(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Mf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");ta(f,null,!0,function(e,g,h){if(h||!g)d(a,"unable to resolve XML reference: "+c[0]+" ("+h+")");else{if(e=c[3])if(h=g.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=h[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]);h[0]!=k&&(g=g.replace(h[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(c[0],g);Mf(a,b,d)}})}else d(a,null)}
|
||||
function Nf(a,b,d,c){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function e(a){f("Error: "+a);k&&(--yf||Oa(!0));k=!1}var g,h,k=!0;yf++;Wa[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?Kf(d,null,null,!1,f,function(c,k){k?(Xa(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--yf||Oa(!0)):e("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),--yf||Oa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(c)}):e(c)};"<"!=b.charAt(0)?Kf(b,a,c,!0,f,m):Lf(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){Oa(!1);return Nf(a,b,d,c)};window.enableEvents=Oa;window.sendEvent=Pa;})();
|
||||
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=Be.prototype;
|
||||
l.Va=function(a,b,c,d){this.C=b;this.b=c;this.u=a;(a=uc(a,"messages"))&&Ee(this,a);this.Hb=Ie;Je(this,function(a){a:{var b=d.C.L,c=a[0],f=a=0,k=b.length;if(c){a=d.W(W(d,c));if(-1===a){d.g("invalid address: "+c);break a}f=a>>>d.C.S;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[f];n.type==c?m++||d.g("..."):(c=n.type,m=Db[c],n&&d.g(r(n.id,8)+" %"+r(f<<d.C.S,8)+" %%"+r(n.A,8)+" "+r(n.Vb,4,
|
||||
!0)+" "+r(n.size,4,!0)+" "+m),c!=gc&&(c=-1),m=0);a+=d.C.za;f++}}});D(this)};
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.sa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Fe(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.B<d.w.length-1&&(b=d.w[++d.B])):40==a.keyCode&&(0<d.B?b=d.w[--d.B]:(b="",d.B=-1)),null!=b){var f=b.length;c.value=b;c.setSelectionRange(f,f)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Ga(c,function(){if(d.sa){var a=d.sa.value;
|
||||
d.sa.value="";Fe(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Ga(c,function(a){var b=!1;ob(d,!0)||(nb(d,!0),b=d.xb(a?1:0),nb(d,!1));return b}),!0}return!1};l.Ub=function(){this.sa&&this.sa.focus()};l.W=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Jb=function(a,b){var c=255,d=this.W(a,!1,1);-1!==d&&(c=this.C,c=c.L[(d&c.C)>>>c.S].Ob(d&c.f,d),b&&Ke(a,b));return c};l.Fa=function(a,b){var c=65535,d=this.W(a,!1,2);-1!==d&&(c=Eb(this.C,d),b&&Ke(a,b));return c};
|
||||
l.ec=function(a,b,c){var d=this.W(a,!0,1);if(-1!==d){var f=this.C;f.L[(d&f.C)>>>f.S].zb(d&f.f,b&255,d);c&&Ke(a,c);K(this.b,!0)}};l.oc=function(a,b,c){var d=this.W(a,!0,2);if(-1!==d){var f=this.C,e=d&f.f,g=(d&f.C)>>>f.S;e!=f.f?f.L[g].qc(e,b&65535,d):(f.L[g++].zb(e,b&255,d),f.L[g&f.u].zb(0,b>>8&255,d+1));c&&Ke(a,c);K(this.b,!0)}};function V(a){return{A:a,Ea:!1}}function Le(a){return[a.A,a.Ea]}function Me(a){return{A:a[0],Ea:a[1]}}
|
||||
function W(a,b,c){var d;c=(c?a.P:a.Bb).A;if(void 0!==b){d=b=xe(a,b);var f;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var e=a.G[c].Ja[d];if(void 0!==e){d=e.o;void 0!==d&&(f=V(d));break}}if(d=f)return d;c=we(a,b,void 0)}null!=c&&(d=V(c));return d}function Ne(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Ic=ue(a,b.Dc=c[2]))}function Ke(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Ee(a,b){a.F=a;a.da=a.Jc=536870912;a.ua=null;a.Ca=[];b=ue(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in E){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var f=b.length;d<f;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.da|=E[c],a.g(c+" messages enabled"))}}function Je(a,b){for(var c in E)if(64==E[c]){a.Ia[c]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+T(this,V(this.b.i[7]).A));this.da&1073741824?this.Ca.push(a):this.ua&&a==this.ua||(this.ua=a,this.da&-2147483648&&(this.ja(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,a.G-=a.b,a.b=0,a.Y=0,K(a)))};l.Kb=function(){this.g("Type ? for help with PDP11 Debugger commands");this.va();if(this.nb){var a=this.nb;this.nb=null;Fe(this,a)}};
|
||||
function De(a){var b;if(jd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=V();a.oa=0;a.g("instruction history buffer allocated")}if(!a.na||!a.na.length)for(a.na=Array(256),b=0;b<a.na.length;b++)a.na[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.oa=0,a.O=[],a.na=[]}l.mb=function(a){if(!Oe(this))return!1;this.b.mb(a);return!0};
|
||||
l.xb=function(a,b,c){if(!Oe(this))return!1;this.K=0;a||jd(this)&&kd(this,this.b.i[7],0);try{var d=this.b.xb(a);0<d&&(this.K+=d,Pc(this.b,d,!0),Lc(this.b,d),this.U++)}catch(f){"number"!=typeof f&&(this.K=0,qb(this.b,f.stack||f.message))}!1!==c&&K(this.b);this.va(b||!1);return 0<this.K};l.ja=function(a){this.b&&this.b.ja(a)};l.va=function(a){void 0===a&&(a=!0);this.P=V(this.b.i[7]);a&&1!=this.aa?Pe(this):Qe(this)};
|
||||
function Oe(a){var b;if(b=a.b&&pb(a.b))b=a.b,b.j.ba?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ob(a.b)?(a=a.b,a.j.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ma=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.La=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){De(this);this.U=this.Da=0;this.ua=null;this.K=0;this.P=V(this.b.i[7]);this.j.ea=!1;Re(this);a||this.va()};
|
||||
l.save=function(){var a=new L(this);a.set(0,Le(this.P));a.set(1,Le(this.X));a.set(2,[this.w,this.Y,this.da]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.P=Me(a[b++]),this.X=Me(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.Y=a[b][1],this.da|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.aa||this.g("running");this.j.ea=!0;this.Xb=a;this.jc=b};
|
||||
l.stop=function(a,b){if(this.j.ea){this.j.ea=!1;this.K=b-this.jc;if(!this.aa){b="stopped";if(this.K){a-=this.Xb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";jd(this)&&(b+=this.U+" opcodes, ",this.Da-=this.U,this.U=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else mb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.va(!0);this.Ub();Re(this,this.b.i[7])}};function jd(a){return 1<a.f.length||!!a.ta}
|
||||
function kd(a,b,c){var d=a.b;if(0<c&&(a.ta&&!--a.ta||pc(a,b,1,a.f)))return!0;0<=c&&a.na.length&&(a.U++,null!=Eb(a.C,b)&&(b=a.O[a.oa],b.A=d.i[7],b.Ea=!1,++a.oa==a.O.length&&(a.oa=0)));return!1}function Ce(a){var b,c;a.f=["bp"];if(a.R)for(b=1;b<a.R.length;b++){c=a.R[b];var d=a.C;c=a.W(c);qc(d.L[c>>>d.S],!1)}a.R=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.C,c=a.W(c),qc(d.L[c>>>d.S],!0);a.D=["bw"];a.Eb=0}
|
||||
l.gb=function(a,b,c){var d=!0;c||Se(this,a,b,!1,!0);if(a!=this.f){var f=this.W(b);if(-1===f)this.g("invalid address: "+T(this,b.A)),d=!1;else{var e=this.C;e.L[f>>>e.S].gb(f&e.f,a==this.D)}}d&&(a.push(b),c?b.Ea=!0:(Te(this,a,a.length-1,"set"),De(this)));return d};function Se(a,b,c,d,f){var e=!1;c=a.W(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==a.W(h)&&(!d||h.Ea)){e=!0;h.Ea||f||Te(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.C,qc(d.L[c>>>d.S],b==a.D));h.Ea||De(a);break}}return e}
|
||||
function Ue(a,b){for(var c=1;c<b.length;c++)Te(a,b,c);return b.length-1}function Te(a,b,c,d){c=b[c];a.g(b[0]+" "+T(a,c.A)+(d?" "+d:c.Dc?' "'+c.Dc+'"':""))}function Re(a,b){if(void 0!==b)pc(a,b,1,a.f,!0),a.aa=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.Ea){if(!Se(a,a.f,c,!0))break;b=0}}}
|
||||
function pc(a,b,c,d,f){var e=!1;if(!a.Eb++)for(var g=1;!e&&g<d.length;g++){var h=d[g];if(!f||h.Ea)for(var k=a.W(h),m=0;m<c;m++)if(b+m==k){var n,e=!0;h.Ea&&(Se(a,d,h,!0),f=!0);if(n=h.Ic){for(var e=!1,q=0;q<n.length;q++)if(!Ve(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.j.ea||(e=!0)}if(e){f||Te(a,d,g,"hit");break}}}a.Eb--;return e}
|
||||
function We(a,b,c,d){var f=V(b.A),e=a.Fa(b,2),g,h;for(h in a.Hb)if(g=a.Hb[h][e&h])break;g||(g=[0]);h="";for(var k=He[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.A+((e&255)<<24>>23)&65535,x=T(p,q);else if(8192==A)q=q.A-((e&63)<<1)&65535,x=T(p,q);else if(12288==A)x=T(p,e&7,1);else if(24576==A)x=T(p,e&63,1);else if(A=e&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=X(z);break;case 8:x="@"+X(z);break;case 16:7>z?x="("+X(z)+")+":
|
||||
(A=p.Fa(q,2),x="#"+T(p,A));break;case 24:7>z?x="@("+X(z)+")+":(A=p.Fa(q,2),x="@#"+T(p,A));break;case 32:x="-("+X(z)+")";break;case 40:x="@-("+X(z)+")";break;case 48:A=p.Fa(q,2);x=T(p,A)+"("+X(z)+")";7==z&&(x=[x,T(p,A+q.A&65535)]);break;case 56:A=p.Fa(q,2),x="@"+T(p,A)+"("+X(z)+")",7==z&&(x=[x,T(p,A+q.A&65535)])}p=x;if(!p||!p.length){h="INVALID";break}"string"!=typeof p&&(c=p[1],d=null,p=p[0]);0<h.length&&(h+=",");h+=p||"???"}}e="";g=T(a,f.A)+":";if(-1!==f.A&&-1!==b.A){do if(e+=" "+T(a,a.Fa(f,2)),
|
||||
null==f.A)break;while(f.A!=b.A)}g+=ka(e,24);g+=ka(k,5);h&&(g+=" "+h);c&&(g=ka(g,60)+";"+c,g=a.b.j.pb?g+("cycles="+Mc(a.b).toString()+" cs="+r(a.b.Lb)):g+(null!=d?"="+d.toString():""));return g}function Xe(a,b){switch(b){case "N":a=Wc(a.b);break;case "Z":a=Vc(a.b);break;case "V":a=Uc(a.b);break;case "C":a=a.b.ga&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function X(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
function Ye(a,b){var c="",d=a.b;8>b?(c=X(b),c+="="+T(a,d.i[b])):13>b?c="A"+(b-8)+"="+T(a,d.Za[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+T(a,d.Oa[b-16]):20==b&&(c="PS="+T(a,Sb(d)));c&&(c+=" ");return c}function Ze(a){var b,c="";for(b=0;6>b;b++)c+=Ye(a,b);c=c+"\n"+(Ye(a,6)+Ye(a,7)+Ye(a,20));return c+=Xe(a,"T")+Xe(a,"N")+Xe(a,"Z")+Xe(a,"V")+Xe(a,"C")}l.vc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function $e(a,b,c){var d=[],f=a.W(b)>>>0;for(b=0;b<a.G.length;b++){var e=a.G[b],g=e.A>>>0,h=e.Sc;if(f>=g&&f<g+h){f=na(e.sc,[f-g],a.vc);0<=f?af(a,b,f,d):c&&(f=~f,af(a,b,f-1,d),af(a,b,f,d));break}}return d}function af(a,b,c,d){var f={},e=a.G[b].sc,g=0,h=null;0<=c&&c<e.length&&(g=e[c][0],h=e[c][1]);h&&(f=a.G[b].Ja[h],h="."==h.charAt(0)?null:f.l||h);d.push(h);d.push(g);d.push(f.a);d.push(f.c)}
|
||||
function bf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ae(a)||a.g("no variables"),!0;if(!c[2])return Ae(a,c[1]);if(!c[3])return delete a.ca[c[1]],!0;b=we(a,c[3]);return void 0!==b?(a.ca[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function cf(a,b,c){var d=null;if(b=W(a,b,!0)){a.W(b);var f=$e(a,b,!0);if(f.length){var e,g;f[0]&&(g="",(e=b.A-f[1])&&(g=" + "+r(e,4,!0)),e=f[0]+" ("+T(a,f[1])+")"+g,c&&a.g(e),d=e);4<f.length&&f[4]&&(g="",(e=f[5]-b.A)&&(g=" - "+r(e,4,!0)),e=f[4]+" ("+T(a,f[5])+")"+g,c&&a.g(e),d||(d=e))}else c&&a.g("no symbols")}return d}
|
||||
function Pe(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!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.g("missing value for "+b[1]);return}var e=!1,g=we(a,b);if(void 0!==g)switch(e=!0,f.toUpperCase()){case "PC":d.i[7]=g;a.P=V(d.i[7]);break;case "NF":d.wa=g?32768:0;break;case "ZF":d.ya=g?0:1;break;case "VF":d.xa=g?32768:
|
||||
0;break;case "CF":d.ga=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!e){a.g("invalid value: "+b);return}K(d);a.g("updated registers:")}a.g(Ze(a));c&&(a.P=V(d.i[7]),Qe(a,T(a,a.P.A)))}}function df(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(c[2]):we(a,b,!0)}function ef(a,b,c){var d="t"!=b;c=ye(a,c,null,!0)||1;var f=1==c?0:1;"tc"==b&&(f=c,c=1);Fa(c,function(){return nb(a,!0)&&a.xb(f,d,!1)},function(){K(a.b);nb(a,!1)})}
|
||||
function Qe(a,b,c,d){if(b=W(a,b,!0)){void 0===d&&(d=1);var f=256;if(void 0!==c){d=W(a,c,!0);if(!d||d.A<b.A)return;f=d.A-b.A;if(256<f){a.g("range too large");return}d=-1}c=0;for(var e;0<f&&d--;){e=ob(a,!1)||a.aa?a.K:null;var g=null!=e?"cycles":null,h=$e(a,b),k=b.A;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(g=h[3],e=null);e=We(a,b,g,e);a.g(e);a.P=b;f-=b.A-k;c++}}}
|
||||
function Ve(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.Y&&(a.g("ended assemble at "+T(a,a.X.A)),a.P=a.X,a.Y=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ua=null;if(pb(a)&&0<b.length){a.Y&&(b="a "+T(a,a.X.A)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var g=e[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){e[0]=g.substr(k);e.unshift(g.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=W(a,e[1],!0);if(n)if(a.X=
|
||||
n,void 0===e[2])a.g("begin assemble at "+T(a,n.A)),a.Y=!0,K(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.ec(n,q[p],1);a.g(We(a,a.X))}}break;case "b":a:{var z=e[0],x=e[1],A=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var pa=z.charAt(1);if("l"==pa){var vc;vc=0+Ue(a,a.f);vc+=Ue(a,a.R);(vc+=Ue(a,a.D))||a.g("no breakpoints")}else if("n"==pa)a.ta=ye(a,x),a.g("break after "+a.ta+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var M=V();if("*"!=x&&(M=W(a,x,!0),!M))break a;"c"==pa?null==M.A?(Ce(a),a.g("all breakpoints cleared")):Se(a,a.f,M)||Se(a,a.R,M)||Se(a,a.D,M)||a.g("breakpoint missing: "+T(a,M.A)):null!=M.A&&(Ne(a,M,A),"p"==pa?a.gb(a.f,M):"r"==pa?a.gb(a.R,M):"w"==pa?a.gb(a.D,M):
|
||||
a.g("unknown breakpoint command: "+pa))}}}break;case "c":a.hb&&(a.hb.value="");break;case "d":a:{var Aa,Ba=e[0],Y=e[1],qa=e[2],yf=e[3];if("?"==Y){var Ca="";for(Aa in E)a.Ia[Aa]&&(Ca&&(Ca+=","),Ca+=Aa);Ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ca.length&&a.g("dump extension commands:\n\t"+
|
||||
Ca)}else if("state"==Y){var Qd=ff(a.u,!0);"console"==qa?console.log(Qd):(a.hb&&(a.hb.value=""),a.g(Qd))}else if("symbols"==Y)for(var wc=0;wc<a.G.length;wc++){var xc=a.G[wc],Da;for(Da in xc.Ja)if("."!=Da.charAt(0)){var Rd=xc.Ja[Da].o;if(void 0!==Rd){var Sd=xc.Ja[Da].l;Sd&&(Da=Sd);a.g(T(a,Rd)+" "+Da)}}}else{if("d"==Ba){for(Aa in E)if(e[1]==Aa){var Td=a.Ia[Aa];Td?(e.shift(),e.shift(),Td(e)):a.g("no dump registered for "+Y);break a}Y||(Ba=a.Qc||"db")}else a.Qc=Ba;if("dh"==Ba){var Ud=Y,Vd=qa,Wd="",Xd=
|
||||
0,U=a.oa,Z=a.O;if(Z.length){var Q=+Ud||a.Gb,$a=+Vd||10;isNaN(Q)?Q=$a:Wd="more ";Q>Z.length&&(a.g("note: only "+Z.length+" available"),Q=Z.length);U-=Q;0>U&&(null==Z[Z.length-1].A?(Q=U+Q,U=0):U+=Z.length);var yc=[];"call"==Vd&&($a=1E5,yc=["CALL"]);for(void 0!==Ud&&a.g(Q+" instructions earlier:");0<$a&&U!=a.oa;){var Yd=Z[U++];if(null==Yd.A)break;var ab=V(Yd.A),zf=Q--,Zd=We(a,ab,"history",zf);(!yc.length||0<=Zd.indexOf(yc[0]))&&a.g(Zd);ab.hc&&(U+=ab.hc,$a-=ab.hc,Q-=ab.hc);U>=Z.length&&(U=0);a.Gb=Q;Xd++;
|
||||
$a--}}Xd||(a.g("no "+Wd+"history available"),a.Gb=void 0)}else{var Ib=W(a,Y);if(Ib){var Jb=0;qa&&("l"==qa.charAt(0)&&(qa=qa.substr(1)||yf),Jb=ye(a,qa)>>>0,65536<Jb&&(Jb=65536));for(var bb="",Ea="dd"==Ba?4:"dw"==Ba?2:1,Kb=Ea*Jb||128,Af=Kb+15>>4||1;Af--&&0<Kb;){var cb=0,zc=0,db,Ac="",$d="",Y=T(a,Ib.A);for(db=4==Ea?16:a.Z;0<db&&0<Kb;db--){var Lb=a.Jb(Ib,1),cb=cb|Lb<<(zc++<<3);zc==Ea&&(Ac+=8==a.Z?da(cb,3*Ea):r(cb,2*Ea),Ac+=1==Ea?9==db?"-":" ":" ",cb=zc=0);$d+=32<=Lb&&128>Lb?String.fromCharCode(Lb):".";
|
||||
Kb--}bb&&(bb+="\n");bb+=Y+" "+Ac+(0==db?" "+$d:"")}bb&&a.g(bb);a.Bb=Ib}}}}break;case "e":if("else"==e[0])break;var Mb=1,ae=255,be=a.Jb,ce=a.ec;"ew"==e[0]&&(Mb=2,ae=65535,be=a.Fa,ce=a.oc);var de=Mb<<1,ee=e[1];if(null==ee)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Nb=W(a,ee);if(Nb)for(var Ob=2;Ob<e.length;Ob++){var eb=we(a,e[Ob]);if(void 0===eb){a.g("unrecognized value: "+e[Ob]);break}eb&~ae&&a.g("warning: "+r(eb)+
|
||||
" exceeds "+Mb+"-byte value");var Bf=be.call(a,Nb);a.g("changing "+T(a,Nb.A)+" from "+r(Bf,de,!0)+" to "+r(eb,de,!0));ce.call(a,Nb,eb,Mb)}}break;case "g":a:{var fe=e[1],Cf=b;if(void 0!==fe){var Bc=W(a,fe,!0);if(!Bc)break a;Ne(a,Bc,Cf);a.gb(a.f,Bc,!0)}a.mb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Cc;if(a.j.ea)Cc="halting",a.ja();else{if(ob(a,!0))break a;Cc="already halted"}c||a.g(Cc)}break;case "i":if("if"==e[0]){var Dc;var fb=b.substr(2),fb=ma(fb);we(a,fb)?
|
||||
(c||a.g("true: "+fb),Dc=!0):(c||a.g("false: "+fb),Dc=!1);Dc||(d=!1)}break;case "k":var Df=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ec=0,ge=V(),gb=V(a.b.i[6]);for(a.g("stack trace for "+T(a,gb.A));10>Ec;){for(var ra=null,Ef=256;65536>gb.A>>>0;){ge.A=a.Fa(gb,2);if(null==gb.A||!Ef--)break;for(var Ff=a,Pb=ge,he=null,hb=Pb.A,ie=hb,Fc=1;6>=Fc&&hb;Fc++){if(2<Fc){Pb.A=hb;var Qb=We(Ff,Pb);if(0<=Qb.indexOf("JSR")){var je=Qb.indexOf(" ");
|
||||
if(hb+(Qb.indexOf(" ",je+1)-je-1)/2==ie){he=Qb;break}}}hb--}Pb.A=ie;if(ra=he)break}if(!ra||null==ra)break;var ke=null;if("ks"==Df){var le=ra.match(/[0-9A-F]+$/);le&&(ke=cf(a,le[0]))}ra=ka(ra,50)+" ;"+(ke||"stack="+T(a,gb.A));a.g(ra);Ec++}Ec||a.g("no return addresses found")}break;case "l":"ln"==e[0]&&cf(a,e[1],!0);break;case "m":a:{var aa,ba=null,B=e[1];"?"==B&&(B=void 0);if(void 0!==B){var la=0;if("all"==B)la=1878917119,B=null;else if("on"==B)ba=!0,B=null;else if("off"==B)ba=!1,B=null;else{"keys"==
|
||||
B&&(B="key");"kbd"==B&&(B="keyboard");for(aa in E)if(B==aa){la=E[aa];ba=!!(a.da&la);break}if(!la){a.g("unknown message category: "+B);break a}}if(la)if("on"==e[2])a.da|=la,ba=!0;else if("off"==e[2]&&(a.da&=~la,ba=!1,1073741824==la)){for(var Gc=0;Gc<a.Ca.length;Gc++)a.g(a.Ca[Gc]);a.Ca=[]}}var Gf=0,ib="";for(aa in E)if(!B||B==aa){var Hf=!!(a.da&E[aa]);if(null===ba||ba==Hf)ib&&(ib+=","),++Gf%10||(ib+="\n\t"),"key"==aa&&(aa="keys"),ib+=aa}void 0===B&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ba?ba?"messages on: ":"messages off: ":"message categories:\n\t")+(ib||"none"));De(a)}break;case "p":if("print"==e[0]){df(a,b.substr(5));break}var If="pr"==e[0]?1:0;if(a.aa)a.g("step in progress");else{var me=V(a.b.i[7]);a.Jb(me);a.aa?(a.gb(a.f,me,!0),a.mb()||(a.u&&a.u.Ub(),a.aa=0)):ef(a,If?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}Pe(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var jb=+e[2];if(8==jb||10==jb||16==jb)a.Z=jb;else{a.g("invalid base: "+jb);
|
||||
break}}a.g("default base: "+a.Z);break;case "cs":var kb;void 0!==e[3]&&(kb=+e[3]);switch(e[2]){case "int":a.b.rb=kb;break;case "start":a.b.Mb=kb;break;case "stop":a.b.sb=kb;break;default:a.g("unknown cs option");break a}void 0!==kb&&Kc(a.b);a.g("checksums "+(a.b.j.pb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.b,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.jb.toFixed(2)+"Mhz")+" ("+a.b.kb+"x)");break;case "?":a.g("debugger options:");
|
||||
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":ef(a,e[0],e[1]);break;case "u":Qe(a,e[1],e[2],8);break;case "v":if("var"==e[0]){bf(a,b.substr(3))||(d=!1);break}a.g("PDP11js version 1.30.0 ("+a.b.Vc+",RELEASE"+(rb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){df(a,b.substr(1));break}var Hc="commands:",Ic;for(Ic in Ge)Hc+="\n"+ka(Ic,9)+Ge[Ic];jd(a)||(Hc+="\nnote: history disabled if no exec breakpoints");a.g(Hc);break;default:a.g("unknown command: "+b),d=!1}}}catch(ne){a.g("debugger error: "+(ne.stack||ne.message)),d=!1}return d}function Fe(a,b,c){b=ue(a,b,c);for(var d in b)if(!Ve(a,b[+d]))return!1;return!0}
|
||||
Ma(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Be(d);lb(d,c)}});
|
||||
function gf(a,b,c){u.call(this,"Computer",a,gf,67108864);this.j.ba=!1;hf(this,b);this.R=uc(this,"autoPower",a);this.w=0;this.aa=a.busWidth||a.buswidth;this.f=jf;this.O=null;this.G=this.Y=!1;this.url=uc(this,"url")||"";(Math.random()+.1).toString(36);this.u=kf(this);if(this.b=Za("CPU",this.id)){this.F=Za("Debugger",this.id);this.C=new ub({id:this.tc+".bus",busWidth:this.aa},this.b,this.F);var d,f=Ya(this.id);if((this.B=Za("Panel",this.id))&&this.B.hb)for(b=0;b<f.length;b++)d=f[b],d.la=this.B.la,d.g=
|
||||
this.B.g,d.hb=this.B.hb;this.g("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.g("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.Va&&d.Va(this,this.C,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.f=parseInt(d,10));var e;if(a=uc(this,"state")||(e=!0,a.state))b=this.U=a,e||(this.G=!0,this.f=jf),this.f&&
|
||||
(this.P=new L(this,"1.30.0"),lf(this.P)?b=null:delete this.P);!b&&this.f&&(b=mf(this))&&(this.G=!0);if(b){var g=this;ta(b,null,!0,function(a,b,c){c?(g.K=null,g.G=!1,g.la("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(g.O=b,g.Y=!0);D(g)})}else D(this);this.I.power||(this.R=!0);!c&&this.R&&nf(this,this.Nb)}else t("Unable to find CPU component")}w(gf);var jf=0;
|
||||
function hf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.Z=b}function uc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[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 nf(a,b,c){for(var d=Ya(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!pb(e)){pb(e,function(){nf(a,b,c)});return}}b.call(a,c)}
|
||||
function of(a,b){var c=new L(a,"1.30.0","validate");if(lf(c)&&pf(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.la("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=gf.prototype;
|
||||
l.Nb=function(a){void 0===a&&(a=this.f||(this.O?1:jf));if(!this.w){this.w++;var b=!1,c=!1;this.X=!1;var d=this.P||new L(this,"1.30.0");if(-1==a)b=!0;else if(a>jf){if(lf(d,this.O)){this.D=new L(this,"1.30.0","failsafe");lf(this.D)&&(qf(this,d),a=2,rf(this.D));this.D.set("timestamp",sa());sf(this.D);var f=this.f&&!this.G;if(1==a||ua("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=pf(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?lf(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.la("Error: "+g),"unable to verify user"==g&&(ya("user",""),this.u=null)):this.g(e+": "+g),rf(d),lf(d)?(c=pf(d),f=!0):c=!1))}f&&of(this,c?d:null)}else 2==a&&d.clear()}else of(this);delete this.O;delete this.P}f=Ya(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.b&&(c=tf(this,g,d,b,c));b=[d,a,c];-1!=a?nf(this,this.xc,b):this.xc(b)}};
|
||||
function tf(a,b,c,d,f){if(!b.j.ba){b.j.ba=!0;if(b.Ma){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.Ma(e,d)&&e&&(t("Unable to restore state for "+b.type),a.U&&!a.Y?(c.clear(),a.f=jf,window&&window.location.reload()):a.X=!0,b.Ma(null),f=!1)}if(!d&&b.rc)for(a=b.rc.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.xc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.ba=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(tf(this,this.b,b,c,a),this.b.Db());this.X&&(qf(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
|
||||
function qf(a,b){if(ua("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.u||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;ta("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function ff(a,b,c){var d,f="none";if(a.w)return null;a.w--;var e=new L(a,"1.30.0"),g=new L(a,"1.30.0","validate"),h=sa();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.b&&a.b.La&&(c&&a.b.ja(),d=a.b.La(b,c),"object"===typeof d&&e.set(a.b.id,d),c&&(a.b.j.ba=!1,!1===d&&(f=null)));for(var h=Ya(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ba&&(m.La&&(d=m.La(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.j.ba=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.u&&uf(a,a.u,e.toString()),sf(g)&&sf(e)||(f=null,d=h=!0)):a.f&&(d=!0,h=3==a.f),d&&e.clear(h)):f=e.toString());c&&(a.j.ba=!1,b=a.I.power)&&(b.textContent="Power");a.w=0;return f}
|
||||
l.reset=function(){this.C&&this.C.reset&&(this.F&&mb(this,0)&&this.F.message("Resetting "+this.C.type,void 0),this.C.reset());for(var a=Ya(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c.reset&&(this.F&&mb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};l.start=function(a,b){for(var c=Ya(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=Ya(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.qa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.w||(d.j.ba?ff(d,!1,!0):nf(d,d.Nb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.ba&&!d.w)if(d.f&&!d.K){var a=ua("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ff(d,a,!0);!a&&d.U?window&&window.location.reload():d.Nb(jf)}else d.reset(),d.b&&d.b.Db()},!0;case "save":if(ga())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=kf(d,!0);if(a){var b=!!(d.f&&!d.K||d.U),c=ff(d,b);b?uf(d,a,c):d.la("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function kf(a,b){var c=a.u;c||((c=xa("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=vf(a,c))||a.la("The user ID is invalid.")):b&&a.la("Browser local storage is not available"));return c}
|
||||
function vf(a,b){a.u=null;b=ta(ha()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya("user",b.data),a.u=b.data)}catch(d){t(d.message+" ("+c+")")}return a.u}function mf(a){var b=null;a.u&&(b=ha()+"/api/v1/user?req=load&user="+a.u+"&state="+wf(a,"1.30.0"));return b}
|
||||
function uf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=wf(a,"1.30.0");d.data=c;b=ta(ha()+"/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.la("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.la(c),ya("user",""),a.u=null)}}l.Ub=function(){};
|
||||
l.va=function(a){this.b&&this.b.va(a);this.B&&this.B.va(a)};Ma(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=y(e),g=new gf(g,d,!0);lb(g,e);g.R&&nf(g,g.Nb)}});Ha.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.ca&&!c.j.ba&&c.Nb(-1)}});
|
||||
Ha.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=Za("Computer",c.id))&&c.j.ba&&ff(c,!(!c.f||c.K),!0)}});function L(a,b,c){this.id=a.id;this.key=wf(a,b,c);this.F=a.F;rf(this,a.Nc)}function wf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
L.prototype={constructor:L,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){rf(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 rf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function sf(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);ya(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function pf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function lf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:wa()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}var xf=0;
|
||||
function Jf(a,b,c,d,f,e){f("Loading "+a+"...");ta(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Kf(h,a,b,c,d,f,e)})}
|
||||
function Kf(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Xa(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(n){e=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Lf(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Lf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");ta(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,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]);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);Lf(a,b,c)}})}else c(a,null)}
|
||||
function Mf(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ja(a))}function e(a){f("Error: "+a);k&&(--xf||Oa(!0));k=!1}var g,h,k=!0;xf++;Wa[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)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Jf(c,null,null,!1,f,function(d,k){k?(Xa(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--xf||Oa(!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),--xf||Oa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Jf(b,a,d,!0,f,m):Kf(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(p){e(p.message)}return k}window.embedPDP11=function(a,b,c,d){Oa(!1);return Mf(a,b,c,d)};window.enableEvents=Oa;window.sendEvent=Pa;})();
|
||||
|
|
|
|||
|
|
@ -8,128 +8,127 @@ typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encod
|
|||
function u(a){window&&window.alert(a)}function ia(a){var b=!1;window&&(b=window.confirm(a));return b}var ja=null;function ka(){if(null==ja){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}ja=a}return ja}function la(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function ma(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function na(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 v={init:[],show:[],exit:[]},oa=!1,pa=!1,qa=!0;function ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){v.init.push(a)}
|
||||
function sa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ta(a){!qa&&a?(qa=!0,oa&&ua("init"),pa&&ua("show")):qa=a}function ua(a){v[a]&&sa(v[a])}ra("onload",function(){oa=!0;sa(v.init)});ra("onpageshow",function(){pa=!0;sa(v.show)});ra(na("Opera")||na("iOS")?"onunload":"onbeforeunload",function(){sa(v.exit)});
|
||||
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Jb=b.comment;this.hc=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Mb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,bb:!1,Cb:!1,M:!1,error:!1};this.ob=null;this.g.error=!1;this.u={};this.H=null;y.push(this)}var va=void 0,wa={};
|
||||
function x(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Nb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.g={ready:!1,Ya:!1,Bb:!1,L:!1,error:!1};this.nb=null;this.g.error=!1;this.u={};this.H=null;y.push(this)}var va=void 0,wa={};
|
||||
if(window){va||(va=window.location.search.substr(1));for(var xa,ya=/\+/g,za=/([^&=]+)=?([^&]*)/g;xa=za.exec(va);)wa[decodeURIComponent(xa[1].replace(ya," "))]=decodeURIComponent(xa[2].replace(ya," "))}function Aa(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 z(a,b){b||(b=x);a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ba=window.PCjs.Machines||(window.PCjs.Machines={}),y=window.PCjs.Components||(window.PCjs.Components=[])}else Ba={},y=[];function Ca(a,b,c){Ba[a]&&b&&(Ba[a][b]=c)}function A(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Da(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<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
|
||||
function C(a,b){b=D(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=B(e))&&g.binding&&a.aa(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function D(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}
|
||||
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Db=this.u[b]=c,c.value="",this.J=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.L=function(a){this.J(a,this.yb)}),!0;default:return!1}},log:function(){},J:function(){},status:function(a){this.J(this.yb+": "+a)},L:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},xa:function(){return this.g.M=!0},wa:function(a,b){b&&(this.g.M=!1);return!0}};function Ea(a,b){if(a.g.Cb)return a.g.bb&&(a.g.bb=!1),a.g.Cb=!1;if(a.g.error)return a.J(a.toString()+" error"),!1;a.g.bb=b;return a.g.bb}function F(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.ob;a.ob=null;b&&b()}}
|
||||
function Fa(a,b){b&&(a.g.ready?b():a.ob=b);return a.g.ready}var Ga="undefined"!==typeof ArrayBuffer;function Ha(a){x.call(this,"Panel",a,Ha)}z(Ha);l=Ha.prototype;l.aa=function(a,b,c,d){return this.h&&this.h.aa(a,b,c,d)||this.a&&this.a.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};l.Ja=function(a,b,c,d){this.h=a;this.l=b;this.a=c;this.H=d};l.xa=function(a,b){b||Ia();return!0};l.wa=function(){return!0};l.Na=function(){};
|
||||
function Ia(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<y.length;g++)if(y[g].id===e){e=y[g];break a}}e=null}e||(a=!0,e=new Ha(f));C(e,d);a&&F(e)}}w(Ia);
|
||||
function G(a,b,c){x.call(this,"Bus",a,G);this.a=b;this.H=c;this.B=a.busWidth||16;this.o=Math.pow(2,this.B);this.i=this.o-1|0;this.f=(this.B>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.l=1<<this.f;this.F=this.l>>2;this.h=this.l-1;this.j=this.o/this.l|0;this.K=this.j-1;this.pa=[];this.w=null;this.cb=this.N;a=new I;Ja(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Za=Array(4);this.Za[0]=Ka;this.Za[1]=La;this.Za[2]=Ma;this.Za[3]=Na;Oa(this,this.o-8192,8192,Pa,this);
|
||||
Oa(this,57344,8192,Pa,this);F(this)}z(G);function Ka(a,b){var c=this.controller,d=c.pa[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.pa[a&-2],d[2]))return d[2](b&-2)>>8;c.J("warning: unconverted read access to byte @"+n(b));return c.cb(b,-1,1)}
|
||||
function La(a,b,c){var d=this.controller,f=d.pa[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.pa[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.J("warning: unconverted write access to byte @"+n(c));d.cb(c,b,1)}
|
||||
function Ma(a,b){var c=this.controller;if(a=c.pa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.J("warning: unconverted read access to word @"+n(b));return c.cb(b,-1,0)}function Na(a,b,c){var d=this.controller;if(a=d.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}}d.J("warning: unconverted write access to word @"+n(c));d.cb(c,b,0)}G.prototype.reset=function(){this.w&&this.w()};G.prototype.N=function(){return 0};
|
||||
G.prototype.xa=function(a,b){b||this.reset();return!0};function Oa(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.l,p=a.l-(e-m);p>g&&(p=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){p=k.size-(e-m);p>g&&(p=g);k.wb=e-k.Sa+p;e=m+a.l;g-=p;h++;continue}}return Qa(1,e,g)}e=new I(e,p,a.l,d,f);Ja(e,a.H,k);a.b[h++]=e;e=m+a.l;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ra[d]+" at "+q(b,8,!0)),!0):Qa(2,b,c)}
|
||||
function Sa(a){for(var b=0,c=[],d=0;d<a.j;d++){var f=a.b[d];if(f.ta||f.gc){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],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}function Qa(a,b,c){u("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}
|
||||
function J(a){x.call(this,"Device",a,J);this.f={Gb:[],da:0,V:128,b:127,fc:0};this.h={data:0,Hc:0,Ta:20,Bc:0};this.b={Fb:0,s:0};this.i={ib:2496,R:0,v:128,jb:0,hb:0,U:0,Wb:0,S:[],Ha:[406,406,406,406],D:[12,12,12,12]};this.j={s:129,ab:0,G:0,va:0,qa:0,Aa:0,S:[],D:[40,40,40,40],Ha:[1024,1024,512,512],dc:[157,157,29,29]};this.o={a:[8210,8208,8210,8226],D:[22,22,22,50],Ga:[19,19,19,32],xb:[815,411,815,630],S:[],A:2176,Xa:0,Va:0,$:[0,0,0,0,0,0,0,0],Z:0,T:[4544,4544,4544,4544,4544,4544,4544,4544],Wa:[0,0,
|
||||
0,0,0,0,0,0],Ma:0,zc:[0,0,0,0,0,0,0,0],Xb:0,Yb:[0,0,0,0,0,0,0,0],u:[0,0,0,0,0,0,0,0],Ac:[1,2,3,4,5,6,7,8],Zb:[0,0,0,0,0,0,0,0],ja:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],yc:[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],za:0,Hb:0}}z(J);
|
||||
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.u[b]||(this.u[b]=c,c.onclick=function(a){return function(){a.u.print&&(a.u.print.value="")}}(this)),!0;case "print":return this.u[b]||(this.Cb=this.u[b]=c,c.value="",this.I=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.K=function(a){this.I(a,this.yb)}),!0;default:return!1}},log:function(){},I:function(){},status:function(a){this.I(this.yb+": "+a)},K:function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)},ua:function(){return this.g.L=!0},ta:function(a,b){b&&(this.g.L=!1);return!0}};function Ea(a,b){if(a.g.Bb)return a.g.Ya&&(a.g.Ya=!1),a.g.Bb=!1;if(a.g.error)return a.I(a.toString()+" error"),!1;a.g.Ya=b;return a.g.Ya}function E(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.nb;a.nb=null;b&&b()}}
|
||||
function Fa(a,b){b&&(a.g.ready?b():a.nb=b);return a.g.ready}var Ga="undefined"!==typeof ArrayBuffer;function Ha(a){x.call(this,"Panel",a,Ha)}z(Ha);l=Ha.prototype;l.aa=function(a,b,c,d){return this.h&&this.h.aa(a,b,c,d)||this.a&&this.a.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};l.Ja=function(a,b,c,d){this.h=a;this.j=b;this.a=c;this.H=d};l.ua=function(a,b){b||Ia();return!0};l.ta=function(){return!0};l.Ma=function(){};
|
||||
function Ia(){for(var a=!1,b=D(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=B(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<y.length;g++)if(y[g].id===e){e=y[g];break a}}e=null}e||(a=!0,e=new Ha(f));C(e,d);a&&E(e)}}w(Ia);
|
||||
function G(a,b,c){x.call(this,"Bus",a,G);this.a=b;this.H=c;this.B=a.busWidth||16;this.o=Math.pow(2,this.B);this.i=this.o-1|0;this.j=(this.B>>1)+2;10>this.j&&(this.j=10);15<this.j&&(this.j=15);this.f=1<<this.j;this.C=this.f>>2;this.h=this.f-1;this.l=this.o/this.f|0;this.J=this.l-1;this.ma=[];this.w=null;this.Za=this.M;a=new I;Ja(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;this.Va=Array(4);this.Va[0]=Ka;this.Va[1]=La;this.Va[2]=Ma;this.Va[3]=Na;Oa(this,this.o-8192,8192,Pa,this);
|
||||
Oa(this,57344,8192,Pa,this);E(this)}z(G);function Ka(a,b){var c=this.controller,d=c.ma[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.ma[a&-2],d[2]))return d[2](b&-2)>>8;c.I("warning: unconverted read access to byte @"+n(b));return c.Za(b,-1,1)}
|
||||
function La(a,b,c){var d=this.controller,f=d.ma[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.ma[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.I("warning: unconverted write access to byte @"+n(c));d.Za(c,b,1)}
|
||||
function Ma(a,b){var c=this.controller;if(a=c.ma[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.I("warning: unconverted read access to word @"+n(b));return c.Za(b,-1,0)}function Na(a,b,c){var d=this.controller;if(a=d.ma[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.I("warning: unconverted write access to word @"+n(c));d.Za(c,b,0)}G.prototype.reset=function(){this.w&&this.w()};G.prototype.M=function(){return 0};
|
||||
G.prototype.ua=function(a,b){b||this.reset();return!0};function Oa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.j;0<g&&h<a.b.length;){var k=a.b[h],m=h*a.f,p=a.f-(e-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Qa)return k.vb+=k.Qa-e,k.Qa=e,!0;if(e>=k.Qa+k.vb){p=k.size-(e-m);p>g&&(p=g);k.vb=e-k.Qa+p;e=m+a.f;g-=p;h++;continue}}return Qa(1,e,g)}e=new I(e,p,a.f,d,f);Ja(e,a.H,k);a.b[h++]=e;e=m+a.f;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ra[d]+" at "+q(b,8,!0)),!0):Qa(2,b,c)}
|
||||
function Sa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.b[d];if(f.qa||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],p=g+1;p<f.length&&f[p]===m;)p++;k[h++]=p-g;k[h++]=m;g=p}k.length<f.length&&(f=k)}c[e]=f}}return c}function Qa(a,b,c){u("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}
|
||||
function J(a){x.call(this,"Device",a,J);this.f={Fb:[],ca:0,U:128,b:127,ec:0};this.h={data:0,Ic:0,Ra:20,Bc:0};this.b={Eb:0,s:0};this.i={cb:2496,P:0,v:128,eb:0,bb:0,T:0,Vb:0,R:[],Ha:[406,406,406,406],F:[12,12,12,12]};this.l={s:129,Xa:0,G:0,sa:0,na:0,ya:0,R:[],F:[40,40,40,40],Ha:[1024,1024,512,512],cc:[157,157,29,29]};this.o={a:[8210,8208,8210,8226],F:[22,22,22,50],Ga:[19,19,19,32],xb:[815,411,815,630],R:[],A:2176,Ua:0,Sa:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,4544],Ta:[0,0,
|
||||
0,0,0,0,0,0],La:0,zc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],u:[0,0,0,0,0,0,0,0],Ac:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],ha:[0,0,0,0,0,0,0,0],ub:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],yc:[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],xa:0,Hb:0}}z(J);
|
||||
var Ta=[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=J.prototype;
|
||||
l.Ja=function(a,b,c,d){this.l=b;this.a=c;this.H=d;a=Ua;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 p=m&8191;void 0!==c.pa[p]?u("I/O address already registered: "+q(m,8,!0)):c.pa[p]=[g,h,k,e,!1]}}f=this.cc.bind(this);b.w=this.reset.bind(this);b.cb=f;F(this)};l.pc=function(){var a=this.b.ua;this.b.ua&=-129;return a};
|
||||
l.Dc=function(a){this.b.ua=a;a&64&&!this.b.Fb&&(setInterval(this.lc.bind(this),25),this.b.Fb=1);this.b.ua=a&-129};l.rc=function(){return this.f.V};l.Gc=function(a){if(128==(this.f.V&192)&&a&64){var b=this;K(this.a,8,4,52,function(){b.f.V|=128;return!!(b.f.V&64)})}this.f.V=this.f.V&128|a&-129};l.qc=function(){return Va(this.a)};l.Ec=function(a){Wa(this.a,a&-1809|Va(this.a)&1808);this.a.C|=128};
|
||||
function Xa(a){var b=a.i,c,d,f,e=b.U>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.sc,drive:e,blocksize:256,mapped:0,maxblock:b.Ha[e]*b.D[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.ib=2496;b.R=0;b.v=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ha[e]){b.R|=32832;b.v|=49152;break}if((b.U&15)>=b.D[e]){b.R|=32800;b.v|=49152;break}c=(b.U>>4&511)*b.D[e]+(b.U&15);d=(b.v&48)<<12|b.hb;f=65536-b.jb&65535;Ya(a,b.S[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ha[e])b.R|=32832,
|
||||
b.v|=49152;else if((b.U&15)>=b.D[e])b.R|=32800,b.v|=49152;else{c=(b.U>>4&511)*b.D[e]+(b.U&15);d=(b.v&48)<<12|b.hb;f=65536-b.jb&65535;a.rb(b.S[e],c,d,f);return}}b.ib=e<<13|b.ib&8176|b.U%9&15;K(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.sc=function(a,b,c,d,f){var e=this.i;e.hb=d&65535;e.v=e.v&-49|d>>12&48;e.jb=65536-f&65535;switch(a){case 1:e.R|=33024;e.v|=49152;break;case 2:e.R|=33792,e.v|=49152}K(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function Za(a){var b=a.j,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.tc,drive:e,blocksize:128,mapped:1,maxblock:b.Ha[e]*b.D[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.va&8&&(b.s&=63);b.va=b.dc[e]|b.Aa&64;break;case 3:1==(b.G&3)&&(b.Aa=b.G&4?b.Aa+(b.G&65408)&65408|b.G<<2&64:b.Aa-(b.G&65408)&65408|b.G<<2&64,b.G=b.Aa);break;case 4:b.va=b.Aa;break;case 5:if(b.G>>6>=b.Ha[e]){b.s|=37888;break}if((b.G&63)>=b.D[e]){b.s|=37888;break}c=(b.G>>6)*b.D[e]+(b.G&63);
|
||||
d=(b.qa&63)<<16|b.ab;f=65536-b.va&65535;Ya(a,b.S[e],c,d,f);return;case 6:if(b.G>>6>=b.Ha[e])b.s|=37888;else if((b.G&63)>=b.D[e])b.s|=37888;else{c=(b.G>>6)*b.D[e]+(b.G&63);d=(b.qa&63)<<16|b.ab;f=65536-b.va&65535;a.rb(b.S[e],c,d,f);return}}K(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.j;e.ab=d&65535;e.s=e.s&-49|d>>12&48;e.qa=d>>16&63;e.G=~~(c/e.D[b.ga])<<6|c%e.D[b.ga];e.Aa=e.G;e.va=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}K(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function $a(a){a=a.o;a.A=2176;a.Z=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Wa=[0,0,0,0,0,0,0,0];a.Ma=a.Xa=a.Va=a.za=a.Hb=0}
|
||||
function ab(a,b){var c=a.o,d,f,e;c.A&=-16513;c.Z&=-2049;c.T[b]&=-1153;K(a.a,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.uc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ga[0]*c.D[0],url:"rp"+b+".dsk"});switch(c.A&63){case 5:c.vb[b]=c.ja[b];c.A|=32896;c.T[b]|=32896;c.Ma|=1<<b;break;case 9:$a(a);break;case 19:c.T[b]|=64;break;case 49:if(c.ja[b]>=c.xb[0]||c.$[b]>>8>=c.Ga[0]||(c.$[b]&255)>=c.D[0]){c.Wa[b]|=1024;c.A|=49152;break}d=(c.ja[b]*c.Ga[0]+(c.$[b]>>8))*c.D[0]+(c.$[b]&
|
||||
255);f=(c.za&63)<<16|c.Va;e=65536-c.Xa&65535;Ya(a,c.S[b],d,f,e);return;case 57:if(c.ja[b]>=c.xb[0]||c.$[b]>>8>=c.Ga[0]||(c.$[b]&255)>=c.D[0])c.Wa[b]|=1024,c.A|=49152;else{d=(c.ja[b]*c.Ga[0]+(c.$[b]>>8))*c.D[0]+(c.$[b]&255);f=(c.za&63)<<16|c.Va;e=65536-c.Xa&65535;a.rb(c.S[b],d,f,e);return}}K(a.a,3,5,172,function(){c.A=c.A&65534|128;c.T[b]|=128;return!!(c.A&64)})}
|
||||
l.uc=function(a,b,c,d,f){var e=this.o;e.Xa=65536-f&65535;e.Va=d&65535;e.A=e.A&-769|d>>8&768;e.za=d>>16&63;f=~~(c/e.D[0]);d=~~(f/e.Ga[0]);e.$[b.ga]=f%e.Ga[0]<<8|c%e.D[0];e.vb[b.ga]=e.ja[b.ga]=d;e.Ma|=1<<b.ga;c>=b.nc-1&&(e.T[b.ga]|=1024);switch(a){case 1:e.Z|=512;e.A|=49152;break;case 2:e.Z|=2048,e.A|=49152}K(this.a,20,5,172,function(){e.T[b.ga]|=128;e.A=e.A&65534|128;return!!(e.A&64)})};l.lc=function(){this.b.ua|=128;this.b.ua&64&&K(this.a,0,6,64)};
|
||||
function bb(a,b,c,d,f,e){var g=~~((e+c.ra-1)/c.ra),h=new XMLHttpRequest;2048>g&&d+2048<c.nc&&(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,p,E,H;m=h.response;if(h.status&&206!=h.status||!m)c.qb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(H=0;H<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],E=0;E<c.ra;E++)c.cache[p][E]=H<m.length?
|
||||
m[H]&255|m[H+1]<<8&65280:0,H+=2;else H+=c.ra<<1;p++}g(c,d,f,e)}}};h.send(null)}function L(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:M(a.a,4,122):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.rb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.rb,a,b,c,d);return}for(f=0;f<a.ra&&0<d;f++){if(0>cb(this.a,a.mc?db(this.a,c):c,a.cache[b][f])){a.qb(2,a,b,c,d);return}c+=2;--d}b++}a.qb(0,a,b,c,d)};
|
||||
function Ya(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=a.a.tb(b.mc?db(a.a,d):d);if(0>g){b.qb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.qb(0,b,c,d,f)}l.reset=function(){this.h.Ta=this.h.Ta&-120|20;this.f.da=0;this.f.V=128;this.b.ua=0;this.i.v=128;this.j.s=128;$a(this)};
|
||||
l.cc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ia&65280:(a&1&&(b<<=8),e.ia=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.ha=2}break;case 4194294:if(70!==e.Ia)return M(e,4,222);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Ia)return M(e,4,224);d=1;break;case 4194290:if(70!==e.Ia)return M(e,4,226);d=0;break;case 4194288:if(70!==e.Ia)return M(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.Ia)return M(e,4,232);f=a-4194272>>1;0>b?d=e.Eb[f]:(d=L(this,e.Eb[f],a,b,c),0<=d&&(e.Eb[f]=d));break;case 4194254:return a&1?e.O>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ya[3]=b),d=e.ya[3]):e.O>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ya[1]=b),d=e.ya[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.O&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.La[f]=
|
||||
b),d=e.La[f]),d;case 4194246:return a&1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.O>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.ya[0]=b),d=e.ya[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.O&2048?(0<=b&&(e.La[f]=b),d=e.La[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,M(e,4,124)}break;case 4194176:f=a>>1&31;d=L(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.f;switch(a&-2){case 4194174:d=L(this,e.Ya,a,b,c);0<=d&&(e.Ya=d);break;case 4194172:d=
|
||||
e.na;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.I=e.I&62337|e.eb<<5|e.pb<<1;0>b?d=e.I:(d=L(this,e.I,a,b,c),0<=d&&(e.I=d&=62337,e.eb=d>>5&3,e.pb=d>>1&15,d&257?(f=2,e.oa&16&&(f=1),e.Ua=d&1?6:4):(e.Ua=0,f=4),this.h.Ta=this.h.Ta&-8|f));break;case 4194168:0>b?d=this.h.Bc&65535:(d=L(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.fc=0),g.V&=-129,K(e,100,4,52,function(){g.V|=128;return!!(g.V&64)}));d=0;break;case 4194162:d=0;0>b&&(g.da&=-129,0<g.Gb.length&&(d=
|
||||
g.Gb.shift(),0<g.Gb.length&&setTimeout(function(){g.da|=128;g.da&64&&K(e,40,4,48)},50)));break;case 4194160:0>b?d=g.da:(d=L(this,g.da,a,b,c),0<=d&&(g.da=g.da&128|d&-129));break;default:return e.m|=16,M(e,4,126)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=L(this,f.ib,a,b,c);0<=d&&(f.ib=d);break;case 4194050:d=L(this,f.R,a,b,c);0<=d&&(f.R=d);break;case 4194052:d=L(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&Xa(this));break;case 4194054:d=L(this,f.jb,a,b,c);0<=d&&(f.jb=d);
|
||||
break;case 4194056:d=L(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194058:d=L(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=L(this,f.Wb,a,b,c);0<=d&&(f.Wb=d);break;default:return e.m|=16,M(e,4,128)}break;case 4193728:var h=this.o;f=h.Z&7;switch(a&-2){case 4193728:d=L(this,h.A,a,b,c);0<=b&&0<=d&&(h.za=h.za&60|d>>8&3,h.A=d&17279|h.A&34944|2048,d&1&&h.A&128?ab(this,f):192==(d&192)&&K(e,0,5,172));break;case 4193730:d=L(this,h.Xa,a,b,c);0<=d&&(h.Xa=d);break;case 4193732:d=L(this,
|
||||
h.Va,a,b,c);0<=d&&(h.Va=d&65534);break;case 4193734:d=L(this,h.$[f],a,b,c);0<=d&&(h.$[f]=d&7967);break;case 4193736:d=L(this,h.Z,a,b,c);0<=d&&(h.Z=d&63|h.Z&65472,d&128&&$a(this));break;case 4193738:d=h.T[f];break;case 4193740:d=h.Wa[f];break;case 4193742:d=L(this,h.Ma,a,b,c);0<=d&&(h.Ma=d&255);break;case 4193744:d=h.zc[f];break;case 4193746:d=L(this,h.Xb,a,b,c);0<=d&&(h.Xb=d);break;case 4193748:d=L(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.Ac[f];break;
|
||||
case 4193754:d=L(this,h.Zb[f],a,b,c);0<=d&&(h.Zb[f]=d);break;case 4193756:d=L(this,h.ja[f],a,b,c);0<=d&&(h.ja[f]=d&511);break;case 4193758:h.vb[f]=h.ja[f];d=h.vb[f];break;case 4193760:d=h.xc[f];break;case 4193762:d=h.yc[f];break;case 4193764:d=h.vc[f];break;case 4193766:d=h.wc[f];break;case 4193768:d=L(this,h.za,a,b,c);0<=d&&(h.za=d&63,h.A=h.A&-769|(d&3)<<8);break;case 4193770:d=L(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.m|=16,M(e,4,132)}break;case 4192512:f=this.j;switch(a&-2){case 4192512:d=
|
||||
L(this,f.s,a,b,c);0<=b&&0<=d&&(f.qa=f.qa&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||Za(this));break;case 4192514:d=L(this,f.ab,a,b,c);0<=d&&(f.ab=d&65534);break;case 4192516:d=L(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=L(this,f.va,a,b,c);0<=d&&(f.va=d);break;case 4192520:d=L(this,f.qa,a,b,c);0<=d&&(f.qa=d&63,f.s=f.s&-49|(f.qa&3)<<4);break;default:return e.m|=16,M(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.oa:(d=L(this,e.oa,a,b,c),0<=d&&(70!==e.Ia&&(d&=-49),e.oa=d,e.Ka[0]=
|
||||
d&4?15:7,e.Ka[1]=d&2?15:7,e.Ka[3]=d&1?15:7,e.Ua&&(f=2,e.oa&16&&(f=1),this.h.Ta=this.h.Ta&-8|f)));break;default:return e.m|=16,M(e,4,136)}break;case 4191424:f=a>>1&31;d=L(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=L(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.Ia)return M(e,4,234);f=a>>2&31;d=e.kb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=L(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=Ta[a>>1&255];else return e.m|=16,M(e,4,138);break;default:return e.m|=16,M(e,4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var eb={},Ua=(eb[65382]=[null,null,J.prototype.pc,J.prototype.Dc],eb[65396]=[null,null,J.prototype.rc,J.prototype.Gc],eb[65534]=[null,null,J.prototype.qc,J.prototype.Ec],eb);
|
||||
w(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new J(d);C(d,c)}});var fb;if(Ga){var gb=new ArrayBuffer(2);(new DataView(gb)).setUint16(0,256,!0);fb=256===(new Uint16Array(gb))[0]}else fb=!1;var hb=fb;
|
||||
function I(a,b,c,d,f){this.id=ib+=2;this.a=null;this.Sa=a;this.wb=b;this.size=c||0;this.type=d||jb;this.l=d==kb;this.controller=null;Ja(this);this.ta=this.gc=!1;if(c)if(f)this.controller=f,this.a=null,lb(this,f.Za);else if(Ga)this.u=new ArrayBuffer(c),this.f=new DataView(this.u,0,c),this.b=new Uint8Array(this.u,0,c),this.j=new Uint16Array(this.u,0,c>>1),this.a=new Int32Array(this.u,0,c>>2),lb(this,hb?mb:nb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;lb(this,ob)}else lb(this)}
|
||||
var jb=0,kb=2,Pa=4,Ra=["NONE","RAM","ROM","VID","H/W"],ib=0;
|
||||
I.prototype={constructor:I,parent:null,Fb:function(a){this.Sa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ga)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.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(Ga)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.ta=!0}return!1},o:function(){return 255},B:function(){},w:function(a,b){return this.gb(a++,b++)|this.gb(a,b)<<
|
||||
8},F:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ma: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.ta=!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.ta=!0},N:function(a,b){return this.W(a,
|
||||
b)},ca:function(a,b){return this.ka(a,b)},Ca:function(a,b,c){this.l||this.bc(a,b,c)},Oa:function(a,b,c){this.l||this.Pa(a,b,c)},K:function(a){return this.b[a]},X:function(a){return this.b[a]},ba:function(a){return this.f.getUint16(a,!0)},la:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},Ba:function(a,b){this.b[a]=b;this.ta=!0},Da:function(a,b){this.b[a]=b;this.ta=!0},Fa:function(a,b){this.f.setUint16(a,b,!0);this.ta=!0},Qa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
|
||||
1]=b;this.ta=!0}};function Ja(a,b,c){a.H=b;a.h=a.i=0;c&&((a.h=c.h)&&pb(a,qb,!1),(a.i=c.i)&&rb(a,qb,!1))}function rb(a,b,c){c&&a.i||(a.lb=!a.l&&b[1]||a.B,a.Fc=!a.l&&b[3]||a.F);if(c||void 0===c)a.bc=b[1]||a.B,a.Pa=b[3]||a.F}function pb(a,b,c){c&&a.h||(a.gb=b[0]||a.o,a.sb=b[2]||a.w);if(c||void 0===c)a.W=b[0]||a.o,a.ka=b[2]||a.w}function lb(a,b){b||(b=sb);pb(a,b,void 0);rb(a,b,void 0)}
|
||||
var sb=[],ob=[I.prototype.Y,I.prototype.Ea,I.prototype.ma,I.prototype.Ra],qb=[I.prototype.N,I.prototype.Ca,I.prototype.ca,I.prototype.Oa];if(Ga)var nb=[I.prototype.K,I.prototype.Ba,I.prototype.ba,I.prototype.Fa],mb=[I.prototype.X,I.prototype.Da,I.prototype.la,I.prototype.Qa];
|
||||
function tb(a,b){x.call(this,"CPU",a,tb);var c=a.multiplier||1;this.Ab=a.cycles||b;this.la=c;this.zb=Math.round(this.Ab/1E4)/100;this.ca=this.zb*this.la;this.g.fa=!1;this.g.$b=!1;this.g.$a=a.autoStart;this.g.Rb=!1;this.g.nb=!1;this.Qa=this.ka=0;this.Ra=a.csStart;this.Ca=a.csInterval;this.Da=a.csStop;this.Oa=[];this.Tb=this.Ib.bind(this);F(this)}z(tb);var ub=["power","reset"];l=tb.prototype;
|
||||
l.Ja=function(a,b,c,d){this.h=a;this.l=b;this.H=d;for(b=0;b<ub.length;b++)(c=this.u[ub[b]])&&this.h.aa(null,ub[b],c);this.Ba=null;a=vb(a,"autoStart");null!=a&&(this.g.$a="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.xa=function(a,b){if(!b){if(a&&this.restore){wb(this);if(!this.restore(a))return!1;xb(this)}else this.reset();this.J("No debugger detected")}yb(this);return!0};l.wa=function(a){return a?this.save():!0};
|
||||
l.$a=function(){return this.g.$a||void 0===this.u.run?(this.Ib(),!0):!1};l.Vb=function(){return 0};function xb(a){void 0===a.Ra&&(a.Ra=0);void 0===a.Ca&&(a.Ca=-1);void 0===a.Da&&(a.Da=-1);a.g.nb=0<=a.Ra&&0<a.Ca;a.g.nb&&(a.Qa=0,a.ka=a.Ra-a.Y)}function N(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.L("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;c=!a.g.fa||a.g.Rb?8==f?n(c,d):q(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.h)if(a=d.h,a.g.M)a=!0;else{var b=null,c,h=A(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.M);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.g.fa?O(d):d.Ib())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){zb(d,d.la<<1)},c.textContent=this.ca.toFixed(2)+"Mhz",a=!0}return a};function Ab(a,b,c){a.Y+=b;c&&(a.F=a.a=0)}function Bb(a,b){var c=1;b&&1<a.la&&a.W&&(c=a.W/a.zb);a.Ob=Math.round(1E3/30);a.mb=Math.floor(a.Ab/30*c);b||(a.Ea=a.mb);a.Bb=0}function Cb(a){return a.Y+a.N+a.F-a.a}function wb(a){a.W=0;a.Qb=0;a.Y=a.N=a.F=a.a=0;xb(a);zb(a,1)}
|
||||
function zb(a,b){if(void 0!==b&&(.8>a.W/a.ca&&(b=1),a.la=b,b=a.zb*a.la,a.ca!=b)){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.J("target speed: "+b)}Ab(a,a.N);a.N=0;a.K=ga();a.X=0;Bb(a)}
|
||||
l.Ib=function(){if(Ea(this,!0)){if(!this.g.fa){zb(this);this.h&&this.h.start(this.K,Cb(this));this.g.fa=!0;this.g.$b=!0;this.Ba&&this.Ba.start();var a=this.u.run;a&&(a.textContent="Halt");this.h&&this.h.Na(!0)}this.Bb>=this.Ab&&Bb(this,!0);this.Fa=0;this.Pa=ga();this.X&&(a=this.Pa-this.X,a>this.Ob&&(this.K+=a,this.K>this.Pa&&(this.K=this.Pa)));try{do{for(var b,c=this.g.nb?1:this.mb,d=this.Oa.length-1;0<=d;d--){var f=this.Oa[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.ac(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.F-this.a,a=e,g=this.Oa.length-1;0<=g;g--){var h=this.Oa[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.N+=e;Ab(this,0,!0);a=e;if(this.g.nb){var k=!1;this.Qa=this.Qa+this.Vb()|0;this.ka-=a;0>=this.ka&&(this.ka+=this.Ca,k=!0);0<=this.Da&&this.Da<=Cb(this)&&(this.Ca=this.Da=-1,xb(this),O(this),k=!0);k&&this.J(Cb(this)+" cycles: checksum="+q(this.Qa))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.mb;15<=++this.Qb&&(this.h&&this.h.Na(),this.Qb=0);break}}while(this.g.fa)}catch(m){O(this);
|
||||
yb(this);this.h&&this.h.stop(ga(),Cb(this));Ea(this,!1);b=m.stack||m.message;this.g.error=!0;this.L(b);return}b=setTimeout;c=this.Tb;this.X=ga();d=this.Ob;this.Fa&&(d=Math.round(d*this.Fa/this.mb));d-=this.X-this.Pa;if(f=this.X-this.K)this.W=Math.round(this.N/(10*f))/100,864E5<=f&&(this.Y=0,zb(this));if(0>d||this.W<this.ca)-1E3>d&&(this.K-=d),d=0;this.Bb+=this.Fa;this.X+=d;b(c,d)}else yb(this),this.h&&this.h.stop(ga(),Cb(this))};l.ac=function(){return 0};
|
||||
function O(a){a.g.bb&&(a.g.Cb=!0);a.F-=a.a;a.a=0;Ab(a,a.N);a.N=0;if(a.g.fa){a.g.fa=!1;a.Ba&&a.Ba.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function yb(a){a.h&&a.h.Na(void 0)}
|
||||
function Db(a){this.kc=a.resetAddr||0;tb.call(this,a,1E6);this.Lb=0;this.decode=Eb.bind(this);this.B=65536;this.j=32768;this.o=65535;this.i=32768;this.c=[0,0,0,0,0,0,0,this.kc];this.La=[0,0,0,0,0,0];this.ya=[0,0,0,0];this.ia=255;this.pb=this.eb=this.Ua=this.w=this.oa=this.Ya=this.na=this.I=this.m=this.ub=0;this.Ka=[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.b=-1;this.C=0;this.Ia=70;this.ma=-1;this.f=[];this.Ub=0;this.ha=2;Fb(this);this.g.complete=this.g.ec=!1}z(Db,tb);l=Db.prototype;
|
||||
l.reset=function(){this.g.fa&&O(this);Gb(this);wb(this);this.g.error=!1;this.parent.reset.call(this)};function Gb(a){a.ia=255;a.m=0;a.f=[];a.ub=0;a.I=a.na=a.Ya=a.oa=a.Ua=0;a.Ka[0]=a.Ka[1]=a.Ka[3]=7;a.eb=0;Fb(a)}function Fb(a){a.Ua?(a.Kb=65536,a.ba=a.jc,a.sb=a.ea):(a.Kb=0,a.ba=a.ic,a.sb=a.tb)}l.Vb=function(){return 0};l.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.Nb,this.Y,this.la]);a.set(2,Sa(this.l));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Nb=b[0];this.Y=b[1];zb(this,b[3]);a:{b=this.l;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.F){for(var e=0,g=Array(b.F),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)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.aa=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.u[b]=c;this.Lb++;a=!0;break;default:a=this.parent.aa.call(this,a,b,c)}return a};
|
||||
l.Na=function(a){if(this.Lb&&(a||!this.g.fa||this.g.Rb)){for(a=0;a<this.c.length;a++)N(this,"R"+a,this.c[a]);a=Va(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.fa&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
|
||||
function K(a,b,c,d,f){for(var e=a.f.length;0<e--;)if(a.f[e].Cc===d){0<e&&(a.f[e-1].sa+=a.f[e].sa);a.f.splice(e,1);break}if(0<=b){2===a.Ub&&(b=0,a.Ub=0,setTimeout(a.Tb,0));for(e=a.f.length;0<e--;){if(a.f[e].sa>b){a.f[e].sa-=b;break}b-=a.f[e].sa}a.f.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ha=2}function Va(a){return a.O=a.O&63728|(a.i&32768?8:0)|(a.o&65535?0:4)|(a.j&32768?2:0)|(a.B&65536?1:0)}
|
||||
function Wa(a,b){a.i=b<<12;a.o=~b&4;a.j=b<<14;a.B=b<<16;if((b^a.O)&2048)for(var c=a.La.length;0<=--c;){var d=a.c[c];a.c[c]=a.La[c];a.La[c]=d}a.w=b>>14&3;c=a.O>>14&3;a.w!=c&&(a.ya[c]=a.c[6],a.c[6]=a.ya[a.w]);a.ha=2;a.O=b}function Hb(a,b){a.C&128||(a.i=a.o=a.B=b,a.j=0)}function Q(a,b){a.C&128||(a.i=a.o=b,a.j=0)}function Ib(a,b,c,d){a.C&128||(a.i=a.o=a.B=b,a.j=(c^d)&(d^b))}
|
||||
function M(a,b,c){var d=!1;0>a.ma?a.ma=Va(a):a.w||(b=4,d=!0);a.I&57344||(a.na=63222,a.Ya=b);a.w=0;var f=a.ea(b|65536),e=a.ea(b+2&65535|65536);Wa(a,e&53247|a.ma>>2&12288);d&&(a.m|=4,a.c[6]=4);Jb(a,a.ma);Jb(a,a.c[7]);a.c[7]=f;a.C&=-113;a.ma=-1;throw b|c<<8;}function db(a,b){var c=b>>13&31;31>c?a.oa&32&&(b=a.kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Kb(a,b,c){var d,f,e,g=0;if(c&a.Ua){d=b>>13&a.Ka[a.w];f=a.P[a.w][d];e=(a.P[a.w][d+16]<<6)+(b&8191)&4194303;a.oa&16?3932160<=e&&4186112>e&&(e=db(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,M(a,4,24)),e&1&&!(c&1)&&(a.m|=64,M(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?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.w][d]=f;if(4194170!==e||a.w)a.eb=a.w,a.pb=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.I&57344||(a.I=a.I|g|a.eb<<5|a.pb<<1),M(a,168,28)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,M(a,4,22));return e}l.tb=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.l,c=a&b.h,d=(a&b.i)>>>b.f;a=c!=b.h?b.b[d].sb(c,a):b.b[d++].gb(c,a)|b.b[d&b.K].gb(0,a+1)<<8}return a};
|
||||
l.ea=function(a){return this.tb(Kb(this,a,2))};function cb(a,b,c){c&=65535;if(4194304<=b)return a.c[b-4194304]=c;if(0<=b){a=a.l;var d=c,f=b&a.h,e=(b&a.i)>>>a.f;f!=a.h?a.b[e].Fc(f,d&65535,b):(a.b[e++].lb(f,d&255,b),a.b[e&a.K].lb(0,d>>8&255,b+1));return c}return b}function Lb(a,b){4194304<=b?b=a.c[b-4194304]&255:0<=b&&(a=a.l,b=a.b[(b&a.i)>>>a.f].gb(b&a.h,b));return b}function Mb(a,b,c){c&=255;4194304<=b?a.c[b-4194304]=a.c[b-4194304]&65280|c:0<=b&&(a=a.l,a.b[(b&a.i)>>>a.f].lb(b&a.h,c&255,b))}
|
||||
function Jb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.I&57344||(a.na=a.na<<8|246);!a.w&&c<=a.ia&&4<c&&(c<=a.ia-32?(a.m|=4,a.c[6]=4,M(a,4,32)):(a.m|=8,a.C|=4));c=Kb(a,c|65536,4);cb(a,c,b)}
|
||||
function Nb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Kb;switch(b>>3&7){case 0:M(a,4,34);break;case 1:return 6===e&&!a.w&&c&4&&(a.c[6]<=a.ia||65534<=a.c[6])&&(a.c[6]<=a.ia-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,M(a,4,36)):(a.m|=8,a.C|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.ea(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.ea(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.ea(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.ea(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.ea(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.I&57344||(a.na=a.na<<8|f<<3&248|e);6===e&&!a.w&&c&4&&0>=f&&(a.c[6]<=a.ia||65534<=a.c[6])&&(a.c[6]<=a.ia-32?(a.m|=4,a.c[6]=4,M(a,4,38)):(a.m|=8,a.C|=64));return d}l.ic=function(a,b){return Nb(this,a,b)};l.jc=function(a,b){return Kb(this,Nb(this,a,b),b)};
|
||||
function R(a,b){return b&56?a.sb(Nb(a,b,2)):a.c[b&7]}function S(a,b){return b&56?Lb(a,a.ba(b,3)):a.c[b&7]&255}function Ob(a,b,c,d){b&56?(b=a.ba(b,6),cb(a,b,d.call(a,c,a.tb(b)))):(b&=7,a.c[b]=d.call(a,c,a.c[b])&65535)}function Pb(a,b,c,d){b&56?(b=a.ba(b,7),Mb(a,b,d.call(a,c,Lb(a,b)))):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b])&255)}function Qb(a,b,c){b&56?cb(a,a.ba(b,4),c):a.c[b&7]=c&65535;return c}
|
||||
l.Ja=function(a,b,c,d){this.j=b;this.a=c;this.H=d;a=Ua;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 p=m&8191;void 0!==c.ma[p]?u("I/O address already registered: "+q(m,8,!0)):c.ma[p]=[g,h,k,e,!1]}}f=this.bc.bind(this);b.w=this.reset.bind(this);b.Za=f;E(this)};l.oc=function(){var a=this.b.ra;this.b.ra&=-129;return a};
|
||||
l.Dc=function(a){this.b.ra=a;a&64&&!this.b.Eb&&(setInterval(this.kc.bind(this),25),this.b.Eb=1);this.b.ra=a&-129};l.pc=function(){var a=this.a;return a.w&62337|a.Oa<<5|a.Pa<<1};l.Ec=function(a){var b=4,c=this.a;c.w=a&=62337;c.Oa=a>>5&3;c.Pa=a>>1&15;c.ob=a&257?a&1?6:4:0;Va(c);a=c.w;a&1|256&&(b=this.a.Da&16?1:2);this.h.Ra=this.h.Ra&-8|b};l.rc=function(){return this.f.U};
|
||||
l.Hc=function(a){if(128==(this.f.U&192)&&a&64){var b=this;K(this.a,8,4,52,function(){b.f.U|=128;return!!(b.f.U&64)})}this.f.U=this.f.U&128|a&-129};l.qc=function(){return Wa(this.a)};l.Fc=function(a){Xa(this.a,a&-1809|Wa(this.a)&1808);this.a.D|=128};
|
||||
function Ya(a){var b=a.i,c,d,f,e=b.T>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.sc,drive:e,blocksize:256,mapped:0,maxblock:b.Ha[e]*b.F[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.cb=2496;b.P=0;b.v=128;b.T=0;break;case 1:if((b.T>>4&511)>=b.Ha[e]){b.P|=32832;b.v|=49152;break}if((b.T&15)>=b.F[e]){b.P|=32800;b.v|=49152;break}c=(b.T>>4&511)*b.F[e]+(b.T&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;Za(a,b.R[e],c,d,f);return;case 2:if((b.T>>4&511)>=b.Ha[e])b.P|=32832,
|
||||
b.v|=49152;else if((b.T&15)>=b.F[e])b.P|=32800,b.v|=49152;else{c=(b.T>>4&511)*b.F[e]+(b.T&15);d=(b.v&48)<<12|b.bb;f=65536-b.eb&65535;a.rb(b.R[e],c,d,f);return}}b.cb=e<<13|b.cb&8176|b.T%9&15;K(a.a,20,5,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}l.sc=function(a,b,c,d,f){var e=this.i;e.bb=d&65535;e.v=e.v&-49|d>>12&48;e.eb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}K(this.a,20,5,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||
function $a(a){var b=a.l,c,d,f,e=b.s>>8&3;b.s&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.tc,drive:e,blocksize:128,mapped:1,maxblock:b.Ha[e]*b.F[e],url:"rl"+e+".dsk"});switch(b.s>>1&7){case 2:b.sa&8&&(b.s&=63);b.sa=b.cc[e]|b.ya&64;break;case 3:1==(b.G&3)&&(b.ya=b.G&4?b.ya+(b.G&65408)&65408|b.G<<2&64:b.ya-(b.G&65408)&65408|b.G<<2&64,b.G=b.ya);break;case 4:b.sa=b.ya;break;case 5:if(b.G>>6>=b.Ha[e]){b.s|=37888;break}if((b.G&63)>=b.F[e]){b.s|=37888;break}c=(b.G>>6)*b.F[e]+(b.G&63);
|
||||
d=(b.na&63)<<16|b.Xa;f=65536-b.sa&65535;Za(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ha[e])b.s|=37888;else if((b.G&63)>=b.F[e])b.s|=37888;else{c=(b.G>>6)*b.F[e]+(b.G&63);d=(b.na&63)<<16|b.Xa;f=65536-b.sa&65535;a.rb(b.R[e],c,d,f);return}}K(a.a,20,5,112,function(){b.s|=129;return!!(b.s&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.l;e.Xa=d&65535;e.s=e.s&-49|d>>12&48;e.na=d>>16&63;e.G=~~(c/e.F[b.fa])<<6|c%e.F[b.fa];e.ya=e.G;e.sa=65536-f&65535;switch(a){case 1:e.s|=33792;break;case 2:e.s|=40960}K(this.a,20,5,112,function(){e.s|=129;return!!(e.s&64)})};function ab(a){a=a.o;a.A=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.La=a.Ua=a.Sa=a.xa=a.Hb=0}
|
||||
function bb(a,b){var c=a.o,d,f,e;c.A&=-16513;c.Z&=-2049;c.S[b]&=-1153;K(a.a,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.uc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ga[0]*c.F[0],url:"rp"+b+".dsk"});switch(c.A&63){case 5:c.ub[b]=c.ha[b];c.A|=32896;c.S[b]|=32896;c.La|=1<<b;break;case 9:ab(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ha[b]>=c.xb[0]||c.$[b]>>8>=c.Ga[0]||(c.$[b]&255)>=c.F[0]){c.Ta[b]|=1024;c.A|=49152;break}d=(c.ha[b]*c.Ga[0]+(c.$[b]>>8))*c.F[0]+(c.$[b]&
|
||||
255);f=(c.xa&63)<<16|c.Sa;e=65536-c.Ua&65535;Za(a,c.R[b],d,f,e);return;case 57:if(c.ha[b]>=c.xb[0]||c.$[b]>>8>=c.Ga[0]||(c.$[b]&255)>=c.F[0])c.Ta[b]|=1024,c.A|=49152;else{d=(c.ha[b]*c.Ga[0]+(c.$[b]>>8))*c.F[0]+(c.$[b]&255);f=(c.xa&63)<<16|c.Sa;e=65536-c.Ua&65535;a.rb(c.R[b],d,f,e);return}}K(a.a,3,5,172,function(){c.A=c.A&65534|128;c.S[b]|=128;return!!(c.A&64)})}
|
||||
l.uc=function(a,b,c,d,f){var e=this.o;e.Ua=65536-f&65535;e.Sa=d&65535;e.A=e.A&-769|d>>8&768;e.xa=d>>16&63;f=~~(c/e.F[0]);d=~~(f/e.Ga[0]);e.$[b.fa]=f%e.Ga[0]<<8|c%e.F[0];e.ub[b.fa]=e.ha[b.fa]=d;e.La|=1<<b.fa;c>=b.mc-1&&(e.S[b.fa]|=1024);switch(a){case 1:e.Z|=512;e.A|=49152;break;case 2:e.Z|=2048,e.A|=49152}K(this.a,20,5,172,function(){e.S[b.fa]|=128;e.A=e.A&65534|128;return!!(e.A&64)})};l.kc=function(){this.b.ra|=128;this.b.ra&64&&K(this.a,0,6,64)};
|
||||
function cb(a,b,c,d,f,e){var g=~~((e+c.oa-1)/c.oa),h=new XMLHttpRequest;2048>g&&d+2048<c.mc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.oa<<1)+"-"+(((d+g)*c.oa<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,p,F,H;m=h.response;if(h.status&&206!=h.status||!m)c.qb(1,c,d,f,e);else{m=new Uint8Array(m);p=d;for(H=0;H<m.length;){if("undefined"===typeof c.cache[p])for(c.cache[p]=[],F=0;F<c.oa;F++)c.cache[p][F]=H<m.length?
|
||||
m[H]&255|m[H+1]<<8&65280:0,H+=2;else H+=c.oa<<1;p++}g(c,d,f,e)}}};h.send(null)}function L(a,b,c,d,f){c&1?f?d=0<=d?d<<8&65280|b&255:b:M(a.a,4):0<=d?f&&(d=b&65280|d&255):d=b;return d}l.rb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){cb(this,this.rb,a,b,c,d);return}for(f=0;f<a.oa&&0<d;f++){if(0>db(this.a,a.lc?eb(this.a,c):c,a.cache[b][f])){a.qb(2,a,b,c,d);return}c+=2;--d}b++}a.qb(0,a,b,c,d)};
|
||||
function Za(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.oa;e++)b.cache[c][e]=0;for(e=0;e<b.oa&&0<f;e++){g=a.a.tb(b.lc?eb(a.a,d):d);if(0>g){b.qb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.qb(0,b,c,d,f)}l.reset=function(){this.h.Ra=this.h.Ra&-120|20;this.f.ca=0;this.f.U=128;this.b.ra=0;this.i.v=128;this.l.s=128;ab(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.va&65280:(a&1&&(b<<=8),e.va=b|255,d=0);break;case 4194298:if(0>b)d=e.Gb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.Gb=d;e.ga=2}break;case 4194294:if(70!==e.Ia)return M(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Ia)return M(e,4);d=1;break;case 4194290:if(70!==e.Ia)return M(e,4);d=0;break;case 4194288:if(70!==e.Ia)return M(e,4);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.Ia)return M(e,4);f=a-4194272>>1;0>b?d=e.Db[f]:(d=L(this,e.Db[f],a,b,c),0<=d&&(e.Db[f]=d));break;case 4194254:return a&1?e.N>>14&1?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.wa[3]=b),d=e.wa[3]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.wa[1]=b),d=e.wa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.N&2048?(0<=b&&(e.c[f]=b),d=e.c[f]):(0<=b&&(e.Ka[f]=b),d=e.Ka[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.c[7]=b),d=e.c[7]):e.N>>14&0?(0<=b&&(e.c[6]=b),d=e.c[6]):(0<=b&&(e.wa[0]=b),d=e.wa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.N&2048?(0<=b&&(e.Ka[f]=b),d=e.Ka[f]):(0<=b&&(e.c[f]=b),d=e.c[f]),d;default:return e.m|=16,M(e,4)}break;case 4194176:f=a>>1&31;d=L(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.f;switch(a&-2){case 4194174:d=L(this,e.hb,a,b,c);0<=d&&(e.hb=d);break;case 4194172:d=e.Ca;d&65280&&(d=(d<<8|d>>8)&65535);break;
|
||||
case 4194168:0>b?d=this.h.Bc&65535:(d=L(this,this.h.data,a,b,c),0<=d&&(this.h.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.U&=-129,K(e,100,4,52,function(){g.U|=128;return!!(g.U&64)}));d=0;break;case 4194162:d=0;0>b&&(g.ca&=-129,0<g.Fb.length&&(d=g.Fb.shift(),0<g.Fb.length&&setTimeout(function(){g.ca|=128;g.ca&64&&K(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ca:(d=L(this,g.ca,a,b,c),0<=d&&(g.ca=g.ca&128|d&-129));break;default:return e.m|=16,M(e,4)}break;case 4194048:f=this.i;switch(a&-2){case 4194048:d=
|
||||
L(this,f.cb,a,b,c);0<=d&&(f.cb=d);break;case 4194050:d=L(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=L(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&Ya(this));break;case 4194054:d=L(this,f.eb,a,b,c);0<=d&&(f.eb=d);break;case 4194056:d=L(this,f.bb,a,b,c);0<=d&&(f.bb=d);break;case 4194058:d=L(this,f.T,a,b,c);0<=d&&(f.T=d);break;case 4194060:break;case 4194062:d=L(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.m|=16,M(e,4)}break;case 4193728:var h=this.o;f=h.Z&7;switch(a&
|
||||
-2){case 4193728:d=L(this,h.A,a,b,c);0<=b&&0<=d&&(h.xa=h.xa&60|d>>8&3,h.A=d&17279|h.A&34944|2048,d&1&&h.A&128?bb(this,f):192==(d&192)&&K(e,0,5,172));break;case 4193730:d=L(this,h.Ua,a,b,c);0<=d&&(h.Ua=d);break;case 4193732:d=L(this,h.Sa,a,b,c);0<=d&&(h.Sa=d&65534);break;case 4193734:d=L(this,h.$[f],a,b,c);0<=d&&(h.$[f]=d&7967);break;case 4193736:d=L(this,h.Z,a,b,c);0<=d&&(h.Z=d&63|h.Z&65472,d&128&&ab(this));break;case 4193738:d=h.S[f];break;case 4193740:d=h.Ta[f];break;case 4193742:d=L(this,h.La,
|
||||
a,b,c);0<=d&&(h.La=d&255);break;case 4193744:d=h.zc[f];break;case 4193746:d=L(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=L(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.Ac[f];break;case 4193754:d=L(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=L(this,h.ha[f],a,b,c);0<=d&&(h.ha[f]=d&511);break;case 4193758:h.ub[f]=h.ha[f];d=h.ub[f];break;case 4193760:d=h.xc[f];break;case 4193762:d=h.yc[f];break;case 4193764:d=h.vc[f];break;case 4193766:d=
|
||||
h.wc[f];break;case 4193768:d=L(this,h.xa,a,b,c);0<=d&&(h.xa=d&63,h.A=h.A&-769|(d&3)<<8);break;case 4193770:d=L(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.m|=16,M(e,4)}break;case 4192512:f=this.l;switch(a&-2){case 4192512:d=L(this,f.s,a,b,c);0<=b&&0<=d&&(f.na=f.na&60|d>>4&3,f.s=f.s&-1023|d&1022,f.s&128||$a(this));break;case 4192514:d=L(this,f.Xa,a,b,c);0<=d&&(f.Xa=d&65534);break;case 4192516:d=L(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=L(this,f.sa,a,b,c);0<=d&&(f.sa=d);break;
|
||||
case 4192520:d=L(this,f.na,a,b,c);0<=d&&(f.na=d&63,f.s=f.s&-49|(f.na&3)<<4);break;default:return e.m|=16,M(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.Da:(d=L(this,e.Da,a,b,c),0<=d&&(70!==e.Ia&&(d&=-49),e.Da=d,e.pb[0]=d&4?15:7,e.pb[1]=d&2?15:7,e.pb[3]=d&1?15:7,e.ob&&(f=2,e.Da&16&&(f=1),this.h.Ra=this.h.Ra&-8|f)));break;default:return e.m|=16,M(e,4)}break;case 4191424:f=a>>1&31;d=L(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=L(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.Ia)return M(e,4);f=a>>2&31;d=e.fb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=L(this,d,a,b,c),0<=d&&(e.fb[f]=a&2?d<<16|e.fb[f]&65535:e.fb[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=Ta[a>>1&255];else return e.m|=16,M(e,4);break;default:return e.m|=16,M(e,4)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");
|
||||
return d};var fb={},Ua=(fb[65382]=[null,null,J.prototype.oc,J.prototype.Dc],fb[65402]=[null,null,J.prototype.pc,J.prototype.Ec],fb[65396]=[null,null,J.prototype.rc,J.prototype.Hc],fb[65534]=[null,null,J.prototype.qc,J.prototype.Fc],fb);w(function(){for(var a=D(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new J(d);C(d,c)}});var gb;if(Ga){var hb=new ArrayBuffer(2);(new DataView(hb)).setUint16(0,256,!0);gb=256===(new Uint16Array(hb))[0]}else gb=!1;var ib=gb;
|
||||
function I(a,b,c,d,f){this.id=jb+=2;this.a=null;this.Qa=a;this.vb=b;this.size=c||0;this.type=d||kb;this.f=d==lb;this.controller=null;Ja(this);this.qa=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,mb(this,f.Va);else if(Ga)this.u=new ArrayBuffer(c),this.j=new DataView(this.u,0,c),this.b=new Uint8Array(this.u,0,c),this.l=new Uint16Array(this.u,0,c>>1),this.a=new Int32Array(this.u,0,c>>2),mb(this,ib?nb:ob);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;mb(this,pb)}else mb(this)}
|
||||
var kb=0,lb=2,Pa=4,Ra=["NONE","RAM","ROM","VID","H/W"],jb=0;
|
||||
I.prototype={constructor:I,parent:null,Eb:function(a){this.Qa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ga)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.j.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(Ga)for(b=0;b<a.length;b++)this.j.setInt32(b<<2,a[b],!0);else this.a=a;return this.qa=!0}return!1},o:function(){return 255},B:function(){},w:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<
|
||||
8},C:function(a,b,c){this.gb(a++,b&255,c++);this.gb(a,b>>8,c)},X:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},ka: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},Ba:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.qa=!0},Pa: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.qa=!0},M:function(a,b){return this.V(a,
|
||||
b)},ba:function(a,b){return this.ia(a,b)},za:function(a,b,c){this.f||this.ac(a,b,c)},Fa:function(a,b,c){this.f||this.Na(a,b,c)},J:function(a){return this.b[a]},W:function(a){return this.b[a]},Y:function(a){return this.j.getUint16(a,!0)},ja:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},la:function(a,b){this.b[a]=b;this.qa=!0},Aa:function(a,b){this.b[a]=b;this.qa=!0},Ea:function(a,b){this.j.setUint16(a,b,!0);this.qa=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=
|
||||
b;this.qa=!0}};function Ja(a,b,c){a.H=b;a.h=a.i=0;c&&((a.h=c.h)&&qb(a,rb,!1),(a.i=c.i)&&sb(a,rb,!1))}function sb(a,b,c){c&&a.i||(a.gb=!a.f&&b[1]||a.B,a.Gc=!a.f&&b[3]||a.C);if(c||void 0===c)a.ac=b[1]||a.B,a.Na=b[3]||a.C}function qb(a,b,c){c&&a.h||(a.ab=b[0]||a.o,a.sb=b[2]||a.w);if(c||void 0===c)a.V=b[0]||a.o,a.ia=b[2]||a.w}function mb(a,b){b||(b=tb);qb(a,b,void 0);sb(a,b,void 0)}
|
||||
var tb=[],pb=[I.prototype.X,I.prototype.Ba,I.prototype.ka,I.prototype.Pa],rb=[I.prototype.M,I.prototype.za,I.prototype.ba,I.prototype.Fa];if(Ga)var ob=[I.prototype.J,I.prototype.la,I.prototype.Y,I.prototype.Ea],nb=[I.prototype.W,I.prototype.Aa,I.prototype.ja,I.prototype.Oa];
|
||||
function ub(a,b){x.call(this,"CPU",a,ub);var c=a.multiplier||1;this.Ab=a.cycles||b;this.ka=c;this.zb=Math.round(this.Ab/1E4)/100;this.ia=this.zb*this.ka;this.g.ea=!1;this.g.Zb=!1;this.g.Wa=a.autoStart;this.g.Ob=!1;this.g.mb=!1;this.jb=this.ja=0;this.kb=a.csStart;this.Aa=a.csInterval;this.Ba=a.csStop;this.Na=[];this.Sb=this.Ib.bind(this);E(this)}z(ub);var vb=["power","reset"];l=ub.prototype;
|
||||
l.Ja=function(a,b,c,d){this.h=a;this.j=b;this.H=d;for(b=0;b<vb.length;b++)(c=this.u[vb[b]])&&this.h.aa(null,vb[b],c);this.za=null;a=wb(a,"autoStart");null!=a&&(this.g.Wa="true"==a?!0:"false"==a?!1:!!a);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.ua=function(a,b){if(!b){if(a&&this.restore){xb(this);if(!this.restore(a))return!1;yb(this)}else this.reset();this.I("No debugger detected")}zb(this);return!0};l.ta=function(a){return a?this.save():!0};
|
||||
l.Wa=function(){return this.g.Wa||void 0===this.u.run?(this.Ib(),!0):!1};l.Tb=function(){return 0};function yb(a){void 0===a.kb&&(a.kb=0);void 0===a.Aa&&(a.Aa=-1);void 0===a.Ba&&(a.Ba=-1);a.g.mb=0<=a.kb&&0<a.Aa;a.g.mb&&(a.jb=0,a.ja=a.kb-a.Y)}function N(a,b,c,d){if(a.u[b]){void 0===c&&(a.g.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;c=!a.g.ea||a.g.Ob?8==f?n(c,d):q(c,d):"--------".substr(0,d||4);a.u[b].textContent!=c&&(a.u[b].textContent=c)}}
|
||||
l.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.u[b]=c;a=!0;break;case "run":this.u[b]=c;c.onclick=function(){var a;if(a=d.h)if(a=d.h,a.g.L)a=!0;else{var b=null,c,h=A(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.L);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.nb?" (waiting for notification)":""))+".");a=!1}a&&(d.g.ea?O(d):d.Ib())};a=!0;
|
||||
break;case "speed":this.u[b]=c;a=!0;break;case "setSpeed":this.u[b]=c,c.onclick=function(){Ab(d,d.ka<<1)},c.textContent=this.ia.toFixed(2)+"Mhz",a=!0}return a};function Bb(a,b,c){a.Y+=b;c&&(a.X=a.a=0)}function Cb(a,b){var c=1;b&&1<a.ka&&a.V&&(c=a.V/a.zb);a.Qb=Math.round(1E3/30);a.lb=Math.floor(a.Ab/30*c);b||(a.Ea=a.lb);a.wb=0}function Db(a){return a.Y+a.M+a.X-a.a}function xb(a){a.V=0;a.Rb=0;a.Y=a.M=a.X=a.a=0;yb(a);Ab(a,1)}
|
||||
function Ab(a,b){if(void 0!==b&&(.8>a.V/a.ia&&(b=1),a.ka=b,b=a.zb*a.ka,a.ia!=b)){a.ia=b;b=a.ia.toFixed(2)+"Mhz";var c=a.u.setSpeed;c&&(c.textContent=b);a.I("target speed: "+b)}Bb(a,a.M);a.M=0;a.J=ga();a.W=0;Cb(a)}
|
||||
l.Ib=function(){if(Ea(this,!0)){if(!this.g.ea){Ab(this);this.h&&this.h.start(this.J,Db(this));this.g.ea=!0;this.g.Zb=!0;this.za&&this.za.start();var a=this.u.run;a&&(a.textContent="Halt");this.h&&this.h.Ma(!0)}this.wb>=this.Ab&&Cb(this,!0);this.Fa=0;this.ib=ga();this.W&&(a=this.ib-this.W,a>this.Qb&&(this.J+=a,this.J>this.ib&&(this.J=this.ib)));try{do{for(var b,c=this.g.mb?1:this.lb,d=this.Na.length-1;0<=d;d--){var f=this.Na[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.X-this.a,a=e,g=this.Na.length-1;0<=g;g--){var h=this.Na[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Fa+=e;this.M+=e;Bb(this,0,!0);a=e;if(this.g.mb){var k=!1;this.jb=this.jb+this.Tb()|0;this.ja-=a;0>=this.ja&&(this.ja+=this.Aa,k=!0);0<=this.Ba&&this.Ba<=Db(this)&&(this.Aa=this.Ba=-1,yb(this),O(this),k=!0);k&&this.I(Db(this)+" cycles: checksum="+q(this.jb))}this.Ea-=e;if(0>=this.Ea){this.Ea+=this.lb;15<=++this.Rb&&(this.h&&this.h.Ma(),this.Rb=0);break}}while(this.g.ea)}catch(m){O(this);
|
||||
zb(this);this.h&&this.h.stop(ga(),Db(this));Ea(this,!1);b=m.stack||m.message;this.g.error=!0;this.K(b);return}b=setTimeout;c=this.Sb;this.W=ga();d=this.Qb;this.Fa&&(d=Math.round(d*this.Fa/this.lb));d-=this.W-this.ib;if(f=this.W-this.J)this.V=Math.round(this.M/(10*f))/100,864E5<=f&&(this.Y=0,Ab(this));if(0>d||this.V<this.ia)-1E3>d&&(this.J-=d),d=0;this.wb+=this.Fa;this.W+=d;b(c,d)}else zb(this),this.h&&this.h.stop(ga(),Db(this))};l.$b=function(){return 0};
|
||||
function O(a){a.g.Ya&&(a.g.Bb=!0);a.X-=a.a;a.a=0;Bb(a,a.M);a.M=0;if(a.g.ea){a.g.ea=!1;a.za&&a.za.stop();var b=a.u.run;b&&(b.textContent="Run")}a.g.complete=void 0}function zb(a){a.h&&a.h.Ma(void 0)}
|
||||
function Eb(a){this.jc=a.resetAddr||0;ub.call(this,a,1E6);this.Kb=0;this.decode=Fb.bind(this);this.C=65536;this.l=32768;this.o=65535;this.i=32768;this.c=[0,0,0,0,0,0,0,this.jc];this.Ka=[0,0,0,0,0,0];this.wa=[0,0,0,0];this.Pa=this.B=0;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.fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Db=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.b=-1;this.D=0;this.Ia=70;this.la=-1;this.Ub=0;Gb(this);this.g.complete=this.g.dc=!1}z(Eb,ub);l=Eb.prototype;l.reset=function(){this.g.ea&&O(this);Gb(this);xb(this);this.g.error=!1;this.parent.reset.call(this)};
|
||||
function Gb(a){a.va=255;a.m=0;a.Gb=0;a.w=0;a.Ca=0;a.hb=0;a.Da=0;a.ob=0;a.Oa=0;a.pb=[7,7,7,7];a.f=[];a.ga=2;Va(a)}function Va(a){a.ob?(a.Jb=65536,a.ba=a.hc,a.sb=a.da):(a.Jb=0,a.ba=a.gc,a.sb=a.tb)}l.Tb=function(){return 0};l.save=function(){var a=new P(this);a.set(0,[]);a.set(1,[this.Y,this.ka]);a.set(2,Sa(this.j));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Y=b[1];Ab(this,b[3]);a:{b=this.j;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.C){for(var e=0,g=Array(b.C),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)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.aa=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.u[b]=c;this.Kb++;a=!0;break;default:a=this.parent.aa.call(this,a,b,c)}return a};
|
||||
l.Ma=function(a){if(this.Kb&&(a||!this.g.ea||this.g.Ob)){for(a=0;a<this.c.length;a++)N(this,"R"+a,this.c[a]);a=Wa(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.u.speed)a.textContent=this.g.ea&&this.V?this.V.toFixed(2)+"Mhz":"Stopped"};
|
||||
function K(a,b,c,d,f){for(var e=a.f.length;0<e--;)if(a.f[e].Cc===d){0<e&&(a.f[e-1].pa+=a.f[e].pa);a.f.splice(e,1);break}if(0<=b){2===a.Ub&&(b=0,a.Ub=0,setTimeout(a.Sb,0));for(e=a.f.length;0<e--;){if(a.f[e].pa>b){a.f[e].pa-=b;break}b-=a.f[e].pa}a.f.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.ga=2}function Wa(a){return a.N=a.N&63728|(a.i&32768?8:0)|(a.o&65535?0:4)|(a.l&32768?2:0)|(a.C&65536?1:0)}
|
||||
function Xa(a,b){a.i=b<<12;a.o=~b&4;a.l=b<<14;a.C=b<<16;if((b^a.N)&2048)for(var c=a.Ka.length;0<=--c;){var d=a.c[c];a.c[c]=a.Ka[c];a.Ka[c]=d}a.B=b>>14&3;c=a.N>>14&3;a.B!=c&&(a.wa[c]=a.c[6],a.c[6]=a.wa[a.B]);a.ga=2;a.N=b}function Hb(a,b){a.D&128||(a.i=a.o=a.C=b,a.l=0)}function Q(a,b){a.D&128||(a.i=a.o=b,a.l=0)}function Ib(a,b,c,d){a.D&128||(a.i=a.o=a.C=b,a.l=(c^d)&(d^b))}
|
||||
function M(a,b){var c=!1;0>a.la?a.la=Wa(a):a.B||(b=4,c=!0);a.w&57344||(a.Ca=63222,a.hb=b);a.B=0;var d=a.da(b|65536),f=a.da(b+2&65535|65536);Xa(a,f&53247|a.la>>2&12288);c&&(a.m|=4,a.c[6]=4);Jb(a,a.la);Jb(a,a.c[7]);a.c[7]=d;a.D&=-113;a.la=-1;throw b;}function eb(a,b){var c=b>>13&31;31>c?a.Da&32&&(b=a.fb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Kb(a,b,c){var d,f,e,g=0;if(c&a.ob){d=b>>13&a.pb[a.B];f=a.O[a.B][d];e=(a.O[a.B][d+16]<<6)+(b&8191)&4194303;a.Da&16?3932160<=e&&4186112>e&&(e=eb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,M(a,4)),e&1&&!(c&1)&&(a.m|=64,M(a,4)));switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?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.B][d]=f;if(4194170!==e||a.B)a.Oa=a.B,a.Pa=d;g&&(g&57344&&(0<=a.la&&(g|=128),a.w&57344||(a.w=a.w|g|a.Oa<<5|a.Pa<<1),M(a,168)),a.w&61440||!(4191360>e||4194239<e)||(a.w|=4096,a.w&512&&(a.D|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,M(a,4));return e}l.tb=function(a){if(4194304<=a)a=this.c[a-4194304];else if(0<=a){var b=this.j,c=a&b.h,d=(a&b.i)>>>b.j;a=c!=b.h?b.b[d].sb(c,a):b.b[d++].ab(c,a)|b.b[d&b.J].ab(0,a+1)<<8}return a};l.da=function(a){return this.tb(Kb(this,a,2))};
|
||||
function db(a,b,c){c&=65535;if(4194304<=b)return a.c[b-4194304]=c;if(0<=b){a=a.j;var d=c,f=b&a.h,e=(b&a.i)>>>a.j;f!=a.h?a.b[e].Gc(f,d&65535,b):(a.b[e++].gb(f,d&255,b),a.b[e&a.J].gb(0,d>>8&255,b+1));return c}return b}function Lb(a,b){4194304<=b?b=a.c[b-4194304]&255:0<=b&&(a=a.j,b=a.b[(b&a.i)>>>a.j].ab(b&a.h,b));return b}function Mb(a,b,c){c&=255;4194304<=b?a.c[b-4194304]=a.c[b-4194304]&65280|c:0<=b&&(a=a.j,a.b[(b&a.i)>>>a.j].gb(b&a.h,c&255,b))}
|
||||
function Jb(a,b){var c=a.c[6]-2&65535;a.c[6]=c;a.w&57344||(a.Ca=a.Ca<<8|246);!a.B&&c<=a.va&&4<c&&(c<=a.va-32?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=4));c=Kb(a,c|65536,4);db(a,c,b)}
|
||||
function Nb(a,b,c){var d,f,e=b&7,g=c&8?0:a.Jb;switch(b>>3&7){case 0:M(a,4);break;case 1:return 6===e&&!a.B&&c&4&&(a.c[6]<=a.va||65534<=a.c[6])&&(a.c[6]<=a.va-32||65534<=a.c[6]?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=64)),7===e?a.c[e]:a.c[e]|g;case 2:f=2;d=a.c[e];7!==e&&(d|=g,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.c[e];7!==e&&(d|=g);if(0>(d=a.da(d)))return d;d|=g;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.c[e]+f&65535;7!==e&&(d|=g);break;case 5:f=-2;d=a.c[e]-2&65535;7!==e&&(d|=g);if(0>(d=a.da(d)))return d;
|
||||
d|=g;break;case 6:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return d|g;case 7:if(0>(d=a.da(a.c[7])))return d;a.c[7]=a.c[7]+2&65535;d=d+a.c[e]&65535;return 0>(d=a.da(d|65536))?d:d|g}a.c[e]=a.c[e]+f&65535;!g||a.w&57344||(a.Ca=a.Ca<<8|f<<3&248|e);6===e&&!a.B&&c&4&&0>=f&&(a.c[6]<=a.va||65534<=a.c[6])&&(a.c[6]<=a.va-32?(a.m|=4,a.c[6]=4,M(a,4)):(a.m|=8,a.D|=64));return d}l.gc=function(a,b){return Nb(this,a,b)};l.hc=function(a,b){return Kb(this,Nb(this,a,b),b)};
|
||||
function R(a,b){return b&56?a.sb(Nb(a,b,2)):a.c[b&7]}function S(a,b){return b&56?Lb(a,a.ba(b,3)):a.c[b&7]&255}function Ob(a,b,c,d){b&56?(b=a.ba(b,6),db(a,b,d.call(a,c,a.tb(b)))):(b&=7,a.c[b]=d.call(a,c,a.c[b])&65535)}function Pb(a,b,c,d){b&56?(b=a.ba(b,7),Mb(a,b,d.call(a,c,Lb(a,b)))):(b&=7,a.c[b]=a.c[b]&65280|d.call(a,c,a.c[b])&255)}function Qb(a,b,c){b&56?db(a,a.ba(b,4),c):a.c[b&7]=c&65535;return c}
|
||||
function Rb(a,b,c,d){b&56?Mb(a,a.ba(b,5),c):(b&=7,a.c[b]=c?d&1?c<<24>>24&65535:a.c[b]&-256|c&255:a.c[b]&-256);return c}function T(a,b){return a.c[7]+(b<<24>>23)&65535}
|
||||
l.ac=function(a){this.g.complete=!0;this.g.ec=!1;this.g.$b=!1;this.F=this.a=a;this.Nb&256?(this.F-=this.a,this.a=0,a=!1):a=!0;if(a){do{var b,c;this.C&112&&(this.C&32?M(this,168,52):this.C&64?M(this,4,54):this.C&16&&M(this,12,56),this.C&=-113);if(this.ha)if(1===this.ha)this.ha=2;else{this.ha=0;c=-1;a=this.ub&224;if(0<(b=this.f.length))for(;0<b--;){if(0<this.f[b].sa){this.f[b].sa--;this.ha=2;break}if(this.f[b].Pb){if(!this.f[b].Pb()){this.f.splice(b,1);c--;continue}this.f[b].Pb=null}this.f[b].oc>a&&
|
||||
(a=this.f[b].oc,c=b)}a>(this.O&224)&&(0>c?M(this,160,42):(M(this,this.f[c].Cc,44),this.f.splice(c,1)))}this.I&57344||(this.na=0,this.Ya=this.c[7]);this.C=this.O&16;this.b=a=this.ea(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a);if(0>this.b){this.c[7]=this.c[7]-2&65535;this.J("unimplemented");break}}while(0<this.a)}return this.g.complete?this.F-this.a:void 0===this.g.complete?0:-1};
|
||||
w(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Db(d);C(d,c)}});function Sb(a,b){var c=a+b;this.C&128||(this.i=this.o=this.B=c,this.j=(a^c)&(b^c));return c&65535}function Tb(a,b){a=~a&b;Q(this,a);return a}function Ub(a,b){a=~a&b;Q(this,a<<8);return a}function Vb(a,b){a|=b;Q(this,a);return a}function Wb(a,b){a|=b;Q(this,a<<8);return a}function Xb(a,b){var c=b-a;Ib(this,c,a,b);return c&65535}function Yb(){this.b=-1;--this.a}
|
||||
function Zb(){this.b=-1;--this.a}function U(a){a&1&&(this.B=0);a&2&&(this.j=0);a&4&&(this.o=1);a&8&&(this.i=0);--this.a}function $b(){this.b=-1;--this.a}function ac(a){var b=Nb(this,a,8);a=a>>6&7;Jb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}function bc(){this.b=-1;--this.a}function cc(){--this.a}function V(a){a&1&&(this.B=65536);a&2&&(this.j=32768);a&4&&(this.o=0);a&8&&(this.i=32768);--this.a}function dc(){this.b=-1;--this.a}function ec(){this.b=-1;--this.a}
|
||||
function W(){M(this,8,48)}function Eb(a){fc[a>>12].call(this,a)}
|
||||
l.$b=function(a){this.g.complete=!0;this.g.dc=!1;this.g.Zb=!1;this.X=this.a=a;do{this.D&112&&(this.D&32?M(this,168):this.D&64?M(this,4):this.D&16&&M(this,12),this.D&=-113);if(this.ga)if(1==this.ga)this.ga=2;else{this.ga=0;a=null;for(var b=this.Gb&224,c=this.f.length;0<=--c;){if(0<this.f[c].pa){this.f[c].pa--;this.ga=2;break}if(this.f[c].Mb){if(!this.f[c].Mb()){this.f.splice(c,1);continue}this.f[c].Mb=null}this.f[c].nc>b&&(b=this.f[c].nc,a=this.f[c],this.f.splice(c,1))}b>(this.N&224)&&(a?M(this,a.Cc):
|
||||
M(this,160))}this.w&57344||(this.Ca=0,this.hb=this.c[7]);this.D=this.N&16;a=this.b=this.da(this.c[7]);0<=a&&(this.c[7]=this.c[7]+2&65535);this.decode(a);if(0>this.b){this.c[7]=this.c[7]-2&65535;this.I("unimplemented");break}}while(0<this.a);return this.g.complete?this.X-this.a:void 0===this.g.complete?0:-1};w(function(){for(var a=D(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Eb(d);C(d,c)}});
|
||||
function Sb(a,b){var c=a+b;this.D&128||(this.i=this.o=this.C=c,this.l=(a^c)&(b^c));return c&65535}function Tb(a,b){a=~a&b;Q(this,a);return a}function Ub(a,b){a=~a&b;Q(this,a<<8);return a}function Vb(a,b){a|=b;Q(this,a);return a}function Wb(a,b){a|=b;Q(this,a<<8);return a}function Xb(a,b){var c=b-a;Ib(this,c,a,b);return c&65535}function Yb(){this.b=-1;--this.a}function Zb(){this.b=-1;--this.a}function U(a){a&1&&(this.C=0);a&2&&(this.l=0);a&4&&(this.o=1);a&8&&(this.i=0);--this.a}
|
||||
function $b(){this.b=-1;--this.a}function ac(a){var b=Nb(this,a,8);a=a>>6&7;Jb(this,this.c[a]);this.c[a]=this.c[7];this.c[7]=b;--this.a}function bc(){this.b=-1;--this.a}function cc(){--this.a}function V(a){a&1&&(this.C=65536);a&2&&(this.l=32768);a&4&&(this.o=0);a&8&&(this.i=32768);--this.a}function dc(){this.b=-1;--this.a}function ec(){this.b=-1;--this.a}function W(){M(this,8)}function Fb(a){fc[a>>12].call(this,a)}
|
||||
var fc=[function(a){gc[a>>8&15].call(this,a)},function(a){Q(this,Qb(this,a,R(this,a>>6)));--this.a},function(a){var b=R(this,a>>6);a=R(this,a);Ib(this,b-a,a,b);--this.a},function(a){Q(this,R(this,a>>6)&R(this,a));--this.a},function(a){Ob(this,a,R(this,a>>6),Tb);--this.a},function(a){Ob(this,a,R(this,a>>6),Vb);--this.a},function(a){Ob(this,a,R(this,a>>6),Sb);--this.a},function(a){hc[a>>8&15].call(this,a)},function(a){ic[a>>8&15].call(this,a)},function(a){var b=S(this,a>>6);Q(this,Rb(this,a,b,1)<<8);
|
||||
--this.a},function(a){var b=S(this,a>>6)<<8;a=S(this,a)<<8;Ib(this,b-a,a,b);--this.a},function(a){Q(this,(S(this,a>>6)&S(this,a))<<8);--this.a},function(a){Pb(this,a,S(this,a>>6),Ub);--this.a},function(a){Pb(this,a,S(this,a>>6),Wb);--this.a},function(a){Ob(this,a,R(this,a>>6),Xb);--this.a},W],gc=[function(a){jc[a>>4&15].call(this,a)},function(a){this.c[7]=T(this,a);--this.a},function(a){this.o&65535&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535||(this.c[7]=T(this,a));--this.a},function(a){!(this.i&
|
||||
32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){!(this.i&32768)!=!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.j&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.j&32768)||(this.c[7]=T(this,a));--this.a},ac,ac,function(a){kc[a>>6&3].call(this,a)},function(a){lc[a>>6&3].call(this,a)},function(a){mc[a>>6&3].call(this,a)},function(a){nc[a>>6&3].call(this,a)},W,W],jc=[function(a){oc[a&15].call(this,
|
||||
a)},W,W,W,W,W,W,W,function(a){var b=this.ea(this.c[6]|65536);0<=b&&(this.c[6]=this.c[6]+2&65535);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.O&49152||(this.O=this.O&-2017|(a&7)<<5,this.ha=1);--this.a},function(a){pc[a&15].call(this,a)},function(a){qc[a&15].call(this,a)},W,W,W,W],pc=[cc,function(){this.B=0;--this.a},function(){this.j=0;--this.a},U,function(){this.o=1;--this.a},U,U,U,function(){this.i=0;--this.a},U,U,U,U,U,U,U],qc=[cc,function(){this.B=65536;--this.a},function(){this.j=
|
||||
32768;--this.a},V,function(){this.o=0;--this.a},V,V,V,function(){this.i=32768;--this.a},V,V,V,V,V,V,V],oc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.O&49152||(Gb(this),this.l.reset());--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},W,W,W,W,W,W,W,W],hc=[bc,bc,$b,$b,Yb,Yb,Zb,Zb,ec,ec,W,W,W,W,dc,dc],ic=[function(a){this.i&32768||(this.c[7]=T(this,a));
|
||||
--this.a},function(a){this.i&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.B&65536||!(this.o&65535)||(this.c[7]=T(this,a));--this.a},function(a){if(this.B&65536||!(this.o&65535))this.c[7]=T(this,a);--this.a},function(a){this.j&32768||(this.c[7]=T(this,a));--this.a},function(a){this.j&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.B&65536||(this.c[7]=T(this,a));--this.a},function(a){this.B&65536&&(this.c[7]=T(this,a));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
32768)==!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){!(this.i&32768)!=!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.l&32768)&&(this.c[7]=T(this,a));--this.a},function(a){this.o&65535&&!(this.i&32768)==!(this.l&32768)||(this.c[7]=T(this,a));--this.a},ac,ac,function(a){kc[a>>6&3].call(this,a)},function(a){lc[a>>6&3].call(this,a)},function(a){mc[a>>6&3].call(this,a)},function(a){nc[a>>6&3].call(this,a)},W,W],jc=[function(a){oc[a&15].call(this,
|
||||
a)},W,W,W,W,W,W,W,function(a){var b=this.da(this.c[6]|65536);0<=b&&(this.c[6]=this.c[6]+2&65535);a&=7;this.c[7]=this.c[a];this.c[a]=b;--this.a},function(a){this.N&49152||(this.N=this.N&-2017|(a&7)<<5,this.ga=1);--this.a},function(a){pc[a&15].call(this,a)},function(a){qc[a&15].call(this,a)},W,W,W,W],pc=[cc,function(){this.C=0;--this.a},function(){this.l=0;--this.a},U,function(){this.o=1;--this.a},U,U,U,function(){this.i=0;--this.a},U,U,U,U,U,U,U],qc=[cc,function(){this.C=65536;--this.a},function(){this.l=
|
||||
32768;--this.a},V,function(){this.o=0;--this.a},V,V,V,function(){this.i=32768;--this.a},V,V,V,V,V,V,V],oc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.N&49152||(Gb(this),this.j.reset());--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},W,W,W,W,W,W,W,W],hc=[bc,bc,$b,$b,Yb,Yb,Zb,Zb,ec,ec,W,W,W,W,dc,dc],ic=[function(a){this.i&32768||(this.c[7]=T(this,a));
|
||||
--this.a},function(a){this.i&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.C&65536||!(this.o&65535)||(this.c[7]=T(this,a));--this.a},function(a){if(this.C&65536||!(this.o&65535))this.c[7]=T(this,a);--this.a},function(a){this.l&32768||(this.c[7]=T(this,a));--this.a},function(a){this.l&32768&&(this.c[7]=T(this,a));--this.a},function(a){this.C&65536||(this.c[7]=T(this,a));--this.a},function(a){this.C&65536&&(this.c[7]=T(this,a));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--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)},function(a){uc[a>>6&3].call(this,a)},W,W],kc=[function(a){Hb(this,Qb(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],lc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],mc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=
|
||||
-1;--this.a},function(){this.b=-1;--this.a}],nc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],rc=[function(a){Hb(this,Rb(this,a,0));--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],sc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],tc=[function(){this.b=-1;--this.a},function(){this.b=-1;
|
||||
--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}],uc=[function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a},function(){this.b=-1;--this.a}];
|
||||
function X(a){x.call(this,"ROM",a,X);this.b=null;this.o=a.addr;this.f=a.size;this.w=a.writable;this.h=a.alias;this.i=a.file;this.B=ba(this.i);if(this.i){a=this.i;var b=ca(this.B);"json"!=b&&"hex"!=b&&(a=r()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,e){vc(c,a,b,e)})}}z(X);X.prototype.Ja=function(a,b,c,d){this.l=b;this.a=c;this.H=d;wc(this)};X.prototype.xa=function(){this.j&&(this.H&&this.H.a(this.id,this.o,this.f,this.j),delete this.j);return!0};
|
||||
X.prototype.wa=function(){return!0};
|
||||
function vc(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Mb,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.j=h.symbols;if(!a.b.length){u("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){u(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]);wc(a)}}
|
||||
function wc(a){if(!Fa(a))if(!a.i)F(a);else if(a.b&&a.l){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")";a.g.error=!0;a.L(b)}else{b=a.o;if(Oa(a.l,b,a.f,a.w?1:kb)){var c;for(c=0;c<a.b.length;c++){var d=a.l,f=b+c;d.b[(f&d.i)>>>d.f].bc(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.l,g=e.f,h=[],k=e.o>>>f.f;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.l;f=e.l;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.l}}delete a.b}}F(a)}}w(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new X(d);C(d,c)}});function xc(a){x.call(this,"RAM",a,xc);this.h=a.addr;this.f=a.size;this.b=!1}z(xc);l=xc.prototype;l.Ja=function(a,b,c,d){this.l=b;this.a=c;this.H=d;F(this)};l.xa=function(a,b){b||this.reset();return!0};l.wa=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Oa(this.l,this.h,this.f,1)&&(this.b=!0);this.b||u("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};w(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new xc(d);C(d,c)}});function yc(a){x.call(this,"Keyboard",a,yc);F(this)}z(yc);yc.prototype.aa=function(){return!1};yc.prototype.Ja=function(a,b,c,d){this.h=a;this.a=c;this.H=d;this.Ba=null};
|
||||
function X(a){x.call(this,"ROM",a,X);this.b=null;this.o=a.addr;this.f=a.size;this.w=a.writable;this.h=a.alias;this.i=a.file;this.B=ba(this.i);if(this.i){a=this.i;var b=ca(this.B);"json"!=b&&"hex"!=b&&(a=r()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,e){vc(c,a,b,e)})}}z(X);X.prototype.Ja=function(a,b,c,d){this.j=b;this.a=c;this.H=d;wc(this)};X.prototype.ua=function(){this.l&&(this.H&&this.H.a(this.id,this.o,this.f,this.l),delete this.l);return!0};
|
||||
X.prototype.ta=function(){return!0};
|
||||
function vc(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Nb,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.l=h.symbols;if(!a.b.length){u("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){u(a.b[0]);return}}catch(k){a.K("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]);wc(a)}}
|
||||
function wc(a){if(!Fa(a))if(!a.i)E(a);else if(a.b&&a.j){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.f,8,!0)+")";a.g.error=!0;a.K(b)}else{b=a.o;if(Oa(a.j,b,a.f,a.w?1:lb)){var c;for(c=0;c<a.b.length;c++){var d=a.j,f=b+c;d.b[(f&d.i)>>>d.j].ac(f&d.h,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.h?b.push(a.h):null!=a.h&&a.h.length&&(b=a.h);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.j,g=e.f,h=[],k=e.o>>>f.j;0<g&&
|
||||
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.j;e=e.f;g=0;for(d>>>=f.j;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}E(a)}}w(function(){for(var a=D(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new X(d);C(d,c)}});function xc(a){x.call(this,"RAM",a,xc);this.h=a.addr;this.f=a.size;this.b=!1}z(xc);l=xc.prototype;l.Ja=function(a,b,c,d){this.j=b;this.a=c;this.H=d;E(this)};l.ua=function(a,b){b||this.reset();return!0};l.ta=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.b&&this.f&&Oa(this.j,this.h,this.f,1)&&(this.b=!0);this.b||u("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};w(function(){for(var a=D(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new xc(d);C(d,c)}});function yc(a){x.call(this,"Keyboard",a,yc);E(this)}z(yc);yc.prototype.aa=function(){return!1};yc.prototype.Ja=function(a,b,c,d){this.h=a;this.a=c;this.H=d;this.za=null};
|
||||
w(function(){for(var a=D(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new yc(d);C(d,c)}});
|
||||
function zc(a,b,c){x.call(this,"Computer",a,zc);this.g.M=!1;Ac(this,b);this.K=vb(this,"autoPower",a);this.h=0;this.ba=a.busWidth||a.buswidth;this.b=Y;this.B=null;this.o=this.X=!1;this.url=vb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Bc(this);if(this.a=Da("CPU",this.id)){this.H=Da("Debugger",this.id);this.l=new G({id:this.Mb+".bus",busWidth:this.ba},this.a,this.H);var d,f=A(this.id);if((this.i=Da("Panel",this.id))&&this.i.Db)for(b=0;b<f.length;b++)d=f[b],d.L=this.i.L,d.J=this.i.J,d.Db=
|
||||
this.i.Db;this.J("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.J("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.Ja&&d.Ja(this,this.l,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var e;if(a=vb(this,"state")||(e=!0,a.state))b=this.N=a,e||(this.o=!0,this.b=Y),this.b&&(this.F=
|
||||
new P(this,"1.30.0"),Z(this.F)?b=null:delete this.F);!b&&this.b&&(b=Cc(this))&&(this.o=!0);if(b){var g=this;t(b,null,!0,function(a,b,c){c?(g.w=null,g.o=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.X=!0);F(g)})}else F(this);this.u.power||(this.K=!0);!c&&this.K&&Dc(this,this.fb)}else u("Unable to find CPU component")}z(zc);var Y=0;
|
||||
function Ac(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.Y=b}function vb(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[d];void 0===d&&a.Y&&(d=a.Y[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Dc(a,b,c){for(var d=A(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Fa(e)){Fa(e,function(){Dc(a,b,c)});return}}b.call(a,c)}
|
||||
function Ec(a,b){var c=new P(a,"1.30.0","validate");if(Z(c)&&Fc(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=zc.prototype;
|
||||
l.fb=function(a){void 0===a&&(a=this.b||(this.B?1:Y));if(!this.h){this.h++;var b=!1,c=!1;this.W=!1;var d=this.F||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Y){if(Z(d,this.B)){this.j=new P(this,"1.30.0","failsafe");Z(this.j)&&(Gc(this,d),a=2,Hc(this.j));this.j.set("timestamp",ha());Ic(this.j);var f=this.b&&!this.o;if(1==a||ia("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Fc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Z(d,g):("error"==e&&
|
||||
"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(ma("user",""),this.f=null)):this.J(e+": "+g),Hc(d),Z(d)?(c=Fc(d),f=!0):c=!1))}f&&Ec(this,c?d:null)}else 2==a&&d.clear()}else Ec(this);delete this.B;delete this.F}f=A(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Jc(this,g,d,b,c));b=[d,a,c];-1!=a?Dc(this,this.Sb,b):this.Sb(b)}};
|
||||
function Jc(a,b,c,d,f){if(!b.g.M){b.g.M=!0;if(b.xa){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.xa(e,d)&&e&&(u("Unable to restore state for "+b.type),a.N&&!a.X?(c.clear(),a.b=Y,window&&window.location.reload()):a.W=!0,b.xa(null),f=!1)}if(!d&&b.Jb)for(a=b.Jb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Sb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.g.M=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(Jc(this,this.a,b,c,a),this.a.$a());this.W&&(Gc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function zc(a,b,c){x.call(this,"Computer",a,zc);this.g.L=!1;Ac(this,b);this.J=wb(this,"autoPower",a);this.h=0;this.Y=a.busWidth||a.buswidth;this.b=Y;this.B=null;this.o=this.W=!1;this.url=wb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Bc(this);if(this.a=Da("CPU",this.id)){this.H=Da("Debugger",this.id);this.j=new G({id:this.Nb+".bus",busWidth:this.Y},this.a,this.H);var d,f=A(this.id);if((this.i=Da("Panel",this.id))&&this.i.Cb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.I=this.i.I,d.Cb=this.i.Cb;
|
||||
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++)d=f[b],d.Ja&&d.Ja(this,this.j,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var e;if(a=wb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.o=!0,this.b=Y),this.b&&(this.C=new P(this,
|
||||
"1.30.0"),Z(this.C)?b=null:delete this.C);!b&&this.b&&(b=Cc(this))&&(this.o=!0);if(b){var g=this;t(b,null,!0,function(a,b,c){c?(g.w=null,g.o=!1,g.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.B=b,g.W=!0);E(g)})}else E(this);this.u.power||(this.J=!0);!c&&this.J&&Dc(this,this.$a)}else u("Unable to find CPU component")}z(zc);var Y=0;
|
||||
function Ac(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.X=b}function wb(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[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 Dc(a,b,c){for(var d=A(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Fa(e)){Fa(e,function(){Dc(a,b,c)});return}}b.call(a,c)}
|
||||
function Ec(a,b){var c=new P(a,"1.30.0","validate");if(Z(c)&&Fc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=zc.prototype;
|
||||
l.$a=function(a){void 0===a&&(a=this.b||(this.B?1:Y));if(!this.h){this.h++;var b=!1,c=!1;this.V=!1;var d=this.C||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Y){if(Z(d,this.B)){this.l=new P(this,"1.30.0","failsafe");Z(this.l)&&(Gc(this,d),a=2,Hc(this.l));this.l.set("timestamp",ha());Ic(this.l);var f=this.b&&!this.o;if(1==a||ia("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Fc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Z(d,g):("error"==e&&
|
||||
"no machine state"!=g?(this.K("Error: "+g),"unable to verify user"==g&&(ma("user",""),this.f=null)):this.I(e+": "+g),Hc(d),Z(d)?(c=Fc(d),f=!0):c=!1))}f&&Ec(this,c?d:null)}else 2==a&&d.clear()}else Ec(this);delete this.B;delete this.C}f=A(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Jc(this,g,d,b,c));b=[d,a,c];-1!=a?Dc(this,this.Pb,b):this.Pb(b)}};
|
||||
function Jc(a,b,c,d,f){if(!b.g.L){b.g.L=!0;if(b.ua){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.ua(e,d)&&e&&(u("Unable to restore state for "+b.type),a.M&&!a.W?(c.clear(),a.b=Y,window&&window.location.reload()):a.V=!0,b.ua(null),f=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ba=!0;this.g.L=!0;var d=this.u.power;d&&(d.textContent="Shutdown");this.a&&(Jc(this,this.a,b,c,a),this.a.Wa());this.V&&(Gc(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0};
|
||||
function Gc(a,b){if(ia("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;t("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Kc(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new P(a,"1.30.0"),g=new P(a,"1.30.0","validate"),h=ha();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.wa&&(c&&O(a.a),d=a.a.wa(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.M=!1,!1===d&&(f=null)));for(var h=A(a.id),k=0;k<h.length;k++){var m=h[k];m.g.M&&(m.wa&&(d=m.wa(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Lc(a,a.f,e.toString()),Ic(g)&&Ic(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.M=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.l&&this.l.reset&&this.l.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
function Kc(a,b,c){var d,f="none";if(a.h)return null;a.h--;var e=new P(a,"1.30.0"),g=new P(a,"1.30.0","validate"),h=ha();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.ta&&(c&&O(a.a),d=a.a.ta(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.g.L=!1,!1===d&&(f=null)));for(var h=A(a.id),k=0;k<h.length;k++){var m=h[k];m.g.L&&(m.ta&&(d=m.ta(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.g.L=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Lc(a,a.f,e.toString()),Ic(g)&&Ic(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.g.L=!1,b=a.u.power)&&(b.textContent="Power");a.h=0;return f}l.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=A(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=A(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=A(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.aa=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.M?Kc(d,!1,!0):Dc(d,d.fb))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.M&&!d.h)if(d.b&&!d.w){var a=ia("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kc(d,a,!0);!a&&d.N?window&&window.location.reload():d.fb(Y)}else d.reset(),d.a&&d.a.$a()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=Bc(d,!0);if(a){var b=!!(d.b&&!d.w||d.N),c=Kc(d,b);b?Lc(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Bc(a,b){var c=a.f;c||((c=la("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=Mc(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
|
||||
l.aa=function(a,b,c){var d=this;switch(b){case "power":return this.u[b]=c,c.onclick=function(){d.h||(d.g.L?Kc(d,!1,!0):Dc(d,d.$a))},!0;case "reset":return this.u[b]=c,c.onclick=function(){if(d.g.L&&!d.h)if(d.b&&!d.w){var a=ia("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kc(d,a,!0);!a&&d.M?window&&window.location.reload():d.$a(Y)}else d.reset(),d.a&&d.a.Wa()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.u[b]=
|
||||
c,c.onclick=function(){var a=Bc(d,!0);if(a){var b=!!(d.b&&!d.w||d.M),c=Kc(d,b);b?Lc(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Bc(a,b){var c=a.f;c||((c=la("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=Mc(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function Mc(a,b){a.f=null;b=t(r()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ma("user",b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function Cc(a){var b=null;a.f&&(b=r()+"/api/v1/user?req=load&user="+a.f+"&state="+Nc(a,"1.30.0"));return b}
|
||||
function Lc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Nc(a,"1.30.0");d.data=c;b=t(r()+"/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),ma("user",""),a.f=null)}}
|
||||
l.Na=function(a){this.a&&this.a.Na(a);this.i&&this.i.Na(a)};w(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=B(e),g=new zc(g,d,!0);C(g,e);g.K&&Dc(g,g.fb)}});v.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.ca&&!c.g.M&&c.fb(-1)}});
|
||||
v.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.g.M&&Kc(c,!(!c.b||c.w),!0)}});function P(a,b,c){this.id=a.id;this.key=Nc(a,b,c);this.H=a.H;Hc(this,a.hc)}function Nc(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}
|
||||
function Lc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Nc(a,"1.30.0");d.data=c;b=t(r()+"/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.K("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.K(c),ma("user",""),a.f=null)}}
|
||||
l.Ma=function(a){this.a&&this.a.Ma(a);this.i&&this.i.Ma(a)};w(function(){for(var a=D(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=B(e),g=new zc(g,d,!0);C(g,e);g.J&&Dc(g,g.$a)}});v.show.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.ba&&!c.g.L&&c.$a(-1)}});
|
||||
v.exit.push(function(){for(var a=D(document,"pdp11","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=Da("Computer",c.id))&&c.g.L&&Kc(c,!(!c.b||c.w),!0)}});function P(a,b,c){this.id=a.id;this.key=Nc(a,b,c);this.H=a.H;Hc(this,a.ic)}function Nc(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}
|
||||
P.prototype={constructor:P,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){Hc(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 Hc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Ic(a){var b=!0;if(ka()){var c=JSON.stringify(a[a.id]);ma(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Fc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function Z(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ka()&&(b=la(a.key))?(a[a.id]=b,a.a=!0):!1}var Oc=0;
|
||||
function Pc(a,b,c,d,f,e){f("Loading "+a+"...");t(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Qc(h,a,b,c,d,f,e)})}
|
||||
|
|
@ -137,6 +136,6 @@ function Qc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ca(c,b,a),(e=
|
|||
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(p){e=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Rc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Rc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");t(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,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.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);Rc(a,b,c)}})}else c(a,null)}
|
||||
function Sc(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=fa(a))}function e(a){f("Error: "+a);k&&(--Oc||ta(!0));k=!1}var g,h,k=!0;Oc++;Ba[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],E=document.createElement("style");E.type="text/css";E.styleSheet?E.styleSheet.cssText=m:E.appendChild(document.createTextNode(m));p.appendChild(E)}c||
|
||||
function Sc(a,b,c,d){function f(a){if(void 0===h){var b=g&&D(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=fa(a))}function e(a){f("Error: "+a);k&&(--Oc||ta(!0));k=!1}var g,h,k=!0;Oc++;Ba[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],F=document.createElement("style");F.type="text/css";F.styleSheet?F.styleSheet.cssText=m:F.appendChild(document.createTextNode(m));p.appendChild(F)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Pc(c,null,null,!1,f,function(d,k){k?(Ca(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Oc||ta(!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),--Oc||ta(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Pc(b,a,d,!0,f,m):Qc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(H){e(H.message)}return k}window.embedPDP11=function(a,b,c,d){ta(!1);return Sc(a,b,c,d)};window.enableEvents=ta;window.sendEvent=ua;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue