Internal PSW getter/setter are now getPSW/setPSW
This commit is contained in:
parent
0e38c6dbc7
commit
122ca78fd5
5 changed files with 301 additions and 317 deletions
|
|
@ -104,7 +104,7 @@ function BusPDP11(parmsBus, cpu, dbg)
|
|||
this.assert(this.nBlockMask <= BusPDP11.BlockInfo.num.mask);
|
||||
|
||||
/*
|
||||
* aIONotify is an array (ie, a hash) of I/O notification handlers, indexed by address, where each
|
||||
* aIOHandlers is an array (ie, a hash) of I/O notification handlers, indexed by address, where each
|
||||
* entry contains an array:
|
||||
*
|
||||
* [0]: readByte(addr)
|
||||
|
|
@ -126,7 +126,7 @@ function BusPDP11(parmsBus, cpu, dbg)
|
|||
* The false case is important if fIOBreakAll is set, because it allows the Debugger to selectively
|
||||
* ignore specific addresses.
|
||||
*/
|
||||
this.aIONotify = [];
|
||||
this.aIOHandlers = [];
|
||||
this.fIOBreakAll = false;
|
||||
|
||||
this.fnReset = null;
|
||||
|
|
@ -170,7 +170,7 @@ BusPDP11.ERROR = {
|
|||
*
|
||||
* TODO: Another small potential improvement would be for addIOHandlers() to predefine fall-backs for all
|
||||
* missing handlers, so there's never a need to check each entry (eg, afn[0], afn[1], etc) before calling
|
||||
* it. However, since there's no avoiding checking afn itself (unless we FULLY populate the aIONotify
|
||||
* it. However, since there's no avoiding checking afn itself (unless we FULLY populate the aIOHandlers
|
||||
* array), and since these I/O accesses should be pretty infrequent relative to all other memory accesses,
|
||||
* the benefit seems pretty minimal.
|
||||
*/
|
||||
|
|
@ -186,7 +186,7 @@ BusPDP11.controller = {
|
|||
*/
|
||||
readIOPageByte: function(off, addr)
|
||||
{
|
||||
var afn = this.controller.aIONotify[off];
|
||||
var afn = this.controller.aIOHandlers[off];
|
||||
if (afn) {
|
||||
if (afn[0]) {
|
||||
return afn[0](addr);
|
||||
|
|
@ -198,7 +198,7 @@ BusPDP11.controller = {
|
|||
}
|
||||
}
|
||||
} else if (addr & 0x1) {
|
||||
afn = this.controller.aIONotify[off & ~0x1];
|
||||
afn = this.controller.aIOHandlers[off & ~0x1];
|
||||
if (afn[2]) {
|
||||
return afn[2](addr & ~0x1) >> 8;
|
||||
}
|
||||
|
|
@ -217,7 +217,7 @@ BusPDP11.controller = {
|
|||
writeIOPageByte: function(off, b, addr)
|
||||
{
|
||||
var w;
|
||||
var afn = this.controller.aIONotify[off];
|
||||
var afn = this.controller.aIOHandlers[off];
|
||||
if (afn) {
|
||||
if (afn[1]) {
|
||||
afn[1](b, addr);
|
||||
|
|
@ -232,7 +232,7 @@ BusPDP11.controller = {
|
|||
return;
|
||||
}
|
||||
} else if (addr & 0x1) {
|
||||
afn = this.controller.aIONotify[off & ~0x1];
|
||||
afn = this.controller.aIOHandlers[off & ~0x1];
|
||||
if (afn[3]) {
|
||||
addr &= ~0x1;
|
||||
w = afn[2]? afn[2](addr) : 0;
|
||||
|
|
@ -254,7 +254,7 @@ BusPDP11.controller = {
|
|||
readIOPageShort: function(off, addr)
|
||||
{
|
||||
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
|
||||
var afn = this.controller.aIONotify[off];
|
||||
var afn = this.controller.aIOHandlers[off];
|
||||
if (afn) {
|
||||
if (afn[2]) {
|
||||
return afn[2](addr);
|
||||
|
|
@ -276,7 +276,7 @@ BusPDP11.controller = {
|
|||
writeIOPageShort: function(off, w, addr)
|
||||
{
|
||||
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
|
||||
var afn = this.controller.aIONotify[off];
|
||||
var afn = this.controller.aIOHandlers[off];
|
||||
if (afn) {
|
||||
if (afn[3]) {
|
||||
afn[3](w, addr);
|
||||
|
|
@ -943,7 +943,7 @@ BusPDP11.prototype.restoreMemory = function(a)
|
|||
/**
|
||||
* addIOHandlers(start, end, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort)
|
||||
*
|
||||
* Add I/O notification handlers to the master list (aIONotify). The start and end addresses are typically
|
||||
* Add I/O notification handlers to the master list (aIOHandlers). The start and end addresses are typically
|
||||
* relative to the starting IOPAGE address, but they can also be absolute; we simply mask all addresses with
|
||||
* IOPAGE_MASK.
|
||||
*
|
||||
|
|
@ -959,11 +959,11 @@ BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte,
|
|||
{
|
||||
for (var addr = start; addr <= end; addr += 2) {
|
||||
var off = addr & BusPDP11.IOPAGE_MASK;
|
||||
if (this.aIONotify[off] !== undefined) {
|
||||
if (this.aIOHandlers[off] !== undefined) {
|
||||
Component.warning("I/O address already registered: " + str.toHexLong(this.addrIOPage + off));
|
||||
continue;
|
||||
}
|
||||
this.aIONotify[off] = [fnReadByte, fnWriteByte, fnReadShort, fnWriteShort, false];
|
||||
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadShort, fnWriteShort, false];
|
||||
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(this.addrIOPage + off) + ")");
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -457,17 +457,6 @@ CPUStatePDP11.prototype.setPC = function(addr)
|
|||
this.regsGen[7] = addr;
|
||||
};
|
||||
|
||||
/**
|
||||
* getPSW()
|
||||
*
|
||||
* @this {CPUStatePDP11}
|
||||
* @return {number}
|
||||
*/
|
||||
CPUStatePDP11.prototype.getPSW = function()
|
||||
{
|
||||
return (this.PSW & ~PDP11.PSW.FLAGS) | (this.getNF() | this.getZF() | this.getVF() | this.getCF());
|
||||
};
|
||||
|
||||
/**
|
||||
* getSP()
|
||||
*
|
||||
|
|
@ -583,13 +572,20 @@ CPUStatePDP11.prototype.interrupt = function(delay, priority, vector, callback)
|
|||
};
|
||||
|
||||
/**
|
||||
* readPSW()
|
||||
* getPSW()
|
||||
*
|
||||
* @this {CPUStatePDP11}
|
||||
* @return {number}
|
||||
*/
|
||||
CPUStatePDP11.prototype.readPSW = function()
|
||||
CPUStatePDP11.prototype.getPSW = function()
|
||||
{
|
||||
/*
|
||||
* I'm not sure why this function can't simply be written as:
|
||||
*
|
||||
* return (this.PSW & ~PDP11.PSW.FLAGS) | (this.getNF() | this.getZF() | this.getVF() | this.getCF());
|
||||
*
|
||||
* but for now, I'm keeping the same masking logic as pdp11.js.
|
||||
*/
|
||||
var mask = PDP11.PSW.CMODE | PDP11.PSW.PMODE | PDP11.PSW.REGSET | PDP11.PSW.PRI | PDP11.PSW.TF;
|
||||
return this.PSW = (this.PSW & mask) | this.getNF() | this.getZF() | this.getVF() | this.getCF();
|
||||
};
|
||||
|
|
@ -640,20 +636,6 @@ CPUStatePDP11.prototype.setPSW = function(newPSW)
|
|||
this.PSW = newPSW;
|
||||
};
|
||||
|
||||
/**
|
||||
* writePSW(newPSW)
|
||||
*
|
||||
* This is a stricter version of setPSW(), used for writes to ADDR_PSW, which preserves bits that
|
||||
* should not be overwritten.
|
||||
*
|
||||
* @this {CPUStatePDP11}
|
||||
* @param {number} newPSW
|
||||
*/
|
||||
CPUStatePDP11.prototype.writePSW = function(newPSW)
|
||||
{
|
||||
this.setPSW((newPSW & 0xf8ef) | (this.PSW & 0x0710));
|
||||
};
|
||||
|
||||
/**
|
||||
* panic(reason)
|
||||
*
|
||||
|
|
@ -684,7 +666,7 @@ CPUStatePDP11.prototype.trap = function(vector, reason)
|
|||
{
|
||||
var newPC, newPSW, doubleTrap = 0;
|
||||
if (this.trapPSW < 0) {
|
||||
this.trapPSW = this.readPSW();
|
||||
this.trapPSW = this.getPSW();
|
||||
} else {
|
||||
if (!this.mmuMode) {
|
||||
vector = 4;
|
||||
|
|
@ -2261,7 +2243,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
|||
break;
|
||||
//case 0106700: // MTFS 1064SS
|
||||
// //LOG_INSTRUCTION(instruction, 1, "MFPS");
|
||||
// src = this.readPSW() & 0xff;
|
||||
// src = this.getPSW() & 0xff;
|
||||
// if (instruction & 0x38) {
|
||||
// if ((dstAddr = this.getAddrByMode(instruction, PDP11.WRITE_MODE | PDP11.BYTE_MODE)) >= 0) { // write byte
|
||||
// if (this.writeByteByAddr(dstAddr, src) >= 0) {
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ DevicePDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
|
|||
*/
|
||||
DevicePDP11.prototype.readPSW = function(addr)
|
||||
{
|
||||
return this.cpu.readPSW();
|
||||
return this.cpu.getPSW();
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -231,7 +231,8 @@ DevicePDP11.prototype.writePSW = function(data, addr)
|
|||
* special one-time opcode flag is set. Because there are a number of arithmetic instructions besides
|
||||
* CLR that could be used to modify ADDR_PSW.
|
||||
*/
|
||||
this.cpu.writePSW(data);
|
||||
var maskDisallowed = PDP11.PSW.UNUSED | PDP11.PSW.TF;
|
||||
this.cpu.setPSW((data & ~maskDisallowed) | (this.cpu.getPSW() & maskDisallowed));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -854,14 +855,15 @@ DevicePDP11.prototype.access = function(physicalAddress, data, byteFlag)
|
|||
* as it is replaced by read/write handlers in the UNIBUS_TABLE; stay tuned).
|
||||
*
|
||||
case 0x3FFFFE: // 017777776 // PSW
|
||||
result = cpu.readPSW();
|
||||
result = cpu.getPSW();
|
||||
if (data >= 0) {
|
||||
if (physicalAddress & 1) {
|
||||
data = (data << 8) | (result & 0xff);
|
||||
} else {
|
||||
if (byteFlag) data = (result & 0xff00) | (data & 0xff);
|
||||
}
|
||||
cpu.writePSW(data);
|
||||
data = (data & 0xf8ef) | (result & 0x0710);
|
||||
cpu.setPSW(data);
|
||||
return -1; // KLUDGE - no trap but abort any CC updates
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -9,117 +9,117 @@ function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.
|
|||
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
|
||||
function Ka(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 La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
|
||||
function Ra(a){if(Oa)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 Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
|
||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.nc=b.comment;this.Oc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.pc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,dc:!1,ea:!1,error:!1};this.Vb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
|
||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.lc=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.nc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,cc:!1,ea:!1,error:!1};this.Vb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
|
||||
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(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=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(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 cb(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 z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
|
||||
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ta(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||
function A(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},ta:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.eb=this.O[b]=d,d.value="",this.g=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}}(d),
|
||||
this.na=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Ic)}return!1}
|
||||
function pb(a,b){if(a.A.dc)return a.A.mb&&(a.A.mb=!1),a.A.dc=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.dc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Vb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
|
||||
this.na=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Gc)}return!1}
|
||||
function fb(a,b){if(a.A.cc)return a.A.mb&&(a.A.mb=!1),a.A.cc=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.cc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Vb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
|
||||
var tb="undefined"!==typeof ArrayBuffer,F={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 ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ta=function(a,b,d,c){return this.i&&this.i.ta(a,b,d,c)||this.f&&this.f.ta(a,b,d,c)||this.H&&this.H.ta(a,b,d,c)?!0:this.parent.ta.call(this,a,b,d,c)};m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.f=d;this.H=c};
|
||||
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.wa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
|
||||
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Gb=this.Ec;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
|
||||
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Gb=this.Cc;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
|
||||
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Sa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Sa[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
|
||||
function zb(a,b,d){var c=this.controller.Sa[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Sa[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Sa[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
|
||||
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Ec=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
|
||||
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.D)return k.Tb+=k.D-e,k.D=e,!0;if(e>=k.D+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.D+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
|
||||
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].xc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.B].Ob(0,b+1)<<8}m.bc=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
|
||||
m.jc=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Dc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.B].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={gc:[],Ha:0,pa:128,H:127,Kc:0};this.i={data:0,fd:0,ob:20,dd:0};this.B={Ib:0,L:0};this.F={Qb:2496,ka:0,S:128,Rb:0,Pb:0,sa:0,yc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={L:129,Fb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Gc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],cc:[815,411,815,630],ma:[],U:2176,ub:0,sb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
|
||||
4544,4544,4544],tb:[0,0,0,0,0,0,0,0],jb:0,bd:[0,0,0,0,0,0,0,0],zc:0,Ac:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Bc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],Za:0,ic:0}}w(Hb);
|
||||
var Tb=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Cc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
|
||||
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.C)return k.Tb+=k.C-e,k.C=e,!0;if(e>=k.C+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.C+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
|
||||
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].vc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].gc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.B].Ob(0,b+1)<<8}m.ac=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
|
||||
m.ic=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Bc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.B].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={fc:[],Ha:0,pa:128,H:127,Ic:0};this.i={data:0,fd:0,ob:20,cd:0};this.B={Ib:0,K:0};this.F={Qb:2496,ka:0,S:128,Rb:0,Pb:0,sa:0,wc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Ec:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],bc:[815,411,815,630],ma:[],U:2176,ub:0,sb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
|
||||
4544,4544,4544],tb:[0,0,0,0,0,0,0,0],jb:0,ad:[0,0,0,0,0,0,0,0],xc:0,yc:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],bd:[1,2,3,4,5,6,7,8],zc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],$b:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$c:[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],Za:0,hc:0}}w(Hb);
|
||||
var Ib=[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];m=Hb.prototype;
|
||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Fc.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.$b=function(){return this.f.$b()};m.lc=function(a){this.f.lc(a)};
|
||||
function Vb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Wb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
|
||||
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.ma[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.F;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
|
||||
function Xb(a){var b=a.I,d,c,f,e=b.L>>8&3;b.L&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.L>>1&7){case 2:b.Xa&8&&(b.L&=63);b.Xa=b.Gc[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.L|=37888;break}if((b.ca&63)>=b.Y[e]){b.L|=37888;break}d=(b.ca>>6)*b.Y[e]+
|
||||
(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;Wb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.L|=37888;break}if((b.ca&63)>=b.Y[e]){b.L|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;a.Zb(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.L|=129;return!!(b.L&64)})}
|
||||
m.Wc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.L=e.L&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.L|=33792;break;case 2:e.L|=40960}H(this.f,20,160,112,function(){e.L|=129;return!!(e.L&64)})};function Yb(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.tb=[0,0,0,0,0,0,0,0];a.jb=a.ub=a.sb=a.Za=a.ic=0}
|
||||
function Zb(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:Yb(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.cc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
|
||||
(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;Wb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.cc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;a.Zb(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
|
||||
m.Xc=function(a,b,d,c,f){var e=this.J;e.ub=65536-f&65535;e.sb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.ac[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Tc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Qc=function(){this.B.L|=128;this.B.L&64&&H(this.f,0,192,64)};
|
||||
function $b(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.wb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&ac(898)):b|=4186112;return b}
|
||||
function bc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Tc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
|
||||
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){bc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>K(this.f,a.Sc?$b(this,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
|
||||
function Wb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=L(a.f,b.Sc?$b(a,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.L=0;this.F.S=128;this.I.L=128;Yb(this)};
|
||||
m.Fc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return J(e,4);0>b?c=e.M:c=e.M=0;break;case 4194292:if(70!==e.fb)return J(e,4);c=1;break;case 4194290:if(70!==e.fb)return J(e,4);c=0;break;case 4194288:if(70!==e.fb)return J(e,4);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.fb)return J(e,4);f=a-4194272>>1;0>b?c=e.fc[f]:(c=I(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.K>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.K>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.K&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&
|
||||
1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.K>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.K&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.M|=16,J(e,4)}break;case 4194176:f=a>>1&31;c=I(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&
|
||||
65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Kc=0),h.pa&=-129,H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)}));c=0;break;case 4194164:0>b?c=h.pa:(c=I(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&
|
||||
64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.L,f.L&=-129):(c=I(this,f.L,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Qc.bind(this),25),f.Ib=1),f.L=c&-129));break;default:return e.M|=16,J(e,4)}break;case 4194048:f=
|
||||
this.F;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Vb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=I(this,f.yc,a,b,d);0<=c&&(f.yc=c);break;default:return e.M|=16,J(e,4)}break;case 4193728:var g=
|
||||
this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?Zb(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.ub,a,b,d);0<=c&&(g.ub=c);break;case 4193732:c=I(this,g.sb,a,b,d);0<=c&&(g.sb=c&65534);break;case 4193734:c=I(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=I(this,g.Aa,a,b,d);0<=c&&(g.Aa=c&63|g.Aa&65472,c&128&&Yb(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.tb[f];
|
||||
break;case 4193742:c=I(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=I(this,g.zc,a,b,d);0<=c&&(g.zc=c);break;case 4193748:c=I(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=I(this,g.Bc[f],a,b,d);0<=c&&(g.Bc[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.ac[f]=g.Pa[f];c=g.ac[f];break;case 4193760:c=g.$c[f];break;case 4193762:c=g.ad[f];break;case 4193764:c=
|
||||
g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=I(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.M|=16,J(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.L,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.L=f.L&-1023|c&1022,f.L&128||Xb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Xa,
|
||||
a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=I(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.L=f.L&-49|(f.Ta&3)<<4);break;default:return e.M|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=I(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Jb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.M|=16,J(e,4)}break;case 4191424:f=a>>1&31;c=I(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;c=I(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return J(e,4);f=a>>2&31;c=e.wb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.wb[f]=a&2?c<<16|e.wb[f]&65535:e.wb[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=Tb[a>>1&255];else return e.M|=16,J(e,4);break;default:return e.M|=16,J(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===
|
||||
typeof c&&ac(76);return c};var Ub={};Ub[4194302]=[null,null,Hb.prototype.$b,Hb.prototype.lc];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var cc;if(tb){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 G(a,b,d,c,f){this.id=fc+=2;this.f=null;this.D=a;this.Tb=b;this.size=d||0;this.type=c||gc;this.O=c==hc;this.controller=null;xb(this);this.Va=this.Mc=!1;if(d)if(f)this.controller=f,this.f=null,ic(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),ic(this,ec?jc:kc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;ic(this,lc)}else ic(this)}
|
||||
var gc=0,hc=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],fc=0;
|
||||
G.prototype={constructor:G,parent:null,Ib:function(a){this.D=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&mc(this,nc,!1):0===this.i++&&oc(this,nc,!1)},T:function(){this.H&&
|
||||
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.D),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
|
||||
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,1,d.W)&&d.la(!0)}return this.Ob(a,b)},fa:function(a,b){if(this.H&&null!=this.D){var d=this.H;pc(d,this.D+a,2,d.W)&&d.la(!0)}return this.hc(a,b)},va:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;
|
||||
pc(c,this.D+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.D){var c=this.H;pc(c,this.D+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.mc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
|
||||
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&oc(a,nc,!1),(a.B=d.B)&&mc(a,nc,!1))}function qc(a,b){b?0===--a.B&&(a.xb=a.O?a.F:a.yb,a.Dc=a.O?a.N:a.mc):0===--a.i&&(a.rb=a.Ob,a.xc=a.hc)}function mc(a,b,d){d&&a.B||(a.xb=!a.O&&b[1]||a.F,a.Dc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.F,a.mc=b[3]||a.N}function oc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.xc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.V}
|
||||
function ic(a,b){b||(b=rc);oc(a,b,void 0);mc(a,b,void 0)}var rc=[],lc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Bb],nc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var kc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],jc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
|
||||
function sc(a,b){u.call(this,"CPU",a,sc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.kc=!1;this.A.Db=a.autoStart;this.A.tc=!1;this.A.nb=!1;this.Lb=this.Z=0;this.Mb=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Eb=this.kb.bind(this);C(this)}w(sc);var tc=["power","reset"];m=sc.prototype;
|
||||
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<tc.length;b++)(d=this.O[tc[b]])&&this.i.ta(null,tc[b],d);this.da=null;a=uc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){vc(this);if(!this.restore(a))return!1;wc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}M(this);return!0};
|
||||
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.A.Db||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.vc=function(){return 0};function wc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Mb&&0<a.pb;a.A.nb&&(a.Lb=0,a.Z=a.Mb-a.W)}function Jc(a,b){if(a.A.nb){var d=!1;a.Lb=a.Lb+a.vc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Kc(a)&&(a.pb=a.qb=-1,wc(a),a.la(),d=!0);d&&a.g(Kc(a)+" cycles: checksum="+r(a.Lb))}}
|
||||
function Lc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.la());var f=a.H&&a.H.va||8;d=!a.A.ia||a.A.tc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
|
||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Dc.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.Tc=function(){return Vb(this.f)};m.ed=function(a){Wb(this.f,a&-1809|Vb(this.f)&1808)};
|
||||
function Xb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Uc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Yb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
|
||||
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.ma[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Uc=function(a,b,d,c,f){var e=this.F;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
|
||||
function Zb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Xa&8&&(b.K&=63);b.Xa=b.Ec[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+
|
||||
(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;Yb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;a.Zb(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
|
||||
m.Vc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function $b(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.tb=[0,0,0,0,0,0,0,0];a.jb=a.ub=a.sb=a.Za=a.hc=0}
|
||||
function ac(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Wc,drive:b,blocksize:256,mapped:0,maxblock:d.bc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.$b[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:$b(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
|
||||
(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;Yb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;a.Zb(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
|
||||
m.Wc=function(a,b,d,c,f){var e=this.J;e.ub=65536-f&65535;e.sb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.$b[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Rc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Oc=function(){this.B.K|=128;this.B.K&64&&H(this.f,0,192,64)};
|
||||
function bc(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.wb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&cc(898)):b|=4186112;return b}
|
||||
function dc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Rc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
|
||||
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){dc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>K(this.f,a.Qc?bc(this,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
|
||||
function Yb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=L(a.f,b.Qc?bc(a,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.K=0;this.F.S=128;this.I.K=128;$b(this)};
|
||||
m.Dc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return J(e,4);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.fb)return J(e,4);c=1;break;case 4194290:if(70!==e.fb)return J(e,4);c=0;break;case 4194288:if(70!==e.fb)return J(e,4);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.fb)return J(e,4);f=a-4194272>>1;0>b?c=e.ec[f]:(c=I(this,e.ec[f],a,b,d),0<=c&&(e.ec[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&
|
||||
1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,J(e,4)}break;case 4194176:f=a>>1&31;c=I(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&
|
||||
65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.cd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Ic=0),h.pa&=-129,H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)}));c=0;break;case 4194164:0>b?c=h.pa:(c=I(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&
|
||||
64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.fc.length&&(c=h.fc.shift(),0<h.fc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Oc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|=16,J(e,4)}break;case 4194048:f=
|
||||
this.F;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Xb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=I(this,f.wc,a,b,d);0<=c&&(f.wc=c);break;default:return e.L|=16,J(e,4)}break;case 4193728:var g=
|
||||
this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?ac(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.ub,a,b,d);0<=c&&(g.ub=c);break;case 4193732:c=I(this,g.sb,a,b,d);0<=c&&(g.sb=c&65534);break;case 4193734:c=I(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=I(this,g.Aa,a,b,d);0<=c&&(g.Aa=c&63|g.Aa&65472,c&128&&$b(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.tb[f];
|
||||
break;case 4193742:c=I(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.ad[f];break;case 4193746:c=I(this,g.xc,a,b,d);0<=c&&(g.xc=c);break;case 4193748:c=I(this,g.yc[f],a,b,d);0<=c&&(g.yc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.bd[f];break;case 4193754:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.$b[f]=g.Pa[f];c=g.$b[f];break;case 4193760:c=g.Zc[f];break;case 4193762:c=g.$c[f];break;case 4193764:c=
|
||||
g.Xc[f];break;case 4193766:c=g.Yc[f];break;case 4193768:c=I(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.hc,a,b,d);0<=c&&(g.hc=c);break;default:return e.L|=16,J(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Zb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Xa,
|
||||
a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=I(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.K=f.K&-49|(f.Ta&3)<<4);break;default:return e.L|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=I(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Jb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.L|=16,J(e,4)}break;case 4191424:f=a>>1&31;c=I(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;c=I(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return J(e,4);f=a>>2&31;c=e.wb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.wb[f]=a&2?c<<16|e.wb[f]&65535:e.wb[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=Ib[a>>1&255];else return e.L|=16,J(e,4);break;default:return e.L|=16,J(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===
|
||||
typeof c&&cc(76);return c};var Ub={};Ub[4194302]=[null,null,Hb.prototype.Tc,Hb.prototype.ed];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var ec;if(tb){var fc=new ArrayBuffer(2);(new DataView(fc)).setUint16(0,256,!0);ec=256===(new Uint16Array(fc))[0]}else ec=!1;var gc=ec;
|
||||
function G(a,b,d,c,f){this.id=hc+=2;this.f=null;this.C=a;this.Tb=b;this.size=d||0;this.type=c||ic;this.O=c==jc;this.controller=null;xb(this);this.Va=this.Kc=!1;if(d)if(f)this.controller=f,this.f=null,kc(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),kc(this,gc?lc:mc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;kc(this,nc)}else kc(this)}
|
||||
var ic=0,jc=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],hc=0;
|
||||
G.prototype={constructor:G,parent:null,Ib:function(a){this.C=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&oc(this,pc,!1):0===this.i++&&qc(this,pc,!1)},T:function(){this.H&&
|
||||
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.C),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.C),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
|
||||
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,1,d.W)&&d.la(!0)}return this.Ob(a,b)},fa:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,2,d.W)&&d.la(!0)}return this.gc(a,b)},va:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;
|
||||
rc(c,this.C+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;rc(c,this.C+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.kc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
|
||||
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&qc(a,pc,!1),(a.B=d.B)&&oc(a,pc,!1))}function sc(a,b){b?0===--a.B&&(a.xb=a.O?a.F:a.yb,a.Bc=a.O?a.N:a.kc):0===--a.i&&(a.rb=a.Ob,a.vc=a.gc)}function oc(a,b,d){d&&a.B||(a.xb=!a.O&&b[1]||a.F,a.Bc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.F,a.kc=b[3]||a.N}function qc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.vc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.gc=b[2]||a.V}
|
||||
function kc(a,b){b||(b=tc);qc(a,b,void 0);oc(a,b,void 0)}var tc=[],nc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Bb],pc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var mc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],lc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
|
||||
function uc(a,b){u.call(this,"CPU",a,uc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.jc=!1;this.A.Db=a.autoStart;this.A.rc=!1;this.A.nb=!1;this.Lb=this.Z=0;this.Mb=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Eb=this.kb.bind(this);C(this)}w(uc);var vc=["power","reset"];m=uc.prototype;
|
||||
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<vc.length;b++)(d=this.O[vc[b]])&&this.i.ta(null,vc[b],d);this.da=null;a=wc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){xc(this);if(!this.restore(a))return!1;Kc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}M(this);return!0};
|
||||
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.A.Db||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.tc=function(){return 0};function Kc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Mb&&0<a.pb;a.A.nb&&(a.Lb=0,a.Z=a.Mb-a.W)}function Lc(a,b){if(a.A.nb){var d=!1;a.Lb=a.Lb+a.tc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Mc(a)&&(a.pb=a.qb=-1,Kc(a),a.la(),d=!0);d&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
|
||||
function Nc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.la());var f=a.H&&a.H.va||8;d=!a.A.ia||a.A.rc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
|
||||
m.ta=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.A.ea)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.ea);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Vb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ia?c.la():c.kb())};
|
||||
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Mc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Nc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Oc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Kc(a){return a.W+a.J+a.V-a.N}function vc(a){a.P=0;a.zb=0;a.W=a.J=a.V=a.N=0;wc(a);Mc(a,1)}
|
||||
function Mc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Nc(a,a.J);a.J=0;a.I=sa();a.T=0;Oc(a);return c}function Pc(a){a.V-=a.N;a.N=0}
|
||||
m.kb=function(a){if(pb(this,!0)){if(!this.A.ia){Mc(this);this.i&&this.i.start(this.I,Kc(this));this.A.ia=!0;this.A.kc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.Da>=this.ya&&Oc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.vb(d);var e=this.V-this.N;
|
||||
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Nc(this,0,!0);Jc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.wa(),this.zb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Kc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
|
||||
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Mc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Kc(this))};m.vb=function(){return 0};m.la=function(a){qb(this,!0);Pc(this);Nc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
|
||||
function Qc(a){this.wc=+a.model||1170;this.Ub=a.resetAddr||0;sc.call(this,a,1E6);this.Ja=0;this.C=65536;this.u=32768;this.w=65535;this.j=32768;this.K=15;this.b=[0,0,0,0,0,0,0,this.Ub];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.M=0;this.fb=70;this.Wb=this.Kb=this.Jb=this.B=this.Ia=this.Ab=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[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.wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Jc=!1}w(Qc,sc);m=Qc.prototype;
|
||||
m.reset=function(){this.A.ia&&this.la();Rc(this);vc(this);this.A.error=!1;this.parent.reset.call(this)};function Rc(a){a.Qa=255;a.M=0;a.f=[];a.Xb=0;a.ba=a.Ca=a.Ab=a.Ia=a.Jb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Kb=0}m.vc=function(){return 0};
|
||||
m.save=function(){var a=new Sc(this);N(a,0,[]);N(a,1,[this.Ra,this.W,this.ib]);for(var b=this.G,d=0,c=[],f=0;f<b.F;f++){var e=b.R[f];if(e.Va||e.Mc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()};
|
||||
m.restore=function(a){var b=a[1];this.Ra=b[0];this.W=b[1];Mc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
||||
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Oc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Qc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Mc(a){return a.W+a.J+a.V-a.N}function xc(a){a.P=0;a.zb=0;a.W=a.J=a.V=a.N=0;Kc(a);Oc(a,1)}
|
||||
function Oc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Pc(a,a.J);a.J=0;a.I=sa();a.T=0;Qc(a);return c}function Rc(a){a.V-=a.N;a.N=0}
|
||||
m.kb=function(a){if(fb(this,!0)){if(!this.A.ia){Oc(this);this.i&&this.i.start(this.I,Mc(this));this.A.ia=!0;this.A.jc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.Da>=this.ya&&Qc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.vb(d);var e=this.V-this.N;
|
||||
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Pc(this,0,!0);Lc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.wa(),this.zb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Mc(this));fb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
|
||||
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Oc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Mc(this))};m.vb=function(){return 0};m.la=function(a){qb(this,!0);Rc(this);Pc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
|
||||
function Sc(a){this.uc=+a.model||1170;this.Ub=a.resetAddr||0;uc.call(this,a,1E6);this.Ja=0;this.D=65536;this.u=32768;this.w=65535;this.j=32768;this.M=15;this.b=[0,0,0,0,0,0,0,this.Ub];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.L=0;this.fb=70;this.Wb=this.Kb=this.Jb=this.B=this.Ia=this.Ab=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[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.wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.ec=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Hc=!1}w(Sc,uc);m=Sc.prototype;
|
||||
m.reset=function(){this.A.ia&&this.la();Tc(this);xc(this);this.A.error=!1;this.parent.reset.call(this)};function Tc(a){a.Qa=255;a.L=0;a.f=[];a.Xb=0;a.ba=a.Ca=a.Ab=a.Ia=a.Jb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Kb=0}m.tc=function(){return 0};
|
||||
m.save=function(){var a=new Uc(this);N(a,0,[]);N(a,1,[this.Ra,this.W,this.ib]);for(var b=this.G,d=0,c=[],f=0;f<b.F;f++){var e=b.R[f];if(e.Va||e.Kc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()};
|
||||
m.restore=function(a){var b=a[1];this.Ra=b[0];this.W=b[1];Oc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
||||
m.ta=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ta.call(this,a,b,d)}return c};
|
||||
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.tc)){for(a=0;a<this.b.length;a++)Lc(this,"R"+a,this.b[a]);a=Tc(this);Lc(this,"PS",a);Lc(this,"NF",a&8?1:0,1);Lc(this,"ZF",a&4?1:0,1);Lc(this,"VF",a&2?1:0,1);Lc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};function Tc(a){return a.K&-16|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.C&65536?1:0)}
|
||||
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}m.$b=function(){return this.K=this.K&63728|(this.j&32768?8:0)|(this.w&65535?0:4)|(this.u&32768?2:0)|(this.C&65536?1:0)};
|
||||
function Uc(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.C=b<<16;if((b^a.K)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.K>>14&3;a.B!=d&&(a.ra[d]=a.b[6],a.b[6]=a.ra[a.B]);a.Oa=2;a.K=b}m.lc=function(a){Uc(this,a&63727|this.K&1808)};function ac(a){console.log("panic("+a+")")}
|
||||
function J(a,b){var d,c,f=0;0>a.aa?a.aa=a.$b():a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Ab=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(Uc(a,c&53247|a.aa>>2&12288),f&&(a.M|=4,a.b[6]=4),0<=Vc(a,a.aa)&&0<=Vc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
|
||||
function Wc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.wb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ac(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.M|=32,J(a,4);if(e&1&&!(d&1))return a.M|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
|
||||
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Kb=a.B,a.Wb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Wb<<1),J(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.M|=64,J(a,4);return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
|
||||
function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.jc(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.bc(b,d),d):b}function P(a,b){return L(a,Wc(a,b,2))}function Xc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
|
||||
function Vc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return 0<=(d=Wc(a,c|65536,4))?K(a,d,b):d}
|
||||
function Yc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
|
||||
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.M|=4,a.b[6]=4,J(a,4);a.M|=8;a.F|=4}return c}
|
||||
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.rc)){for(a=0;a<this.b.length;a++)Nc(this,"R"+a,this.b[a]);a=Vb(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.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};
|
||||
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].dd===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function Vb(a){return a.M=a.M&63728|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.D&65536?1:0)}
|
||||
function Wb(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.M>>14&3;a.B!=d&&(a.ra[d]=a.b[6],a.b[6]=a.ra[a.B]);a.Oa=2;a.M=b}function cc(a){console.log("panic("+a+")")}
|
||||
function J(a,b){var d,c,f=0;0>a.aa?a.aa=Vb(a):a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Ab=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(Wb(a,c&53247|a.aa>>2&12288),f&&(a.L|=4,a.b[6]=4),0<=Vc(a,a.aa)&&0<=Vc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
|
||||
function Wc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.wb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cc(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.L|=32,J(a,4);if(e&1&&!(d&1))return a.L|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
|
||||
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Kb=a.B,a.Wb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Wb<<1),J(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.L|=64,J(a,4);return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
|
||||
function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.ic(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.ac(b,d),d):b}function P(a,b){return L(a,Wc(a,b,2))}function Xc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
|
||||
function Vc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 0<=(d=Wc(a,c|65536,4))?K(a,d,b):d}
|
||||
function Yc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
|
||||
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return c}
|
||||
function S(a,b,d){var c;return b&56?(0<=(c=Yc(a,b,d))&&(c=Wc(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?0<=(d=S(a,b,2))&&(d=L(a,d)):d=a.b[b&7];return d}function Zc(a,b){var d;b&56?0<=(d=S(a,b,3))&&(d=Q(a,d)):d=a.b[b&7]&255;return d}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
m.vb=function(a){this.A.complete=!0;var b=this.A.Jc=this.H&&$c(this.H),d=a?this.A.kc?0:1:-1;this.A.kc=!1;this.V=this.N=a;this.Ra&256?(Pc(this),a=!1):a=!0;if(a){do{if(b){if(ad(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Xb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].qc){if(!this.f[a].qc()){this.f.splice(a,1);g--;continue}this.f[a].qc=null}this.f[a].Uc>c&&(c=this.f[a].Uc,
|
||||
g=a)}c>(this.K&224)&&(0>g?J(this,160):(J(this,this.f[g].ed),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Ab=this.b[7]);this.F=this.K&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=K(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.C=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
|
||||
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&~c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.w=this.C=a,this.u=
|
||||
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.C=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Zc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(a=c-f,this.j=this.w=this.C=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
|
||||
Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.w=this.C=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.C=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Yc(this,
|
||||
a,0))&&(g=a>>6&7,0<=Vc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.C=this.u=0,-32768>a||32767<a)&&(this.C=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.C=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
|
||||
a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.j=0,this.u=32768,this.C=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.C=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.C=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.C=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|
|
||||
1];this.C=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.C=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.C=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
|
||||
m.vb=function(a){this.A.complete=!0;var b=this.A.Hc=this.H&&$c(this.H),d=a?this.A.jc?0:1:-1;this.A.jc=!1;this.V=this.N=a;this.Ra&256?(Rc(this),a=!1):a=!0;if(a){do{if(b){if(ad(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Xb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].oc){if(!this.f[a].oc()){this.f.splice(a,1);g--;continue}this.f[a].oc=null}this.f[a].Sc>c&&(c=this.f[a].Sc,
|
||||
g=a)}c>(this.M&224)&&(0>g?J(this,160):(J(this,this.f[g].dd),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Ab=this.b[7]);this.F=this.M&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=K(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.D=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
|
||||
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&~c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=
|
||||
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.D=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Zc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(a=c-f,this.j=this.w=this.D=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
|
||||
Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.D=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Yc(this,
|
||||
a,0))&&(g=a>>6&7,0<=Vc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.D=this.u=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
|
||||
a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.j=0,this.u=32768,this.D=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.D=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|
|
||||
1];this.D=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
|
||||
a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=U(this.b[7],a);break;case 512:this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 768:this.w&65535||(this.b[7]=U(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1280:(this.j&32768)!==(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1536:this.w&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1792:this.w&
|
||||
65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.C&65536)&&this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.C&65536||!(this.w&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.u&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.C&65536||(this.b[7]=U(this.b[7],
|
||||
a));break;case 34560:this.C&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(h=Yc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.w=f&65280,this.u=this.C=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.C=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=K(this,e,0)&&(this.j=this.C=this.u=this.w=0):this.j=this.C=
|
||||
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=S(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.w=a,this.C=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
|
||||
break;case 2816:0<=(f=L(this,e=S(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=S(this,a,6)))&&(a=f+(this.C>>16&1),0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=S(this,a,6)))&&(a=f-(this.C>>16&1),0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.C=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=(this.C&65536|f)>>1,0<=K(this,
|
||||
e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1)):(g=a&7,f=this.b[g],a=(this.C&65536|f)>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=a^this.C>>1);break;case 3136:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1|this.C>>16&1,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.C>>16&1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.C=f<<16,this.j=this.w=a,this.u=
|
||||
this.j^this.C>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.C=f<<16,this.j=this.w=a,this.u=this.j^this.C>>1);break;case 3264:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.C=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.C=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Yc(this,a,0))&&(61440!==(this.K&61440)&&
|
||||
(h&=65535),this.B=this.K>>12&3,0<=(c=P(this,h))&&(this.B=this.K>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]:this.ra[this.K>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(h&=65535,this.B=this.K>>12&3,0<=(e=Wc(this,h,4))&&(this.B=this.K>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]=
|
||||
f:this.ra[this.K>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.C=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.C=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.C=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
|
||||
f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,7)))&&(a=-f,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+(this.C>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.C=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-(this.C>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.C=a<<8,this.u=((a^f)&f)<<8));break;
|
||||
case 35776:0<=(f=Zc(this,a))&&(this.j=this.w=f<<8,this.C=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.C&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.C>>16&1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.C=f<<16,this.j=this.w=a<<8,this.u=this.j^this.C>>1));break;case 36032:0<=
|
||||
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.C=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Yc(this,a,0))&&(this.B=this.K>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.K>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]:this.ra[this.K>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(this.B=this.K>>12&3,0<=(e=Wc(this,
|
||||
h|65536,4))&&(this.B=this.K>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.K>>2&12288)===(this.K&12288)?this.b[g]=f:this.ra[this.K>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Xc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.K&49152||(this.K=this.K&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.u=
|
||||
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.K?(this.M|=128,J(this,4)):(this.ga=3,Pc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Pc(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.K&49152||(Rc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
|
||||
e+2&65535,c&=63743,this.K&49152&&(c=c&63519|this.K&63712),this.b[7]=h,Uc(this,c),this.F&=-17,2===a&&(this.F|=this.K&16)));break;default:J(this,8)}}}}}}this.F&&(this.F&2?J(this,168):this.F&4?J(this,4):this.F&16&&J(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Qc(c);db(c,d)}});
|
||||
65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.D&65536)&&this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.D&65536||!(this.w&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.u&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=U(this.b[7],
|
||||
a));break;case 34560:this.D&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(h=Yc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.w=f&65280,this.u=this.D=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.D=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=K(this,e,0)&&(this.j=this.D=this.u=this.w=0):this.j=this.D=
|
||||
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=S(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.w=a,this.D=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
|
||||
break;case 2816:0<=(f=L(this,e=S(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=S(this,a,6)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=S(this,a,6)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.D=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=(this.D&65536|f)>>1,0<=K(this,
|
||||
e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D&65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=
|
||||
this.j^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=this.j^this.D>>1);break;case 3264:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Yc(this,a,0))&&(61440!==(this.M&61440)&&
|
||||
(h&=65535),this.B=this.M>>12&3,0<=(c=P(this,h))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(h&=65535,this.B=this.M>>12&3,0<=(e=Wc(this,h,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=
|
||||
f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.D=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.D=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.D=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
|
||||
f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,7)))&&(a=-f,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=((a^f)&f)<<8));break;
|
||||
case 35776:0<=(f=Zc(this,a))&&(this.j=this.w=f<<8,this.D=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.D&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.D>>16&1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 36032:0<=
|
||||
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(e=Wc(this,
|
||||
h|65536,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Xc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.u=
|
||||
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4)):(this.ga=3,Rc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Rc(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.M&49152||(Tc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
|
||||
e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]=h,Wb(this,c),this.F&=-17,2===a&&(this.F|=this.M&16)));break;default:J(this,8)}}}}}}this.F&&(this.F&2?J(this,168):this.F&4?J(this,4):this.F&16&&J(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Sc(c);db(c,d)}});
|
||||
function bd(a){u.call(this,"ROM",a,bd);this.i=null;this.J=a.addr;this.B=a.size;this.N=a.writable;this.F=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=ia(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){cd(d,a,b,e)})}}w(bd);bd.prototype.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;dd(this)};
|
||||
bd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.rc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,D:d,Rc:c,Ka:f,oc:e})}delete this.Ka}return!0};bd.prototype.Ma=function(){return!0};
|
||||
function cd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.pc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
|
||||
bd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.pc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,C:d,Pc:c,Ka:f,mc:e})}delete this.Ka}return!0};bd.prototype.Ma=function(){return!0};
|
||||
function cd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.nc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.na("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);dd(a)}}
|
||||
function dd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:hc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
|
||||
function dd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:jc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
|
||||
h-=f.za;f=e.G;e=e.B;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.za}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new bd(c);db(c,d)}});function ed(a){u.call(this,"RAM",a,ed);this.F=a.addr;this.B=a.size;this.i=!1}w(ed);m=ed.prototype;m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.i&&this.B&&Cb(this.G,this.F,this.B,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function fd(a){u.call(this,"Keyboard",a,fd,65536);C(this)}w(fd);fd.prototype.ta=function(){return!1};fd.prototype.Wa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
|
||||
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new fd(c);db(c,d)}});function gd(a){u.call(this,"Debugger",a,gd);this.va=a.base||16;this.Z=this.Ja=this.P=0;this.aa=!1;this.I=-1;this.F=[];this.fa={}}w(gd);var hd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
|
|
@ -135,78 +135,78 @@ var ud={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output
|
|||
wd={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]}};m=pd.prototype;
|
||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=uc(a,"messages"))&&sd(this,a);this.sc=wd;xd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(yd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.D,8)+" "+r(n.Tb,4,
|
||||
!0)+" "+r(n.size,4,!0)+" "+l),d!=gc&&(d=-1),l=0);a+=c.G.za;g++}}});C(this)};
|
||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=wc(a,"messages"))&&sd(this,a);this.qc=wd;xd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(yd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.C,8)+" "+r(n.Tb,4,
|
||||
!0)+" "+r(n.size,4,!0)+" "+l),d!=ic&&(d=-1),l=0);a+=c.G.za;g++}}});C(this)};
|
||||
m.ta=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",td(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.F.length-1&&(b=c.F[++c.I])):40==a.keyCode&&(0<c.I?b=c.F[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Ka(d,function(){if(c.ua){var a=c.ua.value;
|
||||
c.ua.value="";td(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.vb(a?1:0),pb(c,!1));return b}),!0}return!1};m.Sb=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.D;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&zd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&zd(a,b));return d};
|
||||
m.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&zd(a,d);M(this.f,!0)}};m.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].mc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.B].yb(0,b>>8&255,c+1));d&&zd(a,d);M(this.f,!0)}};function Y(a){return{D:a,Fa:!1}}function Ad(a){return[a.D,a.Fa]}function Bd(a){return{D:a[0],Fa:a[1]}}
|
||||
function yd(a,b,d){var c;d=(d?a.V:a.zb).D;if(void 0!==b){c=b=ld(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=kd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Cd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Hc=id(a,b.Cc=d[2]))}function zd(a,b){null!=a.D&&(a.D+=b||1)}
|
||||
function sd(a,b){a.H=a;a.ha=a.Ic=536870912;a.ya=null;a.Da=[];var d=id(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function xd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
|
||||
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).D));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Pc(d);d.$=0;M(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;td(this,a)}};
|
||||
c.ua.value="";td(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(fb(c,!0),b=c.vb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Sb=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.C;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&zd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&zd(a,b));return d};
|
||||
m.ac=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&zd(a,d);M(this.f,!0)}};m.ic=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].kc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.B].yb(0,b>>8&255,c+1));d&&zd(a,d);M(this.f,!0)}};function Y(a){return{C:a,Fa:!1}}function Ad(a){return[a.C,a.Fa]}function Bd(a){return{C:a[0],Fa:a[1]}}
|
||||
function yd(a,b,d){var c;d=(d?a.V:a.zb).C;if(void 0!==b){c=b=ld(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=kd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Cd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Fc=id(a,b.Ac=d[2]))}function zd(a,b){null!=a.C&&(a.C+=b||1)}
|
||||
function sd(a,b){a.H=a;a.ha=a.Gc=536870912;a.ya=null;a.Da=[];var d=id(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function xd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
|
||||
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).C));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Rc(d);d.$=0;M(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;td(this,a)}};
|
||||
function rd(a){var b;if($c(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.qa=0;a.g("instruction history buffer allocated")}if(!a.ga||!a.ga.length)for(a.ga=Array(256),b=0;b<a.ga.length;b++)a.ga[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.qa=0,a.T=[],a.ga=[]}m.kb=function(a){if(!Dd(this))return!1;this.f.kb(a);return!0};
|
||||
m.vb=function(a,b,d){if(!Dd(this))return!1;this.P=0;a||$c(this)&&ad(this,this.f.b[7],0);try{var c=this.f.vb(a);0<c&&(this.P+=c,Nc(this.f,c,!0),Jc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?be(this):ce(this)};
|
||||
m.vb=function(a,b,d){if(!Dd(this))return!1;this.P=0;a||$c(this)&&ad(this,this.f.b[7],0);try{var c=this.f.vb(a);0<c&&(this.P+=c,Pc(this.f,c,!0),Lc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?be(this):ce(this)};
|
||||
function Dd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.ea?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){rd(this);this.Z=this.Ja=0;this.ya=null;this.P=0;this.V=Y(this.f.b[7]);this.A.ia=!1;de(this);a||this.wa()};
|
||||
m.save=function(){var a=new Sc(this);N(a,0,Ad(this.V));N(a,1,Ad(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Bd(a[b++]),this.$=Bd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Lc=a;this.Nc=b};
|
||||
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Nc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Lc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";$c(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();de(this,this.f.b[7])}};function $c(a){return 1<a.B.length||!!a.xa}
|
||||
function ad(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||pc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.D=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function qd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;qc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,qc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
|
||||
m.cb=function(a,b,d){var c=!0;d||ee(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.D)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(fe(this,a,a.length-1,"set"),rd(this)));return c};function ee(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||fe(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,qc(c.R[d>>>c.X],b==a.J));g.Fa||rd(a);break}}return e}
|
||||
function ge(a,b){for(var d=1;d<b.length;d++)fe(a,b,d);return b.length-1}function fe(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.D)+(c?" "+c:d.Cc?' "'+d.Cc+'"':""))}function de(a,b){if(void 0!==b)pc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!ee(a,a.B,c,!0))break;d=0}}}
|
||||
function pc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(ee(a,c,g,!0),f=!0);if(n=g.Hc){for(var e=!1,p=0;p<n.length;p++)if(!he(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.A.ia||(e=!0)}if(e){f||fe(a,c,h,"hit");break}}}a.Eb--;return e}
|
||||
function ie(a,b,d,c){var f=Y(b.D),e=a.Ga(b,2),h,g;for(g in a.sc)if(h=a.sc[g][e&g])break;h||(h=[0]);g="";for(var k=vd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.D+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.D-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=je(B);break;
|
||||
case 1:x="@"+je(B);break;case 2:7>B?x="("+je(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+je(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+je(B)+")";break;case 5:x="@-("+je(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+je(B)+")";7==B&&(x=[x,X(q,D+p.D&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+je(B)+")",7==B&&(x=[x,X(q,D+p.D&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.D)+":";
|
||||
if(-1!==f.D&&-1!==b.D){do if(e+=" "+X(a,a.Ga(f,2)),null==f.D)break;while(f.D!=b.D)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Kc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ke(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
|
||||
function je(a){return 6>a?"R"+a:6==a?"SP":"PC"}function le(a,b){var d="",c=a.f;8>b?(d=je(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Tc(c)));d&&(d+=" ");return d}m.rc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function me(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.D>>>0,g=e.Rc;if(f>=h&&f<h+g){f=ra(e.oc,[f-h],a.rc);0<=f?ne(a,b,f,c):d&&(f=~f,ne(a,b,f-1,c),ne(a,b,f,c));break}}return c}
|
||||
function ne(a,b,d,c){var f={},e=a.N[b].oc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}function oe(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return od(a)||a.g("no variables"),!0;if(!d[2])return od(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=kd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function pe(a,b,d){var c=null;if(b=yd(a,b,!0)){var f=me(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.D-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.D)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
|
||||
m.save=function(){var a=new Uc(this);N(a,0,Ad(this.V));N(a,1,Ad(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Bd(a[b++]),this.$=Bd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Jc=a;this.Lc=b};
|
||||
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Lc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Jc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";$c(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();de(this,this.f.b[7])}};function $c(a){return 1<a.B.length||!!a.xa}
|
||||
function ad(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||rc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.C=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function qd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;sc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,sc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
|
||||
m.cb=function(a,b,d){var c=!0;d||ee(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.C)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(fe(this,a,a.length-1,"set"),rd(this)));return c};function ee(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||fe(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,sc(c.R[d>>>c.X],b==a.J));g.Fa||rd(a);break}}return e}
|
||||
function ge(a,b){for(var d=1;d<b.length;d++)fe(a,b,d);return b.length-1}function fe(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.C)+(c?" "+c:d.Ac?' "'+d.Ac+'"':""))}function de(a,b){if(void 0!==b)rc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!ee(a,a.B,c,!0))break;d=0}}}
|
||||
function rc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(ee(a,c,g,!0),f=!0);if(n=g.Fc){for(var e=!1,p=0;p<n.length;p++)if(!he(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.A.ia||(e=!0)}if(e){f||fe(a,c,h,"hit");break}}}a.Eb--;return e}
|
||||
function ie(a,b,d,c){var f=Y(b.C),e=a.Ga(b,2),h,g;for(g in a.qc)if(h=a.qc[g][e&g])break;h||(h=[0]);g="";for(var k=vd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.C+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.C-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=je(B);break;
|
||||
case 1:x="@"+je(B);break;case 2:7>B?x="("+je(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+je(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+je(B)+")";break;case 5:x="@-("+je(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+je(B)+")";7==B&&(x=[x,X(q,D+p.C&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+je(B)+")",7==B&&(x=[x,X(q,D+p.C&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.C)+":";
|
||||
if(-1!==f.C&&-1!==b.C){do if(e+=" "+X(a,a.Ga(f,2)),null==f.C)break;while(f.C!=b.C)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Mc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ke(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
|
||||
function je(a){return 6>a?"R"+a:6==a?"SP":"PC"}function le(a,b){var d="",c=a.f;8>b?(d=je(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Vb(c)));d&&(d+=" ");return d}function me(a){var b,d="";for(b=0;6>b;b++)d+=le(a,b);d=d+"\n"+(le(a,6)+le(a,7)+le(a,20));return d+=ke(a,"T")+ke(a,"N")+ke(a,"Z")+ke(a,"V")+ke(a,"C")}m.pc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ne(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.C>>>0,g=e.Pc;if(f>=h&&f<h+g){f=ra(e.mc,[f-h],a.pc);0<=f?oe(a,b,f,c):d&&(f=~f,oe(a,b,f-1,c),oe(a,b,f,c));break}}return c}function oe(a,b,d,c){var f={},e=a.N[b].mc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
|
||||
function pe(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return od(a)||a.g("no variables"),!0;if(!d[2])return od(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=kd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function qe(a,b,d){var c=null;if(b=yd(a,b,!0)){var f=ne(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.C-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.C)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
|
||||
function be(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.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=kd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
|
||||
g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}e="";for(f=0;6>f;f++)e+=le(a,f);e=e+"\n"+(le(a,6)+le(a,7)+le(a,20));e+=ke(a,"T")+ke(a,"N")+ke(a,"Z")+ke(a,"V")+ke(a,"C");a.g(e);d&&(a.V=Y(c.b[7]),ce(a,X(a,a.V.D)))}}function qe(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):kd(a,b,!0)}
|
||||
function re(a,b,d){var c="t"!=b;d=md(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return pb(a,!0)&&a.vb(f,c,!1)},function(){M(a.f);pb(a,!1)})}
|
||||
function ce(a,b,d,c){if(b=yd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=yd(a,d,!0);if(!c||c.D<b.D)return;f=c.D-b.D;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=me(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=ie(a,b,h,e);a.g(e);a.V=b;f-=b.D-k;d++}}}
|
||||
function he(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.D)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.D)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=yd(a,e[1],!0);if(n)if(a.$=
|
||||
n,void 0===e[2])a.g("begin assemble at "+X(a,n.D)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bc(n,p[q],1);a.g(ie(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=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 B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+ge(a,a.B),Fa=Fa+ge(a,a.W);(Fa+=ge(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=md(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=yd(a,x,!0),!V))break a;"c"==B?null==V.D?(qd(a),a.g("all breakpoints cleared")):ee(a,a.B,V)||ee(a,a.W,V)||ee(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.D)):null!=V.D&&(Cd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
|
||||
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Le=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",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");ea.length&&a.g("dump extension commands:\n\t"+
|
||||
ea)}else if("state"==da){var Ed=se(a.i,!0);"console"==ta?console.log(Ed):(a.eb&&(a.eb.value=""),a.g(Ed))}else if("symbols"==da)for(var xc=0;xc<a.N.length;xc++){var yc=a.N[xc],Ia;for(Ia in yc.Ka)if("."!=Ia.charAt(0)){var Fd=yc.Ka[Ia].o;if(void 0!==Fd){var Gd=yc.Ka[Ia].l;Gd&&(Ia=Gd);a.g(X(a,Fd)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Hd=a.Ra[Ga];Hd?(e.shift(),e.shift(),Hd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Pc||"db")}else a.Pc=Ha;if("dh"==Ha){var Id=da,Jd=ta,Kd="",
|
||||
Ld=0,O=a.qa,fa=a.T;if(fa.length){var W=+Id||a.Ub,Ja=+Jd||10;isNaN(W)?W=Ja:Kd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].D?(W=O+W,O=0):O+=fa.length);var zc=[];"call"==Jd&&(Ja=1E5,zc=["CALL"]);for(void 0!==Id&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Md=fa[O++];if(null==Md.D)break;var fb=Y(Md.D),Me=W--,Nd=ie(a,fb,"history",Me);(!zc.length||0<=Nd.indexOf(zc[0]))&&a.g(Nd);fb.ec&&(O+=fb.ec,Ja-=fb.ec,W-=fb.ec);O>=fa.length&&(O=
|
||||
0);a.Ub=W;Ld++;Ja--}}Ld||(a.g("no "+Kd+"history available"),a.Ub=void 0)}else{var Ib=yd(a,da);if(Ib){var Jb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Le),Jb=md(a,ta)>>>0,65536<Jb&&(Jb=65536));for(var ua="",Kb="dd"==Ha?4:"dw"==Ha?2:1,Lb=Kb*Jb||128,Ne=Lb+15>>4||1;Ne--&&0<Lb;){var Mb=0,Ac=0,gb,hb="",Bc="",da=X(a,Ib.D);for(gb=16;0<gb&&0<Lb;gb--){var Nb=a.Hb(Ib,1),Mb=Mb|Nb<<(Ac++<<3);Ac==Kb&&(hb+=r(Mb,2*Kb),hb+=1==Kb?9==gb?"-":" ":" ",Mb=Ac=0);Bc+=32<=Nb&&128>Nb?String.fromCharCode(Nb):".";Lb--}ua&&
|
||||
(ua+="\n");ua+=da+" "+hb+(0==gb?" "+Bc:"")}ua&&a.g(ua);a.zb=Ib}}}}break;case "e":if("else"==e[0])break;var Ob=1,Od=255,Pd=a.Hb,Qd=a.bc;"ew"==e[0]&&(Ob=2,Od=65535,Pd=a.Ga,Qd=a.jc);var Rd=Ob<<1,Sd=e[1];if(null==Sd)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 Pb=yd(a,Sd);if(Pb)for(var Qb=2;Qb<e.length;Qb++){var ib=kd(a,e[Qb]);if(void 0===ib){a.g("unrecognized value: "+e[Qb]);break}ib&~Od&&a.g("warning: "+r(ib)+" exceeds "+
|
||||
Ob+"-byte value");var Oe=Pd.call(a,Pb);a.g("changing "+X(a,Pb.D)+" from "+r(Oe,Rd,!0)+" to "+r(ib,Rd,!0));Qd.call(a,Pb,ib,Ob)}}break;case "g":a:{var Td=e[1],Pe=b;if(void 0!==Td){var Cc=yd(a,Td,!0);if(!Cc)break a;Cd(a,Cc,Pe);a.cb(a.B,Cc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Dc;if(a.A.ia)Dc="halting",a.la();else{if(qb(a,!0))break a;Dc="already halted"}d||a.g(Dc)}break;case "i":if("if"==e[0]){var Ec;var jb=b.substr(2),jb=qa(jb);kd(a,jb)?(d||a.g("true: "+
|
||||
jb),Ec=!0):(d||a.g("false: "+jb),Ec=!1);Ec||(c=!1)}break;case "k":var Qe=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Fc=0,Ud=Y(),kb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,kb.D));10>Fc;){for(var va=null,Re=256;65536>kb.D>>>0;){Ud.D=a.Ga(kb,2);if(null==kb.D||!Re--)break;for(var Se=a,Rb=Ud,Vd=null,lb=Rb.D,Wd=lb,Gc=1;6>=Gc&&lb;Gc++){if(2<Gc){Rb.D=lb;var Sb=ie(Se,Rb);if(0<=Sb.indexOf("JSR")){var Xd=Sb.indexOf(" ");if(lb+
|
||||
(Sb.indexOf(" ",Xd+1)-Xd-1)/2==Wd){Vd=Sb;break}}}lb--}Rb.D=Wd;if(va=Vd)break}if(!va||null==va)break;var Yd=null;if("ks"==Qe){var Zd=va.match(/[0-9A-F]+$/);Zd&&(Yd=pe(a,Zd[0]))}va=pa(va,50)+" ;"+(Yd||"stack="+X(a,kb.D));a.g(va);Fc++}Fc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){pe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
|
||||
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Hc=0;Hc<a.Da.length;Hc++)a.g(a.Da[Hc]);a.Da=[]}}var Te=0,oa="";for(ga in F)if(!E||E==ga){var Ue=!!(a.ha&F[ga]);if(null===ha||ha==Ue)oa&&(oa+=","),++Te%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));rd(a)}break;case "p":if("print"==e[0]){qe(a,b.substr(5));break}var Ve="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var $d=Y(a.f.b[7]);a.Hb($d);a.da?(a.cb(a.B,$d,!0),a.kb()||(a.i&&a.i.Sb(),a.da=0)):re(a,Ve?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}be(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var mb=+e[2];if(8==mb||10==mb||16==mb)a.va=mb;else{a.g("invalid base: "+mb);
|
||||
break}}a.g("default base: "+a.va);break;case "cs":var nb;void 0!==e[3]&&(nb=+e[3]);switch(e[2]){case "int":a.f.pb=nb;break;case "start":a.f.Mb=nb;break;case "stop":a.f.qb=nb;break;default:a.g("unknown cs option");break a}void 0!==nb&&wc(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Mc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"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":re(a,e[0],e[1]);break;case "u":ce(a,e[1],e[2],8);break;case "v":if("var"==e[0]){oe(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.wc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){qe(a,b.substr(1));break}var ob="commands:",Ic;for(Ic in ud)ob+="\n"+pa(Ic,9)+ud[Ic];$c(a)||(ob+="\nnote: history disabled if no exec breakpoints");a.g(ob);break;default:a.g("unknown command: "+b),c=!1}}}catch(ae){a.g("debugger error: "+(ae.stack||ae.message)),c=!1}return c}function td(a,b,d){b=id(a,b,d);for(var c in b)if(!he(a,b[c]))return!1;return!0}
|
||||
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}a.g(me(a));d&&(a.V=Y(c.b[7]),ce(a,X(a,a.V.C)))}}function re(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):kd(a,b,!0)}function se(a,b,d){var c="t"!=b;d=md(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.vb(f,c,!1)},function(){M(a.f);fb(a,!1)})}
|
||||
function ce(a,b,d,c){if(b=yd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=yd(a,d,!0);if(!c||c.C<b.C)return;f=c.C-b.C;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=ne(a,b),k=b.C;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=ie(a,b,h,e);a.g(e);a.V=b;f-=b.C-k;d++}}}
|
||||
function he(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.C)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.C)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=yd(a,e[1],!0);if(n)if(a.$=
|
||||
n,void 0===e[2])a.g("begin assemble at "+X(a,n.C)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.ac(n,p[q],1);a.g(ie(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=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 B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+ge(a,a.B),Fa=Fa+ge(a,a.W);(Fa+=ge(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=md(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=yd(a,x,!0),!V))break a;"c"==B?null==V.C?(qd(a),a.g("all breakpoints cleared")):ee(a,a.B,V)||ee(a,a.W,V)||ee(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.C)):null!=V.C&&(Cd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
|
||||
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Me=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",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");ea.length&&a.g("dump extension commands:\n\t"+
|
||||
ea)}else if("state"==da){var Ed=te(a.i,!0);"console"==ta?console.log(Ed):(a.eb&&(a.eb.value=""),a.g(Ed))}else if("symbols"==da)for(var yc=0;yc<a.N.length;yc++){var zc=a.N[yc],Ia;for(Ia in zc.Ka)if("."!=Ia.charAt(0)){var Fd=zc.Ka[Ia].o;if(void 0!==Fd){var Gd=zc.Ka[Ia].l;Gd&&(Ia=Gd);a.g(X(a,Fd)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Hd=a.Ra[Ga];Hd?(e.shift(),e.shift(),Hd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Nc||"db")}else a.Nc=Ha;if("dh"==Ha){var Id=da,Jd=ta,Kd="",
|
||||
Ld=0,O=a.qa,fa=a.T;if(fa.length){var W=+Id||a.Ub,Ja=+Jd||10;isNaN(W)?W=Ja:Kd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].C?(W=O+W,O=0):O+=fa.length);var Ac=[];"call"==Jd&&(Ja=1E5,Ac=["CALL"]);for(void 0!==Id&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Md=fa[O++];if(null==Md.C)break;var gb=Y(Md.C),Ne=W--,Nd=ie(a,gb,"history",Ne);(!Ac.length||0<=Nd.indexOf(Ac[0]))&&a.g(Nd);gb.dc&&(O+=gb.dc,Ja-=gb.dc,W-=gb.dc);O>=fa.length&&(O=
|
||||
0);a.Ub=W;Ld++;Ja--}}Ld||(a.g("no "+Kd+"history available"),a.Ub=void 0)}else{var Jb=yd(a,da);if(Jb){var Kb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Me),Kb=md(a,ta)>>>0,65536<Kb&&(Kb=65536));for(var ua="",Lb="dd"==Ha?4:"dw"==Ha?2:1,Mb=Lb*Kb||128,Oe=Mb+15>>4||1;Oe--&&0<Mb;){var Nb=0,Bc=0,hb,ib="",Cc="",da=X(a,Jb.C);for(hb=16;0<hb&&0<Mb;hb--){var Ob=a.Hb(Jb,1),Nb=Nb|Ob<<(Bc++<<3);Bc==Lb&&(ib+=r(Nb,2*Lb),ib+=1==Lb?9==hb?"-":" ":" ",Nb=Bc=0);Cc+=32<=Ob&&128>Ob?String.fromCharCode(Ob):".";Mb--}ua&&
|
||||
(ua+="\n");ua+=da+" "+ib+(0==hb?" "+Cc:"")}ua&&a.g(ua);a.zb=Jb}}}}break;case "e":if("else"==e[0])break;var Pb=1,Od=255,Pd=a.Hb,Qd=a.ac;"ew"==e[0]&&(Pb=2,Od=65535,Pd=a.Ga,Qd=a.ic);var Rd=Pb<<1,Sd=e[1];if(null==Sd)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 Qb=yd(a,Sd);if(Qb)for(var Rb=2;Rb<e.length;Rb++){var jb=kd(a,e[Rb]);if(void 0===jb){a.g("unrecognized value: "+e[Rb]);break}jb&~Od&&a.g("warning: "+r(jb)+" exceeds "+
|
||||
Pb+"-byte value");var Pe=Pd.call(a,Qb);a.g("changing "+X(a,Qb.C)+" from "+r(Pe,Rd,!0)+" to "+r(jb,Rd,!0));Qd.call(a,Qb,jb,Pb)}}break;case "g":a:{var Td=e[1],Qe=b;if(void 0!==Td){var Dc=yd(a,Td,!0);if(!Dc)break a;Cd(a,Dc,Qe);a.cb(a.B,Dc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Ec;if(a.A.ia)Ec="halting",a.la();else{if(qb(a,!0))break a;Ec="already halted"}d||a.g(Ec)}break;case "i":if("if"==e[0]){var Fc;var kb=b.substr(2),kb=qa(kb);kd(a,kb)?(d||a.g("true: "+
|
||||
kb),Fc=!0):(d||a.g("false: "+kb),Fc=!1);Fc||(c=!1)}break;case "k":var Re=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Gc=0,Ud=Y(),lb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,lb.C));10>Gc;){for(var va=null,Se=256;65536>lb.C>>>0;){Ud.C=a.Ga(lb,2);if(null==lb.C||!Se--)break;for(var Te=a,Sb=Ud,Vd=null,mb=Sb.C,Wd=mb,Hc=1;6>=Hc&&mb;Hc++){if(2<Hc){Sb.C=mb;var Tb=ie(Te,Sb);if(0<=Tb.indexOf("JSR")){var Xd=Tb.indexOf(" ");if(mb+
|
||||
(Tb.indexOf(" ",Xd+1)-Xd-1)/2==Wd){Vd=Tb;break}}}mb--}Sb.C=Wd;if(va=Vd)break}if(!va||null==va)break;var Yd=null;if("ks"==Re){var Zd=va.match(/[0-9A-F]+$/);Zd&&(Yd=qe(a,Zd[0]))}va=pa(va,50)+" ;"+(Yd||"stack="+X(a,lb.C));a.g(va);Gc++}Gc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){qe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
|
||||
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Ic=0;Ic<a.Da.length;Ic++)a.g(a.Da[Ic]);a.Da=[]}}var Ue=0,oa="";for(ga in F)if(!E||E==ga){var Ve=!!(a.ha&F[ga]);if(null===ha||ha==Ve)oa&&(oa+=","),++Ue%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));rd(a)}break;case "p":if("print"==e[0]){re(a,b.substr(5));break}var We="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var $d=Y(a.f.b[7]);a.Hb($d);a.da?(a.cb(a.B,$d,!0),a.kb()||(a.i&&a.i.Sb(),a.da=0)):se(a,We?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}be(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var nb=+e[2];if(8==nb||10==nb||16==nb)a.va=nb;else{a.g("invalid base: "+nb);
|
||||
break}}a.g("default base: "+a.va);break;case "cs":var ob;void 0!==e[3]&&(ob=+e[3]);switch(e[2]){case "int":a.f.pb=ob;break;case "start":a.f.Mb=ob;break;case "stop":a.f.qb=ob;break;default:a.g("unknown cs option");break a}void 0!==ob&&Kc(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"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":se(a,e[0],e[1]);break;case "u":ce(a,e[1],e[2],8);break;case "v":if("var"==e[0]){pe(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.uc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){re(a,b.substr(1));break}var pb="commands:",Jc;for(Jc in ud)pb+="\n"+pa(Jc,9)+ud[Jc];$c(a)||(pb+="\nnote: history disabled if no exec breakpoints");a.g(pb);break;default:a.g("unknown command: "+b),c=!1}}}catch(ae){a.g("debugger error: "+(ae.stack||ae.message)),c=!1}return c}function td(a,b,d){b=id(a,b,d);for(var c in b)if(!he(a,b[c]))return!1;return!0}
|
||||
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new pd(c);db(c,d)}});
|
||||
function te(a,b,d){u.call(this,"Computer",a,te,67108864);this.A.ea=!1;ue(this,b);this.W=uc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=ve;this.T=null;this.N=this.aa=!1;this.url=uc(this,"url")||"";(Math.random()+.1).toString(36);this.B=we(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.pc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
|
||||
this.I.g,c.eb=this.I.eb;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.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=uc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=ve),this.i&&
|
||||
(this.V=new Sc(this,"1.30.0"),xe(this.V)?b=null:delete this.V);!b&&this.i&&(b=ye(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&ze(this,this.Nb)}else t("Unable to find CPU component")}w(te);var ve=0;
|
||||
function ue(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function uc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function ze(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){ze(a,b,d)});return}}b.call(a,d)}
|
||||
function Ae(a,b){var d=new Sc(a,"1.30.0","validate");if(xe(d)&&Be(d)){var c=Ce(d,"timestamp"),f=b?Ce(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=te.prototype;
|
||||
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:ve));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Sc(this,"1.30.0");if(-1==a)b=!0;else if(a>ve){if(xe(c,this.T)){this.J=new Sc(this,"1.30.0","failsafe");xe(this.J)&&(De(this,c),a=2,Ee(this.J));N(this.J,"timestamp",wa());Fe(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Be(c)){var e=Ce(c,"code"),h=Ce(c,"data");e&&("ok"==e?xe(c,h):("error"==
|
||||
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),Ee(c),xe(c)?(d=Be(c),f=!0):d=!1))}f&&Ae(this,d?c:null)}else 2==a&&c.clear()}else Ae(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Ge(this,h,c,b,d));b=[c,a,d];-1!=a?ze(this,this.uc,b):this.uc(b)}};
|
||||
function Ge(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=Ce(d,b.id))||(e=Ce(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=ve,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.nc)for(a=b.nc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
|
||||
m.uc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Ge(this,this.f,b,d,a),this.f.Db());this.$&&(De(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
|
||||
function De(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function se(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Sc(a,"1.30.0"),h=new Sc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
|
||||
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&He(a,a.B,e.toString()),Fe(h)&&Fe(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
|
||||
function ue(a,b,d){u.call(this,"Computer",a,ue,67108864);this.A.ea=!1;ve(this,b);this.W=wc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=we;this.T=null;this.N=this.aa=!1;this.url=wc(this,"url")||"";(Math.random()+.1).toString(36);this.B=xe(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.nc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
|
||||
this.I.g,c.eb=this.I.eb;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.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=wc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=we),this.i&&
|
||||
(this.V=new Uc(this,"1.30.0"),ye(this.V)?b=null:delete this.V);!b&&this.i&&(b=ze(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&Ae(this,this.Nb)}else t("Unable to find CPU component")}w(ue);var we=0;
|
||||
function ve(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function wc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function Ae(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){Ae(a,b,d)});return}}b.call(a,d)}
|
||||
function Be(a,b){var d=new Uc(a,"1.30.0","validate");if(ye(d)&&Ce(d)){var c=De(d,"timestamp"),f=b?De(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=ue.prototype;
|
||||
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:we));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>we){if(ye(c,this.T)){this.J=new Uc(this,"1.30.0","failsafe");ye(this.J)&&(Ee(this,c),a=2,Fe(this.J));N(this.J,"timestamp",wa());Ge(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Ce(c)){var e=De(c,"code"),h=De(c,"data");e&&("ok"==e?ye(c,h):("error"==
|
||||
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),Fe(c),ye(c)?(d=Ce(c),f=!0):d=!1))}f&&Be(this,d?c:null)}else 2==a&&c.clear()}else Be(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=He(this,h,c,b,d));b=[c,a,d];-1!=a?Ae(this,this.sc,b):this.sc(b)}};
|
||||
function He(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=De(d,b.id))||(e=De(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=we,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.lc)for(a=b.lc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
|
||||
m.sc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(He(this,this.f,b,d,a),this.f.Db());this.$&&(Ee(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
|
||||
function Ee(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function te(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
|
||||
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&Ie(a,a.B,e.toString()),Ge(h)&&Ge(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
|
||||
m.reset=function(){this.G&&this.G.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?se(c,!1,!0):ze(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");se(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Nb(ve)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
|
||||
d;d.onclick=function(){var a=we(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=se(c,b);b?He(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function we(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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&&((d=Ie(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
|
||||
function Ie(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function ye(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Je(a,"1.30.0"));return b}
|
||||
function He(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Je(a,"1.30.0");c.data=d;b=xa(ka()+"/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.na("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.na(d),Ca("user",""),a.B=null)}}m.Sb=function(){};
|
||||
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new te(h,c,!0);db(h,e);h.W&&ze(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Nb(-1)}});
|
||||
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&se(d,!(!d.i||d.P),!0)}});function Sc(a,b,d){this.id=a.id;this.key=Je(a,b,d);this.H=a.H;Ee(this,a.Oc)}function Je(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}
|
||||
Sc.prototype={constructor:Sc,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){Ee(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 Ee(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Fe(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Be(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function xe(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Ce(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Ke=0;
|
||||
function We(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Xe(g,a,b,d,c,f,e)})}
|
||||
function Xe(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ye(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ye(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(c[0],h);Ye(a,b,d)}})}else d(a,null)}
|
||||
function Ze(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Ke||Sa(!0));k=!1}var h,g,k=!0;Ke++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
|
||||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?We(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Ke||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Ke||Sa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?We(b,a,c,!0,f,l):Xe(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return Ze(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
|
||||
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?te(c,!1,!0):Ae(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");te(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Nb(we)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
|
||||
d;d.onclick=function(){var a=xe(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=te(c,b);b?Ie(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function xe(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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&&((d=Je(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
|
||||
function Je(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function ze(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Ke(a,"1.30.0"));return b}
|
||||
function Ie(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ke(a,"1.30.0");c.data=d;b=xa(ka()+"/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.na("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.na(d),Ca("user",""),a.B=null)}}m.Sb=function(){};
|
||||
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new ue(h,c,!0);db(h,e);h.W&&Ae(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Nb(-1)}});
|
||||
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&te(d,!(!d.i||d.P),!0)}});function Uc(a,b,d){this.id=a.id;this.key=Ke(a,b,d);this.H=a.H;Fe(this,a.Mc)}function Ke(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}
|
||||
Uc.prototype={constructor:Uc,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){Fe(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 Fe(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Ge(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Ce(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function ye(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function De(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Le=0;
|
||||
function Xe(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Ye(g,a,b,d,c,f,e)})}
|
||||
function Ye(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ze(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ze(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(c[0],h);Ze(a,b,d)}})}else d(a,null)}
|
||||
function $e(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Le||Sa(!0));k=!1}var h,g,k=!0;Le++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
|
||||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Xe(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Le||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Le||Sa(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?Xe(b,a,c,!0,f,l):Ye(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return $e(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
|
||||
|
|
|
|||
|
|
@ -8,90 +8,90 @@ typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encod
|
|||
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
|
||||
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ib=b.comment;this.dc=b;b=this.id.indexOf(".");0>b?this.ub=this.id:(this.Gb=this.id.substr(0,b),this.ub=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,yb:!1,L:!1,error:!1};this.lb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Gb=b.comment;this.bc=b;b=this.id.indexOf(".");0>b?this.tb=this.id:(this.Eb=this.id.substr(0,b),this.tb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,xb:!1,L:!1,error:!1};this.lb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
|
||||
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function y(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},x=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.aa(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.zb=this.A[b]=c,c.value="",this.X=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.X(a,this.ub)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.ub+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.yb)return a.h.Za&&(a.h.Za=!1),a.h.yb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.lb;a.lb=null;b&&b()}}
|
||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.yb=this.A[b]=c,c.value="",this.X=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.X(a,this.tb)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.tb+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.xb)return a.h.Za&&(a.h.Za=!1),a.h.xb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.lb;a.lb=null;b&&b()}}
|
||||
function Ga(a,b){b&&(a.h.ready?b():a.lb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.aa=function(a,b,c,d){return this.s&&this.s.aa(a,b,c,d)||this.c&&this.c.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.c=c;this.H=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
|
||||
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
|
||||
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.H=c;this.D=a.busWidth||16;this.s=Math.pow(2,this.D);this.v=this.s-1|0;this.f=(this.D>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.J=this.g>>2;this.i=this.g-1;this.j=this.s/this.g|0;this.M=this.j-1;this.oa=[];this.u=null;this.$a=this.P;a=new F;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.I=this.s-8192;Pa(this,this.I,
|
||||
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
|
||||
function Ma(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Na(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.$a(b,-1,0)}
|
||||
function Oa(a,b,c){if(a=this.controller.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.u&&this.u()};E.prototype.P=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
|
||||
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.sb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.sb){r=k.size-(e-l);r>h&&(r=h);k.sb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
|
||||
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.rb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.rb){r=k.size-(e-l);r>h&&(r=h);k.rb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
|
||||
function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
||||
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Cb:[],fa:0,T:128,b:127,ac:0};this.b={data:0,wc:0,Qa:20,tc:0};this.f={Bb:0,m:0};this.g={gb:2496,O:0,w:128,hb:0,fb:0,U:0,Rb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={m:129,Ya:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Zb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],tb:[815,411,815,630],R:[],B:2176,Ta:0,Ra:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
|
||||
4544],Sa:[0,0,0,0,0,0,0,0],Ja:0,rc:[0,0,0,0,0,0,0,0],Sb:0,Tb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],sc:[1,2,3,4,5,6,7,8],Ub:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],rb:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],qc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],va:0,Db:0}}y(G);
|
||||
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Bb:[],fa:0,T:128,b:127,Zb:0};this.b={data:0,wc:0,Qa:20,sc:0};this.f={Ab:0,l:0};this.g={gb:2496,O:0,w:128,hb:0,fb:0,U:0,Pb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={l:129,Ya:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Xb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],sb:[815,411,815,630],R:[],B:2176,Ta:0,Ra:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
|
||||
4544],Sa:[0,0,0,0,0,0,0,0],Ja:0,qc:[0,0,0,0,0,0,0,0],Qb:0,Rb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],rc:[1,2,3,4,5,6,7,8],Sb:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],qb:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],mc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],va:0,Cb:0}}y(G);
|
||||
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];m=G.prototype;
|
||||
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Yb.bind(this);b.u=this.reset.bind(this);b.$a=f}D(this)};m.qb=function(){return this.c.qb()};m.Fb=function(a){this.c.Fb(a)};
|
||||
function Va(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.gb=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;Wa(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
|
||||
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.R[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.kc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.w=e.w&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
|
||||
function Xa(a){var b=a.i,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.lc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.sa&8&&(b.m&=63);b.sa=b.Zb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.m|=37888;break}if((b.G&63)>=b.C[e]){b.m|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
|
||||
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Wa(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.m|=37888;break}if((b.G&63)>=b.C[e]){b.m|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.pb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.m|=129;return!!(b.m&64)})}
|
||||
m.lc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.m=e.m&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}H(this.c,20,160,112,function(){e.m|=129;return!!(e.m&64)})};function Ya(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ja=a.Ta=a.Ra=a.va=a.Db=0}
|
||||
function Za(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.mc,drive:b,blocksize:256,mapped:0,maxblock:c.tb[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.rb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:Ya(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.tb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
|
||||
255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;Wa(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.tb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;a.pb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
|
||||
m.mc=function(a,b,c,d,f){var e=this.j;e.Ta=65536-f&65535;e.Ra=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.rb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.hc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.fc=function(){this.f.m|=128;this.f.m&64&&H(this.c,0,192,64)};
|
||||
function $a(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Ua[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&ab(898)):b|=4186112;return b}
|
||||
function bb(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.hc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.ob(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
|
||||
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.pb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.gc?$a(this,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
|
||||
function Wa(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.gc?$a(a,d):d);if(0>h){b.ob(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.ob(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.m=0;this.g.w=128;this.i.m=128;Ya(this)};
|
||||
m.Yb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.nb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4);0>b?d=e.o:d=e.o=0;break;case 4194292:if(70!==e.Fa)return J(e,4);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4);d=0;break;case 4194288:if(70!==e.Fa)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.Fa)return J(e,4);f=a-4194272>>1;0>b?d=e.Ab[f]:(d=I(this,e.Ab[f],a,b,c),0<=d&&(e.Ab[f]=d));break;case 4194254:return a&1?e.l>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.l>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.l&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.l>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.l&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.o|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);
|
||||
break;case 4194170:e.F=e.F&62337|e.bb<<5|e.mb<<1;0>b?d=e.F:(d=I(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.bb=d>>5&3,e.mb=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.tc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.ac=0),h.T&=-129,H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)}));d=0;break;case 4194164:0>b?d=h.T:(d=I(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,
|
||||
function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Cb.length&&(d=h.Cb.shift(),0<h.Cb.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=I(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=I(this,f.m,a,b,c),0<=d&&(d&64&&!f.Bb&&(setInterval(this.fc.bind(this),25),f.Bb=1),f.m=d&-129));break;default:return e.o|=16,J(e,4)}break;case 4194048:f=this.g;switch(a&
|
||||
-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=I(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Va(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Rb,a,b,c);0<=d&&(f.Rb=d);break;default:return e.o|=16,J(e,4)}break;case 4193728:var g=this.j;
|
||||
f=g.Z&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?Za(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ta,a,b,c);0<=d&&(g.Ta=d);break;case 4193732:d=I(this,g.Ra,a,b,c);0<=d&&(g.Ra=d&65534);break;case 4193734:d=I(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=I(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&65472,d&128&&Ya(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Sa[f];break;case 4193742:d=
|
||||
I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.rc[f];break;case 4193746:d=I(this,g.Sb,a,b,c);0<=d&&(g.Sb=d);break;case 4193748:d=I(this,g.Tb[f],a,b,c);0<=d&&(g.Tb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.sc[f];break;case 4193754:d=I(this,g.Ub[f],a,b,c);0<=d&&(g.Ub[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.rb[f]=g.ka[f];d=g.rb[f];break;case 4193760:d=g.pc[f];break;case 4193762:d=g.qc[f];break;case 4193764:d=g.nc[f];
|
||||
break;case 4193766:d=g.oc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Db,a,b,c);0<=d&&(g.Db=d);break;default:return e.o|=16,J(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.m,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||Xa(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=I(this,f.sa,a,b,c);
|
||||
0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.m=f.m&-49|(f.pa&3)<<4);break;default:return e.o|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=I(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.o|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;d=I(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4);f=a>>2&31;d=e.Ua[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Ua[f]=a&2?d<<16|e.Ua[f]&65535:e.Ua[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.o|=16,J(e,4);break;default:return e.o|=16,J(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===
|
||||
typeof d&&ab(76);return d};var Ua={};Ua[4194302]=[null,null,G.prototype.qb,G.prototype.Fb];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var cb;if(Ha){var db=new ArrayBuffer(2);(new DataView(db)).setUint16(0,256,!0);cb=256===(new Uint16Array(db))[0]}else cb=!1;var eb=cb;
|
||||
function F(a,b,c,d,f){this.id=fb+=2;this.c=null;this.Pa=a;this.sb=b;this.size=c||0;this.type=d||gb;this.i=d==hb;this.controller=null;Ka(this);this.ra=this.cc=!1;if(c)if(f)this.controller=f,this.c=null,ib(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),ib(this,eb?jb:kb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;ib(this,lb)}else ib(this)}
|
||||
var gb=0,hb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],fb=0;
|
||||
F.prototype={constructor:F,parent:null,Bb:function(a){this.Pa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,
|
||||
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Wb.bind(this);b.u=this.reset.bind(this);b.$a=f}D(this)};m.hc=function(){return Va(this.c)};m.uc=function(a){Wa(this.c,a&-1809|Va(this.c)&1808)};
|
||||
function Xa(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.jc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.gb=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;Ya(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
|
||||
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.R[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.jc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.w=e.w&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
|
||||
function Za(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Xb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
|
||||
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Ya(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.pb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
|
||||
m.kc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function $a(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ja=a.Ta=a.Ra=a.va=a.Cb=0}
|
||||
function ab(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.lc,drive:b,blocksize:256,mapped:0,maxblock:c.sb[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.qb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:$a(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
|
||||
255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;Ya(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;a.pb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
|
||||
m.lc=function(a,b,c,d,f){var e=this.j;e.Ta=65536-f&65535;e.Ra=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.qb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.fc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.dc=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
|
||||
function bb(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Ua[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&cb(898)):b|=4186112;return b}
|
||||
function db(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.fc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.ob(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
|
||||
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){db(this,this.pb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.ec?bb(this,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
|
||||
function Ya(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.ec?bb(a,d):d);if(0>h){b.ob(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.ob(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.l=0;this.g.w=128;this.i.l=128;$a(this)};
|
||||
m.Wb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.nb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Fa)return J(e,4);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4);d=0;break;case 4194288:if(70!==e.Fa)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.Fa)return J(e,4);f=a-4194272>>1;0>b?d=e.zb[f]:(d=I(this,e.zb[f],a,b,c),0<=d&&(e.zb[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&
|
||||
1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.m|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);
|
||||
break;case 4194170:e.F=e.F&62337|e.bb<<5|e.mb<<1;0>b?d=e.F:(d=I(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.bb=d>>5&3,e.mb=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.sc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.Zb=0),h.T&=-129,H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)}));d=0;break;case 4194164:0>b?d=h.T:(d=I(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,
|
||||
function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Bb.length&&(d=h.Bb.shift(),0<h.Bb.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=I(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=I(this,f.l,a,b,c),0<=d&&(d&64&&!f.Ab&&(setInterval(this.dc.bind(this),25),f.Ab=1),f.l=d&-129));break;default:return e.m|=16,J(e,4)}break;case 4194048:f=this.g;switch(a&
|
||||
-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=I(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Xa(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Pb,a,b,c);0<=d&&(f.Pb=d);break;default:return e.m|=16,J(e,4)}break;case 4193728:var g=this.j;
|
||||
f=g.Z&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?ab(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ta,a,b,c);0<=d&&(g.Ta=d);break;case 4193732:d=I(this,g.Ra,a,b,c);0<=d&&(g.Ra=d&65534);break;case 4193734:d=I(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=I(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&65472,d&128&&$a(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Sa[f];break;case 4193742:d=
|
||||
I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.qc[f];break;case 4193746:d=I(this,g.Qb,a,b,c);0<=d&&(g.Qb=d);break;case 4193748:d=I(this,g.Rb[f],a,b,c);0<=d&&(g.Rb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.rc[f];break;case 4193754:d=I(this,g.Sb[f],a,b,c);0<=d&&(g.Sb[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.qb[f]=g.ka[f];d=g.qb[f];break;case 4193760:d=g.oc[f];break;case 4193762:d=g.pc[f];break;case 4193764:d=g.mc[f];
|
||||
break;case 4193766:d=g.nc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Cb,a,b,c);0<=d&&(g.Cb=d);break;default:return e.m|=16,J(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Za(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=I(this,f.sa,a,b,c);
|
||||
0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.m|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=I(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.m|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=
|
||||
a>>1&31;d=I(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4);f=a>>2&31;d=e.Ua[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Ua[f]=a&2?d<<16|e.Ua[f]&65535:e.Ua[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,J(e,4);break;default:return e.m|=16,J(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===
|
||||
typeof d&&cb(76);return d};var Ua={};Ua[4194302]=[null,null,G.prototype.hc,G.prototype.uc];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var eb;if(Ha){var fb=new ArrayBuffer(2);(new DataView(fb)).setUint16(0,256,!0);eb=256===(new Uint16Array(fb))[0]}else eb=!1;var gb=eb;
|
||||
function F(a,b,c,d,f){this.id=hb+=2;this.c=null;this.Pa=a;this.rb=b;this.size=c||0;this.type=d||ib;this.i=d==jb;this.controller=null;Ka(this);this.ra=this.ac=!1;if(c)if(f)this.controller=f,this.c=null,kb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),kb(this,gb?lb:mb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;kb(this,nb)}else kb(this)}
|
||||
var ib=0,jb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],hb=0;
|
||||
F.prototype={constructor:F,parent:null,Ab:function(a){this.Pa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,
|
||||
b)<<8},I:function(a,b,c){this.ib(a++,b&255,c++);this.ib(a,b>>8,c)},W:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},xa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Oa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.P(a,
|
||||
b)},ca:function(a,b){return this.ma(a,b)},za:function(a,b,c){this.i||this.Xb(a,b,c)},La:function(a,b,c){this.i||this.Ma(a,b,c)},J:function(a){return this.b[a]},V:function(a){return this.b[a]},ba:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},ya:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ca:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Na:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
|
||||
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&mb(a,nb,!1),(a.v=c.v)&&ob(a,nb,!1))}function ob(a,b,c){c&&a.v||(a.ib=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Xb=b[1]||a.D,a.Ma=b[3]||a.I}function mb(a,b,c){c&&a.A||(a.eb=b[0]||a.s,a.jc=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function ib(a,b){b||(b=pb);mb(a,b,void 0);ob(a,b,void 0)}
|
||||
var pb=[],lb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa],nb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La];if(Ha)var kb=[F.prototype.J,F.prototype.ya,F.prototype.ba,F.prototype.Ca],jb=[F.prototype.V,F.prototype.Aa,F.prototype.na,F.prototype.Na];
|
||||
function qb(a,b){v.call(this,"CPU",a,qb);var c=a.multiplier||1;this.wb=a.cycles||b;this.ma=c;this.vb=Math.round(this.wb/1E4)/100;this.ba=this.vb*this.ma;this.h.ga=!1;this.h.Vb=!1;this.h.Xa=a.autoStart;this.h.Ob=!1;this.h.kb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Nb=this.Eb.bind(this);D(this)}y(qb);var rb=["power","reset"];m=qb.prototype;
|
||||
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<rb.length;b++)(c=this.A[rb[b]])&&this.s.aa(null,rb[b],c);this.xa=null;a=sb(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){tb(this);if(!this.restore(a))return!1;ub(this)}else this.reset();this.X("No debugger detected")}vb(this);return!0};m.ta=function(a){return a?this.save():!0};
|
||||
m.Xa=function(){return this.h.Xa||void 0===this.A.run?(this.Eb(),!0):!1};m.Qb=function(){return 0};function ub(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.kb=0<=a.Oa&&0<a.ya;a.h.kb&&(a.Na=0,a.ca=a.Oa-a.W)}
|
||||
function N(a,b,c,d){if(a.A[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;if(!a.h.ga||a.h.Ob)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.A[b].textContent!=d&&(a.A[b].textContent=d)}}
|
||||
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?O(d):d.Eb())};a=!0;
|
||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){wb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function yb(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.vb);a.Kb=Math.round(1E3/30);a.jb=Math.floor(a.wb/30*c);b||(a.Aa=a.jb);a.xb=0}function zb(a){return a.W+a.I+a.V-a.J}function tb(a){a.M=0;a.Lb=0;a.W=a.I=a.V=a.J=0;ub(a);wb(a,1)}
|
||||
function wb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.vb*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}xb(a,a.I);a.I=0;a.D=ha();a.P=0;yb(a)}function Ab(a){a.V-=a.J;a.J=0}
|
||||
m.Eb=function(){if(Fa(this,!0)){if(!this.h.ga){wb(this);this.s&&this.s.start(this.D,zb(this));this.h.ga=!0;this.h.Vb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.xb>=this.wb&&yb(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Kb&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.kb?1:this.jb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Wb(b);for(var f=this.V-this.J,a=f,e=this.La.length-
|
||||
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;xb(this,0,!0);a=f;if(this.h.kb){var g=!1;this.Na=this.Na+this.Qb()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=zb(this)&&(this.ya=this.za=-1,ub(this),O(this),g=!0);g&&this.X(zb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.jb;15<=++this.Lb&&(this.s&&this.s.Ka(),this.Lb=0);break}}while(this.h.ga)}catch(k){O(this);vb(this);this.s&&this.s.stop(ha(),
|
||||
zb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Nb;this.P=ha();d=this.Kb;this.Ba&&(d=Math.round(d*this.Ba/this.jb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,wb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.xb+=this.Ba;this.P+=d;b(c,d)}else vb(this),this.s&&this.s.stop(ha(),zb(this))};m.Wb=function(){return 0};
|
||||
function O(a){a.h.Za&&(a.h.yb=!0);Ab(a);xb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function vb(a){a.s&&a.s.Ka(void 0)}
|
||||
function Bb(a){this.bc=+a.model||1170;this.ec=a.resetAddr||0;qb.call(this,a,1E6);this.Hb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.l=15;this.a=[0,0,0,0,0,0,0,this.ec];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.nb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.o=0;this.Fa=70;this.mb=this.bb=this.ab=this.j=this.ha=this.Va=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,
|
||||
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.Ua=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Ab=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.$b=!1}y(Bb,qb);m=Bb.prototype;
|
||||
m.reset=function(){this.h.ga&&O(this);Cb(this);tb(this);this.h.error=!1;this.parent.reset.call(this)};function Cb(a){a.la=255;a.o=0;a.i=[];a.nb=0;a.F=a.da=a.Va=a.ha=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Qb=function(){return 0};
|
||||
m.save=function(){var a=new P(this);Q(a,0,[]);Q(a,1,[this.Jb,this.W,this.ma]);for(var b=this.v,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.cc){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}Q(a,2,d);return a.data()};
|
||||
m.restore=function(a){var b=a[1];this.Jb=b[0];this.W=b[1];wb(this,b[3]);a:{b=this.v;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.J){for(var e=0,h=Array(b.J),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
m.aa=function(a,b,c){var d=!1;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.A[b]=c;this.Hb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
|
||||
m.Ka=function(a){if(this.Hb&&(a||!this.h.ga||this.h.Ob)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=this.l&-16|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0);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.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
|
||||
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].uc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Nb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}m.qb=function(){return this.l=this.l&63728|(this.c&32768?8:0)|(this.f&65535?0:4)|(this.b&32768?2:0)|(this.g&65536?1:0)};
|
||||
function Db(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.l)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.l>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.l=b}m.Fb=function(a){Db(this,a&63727|this.l&1808)};function ab(a){console.log("panic("+a+")")}
|
||||
function J(a,b){var c,d,f=0;0>a.na?a.na=a.qb():a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Va=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(Db(a,d&53247|a.na>>2&12288),f&&(a.o|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
|
||||
function Eb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Ua[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&ab(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.o|=32,J(a,4);if(e&1&&!(c&1))return a.o|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
|
||||
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.mb=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.bb<<5|a.mb<<1),J(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.o|=64,J(a,4);return e}
|
||||
function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].jc(d,b):c.b[f++].eb(d,b)|c.b[f&c.M].eb(0,b+1)<<8}else c=b;return c}function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].ib(f,d&255,b),a.b[e&a.M].ib(0,d>>8&255,b+1));return c}return b}
|
||||
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].eb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].ib(b&a.i,c&255,b),c):b}function R(a,b){return M(a,Eb(a,b,2))}function Fb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
|
||||
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return 0<=(c=Eb(a,d|65536,4))?L(a,c,b):c}
|
||||
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
|
||||
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.o|=4,a.a[6]=4,J(a,4);a.o|=8;a.u|=4}return d}
|
||||
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Eb(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
m.Wb=function(a){this.h.complete=!0;this.h.$b=!1;this.h.Vb=!1;this.V=this.J=a;this.Jb&256?(Ab(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.nb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Mb){if(!this.i[a].Mb()){this.i.splice(a,1);e--;continue}this.i[a].Mb=null}this.i[a].ic>b&&(b=this.i[a].ic,e=a)}b>(this.l&224)&&(0>e?J(this,160):(J(this,this.i[e].uc),this.i.splice(e,1)))}this.F&57344||
|
||||
(this.da=0,this.Va=this.a[7]);this.u=this.l&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=L(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,
|
||||
b)},ca:function(a,b){return this.ma(a,b)},za:function(a,b,c){this.i||this.Vb(a,b,c)},La:function(a,b,c){this.i||this.Ma(a,b,c)},J:function(a){return this.b[a]},V:function(a){return this.b[a]},ba:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},ya:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ca:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Na:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
|
||||
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&ob(a,pb,!1),(a.v=c.v)&&qb(a,pb,!1))}function qb(a,b,c){c&&a.v||(a.ib=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Vb=b[1]||a.D,a.Ma=b[3]||a.I}function ob(a,b,c){c&&a.A||(a.eb=b[0]||a.s,a.ic=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function kb(a,b){b||(b=rb);ob(a,b,void 0);qb(a,b,void 0)}
|
||||
var rb=[],nb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa],pb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La];if(Ha)var mb=[F.prototype.J,F.prototype.ya,F.prototype.ba,F.prototype.Ca],lb=[F.prototype.V,F.prototype.Aa,F.prototype.na,F.prototype.Na];
|
||||
function sb(a,b){v.call(this,"CPU",a,sb);var c=a.multiplier||1;this.vb=a.cycles||b;this.ma=c;this.ub=Math.round(this.vb/1E4)/100;this.ba=this.ub*this.ma;this.h.ga=!1;this.h.Tb=!1;this.h.Xa=a.autoStart;this.h.Mb=!1;this.h.kb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Lb=this.Db.bind(this);D(this)}y(sb);var tb=["power","reset"];m=sb.prototype;
|
||||
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<tb.length;b++)(c=this.A[tb[b]])&&this.s.aa(null,tb[b],c);this.xa=null;a=ub(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){vb(this);if(!this.restore(a))return!1;wb(this)}else this.reset();this.X("No debugger detected")}xb(this);return!0};m.ta=function(a){return a?this.save():!0};
|
||||
m.Xa=function(){return this.h.Xa||void 0===this.A.run?(this.Db(),!0):!1};m.Ob=function(){return 0};function wb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.kb=0<=a.Oa&&0<a.ya;a.h.kb&&(a.Na=0,a.ca=a.Oa-a.W)}
|
||||
function N(a,b,c,d){if(a.A[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;if(!a.h.ga||a.h.Mb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.A[b].textContent!=d&&(a.A[b].textContent=d)}}
|
||||
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?O(d):d.Db())};a=!0;
|
||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){yb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function zb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function Ab(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.ub);a.Ib=Math.round(1E3/30);a.jb=Math.floor(a.vb/30*c);b||(a.Aa=a.jb);a.wb=0}function Bb(a){return a.W+a.I+a.V-a.J}function vb(a){a.M=0;a.Jb=0;a.W=a.I=a.V=a.J=0;wb(a);yb(a,1)}
|
||||
function yb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.ub*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}zb(a,a.I);a.I=0;a.D=ha();a.P=0;Ab(a)}function Cb(a){a.V-=a.J;a.J=0}
|
||||
m.Db=function(){if(Fa(this,!0)){if(!this.h.ga){yb(this);this.s&&this.s.start(this.D,Bb(this));this.h.ga=!0;this.h.Tb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.wb>=this.vb&&Ab(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Ib&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.kb?1:this.jb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Ub(b);for(var f=this.V-this.J,a=f,e=this.La.length-
|
||||
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;zb(this,0,!0);a=f;if(this.h.kb){var g=!1;this.Na=this.Na+this.Ob()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=Bb(this)&&(this.ya=this.za=-1,wb(this),O(this),g=!0);g&&this.X(Bb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.jb;15<=++this.Jb&&(this.s&&this.s.Ka(),this.Jb=0);break}}while(this.h.ga)}catch(k){O(this);xb(this);this.s&&this.s.stop(ha(),
|
||||
Bb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Lb;this.P=ha();d=this.Ib;this.Ba&&(d=Math.round(d*this.Ba/this.jb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,yb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.wb+=this.Ba;this.P+=d;b(c,d)}else xb(this),this.s&&this.s.stop(ha(),Bb(this))};m.Ub=function(){return 0};
|
||||
function O(a){a.h.Za&&(a.h.xb=!0);Cb(a);zb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function xb(a){a.s&&a.s.Ka(void 0)}
|
||||
function Db(a){this.$b=+a.model||1170;this.cc=a.resetAddr||0;sb.call(this,a,1E6);this.Fb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.o=15;this.a=[0,0,0,0,0,0,0,this.cc];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.nb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.m=0;this.Fa=70;this.mb=this.bb=this.ab=this.j=this.ha=this.Va=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,
|
||||
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.Ua=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.zb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Yb=!1}y(Db,sb);m=Db.prototype;
|
||||
m.reset=function(){this.h.ga&&O(this);Eb(this);vb(this);this.h.error=!1;this.parent.reset.call(this)};function Eb(a){a.la=255;a.m=0;a.i=[];a.nb=0;a.F=a.da=a.Va=a.ha=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Ob=function(){return 0};
|
||||
m.save=function(){var a=new P(this);Q(a,0,[]);Q(a,1,[this.Hb,this.W,this.ma]);for(var b=this.v,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.ac){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}Q(a,2,d);return a.data()};
|
||||
m.restore=function(a){var b=a[1];this.Hb=b[0];this.W=b[1];yb(this,b[3]);a:{b=this.v;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.J){for(var e=0,h=Array(b.J),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
m.aa=function(a,b,c){var d=!1;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.A[b]=c;this.Fb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
|
||||
m.Ka=function(a){if(this.Fb&&(a||!this.h.ga||this.h.Mb)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[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.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
|
||||
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].tc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Lb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function Va(a){return a.o=a.o&63728|(a.c&32768?8:0)|(a.f&65535?0:4)|(a.b&32768?2:0)|(a.g&65536?1:0)}
|
||||
function Wa(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.o)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.o>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.o=b}function cb(a){console.log("panic("+a+")")}
|
||||
function J(a,b){var c,d,f=0;0>a.na?a.na=Va(a):a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Va=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(Wa(a,d&53247|a.na>>2&12288),f&&(a.m|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
|
||||
function Fb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Ua[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cb(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.m|=32,J(a,4);if(e&1&&!(c&1))return a.m|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
|
||||
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.mb=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.bb<<5|a.mb<<1),J(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.m|=64,J(a,4);return e}
|
||||
function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].ic(d,b):c.b[f++].eb(d,b)|c.b[f&c.M].eb(0,b+1)<<8}else c=b;return c}function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].ib(f,d&255,b),a.b[e&a.M].ib(0,d>>8&255,b+1));return c}return b}
|
||||
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].eb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].ib(b&a.i,c&255,b),c):b}function R(a,b){return M(a,Fb(a,b,2))}function Gb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
|
||||
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 0<=(c=Fb(a,d|65536,4))?L(a,c,b):c}
|
||||
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
|
||||
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return d}
|
||||
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Fb(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
m.Ub=function(a){this.h.complete=!0;this.h.Yb=!1;this.h.Tb=!1;this.V=this.J=a;this.Hb&256?(Cb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.nb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Kb){if(!this.i[a].Kb()){this.i.splice(a,1);e--;continue}this.i[a].Kb=null}this.i[a].gc>b&&(b=this.i[a].gc,e=a)}b>(this.o&224)&&(0>e?J(this,160):(J(this,this.i[e].tc),this.i.splice(e,1)))}this.F&57344||
|
||||
(this.da=0,this.Va=this.a[7]);this.u=this.o&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=L(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,
|
||||
d=W(this,a,6)))&&(a=c&~b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]&=~b,this.b=0));break;case 20480:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&
|
||||
(c^a)));break;case 36864:0<=(b=Y(this,a>>6))&&(a&56?0<=(d=W(this,a,5))&&0<=U(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c&~b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));
|
||||
break;case 53248:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c|b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=V(this,a,0))&&(e=a>>6&7,0<=S(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=
|
||||
|
|
@ -104,50 +104,50 @@ break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(f=V(this,a
|
|||
d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=W(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=
|
||||
a,this.b=a&c));break;case 2880:0<=(c=M(this,d=W(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=W(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=X(this,a))&&(this.c=this.f=c,this.g=this.b=0);break;case 3072:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|
|
||||
c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=
|
||||
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.l&61440)&&(f&=65535),this.j=this.l>>12&3,0<=(b=R(this,f))&&(this.j=this.l>>14&3,0<=S(this,b)&&(this.c=
|
||||
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]:this.Y[this.l>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Fb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.l>>12&3,0<=(d=Eb(this,f,4))&&(this.j=this.l>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]=c:this.Y[this.l>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
|
||||
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.j=this.o>>12&3,0<=(b=R(this,f))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=
|
||||
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.o>>12&3,0<=(d=Fb(this,f,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
|
||||
15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=W(this,a,5))&&0<=U(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=T(this,d=W(this,a,7)))&&(a=~c,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=(c=T(this,d=W(this,a,7)))&&(a=c+1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=T(this,d=W(this,a,7)))&&(a=c-1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=
|
||||
((a^c)&c)<<8));break;case 35584:0<=(c=T(this,d=W(this,a,7)))&&(a=-c,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=T(this,d=W(this,a,7)))&&(a=c+(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=T(this,d=W(this,a,7)))&&(a=c-(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=Y(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=T(this,d=W(this,
|
||||
a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=T(this,d=W(this,a,7)))&&(a=c&128|c>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&
|
||||
56?0<=(f=V(this,a,0))&&(this.j=this.l>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.l>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.l>>2&12288)===(this.l&12288)?this.a[e]:this.Y[this.l>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Fb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.l>>12&3,0<=(d=Eb(this,f|65536,4))&&(this.j=this.l>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.l>>2&12288)===(this.l&
|
||||
12288)?this.a[e]=c:this.Y[this.l>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Fb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.l&49152||(this.l=this.l&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.l?(this.o|=128,J(this,4)):(this.Ca=3,
|
||||
Ab(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Ab(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.l&49152||(Cb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.l&49152&&(b=b&63519|this.l&63712),this.a[7]=f,Db(this,b),this.u&=-17,2===a&&(this.u|=this.l&
|
||||
16)));break;default:J(this,8)}}}}}}this.u&&(this.u&2?J(this,168):this.u&4?J(this,4):this.u&16&&J(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bb(d);B(d,c)}});
|
||||
function Gb(a){v.call(this,"ROM",a,Gb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Hb(c,a,b,e)})}}y(Gb);Gb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Ib(this)};Gb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
|
||||
Gb.prototype.ta=function(){return!0};
|
||||
function Hb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Gb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){q(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]);Ib(a)}}
|
||||
function Ib(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:hb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Xb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
|
||||
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Gb(d);B(d,c)}});function Jb(a){v.call(this,"RAM",a,Jb);this.g=a.addr;this.f=a.size;this.b=!1}y(Jb);m=Jb.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Jb(d);B(d,c)}});function Kb(a){v.call(this,"Keyboard",a,Kb);D(this)}y(Kb);Kb.prototype.aa=function(){return!1};Kb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=null};
|
||||
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});
|
||||
function Lb(a,b,c){v.call(this,"Computer",a,Lb);this.h.L=!1;Mb(this,b);this.J=sb(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Nb;this.D=null;this.s=this.V=!1;this.url=sb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Ob(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Gb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.zb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.zb=
|
||||
this.i.zb;this.X("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.X("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.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=sb(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Nb),this.b&&(this.I=
|
||||
new P(this,"1.30.0"),Pb(this.I)?b=null:delete this.I);!b&&this.b&&(b=Qb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Rb(this,this.cb)}else q("Unable to find CPU component")}y(Lb);var Nb=0;
|
||||
function Mb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function sb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Rb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Rb(a,b,c)});return}}b.call(a,c)}
|
||||
function Sb(a,b){var c=new P(a,"1.30.0","validate");if(Pb(c)&&Tb(c)){var d=Ub(c,"timestamp"),f=b?Ub(b,"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())}}m=Lb.prototype;
|
||||
m.cb=function(a){void 0===a&&(a=this.b||(this.D?1:Nb));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Nb){if(Pb(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Pb(this.j)&&(Vb(this,d),a=2,Wb(this.j));Q(this.j,"timestamp",ia());Xb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Tb(d)){var e=Ub(d,"code"),h=Ub(d,"data");e&&("ok"==e?Pb(d,h):("error"==e&&
|
||||
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Wb(d),Pb(d)?(c=Tb(d),f=!0):c=!1))}f&&Sb(this,c?d:null)}else 2==a&&d.clear()}else Sb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Yb(this,h,d,b,c));b=[d,a,c];-1!=a?Rb(this,this.Pb,b):this.Pb(b)}};
|
||||
function Yb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Ub(c,b.id))||(e=Ub(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Nb,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Ib)for(a=b.Ib.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
m.Pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Yb(this,this.c,b,c,a),this.c.Xa());this.P&&(Vb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||
function Vb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function Zb(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
|
||||
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&$b(a,a.f,e.toString()),Xb(h)&&Xb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
56?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(d=Fb(this,f|65536,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&
|
||||
12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Gb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.o?(this.m|=128,J(this,4)):(this.Ca=3,
|
||||
Cb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Cb(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.o&49152||(Eb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,Wa(this,b),this.u&=-17,2===a&&(this.u|=this.o&
|
||||
16)));break;default:J(this,8)}}}}}}this.u&&(this.u&2?J(this,168):this.u&4?J(this,4):this.u&16&&J(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Db(d);B(d,c)}});
|
||||
function Hb(a){v.call(this,"ROM",a,Hb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Ib(c,a,b,e)})}}y(Hb);Hb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Jb(this)};Hb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
|
||||
Hb.prototype.ta=function(){return!0};
|
||||
function Ib(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Eb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){q(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]);Jb(a)}}
|
||||
function Jb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:jb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Vb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
|
||||
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hb(d);B(d,c)}});function Kb(a){v.call(this,"RAM",a,Kb);this.g=a.addr;this.f=a.size;this.b=!1}y(Kb);m=Kb.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});function Lb(a){v.call(this,"Keyboard",a,Lb);D(this)}y(Lb);Lb.prototype.aa=function(){return!1};Lb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=null};
|
||||
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lb(d);B(d,c)}});
|
||||
function Mb(a,b,c){v.call(this,"Computer",a,Mb);this.h.L=!1;Nb(this,b);this.J=ub(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Ob;this.D=null;this.s=this.V=!1;this.url=ub(this,"url")||"";(Math.random()+.1).toString(36);this.f=Pb(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Eb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.yb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.yb=
|
||||
this.i.yb;this.X("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.X("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.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=ub(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Ob),this.b&&(this.I=
|
||||
new P(this,"1.30.0"),Qb(this.I)?b=null:delete this.I);!b&&this.b&&(b=Rb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Sb(this,this.cb)}else q("Unable to find CPU component")}y(Mb);var Ob=0;
|
||||
function Nb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function ub(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Sb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Sb(a,b,c)});return}}b.call(a,c)}
|
||||
function Tb(a,b){var c=new P(a,"1.30.0","validate");if(Qb(c)&&Ub(c)){var d=Vb(c,"timestamp"),f=b?Vb(b,"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())}}m=Mb.prototype;
|
||||
m.cb=function(a){void 0===a&&(a=this.b||(this.D?1:Ob));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Ob){if(Qb(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Qb(this.j)&&(Wb(this,d),a=2,Xb(this.j));Q(this.j,"timestamp",ia());Yb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Ub(d)){var e=Vb(d,"code"),h=Vb(d,"data");e&&("ok"==e?Qb(d,h):("error"==e&&
|
||||
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Xb(d),Qb(d)?(c=Ub(d),f=!0):c=!1))}f&&Tb(this,c?d:null)}else 2==a&&d.clear()}else Tb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Zb(this,h,d,b,c));b=[d,a,c];-1!=a?Sb(this,this.Nb,b):this.Nb(b)}};
|
||||
function Zb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Vb(c,b.id))||(e=Vb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ob,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Gb)for(a=b.Gb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
m.Nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Zb(this,this.c,b,c,a),this.c.Xa());this.P&&(Wb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||
function Wb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function $b(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
|
||||
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&ac(a,a.f,e.toString()),Yb(h)&&Yb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
m.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?Zb(d,!1,!0):Rb(d,d.cb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Zb(d,a,!0);!a&&d.M?window&&window.location.reload():d.cb(Nb)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
|
||||
c;c.onclick=function(){var a=Ob(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=Zb(d,b);b?$b(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function Ob(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=ac(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||
function ac(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Qb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+bc(a,"1.30.0"));return b}
|
||||
function $b(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),na("user",""),a.f=null)}}
|
||||
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Lb(h,d,!0);B(h,e);h.J&&Rb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.cb(-1)}});
|
||||
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&Zb(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=bc(a,b,c);this.H=a.H;Wb(this,a.dc)}function bc(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,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){Wb(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 Wb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Xb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Tb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Pb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Ub(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var cc=0;
|
||||
function dc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):ec(g,a,b,c,d,f,e)})}
|
||||
function ec(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?fc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function fc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);fc(a,b,c)}})}else c(a,null)}
|
||||
function gc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--cc||ua(!0));k=!1}var h,g,k=!0;cc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?dc(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--cc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--cc||ua(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?dc(b,a,d,!0,f,l):ec(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return gc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?$b(d,!1,!0):Sb(d,d.cb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$b(d,a,!0);!a&&d.M?window&&window.location.reload():d.cb(Ob)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
|
||||
c;c.onclick=function(){var a=Pb(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=$b(d,b);b?ac(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function Pb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=bc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||
function bc(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Rb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+cc(a,"1.30.0"));return b}
|
||||
function ac(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),na("user",""),a.f=null)}}
|
||||
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Mb(h,d,!0);B(h,e);h.J&&Sb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.cb(-1)}});
|
||||
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&$b(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=cc(a,b,c);this.H=a.H;Xb(this,a.bc)}function cc(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,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){Xb(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 Xb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Yb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ub(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Qb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Vb(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var dc=0;
|
||||
function ec(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):fc(g,a,b,c,d,f,e)})}
|
||||
function fc(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?gc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function gc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);gc(a,b,c)}})}else c(a,null)}
|
||||
function hc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--dc||ua(!0));k=!1}var h,g,k=!0;dc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?ec(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--dc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--dc||ua(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?ec(b,a,d,!0,f,l):fc(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return hc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue