Resolved a problem with the original timer implementation, where a call to setTimer() made in the middle of a CPU burst would not properly account for cycles already executed as part of the current burst
This commit is contained in:
parent
58d358b51e
commit
8bb978d7a9
7 changed files with 423 additions and 406 deletions
|
|
@ -973,7 +973,13 @@ CPU8080.prototype.setTimer = function(iTimer, ms, fReset)
|
|||
if (iTimer >= 0 && iTimer < this.aTimers.length) {
|
||||
if (fReset || this.aTimers[iTimer][0] < 0) {
|
||||
nCycles = this.getMSCycles(ms);
|
||||
this.aTimers[iTimer][0] = nCycles;
|
||||
/*
|
||||
* We must now confront the following problem: if the CPU is currently executing a burst of cycles,
|
||||
* the number of cycles it has executed in that burst so far must NOT be charged against the cycle
|
||||
* timeout we're about to set. The simplest way to resolve that is to immediately call endBurst()
|
||||
* and bias the above cycle timeout by the number of cycles that the burst executed.
|
||||
*/
|
||||
this.aTimers[iTimer][0] = nCycles + this.endBurst();
|
||||
}
|
||||
}
|
||||
return nCycles;
|
||||
|
|
@ -1036,14 +1042,18 @@ CPU8080.prototype.updateTimers = function(nCycles)
|
|||
};
|
||||
|
||||
/**
|
||||
* endBurst()
|
||||
* endBurst(fReset)
|
||||
*
|
||||
* @this {CPU8080}
|
||||
* @param {boolean} [fReset]
|
||||
* @return {number} (number of cycles executed in the most recent burst)
|
||||
*/
|
||||
CPU8080.prototype.endBurst = function()
|
||||
CPU8080.prototype.endBurst = function(fReset)
|
||||
{
|
||||
this.nBurstCycles -= this.nStepCycles;
|
||||
var nCycles = this.nBurstCycles -= this.nStepCycles;
|
||||
this.nStepCycles = 0;
|
||||
if (fReset) this.nBurstCycles = 0;
|
||||
return nCycles;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1071,35 +1081,34 @@ CPU8080.prototype.runCPU = function(fUpdateFocus)
|
|||
try {
|
||||
do {
|
||||
/*
|
||||
* nCyclesPerBurst is how many cycles we WANT to run on each iteration of stepCPU(), and may
|
||||
* be as HIGH as nCyclesPerYield, but it may be significantly less. getBurstCycles() will adjust
|
||||
* nCyclesPerBurst downward if any CPU timers need to fire during the next burst.
|
||||
* nCycles is how many cycles we WANT to run on each iteration of stepCPU(), and may be as
|
||||
* HIGH as nCyclesPerYield, but it may be significantly less. getBurstCycles() will adjust
|
||||
* nCycles downward if any CPU timers need to fire during the next burst.
|
||||
*/
|
||||
var nCyclesPerBurst = this.getBurstCycles(this.flags.checksum? 1 : this.nCyclesPerYield);
|
||||
var nCycles = this.getBurstCycles(this.flags.checksum? 1 : this.nCyclesPerYield);
|
||||
|
||||
/*
|
||||
* Execute the burst.
|
||||
*/
|
||||
this.stepCPU(nCyclesPerBurst);
|
||||
this.stepCPU(nCycles);
|
||||
|
||||
/*
|
||||
* nCycles is how many cycles stepCPU() actually ran (nBurstCycles less any remaining nStepCycles).
|
||||
* Terminate the burst, returning the number of cycles that stepCPU() actually ran.
|
||||
*/
|
||||
var nCycles = this.nBurstCycles - this.nStepCycles;
|
||||
|
||||
/*
|
||||
* Update any/all timers, firing those whose cycle countdowns have reached (or dropped below) zero.
|
||||
*/
|
||||
this.updateTimers(nCycles);
|
||||
nCycles = this.endBurst(true);
|
||||
|
||||
/*
|
||||
* Add nCycles to nCyclesThisRun, as well as nRunCycles (the cycle count since the CPU first started).
|
||||
*/
|
||||
this.nCyclesThisRun += nCycles;
|
||||
this.nRunCycles += nCycles;
|
||||
this.addCycles(0, true);
|
||||
this.updateChecksum(nCycles);
|
||||
|
||||
/*
|
||||
* Update any/all timers, firing those whose cycle countdowns have reached (or dropped below) zero.
|
||||
*/
|
||||
this.updateTimers(nCycles);
|
||||
|
||||
this.nCyclesNextYield -= nCycles;
|
||||
if (this.nCyclesNextYield <= 0) {
|
||||
this.nCyclesNextYield += this.nCyclesPerYield;
|
||||
|
|
|
|||
|
|
@ -936,7 +936,13 @@ CPUPDP11.prototype.setTimer = function(iTimer, ms, fReset)
|
|||
if (iTimer >= 0 && iTimer < this.aTimers.length) {
|
||||
if (fReset || this.aTimers[iTimer][0] < 0) {
|
||||
nCycles = this.getMSCycles(ms);
|
||||
this.aTimers[iTimer][0] = nCycles;
|
||||
/*
|
||||
* We must now confront the following problem: if the CPU is currently executing a burst of cycles,
|
||||
* the number of cycles it has executed in that burst so far must NOT be charged against the cycle
|
||||
* timeout we're about to set. The simplest way to resolve that is to immediately call endBurst()
|
||||
* and bias the above cycle timeout by the number of cycles that the burst executed.
|
||||
*/
|
||||
this.aTimers[iTimer][0] = nCycles + this.endBurst();
|
||||
}
|
||||
}
|
||||
return nCycles;
|
||||
|
|
@ -999,14 +1005,18 @@ CPUPDP11.prototype.updateTimers = function(nCycles)
|
|||
};
|
||||
|
||||
/**
|
||||
* endBurst()
|
||||
* endBurst(fReset)
|
||||
*
|
||||
* @this {CPUPDP11}
|
||||
* @param {boolean} [fReset]
|
||||
* @return {number} (number of cycles executed in the most recent burst)
|
||||
*/
|
||||
CPUPDP11.prototype.endBurst = function()
|
||||
CPUPDP11.prototype.endBurst = function(fReset)
|
||||
{
|
||||
this.nBurstCycles -= this.nStepCycles;
|
||||
var nCycles = this.nBurstCycles -= this.nStepCycles;
|
||||
this.nStepCycles = 0;
|
||||
if (fReset) this.nBurstCycles = 0;
|
||||
return nCycles;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1027,17 +1037,17 @@ CPUPDP11.prototype.runCPU = function()
|
|||
try {
|
||||
do {
|
||||
/*
|
||||
* nCyclesPerBurst is how many cycles we WANT to run on each iteration of stepCPU(), and may
|
||||
* be as HIGH as nCyclesPerYield, but it may be significantly less. getBurstCycles() will adjust
|
||||
* nCyclesPerBurst downward if any CPU timers need to fire during the next burst.
|
||||
* nCycles is how many cycles we WANT to run on each iteration of stepCPU(), and may be as
|
||||
* HIGH as nCyclesPerYield, but it may be significantly less. getBurstCycles() will adjust
|
||||
* nCycles downward if any CPU timers need to fire during the next burst.
|
||||
*/
|
||||
var nCyclesPerBurst = this.getBurstCycles(this.flags.checksum? 1 : this.nCyclesPerYield);
|
||||
var nCycles = this.getBurstCycles(this.flags.checksum? 1 : this.nCyclesPerYield);
|
||||
|
||||
/*
|
||||
* Execute the burst.
|
||||
*/
|
||||
try {
|
||||
this.stepCPU(nCyclesPerBurst);
|
||||
this.stepCPU(nCycles);
|
||||
}
|
||||
catch(exception) {
|
||||
/*
|
||||
|
|
@ -1049,25 +1059,22 @@ CPUPDP11.prototype.runCPU = function()
|
|||
}
|
||||
|
||||
/*
|
||||
* nCycles is how many cycles stepCPU() actually ran (nBurstCycles less any remaining nStepCycles);
|
||||
* that calculation matches the return value from stepCPU(), but since it may have thrown an exception,
|
||||
* we can't rely on it.
|
||||
* Terminate the burst, returning the number of cycles that stepCPU() actually ran.
|
||||
*/
|
||||
var nCycles = this.nBurstCycles - this.nStepCycles;
|
||||
|
||||
/*
|
||||
* Update any/all timers, firing those whose cycle countdowns have reached (or dropped below) zero.
|
||||
*/
|
||||
this.updateTimers(nCycles);
|
||||
nCycles = this.endBurst(true);
|
||||
|
||||
/*
|
||||
* Add nCycles to nCyclesThisRun, as well as nRunCycles (the cycle count since the CPU first started).
|
||||
*/
|
||||
this.nCyclesThisRun += nCycles;
|
||||
this.nRunCycles += nCycles;
|
||||
this.addCycles(0, true);
|
||||
this.updateChecksum(nCycles);
|
||||
|
||||
/*
|
||||
* Update any/all timers, firing those whose cycle countdowns have reached (or dropped below) zero.
|
||||
*/
|
||||
this.updateTimers(nCycles);
|
||||
|
||||
this.nCyclesNextYield -= nCycles;
|
||||
if (this.nCyclesNextYield <= 0) {
|
||||
this.nCyclesNextYield += this.nCyclesPerYield;
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ SerialPortPDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
|
|||
|
||||
this.triggerReceiveInterrupt = this.cpu.addTrigger(PDP11.DL11.RVEC, PDP11.DL11.PRI);
|
||||
|
||||
this.timerReceiveInterrupt = this.cpu.addTimer(function() {
|
||||
this.timerReceiveInterrupt = this.cpu.addTimer(function readyReceiver() {
|
||||
if (!(serial.rcsr & PDP11.DL11.RCSR.RD)) {
|
||||
if (serial.abReceive.length) {
|
||||
serial.rbuf = serial.abReceive.shift();
|
||||
|
|
@ -276,7 +276,7 @@ SerialPortPDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
|
|||
|
||||
this.triggerTransmitInterrupt = this.cpu.addTrigger(PDP11.DL11.XVEC, PDP11.DL11.PRI);
|
||||
|
||||
this.timerTransmitInterrupt = this.cpu.addTimer(function() {
|
||||
this.timerTransmitInterrupt = this.cpu.addTimer(function readyTransmitter() {
|
||||
serial.xcsr |= PDP11.DL11.XCSR.READY;
|
||||
if (serial.xcsr & PDP11.DL11.XCSR.TIE) {
|
||||
serial.cpu.setTrigger(serial.triggerTransmitInterrupt);
|
||||
|
|
|
|||
|
|
@ -682,14 +682,14 @@ function Aa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}re
|
|||
function Ea(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ia={init:[],show:[],exit:[]},Ja=!1,Ka=!1,La=!0;function Ma(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Na(a){Ia.init.push(a)}
|
||||
function Oa(a){if(La)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Pa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Qa(a){!La&&a?(La=!0,Ja&&Sa("init"),Ka&&Sa("show")):La=a}function Sa(a){Ia[a]&&Oa(Ia[a])}Ma("onload",function(){Ja=!0;Oa(Ia.init)});Ma("onpageshow",function(){Ka=!0;Oa(Ia.show)});Ma(Ca("Opera")||Ca("iOS")?"onunload":"onbeforeunload",function(){Oa(Ia.exit)});
|
||||
function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ec=b.comment;this.Ld=b;b=this.id.indexOf(".");0>b?this.cb=this.id:(this.Bb=this.id.substr(0,b),this.cb=this.id.substr(b+1));this[a]=c;this.C={ready:!1,sb:!1,Kb:!1,xa:!1,error:!1};this.Eb=null;this.C.error=!1;this.N={};this.H=null;this.ta=d||0;Ta.push(this)}var Ua=void 0,Va={};
|
||||
if(window){Ua||(Ua=window.location.search.substr(1));for(var Xa,Ya=/\+/g,Za=/([^&=]+)=?([^&]*)/g;Xa=Za.exec(Ua);)Va[decodeURIComponent(Xa[1].replace(Ya," "))]=decodeURIComponent(Xa[2].replace(Ya," "))}function $a(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}
|
||||
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Ya=/\+/g,Za=/([^&=]+)=?([^&]*)/g;Wa=Za.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Ya," "))]=decodeURIComponent(Wa[2].replace(Ya," "))}function $a(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 A(a,b){b||(b=z);a.prototype=$a(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var ab=window.PCjs.Machines||(window.PCjs.Machines={}),Ta=window.PCjs.Components||(window.PCjs.Components=[])}else ab={},Ta=[];function bb(a,b,c){ab[a]&&b&&(ab[a][b]=c)}function Pa(a,b,c){b||w((c?c+": ":"")+a)}
|
||||
function cb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ta.length;b++){var d=Ta[b];a&&d.id.indexOf(a)||c.push(d)}return c}function db(a){if(void 0!==a){var b;for(b=0;b<Ta.length;b++)if(Ta[b].id===a)return Ta[b]}return null}function eb(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<Ta.length;d++)if(c)c==Ta[d]&&(c=null);else if(!(a!=Ta[d].type||b&&Ta[d].id.indexOf(b)))return Ta[d]}return null}
|
||||
function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function fb(a,b){b=D(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pc8080-binding":(g=B(f))&&g.binding&&a.pa(g.type,g.binding,f,g.value),k=h.length}}}}
|
||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.ka=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ka:function(a,b,c){Pa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,g){a.H&&(!0===g?g=0:null==g&&(g=a.ta),gb(a.H,a,b,c,d,e,f,g))}function hb(a,b){a.H&&ib(a,0)&&a.H.message(b,void 0)}function ib(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Id)}return!1}
|
||||
function jb(a,b){if(a.C.Kb)return a.C.sb=!1,a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.sb=b;return a.C.sb}function kb(a,b){a.C.sb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.sb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function nb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function ob(a,b){a.C.error=!0;a.ka(b)}
|
||||
function jb(a,b){if(a.C.Kb)return a.C.sb=!1,a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.sb=b;return a.C.sb}function kb(a,b){a.C.sb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.sb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function lb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function ob(a,b){a.C.error=!0;a.ka(b)}
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
var pb="undefined"!==typeof ArrayBuffer,qb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||
|
|
@ -711,15 +711,15 @@ null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):t
|
|||
function wb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?--a.j||(a.lb=a.N?a.w:a.zb,a.Cc=a.N?a.G:a.Tb):--a.B||(a.jb=a.wb,a.Ac=a.Pb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[1]||a.w,a.Cc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.Tb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.K,a.Ac=b[2]||a.L);if(c||void 0===c)a.wb=b[0]||a.K,a.Pb=b[2]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)}
|
||||
var kc=[],ec=[H.prototype.Y,H.prototype.la,H.prototype.fa,H.prototype.za],gc=[H.prototype.O,H.prototype.ja,H.prototype.ca,H.prototype.ma];if(pb)var dc=[H.prototype.M,H.prototype.ha,H.prototype.ba,H.prototype.ra],cc=[H.prototype.P,H.prototype.cb,H.prototype.ea,H.prototype.wa];
|
||||
function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.rb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}A(lc);var mc=["power","reset"];l=lc.prototype;
|
||||
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.pa(null,mc[b],c);this.I=tb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.rb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.pa(null,mc[b],c);this.I=tb(a,"ChipSet");a=zc(a,"autoStart");null!=a&&(this.C.rb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.Ea=function(a,b){if(!b){if(a&&this.restore){Ac(this);if(!this.restore(a))return!1;Bc(this)}else this.reset();this.H?(a=this.H,a.g("Type ? for help with PC8080 Debugger commands"),a.Ja(),a.za&&(b=a.za,a.za=null,Cc(a,b))):this.g("No debugger detected")}Dc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.rb=function(){return this.C.rb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
|
||||
function Bc(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function Ec(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,Bc(a),a.qa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}}
|
||||
l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,h=cb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.C.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.C.xa);c++);c==h.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.qa():d.bb())};
|
||||
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.J&&(c=a.J/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ja=0}function Fc(a){return a.M+a.G+a.L-a.b}function Ac(a){a.J=0;a.za=0;a.M=a.G=a.L=a.b=0;Bc(a);Gc(a,1)}
|
||||
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.J/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=qa();a.K=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){0<=b&&b<a.w.length&&0>a.w[b][0]&&(c*=a.Y*a.Ra/1E3,a.w[b][0]=c)}function Lc(a){a.L-=a.b;a.b=0}
|
||||
l.bb=function(a){if(jb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ja>=this.Y&&Ic(this,!0);this.ba=0;this.ea=qa();this.K&&(a=this.ea-this.K,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
|
||||
f;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);Ec(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();Dc(this);this.B&&this.B.stop(qa(),Fc(this));jb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.K-this.ea;if(f=this.K-this.D)this.J=Math.round(this.G/
|
||||
(10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.J<this.ab)-1E3>e&&(this.D-=e),e=0;this.ja+=this.ba;this.K+=e;c(d,e)}else Dc(this),this.B&&this.B.stop(qa(),Fc(this))};l.kb=function(){return 0};l.qa=function(a){kb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Dc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
|
||||
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.J/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=qa();a.K=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){0<=b&&b<a.w.length&&0>a.w[b][0]&&(c*=a.Y*a.Ra/1E3,a.w[b][0]=c+Lc(a))}function Lc(a,b){var c=a.L-=a.b;a.b=0;b&&(a.L=0);return c}
|
||||
l.bb=function(a){if(jb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ja>=this.Y&&Ic(this,!0);this.ba=0;this.ea=qa();this.K&&(a=this.ea-this.K,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c,d=this.C.fb?1:this.fa,e=this.w.length-1;0<=e;e--){var f=this.w[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.kb(c);c=Lc(this,!0);this.ba+=
|
||||
c;this.G+=c;Ec(this,c);a=c;for(var g=this.w.length-1;0<=g;g--){var h=this.w[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.P-=c;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();Dc(this);this.B&&this.B.stop(qa(),Fc(this));jb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=qa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e-=this.K-this.ea;if(f=this.K-this.D)this.J=Math.round(this.G/(10*f))/
|
||||
100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.J<this.ab)-1E3>e&&(this.D-=e),e=0;this.ja+=this.ba;this.K+=e;c(d,e)}else Dc(this),this.B&&this.B.stop(qa(),Fc(this))};l.kb=function(){return 0};l.qa=function(a){kb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function Dc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
|
||||
function Nc(a){this.Wd=+a.model||8080;lc.call(this,a,1E6);this.la=Oc;Ac(this);this.C.complete=this.C.Kd=!1;this.ma=0;this.ca=[];this.ra=0;Pc(this)}A(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.qa();Pc(this);Ac(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.oa=0;I(a,a.ra);Rc(a,0);a.j=0}function Sc(a,b){a.ra=b;I(a,b)}
|
||||
l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.oa+this.R+Tc(this)|0};l.save=function(){var a=new J(this);a.set(0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.oa,this.R,Tc(this)]);a.set(1,[this.j,this.M,this.Ra]);a.set(2,Eb(this.u));return a.data()};
|
||||
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.oa=b[7]&65535;I(this,b[8]);Rc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Gc(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.M){for(var f=0,g=Array(b.M),h=0;h<e.length-1;)for(var k=e[h++],n=e[h++];k--;)g[f++]=n;e=g}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
|
|
@ -773,7 +773,7 @@ function Td(a){z.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;t
|
|||
Td.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,n=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=pa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Vd:d,Qa:e,tc:f})}delete this.Qa}return!0};Td.prototype.Ia=function(){return!0};
|
||||
function Ud(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{bb(a.Bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.B=f;else if(g)for(a.B=Array(4*g.length),d=c=0;c<g.length;c++)a.B[d++]=g[c]&255,a.B[d++]=g[c]>>8&255,a.B[d++]=g[c]>>16&255,a.B[d++]=g[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(h){a.ka("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.B=Array(b.length),e=0;e<b.length;e++)a.B[e]=aa(b[e],16);Wd(a)}}
|
||||
function Wd(a){if(!nb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)ob(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.j,h=[],k=d.D>>>f.ia;0<g&&k<f.X.length;)h.push(f.X[k++]),g-=f.Ha;f=d.u;d=d.j;g=0;for(e>>>=f.ia;0<d&&e<f.X.length;){k=h[g++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
|
||||
function Wd(a){if(!lb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)ob(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.j,h=[],k=d.D>>>f.ia;0<g&&k<f.X.length;)h.push(f.X[k++]),g-=f.Ha;f=d.u;d=d.j;g=0;for(e>>>=f.ia;0<d&&e<f.X.length;){k=h[g++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
|
||||
function Xd(a,b){if(xb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Db(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Db(a.u,Vd[c],118);Qc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,d=a.b,e=a.H;if(5==b)switch(c=!0,d.T){case 2:Yd(a,String.fromCharCode(d.V));break;case 9:for(var k=Wc(d),n="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;n+=String.fromCharCode(q)}Yd(a,n);break;default:c=!1}c?Md.call(d):e&&(a.g("\nCP/M vector "+u(b)),I(d,b),e.qa());b=!0}else b=!1;
|
||||
return b}}(a));Sc(a.b,b)}return!0}return!1}function Yd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Na(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Td(d);fb(d,c)}});function Zd(a){z.call(this,"RAM",a,Zd);this.w=a.addr;this.j=a.size;this.B=!1}A(Zd);l=Zd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;F(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.B&&this.j&&xb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Na(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Zd(d);fb(d,c)}});function $d(a){z.call(this,"Keyboard",a,$d,65536);(a=a.model)&&!ae[a]&&Pa("Unrecognized Keyboard8080 model: "+a);this.u=ae[a]||{};this.reset();F(this)}A($d);var be={};be[m.Ub]=37;be[m.Xb]=39;be[m.Zb]=32;
|
||||
|
|
@ -809,7 +809,7 @@ function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;bre
|
|||
var re=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],se=[!1,0,0,133,142,39,238],qe="buffer";l=pe.prototype;
|
||||
l.pa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),te(e,b);return!0},c.onkeypress=function(a){a=a||window.event;te(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Qb(d);return!0},
|
||||
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ra=Jc(this.b,function(){e.Qb()});this.ma=Jc(this.b,function(){e.Da|=5});this.I=tb(a,"ChipSet");Pb(b,this,ue,this.ha);Tb(b,this,ve,this.ha);F(this)};
|
||||
l.zc=function(){if(!this.J){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=na(b[0]);if(c!=this.cb)return;b=na(b[1]);if(this.J=db(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.zc=function(){if(!this.J){var a=zc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=na(b[0]);if(c!=this.cb)return;b=na(b[1]);if(this.J=db(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new J(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.K;c[b++]=this.P;c[b]=this.O;a.set(0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;b||(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.K=b[c++];a.P=b[c++];a.O=b[c];return!0}
|
||||
function xe(a,b){var c=a.O&b;b&15||(c>>=4);b=re[c];c=((a.K&12)>>2)+6;a.K&16&&c++;c+=((a.K&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function te(a,b){hb(a,"receiveByte("+ca(b)+"), status="+ca(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.la),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.ra,xe(this,15)));return!0};
|
||||
l.Od=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Nd=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c};
|
||||
|
|
@ -833,7 +833,7 @@ Pe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Qe=[[45],[42,2067,32],[71,
|
|||
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
|
||||
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
|
||||
18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];l=He.prototype;
|
||||
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Le(this,a);this.Fa=Qe;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Re(Se(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=zb[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.F)+" "+u(p.yb)+" "+
|
||||
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=zc(a,"messages"))&&Le(this,a);this.Fa=Qe;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],e=a=0,k=b.length;if(c){a=Re(Se(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.g("..."):(c=p.type,n=zb[c],p&&d.g(t(p.id)+" %"+t(e<<d.u.ia)+" %%"+t(p.F)+" "+u(p.yb)+" "+
|
||||
u(p.size)+" "+n),c!=$b&&(c=-1),n=0);a+=d.u.Ha;e++}}});F(this)};
|
||||
l.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Cc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ea(c,function(){if(d.ha){var a=d.ha.value;
|
||||
d.ha.value="";Cc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ea(c,function(a){var b=!1;kb(d,!0)||(jb(d,!0),b=d.kb(a?1:0),jb(d,!1));return b}),!0}return!1};l.xb=function(){this.ha&&this.ha.focus()};function Re(a){a=a&&a.F;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Re(a);-1!==d&&(c=Ab(this.u,d),b&&sf(a,b));return c};l.$a=function(a,b){var c=65535,d=Re(a);-1!==d&&(c=Bb(this.u,d),b&&sf(a,b));return c};
|
||||
|
|
@ -847,7 +847,7 @@ function yf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1
|
|||
function gb(a,b,c,d,e,f,g,h){h|=256;null!=f&&(a.ta&h)!=h||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+ca(d):"")+")"+(null!=g?": "+ca(g):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Ke(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=Y();a.fa=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.J=[]}l.bb=function(a){if(!zf(this))return!1;this.b.bb(a);return!0};
|
||||
l.kb=function(a,b,c){if(!zf(this))return!1;this.K=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.K+=d,Hc(this.b,d,!0),Ec(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.K=0,ob(this.b,e.stack||e.message))}!1!==c&&Dc(this.b);this.Ja(b||!1);return 0<this.K};l.qa=function(a){this.b&&this.b.qa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=Y(this.b.R);a&&1!=this.Y?Af(this):Bf(this)};
|
||||
function zf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!kb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ke(this);this.ba=this.ma=0;this.la=null;this.K=0;this.M=Y(this.b.R);this.C.Aa=!1;Cf(this);a||this.Ja()};
|
||||
function zf(a){var b;if(b=a.b&&lb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!kb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ke(this);this.ba=this.ma=0;this.la=null;this.K=0;this.M=Y(this.b.R);this.C.Aa=!1;Cf(this);a||this.Ja()};
|
||||
l.save=function(){var a=new J(this);a.set(0,tf(this.M));a.set(1,tf(this.ca));a.set(2,[this.w,this.P,this.ta]);a.set(3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=uf(a[b++]),this.ca=uf(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.ob=b};
|
||||
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.K=b-this.ob;if(!this.Y){b="stopped";if(this.K){a-=this.nb;var c=0<a?Math.round(1E3*this.K/a):0;b+=" (";Id(this)&&(b+=this.ba+" opcodes, ",this.ma-=this.ba,this.ba=0);b+=this.K+" cycles, "+a+" ms, "+c+" hz)"}else ib(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.Ja(!0);this.xb();Cf(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ja}
|
||||
function Jd(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||ic(a,b,1,a.I)))return!0;0<=c&&a.J.length&&(a.ba++,b=Ab(a.u,b),null!=b&&(a.J[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Rb(a,b,c){a.g("break on input from port "+u(b)+": "+t(c));a.qa(!0)}function Vb(a,b,c){a.g("break on output to port "+u(b)+": "+t(c));a.qa(!0)}
|
||||
|
|
@ -869,27 +869,27 @@ case "DE":d.U=f>>8&255;case "E":d.V=f&255;break;case "H":d.W=f&255;break;case "H
|
|||
case "IF":d.ua=f?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}Dc(d);a.g("updated registers:")}a.g(Kf(a));c&&(a.M=Y(d.R),Bf(a,Z(a.M.F)))}}function Rf(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(yf(a,c[2])):Be(a,b,!0)}function Sf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Da(c,function(){return jb(a,!0)&&a.kb(e,d,!1)},function(){Dc(a.b);jb(a,!1)})}
|
||||
function Bf(a,b,c,d){if(b=Se(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Se(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=kb(a,!1)||a.Y?a.K:null;var g=null!=f?"cycles":null,h=Lf(a,b),k=b.F;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.g(n)}h[3]&&(g=h[3],f=null);f=Hf(a,b,g,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
|
||||
l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(na(a.substring(d,f))),d=f+1}}return b};
|
||||
function Gf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(nb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var n=g.charAt(k);if("?"==h||"r"==h||"a">n||"z"<n){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Se(a,f[1],!0);if(p)if(a.ca=
|
||||
function Gf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+Z(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(lb(a)&&0<b.length){a.P&&(b="a "+Z(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var n=g.charAt(k);if("?"==h||"r"==h||"a">n||"z"<n){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Se(a,f[1],!0);if(p)if(a.ca=
|
||||
p,void 0===f[2])a.g("begin assemble at "+Z(p.F)),a.P=!0,Dc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Hf(a,a.ca))}}break;case "b":a:{var v=f[0],r=f[1],y=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),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 G=v.charAt(1);if("l"==G){var ga;ga=0+Ff(a,a.I);ga+=Ff(a,a.O);(ga+=Ff(a,a.D))||a.g("no breakpoints")}else if("n"==G)a.ja=De(a,r),a.g("break after "+a.ja+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var C=Y();if("*"!=r&&(C=Se(a,r,!0),!C))break a;r=u(C.F);"c"==G?null==C.F?(Je(a),a.g("all breakpoints cleared")):Df(a,a.I,C)||Df(a,a.O,C)||Df(a,a.D,C)||a.g("breakpoint missing: "+Z(C.F)):
|
||||
"i"==G?a.g("breakpoint "+(Fb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==G?a.g("breakpoint "+(Sb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.F&&(vf(a,C,y),"p"==G?a.Za(a.I,C):"r"==G?a.Za(a.O,C):"w"==G?a.Za(a.D,C):a.g("unknown breakpoint command: "+G))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Cb=f[3];if("?"==X){var lb="";for(T in rb)a.wa[T]&&(lb&&(lb+=","),lb+=T);lb+=",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");lb.length&&a.g("dump extension commands:\n\t"+lb)}else if("state"==X){var Te=Tf(a.B,!0);"console"==ta?console.log(Te):(a.Ga&&(a.Ga.value=""),a.g(Te))}else if("symbols"==X)for(var jd=0;jd<a.G.length;jd++){var kd=a.G[jd],mb;for(mb in kd.Qa)if("."!=mb.charAt(0)){var Ue=kd.Qa[mb].o;if(void 0!==Ue){var Ve=kd.Qa[mb].l;Ve&&(mb=Ve);a.g(Z(Ue)+" "+mb)}}}else{if("d"==
|
||||
"i"==G?a.g("breakpoint "+(Fb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==G?a.g("breakpoint "+(Sb(a.u,C.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=C.F&&(vf(a,C,y),"p"==G?a.Za(a.I,C):"r"==G?a.Za(a.O,C):"w"==G?a.Za(a.D,C):a.g("unknown breakpoint command: "+G))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var T,da=f[0],X=f[1],ta=f[2],Cb=f[3];if("?"==X){var mb="";for(T in rb)a.wa[T]&&(mb&&(mb+=","),mb+=T);mb+=",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");mb.length&&a.g("dump extension commands:\n\t"+mb)}else if("state"==X){var Te=Tf(a.B,!0);"console"==ta?console.log(Te):(a.Ga&&(a.Ga.value=""),a.g(Te))}else if("symbols"==X)for(var jd=0;jd<a.G.length;jd++){var kd=a.G[jd],nb;for(nb in kd.Qa)if("."!=nb.charAt(0)){var Ue=kd.Qa[nb].o;if(void 0!==Ue){var Ve=kd.Qa[nb].l;Ve&&(nb=Ve);a.g(Z(Ue)+" "+nb)}}}else{if("d"==
|
||||
da){for(T in rb)if(f[1]==T){var We=a.wa[T];We?(f.shift(),f.shift(),We(f)):a.g("no dump registered for "+X);break a}X||(da=a.qb||"db")}else a.qb=da;if("dh"==da){var Xe=X,Ye=ta,Ze="",$e=0,ua=a.fa,Fa=a.L;if(Fa.length){var ia=+Xe||a.eb,Gb=+Ye||10;isNaN(ia)?ia=Gb:Ze="more ";ia>Fa.length&&(a.g("note: only "+Fa.length+" available"),ia=Fa.length);ua-=ia;0>ua&&(null==Fa[Fa.length-1].F?(ia=ua+ia,ua=0):ua+=Fa.length);var ld=[];"call"==Ye&&(Gb=1E5,ld=["CALL"]);for(void 0!==Xe&&a.g(ia+" instructions earlier:");0<
|
||||
Gb&&ua!=a.fa;){var af=Fa[ua++];if(null==af.F)break;var Hb=Y(af.F),kg=ia--,bf=Hf(a,Hb,"history",kg);(!ld.length||0<=bf.indexOf(ld[0]))&&a.g(bf);Hb.Lb&&(ua+=Hb.Lb,Gb-=Hb.Lb,ia-=Hb.Lb);ua>=Fa.length&&(ua=0);a.eb=ia;$e++;Gb--}}$e||(a.g("no "+Ze+"history available"),a.eb=void 0)}else{var oc=Se(a,X);if(oc){var pc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Cb),pc=De(a,ta)>>>0,65536<pc&&(pc=65536));for(var Ib="",qc="dd"==da?4:"dw"==da?2:1,rc=qc*pc||128,lg=rc+15>>4||1;lg--&&0<rc;){var sc=0,md=0,Jb,nd="",
|
||||
cf="",X=Z(oc.F);for(Jb=16;0<Jb&&0<rc;Jb--){var tc=a.aa(oc,1),sc=sc|tc<<(md++<<3);md==qc&&(nd+=t(sc,2*qc),nd+=1==qc?9==Jb?"-":" ":" ",sc=md=0);cf+=32<=tc&&128>tc?String.fromCharCode(tc):".";rc--}Ib&&(Ib+="\n");Ib+=X+" "+nd+(Jb?"":" "+cf)}Ib&&a.g(Ib);a.Ua=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,df=255,ef=a.aa,ff=a.va;"ew"==f[0]&&(uc=2,df=65535,ef=a.$a,ff=a.Ib);var gf=uc<<1,hf=f[1];if(null==hf)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 vc=Se(a,hf);if(vc)for(var wc=2;wc<f.length;wc++){var Kb=Be(a,f[wc]);if(void 0===Kb){a.g("unrecognized value: "+f[wc]);break}Kb&~df&&a.g("warning: "+t(Kb)+" exceeds "+uc+"-byte value");var mg=ef.call(a,vc);a.g("changing "+Z(vc.F)+" from "+t(mg,gf,!0)+" to "+t(Kb,gf,!0));ff.call(a,vc,Kb,uc)}}break;case "f":Nf(a,f[1]);break;case "g":a:{var jf=f[1],ng=b;if(void 0!==jf){var od=Se(a,jf,!0);if(!od)break a;vf(a,od,ng);a.Za(a.I,od,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var pd;if(a.C.Aa)pd="halting",a.qa();else{if(kb(a,!0))break a;pd="already halted"}c||a.g(pd)}break;case "i":if("if"==f[0]){var qd;var Lb=b.substr(2),Lb=na(Lb);Be(a,Lb)?(c||a.g("true: "+Lb),qd=!0):(c||a.g("false: "+Lb),qd=!1);qd||(d=!1);break}if("int"==f[0]){var xc;var og=f[1];if(a.b.ua&512){var rd=Be(a,og);null==rd?xc=!1:(a.g("requesting interrupt level "+rd),Hd(a.b,rd),xc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),xc=!1;xc||(d=!1);break}var sd=f[1];if(sd&&"?"!=sd){var td=
|
||||
De(a,sd);if(void 0!==td){var pg=Qb(a.u,td);a.g(u(td)+": "+ca(pg))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var qg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ud=0,kf=Y(),Mb=Y(a.b.oa);for(a.g("stack trace for "+Z(Mb.F));10>ud;){for(var Wa=null,rg=256;65536>Mb.F>>>0;){kf.F=a.$a(Mb,2);if(null==Mb.F||!rg--)break;for(var sg=a,yc=kf,lf=
|
||||
null,Nb=yc.F,mf=Nb,vd=1;6>=vd&&Nb;vd++){if(2<vd){yc.F=Nb;var zc=Hf(sg,yc);if(0<=zc.indexOf("CALL")){var nf=zc.indexOf(" ");if(Nb+(zc.indexOf(" ",nf+1)-nf-1)/2==mf){lf=zc;break}}}Nb--}yc.F=mf;if(Wa=lf)break}if(!Wa||null==Wa)break;var of=null;if("ks"==qg){var pf=Wa.match(/[0-9A-F]+$/);pf&&(of=Pf(a,pf[0]))}Wa=ma(Wa,50)+" ;"+(of||"stack="+Z(Mb.F));a.g(Wa);ud++}ud||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Pf(a,f[1],!0);break;case "m":a:{var Ga,Ha=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==
|
||||
Gb&&ua!=a.fa;){var af=Fa[ua++];if(null==af.F)break;var Hb=Y(af.F),kg=ia--,bf=Hf(a,Hb,"history",kg);(!ld.length||0<=bf.indexOf(ld[0]))&&a.g(bf);Hb.Lb&&(ua+=Hb.Lb,Gb-=Hb.Lb,ia-=Hb.Lb);ua>=Fa.length&&(ua=0);a.eb=ia;$e++;Gb--}}$e||(a.g("no "+Ze+"history available"),a.eb=void 0)}else{var nc=Se(a,X);if(nc){var oc=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Cb),oc=De(a,ta)>>>0,65536<oc&&(oc=65536));for(var Ib="",pc="dd"==da?4:"dw"==da?2:1,qc=pc*oc||128,lg=qc+15>>4||1;lg--&&0<qc;){var rc=0,md=0,Jb,nd="",
|
||||
cf="",X=Z(nc.F);for(Jb=16;0<Jb&&0<qc;Jb--){var sc=a.aa(nc,1),rc=rc|sc<<(md++<<3);md==pc&&(nd+=t(rc,2*pc),nd+=1==pc?9==Jb?"-":" ":" ",rc=md=0);cf+=32<=sc&&128>sc?String.fromCharCode(sc):".";qc--}Ib&&(Ib+="\n");Ib+=X+" "+nd+(Jb?"":" "+cf)}Ib&&a.g(Ib);a.Ua=nc}}}}break;case "e":if("else"==f[0])break;var tc=1,df=255,ef=a.aa,ff=a.va;"ew"==f[0]&&(tc=2,df=65535,ef=a.$a,ff=a.Ib);var gf=tc<<1,hf=f[1];if(null==hf)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 uc=Se(a,hf);if(uc)for(var vc=2;vc<f.length;vc++){var Kb=Be(a,f[vc]);if(void 0===Kb){a.g("unrecognized value: "+f[vc]);break}Kb&~df&&a.g("warning: "+t(Kb)+" exceeds "+tc+"-byte value");var mg=ef.call(a,uc);a.g("changing "+Z(uc.F)+" from "+t(mg,gf,!0)+" to "+t(Kb,gf,!0));ff.call(a,uc,Kb,tc)}}break;case "f":Nf(a,f[1]);break;case "g":a:{var jf=f[1],ng=b;if(void 0!==jf){var od=Se(a,jf,!0);if(!od)break a;vf(a,od,ng);a.Za(a.I,od,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var pd;if(a.C.Aa)pd="halting",a.qa();else{if(kb(a,!0))break a;pd="already halted"}c||a.g(pd)}break;case "i":if("if"==f[0]){var qd;var Lb=b.substr(2),Lb=na(Lb);Be(a,Lb)?(c||a.g("true: "+Lb),qd=!0):(c||a.g("false: "+Lb),qd=!1);qd||(d=!1);break}if("int"==f[0]){var wc;var og=f[1];if(a.b.ua&512){var rd=Be(a,og);null==rd?wc=!1:(a.g("requesting interrupt level "+rd),Hd(a.b,rd),wc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),wc=!1;wc||(d=!1);break}var sd=f[1];if(sd&&"?"!=sd){var td=
|
||||
De(a,sd);if(void 0!==td){var pg=Qb(a.u,td);a.g(u(td)+": "+ca(pg))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var qg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ud=0,kf=Y(),Mb=Y(a.b.oa);for(a.g("stack trace for "+Z(Mb.F));10>ud;){for(var Xa=null,rg=256;65536>Mb.F>>>0;){kf.F=a.$a(Mb,2);if(null==Mb.F||!rg--)break;for(var sg=a,xc=kf,lf=
|
||||
null,Nb=xc.F,mf=Nb,vd=1;6>=vd&&Nb;vd++){if(2<vd){xc.F=Nb;var yc=Hf(sg,xc);if(0<=yc.indexOf("CALL")){var nf=yc.indexOf(" ");if(Nb+(yc.indexOf(" ",nf+1)-nf-1)/2==mf){lf=yc;break}}}Nb--}xc.F=mf;if(Xa=lf)break}if(!Xa||null==Xa)break;var of=null;if("ks"==qg){var pf=Xa.match(/[0-9A-F]+$/);pf&&(of=Pf(a,pf[0]))}Xa=ma(Xa,50)+" ;"+(of||"stack="+Z(Mb.F));a.g(Xa);ud++}ud||a.g("no return addresses found")}break;case "l":"ln"==f[0]&&Pf(a,f[1],!0);break;case "m":a:{var Ga,Ha=null,N=f[1];"?"==N&&(N=void 0);if(void 0!==
|
||||
N){var Ra=0;if("all"==N)Ra=1878917119,N=null;else if("on"==N)Ha=!0,N=null;else if("off"==N)Ha=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ga in rb)if(N==Ga){Ra=rb[Ga];Ha=!!(a.ta&Ra);break}if(!Ra){a.g("unknown message category: "+N);break a}}if(Ra)if("on"==f[2])a.ta|=Ra,Ha=!0;else if("off"==f[2]&&(a.ta&=~Ra,Ha=!1,1073741824==Ra)){for(var wd=0;wd<a.ra.length;wd++)a.g(a.ra[wd]);a.ra=[]}}var tg=0,Ob="";for(Ga in rb)if(!N||N==Ga){var ug=!!(a.ta&rb[Ga]);if(null===Ha||Ha==ug)Ob&&(Ob+=
|
||||
","),++tg%10||(Ob+="\n\t"),"key"==Ga&&(Ga="keys"),Ob+=Ga}void 0===N&&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")+(Ob||"none"));Ke(a)}break;case "o":var xd=f[1],vg=f[2];if(xd&&"?"!=xd){var yd=De(a,xd,"port #"),zd=De(a,vg);void 0!==yd&&void 0!==zd&&(Ub(a.u,yd,zd),a.g(u(yd)+": "+ca(zd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
|
||||
break;case "p":if("print"==f[0]){Rf(a,b.substr(5));break}var qf="pr"==f[0]?1:0,wg=1+qf;if(a.Y)a.g("step in progress");else{var Ad=Y(a.b.R);switch(a.aa(Ad)){case 205:a.Y=wg,sf(Ad,3)}a.Y?(a.Za(a.I,Ad,!0),a.bb()||(a.B&&a.B.xb(),a.Y=0)):Sf(a,qf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}Af(a,f);break;case "s":Qf(a,f);break;case "t":Sf(a,f[0],f[1]);break;case "u":Bf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Of(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.1 ("+a.b.Wd+",RELEASE"+
|
||||
(pb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(wa());break;case "?":if(f[1]){Rf(a,b.substr(1));break}var Bd="commands:",Cd;for(Cd in Me)Bd+="\n"+ma(Cd,9)+Me[Cd];Id(a)||(Bd+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Bd);break;default:a.g("unknown command: "+b),d=!1}}}catch(rf){a.g("debugger error: "+(rf.stack||rf.message)),d=!1}return d}function Cc(a,b,c){b=a.Fb(b,c);for(var d in b)if(!Gf(a,b[+d]))return!1;return!0}
|
||||
Na(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new He(d);fb(d,c)}});
|
||||
function Uf(a,b,c){z.call(this,"Computer",a,Uf,67108864);this.C.xa=!1;Vf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Wf;this.L=null;this.J=this.ba=!1;this.fa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Xf(this);if(this.b=eb("CPU",this.id)){this.H=eb("Debugger",this.id);this.G=[];for(b=null;b=tb(this,"Video",b);)this.G.push(b);this.u=new vb({id:this.Bb+".bus",busWidth:this.ea},this.b,this.H);var d,e=cb(this.id);if((this.I=eb("Panel",this.id))&&
|
||||
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ka=this.I.ka,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.1\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.J=!0,this.B=Wf),this.B&&(this.M=new J(this,"1.30.1"),Yf(this.M)?
|
||||
function Uf(a,b,c){z.call(this,"Computer",a,Uf,67108864);this.C.xa=!1;Vf(this,b);this.O=zc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Wf;this.L=null;this.J=this.ba=!1;this.fa=zc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Xf(this);if(this.b=eb("CPU",this.id)){this.H=eb("Debugger",this.id);this.G=[];for(b=null;b=tb(this,"Video",b);)this.G.push(b);this.u=new vb({id:this.Bb+".bus",busWidth:this.ea},this.b,this.H);var d,e=cb(this.id);if((this.I=eb("Panel",this.id))&&
|
||||
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ka=this.I.ka,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.1\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=zc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.J=!0,this.B=Wf),this.B&&(this.M=new J(this,"1.30.1"),Yf(this.M)?
|
||||
b=null:delete this.M);!b&&this.B&&(b=Zf(this))&&(this.J=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.K=null,g.J=!1,g.ka("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.L=b,g.ba=!0);F(g)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&$f(this,this.vb)}else w("Unable to find CPU component")}A(Uf);var Wf=0;function Vf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
|
||||
function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $f(a,b,c){for(var d=cb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!nb(f)){nb(f,function(){$f(a,b,c)});return}}b.call(a,c)}
|
||||
function zc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function $f(a,b,c){for(var d=cb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!lb(f)){lb(f,function(){$f(a,b,c)});return}}b.call(a,c)}
|
||||
function ag(a,b){var c=new J(a,"1.30.1","validate");if(Yf(c)&&bg(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.ka("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Uf.prototype;
|
||||
l.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Wf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new J(this,"1.30.1");if(-1==a)b=!0;else if(a>Wf){if(Yf(d,this.L)){this.D=new J(this,"1.30.1","failsafe");Yf(this.D)&&(cg(this,d),a=2,dg(this.D));this.D.set("timestamp",ra());eg(this.D);var e=this.B&&!this.J;if(1==a||xa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=bg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Yf(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.ka("Error: "+g),"unable to verify user"==g&&(Ba("user",""),this.j=null)):this.g(f+": "+g),dg(d),Yf(d)?(c=bg(d),e=!0):c=!1))}e&&ag(this,c?d:null)}else 2==a&&d.clear()}else ag(this);delete this.L;delete this.M}e=cb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=fg(this,g,d,b,c));b=[d,a,c];-1!=a?$f(this,this.wc,b):this.wc(b)}};
|
||||
|
|
|
|||
|
|
@ -679,157 +679,157 @@ typeof b){var l="",n;for(n in b)b.hasOwnProperty(n)&&(l&&(l+="&"),l+=n+"="+encod
|
|||
function q(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b}var na=null;function oa(){if(null==na){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}na=a}return na}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(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 ta={init:[],show:[],exit:[]},ua=!1,va=!1,wa=!0;function xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ya(a){ta.init.push(a)}
|
||||
function za(a){if(wa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){Aa("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.",void 0,void 0)}}function Ba(a){!wa&&a?(wa=!0,ua&&Ca("init"),va&&Ca("show")):wa=a}function Ca(a){ta[a]&&za(ta[a])}xa("onload",function(){ua=!0;za(ta.init)});xa("onpageshow",function(){va=!0;za(ta.show)});xa(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){za(ta.exit)});
|
||||
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ub=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Sa=this.id:(this.Ta=this.id.substr(0,b),this.Sa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Wa:!1,eb:!1,Y:!1,error:!1};this.Za=null;this.l.error=!1;this.A={};this.N=null;v.push(this)}var Da=void 0,Ea={};
|
||||
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.ub=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Sa=this.id:(this.Ta=this.id.substr(0,b),this.Sa=this.id.substr(b+1));this[a]=c;this.l={ready:!1,Wa:!1,eb:!1,Y:!1,error:!1};this.Za=null;this.l.error=!1;this.A={};this.O=null;v.push(this)}var Da=void 0,Ea={};
|
||||
if(window){Da||(Da=window.location.search.substr(1));for(var Fa,Ga=/\+/g,Ha=/([^&=]+)=?([^&]*)/g;Fa=Ha.exec(Da);)Ea[decodeURIComponent(Fa[1].replace(Ga," "))]=decodeURIComponent(Fa[2].replace(Ga," "))}function Ia(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function w(a,b){b||(b=r);a.prototype=Ia(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ja=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ja={},v=[];function Ka(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function Aa(a,b,c){b||q((c?c+": ":"")+a)}
|
||||
function La(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Na(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}function Oa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}
|
||||
function La(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ma(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}function Oa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}
|
||||
function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}function Pa(a,b){b=A(b.parentNode,"pc8080-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),l=0;l<h.length;l++)switch(g=h[l],g){case "pc8080-binding":(g=z(f))&&g.binding&&a.V(g.type,g.binding,f,g.value),l=h.length}}}}
|
||||
function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
r.prototype={constructor:r,parent:null,toString:function(){return this.name?this.name:this.id||this.type},V: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.va=this.A[b]=c,c.value="",this.da=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.M=function(a){this.da(a,this.Sa)}),!0;default:return!1}},log:function(){},da:function(){},status:function(a){this.da(this.Sa+": "+a)},M:function(a,b,c){Aa(a,b,c||this.type)},ga:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Qa(a,b){if(a.l.eb)return a.l.Wa=!1,a.l.eb=!1;if(a.l.error)return a.da(a.toString()+" error"),!1;a.l.Wa=b;return a.l.Wa}function B(a){if(!a.l.error&&(a.l.ready=!0,a.l.ready)){var b=a.Za;a.Za=null;b&&b()}}
|
||||
this.L=function(a){this.da(a,this.Sa)}),!0;default:return!1}},log:function(){},da:function(){},status:function(a){this.da(this.Sa+": "+a)},L:function(a,b,c){Aa(a,b,c||this.type)},ga:function(){return this.l.Y=!0},ia:function(a,b){b&&(this.l.Y=!1);return!0}};function Qa(a,b){if(a.l.eb)return a.l.Wa=!1,a.l.eb=!1;if(a.l.error)return a.da(a.toString()+" error"),!1;a.l.Wa=b;return a.l.Wa}function B(a){if(!a.l.error&&(a.l.ready=!0,a.l.ready)){var b=a.Za;a.Za=null;b&&b()}}
|
||||
function Ra(a,b){b&&(a.l.ready?b():a.Za=b);return a.l.ready}Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
var Sa="undefined"!==typeof ArrayBuffer,Ta=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ua(a){r.call(this,"Panel",a,Ua)}w(Ua);k=Ua.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;this.m=Va(a,"Keyboard")};k.ga=function(a,b){b||Wa();return!0};k.ia=function(){return!0};k.Aa=function(){};
|
||||
function Wa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Na(e.id);f||(a=!0,f=new Ua(e));Pa(f,d);a&&B(f)}}ya(Wa);
|
||||
function Xa(a,b,c){r.call(this,"Bus",a,Xa);this.a=b;this.N=c;this.s=a.busWidth||16;this.u=Math.pow(2,this.s);this.g=this.u-1|0;this.j=(this.s>>1)+2;10>this.j&&(this.j=10);15<this.j&&(this.j=15);this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new D;Ya(a,this.N);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;B(this)}w(Xa);Xa.prototype.reset=function(){};Xa.prototype.ga=function(a,b){b||this.reset();return!0};
|
||||
function Za(a,b,c,d){for(var e=b,f=c,g=e>>>a.j;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.c,n=a.c-(e-l);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ma)return h.cb+=h.Ma-e,h.Ma=e,!0;if(e>=h.Ma+h.cb){n=h.size-(e-l);n>f&&(n=f);h.cb=e-h.Ma+n;e=l+a.c;f-=n;g++;continue}}return $a(1,e,f)}e=new D(e,n,a.c,d);Ya(e,a.N,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+p(b,4,!0)),!0):$a(2,b,c)}Xa.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Pa(a&this.f,a)};
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ua(a){r.call(this,"Panel",a,Ua)}w(Ua);k=Ua.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;this.m=Va(a,"Keyboard")};k.ga=function(a,b){b||Wa();return!0};k.ia=function(){return!0};k.Aa=function(){};
|
||||
function Wa(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f=Ma(e.id);f||(a=!0,f=new Ua(e));Pa(f,d);a&&B(f)}}ya(Wa);
|
||||
function Xa(a,b,c){r.call(this,"Bus",a,Xa);this.a=b;this.O=c;this.s=a.busWidth||16;this.u=Math.pow(2,this.s);this.g=this.u-1|0;this.j=(this.s>>1)+2;10>this.j&&(this.j=10);15<this.j&&(this.j=15);this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new D;Ya(a,this.O);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;B(this)}w(Xa);Xa.prototype.reset=function(){};Xa.prototype.ga=function(a,b){b||this.reset();return!0};
|
||||
function Za(a,b,c,d){for(var e=b,f=c,g=e>>>a.j;0<f&&g<a.b.length;){var h=a.b[g],l=g*a.c,n=a.c-(e-l);n>f&&(n=f);if(h&&h.size){if(h.type==d){if(e+f<=h.Ma)return h.cb+=h.Ma-e,h.Ma=e,!0;if(e>=h.Ma+h.cb){n=h.size-(e-l);n>f&&(n=f);h.cb=e-h.Ma+n;e=l+a.c;f-=n;g++;continue}}return $a(1,e,f)}e=new D(e,n,a.c,d);Ya(e,a.O,h);a.b[g++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+p(b,4,!0)),!0):$a(2,b,c)}Xa.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Pa(a&this.f,a)};
|
||||
function bb(a,b){return a.b[(b&a.g)>>>a.j].bb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].kd(c,b):a.b[d++].Pa(c,b)|a.b[d&a.o].Pa(0,b+1)<<8}Xa.prototype.aa=function(a,b){this.b[(a&this.g)>>>this.j].Qa(a&this.f,b&255,a)};function db(a,b,c){a.b[(b&a.g)>>>a.j].Hb(b&a.f,c&255,b)}function fb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].ld(d,c&65535,b):(a.b[e++].Qa(d,c&255,b),a.b[e&a.o].Qa(0,c>>8&255,b+1))}
|
||||
function gb(a){for(var b=0,c=[],d=0;d<a.i;d++){var e=a.b[d];if(e.na||e.Ab){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var n=e[g],u=g+1;u<e.length&&e[u]===n;)u++;l[h++]=u-g;l[h++]=n;g=u}l.length<e.length&&(e=l)}c[f]=e}}return c}function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.m[l]?q("Input port "+p(l,4,!0)+" already registered"):f.m[l]=[h,!1]}}
|
||||
function ib(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(h)for(var l=+e+d;l<=g;l++)void 0!==f.v[l]?q("Output port "+p(l,4,!0)+" already registered"):f.v[l]=[h,!1]}}function $a(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var jb;if(Sa){var kb=new ArrayBuffer(2);(new DataView(kb)).setUint16(0,256,!0);jb=256===(new Uint16Array(kb))[0]}else jb=!1;var lb=jb;
|
||||
function D(a,b,c,d){this.id=mb+=2;this.a=null;this.Ma=a;this.cb=b;this.size=c||0;this.type=d||nb;this.c=d==ob;Ya(this);this.na=this.Ab=!1;if(c)if(Sa)this.j=new ArrayBuffer(c),this.A=new DataView(this.j,0,c),this.b=new Uint8Array(this.j,0,c),this.i=new Uint16Array(this.j,0,c>>1),this.a=new Int32Array(this.j,0,c>>2),pb(this,lb?qb:rb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;pb(this,sb)}else pb(this)}var nb=0,ob=2,ab=["NONE","RAM","ROM","VID","H/W"],mb=0;
|
||||
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(Sa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.A.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Sa)for(b=0;b<a.length;b++)this.A.setInt32(b<<2,a[b],!0);else this.a=a;return this.na=!0}return!1},m:function(){return 255},o:function(){},v:function(a,b){return this.Pa(a++,b++)|this.Pa(a,b)<<8},s:function(a,b,c){this.Qa(a++,b&255,c++);this.Qa(a,b>>8,c)},C:function(a){return this.a[a>>
|
||||
2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.na=!0},ea:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.na=!0},w:function(a,b){return this.bb(a,b)},K:function(a,b){return this.Eb(a,b)},O:function(a,b,c){this.c||this.Hb(a,b,c)},W:function(a,
|
||||
b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},H:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.na=!0},R:function(a,b){this.b[a]=b;this.na=!0},T:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.N=b;a.f=a.g=0;c&&((a.f=c.f)&&tb(a,ub,!1),(a.g=c.g)&&vb(a,ub,!1))}
|
||||
function vb(a,b,c){c&&a.g||(a.Qa=!a.c&&b[1]||a.o,a.ld=!a.c&&b[3]||a.s);if(c||void 0===c)a.Hb=b[1]||a.o,a.X=b[3]||a.s}function tb(a,b,c){c&&a.f||(a.Pa=b[0]||a.m,a.kd=b[2]||a.v);if(c||void 0===c)a.bb=b[0]||a.m,a.Eb=b[2]||a.v}function pb(a,b){b||(b=wb);tb(a,b,void 0);vb(a,b,void 0)}var wb=[],sb=[D.prototype.C,D.prototype.S,D.prototype.I,D.prototype.ea],ub=[D.prototype.w,D.prototype.O,D.prototype.K,D.prototype.W];
|
||||
if(Sa)var rb=[D.prototype.u,D.prototype.L,D.prototype.G,D.prototype.T],qb=[D.prototype.B,D.prototype.R,D.prototype.H,D.prototype.Z];function xb(a,b){r.call(this,"CPU",a,xb);var c=a.multiplier||1;this.la=a.cycles||b;this.I=c;this.Ca=Math.round(this.la/1E4)/100;this.W=this.Ca*this.I;this.l.oa=!1;this.l.Fb=!1;this.l.Na=a.autoStart;this.l.yb=!1;this.l.Xa=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.ea=a.csStop;this.G=[];this.Va=this.hb.bind(this);B(this)}w(xb);var yb=["power","reset"];
|
||||
k=xb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.N=d;for(b=0;b<yb.length;b++)(c=this.A[yb[b]])&&this.v.V(null,yb[b],c);this.K=Va(a,"ChipSet");a=zb(a,"autoStart");null!=a&&(this.l.Na="true"==a?!0:"false"==a?!1:!!a);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ga=function(a,b){if(!b){if(a&&this.restore){Ab(this);if(!this.restore(a))return!1;Bb(this)}else this.reset();this.da("No debugger detected")}Cb(this);return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.Na=function(){return this.l.Na||void 0===this.A.run?(this.hb(!0),!0):!1};k.Bb=function(){return 0};function Bb(a){void 0===a.ua&&(a.ua=0);void 0===a.Z&&(a.Z=-1);void 0===a.ea&&(a.ea=-1);a.l.Xa=0<=a.ua&&0<a.Z;a.l.Xa&&(a.ta=0,a.X=a.ua-a.T)}
|
||||
2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.na=!0},ea:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.na=!0},w:function(a,b){return this.bb(a,b)},H:function(a,b){return this.Eb(a,b)},N:function(a,b,c){this.c||this.Hb(a,b,c)},W:function(a,
|
||||
b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},M:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},K:function(a,b){this.b[a]=b;this.na=!0},R:function(a,b){this.b[a]=b;this.na=!0},U:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.O=b;a.f=a.g=0;c&&((a.f=c.f)&&tb(a,ub,!1),(a.g=c.g)&&vb(a,ub,!1))}
|
||||
function vb(a,b,c){c&&a.g||(a.Qa=!a.c&&b[1]||a.o,a.ld=!a.c&&b[3]||a.s);if(c||void 0===c)a.Hb=b[1]||a.o,a.X=b[3]||a.s}function tb(a,b,c){c&&a.f||(a.Pa=b[0]||a.m,a.kd=b[2]||a.v);if(c||void 0===c)a.bb=b[0]||a.m,a.Eb=b[2]||a.v}function pb(a,b){b||(b=wb);tb(a,b,void 0);vb(a,b,void 0)}var wb=[],sb=[D.prototype.C,D.prototype.S,D.prototype.I,D.prototype.ea],ub=[D.prototype.w,D.prototype.N,D.prototype.H,D.prototype.W];
|
||||
if(Sa)var rb=[D.prototype.u,D.prototype.K,D.prototype.G,D.prototype.U],qb=[D.prototype.B,D.prototype.R,D.prototype.M,D.prototype.Z];function xb(a,b){r.call(this,"CPU",a,xb);var c=a.multiplier||1;this.la=a.cycles||b;this.K=c;this.Ca=Math.round(this.la/1E4)/100;this.U=this.Ca*this.K;this.l.oa=!1;this.l.Fb=!1;this.l.Na=a.autoStart;this.l.yb=!1;this.l.Xa=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.ea=a.csStop;this.G=[];this.Va=this.hb.bind(this);B(this)}w(xb);var yb=["power","reset"];
|
||||
k=xb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.O=d;for(b=0;b<yb.length;b++)(c=this.A[yb[b]])&&this.v.V(null,yb[b],c);this.M=Va(a,"ChipSet");a=zb(a,"autoStart");null!=a&&(this.l.Na="true"==a?!0:"false"==a?!1:!!a);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ga=function(a,b){if(!b){if(a&&this.restore){Ab(this);if(!this.restore(a))return!1;Bb(this)}else this.reset();this.da("No debugger detected")}Cb(this);return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.Na=function(){return this.l.Na||void 0===this.A.run?(this.hb(!0),!0):!1};k.Bb=function(){return 0};function Bb(a){void 0===a.ua&&(a.ua=0);void 0===a.Z&&(a.Z=-1);void 0===a.ea&&(a.ea=-1);a.l.Xa=0<=a.ua&&0<a.Z;a.l.Xa&&(a.ta=0,a.X=a.ua-a.H)}
|
||||
k.V=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.v)if(a=d.v,a.l.Y)a=!0;else{var b=null,c,h=La(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.l.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.l.Y);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.Za?" (waiting for notification)":""))+".");a=!1}a&&(d.l.oa?Db(d):d.hb())};a=!0;
|
||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){Eb(d,d.I<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",a=!0}return a};function Fb(a,b,c){a.T+=b;c&&(a.S=a.a=0)}function Gb(a,b){var c=1;b&&1<a.I&&a.O&&(c=a.O/a.Ca);a.Ka=Math.round(1E3/30);a.xa=Math.floor(a.la/30*c);b||(a.ja=a.xa);a.Da=0}function Hb(a){return a.T+a.L+a.S-a.a}function Ab(a){a.O=0;a.La=0;a.T=a.L=a.S=a.a=0;Bb(a);Eb(a,1)}
|
||||
function Eb(a,b,c){if(void 0!==b){.8>a.O/a.W&&(b=1);a.I=b;b=a.Ca*a.I;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.da("target speed: "+b)}c&&a.v&&Ib(a.v)}Fb(a,a.L);a.L=0;a.H=ja();a.R=0;Gb(a)}function Jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Lb(a,b,c){0<=b&&b<a.G.length&&0>a.G[b][0]&&(c*=a.la*a.I/1E3,a.G[b][0]=c)}function Mb(a){a.S-=a.a;a.a=0}
|
||||
k.hb=function(a){if(Qa(this,!0)){if(!this.l.oa){Eb(this);this.v&&this.v.start(this.H,Hb(this));this.l.oa=!0;this.l.Fb=!0;this.K&&this.K.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Aa(!0),a&&Ib(this.v,!0))}this.Da>=this.la&&Gb(this,!0);this.pa=0;this.sa=ja();this.R&&(a=this.sa-this.R,a>this.Ka&&(this.H+=a,this.H>this.sa&&(this.H=this.sa)));try{do{for(var c=this.l.Xa?1:this.xa,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}this.Gb(c);var f=this.S-this.a;
|
||||
a=f;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.pa+=f;this.L+=f;Fb(this,0,!0);a=f;this.l.Xa&&(b=!1,this.ta=this.ta+this.Bb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ea&&this.ea<=Hb(this)&&(this.Z=this.ea=-1,Bb(this),Db(this),b=!0),b&&this.da(Hb(this)+" cycles: checksum="+p(this.ta)));this.ja-=f;if(0>=this.ja){this.ja+=this.xa;15<=++this.La&&(this.v&&this.v.Aa(),this.La=0);break}}while(this.l.oa)}catch(l){Db(this);Cb(this);this.v&&
|
||||
this.v.stop(ja(),Hb(this));Qa(this,!1);c=l.stack||l.message;this.l.error=!0;this.M(c);return}c=setTimeout;d=this.Va;this.R=ja();e=this.Ka;this.pa&&(e=Math.round(e*this.pa/this.xa));e-=this.R-this.sa;if(f=this.R-this.H)this.O=Math.round(this.L/(10*f))/100,864E5<=f&&(this.T=0,Eb(this));if(0>e||this.O<this.W)-1E3>e&&(this.H-=e),e=0;this.Da+=this.pa;this.R+=e;c(d,e)}else Cb(this),this.v&&this.v.stop(ja(),Hb(this))};k.Gb=function(){return 0};
|
||||
function Db(a){a.l.Wa&&(a.l.eb=!0);Mb(a);Fb(a,a.L);a.L=0;if(a.l.oa){a.l.oa=!1;a.K&&a.K.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Cb(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Nb(b.m[c],void 0);a.v.Aa(void 0)}}function Ob(a){xb.call(this,a,1E6);this.Ha=Pb;Ab(this);this.l.complete=this.l.Nc=!1;this.Ja=0;this.ra=[];this.Ia=0;Qb(this)}w(Ob,xb);function Rb(a,b){a.ra.push(b)}k=Ob.prototype;k.reset=function(){this.l.oa&&Db(this);Qb(this);Ab(this);this.l.error=!1;this.parent.reset.call(this)};
|
||||
function Qb(a){a.b=0;a.c=0;a.D=0;a.f=0;a.F=0;a.g=0;a.i=0;a.u=0;E(a,a.Ia);Sb(a,0);a.B=0}function Tb(a,b){a.Ia=b;E(a,b)}k.Bb=function(){var a=this.b+this.c+this.D+this.f+this.F+this.g+this.i|0;return a=a+this.u+this.o+Ub(this)|0};k.save=function(){var a=new F(this);a.set(0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Ub(this)]);a.set(1,[this.B,this.T,this.I]);a.set(2,gb(this.j));return a.data()};
|
||||
k.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.D=b[2];this.f=b[3];this.F=b[4];this.g=b[5];this.i=b[6];this.u=b[7]&65535;E(this,b[8]);Sb(this,b[9]);b=a[1];this.B=b[0];this.T=b[1];Eb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,g=Array(b.w),h=0;h<e.length-1;)for(var l=e[h++],n=e[h++];l--;)g[f++]=n;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
k.V=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.Ja++;a=!0;break;default:a=this.parent.V.call(this,a,b,c)}return a};function Vb(a){return a.c<<8|a.D}function Wb(a,b){a.c=b>>8&255;a.D=b&255}function Xb(a){return a.f<<8|a.F}function Yb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i}
|
||||
function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Zb(a){return Ta[a.s&255]?4:0}function Ub(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Zb(a)|J(a)}function Sb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255}
|
||||
function $b(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function ac(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function bc(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function cc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function dc(a,b){return a.s=a.m=a.w=a.b|b}function M(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function ec(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function fc(a,b){return a.s=a.m=a.w=a.b^b}k.J=function(a){return this.j.J(a)};
|
||||
k.aa=function(a,b){this.j.aa(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=cb(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=cb(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;fb(a.j,a.u,b)}function gc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<<b);b++);a.B&=~(0>b?255:1<<b);a.C&=-513;a.B&=-257;a.Ha[199|b<<3].call(a)}return a.B&256?(Mb(a),!1):!0}function hc(a,b){a.B|=1<<b;a.C&512&&Mb(a)}
|
||||
function S(a,b,c,d){d=d||2;a.A[b]&&(void 0===c&&(a.l.error=!0,a.M("Value for "+b+" is invalid"),Db(a)),c=!a.l.oa||a.l.yb?p(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))}
|
||||
k.Aa=function(a){this.Ja&&(a||!this.l.oa||this.l.yb)&&(S(this,"A",this.b),S(this,"B",this.c),S(this,"C",this.D),S(this,"BC",Vb(this),4),S(this,"D",this.f),S(this,"E",this.F),S(this,"DE",Xb(this),4),S(this,"H",this.g),S(this,"L",this.i),S(this,"HL",G(this),4),S(this,"SP",this.u,4),S(this,"PC",this.o,4),a=Ub(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.A.speed)a.textContent=
|
||||
this.l.oa&&this.O?this.O.toFixed(2)+"Mhz":"Stopped"};k.Gb=function(a){this.l.complete=!0;this.l.Nc=!1;this.l.Fb=!1;this.S=this.a=a;if(gc(this)){do this.Ha[N(this)].call(this);while(0<this.a)}return this.l.complete?this.S-this.a:void 0===this.l.complete?0:-1};ya(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ob(d);Pa(d,c)}});function ic(){this.a-=4}function jc(){E(this,O(this));this.a-=10}function kc(){E(this,P(this));this.a-=10}
|
||||
function lc(){var a=O(this);R(this,this.o);E(this,a);this.a-=17}
|
||||
var Pb=[ic,function(){Wb(this,O(this));this.a-=10},function(){this.aa(Vb(this),this.b);this.a-=7},function(){Wb(this,Vb(this)+1);this.a-=5},function(){this.c=cc(this,this.c);this.a-=5},function(){this.c=bc(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Vb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Vb(this));this.a-=7},function(){Wb(this,Vb(this)-1);this.a-=5},
|
||||
function(){this.D=cc(this,this.D);this.a-=5},function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},ic,function(){Yb(this,O(this));this.a-=10},function(){this.aa(Xb(this),this.b);this.a-=7},function(){Yb(this,Xb(this)+1);this.a-=5},function(){this.f=cc(this,this.f);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this);
|
||||
K(this,a&256);this.a-=4},ic,function(){var a;I(this,a=G(this)+Xb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Xb(this));this.a-=7},function(){Yb(this,Xb(this)-1);this.a-=5},function(){this.F=cc(this,this.F);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;K(this,a&256);this.a-=4},ic,function(){I(this,O(this));this.a-=10},function(){var a=O(this);fb(this.j,a,G(this));this.a-=16},function(){I(this,
|
||||
G(this)+1);this.a-=5},function(){this.g=cc(this,this.g);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},ic,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=cb(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=cc(this,this.i);
|
||||
this.a-=5},function(){this.i=bc(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},ic,function(){this.u=O(this)&65535;this.a-=10},function(){this.aa(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.aa(a,cc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.aa(a,bc(this,this.J(a)));this.a-=10},function(){this.aa(G(this),N(this));this.a-=10},function(){this.m|=256;this.a-=4},ic,function(){var a;
|
||||
I(this,a=G(this)+this.u);K(this,a>>8&256);this.a-=10},function(){this.b=this.J(O(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=cc(this,this.b);this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){K(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i;
|
||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){Eb(d,d.K<<1,!0)},c.textContent=this.U.toFixed(2)+"Mhz",a=!0}return a};function Fb(a,b){var c=1;b&&1<a.K&&a.R&&(c=a.R/a.Ca);a.Ka=Math.round(1E3/30);a.xa=Math.floor(a.la/30*c);b||(a.ja=a.xa);a.Da=0}function Gb(a){return a.H+a.N+a.W-a.a}function Ab(a){a.R=0;a.La=0;a.H=a.N=a.W=a.a=0;Bb(a);Eb(a,1)}
|
||||
function Eb(a,b,c){if(void 0!==b){.8>a.R/a.U&&(b=1);a.K=b;b=a.Ca*a.K;if(a.U!=b){a.U=b;b=a.U.toFixed(2)+"Mhz";var d=a.A.setSpeed;d&&(d.textContent=b);a.da("target speed: "+b)}c&&a.v&&Hb(a.v)}a.H+=a.N;a.N=0;a.I=ja();a.S=0;Fb(a)}function Ib(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function Kb(a,b,c){0<=b&&b<a.G.length&&0>a.G[b][0]&&(c*=a.la*a.K/1E3,a.G[b][0]=c+Lb(a))}function Lb(a,b){var c=a.W-=a.a;a.a=0;b&&(a.W=0);return c}
|
||||
k.hb=function(a){if(Qa(this,!0)){if(!this.l.oa){Eb(this);this.v&&this.v.start(this.I,Gb(this));this.l.oa=!0;this.l.Fb=!0;this.M&&this.M.start();var b=this.A.run;b&&(b.textContent="Halt");this.v&&(this.v.Aa(!0),a&&Hb(this.v,!0))}this.Da>=this.la&&Fb(this,!0);this.pa=0;this.sa=ja();this.S&&(a=this.sa-this.S,a>this.Ka&&(this.I+=a,this.I>this.sa&&(this.I=this.sa)));try{do{for(var c,d=this.l.Xa?1:this.xa,e=this.G.length-1;0<=e;e--){var f=this.G[e];0>f[0]||d>f[0]&&(d=f[0])}c=d;this.Gb(c);c=Lb(this,!0);
|
||||
this.pa+=c;this.N+=c;a=c;this.l.Xa&&(b=!1,this.ta=this.ta+this.Bb()|0,this.X-=a,0>=this.X&&(this.X+=this.Z,b=!0),0<=this.ea&&this.ea<=Gb(this)&&(this.Z=this.ea=-1,Bb(this),Db(this),b=!0),b&&this.da(Gb(this)+" cycles: checksum="+p(this.ta)));a=c;for(var g=this.G.length-1;0<=g;g--){var h=this.G[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.ja-=c;if(0>=this.ja){this.ja+=this.xa;15<=++this.La&&(this.v&&this.v.Aa(),this.La=0);break}}while(this.l.oa)}catch(l){Db(this);Cb(this);this.v&&this.v.stop(ja(),
|
||||
Gb(this));Qa(this,!1);c=l.stack||l.message;this.l.error=!0;this.L(c);return}c=setTimeout;d=this.Va;this.S=ja();e=this.Ka;this.pa&&(e=Math.round(e*this.pa/this.xa));e-=this.S-this.sa;if(f=this.S-this.I)this.R=Math.round(this.N/(10*f))/100,864E5<=f&&(this.H=0,Eb(this));if(0>e||this.R<this.U)-1E3>e&&(this.I-=e),e=0;this.Da+=this.pa;this.S+=e;c(d,e)}else Cb(this),this.v&&this.v.stop(ja(),Gb(this))};k.Gb=function(){return 0};
|
||||
function Db(a){a.l.Wa&&(a.l.eb=!0);Lb(a);a.H+=a.N;a.N=0;if(a.l.oa){a.l.oa=!1;a.M&&a.M.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Cb(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Mb(b.m[c],void 0);a.v.Aa(void 0)}}function Nb(a){xb.call(this,a,1E6);this.Ha=Ob;Ab(this);this.l.complete=this.l.Nc=!1;this.Ja=0;this.ra=[];this.Ia=0;Pb(this)}w(Nb,xb);function Qb(a,b){a.ra.push(b)}k=Nb.prototype;k.reset=function(){this.l.oa&&Db(this);Pb(this);Ab(this);this.l.error=!1;this.parent.reset.call(this)};
|
||||
function Pb(a){a.b=0;a.c=0;a.D=0;a.f=0;a.F=0;a.g=0;a.i=0;a.u=0;E(a,a.Ia);Rb(a,0);a.B=0}function Sb(a,b){a.Ia=b;E(a,b)}k.Bb=function(){var a=this.b+this.c+this.D+this.f+this.F+this.g+this.i|0;return a=a+this.u+this.o+Tb(this)|0};k.save=function(){var a=new F(this);a.set(0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Tb(this)]);a.set(1,[this.B,this.H,this.K]);a.set(2,gb(this.j));return a.data()};
|
||||
k.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.D=b[2];this.f=b[3];this.F=b[4];this.g=b[5];this.i=b[6];this.u=b[7]&65535;E(this,b[8]);Rb(this,b[9]);b=a[1];this.B=b[0];this.H=b[1];Eb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,g=Array(b.w),h=0;h<e.length-1;)for(var l=e[h++],n=e[h++];l--;)g[f++]=n;e=g}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
k.V=function(a,b,c){switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.Ja++;a=!0;break;default:a=this.parent.V.call(this,a,b,c)}return a};function Ub(a){return a.c<<8|a.D}function Vb(a,b){a.c=b>>8&255;a.D=b&255}function Wb(a){return a.f<<8|a.F}function Xb(a,b){a.f=b>>8&255;a.F=b&255}function G(a){return a.g<<8|a.i}
|
||||
function I(a,b){a.g=b>>8&255;a.i=b&255}function E(a,b){a.o=b&65535}function J(a){return a.m&256?1:0}function K(a,b){a.m=a.m&255|b}function Yb(a){return Ta[a.s&255]?4:0}function Tb(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Yb(a)|J(a)}function Rb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function L(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255}
|
||||
function Zb(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?1:0))&255}function $b(a,b){a.m=a.s=a.w=a.b&b;(a.b|b)&8&&(a.w^=16);return a.m}function ac(a,b){a.w=b^255;b=a.s=b+255&255;a.m=a.m&-256|b;return b}function bc(a,b){a.w=b;b=a.s=b+1&255;a.m=a.m&-256|b;return b}function cc(a,b){return a.s=a.m=a.w=a.b|b}function M(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+1^256)&255}function dc(a,b){b^=255;a.w=a.b^b;return a.s=(a.m=a.b+b+(a.m&256?0:1)^256)&255}function ec(a,b){return a.s=a.m=a.w=a.b^b}k.J=function(a){return this.j.J(a)};
|
||||
k.aa=function(a,b){this.j.aa(a,b)};function N(a){var b=a.J(a.o);E(a,a.o+1);return b}function O(a){var b=cb(a.j,a.o);E(a,a.o+2);return b}function P(a){var b=cb(a.j,a.u);a.u=a.u+2&65535;return b}function R(a,b){a.u=a.u-2&65535;fb(a.j,a.u,b)}function fc(a){if(a.a&&a.B&255&&a.C&512){for(var b=0;8>b&&!(a.B&1<<b);b++);a.B&=~(0>b?255:1<<b);a.C&=-513;a.B&=-257;a.Ha[199|b<<3].call(a)}return a.B&256?(Lb(a),!1):!0}function gc(a,b){a.B|=1<<b;a.C&512&&Lb(a)}
|
||||
function S(a,b,c,d){d=d||2;a.A[b]&&(void 0===c&&(a.l.error=!0,a.L("Value for "+b+" is invalid"),Db(a)),c=!a.l.oa||a.l.yb?p(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))}
|
||||
k.Aa=function(a){this.Ja&&(a||!this.l.oa||this.l.yb)&&(S(this,"A",this.b),S(this,"B",this.c),S(this,"C",this.D),S(this,"BC",Ub(this),4),S(this,"D",this.f),S(this,"E",this.F),S(this,"DE",Wb(this),4),S(this,"H",this.g),S(this,"L",this.i),S(this,"HL",G(this),4),S(this,"SP",this.u,4),S(this,"PC",this.o,4),a=Tb(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.A.speed)a.textContent=
|
||||
this.l.oa&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};k.Gb=function(a){this.l.complete=!0;this.l.Nc=!1;this.l.Fb=!1;this.W=this.a=a;if(fc(this)){do this.Ha[N(this)].call(this);while(0<this.a)}return this.l.complete?this.W-this.a:void 0===this.l.complete?0:-1};ya(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Nb(d);Pa(d,c)}});function hc(){this.a-=4}function ic(){E(this,O(this));this.a-=10}function jc(){E(this,P(this));this.a-=10}
|
||||
function kc(){var a=O(this);R(this,this.o);E(this,a);this.a-=17}
|
||||
var Ob=[hc,function(){Vb(this,O(this));this.a-=10},function(){this.aa(Ub(this),this.b);this.a-=7},function(){Vb(this,Ub(this)+1);this.a-=5},function(){this.c=bc(this,this.c);this.a-=5},function(){this.c=ac(this,this.c);this.a-=5},function(){this.c=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;K(this,a&256);this.a-=4},hc,function(){var a;I(this,a=G(this)+Ub(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Ub(this));this.a-=7},function(){Vb(this,Ub(this)-1);this.a-=5},
|
||||
function(){this.D=bc(this,this.D);this.a-=5},function(){this.D=ac(this,this.D);this.a-=5},function(){this.D=N(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;K(this,a);this.a-=4},hc,function(){Xb(this,O(this));this.a-=10},function(){this.aa(Wb(this),this.b);this.a-=7},function(){Xb(this,Wb(this)+1);this.a-=5},function(){this.f=bc(this,this.f);this.a-=5},function(){this.f=ac(this,this.f);this.a-=5},function(){this.f=N(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|J(this);
|
||||
K(this,a&256);this.a-=4},hc,function(){var a;I(this,a=G(this)+Wb(this));K(this,a>>8&256);this.a-=10},function(){this.b=this.J(Wb(this));this.a-=7},function(){Xb(this,Wb(this)-1);this.a-=5},function(){this.F=bc(this,this.F);this.a-=5},function(){this.F=ac(this,this.F);this.a-=5},function(){this.F=N(this);this.a-=7},function(){var a=this.b<<8;this.b=(J(this)<<8|this.b)>>1;K(this,a&256);this.a-=4},hc,function(){I(this,O(this));this.a-=10},function(){var a=O(this);fb(this.j,a,G(this));this.a-=16},function(){I(this,
|
||||
G(this)+1);this.a-=5},function(){this.g=bc(this,this.g);this.a-=5},function(){this.g=ac(this,this.g);this.a-=5},function(){this.g=N(this);this.a-=7},function(){var a=0,b=J(this);if((this.s^this.w)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);K(this,b?256:0);this.a-=4},hc,function(){var a;I(this,a=G(this)+G(this));K(this,a>>8&256);this.a-=10},function(){var a;a=O(this);a=cb(this.j,a);I(this,a);this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.i=bc(this,this.i);
|
||||
this.a-=5},function(){this.i=ac(this,this.i);this.a-=5},function(){this.i=N(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},hc,function(){this.u=O(this)&65535;this.a-=10},function(){this.aa(O(this),this.b);this.a-=13},function(){this.u=this.u+1&65535;this.a-=5},function(){var a=G(this);this.aa(a,bc(this,this.J(a)));this.a-=10},function(){var a=G(this);this.aa(a,ac(this,this.J(a)));this.a-=10},function(){this.aa(G(this),N(this));this.a-=10},function(){this.m|=256;this.a-=4},hc,function(){var a;
|
||||
I(this,a=G(this)+this.u);K(this,a>>8&256);this.a-=10},function(){this.b=this.J(O(this));this.a-=13},function(){this.u=this.u-1&65535;this.a-=5},function(){this.b=bc(this,this.b);this.a-=5},function(){this.b=ac(this,this.b);this.a-=5},function(){this.b=N(this);this.a-=7},function(){K(this,J(this)?0:256);this.a-=4},function(){this.a-=5},function(){this.c=this.D;this.a-=5},function(){this.c=this.f;this.a-=5},function(){this.c=this.F;this.a-=5},function(){this.c=this.g;this.a-=5},function(){this.c=this.i;
|
||||
this.a-=5},function(){this.c=this.J(G(this));this.a-=7},function(){this.c=this.b;this.a-=5},function(){this.D=this.c;this.a-=5},function(){this.a-=5},function(){this.D=this.f;this.a-=5},function(){this.D=this.F;this.a-=5},function(){this.D=this.g;this.a-=5},function(){this.D=this.i;this.a-=5},function(){this.D=this.J(G(this));this.a-=7},function(){this.D=this.b;this.a-=5},function(){this.f=this.c;this.a-=5},function(){this.f=this.D;this.a-=5},function(){this.a-=5},function(){this.f=this.F;this.a-=
|
||||
5},function(){this.f=this.g;this.a-=5},function(){this.f=this.i;this.a-=5},function(){this.f=this.J(G(this));this.a-=7},function(){this.f=this.b;this.a-=5},function(){this.F=this.c;this.a-=5},function(){this.F=this.D;this.a-=5},function(){this.F=this.f;this.a-=5},function(){this.a-=5},function(){this.F=this.g;this.a-=5},function(){this.F=this.i;this.a-=5},function(){this.F=this.J(G(this));this.a-=7},function(){this.F=this.b;this.a-=5},function(){this.g=this.c;this.a-=5},function(){this.g=this.D;this.a-=
|
||||
5},function(){this.g=this.f;this.a-=5},function(){this.g=this.F;this.a-=5},function(){this.a-=5},function(){this.g=this.i;this.a-=5},function(){this.g=this.J(G(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.i=this.c;this.a-=5},function(){this.i=this.D;this.a-=5},function(){this.i=this.f;this.a-=5},function(){this.i=this.F;this.a-=5},function(){this.i=this.g;this.a-=5},function(){this.a-=5},function(){this.i=this.J(G(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.aa(G(this),
|
||||
this.c);this.a-=7},function(){this.aa(G(this),this.D);this.a-=7},function(){this.aa(G(this),this.f);this.a-=7},function(){this.aa(G(this),this.F);this.a-=7},function(){this.aa(G(this),this.g);this.a-=7},function(){this.aa(G(this),this.i);this.a-=7},function(){var a=this.o-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.B|=256;Mb(this);this.C&512||Db(this)},function(){this.aa(G(this),this.b);this.a-=7},function(){this.b=this.c;this.a-=5},function(){this.b=
|
||||
this.c);this.a-=7},function(){this.aa(G(this),this.D);this.a-=7},function(){this.aa(G(this),this.f);this.a-=7},function(){this.aa(G(this),this.F);this.a-=7},function(){this.aa(G(this),this.g);this.a-=7},function(){this.aa(G(this),this.i);this.a-=7},function(){var a=this.o-1;if(this.ra.length)for(var b=0;b<this.ra.length;b++)if(this.ra[b](a))return;this.a-=7;this.B|=256;Lb(this);this.C&512||Db(this)},function(){this.aa(G(this),this.b);this.a-=7},function(){this.b=this.c;this.a-=5},function(){this.b=
|
||||
this.D;this.a-=5},function(){this.b=this.f;this.a-=5},function(){this.b=this.F;this.a-=5},function(){this.b=this.g;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.J(G(this));this.a-=7},function(){this.a-=5},function(){this.b=L(this,this.c);this.a-=4},function(){this.b=L(this,this.D);this.a-=4},function(){this.b=L(this,this.f);this.a-=4},function(){this.b=L(this,this.F);this.a-=4},function(){this.b=L(this,this.g);this.a-=4},function(){this.b=L(this,this.i);this.a-=4},function(){this.b=
|
||||
L(this,this.J(G(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=$b(this,this.c);this.a-=4},function(){this.b=$b(this,this.D);this.a-=4},function(){this.b=$b(this,this.f);this.a-=4},function(){this.b=$b(this,this.F);this.a-=4},function(){this.b=$b(this,this.g);this.a-=4},function(){this.b=$b(this,this.i);this.a-=4},function(){this.b=$b(this,this.J(G(this)));this.a-=7},function(){this.b=$b(this,this.b);this.a-=4},function(){this.b=M(this,this.c);this.a-=4},function(){this.b=
|
||||
M(this,this.D);this.a-=4},function(){this.b=M(this,this.f);this.a-=4},function(){this.b=M(this,this.F);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.J(G(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this,
|
||||
this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.J(G(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=ac(this,this.c);this.a-=4},function(){this.b=ac(this,this.D);this.a-=4},function(){this.b=ac(this,this.f);this.a-=4},function(){this.b=ac(this,this.F);this.a-=4},function(){this.b=ac(this,this.g);this.a-=4},function(){this.b=ac(this,this.i);this.a-=4},function(){this.b=ac(this,this.J(G(this)));this.a-=7},function(){this.b=
|
||||
ac(this,this.b);this.a-=4},function(){this.b=fc(this,this.c);this.a-=4},function(){this.b=fc(this,this.D);this.a-=4},function(){this.b=fc(this,this.f);this.a-=4},function(){this.b=fc(this,this.F);this.a-=4},function(){this.b=fc(this,this.g);this.a-=4},function(){this.b=fc(this,this.i);this.a-=4},function(){this.b=fc(this,this.J(G(this)));this.a-=7},function(){this.b=fc(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b=
|
||||
dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this,this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.J(G(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){M(this,this.c);this.a-=4},function(){M(this,this.D);this.a-=4},function(){M(this,this.f);this.a-=4},function(){M(this,this.F);this.a-=4},function(){M(this,this.g);this.a-=4},function(){M(this,this.i);this.a-=4},function(){M(this,
|
||||
this.J(G(this)));this.a-=7},function(){M(this,this.b);this.a-=4},function(){this.m&255&&(E(this,P(this)),this.a-=6);this.a-=5},function(){Wb(this,P(this));this.a-=10},function(){var a=O(this);this.m&255&&E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Vb(this));this.a-=11},function(){this.b=L(this,N(this));this.a-=7},function(){R(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,P(this)),this.a-=6);this.a-=
|
||||
5},kc,function(){var a=O(this);this.m&255||E(this,a);this.a-=10},jc,function(){var a=O(this);this.m&255||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=$b(this,N(this));this.a-=7},function(){R(this,this.o);E(this,8);this.a-=11},function(){J(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){Yb(this,P(this));this.a-=10},function(){var a=O(this);J(this)||E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var g=b.v[a],h=b.C[a]||
|
||||
1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);J(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Xb(this));this.a-=11},function(){this.b=M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,16);this.a-=11},function(){J(this)&&(E(this,P(this)),this.a-=6);this.a-=5},kc,function(){var a=O(this);J(this)&&E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.o+-2&65535,d=1,e=0,
|
||||
f=0;0<d;){var g=b.m[a],h=b.B[a]||1,l=1==h?255:2==h?65535:-1,n=l;void 0!==g&&g[0]&&(n=g[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);J(this)&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=ec(this,N(this));this.a-=7},function(){R(this,this.o);E(this,24);this.a-=11},function(){Zb(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){I(this,P(this));this.a-=10},function(){var a=O(this);Zb(this)||E(this,a);this.a-=10},
|
||||
function(){var a=P(this);R(this,G(this));I(this,a);this.a-=18},function(){var a=O(this);Zb(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,G(this));this.a-=11},function(){this.b=ac(this,N(this));this.a-=7},function(){R(this,this.o);E(this,32);this.a-=11},function(){Zb(this)&&(E(this,P(this)),this.a-=6);this.a-=5},function(){E(this,G(this));this.a-=5},function(){var a=O(this);Zb(this)&&E(this,a);this.a-=10},function(){var a=G(this);I(this,Xb(this));Yb(this,a);this.a-=5},function(){var a=
|
||||
O(this);Zb(this)&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){this.b=fc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,40);this.a-=11},function(){this.s&128||(E(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);Sb(this,a&255|this.C&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=O(this);this.s&128||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,
|
||||
Ub(this)&255|this.b<<8);this.a-=11},function(){this.b=dc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;gc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},lc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56);
|
||||
this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!mc[b]&&Aa("Unrecognized ChipSet model: "+b);this.c=mc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T);
|
||||
L(this,this.J(G(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=Zb(this,this.c);this.a-=4},function(){this.b=Zb(this,this.D);this.a-=4},function(){this.b=Zb(this,this.f);this.a-=4},function(){this.b=Zb(this,this.F);this.a-=4},function(){this.b=Zb(this,this.g);this.a-=4},function(){this.b=Zb(this,this.i);this.a-=4},function(){this.b=Zb(this,this.J(G(this)));this.a-=7},function(){this.b=Zb(this,this.b);this.a-=4},function(){this.b=M(this,this.c);this.a-=4},function(){this.b=
|
||||
M(this,this.D);this.a-=4},function(){this.b=M(this,this.f);this.a-=4},function(){this.b=M(this,this.F);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.J(G(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=dc(this,this.c);this.a-=4},function(){this.b=dc(this,this.D);this.a-=4},function(){this.b=dc(this,this.f);this.a-=4},function(){this.b=dc(this,this.F);this.a-=4},function(){this.b=dc(this,
|
||||
this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.b=dc(this,this.J(G(this)));this.a-=7},function(){this.b=dc(this,this.b);this.a-=4},function(){this.b=$b(this,this.c);this.a-=4},function(){this.b=$b(this,this.D);this.a-=4},function(){this.b=$b(this,this.f);this.a-=4},function(){this.b=$b(this,this.F);this.a-=4},function(){this.b=$b(this,this.g);this.a-=4},function(){this.b=$b(this,this.i);this.a-=4},function(){this.b=$b(this,this.J(G(this)));this.a-=7},function(){this.b=
|
||||
$b(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this,this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.J(G(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=cc(this,this.c);this.a-=4},function(){this.b=cc(this,this.D);this.a-=4},function(){this.b=
|
||||
cc(this,this.f);this.a-=4},function(){this.b=cc(this,this.F);this.a-=4},function(){this.b=cc(this,this.g);this.a-=4},function(){this.b=cc(this,this.i);this.a-=4},function(){this.b=cc(this,this.J(G(this)));this.a-=7},function(){this.b=cc(this,this.b);this.a-=4},function(){M(this,this.c);this.a-=4},function(){M(this,this.D);this.a-=4},function(){M(this,this.f);this.a-=4},function(){M(this,this.F);this.a-=4},function(){M(this,this.g);this.a-=4},function(){M(this,this.i);this.a-=4},function(){M(this,
|
||||
this.J(G(this)));this.a-=7},function(){M(this,this.b);this.a-=4},function(){this.m&255&&(E(this,P(this)),this.a-=6);this.a-=5},function(){Vb(this,P(this));this.a-=10},function(){var a=O(this);this.m&255&&E(this,a);this.a-=10},ic,function(){var a=O(this);this.m&255&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Ub(this));this.a-=11},function(){this.b=L(this,N(this));this.a-=7},function(){R(this,this.o);E(this,0);this.a-=11},function(){this.m&255||(E(this,P(this)),this.a-=6);this.a-=
|
||||
5},jc,function(){var a=O(this);this.m&255||E(this,a);this.a-=10},ic,function(){var a=O(this);this.m&255||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=Zb(this,N(this));this.a-=7},function(){R(this,this.o);E(this,8);this.a-=11},function(){J(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){Xb(this,P(this));this.a-=10},function(){var a=O(this);J(this)||E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var g=b.v[a],h=b.C[a]||
|
||||
1,l=1==h?255:2==h?65535:-1,l=(c>>>=f)&l;if(void 0!==g&&g[0])g[0](a,l,d);f+=h<<3;a+=h;e-=h}this.a-=10},function(){var a=O(this);J(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,Wb(this));this.a-=11},function(){this.b=M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,16);this.a-=11},function(){J(this)&&(E(this,P(this)),this.a-=6);this.a-=5},jc,function(){var a=O(this);J(this)&&E(this,a);this.a-=10},function(){for(var a=N(this),b=this.j,c=this.o+-2&65535,d=1,e=0,
|
||||
f=0;0<d;){var g=b.m[a],h=b.B[a]||1,l=1==h?255:2==h?65535:-1,n=l;void 0!==g&&g[0]&&(n=g[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=h<<3;a+=h;d-=h}this.b=e&255;this.a-=10},function(){var a=O(this);J(this)&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=dc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,24);this.a-=11},function(){Yb(this)||(E(this,P(this)),this.a-=6);this.a-=5},function(){I(this,P(this));this.a-=10},function(){var a=O(this);Yb(this)||E(this,a);this.a-=10},
|
||||
function(){var a=P(this);R(this,G(this));I(this,a);this.a-=18},function(){var a=O(this);Yb(this)||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,G(this));this.a-=11},function(){this.b=$b(this,N(this));this.a-=7},function(){R(this,this.o);E(this,32);this.a-=11},function(){Yb(this)&&(E(this,P(this)),this.a-=6);this.a-=5},function(){E(this,G(this));this.a-=5},function(){var a=O(this);Yb(this)&&E(this,a);this.a-=10},function(){var a=G(this);I(this,Wb(this));Xb(this,a);this.a-=5},function(){var a=
|
||||
O(this);Yb(this)&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){this.b=ec(this,N(this));this.a-=7},function(){R(this,this.o);E(this,40);this.a-=11},function(){this.s&128||(E(this,P(this)),this.a-=6);this.a-=5},function(){var a=P(this);Rb(this,a&255|this.C&-256);this.b=a>>8;this.a-=10},function(){var a=O(this);this.s&128||E(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=O(this);this.s&128||(R(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){R(this,
|
||||
Tb(this)&255|this.b<<8);this.a-=11},function(){this.b=cc(this,N(this));this.a-=7},function(){R(this,this.o);E(this,48);this.a-=11},function(){this.s&128&&(E(this,P(this)),this.a-=6);this.a-=5},function(){this.u=G(this)&65535;this.a-=5},function(){var a=O(this);this.s&128&&E(this,a);this.a-=10},function(){this.C|=512;this.a-=4;fc(this)},function(){var a=O(this);this.s&128&&(R(this,this.o),E(this,a),this.a-=6);this.a-=11},kc,function(){M(this,N(this));this.a-=7},function(){R(this,this.o);E(this,56);
|
||||
this.a-=11}];function T(a){r.call(this,"ChipSet",a,T);var b=a.model;b&&!lc[b]&&Aa("Unrecognized ChipSet model: "+b);this.c=lc[b]||{};a.sound&&(this.I=null,window&&(this.I=window.AudioContext||window.webkitAudioContext),this.I&&new this.I);B(this)}w(T);
|
||||
var V={ba:1978.1,zc:{ca:0,td:1,xd:16,Ed:32,Nd:64,Md:128,Fa:14},za:{ca:1,Pb:1,sc:2,oc:4,pc:16,qc:32,rc:64,Fa:8},Ac:{ca:2,sd:3,Wd:4,ud:8,Id:16,Jd:32,Kd:64,vd:128,Fa:0},Rd:{ca:3},Pd:{ca:2,Fd:7},Td:{ca:3,Xd:1,Sd:2,Ld:4,Cd:8,wd:16,md:32},Qd:{ca:4},Ud:{ca:5,yd:1,zd:2,Ad:4,Bd:8,Yd:16}},W={ba:100,ka:{ca:66,vb:1,kc:2,lc:4,Hd:8,Gd:16,sb:32,rb:64,nb:128},Nb:{ca:66,INIT:0},wa:{ca:194,od:0,lb:16,uc:32,tb:48,Xb:0,Yb:32},Ra:{ca:162,Od:0,$b:0,Wb:0,Zb:0,Vb:0},ma:{Dd:{ca:98},Ba:{Kb:0,Jb:1,xc:2,Fc:4,Qb:5,vc:6,Vd:7},
|
||||
Ua:16383}},mc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;this.v=a;this.m=Va(a,"Keyboard");this.Z=Va(a,"SerialPort");this.video=Va(a,"Video");hb(b,this,this.c.$a);ib(b,this,this.c.ab)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.zc.Fa,V.za.Fa,V.Ac.Fa,0,0,0,0]];
|
||||
Ua:16383}},lc={SI1978:V,VT100:W};T.prototype.V=function(){return!1};T.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;this.v=a;this.m=Va(a,"Keyboard");this.Z=Va(a,"SerialPort");this.video=Va(a,"Video");hb(b,this,this.c.$a);ib(b,this,this.c.ab)};T.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.ia=function(a){return a?this.save():!0};V.INIT=[[V.zc.Fa,V.za.Fa,V.Ac.Fa,0,0,0,0]];
|
||||
W.INIT=[[W.Nb.INIT,W.ka.kc|W.ka.lc],[W.wa.Xb,W.wa.Yb],[W.Ra.$b,W.Ra.Wb,W.Ra.Zb,W.Ra.Vb],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
|
||||
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.M("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.c.ba){case V.ba:a.set(0,[this.W,this.g,this.X,this.C,this.H,this.S,this.T]);break;case W.ba:a.set(0,[this.L,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.O]),a.set(3,[this.B,this.b,this.w,this.K,this.i])}return a.data()};
|
||||
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ba){case V.ba:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.H=b[4],this.S=b[5],this.T=b[6],!0;case W.ba:return this.L=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.O=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.K=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Sc=function(){return this.W};k.Tc=function(){return this.g};k.Uc=function(){return this.X};
|
||||
k.Rc=function(){return this.C>>8-this.H&255};k.$c=function(a,b){this.H=b};k.bd=function(a,b){this.S=b};k.ad=function(a,b){this.C=b<<8|this.C>>8};k.cd=function(a,b){this.T=b};k.dd=function(){};function nc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
|
||||
k.Vc=function(){var a=this.u,a=a&~W.ka.rb;if((Hb(this.a)&64)<<1&&(a|=W.ka.rb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.ma.Ba.Jb:this.B=this.B<<1|b;break;case W.ma.Ba.Qb:b=nc(this);this.i[b]=W.ma.Ua;break;case W.ma.Ba.Kb:this.b=this.b<<1|b;break;case W.ma.Ba.Fc:b=nc(this);c=this.b&W.ma.Ua;this.i[b]=c;break;case W.ma.Ba.vc:b=nc(this);c=this.i[b];null==c&&(c=W.ma.Ua);this.b=c;break;case W.ma.Ba.xc:this.b<<=1,this.K=this.b&W.ma.Ua+1}}a&=~W.ka.sb;this.K&&(a|=W.ka.sb);a&=~W.ka.nb;if(b=this.m){b=
|
||||
this.m;if(c=b.f)c=b.a,c=Hb(b.a)>=b.m+c.la*c.I/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.nb);a&=~W.ka.vb;this.Z&&this.Z.fa&1&&(a|=W.ka.vb);return this.u=a};k.ed=function(a,b){this.L=b};k.hd=function(a,b){this.w=b};k.gd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.pa!==a&&((b.pa=a)?Nb(b,!0):b.sa=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.O=a}};
|
||||
k.fd=function(a,b){b&W.wa.uc?(b&=W.wa.tb,this.s!=b&&(this.s=b,this.video&&(this.video.Db=this.s==W.wa.tb?50:60))):(b&=W.wa.lb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.wa.lb?132:80,a.K=b,a.U=a.xa,80<b&&a.U--,oc(a)&&pc(a))))};V.$a={0:T.prototype.Sc,1:T.prototype.Tc,2:T.prototype.Uc,3:T.prototype.Rc};V.ab={2:T.prototype.$c,3:T.prototype.bd,4:T.prototype.ad,5:T.prototype.cd,6:T.prototype.dd};W.$a={66:T.prototype.Vc};W.ab={66:T.prototype.ed,98:T.prototype.hd,162:T.prototype.gd,194:T.prototype.fd};
|
||||
ya(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new T(d);Pa(d,c)}});function qc(a){r.call(this,"ROM",a,qc);this.b=null;this.m=a.addr;this.c=a.size;this.v=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;la(a,null,!0,function(a,b,f){rc(c,a,b,f)})}}w(qc);var sc=[0,5];
|
||||
qc.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;tc(this)};qc.prototype.ga=function(){this.i&&(this.N&&this.N.a(this.id,this.m,this.c,this.i),delete this.i);return!0};qc.prototype.ia=function(){return!0};
|
||||
function rc(a,b,c,d){if(d)a.M("Unable to load system ROM (error "+d+": "+b+")");else{Ka(a.Ta,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.M("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);tc(a)}}
|
||||
function tc(a){if(!Ra(a))if(!a.g)B(a);else if(a.b&&a.j){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+p(a.b.length,8,!0)+") does not match specified size ("+p(a.c,8,!0)+")";a.l.error=!0;a.M(b)}else if(uc(a,a.m)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,g=d.c,h=[],l=d.m>>>f.j;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.c;f=d.j;d=d.c;g=0;for(e>>>=f.j;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.c}}delete a.b}B(a)}}
|
||||
function uc(a,b){if(Za(a.j,b,a.c,a.v?1:ob)){var c;for(c=0;c<a.b.length;c++)db(a.j,b+c,a.b[c]);if(a.v&&256==b){for(c=0;c<sc.length;c++)db(a.j,sc[c],118);Rb(a.a,function(a){return function(b){if(0<=sc.indexOf(b)){var c=!1,d=a.a,e=a.N;if(5==b)switch(c=!0,d.D){case 2:vc(a,String.fromCharCode(d.F));break;case 9:for(var l=Xb(d),n="",u=255;u--;){var y=a.a.J(l++);if(36==y)break;n+=String.fromCharCode(y)}vc(a,n);break;default:c=!1}c?kc.call(d):e&&(a.da("\nCP/M vector "+p(b,4,!0)),E(d,b),Db(e));b=!0}else b=
|
||||
!1;return b}}(a));Tb(a.a,b)}return!0}return!1}function vc(a,b){b=b.replace(/\r/g,"");a.va&&(a.va.value+=b,a.va.scrollTop=a.va.scrollHeight)}ya(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new qc(d);Pa(d,c)}});function wc(a){r.call(this,"RAM",a,wc);this.f=a.addr;this.c=a.size;this.b=!1}w(wc);k=wc.prototype;k.qa=function(a,b,c,d){this.j=b;this.a=c;this.N=d;B(this)};k.ga=function(a,b){b||this.reset();return!0};k.ia=function(a){return a?this.save():!0};
|
||||
k.reset=function(){!this.b&&this.c&&Za(this.j,this.f,this.c,1)&&(this.b=!0);this.b||q("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ya(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new wc(d);Pa(d,c)}});function X(a){r.call(this,"Keyboard",a,X);(a=a.model)&&!xc[a]&&Aa("Unrecognized Keyboard8080 model: "+a);this.b=xc[a]||{};this.reset();B(this)}w(X);var zc={};zc[m.jb]=37;zc[m.mb]=39;zc[m.ob]=32;
|
||||
var Ac={ba:1978.1,h:{},kb:zc,Ga:{},ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={ba:100,h:{},kb:{},Ga:{},ya:{setup:120},Lb:{ca:130,INIT:127},ha:{ca:130,gc:1,fc:2,ec:4,dc:8,hc:16,qb:32,pb:63,yc:64,nd:128,INIT:0},cc:127};Y.h[46]=3;Y.h[m.nc]=5;Y.h[m.mc]=6;Y.h[m.Hc]=7;Y.h[m.Bc]=8;Y.h[m.Ec]=9;Y.h[m.Q]=10;Y.h[39]=16;Y.h[221]=20;Y.h[219]=21;Y.h[m.Ub]=22;Y.h[m.Cc]=23;Y.h[m.tc]=24;Y.h[m.E]=25;Y.h[49]=26;Y.h[37]=32;Y.h[40]=34;Y.h[117]=35;Y.h[19]=35;Y.h[192]=36;Y.h[189]=37;Y.h[57]=38;Y.h[55]=39;
|
||||
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];k=T.prototype;k.reset=function(){this.c.INIT&&!this.restore(this.c.INIT)&&this.L("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.c.ba){case V.ba:a.set(0,[this.W,this.g,this.X,this.C,this.M,this.S,this.U]);break;case W.ba:a.set(0,[this.K,this.u]),a.set(1,[this.o,this.s]),a.set(2,[this.f,this.G,this.R,this.N]),a.set(3,[this.B,this.b,this.w,this.H,this.i])}return a.data()};
|
||||
k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.c.ba){case V.ba:return this.W=b[0],this.g=b[1],this.X=b[2],this.C=b[3],this.M=b[4],this.S=b[5],this.U=b[6],!0;case W.ba:return this.K=b[0],this.u=b[1],b=a[1],this.o=b[0],this.s=b[1],b=a[2],this.f=b[0],this.G=b[1],this.R=b[2],this.N=b[3],b=a[3],this.B=b[0],this.b=b[1],this.w=b[2],this.H=b[3],this.i=b[4],!0}return!1};k.start=function(){};k.stop=function(){};k.Sc=function(){return this.W};k.Tc=function(){return this.g};k.Uc=function(){return this.X};
|
||||
k.Rc=function(){return this.C>>8-this.M&255};k.$c=function(a,b){this.M=b};k.bd=function(a,b){this.S=b};k.ad=function(a,b){this.C=b<<8|this.C>>8};k.cd=function(a,b){this.U=b};k.dd=function(){};function mc(a){var b=0,c=0,d=~a.B;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
|
||||
k.Vc=function(){var a=this.u,a=a&~W.ka.rb;if((Gb(this.a)&64)<<1&&(a|=W.ka.rb,a!=this.u)){var b,c;b=this.w&1;switch(this.w>>1&7){case W.ma.Ba.Jb:this.B=this.B<<1|b;break;case W.ma.Ba.Qb:b=mc(this);this.i[b]=W.ma.Ua;break;case W.ma.Ba.Kb:this.b=this.b<<1|b;break;case W.ma.Ba.Fc:b=mc(this);c=this.b&W.ma.Ua;this.i[b]=c;break;case W.ma.Ba.vc:b=mc(this);c=this.i[b];null==c&&(c=W.ma.Ua);this.b=c;break;case W.ma.Ba.xc:this.b<<=1,this.H=this.b&W.ma.Ua+1}}a&=~W.ka.sb;this.H&&(a|=W.ka.sb);a&=~W.ka.nb;if(b=this.m){b=
|
||||
this.m;if(c=b.f)c=b.a,c=Gb(b.a)>=b.m+c.la*c.K/1E3*1.2731488;c&&(b.f=!1);b=!b.f}b&&(a|=W.ka.nb);a&=~W.ka.vb;this.Z&&this.Z.fa&1&&(a|=W.ka.vb);return this.u=a};k.ed=function(a,b){this.K=b};k.hd=function(a,b){this.w=b};k.gd=function(a,b){a=b&3;switch(b>>2&3){case 0:this.f=this.f&-4|a;break;case 1:this.f=this.f&-13|a<<2;this.video&&(b=this.video,a=this.f,b.pa!==a&&((b.pa=a)?Mb(b,!0):b.sa=!0));break;case 2:switch(a){case 0:this.G=~this.G;break;case 2:case 3:this.R=3-a}break;case 3:this.N=a}};
|
||||
k.fd=function(a,b){b&W.wa.uc?(b&=W.wa.tb,this.s!=b&&(this.s=b,this.video&&(this.video.Db=this.s==W.wa.tb?50:60))):(b&=W.wa.lb,this.o!=b&&(this.o=b,this.video&&(a=this.video,b=this.o==W.wa.lb?132:80,a.H=b,a.T=a.xa,80<b&&a.T--,nc(a)&&oc(a))))};V.$a={0:T.prototype.Sc,1:T.prototype.Tc,2:T.prototype.Uc,3:T.prototype.Rc};V.ab={2:T.prototype.$c,3:T.prototype.bd,4:T.prototype.ad,5:T.prototype.cd,6:T.prototype.dd};W.$a={66:T.prototype.Vc};W.ab={66:T.prototype.ed,98:T.prototype.hd,162:T.prototype.gd,194:T.prototype.fd};
|
||||
ya(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new T(d);Pa(d,c)}});function pc(a){r.call(this,"ROM",a,pc);this.b=null;this.m=a.addr;this.c=a.size;this.v=a.writable;this.f=a.alias;this.g=a.file;this.o=ba(this.g);if(this.g){a=this.g;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;la(a,null,!0,function(a,b,f){qc(c,a,b,f)})}}w(pc);var rc=[0,5];
|
||||
pc.prototype.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;sc(this)};pc.prototype.ga=function(){this.i&&(this.O&&this.O.a(this.id,this.m,this.c,this.i),delete this.i);return!0};pc.prototype.ia=function(){return!0};
|
||||
function qc(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ka(a.Ta,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.L("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);sc(a)}}
|
||||
function sc(a){if(!Ra(a))if(!a.g)B(a);else if(a.b&&a.j){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+p(a.b.length,8,!0)+") does not match specified size ("+p(a.c,8,!0)+")";a.l.error=!0;a.L(b)}else if(tc(a,a.m)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,g=d.c,h=[],l=d.m>>>f.j;0<g&&l<f.b.length;)h.push(f.b[l++]),g-=f.c;f=d.j;d=d.c;g=0;for(e>>>=f.j;0<d&&e<f.b.length;){l=h[g++];if(!l)break;f.b[e++]=l;d-=f.c}}delete a.b}B(a)}}
|
||||
function tc(a,b){if(Za(a.j,b,a.c,a.v?1:ob)){var c;for(c=0;c<a.b.length;c++)db(a.j,b+c,a.b[c]);if(a.v&&256==b){for(c=0;c<rc.length;c++)db(a.j,rc[c],118);Qb(a.a,function(a){return function(b){if(0<=rc.indexOf(b)){var c=!1,d=a.a,e=a.O;if(5==b)switch(c=!0,d.D){case 2:uc(a,String.fromCharCode(d.F));break;case 9:for(var l=Wb(d),n="",u=255;u--;){var y=a.a.J(l++);if(36==y)break;n+=String.fromCharCode(y)}uc(a,n);break;default:c=!1}c?jc.call(d):e&&(a.da("\nCP/M vector "+p(b,4,!0)),E(d,b),Db(e));b=!0}else b=
|
||||
!1;return b}}(a));Sb(a.a,b)}return!0}return!1}function uc(a,b){b=b.replace(/\r/g,"");a.va&&(a.va.value+=b,a.va.scrollTop=a.va.scrollHeight)}ya(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new pc(d);Pa(d,c)}});function vc(a){r.call(this,"RAM",a,vc);this.f=a.addr;this.c=a.size;this.b=!1}w(vc);k=vc.prototype;k.qa=function(a,b,c,d){this.j=b;this.a=c;this.O=d;B(this)};k.ga=function(a,b){b||this.reset();return!0};k.ia=function(a){return a?this.save():!0};
|
||||
k.reset=function(){!this.b&&this.c&&Za(this.j,this.f,this.c,1)&&(this.b=!0);this.b||q("No RAM allocated")};k.save=function(){return null};k.restore=function(){return!0};ya(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vc(d);Pa(d,c)}});function X(a){r.call(this,"Keyboard",a,X);(a=a.model)&&!wc[a]&&Aa("Unrecognized Keyboard8080 model: "+a);this.b=wc[a]||{};this.reset();B(this)}w(X);var yc={};yc[m.jb]=37;yc[m.mb]=39;yc[m.ob]=32;
|
||||
var zc={ba:1978.1,h:{},kb:yc,Ga:{},ya:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},Y={ba:100,h:{},kb:{},Ga:{},ya:{setup:120},Lb:{ca:130,INIT:127},ha:{ca:130,gc:1,fc:2,ec:4,dc:8,hc:16,qb:32,pb:63,yc:64,nd:128,INIT:0},cc:127};Y.h[46]=3;Y.h[m.nc]=5;Y.h[m.mc]=6;Y.h[m.Hc]=7;Y.h[m.Bc]=8;Y.h[m.Ec]=9;Y.h[m.Q]=10;Y.h[39]=16;Y.h[221]=20;Y.h[219]=21;Y.h[m.Ub]=22;Y.h[m.Cc]=23;Y.h[m.tc]=24;Y.h[m.E]=25;Y.h[49]=26;Y.h[37]=32;Y.h[40]=34;Y.h[117]=35;Y.h[19]=35;Y.h[192]=36;Y.h[189]=37;Y.h[57]=38;Y.h[55]=39;
|
||||
Y.h[52]=40;Y.h[51]=41;Y.h[27]=42;Y.h[38]=48;Y.h[114]=49;Y.h[112]=50;Y.h[8]=51;Y.h[187]=52;Y.h[48]=53;Y.h[56]=54;Y.h[54]=55;Y.h[53]=56;Y.h[50]=57;Y.h[9]=58;Y.h[103]=64;Y.h[115]=65;Y.h[113]=66;Y.h[96]=67;Y.h[118]=68;Y.h[220]=69;Y.h[m.ob]=70;Y.h[m.bc]=71;Y.h[m.Sb]=72;Y.h[m.Rb]=73;Y.h[m.jb]=74;Y.h[104]=80;Y.h[2013]=81;Y.h[98]=82;Y.h[97]=83;Y.h[222]=85;Y.h[186]=86;Y.h[m.ac]=87;Y.h[m.Tb]=88;Y.h[m.mb]=89;Y.h[m.wc]=90;Y.h[110]=96;Y.h[116]=97;Y.h[101]=98;Y.h[100]=99;Y.h[13]=100;Y.h[190]=101;Y.h[188]=102;
|
||||
Y.h[m.jc]=103;Y.h[m.Mb]=104;Y.h[m.Gc]=105;Y.h[119]=106;Y.h[105]=112;Y.h[99]=113;Y.h[102]=114;Y.h[109]=115;Y.h[191]=117;Y.h[m.ic]=118;Y.h[m[" "]]=119;Y.h[m.Dc]=120;Y.h[m.Ob]=121;Y.h[m.Ic]=122;Y.h[120]=123;Y.h[17]=124;Y.h[16]=125;Y.h[20]=126;Y.Ga={l4:Y.ha.gc,l3:Y.ha.fc,l2:Y.ha.ec,l1:Y.ha.dc,locked:Y.ha.hc,local:Y.ha.qb,online:~Y.ha.qb};var xc={SI1978:Ac,VT100:Y};
|
||||
X.prototype.V=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.A[e]){if("led"==a&&this.b.Ga[b])return this.A[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Bc(d,a,!0)},c.onkeyup=function(a){return Bc(d,a,!1)},!0;default:if(this.b.ya&&void 0!==this.b.ya[b])return this.A[e]=c,a=function(a,b){return function(c){c.preventDefault();Cc(a,b,!0)}}(this,this.b.ya[b]),b=function(a,b){return function(){Cc(a,b,!1)}}(this,this.b.ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};X.prototype.qa=function(a,b,c,d){this.v=a;this.a=c;this.N=d;this.K=Va(a,"ChipSet");hb(b,this,this.b.$a);ib(b,this,this.b.ab)};X.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};X.prototype.ia=function(a){return a?this.save():!0};Y.INIT=[[Y.ha.INIT,Y.Lb.INIT,!1,0,-1]];k=X.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.M("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.b.ba){case Y.ba:a.set(0,[this.i,this.g,this.f,this.m,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.ba){case Ac.ba:return!0;case Y.ba:return this.i=b[0],Dc(this,this.i&Y.ha.pb),this.g=b[1],this.f=b[2],this.m=b[3],this.c=b[4],!0}return!1};function Dc(a,b){for(var c in a.b.Ga){var d=a.A["led-"+c];if(d){var e=a.b.Ga[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
|
||||
function Bc(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.b.kb[e]||e,!a.b.h[e]){for(var f in a.b.ya)if(a.b.ya[f]===e){e=f;break a}e=null}e&&(d=Cc(a,e,c),b.preventDefault());return d}
|
||||
function Cc(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].ib==b)break a;d=-1}if(c)0>d?a.j.push({ib:b,fb:Date.now(),Ya:!1}):(a.j[d].fb=Date.now(),a.j[d].Ya=!1);else if(0<=d){if(!a.j[d].Ya){var e=a.j[d].fb;if(e&&100>Date.now()-e)return a.j[d].Ya=!0,Ec(a),!0}a.j.splice(d,1)}if(a.K){d=0;switch(b){case "1p":d=V.za.oc;break;case "2p":d=V.za.sc;break;case "coin":d=V.za.Pb;break;case "left":d=V.za.qc;break;case "right":d=V.za.rc;break;case "fire":d=V.za.pc}d&&(a=a.K,b=d,a.g&=~b,c&&(a.g|=b))}return!0}
|
||||
function Ec(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Ya){var d=a.j[b].ib,e=100-(Date.now()-a.j[b].fb);if(0<e){if(0>c||c>e)c=e}else{Cc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Ec(a)},c)}k.Wc=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Y.h[a.ib],a&128&&(a&=127)):(this.c=-1,a=Y.cc),this.g=a,hc(this.a,1));return a};k.jd=function(a,b){this.i=b;this.f=!0;this.m=Hb(this.a);Dc(this,b&Y.ha.pb);b&Y.ha.yc&&(this.c=0,hc(this.a,1))};Y.$a={130:X.prototype.Wc};
|
||||
Y.h[m.jc]=103;Y.h[m.Mb]=104;Y.h[m.Gc]=105;Y.h[119]=106;Y.h[105]=112;Y.h[99]=113;Y.h[102]=114;Y.h[109]=115;Y.h[191]=117;Y.h[m.ic]=118;Y.h[m[" "]]=119;Y.h[m.Dc]=120;Y.h[m.Ob]=121;Y.h[m.Ic]=122;Y.h[120]=123;Y.h[17]=124;Y.h[16]=125;Y.h[20]=126;Y.Ga={l4:Y.ha.gc,l3:Y.ha.fc,l2:Y.ha.ec,l1:Y.ha.dc,locked:Y.ha.hc,local:Y.ha.qb,online:~Y.ha.qb};var wc={SI1978:zc,VT100:Y};
|
||||
X.prototype.V=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.A[e]){if("led"==a&&this.b.Ga[b])return this.A[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return Ac(d,a,!0)},c.onkeyup=function(a){return Ac(d,a,!1)},!0;default:if(this.b.ya&&void 0!==this.b.ya[b])return this.A[e]=c,a=function(a,b){return function(c){c.preventDefault();Bc(a,b,!0)}}(this,this.b.ya[b]),b=function(a,b){return function(){Bc(a,b,!1)}}(this,this.b.ya[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
|
||||
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};X.prototype.qa=function(a,b,c,d){this.v=a;this.a=c;this.O=d;this.M=Va(a,"ChipSet");hb(b,this,this.b.$a);ib(b,this,this.b.ab)};X.prototype.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};X.prototype.ia=function(a){return a?this.save():!0};Y.INIT=[[Y.ha.INIT,Y.Lb.INIT,!1,0,-1]];k=X.prototype;k.reset=function(){this.j=[];this.b.INIT&&!this.restore(this.b.INIT)&&this.L("reset error")};
|
||||
k.save=function(){var a=new F(this);switch(this.b.ba){case Y.ba:a.set(0,[this.i,this.g,this.f,this.m,-1])}return a.data()};k.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.b.ba){case zc.ba:return!0;case Y.ba:return this.i=b[0],Cc(this,this.i&Y.ha.pb),this.g=b[1],this.f=b[2],this.m=b[3],this.c=b[4],!0}return!1};function Cc(a,b){for(var c in a.b.Ga){var d=a.A["led-"+c];if(d){var e=a.b.Ga[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
|
||||
function Ac(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.b.kb[e]||e,!a.b.h[e]){for(var f in a.b.ya)if(a.b.ya[f]===e){e=f;break a}e=null}e&&(d=Bc(a,e,c),b.preventDefault());return d}
|
||||
function Bc(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].ib==b)break a;d=-1}if(c)0>d?a.j.push({ib:b,fb:Date.now(),Ya:!1}):(a.j[d].fb=Date.now(),a.j[d].Ya=!1);else if(0<=d){if(!a.j[d].Ya){var e=a.j[d].fb;if(e&&100>Date.now()-e)return a.j[d].Ya=!0,Dc(a),!0}a.j.splice(d,1)}if(a.M){d=0;switch(b){case "1p":d=V.za.oc;break;case "2p":d=V.za.sc;break;case "coin":d=V.za.Pb;break;case "left":d=V.za.qc;break;case "right":d=V.za.rc;break;case "fire":d=V.za.pc}d&&(a=a.M,b=d,a.g&=~b,c&&(a.g|=b))}return!0}
|
||||
function Dc(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Ya){var d=a.j[b].ib,e=100-(Date.now()-a.j[b].fb);if(0<e){if(0>c||c>e)c=e}else{Bc(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Dc(a)},c)}k.Wc=function(){var a=this.g;0<=this.c&&(this.c<this.j.length?(a=this.j[this.c],this.c++,a=Y.h[a.ib],a&128&&(a&=127)):(this.c=-1,a=Y.cc),this.g=a,gc(this.a,1));return a};k.jd=function(a,b){this.i=b;this.f=!0;this.m=Gb(this.a);Cc(this,b&Y.ha.pb);b&Y.ha.yc&&(this.c=0,gc(this.a,1))};Y.$a={130:X.prototype.Wc};
|
||||
Y.ab={130:X.prototype.jd};ya(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new X(d);Pa(d,c)}});
|
||||
function Fc(a,b,c,d,e){var f=this;this.Ia=ra("Gecko/");var g=["","moz","ms","webkit"];r.call(this,"Video",a,Fc);this.C=a.screenWidth;this.w=a.screenHeight;this.ea=a.bufferAddr;this.Kc=a.bufferRAM;var h=a.bufferFormat;this.T=h&&Gc[h.toUpperCase()]||Hc;this.K=a.bufferCols;this.W=a.bufferRows;this.xa=this.U=a.cellWidth||1;this.P=a.cellHeight||1;this.X=null;this.Ha=!1;this.ja=a.bufferBits||1;this.Lc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.M("unsupported buffer rotation: "+
|
||||
this.c),this.c=0);this.la=a.interruptRate;this.wb=a.refreshRate||60;this.u=b;this.f=c;this.R=(this.Oc=d)||b||null;this.Jc=this.C;this.Ib=this.w;this.Ca=this.C/this.K|0;this.Da=this.w/this.W|0;1<this.P&&(this.W++,this.pa=0,this.sa=!1);b=a.smoothing;(c=Ea.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.M("unsupported screen rotation: "+
|
||||
this.g),this.g=0):(this.f.translate(0,this.w),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.w/this.C,this.C/this.w));if(this.b=e)if(this.b.Ea=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ea){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Ic(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
|
||||
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Ic(f,null)},!1);break}}if(this.H=a.fontROM)"json"!=ca(this.H)&&(this.H=ea()+"/api/v1/dump?file="+this.H+"&format=bytes"),la(this.H,null,!0,function(a,b,c){Jc(f,a,b,c)});this.ua={}}w(Fc);var Hc=0,Gc={SI1978:1,VT100:2};
|
||||
function oc(a){a.o=a.K*a.U;a.G=a.W*a.P;var b=a.o,c=a.G;a.c&&(b=a.G,c=a.o);a.B=0;if(!a.Kc&&(a.B=(a.o*a.ja>>3)*a.G,!Za(a.j,a.ea,a.B,3)))return!1;a.B?(a.Ja=a.f.createImageData(b,c),a.La=16/a.ja|0,Kc(a,a.B>>1)):Kc(a,(a.K+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.ra=a.s.getContext("2d");a.I={};a.S=1<<a.ja;a.L=Array(a.S+2);a.L[0]=[0,0,0,255];a.L[1]=[255,255,255,255];1==a.T&&(a.L[a.S+0]=[255,255,0,255],a.L[a.S+1]=[0,255,0,255]);2==a.T&&(a.Db=60,a.ta=!1,a.Z=Array(a.K));return!0}
|
||||
Fc.prototype.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;oc(this);if(this.m=Va(a,"Keyboard")){for(var e in this.ua)this.m.V("led",e,this.ua[e]);this.u&&this.m.V(this.Oc?"textarea":"canvas","kbd",this.R)}var f=this;this.xb=Jb(this.a,function(){Nb(f)});Lb(this.a,this.xb,1E3/Math.max(this.wb,this.la));this.Va=0;this.H||B(this)};
|
||||
function Jc(a,b,c,d){if(d)a.M("Unable to load font ROM (error "+d+": "+b+")");else{Ka(a.Ta,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.X=f,pc(a);else{a.M("Unrecognized font data length ("+f.length+")");return}}catch(g){a.M("Font ROM data error: "+g.message);return}(a.f||a.N)&&B(a)}}
|
||||
function pc(a){a.X&&(a.Ha=2==a.T,a.I[96]=[Lc(a,a.U,a.P),Lc(a,a.U,a.P,a.ta)],a.I[64]=[Lc(a,2*a.U,a.P),Lc(a,2*a.U,a.P,a.ta)],a.I[32]=a.I[0]=[Lc(a,2*a.U,2*a.P),Lc(a,2*a.U,2*a.P,a.ta)])}
|
||||
function Lc(a,b,c,d){var e=8>=a.xa?8:16,f=8<e?15:0,g=a.X.length/e,h=!1===d,l={U:b,P:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var n=l.context.createImageData(b,c),u=0;u<g;u++){for(var y=0,H=y;y<a.P;y++)for(var x=u*e+(f+y&e-1),x=d&&8==y?255:a.X[x],t=0;t<c/a.P;t++){for(var C=0,Q=0,U=Q;Q<a.U;Q++){for(var Z=x&128>>(7<Q?7:Q),C=a.Ha&&!Z&&C?C:Z,sa=0;sa<b/a.U;sa++)h&&(C=!C),Mc(a,n,U,H,C?1:0),U++;C=Z}H++}l.context.putImageData(n,
|
||||
(u&15)*b,(u>>4)*c)}return l}Fc.prototype.ga=function(){return!0};Fc.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ua[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ea?c.onclick=function(){d.Ea()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
Fc.prototype.Ea=function(){var a=!1;if(this.b){if(this.b.Ea){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.Ia?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ea();a=!0}this.R&&this.R.focus()}return a};
|
||||
function Ic(a,b){!b&&a.b&&(a.Ia?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Ka=b;a.O=!1;if(void 0===a.i||a.i.length!=a.Ka)a.i=Array(a.Ka)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.T&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
|
||||
function Nb(a,b){var c=!0;if(!b){a.la&&(120==a.la?a.Va&1?(hc(a.a,2),c=!1):hc(a.a,1):hc(a.a,4));if(c&&a.O&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ea>>>d.j;0<e&&g<d.b.length;)d.b[g].na&&(d.b[g].na=f=!1,d.b[g].Ab=!0),e-=d.c,g++;f&&(c=!1)}Lb(a.a,a.xb,1E3/Math.max(a.wb,a.la));a.Va++}if(c)if(1<a.U)switch(a.T){case 2:for(var c=a.ea,d=-1,e=0,f=60==a.Db?2:5,h=g=0,l=-1;e<a.W;){var n=0,u=c,y=d,H=a.K;for(96!=y&&(H>>=1);;){var x=bb(a.j,u++);if(127==(x&127)){var t=bb(a.j,u++),d=t&96,c=(t&15)<<8|bb(a.j,u),c=c+(t&16?
|
||||
8192:16384);break}if(n<H)a.Z[n++]=x;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=y)for(u=a.O&&a.i[g]==H,a.i[g++]=H,H=0;H<n;H++){x=a.Z[H];if(!u||x!==a.i[g]){a.i[l=g]=x;var t=a,C=a.ra,Q=x&127;if(x=t.I[y][x&128?1:0]){var U=(Q&15)*x.U,Q=(Q>>4)*x.P,Z,sa,Ma,eb,yc=x.U,Kb=x.P;C?(Z=H*t.U,sa=e*t.P,Ma=t.U,eb=t.P):(Z=H*t.Ca,sa=e*t.Da,Ma=t.Ca,eb=t.Da);x.U>t.U&&(Z*=2,Ma*=2);x.P>t.P&&(y||(Q+=t.P),Kb=t.P);C?C.drawImage(x.canvas,U,Q,yc,Kb,Z,sa,Ma,eb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,yc,Kb,Z,
|
||||
sa,Ma,eb))}h++}g++}e++}}a.O=!0;!b&&a.sa&&1==h&&(a.i[l]=-1,h=0);a.sa=!1;(h||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.P,0,0,a.Jc,a.Ib)}else{e=a.ea;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;y=d=0;u=a.ja;H=(1<<u)-1;a.Lc&&(u=-u,y=16+u);for(;e<f;){t=a.j;C=e;x=C&t.f;U=(C&t.g)>>>t.j;t=x!=t.f?t.b[U].Eb(x,C):t.b[U++].bb(x,C)|t.b[U&t.o].bb(0,C+1)<<8;if(a.O&&t===a.i[g])h+=a.La;else{a.i[g]=t;(C=y)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.La;x--;)U=t>>C&H,Mc(a,a.Ja,h++,l,U),C+=u;h>n&&(n=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=
|
||||
2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.O=!0;b<a.o&&(e=n-b,d-=c,a.c&&(f=b,g=e,b=c,e=d,c=a.o-(f+g),d=g),a.ra.putImageData(a.Ja,0,0,b,c,e,d),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.w))}}
|
||||
function Ec(a,b,c,d,e){var f=this;this.Ia=ra("Gecko/");var g=["","moz","ms","webkit"];r.call(this,"Video",a,Ec);this.C=a.screenWidth;this.w=a.screenHeight;this.ea=a.bufferAddr;this.Kc=a.bufferRAM;var h=a.bufferFormat;this.U=h&&Fc[h.toUpperCase()]||Gc;this.H=a.bufferCols;this.W=a.bufferRows;this.xa=this.T=a.cellWidth||1;this.P=a.cellHeight||1;this.X=null;this.Ha=!1;this.ja=a.bufferBits||1;this.Lc=a.bufferLeft||0;if(this.c=a.bufferRotate)this.c=this.c%360,0<this.c&&(this.c-=360),-90!=this.c&&(this.L("unsupported buffer rotation: "+
|
||||
this.c),this.c=0);this.la=a.interruptRate;this.wb=a.refreshRate||60;this.u=b;this.f=c;this.R=(this.Oc=d)||b||null;this.Jc=this.C;this.Ib=this.w;this.Ca=this.C/this.H|0;this.Da=this.w/this.W|0;1<this.P&&(this.W++,this.pa=0,this.sa=!1);b=a.smoothing;(c=Ea.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<g.length;c++)if(d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.f[d]){this.f[d]=b;break}if(this.g=a.screenRotate)this.g=this.g%360,0<this.g&&(this.g-=360),-90!=this.g?(this.L("unsupported screen rotation: "+
|
||||
this.g),this.g=0):(this.f.translate(0,this.w),this.f.rotate(this.g*Math.PI/180),this.f.scale(this.w/this.C,this.C/this.w));if(this.b=e)if(this.b.Ea=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.Ea){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Hc(f,document.fullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);
|
||||
break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Hc(f,null)},!1);break}}if(this.M=a.fontROM)"json"!=ca(this.M)&&(this.M=ea()+"/api/v1/dump?file="+this.M+"&format=bytes"),la(this.M,null,!0,function(a,b,c){Ic(f,a,b,c)});this.ua={}}w(Ec);var Gc=0,Fc={SI1978:1,VT100:2};
|
||||
function nc(a){a.o=a.H*a.T;a.G=a.W*a.P;var b=a.o,c=a.G;a.c&&(b=a.G,c=a.o);a.B=0;if(!a.Kc&&(a.B=(a.o*a.ja>>3)*a.G,!Za(a.j,a.ea,a.B,3)))return!1;a.B?(a.Ja=a.f.createImageData(b,c),a.La=16/a.ja|0,Jc(a,a.B>>1)):Jc(a,(a.H+1)*a.W);a.s=document.createElement("canvas");a.s.width=b;a.s.height=c;a.ra=a.s.getContext("2d");a.I={};a.S=1<<a.ja;a.K=Array(a.S+2);a.K[0]=[0,0,0,255];a.K[1]=[255,255,255,255];1==a.U&&(a.K[a.S+0]=[255,255,0,255],a.K[a.S+1]=[0,255,0,255]);2==a.U&&(a.Db=60,a.ta=!1,a.Z=Array(a.H));return!0}
|
||||
Ec.prototype.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;nc(this);if(this.m=Va(a,"Keyboard")){for(var e in this.ua)this.m.V("led",e,this.ua[e]);this.u&&this.m.V(this.Oc?"textarea":"canvas","kbd",this.R)}var f=this;this.xb=Ib(this.a,function(){Mb(f)});Kb(this.a,this.xb,1E3/Math.max(this.wb,this.la));this.Va=0;this.M||B(this)};
|
||||
function Ic(a,b,c,d){if(d)a.L("Unable to load font ROM (error "+d+": "+b+")");else{Ka(a.Ta,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){q("Empty font ROM: "+b);return}if(1==f.length){q(f[0]);return}if(2048==f.length)a.X=f,oc(a);else{a.L("Unrecognized font data length ("+f.length+")");return}}catch(g){a.L("Font ROM data error: "+g.message);return}(a.f||a.O)&&B(a)}}
|
||||
function oc(a){a.X&&(a.Ha=2==a.U,a.I[96]=[Kc(a,a.T,a.P),Kc(a,a.T,a.P,a.ta)],a.I[64]=[Kc(a,2*a.T,a.P),Kc(a,2*a.T,a.P,a.ta)],a.I[32]=a.I[0]=[Kc(a,2*a.T,2*a.P),Kc(a,2*a.T,2*a.P,a.ta)])}
|
||||
function Kc(a,b,c,d){var e=8>=a.xa?8:16,f=8<e?15:0,g=a.X.length/e,h=!1===d,l={T:b,P:c};l.canvas=document.createElement("canvas");l.canvas.width=16*b;l.canvas.height=g/16*c;l.context=l.canvas.getContext("2d");for(var n=l.context.createImageData(b,c),u=0;u<g;u++){for(var y=0,H=y;y<a.P;y++)for(var x=u*e+(f+y&e-1),x=d&&8==y?255:a.X[x],t=0;t<c/a.P;t++){for(var C=0,Q=0,U=Q;Q<a.T;Q++){for(var Z=x&128>>(7<Q?7:Q),C=a.Ha&&!Z&&C?C:Z,sa=0;sa<b/a.T;sa++)h&&(C=!C),Lc(a,n,U,H,C?1:0),U++;C=Z}H++}l.context.putImageData(n,
|
||||
(u&15)*b,(u>>4)*c)}return l}Ec.prototype.ga=function(){return!0};Ec.prototype.V=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.ua[b]=c,!0;switch(b){case "fullScreen":return this.A[b]=c,this.b&&this.b.Ea?c.onclick=function(){d.Ea()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
Ec.prototype.Ea=function(){var a=!1;if(this.b){if(this.b.Ea){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.C/this.w;b>c&&(a=Math.round(c/b*100)+"%")}this.Ia?(this.u.style.width=a,this.u.style.width=a,this.u.style.display="block",this.u.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.Ea();a=!0}this.R&&this.R.focus()}return a};
|
||||
function Hc(a,b){!b&&a.b&&(a.Ia?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Jc(a,b){a.Ka=b;a.N=!1;if(void 0===a.i||a.i.length!=a.Ka)a.i=Array(a.Ka)}function Lc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.U&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.K[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
|
||||
function Mb(a,b){var c=!0;if(!b){a.la&&(120==a.la?a.Va&1?(gc(a.a,2),c=!1):gc(a.a,1):gc(a.a,4));if(c&&a.N&&a.B){for(var d=a.j,e=a.B,f=!0,g=a.ea>>>d.j;0<e&&g<d.b.length;)d.b[g].na&&(d.b[g].na=f=!1,d.b[g].Ab=!0),e-=d.c,g++;f&&(c=!1)}Kb(a.a,a.xb,1E3/Math.max(a.wb,a.la));a.Va++}if(c)if(1<a.T)switch(a.U){case 2:for(var c=a.ea,d=-1,e=0,f=60==a.Db?2:5,h=g=0,l=-1;e<a.W;){var n=0,u=c,y=d,H=a.H;for(96!=y&&(H>>=1);;){var x=bb(a.j,u++);if(127==(x&127)){var t=bb(a.j,u++),d=t&96,c=(t&15)<<8|bb(a.j,u),c=c+(t&16?
|
||||
8192:16384);break}if(n<H)a.Z[n++]=x;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=y)for(u=a.N&&a.i[g]==H,a.i[g++]=H,H=0;H<n;H++){x=a.Z[H];if(!u||x!==a.i[g]){a.i[l=g]=x;var t=a,C=a.ra,Q=x&127;if(x=t.I[y][x&128?1:0]){var U=(Q&15)*x.T,Q=(Q>>4)*x.P,Z,sa,Na,eb,xc=x.T,Jb=x.P;C?(Z=H*t.T,sa=e*t.P,Na=t.T,eb=t.P):(Z=H*t.Ca,sa=e*t.Da,Na=t.Ca,eb=t.Da);x.T>t.T&&(Z*=2,Na*=2);x.P>t.P&&(y||(Q+=t.P),Jb=t.P);C?C.drawImage(x.canvas,U,Q,xc,Jb,Z,sa,Na,eb):(Z+=0,sa+=0,t.f.drawImage(x.canvas,U,Q,xc,Jb,Z,
|
||||
sa,Na,eb))}h++}g++}e++}}a.N=!0;!b&&a.sa&&1==h&&(a.i[l]=-1,h=0);a.sa=!1;(h||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.P,0,0,a.Jc,a.Ib)}else{e=a.ea;f=e+a.B;l=h=g=0;b=a.o;n=0;c=a.G;y=d=0;u=a.ja;H=(1<<u)-1;a.Lc&&(u=-u,y=16+u);for(;e<f;){t=a.j;C=e;x=C&t.f;U=(C&t.g)>>>t.j;t=x!=t.f?t.b[U].Eb(x,C):t.b[U++].bb(x,C)|t.b[U&t.o].bb(0,C+1)<<8;if(a.N&&t===a.i[g])h+=a.La;else{a.i[g]=t;(C=y)&&(t=t>>8|(t&255)<<8);h<b&&(b=h);for(x=a.La;x--;)U=t>>C&H,Lc(a,a.Ja,h++,l,U),C+=u;h>n&&(n=h);l<c&&(c=l);l>=d&&(d=l+1)}e+=
|
||||
2;g++;if(h>=a.o&&(h=0,l++,l>a.G))break}a.N=!0;b<a.o&&(e=n-b,d-=c,a.c&&(f=b,g=e,b=c,e=d,c=a.o-(f+g),d=g),a.ra.putImageData(a.Ja,0,0,b,c,e,d),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.w))}}
|
||||
ya(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(!e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Fc(d,e,g,f,c);Pa(d,c)}});
|
||||
function Nc(a){this.I=+a.adapter;switch(this.I){case 0:this.L=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.O=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Nc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Oc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Cb,receiveData:this.gb}}w(Nc);
|
||||
var Pc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Qc=[!1,0,0,133,142,39,238],Oc="buffer";k=Nc.prototype;
|
||||
k.V=function(a,b,c,d){var e=this;switch(b){case Oc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Rc(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Rc(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.A[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.gb(d);return!0},
|
||||
!0}return!1};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;var e=this;this.S=Jb(this.a,function(){e.gb()});this.T=Jb(this.a,function(){e.fa|=5});this.K=Va(a,"ChipSet");hb(b,this,Sc,this.L);ib(b,this,Tc,this.L);B(this)};
|
||||
k.Cb=function(){if(!this.i){var a=zb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Sa)return;b=ha(b[1]);if(this.i=Na(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.Ta+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Cb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.reset=function(){Uc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Uc(this,a[0])};function Uc(a,b){var c=0;b||(b=Qc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0}
|
||||
function Vc(a,b){var c=a.u&b;b&15||(c>>=4);b=Pc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Rc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,hc(a.a,a.R),!0)}k.gb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Rc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Lb(this.a,this.S,Vc(this,15)));return!0};k.Qc=function(){var a=this.B;this.fa&=-3;return a};k.Pc=function(){return this.fa};
|
||||
k.Zc=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{a=(a=ia[b])?"<"+a+">":String.fromCharCode(b);var c=a.length;9==b?(b=this.O||8,c=b-this.f%b,this.O&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!=
|
||||
this.c){if(10==b||1024<=this.c.length)this.da(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Lb(this.a,this.T,Vc(this,240))};k.Yc=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.Xc=function(a,b){this.u=b};var Sc={0:Nc.prototype.Qc,1:Nc.prototype.Pc},Tc={0:Nc.prototype.Zc,1:Nc.prototype.Yc,2:Nc.prototype.Xc};ya(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Nc(d);Pa(d,c)}});
|
||||
function Wc(a,b,c){r.call(this,"Computer",a,Wc);this.l.Y=!1;Xc(this,b);this.w=zb(this,"autoPower",a);this.f=0;this.H=a.busWidth||a.buswidth;this.b=Yc;this.s=null;this.v=this.G=!1;this.I=zb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Zc(this);if(this.a=Oa("CPU",this.id)){this.N=Oa("Debugger",this.id);this.m=[];for(b=null;b=Va(this,"Video",b);)this.m.push(b);this.j=new Xa({id:this.Ta+".bus",busWidth:this.H},this.a,this.N);var d,e=La(this.id);if((this.g=Oa("Panel",this.id))&&this.g.va)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.M=this.g.M,d.da=this.g.da,d.va=this.g.va;this.da("PC8080 v1.30.1\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.j,this.a,this.N);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=zb(this,"state")||(f=!0,a.state))b=this.B=a,f||(this.v=!0,this.b=Yc),this.b&&(this.u=new F(this,"1.30.1"),$c(this.u)?b=null:delete this.u);
|
||||
!b&&this.b&&(b=ad(this))&&(this.v=!0);if(b){var g=this;la(b,null,!0,function(a,b,c){c?(g.o=null,g.v=!1,g.M("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(g.s=b,g.G=!0);B(g)})}else B(this);this.A.power||(this.w=!0);!c&&this.w&&bd(this,this.Oa)}else q("Unable to find CPU component")}w(Wc);var Yc=0;function Xc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.K=b}
|
||||
function zb(a,b,c){var d=b.toLowerCase(),d=Ea[b]||Ea[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function bd(a,b,c){for(var d=La(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){bd(a,b,c)});return}}b.call(a,c)}
|
||||
function cd(a,b){var c=new F(a,"1.30.1","validate");if($c(c)&&dd(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.M("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Wc.prototype;
|
||||
k.Oa=function(a){void 0===a&&(a=this.b||(this.s?1:Yc));if(!this.f){this.f++;var b=!1,c=!1;this.C=!1;var d=this.u||new F(this,"1.30.1");if(-1==a)b=!0;else if(a>Yc){if($c(d,this.s)){this.i=new F(this,"1.30.1","failsafe");$c(this.i)&&(ed(this,d),a=2,fd(this.i));this.i.set("timestamp",ka());gd(this.i);var e=this.b&&!this.v;if(1==a||ma("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=dd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?$c(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.M("Error: "+g),"unable to verify user"==g&&(qa("user",""),this.c=null)):this.da(f+": "+g),fd(d),$c(d)?(c=dd(d),e=!0):c=!1))}e&&cd(this,c?d:null)}else 2==a&&d.clear()}else cd(this);delete this.s;delete this.u}e=La(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=hd(this,g,d,b,c));b=[d,a,c];-1!=a?bd(this,this.zb,b):this.zb(b)}};
|
||||
function hd(a,b,c,d,e){if(!b.l.Y){b.l.Y=!0;if(b.ga){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ga(f,d)&&f&&(q("Unable to restore state for "+b.type),a.B&&!a.G?(c.clear(),a.b=Yc,window&&window.location.reload()):a.C=!0,b.ga(null),e=!1)}if(!d&&b.ub)for(a=b.ub.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.zb=function(a){var b=a[0],c=0>a[1];a=a[2];this.L=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(hd(this,this.a,b,c,a),this.a.Na());this.C&&(ed(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
function ed(a,b){if(ma("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function id(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Db(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var h=La(a.id),l=0;l<h.length;l++){var n=h[l];n.l.Y&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&f.set(n.id,
|
||||
d)),c&&(n.l.Y=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&jd(a,a.c,f.toString()),gd(g)&&gd(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&f.clear(h)):e=f.toString());c&&(a.l.Y=!1,b=a.A.power)&&(b.textContent="Power");a.f=0;return e}k.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=La(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ea.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new Ec(d,e,g,f,c);Pa(d,c)}});
|
||||
function Mc(a){this.I=+a.adapter;switch(this.I){case 0:this.K=0;this.R=2;break;default:q("Unrecognized serial adapter #"+this.I);return}this.b=this.c=null;this.N=a.tabSize;this.H=a.charBOL;this.f=0;this.C=!1;r.call(this,"SerialPort",a,Mc);var b=a.binding;if("console"==b)this.c="";else{var c;a=Nc;b&&(void 0===c&&(c="Panel"),(c=Oa(c,this.id))&&(b=c.A[b])&&this.V(null,a,b))}this.g="";this.i=this.s=null;this.exports={connect:this.Cb,receiveData:this.gb}}w(Mc);
|
||||
var Oc=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],Pc=[!1,0,0,133,142,39,238],Nc="buffer";k=Mc.prototype;
|
||||
k.V=function(a,b,c,d){var e=this;switch(b){case Nc:return this.A[b]=this.b=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),Qc(e,b);return!0},c.onkeypress=function(a){a=a||window.event;Qc(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.A[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.gb(d);return!0},
|
||||
!0}return!1};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.O=d;var e=this;this.S=Ib(this.a,function(){e.gb()});this.U=Ib(this.a,function(){e.fa|=5});this.M=Va(a,"ChipSet");hb(b,this,Rc,this.K);ib(b,this,Sc,this.K);B(this)};
|
||||
k.Cb=function(){if(!this.i){var a=zb(this.v,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ha(b[0]);if(c!=this.Sa)return;b=ha(b[1]);if(this.i=Ma(b)){var d=this.i.exports;if(d){var e=d.connect;e&&e.call(this.i);if(this.s=d.receiveData){this.status(this.Ta+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};k.ga=function(a,b){if(!b)if(this.Cb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.ia=function(a){return a?this.save():!0};k.reset=function(){Tc(this)};k.save=function(){var a=new F(this),b=0,c=[];c[b++]=this.o;c[b++]=this.B;c[b++]=this.G;c[b++]=this.fa;c[b++]=this.m;c[b++]=this.w;c[b]=this.u;a.set(0,c);return a.data()};k.restore=function(a){return Tc(this,a[0])};function Tc(a,b){var c=0;b||(b=Pc);a.o=b[c++];a.B=b[c++];a.G=b[c++];a.fa=b[c++];a.m=b[c++];a.w=b[c++];a.u=b[c];return!0}
|
||||
function Uc(a,b){var c=a.u&b;b&15||(c>>=4);b=Oc[c];c=((a.m&12)>>2)+6;a.m&16&&c++;c+=((a.m&192)>>6)+1>>1;return 1E3/Math.round(b/c)}function Qc(a,b){return a.C||a.fa&2?!1:(a.B=b,a.fa|=2,gc(a.a,a.R),!0)}k.gb=function(a){null!=a&&(this.g="number"!=typeof a?a:this.g+String.fromCharCode(a));this.g&&(Qc(this,this.g.charCodeAt(0))&&(this.g=this.g.substr(1)),this.g&&this.a&&Kb(this.a,this.S,Uc(this,15)));return!0};k.Qc=function(){var a=this.B;this.fa&=-3;return a};k.Pc=function(){return this.fa};
|
||||
k.Zc=function(a,b){this.G=b;this.fa&=-6;if(19==b)this.C=!0;else if(17==b)this.C=!1;else if(this.s&&this.s.call(this.i,b),this.b)if(8==b)this.b.value=this.b.value.slice(0,-1),0<this.f&&this.f--;else{a=(a=ia[b])?"<"+a+">":String.fromCharCode(b);var c=a.length;9==b?(b=this.N||8,c=b-this.f%b,this.N&&(a=" ".slice(0,c))):13==b&&(this.f=c=0,a="\n");this.H&&!this.f&&c&&(a=String.fromCharCode(this.H)+a);this.b.value+=a;this.b.scrollTop=this.b.scrollHeight;this.f+=c}else if(null!=
|
||||
this.c){if(10==b||1024<=this.c.length)this.da(this.c),this.c="";10!=b&&(this.c+=String.fromCharCode(b))}this.a&&Kb(this.a,this.U,Uc(this,240))};k.Yc=function(a,b){this.o?(this.w=b,this.w&64&&(this.o=!1)):(this.m=b,this.o=!0)};k.Xc=function(a,b){this.u=b};var Rc={0:Mc.prototype.Qc,1:Mc.prototype.Pc},Sc={0:Mc.prototype.Zc,1:Mc.prototype.Yc,2:Mc.prototype.Xc};ya(function(){for(var a=A(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Mc(d);Pa(d,c)}});
|
||||
function Vc(a,b,c){r.call(this,"Computer",a,Vc);this.l.Y=!1;Wc(this,b);this.w=zb(this,"autoPower",a);this.f=0;this.M=a.busWidth||a.buswidth;this.b=Xc;this.s=null;this.v=this.G=!1;this.I=zb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Yc(this);if(this.a=Oa("CPU",this.id)){this.O=Oa("Debugger",this.id);this.m=[];for(b=null;b=Va(this,"Video",b);)this.m.push(b);this.j=new Xa({id:this.Ta+".bus",busWidth:this.M},this.a,this.O);var d,e=La(this.id);if((this.g=Oa("Panel",this.id))&&this.g.va)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.L=this.g.L,d.da=this.g.da,d.va=this.g.va;this.da("PC8080 v1.30.1\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.qa&&d.qa(this,this.j,this.a,this.O);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.b=parseInt(d,10));var f;if(a=zb(this,"state")||(f=!0,a.state))b=this.B=a,f||(this.v=!0,this.b=Xc),this.b&&(this.u=new F(this,"1.30.1"),Zc(this.u)?b=null:delete this.u);
|
||||
!b&&this.b&&(b=$c(this))&&(this.v=!0);if(b){var g=this;la(b,null,!0,function(a,b,c){c?(g.o=null,g.v=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+ha(b):"")+")")):(g.s=b,g.G=!0);B(g)})}else B(this);this.A.power||(this.w=!0);!c&&this.w&&ad(this,this.Oa)}else q("Unable to find CPU component")}w(Vc);var Xc=0;function Wc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.H=b}
|
||||
function zb(a,b,c){var d=b.toLowerCase(),d=Ea[b]||Ea[d];void 0===d&&a.H&&(d=a.H[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function ad(a,b,c){for(var d=La(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){ad(a,b,c)});return}}b.call(a,c)}
|
||||
function bd(a,b){var c=new F(a,"1.30.1","validate");if(Zc(c)&&cd(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Vc.prototype;
|
||||
k.Oa=function(a){void 0===a&&(a=this.b||(this.s?1:Xc));if(!this.f){this.f++;var b=!1,c=!1;this.C=!1;var d=this.u||new F(this,"1.30.1");if(-1==a)b=!0;else if(a>Xc){if(Zc(d,this.s)){this.i=new F(this,"1.30.1","failsafe");Zc(this.i)&&(dd(this,d),a=2,ed(this.i));this.i.set("timestamp",ka());fd(this.i);var e=this.b&&!this.v;if(1==a||ma("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=cd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Zc(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(qa("user",""),this.c=null)):this.da(f+": "+g),ed(d),Zc(d)?(c=cd(d),e=!0):c=!1))}e&&bd(this,c?d:null)}else 2==a&&d.clear()}else bd(this);delete this.s;delete this.u}e=La(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.a&&(c=gd(this,g,d,b,c));b=[d,a,c];-1!=a?ad(this,this.zb,b):this.zb(b)}};
|
||||
function gd(a,b,c,d,e){if(!b.l.Y){b.l.Y=!0;if(b.ga){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ga(f,d)&&f&&(q("Unable to restore state for "+b.type),a.B&&!a.G?(c.clear(),a.b=Xc,window&&window.location.reload()):a.C=!0,b.ga(null),e=!1)}if(!d&&b.ub)for(a=b.ub.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
k.zb=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.l.Y=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.a&&(gd(this,this.a,b,c,a),this.a.Na());this.C&&(dd(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
function dd(a,b){if(ma("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PC8080",ver:"1.30.1"};d.url=a.I;d.user=c;d.type="bug";d.data=b;la("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function hd(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,"1.30.1"),g=new F(a,"1.30.1","validate"),h=ka();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ia&&(c&&Db(a.a),d=a.a.ia(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.l.Y=!1,!1===d&&(e=null)));for(var h=La(a.id),l=0;l<h.length;l++){var n=h[l];n.l.Y&&(n.ia&&(d=n.ia(b,c),"object"===typeof d&&f.set(n.id,
|
||||
d)),c&&(n.l.Y=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&id(a,a.c,f.toString()),fd(g)&&fd(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&f.clear(h)):e=f.toString());c&&(a.l.Y=!1,b=a.A.power)&&(b.textContent="Power");a.f=0;return e}k.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=La(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};
|
||||
k.start=function(a,b){for(var c=La(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};k.stop=function(a,b){for(var c=La(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
k.V=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.f||(d.l.Y?id(d,!1,!0):bd(d,d.Oa))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=ma("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");id(d,a,!0);!a&&d.B?window&&window.location.reload():d.Oa(Yc)}else d.reset(),d.a&&d.a.Na()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.A[b]=
|
||||
c,c.onclick=function(){var a=Zc(d,!0);if(a){var b=!!(d.b&&!d.o||d.B),c=id(d,b);b?jd(d,a,c):d.M("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Zc(a,b){var c=a.c;c||((c=pa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=kd(a,c))||a.M("The user ID is invalid.")):b&&a.M("Browser local storage is not available"));return c}
|
||||
function kd(a,b){a.c=null;b=la(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(qa("user",b.data),a.c=b.data)}catch(d){q(d.message+" ("+c+")")}return a.c}function ad(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+ld(a,"1.30.1"));return b}
|
||||
function jd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ld(a,"1.30.1");d.data=c;b=la(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.M("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.M(c),qa("user",""),a.c=null)}}
|
||||
function Va(a,b,c){a=La(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Ib(a,b){if(a.m.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.m[0];a.R&&a.R.focus();!b&&window&&window.scrollTo(c,d)}}k.Aa=function(a){this.a&&this.a.Aa(a);this.g&&this.g.Aa(a)};
|
||||
ya(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Wc(g,d,!0);Pa(g,f);g.w&&bd(g,g.Oa)}});ta.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.L&&!c.l.Y&&c.Oa(-1)}});
|
||||
ta.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.l.Y&&id(c,!(!c.b||c.o),!0)}});function F(a,b,c){this.id=a.id;this.key=ld(a,b,c);this.N=a.N;fd(this,a.Mc)}function ld(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}
|
||||
F.prototype={constructor:F,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){fd(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
||||
1);c=0}}};function fd(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function gd(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function dd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function $c(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}var md=0;
|
||||
function nd(a,b,c,d,e,f){e("Loading "+a+"...");la(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):od(h,a,b,c,d,e,f)})}
|
||||
function od(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(Ka(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?pd(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
|
||||
k.V=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.f||(d.l.Y?hd(d,!1,!0):ad(d,d.Oa))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.l.Y&&!d.f)if(d.b&&!d.o){var a=ma("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hd(d,a,!0);!a&&d.B?window&&window.location.reload():d.Oa(Xc)}else d.reset(),d.a&&d.a.Na()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.A[b]=
|
||||
c,c.onclick=function(){var a=Yc(d,!0);if(a){var b=!!(d.b&&!d.o||d.B),c=hd(d,b);b?id(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Yc(a,b){var c=a.c;c||((c=pa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=jd(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
|
||||
function jd(a,b){a.c=null;b=la(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(qa("user",b.data),a.c=b.data)}catch(d){q(d.message+" ("+c+")")}return a.c}function $c(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+kd(a,"1.30.1"));return b}
|
||||
function id(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kd(a,"1.30.1");d.data=c;b=la(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.L(c),qa("user",""),a.c=null)}}
|
||||
function Va(a,b,c){a=La(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function Hb(a,b){if(a.m.length){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a=a.m[0];a.R&&a.R.focus();!b&&window&&window.scrollTo(c,d)}}k.Aa=function(a){this.a&&this.a.Aa(a);this.g&&this.g.Aa(a)};
|
||||
ya(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Vc(g,d,!0);Pa(g,f);g.w&&ad(g,g.Oa)}});ta.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.K&&!c.l.Y&&c.Oa(-1)}});
|
||||
ta.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Oa("Computer",c.id))&&c.l.Y&&hd(c,!(!c.b||c.o),!0)}});function F(a,b,c){this.id=a.id;this.key=kd(a,b,c);this.O=a.O;ed(this,a.Mc)}function kd(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}
|
||||
F.prototype={constructor:F,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ed(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
||||
1);c=0}}};function ed(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function fd(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function cd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Zc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}var ld=0;
|
||||
function md(a,b,c,d,e,f){e("Loading "+a+"...");la(a,null,!0,function(g,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):nd(h,a,b,c,d,e,f)})}
|
||||
function nd(a,b,c,d,e,f,g){function h(a,f){if(f)g(f,null);else{c&&(Ka(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PC8080$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){f=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?od(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),
|
||||
null)}
|
||||
function pd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");la(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],g);pd(a,b,c)}})}else c(a,null)}
|
||||
function qd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--md||Ba(!0));l=!1}var g,h,l=!0;md++;Ja[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));u.appendChild(y)}c||
|
||||
(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?nd(c,null,null,!1,e,function(d,l){l?(Ka(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--md||Ba(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--md||Ba(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nd(b,a,d,!0,e,n):od(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(H){f(H.message)}return l}window.embedPC8080=function(a,b,c,d){Ba(!1);return qd(a,b,c,d)};window.enableEvents=Ba;window.sendEvent=Ca;})();
|
||||
function od(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");la(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],n,u=/( [a-z]+=)(['"])(.*?)\2/g;n=u.exec(f);)l=0>l.indexOf(n[1])?l.replace(">",n[0]+">"):l.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");
|
||||
a=a.replace(d[0],g);od(a,b,c)}})}else c(a,null)}
|
||||
function pd(a,b,c,d){function e(a){if(void 0===h){var b=g&&A(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--ld||Ba(!0));l=!1}var g,h,l=!0;ld++;Ja[a]={};try{if(g=document.getElementById(a)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));u.appendChild(y)}c||
|
||||
(c="/versions/pc8080/1.30.1/components.xsl");n=function(d,h){h?md(c,null,null,!1,e,function(d,l){l?(Ka(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=h.transformNode(l))?(g.outerHTML=l,--ld||Ba(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ld||Ba(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?md(b,a,d,!0,e,n):nd(b,null,a,d,!1,e,n)}else f("missing machine element: "+a)}catch(H){f(H.message)}return l}window.embedPC8080=function(a,b,c,d){Ba(!1);return pd(a,b,c,d)};window.enableEvents=Ba;window.sendEvent=Ca;})();
|
||||
|
|
|
|||
|
|
@ -722,9 +722,9 @@ function Wb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.b.Sb)){var
|
|||
function Yb(a,b){a.w||(a.j&&E(a.j,536870912)&&B(a.j,"memory fault on address "+J(a.j,b),!0,!0),a.b.$(4,b))}function Qb(a,b,c){n("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function K(a){r.call(this,"Device",a,K,256);this.i={data:0,Fd:0,rb:20,Id:0};this.f={Gd:0,Db:-1}}y(K);h=K.prototype;
|
||||
h.Ba=function(a,b,c,d){this.w=b;this.b=c;this.j=d;var e=this;this.f.Db=gc(c,function(){e.f.Ga|=128;e.f.Ga&64&&(hc(e.b,e.f.Xc),ic(e.b,e.f.Db,1E3/60))});this.f.Xc=jc(c,64,6);Wb(b,this,L);Xb(b,this.reset.bind(this));G(this)};h.vc=function(){var a=this.f.Ga;this.f.Ga&=-129;return a};h.ed=function(a){this.f.Ga=a;a&64&&ic(this.b,this.f.Db,1E3/60);this.f.Ga=a&-129};h.xc=function(){var a=this.b;return a.D&62337|a.sa<<5|a.ta<<1};
|
||||
h.gd=function(a){var b=this.b;a&=62337;if(b.D!=a){b.D=a;b.sa=a>>5&3;b.ta=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.sb!=c&&(b.sb=c,kc(b))}lc(this)};h.yc=function(){var a=this.b.Ia;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.zc=function(){return this.b.Bb};h.Ac=function(){return this.b.Ja};h.hd=function(a){var b=this.b;b.Ja!=a&&(b.Ja=a,a&16?(b.gb=4194303,b.va=3915776):(b.gb=262143,b.va=253952),kc(b));lc(this)};function lc(a){a.i.rb=a.i.rb&-8|(a.b.sb?a.b.Ja&16?1:2:4)}
|
||||
h.Mc=function(a){return this.b.R[1][a>>1&7]};h.ud=function(a,b){this.b.R[1][b>>1&7]=a&65295};h.Kc=function(a){return this.b.R[1][(a>>1&7)+8]};h.sd=function(a,b){this.b.R[1][(b>>1&7)+8]=a&65295};h.Lc=function(a){return this.b.oa[1][a>>1&7]};h.td=function(a,b){b=b>>1&7;this.b.oa[1][b]=a;this.b.R[1][b]&=65295};h.Jc=function(a){return this.b.oa[1][(a>>1&7)+8]};h.rd=function(a,b){b=(b>>1&7)+8;this.b.oa[1][b]=a;this.b.R[1][b]&=65295};h.uc=function(a){return this.b.R[0][a>>1&7]};
|
||||
h.dd=function(a,b){this.b.R[0][b>>1&7]=a&65295};h.sc=function(a){return this.b.R[0][(a>>1&7)+8]};h.bd=function(a,b){this.b.R[0][(b>>1&7)+8]=a&65295};h.tc=function(a){return this.b.oa[0][a>>1&7]};h.cd=function(a,b){b=b>>1&7;this.b.oa[0][b]=a;this.b.R[0][b]&=65295};h.rc=function(a){return this.b.oa[0][(a>>1&7)+8]};h.ad=function(a,b){b=(b>>1&7)+8;this.b.oa[0][b]=a;this.b.R[0][b]&=65295};h.Sc=function(a){return this.b.R[3][a>>1&7]};h.Ad=function(a,b){this.b.R[3][b>>1&7]=a&65295};
|
||||
h.Qc=function(a){return this.b.R[3][(a>>1&7)+8]};h.yd=function(a,b){this.b.R[3][(b>>1&7)+8]=a&65295};h.Rc=function(a){return this.b.oa[3][a>>1&7]};h.zd=function(a,b){b=b>>1&7;this.b.oa[3][b]=a;this.b.R[3][b]&=65295};h.Pc=function(a){return this.b.oa[3][(a>>1&7)+8]};h.xd=function(a,b){b=(b>>1&7)+8;this.b.oa[3][b]=a;this.b.R[3][b]&=65295};h.Ya=function(a){a&=7;return this.b.L&2048?this.b.Ca[a]:this.b.u[a]};h.bb=function(a,b){b&=7;this.b.L&2048?this.b.Ca[b]=a:this.b.u[b]=a};
|
||||
h.Mc=function(a){return this.b.P[1][a>>1&7]};h.ud=function(a,b){this.b.P[1][b>>1&7]=a&65295};h.Kc=function(a){return this.b.P[1][(a>>1&7)+8]};h.sd=function(a,b){this.b.P[1][(b>>1&7)+8]=a&65295};h.Lc=function(a){return this.b.oa[1][a>>1&7]};h.td=function(a,b){b=b>>1&7;this.b.oa[1][b]=a;this.b.P[1][b]&=65295};h.Jc=function(a){return this.b.oa[1][(a>>1&7)+8]};h.rd=function(a,b){b=(b>>1&7)+8;this.b.oa[1][b]=a;this.b.P[1][b]&=65295};h.uc=function(a){return this.b.P[0][a>>1&7]};
|
||||
h.dd=function(a,b){this.b.P[0][b>>1&7]=a&65295};h.sc=function(a){return this.b.P[0][(a>>1&7)+8]};h.bd=function(a,b){this.b.P[0][(b>>1&7)+8]=a&65295};h.tc=function(a){return this.b.oa[0][a>>1&7]};h.cd=function(a,b){b=b>>1&7;this.b.oa[0][b]=a;this.b.P[0][b]&=65295};h.rc=function(a){return this.b.oa[0][(a>>1&7)+8]};h.ad=function(a,b){b=(b>>1&7)+8;this.b.oa[0][b]=a;this.b.P[0][b]&=65295};h.Sc=function(a){return this.b.P[3][a>>1&7]};h.Ad=function(a,b){this.b.P[3][b>>1&7]=a&65295};
|
||||
h.Qc=function(a){return this.b.P[3][(a>>1&7)+8]};h.yd=function(a,b){this.b.P[3][(b>>1&7)+8]=a&65295};h.Rc=function(a){return this.b.oa[3][a>>1&7]};h.zd=function(a,b){b=b>>1&7;this.b.oa[3][b]=a;this.b.P[3][b]&=65295};h.Pc=function(a){return this.b.oa[3][(a>>1&7)+8]};h.xd=function(a,b){b=(b>>1&7)+8;this.b.oa[3][b]=a;this.b.P[3][b]&=65295};h.Ya=function(a){a&=7;return this.b.L&2048?this.b.Ca[a]:this.b.u[a]};h.bb=function(a,b){b&=7;this.b.L&2048?this.b.Ca[b]=a:this.b.u[b]=a};
|
||||
h.Dc=function(){return this.b.L&49152?this.b.ra[0]:this.b.u[6]};h.ld=function(a){this.b.L&49152?this.b.ra[0]=a:this.b.u[6]=a};h.Gc=function(){return this.b.u[7]};h.od=function(a){this.b.u[7]=a};h.Za=function(a){a&=7;return this.b.L&2048?this.b.u[a]:this.b.Ca[a]};h.cb=function(a,b){b&=7;this.b.L&2048?this.b.u[b]=a:this.b.Ca[b]=a};h.Ec=function(){return 1==(this.b.L&49152)>>14?this.b.u[6]:this.b.ra[1]};h.md=function(a){1==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ra[1]=a};
|
||||
h.Fc=function(){return 3==(this.b.L&49152)>>14?this.b.u[6]:this.b.ra[3]};h.nd=function(a){3==(this.b.L&49152)>>14?this.b.u[6]=a:this.b.ra[3]=a};h.qc=function(a){return this.b.Yb[a-65504>>1]};h.$c=function(a,b){this.b.Yb[b-65504>>1]=a};h.Tb=function(a){return 65520==a?61183:0};h.ac=function(){};h.Oc=function(){return 1};h.wd=function(){};h.pc=function(){return this.b.Z};h.Zc=function(){this.b.Z=0};h.wc=function(){return this.b.Wb};h.fd=function(a,b){b&1||(a&=255);this.b.Wb=a};
|
||||
h.Bc=function(a){return a?this.b.Xb:0};h.jd=function(a){var b=this.b;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.Xb=a;b.F|=2};h.Nc=function(a){return a?this.b.Ka&65280:0};h.vd=function(a){this.b.Ka=a|255};h.Cc=function(){return Db(this.b)};h.kd=function(a){mc(this.b,a&-1809|Db(this.b)&1808);this.b.F|=128};h.$b=function(a,b){E(this)&&B(this,"writeIgnored("+ca(b)+"): "+ca(a),!0,!0)};h.reset=function(){this.i.rb=this.i.rb&-120|20;this.f.Ga=0};
|
||||
|
|
@ -742,160 +742,160 @@ var rc=0,sc=2,Pb=4,Rb=["NONE","RAM","ROM","VID","H/W"],qc=0;
|
|||
I.prototype={constructor:I,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(lb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.G.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(lb)for(b=0;b<a.length;b++)this.G.setInt32(b<<2,a[b],!0);else this.b=a;return this.Fa=!0}return!1},Na:function(a,b){b?this.B++||xc(this,yc,!1):this.i++||zc(this,yc,!1)},K:function(){this.j&&E(this.j,128)&&(B(this.j,"attempt to read invalid block %"+
|
||||
k(this.A),!0),this.j.fa());return 255},I:function(a,b){this.j&&E(this.j,128)&&(B(this.j,"attempt to write "+k(b,4,!0)+" to invalid block %"+k(this.A),!0),this.j.fa())},M:function(a,b){return this.tb(a++,b++)|this.tb(a,b)<<8},H:function(a,b,c){this.ub(a++,b&255,c++);this.ub(a,b>>8,c)},V:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ha:function(a,b){a&1&&Yb(this.w,b);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},qa:function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=
|
||||
this.b[c]&~(255<<a)|b<<a;this.Fa=!0},va:function(a,b,c){a&1&&Yb(this.w,c);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Fa=!0},T:function(a,b){if(this.j&&null!=this.A){var c=this.j;Ac(c,this.A+a,1,c.M)&&c.fa(!0)}return this.yb(a,b)},ca:function(a,b){if(this.j&&null!=this.A){var c=this.j;Ac(c,this.A+a,2,c.M)&&c.fa(!0)}return this.zb(a,b)},la:function(a,b,c){if(this.j&&null!=this.A){var d=this.j;Ac(d,this.A+a,
|
||||
1,d.D)&&d.fa(!0)}this.f?this.I(a,b,c):this.Eb(a,b,c)},ta:function(a,b,c){if(this.j&&null!=this.A){var d=this.j;Ac(d,this.A+a,2,d.D)&&d.fa(!0)}this.f?this.I(a,b,c):this.Fb(a,b,c)},N:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.j&&E(this.j,128)&&B(this.j,"Memory.readByte("+J(this.j,b)+"): "+J(this.j,a),!0);return a},ba:function(a,b){a&1&&Yb(this.w,b);return this.G.getUint16(a,!0)},ea:function(a,b){a&1&&Yb(this.w,b);a=this.J[a>>1];this.j&&E(this.j,128)&&B(this.j,"Memory.readWord("+
|
||||
1,d.D)&&d.fa(!0)}this.f?this.I(a,b,c):this.Eb(a,b,c)},ta:function(a,b,c){if(this.j&&null!=this.A){var d=this.j;Ac(d,this.A+a,2,d.D)&&d.fa(!0)}this.f?this.I(a,b,c):this.Fb(a,b,c)},R:function(a){return this.D[a]},U:function(a,b){a=this.D[a];this.j&&E(this.j,128)&&B(this.j,"Memory.readByte("+J(this.j,b)+"): "+J(this.j,a),!0);return a},ba:function(a,b){a&1&&Yb(this.w,b);return this.G.getUint16(a,!0)},ea:function(a,b){a&1&&Yb(this.w,b);a=this.J[a>>1];this.j&&E(this.j,128)&&B(this.j,"Memory.readWord("+
|
||||
J(this.j,b)+"): "+J(this.j,a),!0);return a},ka:function(a,b){this.D[a]=b;this.Fa=!0},ma:function(a,b,c){this.D[a]=b;this.Fa=!0;this.j&&E(this.j,128)&&B(this.j,"Memory.writeByte("+J(this.j,c)+","+J(this.j,b)+")",!0)},sa:function(a,b,c){a&1&&Yb(this.w,c);this.G.setUint16(a,b,!0);this.Fa=!0},Sa:function(a,b,c){a&1&&Yb(this.w,c);this.J[a>>1]=b;this.Fa=!0;this.j&&E(this.j,128)&&B(this.j,"Memory.writeWord("+J(this.j,c)+","+J(this.j,b)+")",!0)}};
|
||||
function Jb(a,b,c){a.j=b;a.i=a.B=0;c&&((a.i=c.i)&&zc(a,yc,!1),(a.B=c.B)&&xc(a,yc,!1))}function Bc(a,b){b?--a.B||(a.ub=a.f?a.I:a.Eb,a.bc=a.f?a.H:a.Fb):--a.i||(a.tb=a.yb,a.Ub=a.zb)}function xc(a,b,c){c&&a.B||(a.ub=!a.f&&b[1]||a.I,a.bc=!a.f&&b[3]||a.H);if(c||void 0===c)a.Eb=b[1]||a.I,a.Fb=b[3]||a.H}function zc(a,b,c){c&&a.i||(a.tb=b[0]||a.K,a.Ub=b[2]||a.M);if(c||void 0===c)a.yb=b[0]||a.K,a.zb=b[2]||a.M}function tc(a,b){b||(b=Cc);zc(a,b,void 0);xc(a,b,void 0)}
|
||||
var Cc=[],wc=[I.prototype.V,I.prototype.qa,I.prototype.ha,I.prototype.va],yc=[I.prototype.T,I.prototype.la,I.prototype.ca,I.prototype.ta];if(lb)var vc=[I.prototype.N,I.prototype.ka,I.prototype.ba,I.prototype.sa],uc=[I.prototype.U,I.prototype.ma,I.prototype.ea,I.prototype.Sa];
|
||||
var Cc=[],wc=[I.prototype.V,I.prototype.qa,I.prototype.ha,I.prototype.va],yc=[I.prototype.T,I.prototype.la,I.prototype.ca,I.prototype.ta];if(lb)var vc=[I.prototype.R,I.prototype.ka,I.prototype.ba,I.prototype.sa],uc=[I.prototype.U,I.prototype.ma,I.prototype.ea,I.prototype.Sa];
|
||||
function Dc(a,b){r.call(this,"CPU",a,Dc,1);var c=a.multiplier||1;this.Ma=a.cycles||b;this.Ha=c;this.Ua=Math.round(this.Ma/1E4)/100;this.Qa=this.Ua*this.Ha;this.v.da=!1;this.v.Cb=!1;this.v.eb=a.autoStart;this.v.Va=!1;this.ib=this.ka=0;this.jb=a.csStart;this.Wa=a.csInterval;this.Xa=a.csStop;this.J=[];this.Pb=this.Wc.bind(this);G(this)}y(Dc);var Ec=["power","reset"];h=Dc.prototype;
|
||||
h.Ba=function(a,b,c,d){this.B=a;this.w=b;this.j=d;for(b=0;b<Ec.length;b++)(c=this.I[Ec[b]])&&this.B.pa(null,Ec[b],c);a=Fc(a,"autoStart");null!=a&&(this.v.eb="true"==a?!0:"false"==a?!1:!!a);G(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
|
||||
h.ya=function(a,b){if(!b){if(a&&this.restore){Gc(this);if(!this.restore(a))return!1;Hc(this)}else this.reset();this.j?(a=this.j,a.g("Type ? for help with PDP11 Debugger commands"),a.aa(),a.Da&&(b=a.Da,a.Da=null,Ic(a,b))):this.g("No debugger detected")}this.B.aa();return!0};h.xa=function(a){return a?this.save():!0};h.eb=function(){return this.v.eb||!this.j&&void 0===this.I.run?(this.$a(!0),!0):!1};h.Lb=function(){return 0};
|
||||
function Hc(a){void 0===a.jb&&(a.jb=0);void 0===a.Wa&&(a.Wa=-1);void 0===a.Xa&&(a.Xa=-1);a.v.Va=0<=a.jb&&0<a.Wa;a.v.Va&&(a.ib=0,a.ka=a.jb-a.ha)}function Jc(a,b){if(a.v.Va){var c=!1;a.ib=a.ib+a.Lb()|0;a.ka-=b;0>=a.ka&&(a.ka+=a.Wa,c=!0);0<=a.Xa&&a.Xa<=Kc(a)&&(a.Wa=a.Xa=-1,Hc(a),a.fa(),c=!0);c&&a.g(Kc(a)+" cycles: checksum="+k(a.ib))}}
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.v.ga)a=!0;else{var b=null,c,l=cb(a.id);for(c=0;c<l.length&&(b=l[c],b===a||b.v.ready);c++);if(c==l.length)for(c=0;c<l.length&&(b=l[c],b===a||b.v.ga);c++);c==l.length&&(b=a);n("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.pb?" (waiting for notification)":""))+".");a=!1}a&&(d.v.da?d.fa():d.$a())},
|
||||
!0;case "speed":return this.I[b]=c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){Lc(d,d.Ha<<1,!0)},c.textContent=this.Qa.toFixed(2)+"Mhz",!0}return!1};h.aa=function(){var a=this.I.speed;a&&(a.textContent=this.v.da&&this.ca?this.ca.toFixed(2)+"Mhz":"Stopped")};function Mc(a,b,c){a.ha+=b;c&&(a.M=a.b=0)}function Nc(a,b){var c=1;b&&1<a.Ha&&a.ca&&(c=a.ca/a.Ua);a.qb=Math.round(1E3/30);a.La=Math.floor(a.Ma/30*c);b||(a.la=a.La);a.hb=0}function Kc(a){return a.ha+a.U+a.M-a.b}
|
||||
function Gc(a){a.ca=0;a.Ob=0;a.ha=a.U=a.M=a.b=0;Hc(a);Lc(a,1)}function Lc(a,b,c){var d=!1;if(void 0!==b){.8>a.ca/a.Qa?b=1:d=!0;a.Ha=b;b=a.Ua*a.Ha;if(a.Qa!=b){a.Qa=b;b=a.Qa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.nb()}Mc(a,a.U);a.U=0;a.T=ra();a.ea=0;Nc(a);return d}function gc(a,b){var c=a.J.length;a.J.push([-1,b]);return c}function ic(a,b,c){0<=b&&b<a.J.length&&0>a.J[b][0]&&(c*=a.Ma*a.Ha/1E3,a.J[b][0]=c)}
|
||||
function Oc(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Pc(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}
|
||||
h.Wc=function(){if(this.v.da){this.hb>=this.Ma&&Nc(this,!0);this.qa=0;this.Da=ra();if(this.ea){var a=this.Da-this.ea;a>this.qb&&(this.T+=a,this.T>this.Da&&(this.T=this.Da))}try{do{var b=Oc(this,this.v.Va?1:this.La);try{this.ab(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.M-this.b;Pc(this,c);this.qa+=c;this.U+=c;Mc(this,0,!0);Jc(this,c);this.la-=c;if(0>=this.la){this.la+=this.La;15<=++this.Ob&&(this.B&&this.B.aa(),this.Ob=0);break}}while(this.v.da)}catch(e){this.fa();this.B&&this.B.stop(ra(),
|
||||
Kc(this));kb(this,e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Pb;this.ea=ra();c=this.qb;this.qa&&(c=Math.round(c*this.qa/this.La));var c=c-(this.ea-this.Da),d=this.ea-this.T;d&&(this.ca=Math.round(this.U/(10*d))/100,864E5<=d&&(this.ha=0,Lc(this)));if(0>c||this.ca<this.Qa)-1E3>c&&(this.T-=c),c=0;this.hb+=this.qa;this.ea+=c;a(b,c)}}};
|
||||
h.$a=function(a){if(jb(this))return!1;if(this.v.da)return this.g(this.toString()+" busy"),!1;Lc(this);this.v.da=!0;this.v.Cb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.nb(!0),this.B.start(this.T,Kc(this)));setTimeout(this.Pb,0);return!0};h.ab=function(){return 0};h.fa=function(a){if(this.v.da){this.M-=this.b;this.b=0;Mc(this,this.U);this.U=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.B&&this.B.stop(ra(),Kc(this))}this.v.complete=a};
|
||||
function id(a){this.Sb=+a.model||1170;this.nc=a.resetAddr||0;Dc.call(this,a,6666667);this.decode=jd.bind(this);this.jc=[];this.V=null;this.O=65536;this.P=32768;this.X=65535;this.S=32768;this.L=15;this.u=[0,0,0,0,0,0,0,this.nc];this.Ca=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.ta=this.C=0;this.kc=[4,2,0,1];this.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.oa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.oc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Yb=[0,0,0,0,0,0,0,0];this.i=this.f=this.Ta=this.G=this.H=this.F=this.Wb=0;this.ma=-1;kd(this);this.v.complete=this.v.fc=!1}y(id,Dc);h=id.prototype;h.reset=function(){this.v.da&&this.fa();kd(this);Gc(this);this.v.error=!1;this.parent.reset.call(this)};
|
||||
function kd(a){a.Ka=255;a.Z=0;a.Xb=0;a.D=0;a.Ia=0;a.Bb=0;a.Ja=0;a.sb=0;a.sa=0;a.gb=262143;a.va=253952;a.F|=2;a.w&&kc(a)}function kc(a){a.sb?(a.ba=65536,a.K=a.ic,a.N=a.Vb,a.Rb=a.Cd,Lb(a.w,a.Ja&16?22:18)):(a.ba=0,a.K=a.hc,a.N=a.Tc,a.Rb=a.Bd,Lb(a.w,16))}h.Lb=function(){return 0};h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.ha,this.Ha]);a.set(2,Ub(this.w));return a.data()};
|
||||
h.restore=function(a){var b=a[1];this.ha=b[1];Lc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.K){for(var f=0,g=Array(b.K),l=0;l<e.length-1;)for(var m=e[l++],p=e[l++];m--;)g[f++]=p;e=g}f=b.W[d];if(!f||!f.restore(e)){n("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function ld(a){return a.O&65536?1:0}function md(a){return a.P&32768?2:0}function nd(a){return a.X&65535?0:4}h.Aa=function(){return this.S&32768?8:0};
|
||||
function od(a){var b=a.N(a.u[7]);a.u[7]=a.u[7]+2&65535;return b}function pd(a,b){a.u[7]=b&65535}function jc(a,b,c){b={Yc:b,lb:c,request:-1,next:null};a.jc.push(b);return b}function hc(a,b){var c;c=b.Yc;b.lb>(a.L&224)>>5?(a.F&4&&(a.u[7]=a.u[7]+2&65535,a.F&=-5),a.$(c,26),c=!0):c=!1;if(!c){if(b!=a.V)if(c=a.V,!c||c.lb<=b.lb)b.next=c,a.V=b;else{do{a=c.next;if(!a||a.lb<=b.lb){b.next=a;c.next=b;break}c=a}while(1)}return!1}return!0}function Db(a){return a.L=a.L&63728|a.Aa()|nd(a)|md(a)|ld(a)}
|
||||
function mc(a,b){a.S=b<<12;a.X=~b&4;a.P=b<<14;a.O=b<<16;if((b^a.L)&2048)for(var c=a.Ca.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ca[c];a.Ca[c]=d}a.C=b>>14&3;c=a.L>>14&3;a.C!=c&&(a.ra[c]=a.u[6],a.u[6]=a.ra[a.C]);a.F|=2;a.L=b}function O(a,b){a.F&128||(a.S=a.X=b,a.P=0)}function qd(a,b,c){a.F&128||(a.S=a.X=a.O=b,a.P=c||0)}function rd(a,b,c,d){a.F&128||(a.S=a.X=a.O=b,a.P=(c^b)&(d^b))}function sd(a,b){a.F&128||(a.S=a.X=a.O=b,a.P=a.S^a.O>>1)}function td(a,b,c,d){a.F&128||(a.S=a.X=a.O=b,a.P=(c^d)&(d^b))}
|
||||
h.$=function(a){var b=!1;0>this.ma?this.ma=Db(this):this.C||(a=4,b=!0);this.D&57344||(this.Ia=63222,this.Bb=a);this.C=0;var c=this.N(a|this.ba),d=this.N(a+2&65535|this.ba);mc(this,d&-12289|this.ma>>2&12288);b&&(this.Z|=4,this.u[6]=4);ud(this,this.ma);ud(this,this.u[7]);pd(this,c);this.F&=-113;this.ma=-1;throw a;};function vd(a){var b=wd(a),c=wd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);pd(a,b);mc(a,c);a.F&=-17}
|
||||
function xd(a,b,c){var d,e,f,g=0;d=b>>13;a.Ja&a.kc[a.C]||(d&=7);e=a.R[a.C][d];f=(a.oa[a.C][d]<<6)+(b&8191)&a.gb;if(f<a.va)f&1&&!(c&1)&&(a.Z|=64,a.$(4,10));else if(a.Ja&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Ja&32&&(f=a.oc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.va&&4186112>f&&(a.Z|=32,a.$(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:
|
||||
128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.R[a.C][d]=e;if(4194170!==f||a.C)a.sa=a.C,a.ta=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.D&57344||(a.D=a.D|g|a.sa<<5|a.ta<<1),a.$(168,16)),a.D&61440||!(4191360>f||4194239<f)||(a.D|=4096,a.D&512&&(a.F|=32)));return f}function wd(a){var b=a.N(a.u[6]|a.ba);a.u[6]=a.u[6]+2&65535;return b}
|
||||
function ud(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.D&57344||(a.Ia=a.Ia<<8|246);!a.C&&c<=a.Ka&&4<c&&(c<=a.Ka-32?(a.Z|=4,a.u[6]=4,a.$(4,18)):(a.Z|=8,a.F|=4));a.Rb(c,b)}
|
||||
function yd(a,b,c,d){var e,f,g=d&8?0:a.ba;switch(b){case 0:return a.$(4,20),0;case 1:return 6===c&&!a.C&&d&4&&(a.u[6]<=a.Ka||65534<=a.u[6])&&(a.u[6]<=a.Ka-32||65534<=a.u[6]?(a.Z|=4,a.u[6]=4,a.$(4,22)):(a.Z|=8,a.F|=64)),a.b-=3,7===c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.N(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.N(e)|g;a.b-=
|
||||
8;break;case 6:return e=od(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=od(a),e=e+a.u[c]&65535,e=a.N(e|a.ba)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.D&57344||(a.Ia=a.Ia<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Ka||65534<=a.u[6])&&(a.u[6]<=a.Ka-32?(a.Z|=4,a.u[6]=4,a.$(4,24)):(a.Z|=8,a.F|=64));return e}h.hc=function(a,b,c){return yd(this,a,b,c)};h.ic=function(a,b,c){return xd(this,yd(this,a,b,c),c)};h.Tc=function(a){return this.w.ja(a)};h.Vb=function(a){return this.w.ja(xd(this,a,2))};
|
||||
h.Bd=function(a,b){this.w.Ra(a,b&65535)};h.Cd=function(a,b){this.w.Ra(xd(this,a,4),b)};function zd(a,b,c){var d=a.f=b&7;(b=a.i=(b&56)>>3)?(d=yd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.C=a.L>>12&3,c=a.N(d|c&a.ba),a.C=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.ra[a.L>>12&3];return c}
|
||||
function Ad(a,b,c,d){a.D&57344||(a.Ia=22);var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=yd(a,b,e,4),c&65536||(e&=65535),a.C=a.L>>12&3,e=xd(a,e|c&65536,4),a.C=a.L>>14&3,a.w.Ra(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.ra[a.L>>12&3]=d}function Bd(a,b){b>>=6;var c=a.H=b&7;(b=a.G=(b&56)>>3)?(c=a.K(b,c,3),a=a.w.Pa(c)):a=a.u[c]&255;return a}function Cd(a,b){b>>=6;var c=a.H=b&7;return(b=a.G=(b&56)>>3)?a.w.ja(a.K(b,c,2)):a.u[c]}function Dd(a,b){var c=a.f=b&7;b=a.i=(b&56)>>3;return yd(a,b,c,8)}
|
||||
function Ed(a,b){var c=a.f=b&7;(b=a.i=(b&56)>>3)?(c=a.K(b,c,3),a=a.w.Pa(c)):a=a.u[c]&255;return a}function Fd(a,b){var c=a.f=b&7;return(b=a.i=(b&56)>>3)?a.w.ja(a.K(b,c,2)):a.u[c]}function P(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=a.Ta=a.K(b,e,7),c=d.call(a,c,a.w.Pa(e)),e&1&&a.b--,a.w.mb(e,c&255)):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function Q(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=a.K(b,e,6),a.w.Ra(e,d.call(a,c,a.w.ja(e)))):a.u[e]=d.call(a,c,a.u[e])}
|
||||
function Gd(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(d=a.K(b,e,5),d&1&&a.b--,a.w.mb(d,c&255)):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Hd(a,b,c){var d=a.f=b&7;(b=a.i=(b&56)>>3)?a.w.Ra(a.K(b,d,4),c):a.u[d]=c&65535;return c}function R(a,b,c){c&&(pd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
||||
h.ab=function(a){this.v.complete=!0;var b=this.v.fc=this.j&&Id(this.j),c=a?this.v.Cb?0:1:-1;this.v.Cb=!1;this.M=this.b=a;do{if(b){if(Jd(this.j,this.u[7],c)){this.fa();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.$(168,28):this.F&64?this.$(4,30):this.F&16&&this.$(12,32),this.F&=-113),this.F&7))if(this.F&2){if(this.F&=-3,this.V&&hc(this,this.V)){var d=a=this.V;if(d==a)this.V=a.next;else{do{var e=d.next;if(e==a){d.next=e.next;break}d=e}while(1)}}}else this.F&1&&this.F++;this.D&57344||(this.Ia=0,
|
||||
this.Bb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(od(this))}while(0<this.b);return this.v.complete?this.M-this.b:void 0===this.v.complete?0:-1};La(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new id(d);fb(d,c)}});function Kd(a,b){var c=b+a;rd(this,c,a,b);return c&65535}function Ld(a,b){var c=b+a;rd(this,c<<8,a<<8,b<<8);return c&255}function Md(a,b){a=b<<1;sd(this,a);return a&65535}function Nd(a,b){a=b<<1;sd(this,a<<8);return a&255}
|
||||
function Od(a,b){a=b&32768|b>>1|b<<16;sd(this,a);return a&65535}function Pd(a,b){a=b&2048|b>>1|b<<8;sd(this,a<<8);return a&255}function Qd(a,b){a=b&~a;O(this,a);return a}function Rd(a,b){a=b&~a;O(this,a<<8);return a}function Sd(a,b){a|=b;O(this,a);return a}function Td(a,b){a|=b;O(this,a<<8);return a}function Ud(a,b){a=~b|65536;qd(this,a);return a&65535}function Vd(a,b){a=~b|256;qd(this,a<<8);return a&255}function Wd(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.P=b&(b^a));return a&65535}
|
||||
function Xd(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.P=b&(b^c));return a&255}function Yd(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.P=a&(b^a));return a&65535}function Zd(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.P=c&(b<<8^c));return a&255}function $d(a,b){a=-b;qd(this,a,a&b&32768);return a&65535}function ae(a,b){a=-b;qd(this,a<<8,(a&b&128)<<8);return a&255}function be(a,b){a=b<<1|this.O>>16&1;sd(this,a);return a&65535}
|
||||
function ce(a,b){a=b<<1|this.O>>16&1;sd(this,a<<8);return a&255}function de(a,b){a=(this.O&65536|b)>>1|b<<16;sd(this,a);return a&65535}function ee(a,b){a=((this.O&65536)>>8|b)>>1|b<<8;sd(this,a<<8);return a&255}function fe(a,b){var c=b-a;td(this,c,a,b);return c&65535}function ge(a,b){var c=b-a;td(this,c<<8,a<<8,b<<8);return c&255}function he(a,b){this.F&128||(this.S=this.X=b&65280,this.P=this.O=0);return(b<<8|b>>8)&65535}function ie(a,b){a^=b;O(this,a);return a&65535}
|
||||
function je(a){var b=Fd(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.O=this.P=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.O=c<<17-b,c>>=b;else if(b)if(16<b)this.P=c,c=0;else{this.O=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.P=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.i?6:7)+b}
|
||||
function ke(a){var b=Fd(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.O=this.P=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.O=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.O=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.P=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.i?6:7)+b}function S(a){a&1&&(this.O=0);a&2&&(this.P=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5}
|
||||
function le(a){var b=Fd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.O=this.P=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.P=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.P=32768,this.O=65536,this.b-=7}var me=[0,7,7,10,7,11,9,13];function ne(a){var b=this.b;pd(this,Dd(this,a));this.b=b-me[this.i]}
|
||||
var oe=[0,14,14,17,14,18,16,20];function pe(a){var b=this.b,c=Dd(this,a);a=a>>6&7;ud(this,this.u[a]);this.u[a]=this.u[7];pd(this,c);this.b=b-oe[this.i]}var qe=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],re=[7,13,13,17,14,18,17,21];function se(a){var b=Fd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.P=0,this.O=-32768>b||32767<b?65536:0);this.b-=23}
|
||||
function te(){this.b-=5}function T(a){a&1&&(this.O=65536);a&2&&(this.P=32768);a&4&&(this.X=0);a&8&&(this.S=32768);this.b-=5}function ue(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)pd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function ve(a){Q(this,a,0,he);this.b-=this.i?9:3+(7==this.f?2:0)}function we(a){Q(this,a,Cd(this,a),ie);this.b-=this.i?9:3+(7==this.f?2:0)}function V(){this.$(8,6)}function jd(a){xe[a>>12].call(this,a)}
|
||||
var xe=[function(a){ye[a>>8&15].call(this,a)},function(a){var b=Cd(this,a),c=this.b;O(this,Hd(this,a,b));this.b=c-qe[(this.G?8:0)+this.i]+(7!=this.f||this.i?0:2)},function(a){var b=Cd(this,a);a=Fd(this,a);td(this,b-a,a,b);this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){O(this,Cd(this,a)&Fd(this,a));this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){Q(this,a,Cd(this,a),Qd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?
|
||||
2:0)},function(a){Q(this,a,Cd(this,a),Sd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Q(this,a,Cd(this,a),Kd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Se[a>>8&15].call(this,a)},function(a){Te[a>>8&15].call(this,a)},function(a){var b=Bd(this,a);O(this,Gd(this,a,b,1)<<8);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){var b=Bd(this,a)<<8;a=Ed(this,a)<<8;td(this,b-a,a,b);this.b-=this.i?
|
||||
4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){O(this,(Bd(this,a)&Ed(this,a))<<8);this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){P(this,a,Bd(this,a),Rd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){P(this,a,Bd(this,a),Td);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Q(this,a,Cd(this,a),fe);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},V],ye=
|
||||
[function(a){Ue[a>>4&15].call(this,a)},function(a){R(this,a,!0)},function(a){R(this,a,!nd(this))},function(a){R(this,a,nd(this))},function(a){R(this,a,!this.Aa()==!md(this))},function(a){R(this,a,!this.Aa()!=!md(this))},function(a){R(this,a,!nd(this)&&!this.Aa()==!md(this))},function(a){R(this,a,nd(this)||!this.Aa()!=!md(this))},pe,pe,function(a){Ve[a>>6&3].call(this,a)},function(a){We[a>>6&3].call(this,a)},function(a){Xe[a>>6&3].call(this,a)},function(a){Ye[a>>6&3].call(this,a)},V,V],Ve=[function(a){qd(this,
|
||||
Hd(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Ud);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Yd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Wd);this.b-=this.i?9:3+(7==this.f?2:0)}],We=[function(a){Q(this,a,0,$d);this.b-=this.i?11:6},function(a){Q(this,a,ld(this)?1:0,Kd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,ld(this)?1:0,fe);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=Fd(this,a);qd(this,a);this.b-=this.i?4:3+(7==this.f?
|
||||
2:0)}],Xe=[function(a){Q(this,a,0,de);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,be);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Od);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Md);this.b-=this.i?9:3+(7==this.f?2:0)}],Ye=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Vb(a|65536);pd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=zd(this,a,0);ud(this,a);O(this,a);this.b-=11},function(a){var b=wd(this),c=this.b;Ad(this,a,
|
||||
0,b);O(this,b);this.b=c-re[this.i]},function(a){O(this,Hd(this,a,this.Aa?65535:0));this.b-=this.i?9:3+(7==this.f?2:0)}],Ue=[function(a){Ze[a&15].call(this,a)},V,V,V,ne,ne,ne,ne,function(a){if(a&8)this.$(8,6);else{var b=wd(this);a&=7;pd(this,this.u[a]);this.u[a]=b;this.b-=9}},function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):this.$(8,6)},function(a){$e[a&15].call(this,a)},function(a){af[a&15].call(this,a)},ve,ve,ve,ve],Ze=[function(){this.L&49152?(this.Z|=128,this.$(4,
|
||||
3)):this.fa();this.b-=7},function(){this.F&4||this.B.aa();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3},function(){vd(this);this.F|=this.L&16;this.b-=13},function(){this.$(12,1);this.b-=5},function(){this.$(16,4);this.b-=25},function(){this.L&49152||(kd(this),this.w.reset());this.b-=667},function(){vd(this);this.b-=13},V,V,V,V,V,V,V,V,V],$e=[te,function(){this.O=0;this.b-=5},function(){this.P=0;this.b-=5},S,function(){this.X=1;this.b-=5},S,S,S,function(){this.S=0;this.b-=5},S,S,S,S,S,S,S],af=
|
||||
[te,function(){this.O=65536;this.b-=5},function(){this.P=32768;this.b-=5},T,function(){this.X=0;this.b-=5},T,T,T,function(){this.S=32768;this.b-=5},T,T,T,T,T,T,T],Se=[se,se,le,le,je,je,ke,ke,we,we,V,V,V,V,ue,ue],Te=[function(a){R(this,a,!this.Aa())},function(a){R(this,a,this.Aa())},function(a){R(this,a,!ld(this)&&!nd(this))},function(a){R(this,a,ld(this)||nd(this))},function(a){R(this,a,!md(this))},function(a){R(this,a,md(this))},function(a){R(this,a,!ld(this))},function(a){R(this,a,ld(this))},function(){this.$(24,
|
||||
2);this.b-=25},function(){this.$(28,5);this.b-=5},function(a){bf[a>>6&3].call(this,a)},function(a){cf[a>>6&3].call(this,a)},function(a){df[a>>6&3].call(this,a)},function(a){ef[a>>6&3].call(this,a)},V,V],bf=[function(a){qd(this,Gd(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,0,Vd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,1,Zd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,1,Xd);this.b-=this.i?9:3+(7==this.f?2:0)}],cf=[function(a){P(this,a,0,ae);this.b-=
|
||||
this.i?11:6},function(a){P(this,a,ld(this)?1:0,Ld);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,ld(this)?1:0,ge);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=Ed(this,a);qd(this,a<<8);this.b-=this.i?4:3+(7==this.f?2:0)}],df=[function(a){P(this,a,0,ee);this.b-=this.i?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){P(this,a,0,ce);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,0,Pd);this.b-=this.i?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){P(this,a,0,Nd);this.b-=this.i?9:3+(7==
|
||||
this.f?2:0)}],ef=[V,function(a){a=zd(this,a,65536);ud(this,a);O(this,a);this.b-=11},function(a){var b=wd(this),c=this.b;Ad(this,a,65536,b);O(this,b);this.b=c-re[this.i]},V];function ff(a){r.call(this,"ROM",a,ff);this.f=null;this.D=a.addr;this.i=a.size;this.G=a.writable;this.B=a.alias;this.C=a.file;this.H=da(this.C);if(this.C){a=this.C;var b=ea(this.H);"json"!=b&&"hex"!=b&&(a=ga()+"/api/v1/dump?file="+this.C+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){gf(c,a,b,f)})}}y(ff);
|
||||
ff.prototype.Ba=function(a,b,c,d){this.w=b;this.b=c;this.j=d;hf(this)};ff.prototype.ya=function(){if(this.za){if(this.j){var a=this.j,b=this.id,c=this.D,d=this.i,e=this.za,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],w=qa(q,m,a.Hb);0>w&&q.splice(-(w+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Hd:b,A:c,lc:d,za:e,Gb:f})}delete this.za}return!0};ff.prototype.xa=function(){return!0};
|
||||
function gf(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{bb(a.vb,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,l=eval("("+c+")");if(f=l.bytes)a.f=f;else if(f=l.words)for(a.f=Array(2*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255;else if(f=l.data)for(a.f=Array(4*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=l;a.za=l.symbols;if(!a.f.length){n("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){n(a.f[0]);return}}catch(m){a.na("ROM data error: "+m.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),e=0;e<b.length;e++)a.f[e]=aa(b[e],16);hf(a)}}
|
||||
function hf(a){if(!ib(a))if(!a.C)G(a);else if(a.f&&a.w){a.i||(a.i=a.f.length);if(a.f.length!=a.i)kb(a,"ROM size ("+k(a.f.length,8,!0)+") does not match specified size ("+k(a.i,8,!0)+")");else{var b;b=a.D;if(Ob(a.w,b,a.i,a.G?1:sc)){var c;for(c=0;c<a.f.length;c++)Tb(a.w,b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.B?b.push(a.B):null!=a.B&&a.B.length&&(b=a.B);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Nb(d.w,d.D,d.i);Mb(d.w,e,d.i,f)}delete a.f}}G(a)}}
|
||||
La(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new ff(d);fb(d,c)}});function jf(a){r.call(this,"RAM",a,jf);this.B=a.addr;this.i=a.size;this.f=!1}y(jf);jf.prototype.Ba=function(a,b,c,d){this.w=b;this.b=c;this.j=d;!this.f&&this.i&&Ob(this.w,this.B,this.i,1)&&(this.f=!0);this.f||n("No RAM allocated");G(this)};jf.prototype.ya=function(){return!0};jf.prototype.xa=function(){return!0};jf.prototype.reset=function(){};
|
||||
La(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new jf(d);fb(d,c)}});function kf(a){r.call(this,"Keyboard",a,kf,65536);G(this)}y(kf);kf.prototype.pa=function(){return!1};kf.prototype.Ba=function(a,b,c,d){this.B=a;this.b=c;this.j=d};La(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new kf(d);fb(d,c)}});
|
||||
function W(a){this.C=this.G=null;this.T=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,W,8388608);var b=a.binding;if("console"==b)this.G="";else{var c;a=lf;b&&(void 0===c&&(c="Panel"),(c=eb(c,this.id))&&(b=c.I[b])&&this.pa(null,a,b))}this.J=this.K=null;this.exports={connect:this.Qb,receiveData:this.Ab}}y(W);var lf="buffer";h=W.prototype;
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case lf:return this.I[b]=this.C=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.Ab(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Ab(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;var e=this;this.ba=jc(this.b,48,4);this.U=gc(this.b,function(){e.f&128||!e.D.length||(e.N=e.D.shift(),e.f|=128,e.f&64&&hc(e.b,e.ba))});this.ca=jc(this.b,52,4);this.V=gc(this.b,function(){e.i|=128;e.i&64&&hc(e.b,e.ca)});Wb(b,this,mf);G(this)};
|
||||
!0;case "speed":return this.I[b]=c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){Lc(d,d.Ha<<1,!0)},c.textContent=this.Qa.toFixed(2)+"Mhz",!0}return!1};h.aa=function(){var a=this.I.speed;a&&(a.textContent=this.v.da&&this.ba?this.ba.toFixed(2)+"Mhz":"Stopped")};function Mc(a,b,c){a.ha+=b;c&&(a.ea=a.b=0)}function Nc(a,b){var c=1;b&&1<a.Ha&&a.ba&&(c=a.ba/a.Ua);a.qb=Math.round(1E3/30);a.La=Math.floor(a.Ma/30*c);b||(a.la=a.La);a.hb=0}function Kc(a){return a.ha+a.T+a.ea-a.b}
|
||||
function Gc(a){a.ba=0;a.Ob=0;a.ha=a.T=a.ea=a.b=0;Hc(a);Lc(a,1)}function Lc(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.Qa?b=1:d=!0;a.Ha=b;b=a.Ua*a.Ha;if(a.Qa!=b){a.Qa=b;b=a.Qa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.nb()}Mc(a,a.T);a.T=0;a.R=ra();a.ca=0;Nc(a);return d}function gc(a,b){var c=a.J.length;a.J.push([-1,b]);return c}function ic(a,b,c){0<=b&&b<a.J.length&&0>a.J[b][0]&&(c*=a.Ma*a.Ha/1E3,a.J[b][0]=c+Oc(a))}
|
||||
function Pc(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Qc(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Oc(a,b){var c=a.ea-=a.b;a.b=0;b&&(a.ea=0);return c}
|
||||
h.Wc=function(){if(this.v.da){this.hb>=this.Ma&&Nc(this,!0);this.qa=0;this.Da=ra();if(this.ca){var a=this.Da-this.ca;a>this.qb&&(this.R+=a,this.R>this.Da&&(this.R=this.Da))}try{do{var b=Pc(this,this.v.Va?1:this.La);try{this.ab(b)}catch(e){if("number"!=typeof e)throw e;}b=Oc(this,!0);this.qa+=b;this.T+=b;Jc(this,b);Qc(this,b);this.la-=b;if(0>=this.la){this.la+=this.La;15<=++this.Ob&&(this.B&&this.B.aa(),this.Ob=0);break}}while(this.v.da)}catch(e){this.fa();this.B&&this.B.stop(ra(),Kc(this));kb(this,
|
||||
e.stack||e.message);return}if(this.v.da){a=setTimeout;b=this.Pb;this.ca=ra();var c=this.qb;this.qa&&(c=Math.round(c*this.qa/this.La));var c=c-(this.ca-this.Da),d=this.ca-this.R;d&&(this.ba=Math.round(this.T/(10*d))/100,864E5<=d&&(this.ha=0,Lc(this)));if(0>c||this.ba<this.Qa)-1E3>c&&(this.R-=c),c=0;this.hb+=this.qa;this.ca+=c;a(b,c)}}};
|
||||
h.$a=function(a){if(jb(this))return!1;if(this.v.da)return this.g(this.toString()+" busy"),!1;Lc(this);this.v.da=!0;this.v.Cb=!0;var b=this.I.run;b&&(b.textContent="Halt");this.B&&(a&&this.B.nb(!0),this.B.start(this.R,Kc(this)));setTimeout(this.Pb,0);return!0};h.ab=function(){return 0};h.fa=function(a){if(this.v.da){Oc(this);Mc(this,this.T);this.T=0;this.v.da=!1;var b=this.I.run;b&&(b.textContent="Run");this.B&&this.B.stop(ra(),Kc(this))}this.v.complete=a};
|
||||
function jd(a){this.Sb=+a.model||1170;this.nc=a.resetAddr||0;Dc.call(this,a,6666667);this.decode=kd.bind(this);this.jc=[];this.U=null;this.N=65536;this.O=32768;this.X=65535;this.S=32768;this.L=15;this.u=[0,0,0,0,0,0,0,this.nc];this.Ca=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.ta=this.C=0;this.kc=[4,2,0,1];this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.oa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.oc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Yb=[0,0,0,0,0,0,0,0];this.i=this.f=this.Ta=this.G=this.H=this.F=this.Wb=0;this.ma=-1;ld(this);this.v.complete=this.v.fc=!1}y(jd,Dc);h=jd.prototype;h.reset=function(){this.v.da&&this.fa();ld(this);Gc(this);this.v.error=!1;this.parent.reset.call(this)};
|
||||
function ld(a){a.Ka=255;a.Z=0;a.Xb=0;a.D=0;a.Ia=0;a.Bb=0;a.Ja=0;a.sb=0;a.sa=0;a.gb=262143;a.va=253952;a.F|=2;a.w&&kc(a)}function kc(a){a.sb?(a.V=65536,a.K=a.ic,a.M=a.Vb,a.Rb=a.Cd,Lb(a.w,a.Ja&16?22:18)):(a.V=0,a.K=a.hc,a.M=a.Tc,a.Rb=a.Bd,Lb(a.w,16))}h.Lb=function(){return 0};h.save=function(){var a=new N(this);a.set(0,[]);a.set(1,[this.ha,this.Ha]);a.set(2,Ub(this.w));return a.data()};
|
||||
h.restore=function(a){var b=a[1];this.ha=b[1];Lc(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.K){for(var f=0,g=Array(b.K),l=0;l<e.length-1;)for(var m=e[l++],p=e[l++];m--;)g[f++]=p;e=g}f=b.W[d];if(!f||!f.restore(e)){n("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function md(a){return a.N&65536?1:0}function nd(a){return a.O&32768?2:0}function od(a){return a.X&65535?0:4}h.Aa=function(){return this.S&32768?8:0};
|
||||
function pd(a){var b=a.M(a.u[7]);a.u[7]=a.u[7]+2&65535;return b}function qd(a,b){a.u[7]=b&65535}function jc(a,b,c){b={Yc:b,lb:c,request:-1,next:null};a.jc.push(b);return b}function hc(a,b){var c;c=b.Yc;b.lb>(a.L&224)>>5?(a.F&4&&(a.u[7]=a.u[7]+2&65535,a.F&=-5),a.$(c,26),c=!0):c=!1;if(!c){if(b!=a.U)if(c=a.U,!c||c.lb<=b.lb)b.next=c,a.U=b;else{do{a=c.next;if(!a||a.lb<=b.lb){b.next=a;c.next=b;break}c=a}while(1)}return!1}return!0}function Db(a){return a.L=a.L&63728|a.Aa()|od(a)|nd(a)|md(a)}
|
||||
function mc(a,b){a.S=b<<12;a.X=~b&4;a.O=b<<14;a.N=b<<16;if((b^a.L)&2048)for(var c=a.Ca.length;0<=--c;){var d=a.u[c];a.u[c]=a.Ca[c];a.Ca[c]=d}a.C=b>>14&3;c=a.L>>14&3;a.C!=c&&(a.ra[c]=a.u[6],a.u[6]=a.ra[a.C]);a.F|=2;a.L=b}function O(a,b){a.F&128||(a.S=a.X=b,a.O=0)}function rd(a,b,c){a.F&128||(a.S=a.X=a.N=b,a.O=c||0)}function sd(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^b)&(d^b))}function td(a,b){a.F&128||(a.S=a.X=a.N=b,a.O=a.S^a.N>>1)}function ud(a,b,c,d){a.F&128||(a.S=a.X=a.N=b,a.O=(c^d)&(d^b))}
|
||||
h.$=function(a,b){var c=!1;0>this.ma?this.ma=Db(this):this.C||(a=4,c=!0);this.D&57344||(this.Ia=63222,this.Bb=a);this.C=0;var d=this.M(a|this.V),e=this.M(a+2&65535|this.V);mc(this,e&-12289|this.ma>>2&12288);c&&(this.Z|=4,this.u[6]=4);vd(this,this.ma);vd(this,this.u[7]);qd(this,d);this.F&=-113;this.ma=-1;if(26!=b)throw a;};function wd(a){var b=xd(a),c=xd(a)&-1793;a.L&49152&&(c=c&-225|a.L&63712);qd(a,b);mc(a,c);a.F&=-17}
|
||||
function yd(a,b,c){var d,e,f,g=0;d=b>>13;a.Ja&a.kc[a.C]||(d&=7);e=a.P[a.C][d];f=(a.oa[a.C][d]<<6)+(b&8191)&a.gb;if(f<a.va)f&1&&!(c&1)&&(a.Z|=64,a.$(4,10));else if(a.Ja&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.Ja&32&&(f=a.oc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.va&&4186112>f&&(a.Z|=32,a.$(4,12))}switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:
|
||||
128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&(g|=16384));a.P[a.C][d]=e;if(4194170!==f||a.C)a.sa=a.C,a.ta=d;g&&(g&57344&&(0<=a.ma&&(g|=128),a.D&57344||(a.D=a.D|g|a.sa<<5|a.ta<<1),a.$(168,16)),a.D&61440||!(4191360>f||4194239<f)||(a.D|=4096,a.D&512&&(a.F|=32)));return f}function xd(a){var b=a.M(a.u[6]|a.V);a.u[6]=a.u[6]+2&65535;return b}
|
||||
function vd(a,b){var c=a.u[6]-2&65535;a.u[6]=c;a.D&57344||(a.Ia=a.Ia<<8|246);!a.C&&c<=a.Ka&&4<c&&(c<=a.Ka-32?(a.Z|=4,a.u[6]=4,a.$(4,18)):(a.Z|=8,a.F|=4));a.Rb(c,b)}
|
||||
function zd(a,b,c,d){var e,f,g=d&8?0:a.V;switch(b){case 0:return a.$(4,20),0;case 1:return 6===c&&!a.C&&d&4&&(a.u[6]<=a.Ka||65534<=a.u[6])&&(a.u[6]<=a.Ka-32||65534<=a.u[6]?(a.Z|=4,a.u[6]=4,a.$(4,22)):(a.Z|=8,a.F|=64)),a.b-=3,7===c?a.u[c]:a.u[c]|g;case 2:f=2;e=a.u[c];7!==c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.u[c];7!==c&&(e|=g);e=a.M(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.u[c]+f&65535;7!==c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.u[c]-2&65535;7!==c&&(e|=g);e=a.M(e)|g;a.b-=
|
||||
8;break;case 6:return e=pd(a),e=e+a.u[c]&65535|g,a.b-=6,e;case 7:return e=pd(a),e=e+a.u[c]&65535,e=a.M(e|a.V)|g,a.b-=10,e}a.u[c]=a.u[c]+f&65535;!g||a.D&57344||(a.Ia=a.Ia<<8|f<<3&248|c);6==c&&!a.C&&d&4&&0>=f&&(a.u[6]<=a.Ka||65534<=a.u[6])&&(a.u[6]<=a.Ka-32?(a.Z|=4,a.u[6]=4,a.$(4,24)):(a.Z|=8,a.F|=64));return e}h.hc=function(a,b,c){return zd(this,a,b,c)};h.ic=function(a,b,c){return yd(this,zd(this,a,b,c),c)};h.Tc=function(a){return this.w.ja(a)};h.Vb=function(a){return this.w.ja(yd(this,a,2))};
|
||||
h.Bd=function(a,b){this.w.Ra(a,b&65535)};h.Cd=function(a,b){this.w.Ra(yd(this,a,4),b)};function Ad(a,b,c){var d=a.f=b&7;(b=a.i=(b&56)>>3)?(d=zd(a,b,d,2),c&65536||61440!==(a.L&61440)&&(d&=65535),a.C=a.L>>12&3,c=a.M(d|c&a.V),a.C=a.L>>14&3):c=6!=d||(a.L>>2&12288)===(a.L&12288)?a.u[d]:a.ra[a.L>>12&3];return c}
|
||||
function Bd(a,b,c,d){a.D&57344||(a.Ia=22);var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=zd(a,b,e,4),c&65536||(e&=65535),a.C=a.L>>12&3,e=yd(a,e|c&65536,4),a.C=a.L>>14&3,a.w.Ra(e,d)):6!=e||(a.L>>2&12288)===(a.L&12288)?a.u[e]=d:a.ra[a.L>>12&3]=d}function Cd(a,b){b>>=6;var c=a.H=b&7;(b=a.G=(b&56)>>3)?(c=a.K(b,c,3),a=a.w.Pa(c)):a=a.u[c]&255;return a}function Dd(a,b){b>>=6;var c=a.H=b&7;return(b=a.G=(b&56)>>3)?a.w.ja(a.K(b,c,2)):a.u[c]}function Ed(a,b){var c=a.f=b&7;b=a.i=(b&56)>>3;return zd(a,b,c,8)}
|
||||
function Fd(a,b){var c=a.f=b&7;(b=a.i=(b&56)>>3)?(c=a.K(b,c,3),a=a.w.Pa(c)):a=a.u[c]&255;return a}function Gd(a,b){var c=a.f=b&7;return(b=a.i=(b&56)>>3)?a.w.ja(a.K(b,c,2)):a.u[c]}function P(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=a.Ta=a.K(b,e,7),c=d.call(a,c,a.w.Pa(e)),e&1&&a.b--,a.w.mb(e,c&255)):a.u[e]=a.u[e]&65280|d.call(a,c,a.u[e])}function Q(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(e=a.K(b,e,6),a.w.Ra(e,d.call(a,c,a.w.ja(e)))):a.u[e]=d.call(a,c,a.u[e])}
|
||||
function Hd(a,b,c,d){var e=a.f=b&7;(b=a.i=(b&56)>>3)?(d=a.K(b,e,5),d&1&&a.b--,a.w.mb(d,c&255)):a.u[e]=c?d&1?c<<24>>24&65535:a.u[e]&-256|c&255:a.u[e]&-256;return c}function Id(a,b,c){var d=a.f=b&7;(b=a.i=(b&56)>>3)?a.w.Ra(a.K(b,d,4),c):a.u[d]=c&65535;return c}function R(a,b,c){c&&(qd(a,a.u[7]+(b<<24>>23)),a.b-=2);a.b-=3}
|
||||
h.ab=function(a){this.v.complete=!0;var b=this.v.fc=this.j&&Jd(this.j),c=a?this.v.Cb?0:1:-1;this.v.Cb=!1;this.ea=this.b=a;do{if(b){if(Kd(this.j,this.u[7],c)){this.fa();break}c=1}if(this.F&&(this.F&112&&(this.F&32?this.$(168,28):this.F&64?this.$(4,30):this.F&16&&this.$(12,32),this.F&=-113),this.F&7))if(this.F&2){if(this.F&=-3,this.U&&hc(this,this.U)){var d=a=this.U;if(d==a)this.U=a.next;else{do{var e=d.next;if(e==a){d.next=e.next;break}d=e}while(1)}}}else this.F&1&&this.F++;this.D&57344||(this.Ia=
|
||||
0,this.Bb=this.u[7]);this.F=this.F&7|this.L&16;this.decode(pd(this))}while(0<this.b);return this.v.complete?this.ea-this.b:void 0===this.v.complete?0:-1};La(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new jd(d);fb(d,c)}});function Ld(a,b){var c=b+a;sd(this,c,a,b);return c&65535}function Md(a,b){var c=b+a;sd(this,c<<8,a<<8,b<<8);return c&255}function Nd(a,b){a=b<<1;td(this,a);return a&65535}function Od(a,b){a=b<<1;td(this,a<<8);return a&255}
|
||||
function Pd(a,b){a=b&32768|b>>1|b<<16;td(this,a);return a&65535}function Qd(a,b){a=b&2048|b>>1|b<<8;td(this,a<<8);return a&255}function Rd(a,b){a=b&~a;O(this,a);return a}function Sd(a,b){a=b&~a;O(this,a<<8);return a}function Td(a,b){a|=b;O(this,a);return a}function Ud(a,b){a|=b;O(this,a<<8);return a}function Vd(a,b){a=~b|65536;rd(this,a);return a&65535}function Wd(a,b){a=~b|256;rd(this,a<<8);return a&255}function Xd(a,b){a=b-a;this.F&128||(this.S=this.X=a,this.O=b&(b^a));return a&65535}
|
||||
function Yd(a,b){a=b-a;var c=a<<8;b<<=8;this.F&128||(this.S=this.X=c,this.O=b&(b^c));return a&255}function Zd(a,b){a=b+a;this.F&128||(this.S=this.X=a,this.O=a&(b^a));return a&65535}function $d(a,b){a=b+a;var c=a<<8;this.F&128||(this.S=this.X=c,this.O=c&(b<<8^c));return a&255}function ae(a,b){a=-b;rd(this,a,a&b&32768);return a&65535}function be(a,b){a=-b;rd(this,a<<8,(a&b&128)<<8);return a&255}function ce(a,b){a=b<<1|this.N>>16&1;td(this,a);return a&65535}
|
||||
function de(a,b){a=b<<1|this.N>>16&1;td(this,a<<8);return a&255}function ee(a,b){a=(this.N&65536|b)>>1|b<<16;td(this,a);return a&65535}function fe(a,b){a=((this.N&65536)>>8|b)>>1|b<<8;td(this,a<<8);return a&255}function ge(a,b){var c=b-a;ud(this,c,a,b);return c&65535}function he(a,b){var c=b-a;ud(this,c<<8,a<<8,b<<8);return c&255}function ie(a,b){this.F&128||(this.S=this.X=b&65280,this.O=this.N=0);return(b<<8|b>>8)&65535}function je(a,b){a^=b;O(this,a);return a&65535}
|
||||
function ke(a){var b=Gd(this,a);a=a>>6&7;var c=this.u[a];c&32768&&(c|=4294901760);this.N=this.O=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.N=c<<17-b,c>>=b;else if(b)if(16<b)this.O=c,c=0;else{this.N=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.O=32768)}this.u[a]=c&65535;this.S=this.X=c;this.b-=(this.i?6:7)+b}
|
||||
function le(a){var b=Gd(this,a);a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.N=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.N=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.O=32768)):d=c;this.u[a]=d>>16&65535;this.u[a|1]=d&65535;this.S=d>>16;this.X=d>>16|d;this.b-=(this.i?6:7)+b}function S(a){a&1&&(this.N=0);a&2&&(this.O=0);a&4&&(this.X=1);a&8&&(this.S=0);this.b-=5}
|
||||
function me(a){var b=Gd(this,a);if(b){a=a>>6&7;var c=this.u[a]<<16|this.u[a|1];this.N=this.O=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.u[a]=d&65535,this.u[a|1]=c-d*b&65535,this.X=d>>16|d,this.S=d>>16):(this.O=32768,this.X=d>>15|d,this.S=c>>16,-1===b&&65534===this.u[a]&&(this.u[a]=this.u[a|1]=1));this.b-=53}else this.X=this.S=0,this.O=32768,this.N=65536,this.b-=7}var ne=[0,7,7,10,7,11,9,13];function oe(a){var b=this.b;qd(this,Ed(this,a));this.b=b-ne[this.i]}
|
||||
var pe=[0,14,14,17,14,18,16,20];function qe(a){var b=this.b,c=Ed(this,a);a=a>>6&7;vd(this,this.u[a]);this.u[a]=this.u[7];qd(this,c);this.b=b-pe[this.i]}var re=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],se=[7,13,13,17,14,18,17,21];function te(a){var b=Gd(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.u[a];c&32768&&(c|=-65536);b=~~(b*c);this.u[a]=b>>16&65535;this.u[a|1]=b&65535;this.F&128||(this.S=b>>16,this.X=this.S|b,this.O=0,this.N=-32768>b||32767<b?65536:0);this.b-=23}
|
||||
function ue(){this.b-=5}function T(a){a&1&&(this.N=65536);a&2&&(this.O=32768);a&4&&(this.X=0);a&8&&(this.S=32768);this.b-=5}function ve(a){var b=(a&448)>>6;if(this.u[b]=this.u[b]-1&65535)qd(this,this.u[7]-((a&63)<<1)),this.b+=1;this.b-=6}function we(a){Q(this,a,0,ie);this.b-=this.i?9:3+(7==this.f?2:0)}function xe(a){Q(this,a,Dd(this,a),je);this.b-=this.i?9:3+(7==this.f?2:0)}function V(){this.$(8,6)}function kd(a){ye[a>>12].call(this,a)}
|
||||
var ye=[function(a){ze[a>>8&15].call(this,a)},function(a){var b=Dd(this,a),c=this.b;O(this,Id(this,a,b));this.b=c-re[(this.G?8:0)+this.i]+(7!=this.f||this.i?0:2)},function(a){var b=Dd(this,a);a=Gd(this,a);ud(this,b-a,a,b);this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){O(this,Dd(this,a)&Gd(this,a));this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){Q(this,a,Dd(this,a),Rd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?
|
||||
2:0)},function(a){Q(this,a,Dd(this,a),Td);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Q(this,a,Dd(this,a),Ld);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Te[a>>8&15].call(this,a)},function(a){Ue[a>>8&15].call(this,a)},function(a){var b=Cd(this,a);O(this,Hd(this,a,b,1)<<8);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){var b=Cd(this,a)<<8;a=Fd(this,a)<<8;ud(this,b-a,a,b);this.b-=this.i?
|
||||
4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){O(this,(Cd(this,a)&Fd(this,a))<<8);this.b-=this.i?4+(this.H&&6<=this.f?1:0):(this.G?4:3)+(7==this.f?2:0)},function(a){P(this,a,Cd(this,a),Sd);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){P(this,a,Cd(this,a),Ud);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},function(a){Q(this,a,Dd(this,a),ge);this.b-=this.i?9+(this.H&&6<=this.f?1:0):(this.G?5:3)+(7==this.f?2:0)},V],ze=
|
||||
[function(a){Ve[a>>4&15].call(this,a)},function(a){R(this,a,!0)},function(a){R(this,a,!od(this))},function(a){R(this,a,od(this))},function(a){R(this,a,!this.Aa()==!nd(this))},function(a){R(this,a,!this.Aa()!=!nd(this))},function(a){R(this,a,!od(this)&&!this.Aa()==!nd(this))},function(a){R(this,a,od(this)||!this.Aa()!=!nd(this))},qe,qe,function(a){We[a>>6&3].call(this,a)},function(a){Xe[a>>6&3].call(this,a)},function(a){Ye[a>>6&3].call(this,a)},function(a){Ze[a>>6&3].call(this,a)},V,V],We=[function(a){rd(this,
|
||||
Id(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Vd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Zd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,1,Xd);this.b-=this.i?9:3+(7==this.f?2:0)}],Xe=[function(a){Q(this,a,0,ae);this.b-=this.i?11:6},function(a){Q(this,a,md(this)?1:0,Ld);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,md(this)?1:0,ge);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=Gd(this,a);rd(this,a);this.b-=this.i?4:3+(7==this.f?
|
||||
2:0)}],Ye=[function(a){Q(this,a,0,ee);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,ce);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Pd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){Q(this,a,0,Nd);this.b-=this.i?9:3+(7==this.f?2:0)}],Ze=[function(a){a=this.u[7]+((a&63)<<1)&65535;var b=this.Vb(a|65536);qd(this,this.u[5]);this.u[6]=a+2&65535;this.u[5]=b;this.b-=8},function(a){a=Ad(this,a,0);vd(this,a);O(this,a);this.b-=11},function(a){var b=xd(this),c=this.b;Bd(this,a,
|
||||
0,b);O(this,b);this.b=c-se[this.i]},function(a){O(this,Id(this,a,this.Aa?65535:0));this.b-=this.i?9:3+(7==this.f?2:0)}],Ve=[function(a){$e[a&15].call(this,a)},V,V,V,oe,oe,oe,oe,function(a){if(a&8)this.$(8,6);else{var b=xd(this);a&=7;qd(this,this.u[a]);this.u[a]=b;this.b-=9}},function(a){a&8?(this.L&49152||(this.L=this.L&-2017|(a&7)<<5,this.F|=1),this.b-=5):this.$(8,6)},function(a){af[a&15].call(this,a)},function(a){bf[a&15].call(this,a)},we,we,we,we],$e=[function(){this.L&49152?(this.Z|=128,this.$(4,
|
||||
3)):this.fa();this.b-=7},function(){this.F&4||this.B.aa();this.F|=4;this.u[7]=this.u[7]+-2&65535;this.b-=3},function(){wd(this);this.F|=this.L&16;this.b-=13},function(){this.$(12,1);this.b-=5},function(){this.$(16,4);this.b-=25},function(){this.L&49152||(ld(this),this.w.reset());this.b-=667},function(){wd(this);this.b-=13},V,V,V,V,V,V,V,V,V],af=[ue,function(){this.N=0;this.b-=5},function(){this.O=0;this.b-=5},S,function(){this.X=1;this.b-=5},S,S,S,function(){this.S=0;this.b-=5},S,S,S,S,S,S,S],bf=
|
||||
[ue,function(){this.N=65536;this.b-=5},function(){this.O=32768;this.b-=5},T,function(){this.X=0;this.b-=5},T,T,T,function(){this.S=32768;this.b-=5},T,T,T,T,T,T,T],Te=[te,te,me,me,ke,ke,le,le,xe,xe,V,V,V,V,ve,ve],Ue=[function(a){R(this,a,!this.Aa())},function(a){R(this,a,this.Aa())},function(a){R(this,a,!md(this)&&!od(this))},function(a){R(this,a,md(this)||od(this))},function(a){R(this,a,!nd(this))},function(a){R(this,a,nd(this))},function(a){R(this,a,!md(this))},function(a){R(this,a,md(this))},function(){this.$(24,
|
||||
2);this.b-=25},function(){this.$(28,5);this.b-=5},function(a){cf[a>>6&3].call(this,a)},function(a){df[a>>6&3].call(this,a)},function(a){ef[a>>6&3].call(this,a)},function(a){ff[a>>6&3].call(this,a)},V,V],cf=[function(a){rd(this,Hd(this,a,0));this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,0,Wd);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,1,$d);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,1,Yd);this.b-=this.i?9:3+(7==this.f?2:0)}],df=[function(a){P(this,a,0,be);this.b-=
|
||||
this.i?11:6},function(a){P(this,a,md(this)?1:0,Md);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,md(this)?1:0,he);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){a=Fd(this,a);rd(this,a<<8);this.b-=this.i?4:3+(7==this.f?2:0)}],ef=[function(a){P(this,a,0,fe);this.b-=this.i?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){P(this,a,0,de);this.b-=this.i?9:3+(7==this.f?2:0)},function(a){P(this,a,0,Qd);this.b-=this.i?9+(this.Ta&1):3+(7==this.f?2:0)},function(a){P(this,a,0,Od);this.b-=this.i?9:3+(7==
|
||||
this.f?2:0)}],ff=[V,function(a){a=Ad(this,a,65536);vd(this,a);O(this,a);this.b-=11},function(a){var b=xd(this),c=this.b;Bd(this,a,65536,b);O(this,b);this.b=c-se[this.i]},V];function gf(a){r.call(this,"ROM",a,gf);this.f=null;this.D=a.addr;this.i=a.size;this.G=a.writable;this.B=a.alias;this.C=a.file;this.H=da(this.C);if(this.C){a=this.C;var b=ea(this.H);"json"!=b&&"hex"!=b&&(a=ga()+"/api/v1/dump?file="+this.C+"&format=bytes&decimal=true");var c=this;ua(a,null,!0,function(a,b,f){hf(c,a,b,f)})}}y(gf);
|
||||
gf.prototype.Ba=function(a,b,c,d){this.w=b;this.b=c;this.j=d;jf(this)};gf.prototype.ya=function(){if(this.za){if(this.j){var a=this.j,b=this.id,c=this.D,d=this.i,e=this.za,f=[],g;for(g in e){var l=e[g];"number"==typeof l&&(e[g]=l={o:l});var m=l.o,p=l.a;if(void 0!==m){var q=f,m=[m>>>0,g],w=qa(q,m,a.Hb);0>w&&q.splice(-(w+1),0,m)}p&&(l.a=p.replace(/''/g,'"'))}a.G.push({Hd:b,A:c,lc:d,za:e,Gb:f})}delete this.za}return!0};gf.prototype.xa=function(){return!0};
|
||||
function hf(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{bb(a.vb,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,g,l=eval("("+c+")");if(f=l.bytes)a.f=f;else if(f=l.words)for(a.f=Array(2*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255;else if(f=l.data)for(a.f=Array(4*f.length),g=e=0;e<f.length;e++)a.f[g++]=f[e]&255,a.f[g++]=f[e]>>8&255,a.f[g++]=f[e]>>16&255,a.f[g++]=f[e]>>24&255;else a.f=l;a.za=l.symbols;if(!a.f.length){n("Empty ROM: "+
|
||||
b);return}if(1==a.f.length){n(a.f[0]);return}}catch(m){a.na("ROM data error: "+m.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.f=Array(b.length),e=0;e<b.length;e++)a.f[e]=aa(b[e],16);jf(a)}}
|
||||
function jf(a){if(!ib(a))if(!a.C)G(a);else if(a.f&&a.w){a.i||(a.i=a.f.length);if(a.f.length!=a.i)kb(a,"ROM size ("+k(a.f.length,8,!0)+") does not match specified size ("+k(a.i,8,!0)+")");else{var b;b=a.D;if(Ob(a.w,b,a.i,a.G?1:sc)){var c;for(c=0;c<a.f.length;c++)Tb(a.w,b+c,a.f[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.B?b.push(a.B):null!=a.B&&a.B.length&&(b=a.B);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Nb(d.w,d.D,d.i);Mb(d.w,e,d.i,f)}delete a.f}}G(a)}}
|
||||
La(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new gf(d);fb(d,c)}});function kf(a){r.call(this,"RAM",a,kf);this.B=a.addr;this.i=a.size;this.f=!1}y(kf);kf.prototype.Ba=function(a,b,c,d){this.w=b;this.b=c;this.j=d;!this.f&&this.i&&Ob(this.w,this.B,this.i,1)&&(this.f=!0);this.f||n("No RAM allocated");G(this)};kf.prototype.ya=function(){return!0};kf.prototype.xa=function(){return!0};kf.prototype.reset=function(){};
|
||||
La(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new kf(d);fb(d,c)}});function lf(a){r.call(this,"Keyboard",a,lf,65536);G(this)}y(lf);lf.prototype.pa=function(){return!1};lf.prototype.Ba=function(a,b,c,d){this.B=a;this.b=c;this.j=d};La(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new lf(d);fb(d,c)}});
|
||||
function W(a){this.C=this.G=null;this.T=a.tabSize;this.M=a.charBOL;this.H=0;r.call(this,"SerialPort",a,W,8388608);var b=a.binding;if("console"==b)this.G="";else{var c;a=mf;b&&(void 0===c&&(c="Panel"),(c=eb(c,this.id))&&(b=c.I[b])&&this.pa(null,a,b))}this.J=this.K=null;this.exports={connect:this.Qb,receiveData:this.Ab}}y(W);var mf="buffer";h=W.prototype;
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case mf:return this.I[b]=this.C=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.Ab(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Ab(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.B=a;this.w=b;this.b=c;this.j=d;var e=this;this.ba=jc(this.b,48,4);this.U=gc(this.b,function(){e.f&128||!e.D.length||(e.R=e.D.shift(),e.f|=128,e.f&64&&hc(e.b,e.ba))});this.ca=jc(this.b,52,4);this.V=gc(this.b,function(){e.i|=128;e.i&64&&hc(e.b,e.ca)});Wb(b,this,nf);G(this)};
|
||||
h.Qb=function(){if(!this.J){var a=Fc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=oa(b[0]);if(c!=this.Sa)return;b=oa(b[1]);if(this.J=db(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.K=d.receiveData){this.status(this.vb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};h.ya=function(a,b){if(!b)if(this.Qb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
h.xa=function(a){return a?this.save():!0};h.reset=function(){nf(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return nf(this)};function nf(a){a.N=0;a.f=0;a.i=128;a.D=[];return!0}h.Ab=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.D.push(a.charCodeAt(b));else this.D=this.D.concat(a);ic(this.b,this.U,1);return!0};h.Ic=function(){return this.f&65535};h.qd=function(a){this.f=this.f&-112|a&111};
|
||||
h.Hc=function(){this.f&=-129;0<this.D.length&&ic(this.b,this.U,1);return this.N};h.pd=function(){};h.Vc=function(){return this.i};h.Ed=function(a){128==(this.i&192)&&a&64&&ic(this.b,this.V,1);this.i=this.i&-70|a&69};h.Uc=function(){return 0};
|
||||
h.xa=function(a){return a?this.save():!0};h.reset=function(){of(this)};h.save=function(){var a=new N(this);a.set(0,[]);return a.data()};h.restore=function(){return of(this)};function of(a){a.R=0;a.f=0;a.i=128;a.D=[];return!0}h.Ab=function(a){if("number"==typeof a)this.D.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.D.push(a.charCodeAt(b));else this.D=this.D.concat(a);ic(this.b,this.U,1);return!0};h.Ic=function(){return this.f&65535};h.qd=function(a){this.f=this.f&-112|a&111};
|
||||
h.Hc=function(){this.f&=-129;0<this.D.length&&ic(this.b,this.U,1);return this.R};h.pd=function(){};h.Vc=function(){return this.i};h.Ed=function(a){128==(this.i&192)&&a&64&&ic(this.b,this.V,1);this.i=this.i&-70|a&69};h.Uc=function(){return 0};
|
||||
h.Dd=function(a){if(a&=255){B(this,"transmitByte("+k(a,2,!0)+")");this.K&&this.K.call(this.J,a);if(this.C)if(13==a)this.H=0;else if(8==a)this.C.value=this.C.value.slice(0,-1),0<this.H&&this.H--;else{var b;b=(b=pa[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.T||8,c=a-this.H%a,this.T&&(b=na("",c)));this.M&&!this.H&&c&&(b=String.fromCharCode(this.M)+b);this.C.value+=b;this.C.scrollTop=this.C.scrollHeight;this.H+=c}else if(null!=this.G){if(10==a||1024<=this.G.length)this.g(this.G),
|
||||
this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.i&=-129;ic(this.b,this.V,1)}};var of={},mf=(of[65392]=[null,null,W.prototype.Ic,W.prototype.qd,"RCSR"],of[65394]=[null,null,W.prototype.Hc,W.prototype.pd,"RBUF"],of[65396]=[null,null,W.prototype.Vc,W.prototype.Ed,"XCSR"],of[65398]=[null,null,W.prototype.Uc,W.prototype.Dd,"XBUF"],of);La(function(){for(var a=A(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new W(d);fb(d,c)}});
|
||||
function pf(a){r.call(this,"Debugger",a,pf);this.ha=a.base||16;this.ta=!1;this.N=this.sa=this.H=0;this.U=!1;this.C=-1;this.i=[];this.ba={}}y(pf);var qf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};pf.prototype.Mb=function(){return-1};pf.prototype.Nb=function(){};
|
||||
function rf(a,b,c,d){if(c)if(b){0>a.C&&a.i.length&&(a.C=0);if(0>a.C||b!=a.i[a.C])a.i.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.i[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(oa(b.substring(c,f))),c=f+1}}return a}
|
||||
function sf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
this.G="";10!=a&&(this.G+=String.fromCharCode(a))}this.i&=-129;ic(this.b,this.V,1)}};var pf={},nf=(pf[65392]=[null,null,W.prototype.Ic,W.prototype.qd,"RCSR"],pf[65394]=[null,null,W.prototype.Hc,W.prototype.pd,"RBUF"],pf[65396]=[null,null,W.prototype.Vc,W.prototype.Ed,"XCSR"],pf[65398]=[null,null,W.prototype.Uc,W.prototype.Dd,"XBUF"],pf);La(function(){for(var a=A(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new W(d);fb(d,c)}});
|
||||
function qf(a){r.call(this,"Debugger",a,qf);this.ha=a.base||16;this.ta=!1;this.R=this.sa=this.H=0;this.U=!1;this.C=-1;this.i=[];this.ba={}}y(qf);var rf={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};qf.prototype.Mb=function(){return-1};qf.prototype.Nb=function(){};
|
||||
function sf(a,b,c,d){if(c)if(b){0>a.C&&a.i.length&&(a.C=0);if(0>a.C||b!=a.i[a.C])a.i.splice(0,0,b),a.C=0;a.C--}else a.U?b="end":b=a.i[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(oa(b.substring(c,f))),c=f+1}}return a}
|
||||
function tf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function tf(a,b,c){var d;if(b){b=uf(a,b);for(var e=0,f=!1,g=b,l=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var q=p[e++],w=q.length,q=oa(q);if(!q){f=!0;break}q=vf(a,q,null,!1===c);if(void 0===q){f=!0;c=!1;break}l.push(q);if(e==p.length)break;var q=p[e++],u=q.length;m.length&&qf[q]<qf[m[m.length-1]]&&sf(l,m,1);m.push(q);b=b.substr(w+u)}sf(l,m)&&1==l.length||(f=!0);f?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=l.pop(),c&&wf(a,null,
|
||||
d))}return d}function uf(a,b){for(var c,d=a.ta?"(":"{",e=a.ta?")":"}",f=new RegExp(a.ta?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=tf(a,c[1]);b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.N-a.sa}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function vf(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ba[b],null==e&&(e=aa(b,a.ha))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function wf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var l=0;l<f;l++){g&&(g=","+g);var m=d&255,p=8,q="";p?32<p&&(p=32):p=32;if(null==m||isNaN(m))for(;0<p--;)q="?"+q;else for(;0<p--;)q=(m&1?"1":"0")+q,m>>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+ca(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function xf(a,b){if(b)return wf(a,b,a.ba[b]);var c=0;for(b in a.ba)wf(a,b,a.ba[b]),c++;return 0<c}
|
||||
function uf(a,b,c){var d;if(b){b=vf(a,b);for(var e=0,f=!1,g=b,l=[],m=[],p=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<p.length;){var q=p[e++],w=q.length,q=oa(q);if(!q){f=!0;break}q=wf(a,q,null,!1===c);if(void 0===q){f=!0;c=!1;break}l.push(q);if(e==p.length)break;var q=p[e++],u=q.length;m.length&&rf[q]<rf[m[m.length-1]]&&tf(l,m,1);m.push(q);b=b.substr(w+u)}tf(l,m)&&1==l.length||(f=!0);f?c&&a.g("error parsing '"+g+"' at character "+(g.length-b.length)):(d=l.pop(),c&&xf(a,null,
|
||||
d))}return d}function vf(a,b){for(var c,d=a.ta?"(":"{",e=a.ta?")":"}",f=new RegExp(a.ta?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=uf(a,c[1]);b=b.replace(d+c[1]+e,null!=g?J(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(;c=b.match(/\$([a-z]+)/i);){d=null;switch(c[1].toLowerCase()){case "ops":d=a.R-a.sa}if(null==d)break;b=b.replace(c[0],d.toString())}return b}
|
||||
function wf(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ba[b],null==e&&(e=aa(b,a.ha))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function xf(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=0,g="";if(!f||4<f)f=4;for(var l=0;l<f;l++){g&&(g=","+g);var m=d&255,p=8,q="";p?32<p&&(p=32):p=32;if(null==m||isNaN(m))for(;0<p--;)q="?"+q;else for(;0<p--;)q=(m&1?"1":"0")+q,m>>=1;g=q+g;d>>=8}d=k(c,0,!0)+" "+c+". "+ca(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}function yf(a,b){if(b)return xf(a,b,a.ba[b]);var c=0;for(b in a.ba)xf(a,b,a.ba[b]),c++;return 0<c}
|
||||
function J(a,b,c,d){switch(a.ha){case 8:a=ca(b,3*c);break;case 10:a=b.toString();break;default:a=k(b,2*c)}d&&"0"==a.charAt(0)&&(a=a.replace(/^0+([0-9A-F]+)$/i,"$1"));return a}
|
||||
function yf(a){pf.call(this,a);this.ta=!0;this.K=X(0);this.Ma=X(0);this.T=X(0);this.G=[];this.f=this.M=this.D=[];zf(this);this.la=0;Af(this);this.va={};Bf(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ic(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ic(b,a)})}y(yf,pf);
|
||||
var Cf={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Df="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
Ef={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],
|
||||
function zf(a){qf.call(this,a);this.ta=!0;this.K=X(0);this.Ma=X(0);this.T=X(0);this.G=[];this.f=this.M=this.D=[];Af(this);this.la=0;Bf(this);this.va={};Cf(this,a.messages);this.Da=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return Ic(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return Ic(b,a)})}y(zf,qf);
|
||||
var Df={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ef="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
Ff={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]}};h=yf.prototype;
|
||||
h.Ba=function(a,b,c,d){this.w=b;this.b=c;this.B=a;(a=Fc(a,"messages"))&&Bf(this,a);this.Ua=Ef;Ff(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=Z(Gf(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.w.Y;m=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.g("..."):(c=q.type,p=Rb[c],q&&d.g(k(q.id,8)+" %"+k(e<<d.w.Y,8)+" %%"+k(q.A,8)+" "+k(q.ob,4,
|
||||
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]}};h=zf.prototype;
|
||||
h.Ba=function(a,b,c,d){this.w=b;this.b=c;this.B=a;(a=Fc(a,"messages"))&&Cf(this,a);this.Ua=Ff;Gf(this,function(a){a:{var b=d.w.W,c=a[0],e=a=0,m=b.length;if(c){a=Z(Hf(d,c));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.w.Y;m=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,p=0;m--;){var q=b[e];q.type==c?p++||d.g("..."):(c=q.type,p=Rb[c],q&&d.g(k(q.id,8)+" %"+k(e<<d.w.Y,8)+" %%"+k(q.A,8)+" "+k(q.ob,4,
|
||||
!0)+" "+k(q.size,4,!0)+" "+p),c!=rc&&(c=-1),p=0);a+=d.w.ua;e++}}});G(this)};
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ka=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Ic(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.i.length-1&&(b=d.i[++d.C])):40==a.keyCode&&(0<d.C?b=d.i[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Fa(c,function(){if(d.ka){var a=d.ka.value;
|
||||
d.ka.value="";Ic(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Fa(c,function(a){var b=!1;hb(d,!0)||(gb(d,!0),b=d.ab(a?1:0),gb(d,!1));return b}),!0}return!1};h.nb=function(){this.ka&&this.ka.focus()};function Z(a){a=a&&a.A;null==a&&(a=-1);return a}h.Pa=function(a,b){var c=255,d=Z(a);-1!==d&&(c=this.w,c.w++,d=c.W[(d&c.i)>>>c.Y].yb(d&c.f,d),c.w--,c=d,b&&Hf(a,b));return c};h.ja=function(a,b){var c=65535,d=Z(a);-1!==d&&(c=Sb(this.w,d),b&&Hf(a,b));return c};
|
||||
h.mb=function(a,b,c){var d=Z(a);-1!==d&&(Tb(this.w,d,b),c&&Hf(a,c),this.B.aa(!0))};h.Ra=function(a,b,c){var d=Z(a);if(-1!==d){var e=this.w,f=d&e.f,g=(d&e.i)>>>e.Y;e.w++;e.W[g].Fb(f,b&65535,d);e.w--;c&&Hf(a,c);this.B.aa(!0)}};function X(a){return{A:a,wa:!1}}function If(a){return[a.A,a.wa]}function Jf(a){return{A:a[0],wa:a[1]}}
|
||||
function Gf(a,b,c){var d;c=(c?a.K:a.Ma).A;if(void 0!==b){d=b=uf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].za[d];if(void 0!==f){d=f.o;void 0!==d&&(e=X(d));break}}if(d=e)return d;c=tf(a,b,void 0)}null!=c&&(d=X(c));return d}function Kf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.cc=rf(a,b.Zb=c[2]))}function Hf(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Bf(a,b){a.j=a;a.ia=a.ec=536870912;a.ma=null;a.qa=[];b=rf(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in H){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ia|=H[c],a.g(c+" messages enabled"))}}function Ff(a,b){for(var c in H)if(64==H[c]){a.va[c]=b;break}}
|
||||
h.Mb=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Lf(a){return 6>a?"R"+a:6==a?"SP":"PC"}h.Nb=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ca[a-8]:20>a?b=this.b.ra[a-16]:20==a&&(b=Db(this.b)));return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+J(this,X(this.b.u[7]).A));this.ia&1073741824?this.qa.push(a):this.ma&&a==this.ma||(this.ma=a,this.ia&-2147483648&&(this.fa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,a.M-=a.b,a.b=0,a.la=0,a.B.aa()))};
|
||||
function Af(a){var b;if(Id(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b<a.J.length;b++)a.J[b]=X();a.ea=0;a.g("instruction history buffer allocated")}if(!a.ca||!a.ca.length)for(a.ca=Array(256),b=0;b<a.ca.length;b++)a.ca[b]=[b,0]}else a.J&&a.J.length&&a.g("instruction history buffer freed"),a.ea=0,a.J=[],a.ca=[]}h.$a=function(a){if(!Mf(this))return!1;this.b.$a(a);return!0};
|
||||
h.ab=function(a,b,c){if(!Mf(this))return!1;this.H=0;a||Id(this)&&Jd(this,this.b.u[7],0);try{a=Oc(this.b,a);var d=this.b.ab(a);0<d&&(Pc(this.b,a),this.H+=d,Mc(this.b,d,!0),Jc(this.b,d),this.N++)}catch(e){"number"!=typeof e&&(this.H=0,kb(this.b,e.stack||e.message))}!1!==c&&this.B.aa();this.aa(b||!1);return 0<this.H};h.fa=function(a){this.b&&this.b.fa(a)};h.aa=function(a){void 0===a&&(a=!0);this.K=X(this.b.u[7]);a&&1!=this.V?Nf(this):Of(this)};
|
||||
function Mf(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.v.ga?b=!0:(b.g(b.toString()+" not powered"),b=!1);return b&&!a.b.v.da?!jb(a.b):!1}h.ya=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};h.xa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Af(this);this.N=this.sa=0;this.ma=null;this.H=0;this.K=X(this.b.u[7]);this.v.da=!1;Pf(this);a||this.aa()};
|
||||
h.save=function(){var a=new N(this);a.set(0,If(this.K));a.set(1,If(this.T));a.set(2,[this.i,this.U,this.ia]);a.set(3,this.G);return a.data()};h.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Jf(a[b++]),this.T=Jf(a[b++]),this.i=a[b][0],"string"==typeof this.i&&(this.i=[this.i]),this.U=a[b][1],this.ia|=a[b][2]);a[3]&&(this.G=a[3]);return!0};h.start=function(a,b){this.V||this.g("running");this.v.da=!0;this.gb=a;this.hb=b};
|
||||
h.stop=function(a,b){if(this.v.da){this.v.da=!1;this.H=b-this.hb;if(!this.V){b="stopped";if(this.H){a-=this.gb;var c=0<a?Math.round(1E3*this.H/a):0;b+=" (";Id(this)&&(b+=this.N+" opcodes, ",this.sa-=this.N,this.N=0);b+=this.H+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.aa(!0);this.nb();Pf(this,this.b.u[7])}};function Id(a){return 1<a.f.length||!!a.la}
|
||||
function Jd(a,b,c){var d=a.b;if(0<c&&(a.la&&!--a.la||Ac(a,b,1,a.f)))return!0;0<=c&&a.ca.length&&(a.N++,null!=Sb(a.w,b)&&(b=a.J[a.ea],b.A=d.u[7],b.wa=!1,++a.ea==a.J.length&&(a.ea=0)));return!1}function zf(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;Bc(d.W[Z(c)>>>d.Y],!1)}a.M=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.w,Bc(d.W[Z(c)>>>d.Y],!0);a.D=["bw"];a.La=0}
|
||||
h.Na=function(a,b,c){var d=!0;c||Qf(this,a,b,!1,!0);if(a!=this.f){var e=Z(b);if(-1===e)this.g("invalid address: "+J(this,b.A)),d=!1;else{var f=this.w;f.W[e>>>f.Y].Na(e&f.f,a==this.D)}}d&&(a.push(b),c?b.wa=!0:(Rf(this,a,a.length-1,"set"),Af(this)));return d};function Qf(a,b,c,d,e){var f=!1;c=Z(c);for(var g=1;g<b.length;g++){var l=b[g];if(c==Z(l)&&(!d||l.wa)){f=!0;l.wa||e||Rf(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Bc(d.W[c>>>d.Y],b==a.D));l.wa||Af(a);break}}return f}
|
||||
function Sf(a,b){for(var c=1;c<b.length;c++)Rf(a,b,c);return b.length-1}function Rf(a,b,c,d){c=b[c];a.g(b[0]+" "+J(a,c.A)+(d?" "+d:c.Zb?' "'+c.Zb+'"':""))}function Pf(a,b){if(void 0!==b)Ac(a,b,1,a.f,!0),a.V=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.wa){if(!Qf(a,a.f,c,!0))break;b=0}}}
|
||||
function Ac(a,b,c,d,e){var f=!1;if(!a.La++)for(var g=1;!f&&g<d.length;g++){var l=d[g];if(!e||l.wa)for(var m=Z(l),p=0;p<c;p++)if(b+p==m){var q,f=!0;l.wa&&(Qf(a,d,l,!0),e=!0);if(q=l.cc){for(var f=!1,w=0;w<q.length;w++)if(!Tf(a,q[w],!0)){if(q[w].indexOf("if")){f=!0;break}for(var u=w+1;u<q.length&&q[u].indexOf("else");u++)w++;if(u==q.length){f=!0;break}}a.b.v.da||(f=!0)}if(f){e||Rf(a,d,g,"hit");break}}}a.La--;return f}
|
||||
function Uf(a,b,c,d){var e=X(b.A),f=a.ja(b,2),g,l;for(l in a.Ua)if(g=a.Ua[l][f&l])break;g||(g=[0]);for(var m=l="",p=Df[g[0]],q=g.length-1,w=1;w<=q;w++){var u=g[w];if(void 0!==u){var v;v=a;var C=u,u=b,x="",D=C&61440;if(4096==D)u=u.A+((f&255)<<24>>23)&65535,x=J(v,u);else if(8192==D)u=u.A-((f&63)<<1)&65535,x=J(v,u);else if(12288==D)x=J(v,f&7,1);else if(24576==D)x=J(v,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:x=Lf(C);break;case 8:x="@"+Lf(C);break;case 16:7>C?x="("+Lf(C)+
|
||||
")+":(D=v.ja(u,2),x="#"+J(v,D,0,!0));break;case 24:7>C?x="@("+Lf(C)+")+":(D=v.ja(u,2),x="@#"+J(v,D,0,!0));break;case 32:x="-("+Lf(C)+")";break;case 40:x="@-("+Lf(C)+")";break;case 48:D=v.ja(u,2);x=J(v,D,0,!0)+"("+Lf(C)+")";7==C&&(x=[x,J(v,D+u.A&65535)]);break;case 56:D=v.ja(u,2),x="@"+J(v,D)+"("+Lf(C)+")",7==C&&(x=[x,J(v,D+u.A&65535)])}v=x;if(!v||!v.length){l="INVALID";break}"string"!=typeof v&&(m=v[1],v=v[0]);0<l.length&&(l+=",");l+=v||"???"}}f="";g=J(a,e.A)+":";if(-1!==e.A&&-1!==b.A){do if(f+=" "+
|
||||
J(a,a.ja(e,2)),null==e.A)break;while(e.A!=b.A)}g+=na(f,24);g+=na(p,5);l&&(g+=" "+l);if(c||m)g=na(g,60)+";"+(c||""),g=a.b.v.Va?g+("cycles="+Kc(a.b).toString()+" cs="+k(a.b.ib)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function Vf(a,b){switch(b){case "N":a=a.b.Aa();break;case "Z":a=nd(a.b);break;case "V":a=md(a.b);break;case "C":a=ld(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
||||
function Wf(a,b){var c="",d=a.b;8>b?(c=Lf(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ca[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.ra[b-16]):20==b&&(c="PS="+J(a,Db(d)));c&&(c+=" ");return c}function Xf(a){var b,c="";for(b=0;6>b;b++)c+=Wf(a,b);c=c+"\n"+(Wf(a,6)+Wf(a,7)+Wf(a,20));return c+=Vf(a,"T")+Vf(a,"N")+Vf(a,"Z")+Vf(a,"V")+Vf(a,"C")}h.Hb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Yf(a,b,c){var d=[],e=Z(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],g=f.A>>>0,l=f.lc;if(e>=g&&e<g+l){e=qa(f.Gb,[e-g],a.Hb);0<=e?Zf(a,b,e,d):c&&(e=~e,Zf(a,b,e-1,d),Zf(a,b,e,d));break}}return d}function Zf(a,b,c,d){var e={},f=a.G[b].Gb,g=0,l=null;0<=c&&c<f.length&&(g=f[c][0],l=f[c][1]);l&&(e=a.G[b].za[l],l="."==l.charAt(0)?null:e.l||l);d.push(l);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function $f(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return xf(a)||a.g("no variables"),!0;if(!c[2])return xf(a,c[1]);if(!c[3])return delete a.ba[c[1]],!0;b=tf(a,c[3]);return void 0!==b?(a.ba[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function ag(a,b,c){var d=null;if(b=Gf(a,b,!0)){var e=Yf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.A-e[1])&&(g=" + "+k(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.g(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.A)&&(g=" - "+k(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function Nf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}f=tf(a,b);if(void 0===f)return;b=e.toUpperCase();switch(b){case "SP":case "R6":d.u[6]=f&65535;break;case "PC":case "R7":pd(d,f);a.K=X(d.u[7]);break;case "N":d.S=f?32768:0;break;
|
||||
case "Z":d.X=f?0:1;break;case "V":d.P=f?32768:0;break;case "C":d.O=f?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.g("unknown register: "+e);return}a.B.aa();a.g("updated registers:")}a.g(Xf(a));c&&(a.K=X(d.u[7]),Of(a,J(a,a.K.A)))}}function bg(a,b){b=oa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):wf(a,null,c[2].charCodeAt(0)):tf(a,b,!0)}
|
||||
function cg(a,b,c){var d="t"!=b;c=vf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return gb(a,!0)&&a.ab(e,d,!1)},function(){a.B.aa();gb(a,!1)})}
|
||||
function Of(a,b,c,d){if(b=Gf(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Gf(a,c,!0);if(!d||d.A<b.A)return;e=d.A-b.A;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=hb(a,!1)||a.V?a.H:null;var g=null!=f?"cycles":null,l=Yf(a,b),m=b.A;if(l[0]&&d&&(!c&&d||0>l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.g(p)}l[3]&&(g=l[3],f=null);f=Uf(a,b,g,f);a.g(f);a.K=b;e-=b.A-m;c++}}}
|
||||
function Tf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.U&&(a.g("ended assemble at "+J(a,a.T.A)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ma=null;if(ib(a)&&0<b.length){a.U&&(b="a "+J(a,a.T.A)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var l=g[0],m=l.charAt(0),p=1;p<l.length;p++){var q=l.charAt(p);if("?"==m||"r"==m||"a">q||"z"<q){g[0]=l.substr(p);g.unshift(l.substr(0,p));break}}g[0]=g[0].toLowerCase();switch(g[0].charAt(0)){case "a":var w=
|
||||
Gf(a,g[1],!0);if(w)if(a.T=w,void 0===g[2])a.g("begin assemble at "+J(a,w.A)),a.U=!0,a.B.aa();else{var u;a.g("not supported yet");u=[];if(u.length){for(var v=0;v<u.length;v++)a.mb(w,u[v],1);a.g(Uf(a,a.T))}}break;case "b":a:{var C=g[0],x=g[1],D=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 ya=C.charAt(1);if("l"==ya){var Qc;Qc=0+Sf(a,a.f);Qc+=Sf(a,a.M);(Qc+=Sf(a,a.D))||a.g("no breakpoints")}else if("n"==ya)a.la=vf(a,x),a.g("break after "+a.la+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var U=X();if("*"!=x&&(U=Gf(a,x,!0),!U))break a;"c"==ya?null==U.A?(zf(a),a.g("all breakpoints cleared")):Qf(a,a.f,U)||Qf(a,a.M,U)||Qf(a,a.D,U)||a.g("breakpoint missing: "+J(a,U.A)):null!=U.A&&(Kf(a,U,D),"p"==ya?a.Na(a.f,
|
||||
U):"r"==ya?a.Na(a.M,U):"w"==ya?a.Na(a.D,U):a.g("unknown breakpoint command: "+ya))}}}break;case "c":a.Oa&&(a.Oa.value="");break;case "d":a:{var Pa,Qa=g[0],ha=g[1],za=g[2],vg=g[3];if("?"==ha){var Ra="";for(Pa in H)a.va[Pa]&&(Ra&&(Ra+=","),Ra+=Pa);Ra+=",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");Ra.length&&
|
||||
a.g("dump extension commands:\n\t"+Ra)}else if("state"==ha){var ze=dg(a.B,!0);"console"==za?console.log(ze):(a.Oa&&(a.Oa.value=""),a.g(ze))}else if("symbols"==ha)for(var Rc=0;Rc<a.G.length;Rc++){var Sc=a.G[Rc],Sa;for(Sa in Sc.za)if("."!=Sa.charAt(0)){var Ae=Sc.za[Sa].o;if(void 0!==Ae){var Be=Sc.za[Sa].l;Be&&(Sa=Be);a.g(J(a,Ae)+" "+Sa)}}}else{if("d"==Qa){for(Pa in H)if(g[1]==Pa){var Ce=a.va[Pa];Ce?(g.shift(),g.shift(),Ce(g)):a.g("no dump registered for "+ha);break a}ha||(Qa=a.qb||"db")}else a.qb=Qa;
|
||||
if("dh"==Qa){var De=ha,Ee=za,Fe="",Ge=0,ba=a.ea,ia=a.J;if(ia.length){var Y=+De||a.Ta,nb=+Ee||10;isNaN(Y)?Y=nb:Fe="more ";Y>ia.length&&(a.g("note: only "+ia.length+" available"),Y=ia.length);ba-=Y;0>ba&&(null==ia[ia.length-1].A?(Y=ba+Y,ba=0):ba+=ia.length);var Tc=[];"call"==Ee&&(nb=1E5,Tc=["CALL"]);for(void 0!==De&&a.g(Y+" instructions earlier:");0<nb&&ba!=a.ea;){var He=ia[ba++];if(null==He.A)break;var ob=X(He.A),wg=Y--,Ie=Uf(a,ob,"history",wg);(!Tc.length||0<=Ie.indexOf(Tc[0]))&&a.g(Ie);ob.xb&&(ba+=
|
||||
ob.xb,nb-=ob.xb,Y-=ob.xb);ba>=ia.length&&(ba=0);a.Ta=Y;Ge++;nb--}}Ge||(a.g("no "+Fe+"history available"),a.Ta=void 0)}else{var pb=Gf(a,ha);if(pb){var Zb=0;za&&("l"==za.charAt(0)&&(za=za.substr(1)||vg),Zb=vf(a,za)>>>0,65536<Zb&&(Zb=65536));for(var qb="",Ta="dd"==Qa?4:"dw"==Qa?2:1,$b=Ta*Zb||128,xg=$b+15>>4||1;xg--&&0<$b;){var ac=0,rb=0,sb,Uc="",Je="",ha=J(a,pb.A);for(sb=4==Ta?16:a.ha;0<sb&&0<$b;sb--){var Vc,bc=2==Ta?a.ja(pb,Vc=2):a.Pa(pb,Vc=1),ac=ac|bc<<(rb<<3),rb=rb+Vc;rb==Ta&&(Uc+=J(a,ac,Ta),Uc+=
|
||||
1==Ta?9==sb?"-":" ":" ",ac=rb=0);Je+=32<=bc&&128>bc?String.fromCharCode(bc):".";$b--}qb&&(qb+="\n");qb+=ha+" "+Uc+(0==sb?" "+Je:"")}qb&&a.g(qb);a.Ma=pb}}}}break;case "e":if("else"==g[0])break;var Ua,Wc,Xc,Yc,Zc=g[0],$c=g[1];"eb"==Zc?(Ua=1,Wc=255,Xc=a.Pa,Yc=a.mb):"e"==Zc||"ew"==Zc?(Ua=2,Wc=65535,Xc=a.ja,Yc=a.Ra):$c=null;if(null==$c)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 cc=Gf(a,$c);if(cc)for(var dc=2;dc<
|
||||
g.length;dc++){var tb=tf(a,g[dc]);if(void 0===tb){a.g("unrecognized value: "+g[dc]);break}tb&~Wc&&a.g("warning: "+k(tb)+" exceeds "+Ua+"-byte value");var yg=Xc.call(a,cc);a.g("changing "+J(a,cc.A)+" from "+J(a,yg,Ua)+" to "+J(a,tb,Ua));Yc.call(a,cc,tb,Ua)}}break;case "g":a:{var Ke=g[1],zg=b;if(void 0!==Ke){var ad=Gf(a,Ke,!0);if(!ad)break a;Kf(a,ad,zg);a.Na(a.f,ad,!0)}a.$a(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a.v.da?(c||a.g("halting"),a.fa()):hb(a,!0)||c||a.g("already halted");
|
||||
break;case "i":if("if"==g[0]){var bd;var ub=b.substr(2),ub=oa(ub);tf(a,ub)?(c||a.g("true: "+ub),bd=!0):(c||a.g("false: "+ub),bd=!1);bd||(d=!1);break}f=!0;break;case "k":var Ag=g[0];if("?"==g[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var cd=0,dd=X(),vb=X(a.b.u[6]);for(a.g("stack trace for "+J(a,vb.A));10>cd;){for(var Aa=null,Bg=256;65536>vb.A>>>0;){dd.A=a.ja(vb,2);if(null==vb.A||!Bg--)break;if(!(dd.A&1)){for(var Cg=a,ec=dd,Le=null,wb=
|
||||
ec.A,Me=wb,ed=1;6>=ed&&wb;ed++){if(2<ed){ec.A=wb;var fc=Uf(Cg,ec);if(0<=fc.indexOf("JSR")){var Ne=fc.indexOf(" ");if(wb+(fc.indexOf(" ",Ne+1)-Ne-1)/2==Me){Le=fc;break}}}wb-=2}ec.A=Me;if(Aa=Le)break}}if(!Aa||null==Aa)break;var Oe=null;if("ks"==Ag){var Pe=Aa.match(/[0-9A-F]+$/);Pe&&(Oe=ag(a,Pe[0]))}Aa=na(Aa,50)+" ;"+(Oe||"stack="+J(a,vb.A));a.g(Aa);cd++}cd||a.g("no return addresses found")}break;case "l":if("ln"==g[0]){ag(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);
|
||||
if(void 0!==F){var sa=0;if("all"==F)sa=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in H)if(F==ja){sa=H[ja];ka=!!(a.ia&sa);break}if(!sa){a.g("unknown message category: "+F);break a}}if(sa)if("on"==g[2])a.ia|=sa,ka=!0;else if("off"==g[2]&&(a.ia&=~sa,ka=!1,1073741824==sa)){for(var fd=0;fd<a.qa.length;fd++)a.g(a.qa[fd]);a.qa=[]}}var Dg=0,xb="";for(ja in H)if(!F||F==ja){var Eg=!!(a.ia&H[ja]);if(null===ka||ka==Eg)xb&&
|
||||
(xb+=","),++Dg%10||(xb+="\n\t"),"key"==ja&&(ja="keys"),xb+=ja}void 0===F&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ka?ka?"messages on: ":"messages off: ":"message categories:\n\t")+(xb||"none"));Af(a)}break;case "p":if("print"==g[0]){bg(a,b.substr(5));break}var Fg="pr"==g[0]?1:0;if(a.V)a.g("step in progress");else{var Qe=X(a.b.u[7]);a.Pa(Qe);a.V?(a.Na(a.f,Qe,!0),a.$a()||(a.B&&a.B.nb(),a.V=0)):cg(a,Fg?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();
|
||||
break}Nf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var yb=+g[2];if(8==yb||10==yb||16==yb)a.ha=yb;else{a.g("invalid base: "+yb);break}}a.g("default base: "+a.ha);break;case "cs":var zb;void 0!==g[3]&&(zb=+g[3]);switch(g[2]){case "int":a.b.Wa=zb;break;case "start":a.b.jb=zb;break;case "stop":a.b.Xa=zb;break;default:a.g("unknown cs option");break a}void 0!==zb&&Hc(a.b);a.g("checksums "+(a.b.v.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Lc(a.b,+g[2])||a.g("warning: using 1x multiplier, previous target not reached"));
|
||||
a.g("target speed: "+(a.b.Qa.toFixed(2)+"Mhz")+" ("+a.b.Ha+"x)");break;default:if(g[1]){a.g("unknown option: "+g[1]);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;case "t":cg(a,g[0],g[1]);break;case "u":Of(a,g[1],g[2],8);break;case "v":if("var"==g[0]){$f(a,
|
||||
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.g("PDPjs version 1.30.1 ("+a.b.Sb+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){bg(a,b.substr(1));break}var gd="commands:",hd;for(hd in Cf)gd+="\n"+na(hd,9)+Cf[hd];Id(a)||(gd+="\nnote: history disabled if no exec breakpoints");a.g(gd);break;default:f=!0}f&&(a.g("unknown command: "+b),d=!1)}}catch(Re){a.g("debugger error: "+(Re.stack||Re.message)),d=!1}return d}
|
||||
function Ic(a,b,c){b=rf(a,b,c);for(var d in b)if(!Tf(a,b[+d]))return!1;return!0}La(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new yf(d);fb(d,c)}});
|
||||
function eg(a,b,c){r.call(this,"Computer",a,eg,67108864);this.v.ga=!1;fg(this,b);this.M=Fc(this,"autoPower",a);this.B=0;this.ba=a.busWidth||a.buswidth;this.f=gg;this.J=null;this.G=this.U=!1;this.ca=Fc(this,"url")||"";(Math.random()+.1).toString(36);this.i=hg(this);if(this.b=eb("CPU",this.id)){this.j=eb("Debugger",this.id);this.w=new Eb({id:this.vb+".bus",busWidth:this.ba},this.b,this.j);var d,e=cb(this.id);if((this.C=eb("Panel",this.id))&&this.C.Oa)for(b=0;b<e.length;b++)d=e[b],d.na=this.C.na,d.g=
|
||||
this.C.g,d.Oa=this.C.Oa;this.g("PDPjs v1.30.1\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.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Fc(this,"state")||(f=!0,a.state))b=this.N=a,f||(this.G=!0,this.f=gg),this.f&&
|
||||
(this.K=new N(this,"1.30.1"),ig(this.K)?b=null:delete this.K);!b&&this.f&&(b=jg(this))&&(this.G=!0);if(b){var g=this;ua(b,null,!0,function(a,b,c){c?(g.H=null,g.G=!1,g.na("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(g.J=b,g.U=!0);G(g)})}else G(this);this.I.power||(this.M=!0);!c&&this.M&&kg(this,this.kb)}else n("Unable to find CPU component")}y(eg);var gg=0;
|
||||
function fg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.V=b}function Fc(a,b,c){var d=b.toLowerCase(),d=Wa[b]||Wa[d];void 0===d&&a.V&&(d=a.V[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function kg(a,b,c){for(var d=cb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ib(f)){ib(f,function(){kg(a,b,c)});return}}b.call(a,c)}
|
||||
function lg(a,b){var c=new N(a,"1.30.1","validate");if(ig(c)&&mg(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=eg.prototype;
|
||||
h.kb=function(a){void 0===a&&(a=this.f||(this.J?1:gg));if(!this.B){this.B++;var b=!1,c=!1;this.T=!1;var d=this.K||new N(this,"1.30.1");if(-1==a)b=!0;else if(a>gg){if(ig(d,this.J)){this.D=new N(this,"1.30.1","failsafe");ig(this.D)&&(ng(this,d),a=2,og(this.D));this.D.set("timestamp",ta());pg(this.D);var e=this.f&&!this.G;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=mg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ig(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.na("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.i=null)):this.g(f+": "+g),og(d),ig(d)?(c=mg(d),e=!0):c=!1))}e&&lg(this,c?d:null)}else 2==a&&d.clear()}else lg(this);delete this.J;delete this.K}e=cb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=qg(this,g,d,b,c));b=[d,a,c];-1!=a?kg(this,this.Jb,b):this.Jb(b)}};
|
||||
function qg(a,b,c,d,e){if(!b.v.ga){b.v.ga=!0;if(b.ya){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ya(f,d)&&f&&(n("Unable to restore state for "+b.type),a.N&&!a.U?(c.clear(),a.f=gg,window&&window.location.reload()):a.T=!0,b.ya(null),e=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
h.Jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ea=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(qg(this,this.b,b,c,a),this.b.eb());this.T&&(ng(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0};
|
||||
function ng(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.i||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;ua("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function dg(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=ta();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.xa&&(c&&a.b.fa(),d=a.b.xa(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var l=cb(a.id),m=0;m<l.length;m++){var p=l[m];p.v.ga&&(p.xa&&(d=p.xa(b,c),"object"===typeof d&&f.set(p.id,
|
||||
d)),c&&(p.v.ga=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.i&&rg(a,a.i,f.toString()),pg(g)&&pg(f)||(e=null,d=l=!0)):a.f&&(d=!0,l=3==a.f),d&&f.clear(l)):e=f.toString());c&&(a.v.ga=!1,b=a.I.power)&&(b.textContent="Power");a.B=0;return e}h.reset=function(){this.w&&this.w.reset&&(B(this,"Resetting "+this.w.type),this.w.reset());for(var a=cb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&(B(this,"Resetting "+c.type),c.reset())}};
|
||||
d.ka.value="";Ic(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Fa(c,function(a){var b=!1;hb(d,!0)||(gb(d,!0),b=d.ab(a?1:0),gb(d,!1));return b}),!0}return!1};h.nb=function(){this.ka&&this.ka.focus()};function Z(a){a=a&&a.A;null==a&&(a=-1);return a}h.Pa=function(a,b){var c=255,d=Z(a);-1!==d&&(c=this.w,c.w++,d=c.W[(d&c.i)>>>c.Y].yb(d&c.f,d),c.w--,c=d,b&&If(a,b));return c};h.ja=function(a,b){var c=65535,d=Z(a);-1!==d&&(c=Sb(this.w,d),b&&If(a,b));return c};
|
||||
h.mb=function(a,b,c){var d=Z(a);-1!==d&&(Tb(this.w,d,b),c&&If(a,c),this.B.aa(!0))};h.Ra=function(a,b,c){var d=Z(a);if(-1!==d){var e=this.w,f=d&e.f,g=(d&e.i)>>>e.Y;e.w++;e.W[g].Fb(f,b&65535,d);e.w--;c&&If(a,c);this.B.aa(!0)}};function X(a){return{A:a,wa:!1}}function Jf(a){return[a.A,a.wa]}function Kf(a){return{A:a[0],wa:a[1]}}
|
||||
function Hf(a,b,c){var d;c=(c?a.K:a.Ma).A;if(void 0!==b){d=b=vf(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].za[d];if(void 0!==f){d=f.o;void 0!==d&&(e=X(d));break}}if(d=e)return d;c=uf(a,b,void 0)}null!=c&&(d=X(c));return d}function Lf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.cc=sf(a,b.Zb=c[2]))}function If(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function Cf(a,b){a.j=a;a.ia=a.ec=536870912;a.ma=null;a.qa=[];b=sf(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in H){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ia|=H[c],a.g(c+" messages enabled"))}}function Gf(a,b){for(var c in H)if(64==H[c]){a.va[c]=b;break}}
|
||||
h.Mb=function(a){var b=-1;a=a.toUpperCase();switch(a){case "SP":b=6;break;case "PC":b=7;break;default:"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b)&&(b=-1)}return b};function Mf(a){return 6>a?"R"+a:6==a?"SP":"PC"}h.Nb=function(a){var b;0<=a&&(8>a?b=this.b.u[a]:16>a?b=this.b.Ca[a-8]:20>a?b=this.b.ra[a-16]:20==a&&(b=Db(this.b)));return b};
|
||||
h.message=function(a,b){b&&(a+=" @"+J(this,X(this.b.u[7]).A));this.ia&1073741824?this.qa.push(a):this.ma&&a==this.ma||(this.ma=a,this.ia&-2147483648&&(this.fa(),a+=" (cpu halted)"),this.g(a),this.b&&(a=this.b,Oc(a),a.la=0,a.B.aa()))};
|
||||
function Bf(a){var b;if(Jd(a)){if(!a.J||!a.J.length){a.J=Array(1E3);for(b=0;b<a.J.length;b++)a.J[b]=X();a.ea=0;a.g("instruction history buffer allocated")}if(!a.ca||!a.ca.length)for(a.ca=Array(256),b=0;b<a.ca.length;b++)a.ca[b]=[b,0]}else a.J&&a.J.length&&a.g("instruction history buffer freed"),a.ea=0,a.J=[],a.ca=[]}h.$a=function(a){if(!Nf(this))return!1;this.b.$a(a);return!0};
|
||||
h.ab=function(a,b,c){if(!Nf(this))return!1;this.H=0;a||Jd(this)&&Kd(this,this.b.u[7],0);try{a=Pc(this.b,a);var d=this.b.ab(a);0<d&&(Qc(this.b,a),this.H+=d,Mc(this.b,d,!0),Jc(this.b,d),this.R++)}catch(e){"number"!=typeof e&&(this.H=0,kb(this.b,e.stack||e.message))}!1!==c&&this.B.aa();this.aa(b||!1);return 0<this.H};h.fa=function(a){this.b&&this.b.fa(a)};h.aa=function(a){void 0===a&&(a=!0);this.K=X(this.b.u[7]);a&&1!=this.V?Of(this):Pf(this)};
|
||||
function Nf(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.v.ga?b=!0:(b.g(b.toString()+" not powered"),b=!1);return b&&!a.b.v.da?!jb(a.b):!1}h.ya=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};h.xa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Bf(this);this.R=this.sa=0;this.ma=null;this.H=0;this.K=X(this.b.u[7]);this.v.da=!1;Qf(this);a||this.aa()};
|
||||
h.save=function(){var a=new N(this);a.set(0,Jf(this.K));a.set(1,Jf(this.T));a.set(2,[this.i,this.U,this.ia]);a.set(3,this.G);return a.data()};h.restore=function(a){var b=0;void 0!==a[2]&&(this.K=Kf(a[b++]),this.T=Kf(a[b++]),this.i=a[b][0],"string"==typeof this.i&&(this.i=[this.i]),this.U=a[b][1],this.ia|=a[b][2]);a[3]&&(this.G=a[3]);return!0};h.start=function(a,b){this.V||this.g("running");this.v.da=!0;this.gb=a;this.hb=b};
|
||||
h.stop=function(a,b){if(this.v.da){this.v.da=!1;this.H=b-this.hb;if(!this.V){b="stopped";if(this.H){a-=this.gb;var c=0<a?Math.round(1E3*this.H/a):0;b+=" (";Jd(this)&&(b+=this.R+" opcodes, ",this.sa-=this.R,this.R=0);b+=this.H+" cycles, "+a+" ms, "+c+" hz)"}else E(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}this.aa(!0);this.nb();Qf(this,this.b.u[7])}};function Jd(a){return 1<a.f.length||!!a.la}
|
||||
function Kd(a,b,c){var d=a.b;if(0<c&&(a.la&&!--a.la||Ac(a,b,1,a.f)))return!0;0<=c&&a.ca.length&&(a.R++,null!=Sb(a.w,b)&&(b=a.J[a.ea],b.A=d.u[7],b.wa=!1,++a.ea==a.J.length&&(a.ea=0)));return!1}function Af(a){var b,c;a.f=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];var d=a.w;Bc(d.W[Z(c)>>>d.Y],!1)}a.M=["br"];if(a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.w,Bc(d.W[Z(c)>>>d.Y],!0);a.D=["bw"];a.La=0}
|
||||
h.Na=function(a,b,c){var d=!0;c||Rf(this,a,b,!1,!0);if(a!=this.f){var e=Z(b);if(-1===e)this.g("invalid address: "+J(this,b.A)),d=!1;else{var f=this.w;f.W[e>>>f.Y].Na(e&f.f,a==this.D)}}d&&(a.push(b),c?b.wa=!0:(Sf(this,a,a.length-1,"set"),Bf(this)));return d};function Rf(a,b,c,d,e){var f=!1;c=Z(c);for(var g=1;g<b.length;g++){var l=b[g];if(c==Z(l)&&(!d||l.wa)){f=!0;l.wa||e||Sf(a,b,g,"cleared");b.splice(g,1);b!=a.f&&(d=a.w,Bc(d.W[c>>>d.Y],b==a.D));l.wa||Bf(a);break}}return f}
|
||||
function Tf(a,b){for(var c=1;c<b.length;c++)Sf(a,b,c);return b.length-1}function Sf(a,b,c,d){c=b[c];a.g(b[0]+" "+J(a,c.A)+(d?" "+d:c.Zb?' "'+c.Zb+'"':""))}function Qf(a,b){if(void 0!==b)Ac(a,b,1,a.f,!0),a.V=0;else for(b=1;b<a.f.length;b++){var c=a.f[b];if(c.wa){if(!Rf(a,a.f,c,!0))break;b=0}}}
|
||||
function Ac(a,b,c,d,e){var f=!1;if(!a.La++)for(var g=1;!f&&g<d.length;g++){var l=d[g];if(!e||l.wa)for(var m=Z(l),p=0;p<c;p++)if(b+p==m){var q,f=!0;l.wa&&(Rf(a,d,l,!0),e=!0);if(q=l.cc){for(var f=!1,w=0;w<q.length;w++)if(!Uf(a,q[w],!0)){if(q[w].indexOf("if")){f=!0;break}for(var u=w+1;u<q.length&&q[u].indexOf("else");u++)w++;if(u==q.length){f=!0;break}}a.b.v.da||(f=!0)}if(f){e||Sf(a,d,g,"hit");break}}}a.La--;return f}
|
||||
function Vf(a,b,c,d){var e=X(b.A),f=a.ja(b,2),g,l;for(l in a.Ua)if(g=a.Ua[l][f&l])break;g||(g=[0]);for(var m=l="",p=Ef[g[0]],q=g.length-1,w=1;w<=q;w++){var u=g[w];if(void 0!==u){var v;v=a;var C=u,u=b,x="",D=C&61440;if(4096==D)u=u.A+((f&255)<<24>>23)&65535,x=J(v,u);else if(8192==D)u=u.A-((f&63)<<1)&65535,x=J(v,u);else if(12288==D)x=J(v,f&7,1);else if(24576==D)x=J(v,f&63,1);else if(D=f&C,C&4032&&(D>>=6,C>>=6),C&63)switch(C=D&7,D&56){case 0:x=Mf(C);break;case 8:x="@"+Mf(C);break;case 16:7>C?x="("+Mf(C)+
|
||||
")+":(D=v.ja(u,2),x="#"+J(v,D,0,!0));break;case 24:7>C?x="@("+Mf(C)+")+":(D=v.ja(u,2),x="@#"+J(v,D,0,!0));break;case 32:x="-("+Mf(C)+")";break;case 40:x="@-("+Mf(C)+")";break;case 48:D=v.ja(u,2);x=J(v,D,0,!0)+"("+Mf(C)+")";7==C&&(x=[x,J(v,D+u.A&65535)]);break;case 56:D=v.ja(u,2),x="@"+J(v,D)+"("+Mf(C)+")",7==C&&(x=[x,J(v,D+u.A&65535)])}v=x;if(!v||!v.length){l="INVALID";break}"string"!=typeof v&&(m=v[1],v=v[0]);0<l.length&&(l+=",");l+=v||"???"}}f="";g=J(a,e.A)+":";if(-1!==e.A&&-1!==b.A){do if(f+=" "+
|
||||
J(a,a.ja(e,2)),null==e.A)break;while(e.A!=b.A)}g+=na(f,24);g+=na(p,5);l&&(g+=" "+l);if(c||m)g=na(g,60)+";"+(c||""),g=a.b.v.Va?g+("cycles="+Kc(a.b).toString()+" cs="+k(a.b.ib)):g+(null!=d?"="+d.toString():""),m&&(g+=" @"+m);return g}function Wf(a,b){switch(b){case "N":a=a.b.Aa();break;case "Z":a=od(a.b);break;case "V":a=nd(a.b);break;case "C":a=md(a.b);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
|
||||
function Xf(a,b){var c="",d=a.b;8>b?(c=Mf(b),c+="="+J(a,d.u[b])):13>b?c="A"+(b-8)+"="+J(a,d.Ca[b-8]):16<=b&&20>b?c="S"+(b-16)+"="+J(a,d.ra[b-16]):20==b&&(c="PS="+J(a,Db(d)));c&&(c+=" ");return c}function Yf(a){var b,c="";for(b=0;6>b;b++)c+=Xf(a,b);c=c+"\n"+(Xf(a,6)+Xf(a,7)+Xf(a,20));return c+=Wf(a,"T")+Wf(a,"N")+Wf(a,"Z")+Wf(a,"V")+Wf(a,"C")}h.Hb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Zf(a,b,c){var d=[],e=Z(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],g=f.A>>>0,l=f.lc;if(e>=g&&e<g+l){e=qa(f.Gb,[e-g],a.Hb);0<=e?$f(a,b,e,d):c&&(e=~e,$f(a,b,e-1,d),$f(a,b,e,d));break}}return d}function $f(a,b,c,d){var e={},f=a.G[b].Gb,g=0,l=null;0<=c&&c<f.length&&(g=f[c][0],l=f[c][1]);l&&(e=a.G[b].za[l],l="."==l.charAt(0)?null:e.l||l);d.push(l);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function ag(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return yf(a)||a.g("no variables"),!0;if(!c[2])return yf(a,c[1]);if(!c[3])return delete a.ba[c[1]],!0;b=uf(a,c[3]);return void 0!==b?(a.ba[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function bg(a,b,c){var d=null;if(b=Hf(a,b,!0)){var e=Zf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.A-e[1])&&(g=" + "+k(f,4,!0)),f=e[0]+" ("+J(a,e[1])+")"+g,c&&a.g(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.A)&&(g=" - "+k(f,4,!0)),f=e[4]+" ("+J(a,e[5])+")"+g,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function Of(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}f=uf(a,b);if(void 0===f)return;b=e.toUpperCase();switch(b){case "SP":case "R6":d.u[6]=f&65535;break;case "PC":case "R7":qd(d,f);a.K=X(d.u[7]);break;case "N":d.S=f?32768:0;break;
|
||||
case "Z":d.X=f?0:1;break;case "V":d.O=f?32768:0;break;case "C":d.N=f?65536:0;break;default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){d.u[b]=f&65535;break}a.g("unknown register: "+e);return}a.B.aa();a.g("updated registers:")}a.g(Yf(a));c&&(a.K=X(d.u[7]),Pf(a,J(a,a.K.A)))}}function cg(a,b){b=oa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):xf(a,null,c[2].charCodeAt(0)):uf(a,b,!0)}
|
||||
function dg(a,b,c){var d="t"!=b;c=wf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ea(c,function(){return gb(a,!0)&&a.ab(e,d,!1)},function(){a.B.aa();gb(a,!1)})}
|
||||
function Pf(a,b,c,d){if(b=Hf(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Hf(a,c,!0);if(!d||d.A<b.A)return;e=d.A-b.A;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=hb(a,!1)||a.V?a.H:null;var g=null!=f?"cycles":null,l=Zf(a,b),m=b.A;if(l[0]&&d&&(!c&&d||0>l[0].indexOf("+"))){var p=l[0]+":";l[2]&&(p+=" "+l[2]);a.g(p)}l[3]&&(g=l[3],f=null);f=Vf(a,b,g,f);a.g(f);a.K=b;e-=b.A-m;c++}}}
|
||||
function Uf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.U&&(a.g("ended assemble at "+J(a,a.T.A)),a.K=a.T,a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ma=null;if(ib(a)&&0<b.length){a.U&&(b="a "+J(a,a.T.A)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");if(g&&g.length)for(var l=g[0],m=l.charAt(0),p=1;p<l.length;p++){var q=l.charAt(p);if("?"==m||"r"==m||"a">q||"z"<q){g[0]=l.substr(p);g.unshift(l.substr(0,p));break}}g[0]=g[0].toLowerCase();switch(g[0].charAt(0)){case "a":var w=
|
||||
Hf(a,g[1],!0);if(w)if(a.T=w,void 0===g[2])a.g("begin assemble at "+J(a,w.A)),a.U=!0,a.B.aa();else{var u;a.g("not supported yet");u=[];if(u.length){for(var v=0;v<u.length;v++)a.mb(w,u[v],1);a.g(Vf(a,a.T))}}break;case "b":a:{var C=g[0],x=g[1],D=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 ya=C.charAt(1);if("l"==ya){var Rc;Rc=0+Tf(a,a.f);Rc+=Tf(a,a.M);(Rc+=Tf(a,a.D))||a.g("no breakpoints")}else if("n"==ya)a.la=wf(a,x),a.g("break after "+a.la+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var U=X();if("*"!=x&&(U=Hf(a,x,!0),!U))break a;"c"==ya?null==U.A?(Af(a),a.g("all breakpoints cleared")):Rf(a,a.f,U)||Rf(a,a.M,U)||Rf(a,a.D,U)||a.g("breakpoint missing: "+J(a,U.A)):null!=U.A&&(Lf(a,U,D),"p"==ya?a.Na(a.f,
|
||||
U):"r"==ya?a.Na(a.M,U):"w"==ya?a.Na(a.D,U):a.g("unknown breakpoint command: "+ya))}}}break;case "c":a.Oa&&(a.Oa.value="");break;case "d":a:{var Pa,Qa=g[0],ha=g[1],za=g[2],wg=g[3];if("?"==ha){var Ra="";for(Pa in H)a.va[Pa]&&(Ra&&(Ra+=","),Ra+=Pa);Ra+=",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");Ra.length&&
|
||||
a.g("dump extension commands:\n\t"+Ra)}else if("state"==ha){var Ae=eg(a.B,!0);"console"==za?console.log(Ae):(a.Oa&&(a.Oa.value=""),a.g(Ae))}else if("symbols"==ha)for(var Sc=0;Sc<a.G.length;Sc++){var Tc=a.G[Sc],Sa;for(Sa in Tc.za)if("."!=Sa.charAt(0)){var Be=Tc.za[Sa].o;if(void 0!==Be){var Ce=Tc.za[Sa].l;Ce&&(Sa=Ce);a.g(J(a,Be)+" "+Sa)}}}else{if("d"==Qa){for(Pa in H)if(g[1]==Pa){var De=a.va[Pa];De?(g.shift(),g.shift(),De(g)):a.g("no dump registered for "+ha);break a}ha||(Qa=a.qb||"db")}else a.qb=Qa;
|
||||
if("dh"==Qa){var Ee=ha,Fe=za,Ge="",He=0,ba=a.ea,ia=a.J;if(ia.length){var Y=+Ee||a.Ta,nb=+Fe||10;isNaN(Y)?Y=nb:Ge="more ";Y>ia.length&&(a.g("note: only "+ia.length+" available"),Y=ia.length);ba-=Y;0>ba&&(null==ia[ia.length-1].A?(Y=ba+Y,ba=0):ba+=ia.length);var Uc=[];"call"==Fe&&(nb=1E5,Uc=["CALL"]);for(void 0!==Ee&&a.g(Y+" instructions earlier:");0<nb&&ba!=a.ea;){var Ie=ia[ba++];if(null==Ie.A)break;var ob=X(Ie.A),xg=Y--,Je=Vf(a,ob,"history",xg);(!Uc.length||0<=Je.indexOf(Uc[0]))&&a.g(Je);ob.xb&&(ba+=
|
||||
ob.xb,nb-=ob.xb,Y-=ob.xb);ba>=ia.length&&(ba=0);a.Ta=Y;He++;nb--}}He||(a.g("no "+Ge+"history available"),a.Ta=void 0)}else{var pb=Hf(a,ha);if(pb){var Zb=0;za&&("l"==za.charAt(0)&&(za=za.substr(1)||wg),Zb=wf(a,za)>>>0,65536<Zb&&(Zb=65536));for(var qb="",Ta="dd"==Qa?4:"dw"==Qa?2:1,$b=Ta*Zb||128,yg=$b+15>>4||1;yg--&&0<$b;){var ac=0,rb=0,sb,Vc="",Ke="",ha=J(a,pb.A);for(sb=4==Ta?16:a.ha;0<sb&&0<$b;sb--){var Wc,bc=2==Ta?a.ja(pb,Wc=2):a.Pa(pb,Wc=1),ac=ac|bc<<(rb<<3),rb=rb+Wc;rb==Ta&&(Vc+=J(a,ac,Ta),Vc+=
|
||||
1==Ta?9==sb?"-":" ":" ",ac=rb=0);Ke+=32<=bc&&128>bc?String.fromCharCode(bc):".";$b--}qb&&(qb+="\n");qb+=ha+" "+Vc+(0==sb?" "+Ke:"")}qb&&a.g(qb);a.Ma=pb}}}}break;case "e":if("else"==g[0])break;var Ua,Xc,Yc,Zc,$c=g[0],ad=g[1];"eb"==$c?(Ua=1,Xc=255,Yc=a.Pa,Zc=a.mb):"e"==$c||"ew"==$c?(Ua=2,Xc=65535,Yc=a.ja,Zc=a.Ra):ad=null;if(null==ad)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 cc=Hf(a,ad);if(cc)for(var dc=2;dc<
|
||||
g.length;dc++){var tb=uf(a,g[dc]);if(void 0===tb){a.g("unrecognized value: "+g[dc]);break}tb&~Xc&&a.g("warning: "+k(tb)+" exceeds "+Ua+"-byte value");var zg=Yc.call(a,cc);a.g("changing "+J(a,cc.A)+" from "+J(a,zg,Ua)+" to "+J(a,tb,Ua));Zc.call(a,cc,tb,Ua)}}break;case "g":a:{var Le=g[1],Ag=b;if(void 0!==Le){var bd=Hf(a,Le,!0);if(!bd)break a;Lf(a,bd,Ag);a.Na(a.f,bd,!0)}a.$a(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a.v.da?(c||a.g("halting"),a.fa()):hb(a,!0)||c||a.g("already halted");
|
||||
break;case "i":if("if"==g[0]){var cd;var ub=b.substr(2),ub=oa(ub);uf(a,ub)?(c||a.g("true: "+ub),cd=!0):(c||a.g("false: "+ub),cd=!1);cd||(d=!1);break}f=!0;break;case "k":var Bg=g[0];if("?"==g[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var dd=0,ed=X(),vb=X(a.b.u[6]);for(a.g("stack trace for "+J(a,vb.A));10>dd;){for(var Aa=null,Cg=256;65536>vb.A>>>0;){ed.A=a.ja(vb,2);if(null==vb.A||!Cg--)break;if(!(ed.A&1)){for(var Dg=a,ec=ed,Me=null,wb=
|
||||
ec.A,Ne=wb,fd=1;6>=fd&&wb;fd++){if(2<fd){ec.A=wb;var fc=Vf(Dg,ec);if(0<=fc.indexOf("JSR")){var Oe=fc.indexOf(" ");if(wb+(fc.indexOf(" ",Oe+1)-Oe-1)/2==Ne){Me=fc;break}}}wb-=2}ec.A=Ne;if(Aa=Me)break}}if(!Aa||null==Aa)break;var Pe=null;if("ks"==Bg){var Qe=Aa.match(/[0-9A-F]+$/);Qe&&(Pe=bg(a,Qe[0]))}Aa=na(Aa,50)+" ;"+(Pe||"stack="+J(a,vb.A));a.g(Aa);dd++}dd||a.g("no return addresses found")}break;case "l":if("ln"==g[0]){bg(a,g[1],!0);break}f=!0;break;case "m":a:{var ja,ka=null,F=g[1];"?"==F&&(F=void 0);
|
||||
if(void 0!==F){var sa=0;if("all"==F)sa=1878917119,F=null;else if("on"==F)ka=!0,F=null;else if("off"==F)ka=!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ja in H)if(F==ja){sa=H[ja];ka=!!(a.ia&sa);break}if(!sa){a.g("unknown message category: "+F);break a}}if(sa)if("on"==g[2])a.ia|=sa,ka=!0;else if("off"==g[2]&&(a.ia&=~sa,ka=!1,1073741824==sa)){for(var gd=0;gd<a.qa.length;gd++)a.g(a.qa[gd]);a.qa=[]}}var Eg=0,xb="";for(ja in H)if(!F||F==ja){var Fg=!!(a.ia&H[ja]);if(null===ka||ka==Fg)xb&&
|
||||
(xb+=","),++Eg%10||(xb+="\n\t"),"key"==ja&&(ja="keys"),xb+=ja}void 0===F&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ka?ka?"messages on: ":"messages off: ":"message categories:\n\t")+(xb||"none"));Bf(a)}break;case "p":if("print"==g[0]){cg(a,b.substr(5));break}var Gg="pr"==g[0]?1:0;if(a.V)a.g("step in progress");else{var Re=X(a.b.u[7]);a.Pa(Re);a.V?(a.Na(a.f,Re,!0),a.$a()||(a.B&&a.B.nb(),a.V=0)):dg(a,Gg?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();
|
||||
break}Of(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var yb=+g[2];if(8==yb||10==yb||16==yb)a.ha=yb;else{a.g("invalid base: "+yb);break}}a.g("default base: "+a.ha);break;case "cs":var zb;void 0!==g[3]&&(zb=+g[3]);switch(g[2]){case "int":a.b.Wa=zb;break;case "start":a.b.jb=zb;break;case "stop":a.b.Xa=zb;break;default:a.g("unknown cs option");break a}void 0!==zb&&Hc(a.b);a.g("checksums "+(a.b.v.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Lc(a.b,+g[2])||a.g("warning: using 1x multiplier, previous target not reached"));
|
||||
a.g("target speed: "+(a.b.Qa.toFixed(2)+"Mhz")+" ("+a.b.Ha+"x)");break;default:if(g[1]){a.g("unknown option: "+g[1]);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;case "t":dg(a,g[0],g[1]);break;case "u":Pf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ag(a,
|
||||
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.g("PDPjs version 1.30.1 ("+a.b.Sb+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){cg(a,b.substr(1));break}var hd="commands:",id;for(id in Df)hd+="\n"+na(id,9)+Df[id];Jd(a)||(hd+="\nnote: history disabled if no exec breakpoints");a.g(hd);break;default:f=!0}f&&(a.g("unknown command: "+b),d=!1)}}catch(Se){a.g("debugger error: "+(Se.stack||Se.message)),d=!1}return d}
|
||||
function Ic(a,b,c){b=sf(a,b,c);for(var d in b)if(!Uf(a,b[+d]))return!1;return!0}La(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zf(d);fb(d,c)}});
|
||||
function fg(a,b,c){r.call(this,"Computer",a,fg,67108864);this.v.ga=!1;gg(this,b);this.M=Fc(this,"autoPower",a);this.B=0;this.ba=a.busWidth||a.buswidth;this.f=hg;this.J=null;this.G=this.U=!1;this.ca=Fc(this,"url")||"";(Math.random()+.1).toString(36);this.i=ig(this);if(this.b=eb("CPU",this.id)){this.j=eb("Debugger",this.id);this.w=new Eb({id:this.vb+".bus",busWidth:this.ba},this.b,this.j);var d,e=cb(this.id);if((this.C=eb("Panel",this.id))&&this.C.Oa)for(b=0;b<e.length;b++)d=e[b],d.na=this.C.na,d.g=
|
||||
this.C.g,d.Oa=this.C.Oa;this.g("PDPjs v1.30.1\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.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.w,this.b,this.j);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.H=d:this.f=parseInt(d,10));var f;if(a=Fc(this,"state")||(f=!0,a.state))b=this.R=a,f||(this.G=!0,this.f=hg),this.f&&
|
||||
(this.K=new N(this,"1.30.1"),jg(this.K)?b=null:delete this.K);!b&&this.f&&(b=kg(this))&&(this.G=!0);if(b){var g=this;ua(b,null,!0,function(a,b,c){c?(g.H=null,g.G=!1,g.na("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(g.J=b,g.U=!0);G(g)})}else G(this);this.I.power||(this.M=!0);!c&&this.M&&lg(this,this.kb)}else n("Unable to find CPU component")}y(fg);var hg=0;
|
||||
function gg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){n(d.message+" ("+c+")")}}a.V=b}function Fc(a,b,c){var d=b.toLowerCase(),d=Wa[b]||Wa[d];void 0===d&&a.V&&(d=a.V[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function lg(a,b,c){for(var d=cb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ib(f)){ib(f,function(){lg(a,b,c)});return}}b.call(a,c)}
|
||||
function mg(a,b){var c=new N(a,"1.30.1","validate");if(jg(c)&&ng(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=fg.prototype;
|
||||
h.kb=function(a){void 0===a&&(a=this.f||(this.J?1:hg));if(!this.B){this.B++;var b=!1,c=!1;this.T=!1;var d=this.K||new N(this,"1.30.1");if(-1==a)b=!0;else if(a>hg){if(jg(d,this.J)){this.D=new N(this,"1.30.1","failsafe");jg(this.D)&&(og(this,d),a=2,pg(this.D));this.D.set("timestamp",ta());qg(this.D);var e=this.f&&!this.G;if(1==a||va("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=ng(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jg(d,g):("error"==
|
||||
f&&"no machine state"!=g?(this.na("Error: "+g),"unable to verify user"==g&&(Ca("user",""),this.i=null)):this.g(f+": "+g),pg(d),jg(d)?(c=ng(d),e=!0):c=!1))}e&&mg(this,c?d:null)}else 2==a&&d.clear()}else mg(this);delete this.J;delete this.K}e=cb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=rg(this,g,d,b,c));b=[d,a,c];-1!=a?lg(this,this.Jb,b):this.Jb(b)}};
|
||||
function rg(a,b,c,d,e){if(!b.v.ga){b.v.ga=!0;if(b.ya){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ya(f,d)&&f&&(n("Unable to restore state for "+b.type),a.R&&!a.U?(c.clear(),a.f=hg,window&&window.location.reload()):a.T=!0,b.ya(null),e=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
h.Jb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ea=!0;this.v.ga=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.b&&(rg(this,this.b,b,c,a),this.b.eb());this.T&&(og(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.B=0};
|
||||
function og(a,b){if(va("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.i||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.ca;d.user=c;d.type="bug";d.data=b;ua("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function eg(a,b,c){var d,e="none";if(a.B)return null;a.B--;var f=new N(a,"1.30.1"),g=new N(a,"1.30.1","validate"),l=ta();g.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.xa&&(c&&a.b.fa(),d=a.b.xa(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.v.ga=!1,!1===d&&(e=null)));for(var l=cb(a.id),m=0;m<l.length;m++){var p=l[m];p.v.ga&&(p.xa&&(d=p.xa(b,c),"object"===typeof d&&f.set(p.id,
|
||||
d)),c&&(p.v.ga=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.i&&sg(a,a.i,f.toString()),qg(g)&&qg(f)||(e=null,d=l=!0)):a.f&&(d=!0,l=3==a.f),d&&f.clear(l)):e=f.toString());c&&(a.v.ga=!1,b=a.I.power)&&(b.textContent="Power");a.B=0;return e}h.reset=function(){this.w&&this.w.reset&&(B(this,"Resetting "+this.w.type),this.w.reset());for(var a=cb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&(B(this,"Resetting "+c.type),c.reset())}};
|
||||
h.start=function(a,b){for(var c=cb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.aa(!0)};h.stop=function(a,b){for(var c=cb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.aa(!0)};
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.B||(d.v.ga?dg(d,!1,!0):kg(d,d.kb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ga&&!d.B)if(d.f&&!d.H){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");dg(d,a,!0);!a&&d.N?window&&window.location.reload():d.kb(gg)}else d.reset(),d.b&&d.b.eb()},!0;case "save":if(fa())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=hg(d,!0);if(a){var b=!!(d.f&&!d.H||d.N),c=dg(d,b);b?rg(d,a,c):d.na("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function hg(a,b){var c=a.i;c||((c=Ba("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=sg(a,c))||a.na("The user ID is invalid.")):b&&a.na("Browser local storage is not available"));return c}
|
||||
function sg(a,b){a.i=null;b=ua(ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ca("user",b.data),a.i=b.data)}catch(d){n(d.message+" ("+c+")")}return a.i}function jg(a){var b=null;a.i&&(b=ga()+"/api/v1/user?req=load&user="+a.i+"&state="+tg(a,"1.30.1"));return b}
|
||||
function rg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=tg(a,"1.30.1");d.data=c;b=ua(ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.na("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.na(c),Ca("user",""),a.i=null)}}h.nb=function(){};
|
||||
h.aa=function(a){this.b&&this.b.aa(a);this.C&&this.C.aa(a)};La(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new eg(g,d,!0);fb(g,f);g.M&&kg(g,g.kb)}});Ga.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.ea&&!c.v.ga&&c.kb(-1)}});
|
||||
Ga.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.v.ga&&dg(c,!(!c.f||c.H),!0)}});function N(a,b,c){this.id=a.id;this.key=tg(a,b,c);this.j=a.j;og(this,a.mc)}function tg(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}
|
||||
N.prototype={constructor:N,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){og(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
||||
1);c=0}}};function og(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function pg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);Ca(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function mg(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function ig(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=Ba(a.key))?(a[a.id]=b,a.b=!0):!1}var ug=0;
|
||||
function Gg(a,b,c,d,e,f){e("Loading "+a+"...");ua(a,null,!0,function(g,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),f(l,null)):Hg(l,a,b,c,d,e,f)})}
|
||||
function Hg(a,b,c,d,e,f,g){function l(a,f){if(f)g(f,null);else{c&&(bb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Ig(a,f,l):l(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ig(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ua(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Ig(a,b,c)}})}else c(a,null)}
|
||||
function Jg(a,b,c,d){function e(a){if(void 0===l){var b=g&&A(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ma(a))}function f(a){e("Error: "+a);m&&(--ug||Na(!0));m=!1}var g,l,m=!0;ug++;ab[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=p:w.appendChild(document.createTextNode(p));q.appendChild(w)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Gg(c,null,null,!1,e,function(d,m){m?(bb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--ug||Na(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--ug||Na(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Gg(b,a,d,!0,e,p):Hg(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(u){f(u.message)}return m}window.embedPDP11=function(a,b,c,d){Na(!1);return Jg(a,b,c,d)};window.enableEvents=Na;window.sendEvent=Oa;})();
|
||||
h.pa=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.B||(d.v.ga?eg(d,!1,!0):lg(d,d.kb))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.ga&&!d.B)if(d.f&&!d.H){var a=va("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");eg(d,a,!0);!a&&d.R?window&&window.location.reload():d.kb(hg)}else d.reset(),d.b&&d.b.eb()},!0;case "save":if(fa())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=ig(d,!0);if(a){var b=!!(d.f&&!d.H||d.R),c=eg(d,b);b?sg(d,a,c):d.na("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function ig(a,b){var c=a.i;c||((c=Ba("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=tg(a,c))||a.na("The user ID is invalid.")):b&&a.na("Browser local storage is not available"));return c}
|
||||
function tg(a,b){a.i=null;b=ua(ga()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ca("user",b.data),a.i=b.data)}catch(d){n(d.message+" ("+c+")")}return a.i}function kg(a){var b=null;a.i&&(b=ga()+"/api/v1/user?req=load&user="+a.i+"&state="+ug(a,"1.30.1"));return b}
|
||||
function sg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ug(a,"1.30.1");d.data=c;b=ua(ga()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.na("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.na(c),Ca("user",""),a.i=null)}}h.nb=function(){};
|
||||
h.aa=function(a){this.b&&this.b.aa(a);this.C&&this.C.aa(a)};La(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pdp11","computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new fg(g,d,!0);fb(g,f);g.M&&lg(g,g.kb)}});Ga.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.ea&&!c.v.ga&&c.kb(-1)}});
|
||||
Ga.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=eb("Computer",c.id))&&c.v.ga&&eg(c,!(!c.f||c.H),!0)}});function N(a,b,c){this.id=a.id;this.key=ug(a,b,c);this.j=a.j;pg(this,a.mc)}function ug(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}
|
||||
N.prototype={constructor:N,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){pg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
||||
1);c=0}}};function pg(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function qg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);Ca(a.key,c)||(n("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ng(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){n(c.message||c),b=!1}return b}function jg(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=Ba(a.key))?(a[a.id]=b,a.b=!0):!1}var vg=0;
|
||||
function Hg(a,b,c,d,e,f){e("Loading "+a+"...");ua(a,null,!0,function(g,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),f(l,null)):Ig(l,a,b,c,d,e,f)})}
|
||||
function Ig(a,b,c,d,e,f,g){function l(a,f){if(f)g(f,null);else{c&&(bb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){f=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Jg(a,f,l):l(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Jg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ua(e,null,!0,function(f,g,l){if(l||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=l[0],p,q=/( [a-z]+=)(['"])(.*?)\2/g;p=q.exec(f);)m=0>m.indexOf(p[1])?m.replace(">",p[0]+">"):m.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=m&&(g=g.replace(l[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Jg(a,b,c)}})}else c(a,null)}
|
||||
function Kg(a,b,c,d){function e(a){if(void 0===l){var b=g&&A(g,"machine-warning");l=b&&b[0]||g}l&&(l.innerHTML=ma(a))}function f(a){e("Error: "+a);m&&(--vg||Na(!0));m=!1}var g,l,m=!0;vg++;ab[a]={};try{if(g=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=p:w.appendChild(document.createTextNode(p));q.appendChild(w)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Hg(c,null,null,!1,e,function(d,m){m?(bb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(m=l.transformNode(m))?(g.outerHTML=m,--vg||Na(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(m),(m=d.transformToFragment(l,document))?g.parentNode?(g.parentNode.replaceChild(m,g),--vg||Na(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Hg(b,a,d,!0,e,p):Ig(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(u){f(u.message)}return m}window.embedPDP11=function(a,b,c,d){Na(!1);return Kg(a,b,c,d)};window.enableEvents=Na;window.sendEvent=Oa;})();
|
||||
|
|
|
|||
|
|
@ -688,38 +688,38 @@ function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&"
|
|||
var ja={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},ka=Date.now||function(){return+new Date};
|
||||
function la(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function m(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var l=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(l.onreadystatechange=function(){4===l.readyState&&(f=l.responseText,200==l.status||!l.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=l.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var n="",p;for(p in b)b.hasOwnProperty(p)&&(n&&(n+="&"),n+=p+"="+encodeURIComponent(b[p]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function q(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b}var na=null;function oa(){if(null==na){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}na=a}return na}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
typeof b){var n="",q;for(q in b)b.hasOwnProperty(q)&&(n&&(n+="&"),n+=q+"="+encodeURIComponent(b[q]));n=n.replace(/%20/g,"+");l.open("POST",a,!!c);l.setRequestHeader("Content-type","application/x-www-form-urlencoded");l.send(n)}else l.open("GET",a,!!c),"bytes"==b&&l.overrideMimeType("text/plain; charset=x-user-defined"),l.send();c||(f=l.responseText,200!=l.status&&(e=l.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function p(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b}var na=null;function oa(){if(null==na){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}na=a}return na}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(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 r={init:[],show:[],exit:[]},sa=!1,ta=!1,ua=!0;function va(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){r.init.push(a)}
|
||||
function wa(a){if(ua)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 xa(a){!ua&&a?(ua=!0,sa&&ya("init"),ta&&ya("show")):ua=a}function ya(a){r[a]&&wa(r[a])}va("onload",function(){sa=!0;wa(r.init)});va("onpageshow",function(){ta=!0;wa(r.show)});va(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){wa(r.exit)});
|
||||
function wa(a){if(ua)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){p(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function xa(a){!ua&&a?(ua=!0,sa&&ya("init"),ta&&ya("show")):ua=a}function ya(a){r[a]&&wa(r[a])}va("onload",function(){sa=!0;wa(r.init)});va("onpageshow",function(){ta=!0;wa(r.show)});va(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){wa(r.exit)});
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.Bb=b;b=this.id.indexOf(".");0>b?this.Ca=this.id:(this.Sa=this.id.substr(0,b),this.Ca=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Wc:!1,Xc:!1,L:!1,error:!1};this.La=null;this.h.error=!1;this.v={};this.I=null;w.push(this)}var za=void 0,Aa={};
|
||||
if(window){za||(za=window.location.search.substr(1));for(var Ba,Ca=/\+/g,Da=/([^&=]+)=?([^&]*)/g;Ba=Da.exec(za);)Aa[decodeURIComponent(Ba[1].replace(Ca," "))]=decodeURIComponent(Ba[2].replace(Ca," "))}function Ea(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||
function x(a,b){b||(b=v);a.prototype=Ea(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Fa=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Fa={},w=[];function Ga(a,b,c){Fa[a]&&b&&(Fa[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Ha(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}function z(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
||||
function Ha(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}function z(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){p(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){b=C(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var l=h.split(" "),n=0;n<l.length;n++)switch(h=l[n],h){case "pdp11-binding":(h=A(f))&&h.binding&&a.T(h.type,h.binding,f,h.value),n=l.length}}}}
|
||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},T:function(a,b,c){switch(b){case "clear":return this.v[b]||(this.v[b]=c,c.onclick=function(a){return function(){a.v.print&&(a.v.print.value="")}}(this)),!0;case "print":return this.v[b]||(this.Qa=this.v[b]=c,c.value="",this.O=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.O(a,this.Ca)}),!0;default:return!1}},log:function(){},O:function(){},status:function(a){this.O(this.Ca+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ba:function(){return this.h.L=!0},aa:function(a,b){b&&(this.h.L=!1);return!0}};function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.La;a.La=null;b&&b()}}function Ia(a,b){b&&(a.h.ready?b():a.La=b);return a.h.ready}
|
||||
this.K=function(a){this.O(a,this.Ca)}),!0;default:return!1}},log:function(){},O:function(){},status:function(a){this.O(this.Ca+": "+a)},K:function(a,b,c){c=c||this.type;b||p((c?c+": ":"")+a)},aa:function(){return this.h.L=!0},$:function(a,b){b&&(this.h.L=!1);return!0}};function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.La;a.La=null;b&&b()}}function Ia(a,b){b&&(a.h.ready?b():a.La=b);return a.h.ready}
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});var Ja="undefined"!==typeof ArrayBuffer;function Ka(a){v.call(this,"Panel",a,Ka);this.b=0;this.h.$a=!0}x(Ka);g=Ka.prototype;
|
||||
g.T=function(a,b,c,d){if(this.w&&this.w.T(a,b,c,d)||this.a&&this.a.T(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.v[b]=c,this.b++,!0;default:return"rled"==a?(this.v[b]=c,this.b++,!0):this.parent.T.call(this,a,b,c,d)}};g.ja=function(a,b,c,d){this.w=a;this.j=b;this.a=c;this.I=d};g.ba=function(a,b){b||La();return!0};g.aa=function(){return!0};
|
||||
g.T=function(a,b,c,d){if(this.w&&this.w.T(a,b,c,d)||this.a&&this.a.T(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.v[b]=c,this.b++,!0;default:return"rled"==a?(this.v[b]=c,this.b++,!0):this.parent.T.call(this,a,b,c,d)}};g.ja=function(a,b,c,d){this.w=a;this.j=b;this.a=c;this.I=d};g.aa=function(a,b){b||La();return!0};g.$=function(){return!0};
|
||||
function E(a,b,c,d){if(a.v[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),F(a.a));var e=a.I&&a.I.b||8;if(!a.a.h.S||a.h.$a)if(8==e){e="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)e="?"+e;else for(;0<d--;)e=String.fromCharCode((c&7)+48)+e,c>>=3;d=""+e}else d=k(c,d);else d="--------".substr(0,d||4);a.v[b].textContent!=d&&(a.v[b].textContent=d)}}function Ma(a,b,c,d){for(var e=0;e<d;e++){var f=a.v[b+e];f&&(f.style.backgroundColor=c&1<<e?"#ff0000":"#000000")}}
|
||||
g.ca=function(a){if(this.b&&(a||!this.a.h.S||this.h.$a)){for(a=0;a<this.a.f.length;a++)E(this,"R"+a,this.a.f[a]);a=Na(this.a);E(this,"PS",a);E(this,"NF",a&8?1:0,1);E(this,"ZF",a&4?1:0,1);E(this,"VF",a&2?1:0,1);E(this,"CF",a&1?1:0,1);Ma(this,"D",this.a.f[0],16);Ma(this,"A",this.a.f[7],22)}};function La(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=Ha(e.id);f||(a=!0,f=new Ka(e));B(f,d);a&&D(f)}}u(La);
|
||||
g.ba=function(a){if(this.b&&(a||!this.a.h.S||this.h.$a)){for(a=0;a<this.a.f.length;a++)E(this,"R"+a,this.a.f[a]);a=Na(this.a);E(this,"PS",a);E(this,"NF",a&8?1:0,1);E(this,"ZF",a&4?1:0,1);E(this,"VF",a&2?1:0,1);E(this,"CF",a&1?1:0,1);Ma(this,"D",this.a.f[0],16);Ma(this,"A",this.a.f[7],22)}};function La(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=Ha(e.id);f||(a=!0,f=new Ka(e));B(f,d);a&&D(f)}}u(La);
|
||||
function Oa(a,b,c){v.call(this,"Bus",a,Oa);this.a=b;this.I=c;this.B=a.busWidth||16;this.m=0;this.H=[];this.A=null;this.D=Math.pow(2,this.B);this.i=this.D-1|0;this.c=(this.B>>1)+2;10>this.c&&(this.c=10);15<this.c&&(this.c=15);this.j=1<<this.c;this.G=this.j>>2;this.g=this.j-1;this.s=this.D/this.j|0;this.ga=[];this.o=0;this.w=[];this.tb=[Pa,Qa,Ra,Sa];a=new G(this);Ta(a,this.I);this.b=Array(this.s);for(b=0;b<this.s;b++)this.b[b]=a;D(this)}x(Oa);
|
||||
function Pa(a,b){var c=-1,d=this.controller,e=d.ga[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.ga[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=Ua(d)}function Qa(a,b,c){var d=!1,e=this.controller,f=e.ga[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ga[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||Ua(e)}
|
||||
function Ra(a,b){var c=-1,d=this.controller;(a=d.ga[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=Ua(d)}function Sa(a,b,c){var d=!1,e=this.controller;if(a=e.ga[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||Ua(e)}function Va(a,b){if(b!=a.m){var c;a.m&&(c=(1<<a.m)-8192,Wa(a,c,8192,a.H),a.m=0);b&&(a.m=b,c=(1<<b)-8192,a.H=Xa(a,c,8192),a.A?Wa(a,c,8192,a.A):(Ya(a,c,8192,Za,a),a.A=Xa(a,c,8192)))}}
|
||||
Oa.prototype.reset=function(){for(var a=0;a<this.w.length;a++)this.w[a]();Va(this,16)};function Ua(a){a.o||H(a.a,4);return 0}Oa.prototype.ba=function(a,b){b||this.reset();return!0};
|
||||
function Ya(a,b,c,d,e){for(var f=b,h=c,l=f>>>a.c;0<h&&l<a.b.length;){var n=a.b[l],p=l*a.j,t=a.j-(f-p);t>h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.xa)return n.Oa+=n.xa-f,n.xa=f,!0;if(f>=n.xa+n.Oa){t=n.size-(f-p);t>h&&(t=h);n.Oa=f-n.xa+t;f=p+a.j;h-=t;l++;continue}}return $a(1,f,h)}f=new G(a,f,t,a.j,d,e);Ta(f,a.I,n);a.b[l++]=f;f=p+a.j;h-=t}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+k(b,8,!0)),!0):$a(2,b,c)}
|
||||
function Pa(a,b){var c=-1,d=this.controller,e=d.ga[a];e?e[0]?c=e[0](b):e[2]&&(c=b&1?e[2](b&-2)>>8:e[2](b)&255):b&1&&(e=d.ga[a&-2])&&e[2]&&(c=e[2](b&-2)>>8);return 0<=c?c:c=Ua(d,b|4186112)}function Qa(a,b,c){var d=!1,e=this.controller,f=e.ga[a];if(f)if(f[1])f[1](b,c),d=!0;else{if(f[3]){a=f[2]?f[2](0):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);d=!0}}else c&1&&(f=e.ga[a&-2])&&f[3]&&(c&=-2,a=f[2]?f[2](0):0,f[3](a&255|b<<8,c),d=!0);d||Ua(e,c|4186112)}
|
||||
function Ra(a,b){var c=-1,d=this.controller;(a=d.ga[a])&&(a[2]?c=a[2](b):a[0]&&(c=a[0](b)|a[0](b+1)<<8));return 0<=c?c:c=Ua(d,b|4186112)}function Sa(a,b,c){var d=!1,e=this.controller;if(a=e.ga[a])a[3]?(a[3](b,c),d=!0):a[1]&&(a[1](b&255,c),a[1](b>>8,c+1),d=!0);d||Ua(e,c|4186112)}function Va(a,b){if(b!=a.m){var c;a.m&&(c=(1<<a.m)-8192,Wa(a,c,8192,a.H),a.m=0);b&&(a.m=b,c=(1<<b)-8192,a.H=Xa(a,c,8192),a.A?Wa(a,c,8192,a.A):(Ya(a,c,8192,Za,a),a.A=Xa(a,c,8192)))}}
|
||||
Oa.prototype.reset=function(){for(var a=0;a<this.w.length;a++)this.w[a]();Va(this,16)};function Ua(a,b){a.o||H(a.a,4,b);return 0}Oa.prototype.aa=function(a,b){b||this.reset();return!0};
|
||||
function Ya(a,b,c,d,e){for(var f=b,h=c,l=f>>>a.c;0<h&&l<a.b.length;){var n=a.b[l],q=l*a.j,t=a.j-(f-q);t>h&&(t=h);if(!e&&n&&n.size){if(n.type==d){if(f+h<=n.xa)return n.Oa+=n.xa-f,n.xa=f,!0;if(f>=n.xa+n.Oa){t=n.size-(f-q);t>h&&(t=h);n.Oa=f-n.xa+t;f=q+a.j;h-=t;l++;continue}}return $a(1,f,h)}f=new G(a,f,t,a.j,d,e);Ta(f,a.I,n);a.b[l++]=f;f=q+a.j;h-=t}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+k(b,8,!0)),!0):$a(2,b,c)}
|
||||
function Xa(a,b,c){var d=[];for(b>>>=a.c;0<c&&b<a.b.length;)d.push(a.b[b++]),c-=a.j;return d}function Wa(a,b,c,d){var e=0;for(b>>>=a.c;0<c&&b<a.b.length;){var f=d[e++];if(!f)break;a.b[b++]=f;c-=a.j}}function bb(a,b){return a.b[(b&a.i)>>>a.c].Wa(b&a.g,b)}function cb(a,b){return a.b[(b&a.i)>>>a.c].gc(b&a.g,b)}function db(a,b,c){a.b[(b&a.i)>>>a.c].Qc(b&a.g,c&65535,b)}
|
||||
function eb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.b[d];if(e.ha||e.vb){c[b++]=d;var f=b++;if(e=e.save()){for(var h=0,l=0,n=[];h<e.length;){for(var p=e[h],t=h+1;t<e.length&&e[t]===p;)t++;n[l++]=t-h;n[l++]=p;h=t}n.length<e.length&&(e=n)}c[f]=e}}return c}function fb(a,b,c,d,e,f,h,l){for(;b<=c;b+=2){var n=b&8191;void 0!==a.ga[n]?q("I/O address already registered: "+k(b,8,!0)):a.ga[n]=[d,e,f,h,l||"unknown",!1]}}
|
||||
function gb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.a.Ab)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,p=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));fb(a,e,e,h,l,n,p,f[4])}}}function hb(a,b){a.w.push(b)}function ib(a){a.o||H(a.a,4)}
|
||||
function $a(a,b,c){q("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function I(a){v.call(this,"Device",a,I);this.c={data:0,Vc:0,Ma:20,Zc:0};this.b={Yc:0,Za:-1}}x(I);g=I.prototype;g.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;var e=this;this.b.Za=jb(c,function(){e.b.ka|=128;e.b.ka&64&&(kb(e.a,e.b.mc),lb(e.a,e.b.Za,1E3/60))});this.b.mc=mb(c,64,6);gb(b,this,J);hb(b,this.reset.bind(this));D(this)};g.Jb=function(){var a=this.b.ka;this.b.ka&=-129;return a};
|
||||
function eb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.b[d];if(e.ha||e.vb){c[b++]=d;var f=b++;if(e=e.save()){for(var h=0,l=0,n=[];h<e.length;){for(var q=e[h],t=h+1;t<e.length&&e[t]===q;)t++;n[l++]=t-h;n[l++]=q;h=t}n.length<e.length&&(e=n)}c[f]=e}}return c}function fb(a,b,c,d,e,f,h,l){for(;b<=c;b+=2){var n=b&8191;void 0!==a.ga[n]?p("I/O address already registered: "+k(b,8,!0)):a.ga[n]=[d,e,f,h,l||"unknown",!1]}}
|
||||
function gb(a,b,c){for(var d in c){var e=+d,f=c[d];if(!(f[5]&&f[5]>a.a.Ab)){var h=f[0]?f[0].bind(b):null,l=f[1]?f[1].bind(b):null,n=f[2]?f[2].bind(b):null,q=f[3]?f[3].bind(b):null;65472<=e&&65487>=e&&(!h&&n&&(h=function(a){return function(b){return a(b)&255}.bind(b)}(n)),!l&&q&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(q)));fb(a,e,e,h,l,n,q,f[4])}}}function hb(a,b){a.w.push(b)}function ib(a,b){a.o||H(a.a,4,b)}
|
||||
function $a(a,b,c){p("Memory block error ("+a+": "+k(b)+","+k(c)+")");return!1}function I(a){v.call(this,"Device",a,I);this.c={data:0,Vc:0,Ma:20,Zc:0};this.b={Yc:0,Za:-1}}x(I);g=I.prototype;g.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;var e=this;this.b.Za=jb(c,function(){e.b.ka|=128;e.b.ka&64&&(kb(e.a,e.b.mc),lb(e.a,e.b.Za,1E3/60))});this.b.mc=mb(c,64,6);gb(b,this,J);hb(b,this.reset.bind(this));D(this)};g.Jb=function(){var a=this.b.ka;this.b.ka&=-129;return a};
|
||||
g.uc=function(a){this.b.ka=a;a&64&&lb(this.a,this.b.Za,1E3/60);this.b.ka=a&-129};g.Lb=function(){var a=this.a;return a.A&62337|a.Da<<5|a.Ea<<1};g.wc=function(a){var b=this.a;a&=62337;if(b.A!=a){b.A=a;b.Da=a>>5&3;b.Ea=a>>1&15;var c=0;a&257&&(c=4,a&1&&(c|=2));b.Na!=c&&(b.Na=c,nb(b))}ob(this)};g.Mb=function(){var a=this.a.la;a&65280&&(a=(a<<8|a>>8)&65535);return a};g.Nb=function(){return this.a.Ya};g.Ob=function(){return this.a.ma};
|
||||
g.xc=function(a){var b=this.a;b.ma!=a&&(b.ma=a,a&16?(b.Ua=4194303,b.Fa=3915776):(b.Ua=262143,b.Fa=253952),nb(b));ob(this)};function ob(a){a.c.Ma=a.c.Ma&-8|(a.a.Na?a.a.ma&16?1:2:4)}g.$b=function(a){return this.a.C[1][a>>1&7]};g.Jc=function(a,b){this.a.C[1][b>>1&7]=a&65295};g.Yb=function(a){return this.a.C[1][(a>>1&7)+8]};g.Hc=function(a,b){this.a.C[1][(b>>1&7)+8]=a&65295};g.Zb=function(a){return this.a.P[1][a>>1&7]};g.Ic=function(a,b){b=b>>1&7;this.a.P[1][b]=a;this.a.C[1][b]&=65295};
|
||||
g.Xb=function(a){return this.a.P[1][(a>>1&7)+8]};g.Gc=function(a,b){b=(b>>1&7)+8;this.a.P[1][b]=a;this.a.C[1][b]&=65295};g.Ib=function(a){return this.a.C[0][a>>1&7]};g.tc=function(a,b){this.a.C[0][b>>1&7]=a&65295};g.Gb=function(a){return this.a.C[0][(a>>1&7)+8]};g.rc=function(a,b){this.a.C[0][(b>>1&7)+8]=a&65295};g.Hb=function(a){return this.a.P[0][a>>1&7]};g.sc=function(a,b){b=b>>1&7;this.a.P[0][b]=a;this.a.C[0][b]&=65295};g.Fb=function(a){return this.a.P[0][(a>>1&7)+8]};
|
||||
g.qc=function(a,b){b=(b>>1&7)+8;this.a.P[0][b]=a;this.a.C[0][b]&=65295};g.fc=function(a){return this.a.C[3][a>>1&7]};g.Pc=function(a,b){this.a.C[3][b>>1&7]=a&65295};g.dc=function(a){return this.a.C[3][(a>>1&7)+8]};g.Nc=function(a,b){this.a.C[3][(b>>1&7)+8]=a&65295};g.ec=function(a){return this.a.P[3][a>>1&7]};g.Oc=function(a,b){b=b>>1&7;this.a.P[3][b]=a;this.a.C[3][b]&=65295};g.cc=function(a){return this.a.P[3][(a>>1&7)+8]};g.Mc=function(a,b){b=(b>>1&7)+8;this.a.P[3][b]=a;this.a.C[3][b]&=65295};
|
||||
g.sa=function(a){a&=7;return this.a.u&2048?this.a.ra[a]:this.a.f[a]};g.ua=function(a,b){b&=7;this.a.u&2048?this.a.ra[b]=a:this.a.f[b]=a};g.Rb=function(){return this.a.u&49152?this.a.U[0]:this.a.f[6]};g.Ac=function(a){this.a.u&49152?this.a.U[0]=a:this.a.f[6]=a};g.Ub=function(){return this.a.f[7]};g.Dc=function(a){this.a.f[7]=a};g.ta=function(a){a&=7;return this.a.u&2048?this.a.f[a]:this.a.ra[a]};g.va=function(a,b){b&=7;this.a.u&2048?this.a.f[b]=a:this.a.ra[b]=a};
|
||||
g.Sb=function(){return 1==(this.a.u&49152)>>14?this.a.f[6]:this.a.U[1]};g.Bc=function(a){1==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.U[1]=a};g.Tb=function(){return 3==(this.a.u&49152)>>14?this.a.f[6]:this.a.U[3]};g.Cc=function(a){3==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.U[3]=a};g.Eb=function(a){return this.a.nb[a-65504>>1]};g.pc=function(a,b){this.a.nb[b-65504>>1]=a};g.jb=function(a){return 65520==a?61183:0};g.sb=function(){};g.bc=function(){return 1};g.Lc=function(){};g.Db=function(){return this.a.F};
|
||||
g.sa=function(a){a&=7;return this.a.u&2048?this.a.ra[a]:this.a.f[a]};g.ua=function(a,b){b&=7;this.a.u&2048?this.a.ra[b]=a:this.a.f[b]=a};g.Rb=function(){return this.a.u&49152?this.a.V[0]:this.a.f[6]};g.Ac=function(a){this.a.u&49152?this.a.V[0]=a:this.a.f[6]=a};g.Ub=function(){return this.a.f[7]};g.Dc=function(a){this.a.f[7]=a};g.ta=function(a){a&=7;return this.a.u&2048?this.a.f[a]:this.a.ra[a]};g.va=function(a,b){b&=7;this.a.u&2048?this.a.f[b]=a:this.a.ra[b]=a};
|
||||
g.Sb=function(){return 1==(this.a.u&49152)>>14?this.a.f[6]:this.a.V[1]};g.Bc=function(a){1==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.V[1]=a};g.Tb=function(){return 3==(this.a.u&49152)>>14?this.a.f[6]:this.a.V[3]};g.Cc=function(a){3==(this.a.u&49152)>>14?this.a.f[6]=a:this.a.V[3]=a};g.Eb=function(a){return this.a.nb[a-65504>>1]};g.pc=function(a,b){this.a.nb[b-65504>>1]=a};g.jb=function(a){return 65520==a?61183:0};g.sb=function(){};g.bc=function(){return 1};g.Lc=function(){};g.Db=function(){return this.a.F};
|
||||
g.oc=function(){this.a.F=0};g.Kb=function(){return this.a.lb};g.vc=function(a,b){b&1||(a&=255);this.a.lb=a};g.Pb=function(a){return a?this.a.mb:0};g.yc=function(a){var b=this.a;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1)}b.mb=a;b.l|=2};g.ac=function(a){return a?this.a.na&65280:0};g.Kc=function(a){this.a.na=a|255};g.Qb=function(){return Na(this.a)};g.zc=function(a){pb(this.a,a&-1809|Na(this.a)&1808);this.a.l|=128};g.rb=function(){};g.reset=function(){this.c.Ma=this.c.Ma&-120|20;this.b.ka=0};
|
||||
var K={},J=(K[62592]=[null,null,I.prototype.$b,I.prototype.Jc,"SISDR"],K[62608]=[null,null,I.prototype.Yb,I.prototype.Hc,"SDSDR"],K[62624]=[null,null,I.prototype.Zb,I.prototype.Ic,"SISAR"],K[62640]=[null,null,I.prototype.Xb,I.prototype.Gc,"SDSAR"],K[62656]=[null,null,I.prototype.Ib,I.prototype.tc,"KISDR"],K[62672]=[null,null,I.prototype.Gb,I.prototype.rc,"KDSDR"],K[62688]=[null,null,I.prototype.Hb,I.prototype.sc,"KISAR"],K[62704]=[null,null,I.prototype.Fb,I.prototype.qc,"KDSAR"],K[62798]=[null,null,
|
||||
I.prototype.Ob,I.prototype.xc,"MMR3"],K[65382]=[null,null,I.prototype.Jb,I.prototype.uc,"LKS"],K[65402]=[null,null,I.prototype.Lb,I.prototype.wc,"MMR0"],K[65404]=[null,null,I.prototype.Mb,I.prototype.rb,"MMR1"],K[65406]=[null,null,I.prototype.Nb,I.prototype.rb,"MMR2"],K[65408]=[null,null,I.prototype.fc,I.prototype.Pc,"UISDR"],K[65424]=[null,null,I.prototype.dc,I.prototype.Nc,"UDSDR"],K[65440]=[null,null,I.prototype.ec,I.prototype.Oc,"UISAR"],K[65456]=[null,null,I.prototype.cc,I.prototype.Mc,"UDSAR"],
|
||||
|
|
@ -733,37 +733,38 @@ J[65506]=J[65504];J[65508]=J[65504];J[65510]=J[65504];J[65512]=J[65504];J[65514]
|
|||
function G(a,b,c,d,e,f){this.j=a;this.id=tb+=2;this.a=null;this.xa=b;this.Oa=c;this.size=d||0;this.type=e||ub;this.v=e==vb;this.controller=null;Ta(this);this.ha=this.vb=!1;if(d)if(f)this.controller=f,this.a=null,wb(this,f.tb);else if(Ja)this.b=new ArrayBuffer(d),this.g=new DataView(this.b,0,d),this.c=new Uint8Array(this.b,0,d),this.o=new Uint16Array(this.b,0,d>>1),this.a=new Int32Array(this.b,0,d>>2),wb(this,sb?xb:yb);else{this.a=Array(d>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;wb(this,zb)}else wb(this)}
|
||||
var ub=0,vb=2,Za=4,ab=["NONE","RAM","ROM","VID","H/W"],tb=0;
|
||||
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ja)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ja)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.a=a;return this.ha=!0}return!1},w:function(){return 255},A:function(){},s:function(a,b){return this.Wa(a++,b++)|this.Wa(a,b)<<8},B:function(a,b,c){this.Pa(a++,
|
||||
b&255,c++);this.Pa(a,b>>8,c)},M:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},X:function(a){a&1&&ib(this.j);var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},da:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ha=!0},qa:function(a,b){a&1&&ib(this.j);var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ha=!0},G:function(a,b){return this.H(a,b)},
|
||||
R:function(a,b){return this.V(a,b)},Z:function(a,b,c){this.v||this.qb(a,b,c)},fa:function(a,b,c){this.v||this.oa(a,b,c)},D:function(a){return this.c[a]},J:function(a){return this.c[a]},N:function(a){a&1&&ib(this.j);return this.g.getUint16(a,!0)},W:function(a){a&1&&ib(this.j);return this.o[a>>1]},Y:function(a,b){this.c[a]=b;this.ha=!0},$:function(a,b){this.c[a]=b;this.ha=!0},ea:function(a,b){a&1&&ib(this.j);this.g.setUint16(a,b,!0);this.ha=!0},pa:function(a,b){a&1&&ib(this.j);this.o[a>>1]=b;this.ha=
|
||||
!0}};function Ta(a,b,c){a.I=b;a.i=a.m=0;c&&((a.i=c.i)&&Ab(a,Bb,!1),(a.m=c.m)&&Cb(a,Bb,!1))}function Cb(a,b,c){c&&a.m||(a.Pa=!a.v&&b[1]||a.A,a.Qc=!a.v&&b[3]||a.B);if(c||void 0===c)a.qb=b[1]||a.A,a.oa=b[3]||a.B}function Ab(a,b,c){c&&a.i||(a.Wa=b[0]||a.w,a.gc=b[2]||a.s);if(c||void 0===c)a.H=b[0]||a.w,a.V=b[2]||a.s}function wb(a,b){b||(b=Db);Ab(a,b,void 0);Cb(a,b,void 0)}var Db=[],zb=[G.prototype.M,G.prototype.da,G.prototype.X,G.prototype.qa],Bb=[G.prototype.G,G.prototype.Z,G.prototype.R,G.prototype.fa];
|
||||
if(Ja)var yb=[G.prototype.D,G.prototype.Y,G.prototype.N,G.prototype.ea],xb=[G.prototype.J,G.prototype.$,G.prototype.W,G.prototype.pa];function Eb(a,b){v.call(this,"CPU",a,Eb);var c=a.multiplier||1;this.Ia=a.cycles||b;this.Z=c;this.Ta=Math.round(this.Ia/1E4)/100;this.da=this.Ta*this.Z;this.h.S=!1;this.h.ob=!1;this.h.ya=a.autoStart;this.h.Ka=!1;this.Ba=this.ea=0;this.Ha=a.csStart;this.oa=a.csInterval;this.pa=a.csStop;this.G=[];this.hb=this.kc.bind(this);D(this)}x(Eb);var Fb=["power","reset"];g=Eb.prototype;
|
||||
g.ja=function(a,b,c,d){this.w=a;this.j=b;this.I=d;for(b=0;b<Fb.length;b++)(c=this.v[Fb[b]])&&this.w.T(null,Fb[b],c);a=Gb(a,"autoStart");null!=a&&(this.h.ya="true"==a?!0:"false"==a?!1:!!a);D(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};g.ba=function(a,b){if(!b){if(a&&this.restore){Hb(this);if(!this.restore(a))return!1;Ib(this)}else this.reset();this.O("No debugger detected")}this.w.ca();return!0};g.aa=function(a){return a?this.save():!0};
|
||||
g.ya=function(){return this.h.ya||void 0===this.v.run?(Jb(this),!0):!1};g.bb=function(){return 0};function Ib(a){void 0===a.Ha&&(a.Ha=0);void 0===a.oa&&(a.oa=-1);void 0===a.pa&&(a.pa=-1);a.h.Ka=0<=a.Ha&&0<a.oa;a.h.Ka&&(a.Ba=0,a.ea=a.Ha-a.$)}
|
||||
g.T=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.v[b]=c,!0;case "run":return this.v[b]=c,c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.h.L)a=!0;else{var b=null,c,l=y(a.id);for(c=0;c<l.length&&(b=l[c],b===a||b.h.ready);c++);if(c==l.length)for(c=0;c<l.length&&(b=l[c],b===a||b.h.L);c++);c==l.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.La?" (waiting for notification)":""))+".");a=!1}a&&(d.h.S?F(d):Jb(d))},!0;case "speed":return this.v[b]=
|
||||
c,!0;case "setSpeed":return this.v[b]=c,c.onclick=function(){Kb(d,d.Z<<1)},c.textContent=this.da.toFixed(2)+"Mhz",!0}return!1};g.ca=function(){var a=this.v.speed;a&&(a.textContent=this.h.S&&this.W?this.W.toFixed(2)+"Mhz":"Stopped")};function Lb(a,b,c){a.$+=b;c&&(a.Y=a.a=0)}function Mb(a,b){var c=1;b&&1<a.Z&&a.W&&(c=a.W/a.Ta);a.fb=Math.round(1E3/30);a.Ja=Math.floor(a.Ia/30*c);b||(a.qa=a.Ja);a.Va=0}function Nb(a){return a.$+a.N+a.Y-a.a}function Hb(a){a.W=0;a.gb=0;a.$=a.N=a.Y=a.a=0;Ib(a);Kb(a,1)}
|
||||
function Kb(a,b){if(void 0!==b&&(.8>a.W/a.da&&(b=1),a.Z=b,b=a.Ta*a.Z,a.da!=b)){a.da=b;b=a.da.toFixed(2)+"Mhz";var c=a.v.setSpeed;c&&(c.textContent=b);a.O("target speed: "+b)}Lb(a,a.N);a.N=0;a.M=ka();a.X=0;Mb(a)}function jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function lb(a,b,c){0<=b&&b<a.G.length&&0>a.G[b][0]&&(c*=a.Ia*a.Z/1E3,a.G[b][0]=c)}
|
||||
g.kc=function(){if(this.h.S){this.Va>=this.Ia&&Mb(this,!0);this.wa=0;this.Ga=ka();if(this.X){var a=this.Ga-this.X;a>this.fb&&(this.M+=a,this.M>this.Ga&&(this.M=this.Ga))}try{do{for(var b,c=this.h.Ka?1:this.Ja,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.pb(b)}catch(p){if("number"!=typeof p)throw p;}for(var f=this.Y-this.a,a=f,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.wa+=f;this.N+=f;Lb(this,0,!0);a=f;if(this.h.Ka){var n=
|
||||
!1;this.Ba=this.Ba+this.bb()|0;this.ea-=a;0>=this.ea&&(this.ea+=this.oa,n=!0);0<=this.pa&&this.pa<=Nb(this)&&(this.oa=this.pa=-1,Ib(this),F(this),n=!0);n&&this.O(Nb(this)+" cycles: checksum="+k(this.Ba))}this.qa-=f;if(0>=this.qa){this.qa+=this.Ja;15<=++this.gb&&(this.w&&this.w.ca(),this.gb=0);break}}while(this.h.S)}catch(p){F(this);this.w&&this.w.stop(ka(),Nb(this));b=p.stack||p.message;this.h.error=!0;this.K(b);return}if(this.h.S){b=setTimeout;c=this.hb;this.X=ka();d=this.fb;this.wa&&(d=Math.round(d*
|
||||
this.wa/this.Ja));d-=this.X-this.Ga;if(e=this.X-this.M)this.W=Math.round(this.N/(10*e))/100,864E5<=e&&(this.$=0,Kb(this));if(0>d||this.W<this.da)-1E3>d&&(this.M-=d),d=0;this.Va+=this.wa;this.X+=d;b(c,d)}}};function Jb(a){var b;a.h.error?(a.O(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.S)a.O(a.toString()+" busy");else{Kb(a);a.h.S=!0;a.h.ob=!0;if(b=a.v.run)b.textContent="Halt";a.w&&a.w.start(a.M,Nb(a));setTimeout(a.hb,0)}}g.pb=function(){return 0};
|
||||
function F(a){if(a.h.S){a.Y-=a.a;a.a=0;Lb(a,a.N);a.N=0;a.h.S=!1;var b=a.v.run;b&&(b.textContent="Run");a.w&&a.w.stop(ka(),Nb(a))}a.h.complete=void 0}
|
||||
function Ob(a){this.Ab=+a.model||1170;this.Cb=a.resetAddr||0;Eb.call(this,a,6666667);this.decode=Pb.bind(this);this.yb=[];this.R=null;this.m=65536;this.g=32768;this.i=65535;this.o=32768;this.u=15;this.f=[0,0,0,0,0,0,0,this.Cb];this.ra=[0,0,0,0,0,0];this.U=[0,0,0,0];this.Ea=this.s=0;this.zb=[4,2,0,1];this.C=[[0,0,0,0,0,0,0,0,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]];this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
b&255,c++);this.Pa(a,b>>8,c)},M:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},X:function(a,b){a&1&&ib(this.j,b);b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},da:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.ha=!0},qa:function(a,b,c){a&1&&ib(this.j,c);c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.ha=!0},G:function(a,b){return this.H(a,b)},
|
||||
R:function(a,b){return this.U(a,b)},Z:function(a,b,c){this.v||this.qb(a,b,c)},fa:function(a,b,c){this.v||this.oa(a,b,c)},D:function(a){return this.c[a]},J:function(a){return this.c[a]},N:function(a,b){a&1&&ib(this.j,b);return this.g.getUint16(a,!0)},W:function(a,b){a&1&&ib(this.j,b);return this.o[a>>1]},Y:function(a,b){this.c[a]=b;this.ha=!0},ca:function(a,b){this.c[a]=b;this.ha=!0},ea:function(a,b,c){a&1&&ib(this.j,c);this.g.setUint16(a,b,!0);this.ha=!0},pa:function(a,b,c){a&1&&ib(this.j,c);this.o[a>>
|
||||
1]=b;this.ha=!0}};function Ta(a,b,c){a.I=b;a.i=a.m=0;c&&((a.i=c.i)&&Ab(a,Bb,!1),(a.m=c.m)&&Cb(a,Bb,!1))}function Cb(a,b,c){c&&a.m||(a.Pa=!a.v&&b[1]||a.A,a.Qc=!a.v&&b[3]||a.B);if(c||void 0===c)a.qb=b[1]||a.A,a.oa=b[3]||a.B}function Ab(a,b,c){c&&a.i||(a.Wa=b[0]||a.w,a.gc=b[2]||a.s);if(c||void 0===c)a.H=b[0]||a.w,a.U=b[2]||a.s}function wb(a,b){b||(b=Db);Ab(a,b,void 0);Cb(a,b,void 0)}
|
||||
var Db=[],zb=[G.prototype.M,G.prototype.da,G.prototype.X,G.prototype.qa],Bb=[G.prototype.G,G.prototype.Z,G.prototype.R,G.prototype.fa];if(Ja)var yb=[G.prototype.D,G.prototype.Y,G.prototype.N,G.prototype.ea],xb=[G.prototype.J,G.prototype.ca,G.prototype.W,G.prototype.pa];
|
||||
function Eb(a,b){v.call(this,"CPU",a,Eb);var c=a.multiplier||1;this.Ia=a.cycles||b;this.Z=c;this.Ta=Math.round(this.Ia/1E4)/100;this.ca=this.Ta*this.Z;this.h.S=!1;this.h.ob=!1;this.h.ya=a.autoStart;this.h.Ka=!1;this.Ba=this.ea=0;this.Ha=a.csStart;this.oa=a.csInterval;this.pa=a.csStop;this.G=[];this.hb=this.kc.bind(this);D(this)}x(Eb);var Fb=["power","reset"];g=Eb.prototype;
|
||||
g.ja=function(a,b,c,d){this.w=a;this.j=b;this.I=d;for(b=0;b<Fb.length;b++)(c=this.v[Fb[b]])&&this.w.T(null,Fb[b],c);a=Gb(a,"autoStart");null!=a&&(this.h.ya="true"==a?!0:"false"==a?!1:!!a);D(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};g.aa=function(a,b){if(!b){if(a&&this.restore){Hb(this);if(!this.restore(a))return!1;Ib(this)}else this.reset();this.O("No debugger detected")}this.w.ba();return!0};g.$=function(a){return a?this.save():!0};
|
||||
g.ya=function(){return this.h.ya||void 0===this.v.run?(Jb(this),!0):!1};g.bb=function(){return 0};function Ib(a){void 0===a.Ha&&(a.Ha=0);void 0===a.oa&&(a.oa=-1);void 0===a.pa&&(a.pa=-1);a.h.Ka=0<=a.Ha&&0<a.oa;a.h.Ka&&(a.Ba=0,a.ea=a.Ha-a.J)}
|
||||
g.T=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.v[b]=c,!0;case "run":return this.v[b]=c,c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.h.L)a=!0;else{var b=null,c,l=y(a.id);for(c=0;c<l.length&&(b=l[c],b===a||b.h.ready);c++);if(c==l.length)for(c=0;c<l.length&&(b=l[c],b===a||b.h.L);c++);c==l.length&&(b=a);p("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.La?" (waiting for notification)":""))+".");a=!1}a&&(d.h.S?F(d):Jb(d))},!0;case "speed":return this.v[b]=
|
||||
c,!0;case "setSpeed":return this.v[b]=c,c.onclick=function(){Kb(d,d.Z<<1)},c.textContent=this.ca.toFixed(2)+"Mhz",!0}return!1};g.ba=function(){var a=this.v.speed;a&&(a.textContent=this.h.S&&this.X?this.X.toFixed(2)+"Mhz":"Stopped")};function Lb(a,b){var c=1;b&&1<a.Z&&a.X&&(c=a.X/a.Ta);a.fb=Math.round(1E3/30);a.Ja=Math.floor(a.Ia/30*c);b||(a.qa=a.Ja);a.Va=0}function Mb(a){return a.J+a.R+a.da-a.a}function Hb(a){a.X=0;a.gb=0;a.J=a.R=a.da=a.a=0;Ib(a);Kb(a,1)}
|
||||
function Kb(a,b){if(void 0!==b&&(.8>a.X/a.ca&&(b=1),a.Z=b,b=a.Ta*a.Z,a.ca!=b)){a.ca=b;b=a.ca.toFixed(2)+"Mhz";var c=a.v.setSpeed;c&&(c.textContent=b);a.O("target speed: "+b)}a.J+=a.R;a.R=0;a.N=ka();a.Y=0;Lb(a)}function jb(a,b){var c=a.G.length;a.G.push([-1,b]);return c}function lb(a,b,c){0<=b&&b<a.G.length&&0>a.G[b][0]&&(c*=a.Ia*a.Z/1E3,a.G[b][0]=c+Nb(a))}function Nb(a,b){var c=a.da-=a.a;a.a=0;b&&(a.da=0);return c}
|
||||
g.kc=function(){if(this.h.S){this.Va>=this.Ia&&Lb(this,!0);this.wa=0;this.Ga=ka();if(this.Y){var a=this.Ga-this.Y;a>this.fb&&(this.N+=a,this.N>this.Ga&&(this.N=this.Ga))}try{do{for(var b,c=this.h.Ka?1:this.Ja,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.pb(b)}catch(n){if("number"!=typeof n)throw n;}b=Nb(this,!0);this.wa+=b;this.R+=b;a=b;if(this.h.Ka){var f=!1;this.Ba=this.Ba+this.bb()|0;this.ea-=a;0>=this.ea&&(this.ea+=this.oa,f=!0);0<=this.pa&&this.pa<=Mb(this)&&
|
||||
(this.oa=this.pa=-1,Ib(this),F(this),f=!0);f&&this.O(Mb(this)+" cycles: checksum="+k(this.Ba))}for(var a=b,h=this.G.length-1;0<=h;h--){var l=this.G[h];0>l[0]||(l[0]-=a,0>=l[0]&&(l[0]=-1,l[1]()))}this.qa-=b;if(0>=this.qa){this.qa+=this.Ja;15<=++this.gb&&(this.w&&this.w.ba(),this.gb=0);break}}while(this.h.S)}catch(n){F(this);this.w&&this.w.stop(ka(),Mb(this));b=n.stack||n.message;this.h.error=!0;this.K(b);return}if(this.h.S){b=setTimeout;c=this.hb;this.Y=ka();d=this.fb;this.wa&&(d=Math.round(d*this.wa/
|
||||
this.Ja));d-=this.Y-this.Ga;if(e=this.Y-this.N)this.X=Math.round(this.R/(10*e))/100,864E5<=e&&(this.J=0,Kb(this));if(0>d||this.X<this.ca)-1E3>d&&(this.N-=d),d=0;this.Va+=this.wa;this.Y+=d;b(c,d)}}};function Jb(a){var b;a.h.error?(a.O(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.S)a.O(a.toString()+" busy");else{Kb(a);a.h.S=!0;a.h.ob=!0;if(b=a.v.run)b.textContent="Halt";a.w&&a.w.start(a.N,Mb(a));setTimeout(a.hb,0)}}g.pb=function(){return 0};
|
||||
function F(a){if(a.h.S){Nb(a);a.J+=a.R;a.R=0;a.h.S=!1;var b=a.v.run;b&&(b.textContent="Run");a.w&&a.w.stop(ka(),Mb(a))}a.h.complete=void 0}
|
||||
function Ob(a){this.Ab=+a.model||1170;this.Cb=a.resetAddr||0;Eb.call(this,a,6666667);this.decode=Pb.bind(this);this.yb=[];this.U=null;this.m=65536;this.g=32768;this.i=65535;this.o=32768;this.u=15;this.f=[0,0,0,0,0,0,0,this.Cb];this.ra=[0,0,0,0,0,0];this.V=[0,0,0,0];this.Ea=this.s=0;this.zb=[4,2,0,1];this.C=[[0,0,0,0,0,0,0,0,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]];this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||
0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.lc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.nb=[0,0,0,0,0,0,0,0];this.c=this.b=this.Ra=this.B=this.D=this.l=this.lb=0;this.fa=-1;Qb(this);this.h.complete=this.h.ub=!1}x(Ob,Eb);g=Ob.prototype;g.reset=function(){this.h.S&&F(this);Qb(this);Hb(this);this.h.error=!1;this.parent.reset.call(this)};
|
||||
function Qb(a){a.na=255;a.F=0;a.mb=0;a.A=0;a.la=0;a.Ya=0;a.ma=0;a.Na=0;a.Da=0;a.Ua=262143;a.Fa=253952;a.l|=2;a.j&&nb(a)}function nb(a){a.Na?(a.V=65536,a.H=a.xb,a.J=a.kb,a.ib=a.Sc,Va(a.j,a.ma&16?22:18)):(a.V=0,a.H=a.wb,a.J=a.hc,a.ib=a.Rc,Va(a.j,16))}g.bb=function(){return 0};g.save=function(){var a=new L(this);a.set(0,[]);a.set(1,[this.$,this.Z]);a.set(2,eb(this.j));return a.data()};
|
||||
g.restore=function(a){var b=a[1];this.$=b[1];Kb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.G){for(var f=0,h=Array(b.G),l=0;l<e.length-1;)for(var n=e[l++],p=e[l++];n--;)h[f++]=p;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function M(a){return a.m&65536?1:0}g.ia=function(){return this.o&32768?8:0};function Rb(a){var b=a.J(a.f[7]);a.f[7]=a.f[7]+2&65535;return b}
|
||||
function mb(a,b,c){b={nc:b,Aa:c,request:-1,next:null};a.yb.push(b);return b}function kb(a,b){var c;c=b.nc;b.Aa>(a.u&224)>>5?(a.l&4&&(a.f[7]=a.f[7]+2&65535,a.l&=-5),H(a,c),c=!0):c=!1;if(!c){if(b!=a.R)if(c=a.R,!c||c.Aa<=b.Aa)b.next=c,a.R=b;else{do{a=c.next;if(!a||a.Aa<=b.Aa){b.next=a;c.next=b;break}c=a}while(1)}return!1}return!0}function Na(a){return a.u=a.u&63728|a.ia()|(a.i&65535?0:4)|(a.g&32768?2:0)|M(a)}
|
||||
function pb(a,b){a.o=b<<12;a.i=~b&4;a.g=b<<14;a.m=b<<16;if((b^a.u)&2048)for(var c=a.ra.length;0<=--c;){var d=a.f[c];a.f[c]=a.ra[c];a.ra[c]=d}a.s=b>>14&3;c=a.u>>14&3;a.s!=c&&(a.U[c]=a.f[6],a.f[6]=a.U[a.s]);a.l|=2;a.u=b}function N(a,b){a.l&128||(a.o=a.i=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.i=a.m=b,a.g=c||0)}function Sb(a,b,c,d){a.l&128||(a.o=a.i=a.m=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.i=a.m=b,a.g=a.o^a.m>>1)}function Tb(a,b,c,d){a.l&128||(a.o=a.i=a.m=b,a.g=(c^d)&(d^b))}
|
||||
function H(a,b){var c=!1;0>a.fa?a.fa=Na(a):a.s||(b=4,c=!0);a.A&57344||(a.la=63222,a.Ya=b);a.s=0;var d=a.J(b|a.V),e=a.J(b+2&65535|a.V);pb(a,e&-12289|a.fa>>2&12288);c&&(a.F|=4,a.f[6]=4);Ub(a,a.fa);Ub(a,a.f[7]);a.f[7]=d&65535;a.l&=-113;a.fa=-1;throw b;}function Vb(a){var b=Wb(a),c=Wb(a)&-1793;a.u&49152&&(c=c&-225|a.u&63712);a.f[7]=b&65535;pb(a,c);a.l&=-17}
|
||||
function Xb(a,b,c){var d,e,f,h=0;d=b>>13;a.ma&a.zb[a.s]||(d&=7);e=a.C[a.s][d];f=(a.P[a.s][d]<<6)+(b&8191)&a.Ua;if(f<a.Fa)f&1&&!(c&1)&&(a.F|=64,H(a,4));else if(a.ma&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.ma&32&&(f=a.lc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Fa&&4186112>f&&(a.F|=32,H(a,4))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192:128;break;
|
||||
default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.C[a.s][d]=e;if(4194170!==f||a.s)a.Da=a.s,a.Ea=d;h&&(h&57344&&(0<=a.fa&&(h|=128),a.A&57344||(a.A=a.A|h|a.Da<<5|a.Ea<<1),H(a,168)),a.A&61440||!(4191360>f||4194239<f)||(a.A|=4096,a.A&512&&(a.l|=32)));return f}function Wb(a){var b=a.J(a.f[6]|a.V);a.f[6]=a.f[6]+2&65535;return b}
|
||||
function Ub(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.la=a.la<<8|246);!a.s&&c<=a.na&&4<c&&(c<=a.na-32?(a.F|=4,a.f[6]=4,H(a,4)):(a.F|=8,a.l|=4));a.ib(c,b)}
|
||||
function Yb(a,b,c,d){var e,f,h=d&8?0:a.V;switch(b){case 0:return H(a,4),0;case 1:return 6===c&&!a.s&&d&4&&(a.f[6]<=a.na||65534<=a.f[6])&&(a.f[6]<=a.na-32||65534<=a.f[6]?(a.F|=4,a.f[6]=4,H(a,4)):(a.F|=8,a.l|=64)),a.a-=3,7===c?a.f[c]:a.f[c]|h;case 2:f=2;e=a.f[c];7!==c&&(e|=h,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.J(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.J(e)|h;a.a-=8;break;
|
||||
case 6:return e=Rb(a),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=Rb(a),e=e+a.f[c]&65535,e=a.J(e|a.V)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.la=a.la<<8|f<<3&248|c);6==c&&!a.s&&d&4&&0>=f&&(a.f[6]<=a.na||65534<=a.f[6])&&(a.f[6]<=a.na-32?(a.F|=4,a.f[6]=4,H(a,4)):(a.F|=8,a.l|=64));return e}g.wb=function(a,b,c){return Yb(this,a,b,c)};g.xb=function(a,b,c){return Xb(this,Yb(this,a,b,c),c)};g.hc=function(a){return cb(this.j,a)};g.kb=function(a){return cb(this.j,Xb(this,a,2))};
|
||||
g.Rc=function(a,b){db(this.j,a,b&65535)};g.Sc=function(a,b){db(this.j,Xb(this,a,4),b)};function Zb(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Yb(a,b,d,2),c&65536||61440!==(a.u&61440)&&(d&=65535),a.s=a.u>>12&3,c=a.J(d|c&a.V),a.s=a.u>>14&3):c=6!=d||(a.u>>2&12288)===(a.u&12288)?a.f[d]:a.U[a.u>>12&3];return c}
|
||||
function $b(a,b,c,d){a.A&57344||(a.la=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Yb(a,b,e,4),c&65536||(e&=65535),a.s=a.u>>12&3,e=Xb(a,e|c&65536,4),a.s=a.u>>14&3,db(a.j,e,d)):6!=e||(a.u>>2&12288)===(a.u&12288)?a.f[e]=d:a.U[a.u>>12&3]=d}function ac(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.H(b,c,3),a=bb(a.j,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?cb(a.j,a.H(b,c,2)):a.f[c]}function bc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Yb(a,b,c,8)}
|
||||
function Qb(a){a.na=255;a.F=0;a.mb=0;a.A=0;a.la=0;a.Ya=0;a.ma=0;a.Na=0;a.Da=0;a.Ua=262143;a.Fa=253952;a.l|=2;a.j&&nb(a)}function nb(a){a.Na?(a.W=65536,a.H=a.xb,a.M=a.kb,a.ib=a.Sc,Va(a.j,a.ma&16?22:18)):(a.W=0,a.H=a.wb,a.M=a.hc,a.ib=a.Rc,Va(a.j,16))}g.bb=function(){return 0};g.save=function(){var a=new L(this);a.set(0,[]);a.set(1,[this.J,this.Z]);a.set(2,eb(this.j));return a.data()};
|
||||
g.restore=function(a){var b=a[1];this.J=b[1];Kb(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.G){for(var f=0,h=Array(b.G),l=0;l<e.length-1;)for(var n=e[l++],q=e[l++];n--;)h[f++]=q;e=h}f=b.b[d];if(!f||!f.restore(e)){p("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};function M(a){return a.m&65536?1:0}g.ia=function(){return this.o&32768?8:0};function Rb(a){var b=a.M(a.f[7]);a.f[7]=a.f[7]+2&65535;return b}
|
||||
function mb(a,b,c){b={nc:b,Aa:c,request:-1,next:null};a.yb.push(b);return b}function kb(a,b){var c;c=b.nc;b.Aa>(a.u&224)>>5?(a.l&4&&(a.f[7]=a.f[7]+2&65535,a.l&=-5),H(a,c,26),c=!0):c=!1;if(!c){if(b!=a.U)if(c=a.U,!c||c.Aa<=b.Aa)b.next=c,a.U=b;else{do{a=c.next;if(!a||a.Aa<=b.Aa){b.next=a;c.next=b;break}c=a}while(1)}return!1}return!0}function Na(a){return a.u=a.u&63728|a.ia()|(a.i&65535?0:4)|(a.g&32768?2:0)|M(a)}
|
||||
function pb(a,b){a.o=b<<12;a.i=~b&4;a.g=b<<14;a.m=b<<16;if((b^a.u)&2048)for(var c=a.ra.length;0<=--c;){var d=a.f[c];a.f[c]=a.ra[c];a.ra[c]=d}a.s=b>>14&3;c=a.u>>14&3;a.s!=c&&(a.V[c]=a.f[6],a.f[6]=a.V[a.s]);a.l|=2;a.u=b}function N(a,b){a.l&128||(a.o=a.i=b,a.g=0)}function O(a,b,c){a.l&128||(a.o=a.i=a.m=b,a.g=c||0)}function Sb(a,b,c,d){a.l&128||(a.o=a.i=a.m=b,a.g=(c^b)&(d^b))}function P(a,b){a.l&128||(a.o=a.i=a.m=b,a.g=a.o^a.m>>1)}function Tb(a,b,c,d){a.l&128||(a.o=a.i=a.m=b,a.g=(c^d)&(d^b))}
|
||||
function H(a,b,c){var d=!1;0>a.fa?a.fa=Na(a):a.s||(b=4,d=!0);a.A&57344||(a.la=63222,a.Ya=b);a.s=0;var e=a.M(b|a.W),f=a.M(b+2&65535|a.W);pb(a,f&-12289|a.fa>>2&12288);d&&(a.F|=4,a.f[6]=4);Ub(a,a.fa);Ub(a,a.f[7]);a.f[7]=e&65535;a.l&=-113;a.fa=-1;if(26!=c)throw b;}function Vb(a){var b=Wb(a),c=Wb(a)&-1793;a.u&49152&&(c=c&-225|a.u&63712);a.f[7]=b&65535;pb(a,c);a.l&=-17}
|
||||
function Xb(a,b,c){var d,e,f,h=0;d=b>>13;a.ma&a.zb[a.s]||(d&=7);e=a.C[a.s][d];f=(a.P[a.s][d]<<6)+(b&8191)&a.Ua;if(f<a.Fa)f&1&&!(c&1)&&(a.F|=64,H(a,4,10));else if(a.ma&16||253952<=f&&(f|=4186112),4186112>f){if(3932160<=f){f&=262143;var l=f>>13&31;31>l?a.ma&32&&(f=a.lc[l]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}f>=a.Fa&&4186112>f&&(a.F|=32,H(a,4,12))}switch(e&7){case 1:h=4096;case 2:e|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:e|=c&4?192:
|
||||
128;break;default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.C[a.s][d]=e;if(4194170!==f||a.s)a.Da=a.s,a.Ea=d;h&&(h&57344&&(0<=a.fa&&(h|=128),a.A&57344||(a.A=a.A|h|a.Da<<5|a.Ea<<1),H(a,168,16)),a.A&61440||!(4191360>f||4194239<f)||(a.A|=4096,a.A&512&&(a.l|=32)));return f}function Wb(a){var b=a.M(a.f[6]|a.W);a.f[6]=a.f[6]+2&65535;return b}
|
||||
function Ub(a,b){var c=a.f[6]-2&65535;a.f[6]=c;a.A&57344||(a.la=a.la<<8|246);!a.s&&c<=a.na&&4<c&&(c<=a.na-32?(a.F|=4,a.f[6]=4,H(a,4,18)):(a.F|=8,a.l|=4));a.ib(c,b)}
|
||||
function Yb(a,b,c,d){var e,f,h=d&8?0:a.W;switch(b){case 0:return H(a,4,20),0;case 1:return 6===c&&!a.s&&d&4&&(a.f[6]<=a.na||65534<=a.f[6])&&(a.f[6]<=a.na-32||65534<=a.f[6]?(a.F|=4,a.f[6]=4,H(a,4,22)):(a.F|=8,a.l|=64)),a.a-=3,7===c?a.f[c]:a.f[c]|h;case 2:f=2;e=a.f[c];7!==c&&(e|=h,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.f[c];7!==c&&(e|=h);e=a.M(e);e|=h;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.f[c]+f&65535;7!==c&&(e|=h);a.a-=4;break;case 5:f=-2;e=a.f[c]-2&65535;7!==c&&(e|=h);e=a.M(e)|h;a.a-=
|
||||
8;break;case 6:return e=Rb(a),e=e+a.f[c]&65535|h,a.a-=6,e;case 7:return e=Rb(a),e=e+a.f[c]&65535,e=a.M(e|a.W)|h,a.a-=10,e}a.f[c]=a.f[c]+f&65535;!h||a.A&57344||(a.la=a.la<<8|f<<3&248|c);6==c&&!a.s&&d&4&&0>=f&&(a.f[6]<=a.na||65534<=a.f[6])&&(a.f[6]<=a.na-32?(a.F|=4,a.f[6]=4,H(a,4,24)):(a.F|=8,a.l|=64));return e}g.wb=function(a,b,c){return Yb(this,a,b,c)};g.xb=function(a,b,c){return Xb(this,Yb(this,a,b,c),c)};g.hc=function(a){return cb(this.j,a)};g.kb=function(a){return cb(this.j,Xb(this,a,2))};
|
||||
g.Rc=function(a,b){db(this.j,a,b&65535)};g.Sc=function(a,b){db(this.j,Xb(this,a,4),b)};function Zb(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?(d=Yb(a,b,d,2),c&65536||61440!==(a.u&61440)&&(d&=65535),a.s=a.u>>12&3,c=a.M(d|c&a.W),a.s=a.u>>14&3):c=6!=d||(a.u>>2&12288)===(a.u&12288)?a.f[d]:a.V[a.u>>12&3];return c}
|
||||
function $b(a,b,c,d){a.A&57344||(a.la=22);var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=Yb(a,b,e,4),c&65536||(e&=65535),a.s=a.u>>12&3,e=Xb(a,e|c&65536,4),a.s=a.u>>14&3,db(a.j,e,d)):6!=e||(a.u>>2&12288)===(a.u&12288)?a.f[e]=d:a.V[a.u>>12&3]=d}function ac(a,b){b>>=6;var c=a.D=b&7;(b=a.B=(b&56)>>3)?(c=a.H(b,c,3),a=bb(a.j,c)):a=a.f[c]&255;return a}function Q(a,b){b>>=6;var c=a.D=b&7;return(b=a.B=(b&56)>>3)?cb(a.j,a.H(b,c,2)):a.f[c]}function bc(a,b){var c=a.b=b&7;b=a.c=(b&56)>>3;return Yb(a,b,c,8)}
|
||||
function cc(a,b){var c=a.b=b&7;(b=a.c=(b&56)>>3)?(c=a.H(b,c,3),a=bb(a.j,c)):a=a.f[c]&255;return a}function R(a,b){var c=a.b=b&7;return(b=a.c=(b&56)>>3)?cb(a.j,a.H(b,c,2)):a.f[c]}function S(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.Ra=a.H(b,e,7),c=d.call(a,c,bb(a.j,e)),e&1&&a.a--,a=a.j,a.b[(e&a.i)>>>a.c].Pa(e&a.g,c&255,e)):a.f[e]=a.f[e]&65280|d.call(a,c,a.f[e])}function T(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(e=a.H(b,e,6),db(a.j,e,d.call(a,c,cb(a.j,e)))):a.f[e]=d.call(a,c,a.f[e])}
|
||||
function dc(a,b,c,d){var e=a.b=b&7;(b=a.c=(b&56)>>3)?(d=a.H(b,e,5),d&1&&a.a--,a=a.j,a.b[(d&a.i)>>>a.c].Pa(d&a.g,c&255,d)):a.f[e]=c?d&1?c<<24>>24&65535:a.f[e]&-256|c&255:a.f[e]&-256;return c}function ec(a,b,c){var d=a.b=b&7;(b=a.c=(b&56)>>3)?db(a.j,a.H(b,d,4),c):a.f[d]=c&65535;return c}function U(a,b,c){c&&(a.f[7]=a.f[7]+(b<<24>>23)&65535,a.a-=2);a.a-=3}
|
||||
g.pb=function(a){this.h.complete=!0;this.h.ub=!1;this.h.ob=!1;this.Y=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?H(this,168):this.l&64?H(this,4):this.l&16&&H(this,12),this.l&=-113),this.l&7))if(this.l&2){if(this.l&=-3,this.R&&kb(this,this.R)){var b=a=this.R;if(b==a)this.R=a.next;else{do{var c=b.next;if(c==a){b.next=c.next;break}b=c}while(1)}}}else this.l&1&&this.l++;this.A&57344||(this.la=0,this.Ya=this.f[7]);this.l=this.l&7|this.u&16;this.decode(Rb(this))}while(0<this.a);return this.h.complete?
|
||||
this.Y-this.a: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 Ob(d);B(d,c)}});function fc(a,b){var c=b+a;Sb(this,c,a,b);return c&65535}function gc(a,b){var c=b+a;Sb(this,c<<8,a<<8,b<<8);return c&255}function hc(a,b){a=b<<1;P(this,a);return a&65535}function ic(a,b){a=b<<1;P(this,a<<8);return a&255}function jc(a,b){a=b&32768|b>>1|b<<16;P(this,a);return a&65535}function kc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}
|
||||
g.pb=function(a){this.h.complete=!0;this.h.ub=!1;this.h.ob=!1;this.da=this.a=a;do{if(this.l&&(this.l&112&&(this.l&32?H(this,168,28):this.l&64?H(this,4,30):this.l&16&&H(this,12,32),this.l&=-113),this.l&7))if(this.l&2){if(this.l&=-3,this.U&&kb(this,this.U)){var b=a=this.U;if(b==a)this.U=a.next;else{do{var c=b.next;if(c==a){b.next=c.next;break}b=c}while(1)}}}else this.l&1&&this.l++;this.A&57344||(this.la=0,this.Ya=this.f[7]);this.l=this.l&7|this.u&16;this.decode(Rb(this))}while(0<this.a);return this.h.complete?
|
||||
this.da-this.a: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 Ob(d);B(d,c)}});function fc(a,b){var c=b+a;Sb(this,c,a,b);return c&65535}function gc(a,b){var c=b+a;Sb(this,c<<8,a<<8,b<<8);return c&255}function hc(a,b){a=b<<1;P(this,a);return a&65535}function ic(a,b){a=b<<1;P(this,a<<8);return a&255}function jc(a,b){a=b&32768|b>>1|b<<16;P(this,a);return a&65535}function kc(a,b){a=b&2048|b>>1|b<<8;P(this,a<<8);return a&255}
|
||||
function lc(a,b){a=b&~a;N(this,a);return a}function mc(a,b){a=b&~a;N(this,a<<8);return a}function nc(a,b){a|=b;N(this,a);return a}function oc(a,b){a|=b;N(this,a<<8);return a}function pc(a,b){a=~b|65536;O(this,a);return a&65535}function qc(a,b){a=~b|256;O(this,a<<8);return a&255}function rc(a,b){a=b-a;this.l&128||(this.o=this.i=a,this.g=b&(b^a));return a&65535}function sc(a,b){a=b-a;var c=a<<8;b<<=8;this.l&128||(this.o=this.i=c,this.g=b&(b^c));return a&255}
|
||||
function tc(a,b){a=b+a;this.l&128||(this.o=this.i=a,this.g=a&(b^a));return a&65535}function uc(a,b){a=b+a;var c=a<<8;this.l&128||(this.o=this.i=c,this.g=c&(b<<8^c));return a&255}function vc(a,b){a=-b;O(this,a,a&b&32768);return a&65535}function wc(a,b){a=-b;O(this,a<<8,(a&b&128)<<8);return a&255}function xc(a,b){a=b<<1|this.m>>16&1;P(this,a);return a&65535}function yc(a,b){a=b<<1|this.m>>16&1;P(this,a<<8);return a&255}function zc(a,b){a=(this.m&65536|b)>>1|b<<16;P(this,a);return a&65535}
|
||||
function Ac(a,b){a=((this.m&65536)>>8|b)>>1|b<<8;P(this,a<<8);return a&255}function Bc(a,b){var c=b-a;Tb(this,c,a,b);return c&65535}function Cc(a,b){var c=b-a;Tb(this,c<<8,a<<8,b<<8);return c&255}function Dc(a,b){this.l&128||(this.o=this.i=b&65280,this.g=this.m=0);return(b<<8|b>>8)&65535}function Ec(a,b){a^=b;N(this,a);return a&65535}
|
||||
|
|
@ -771,61 +772,61 @@ function Fc(a){var b=R(this,a);a=a>>6&7;var c=this.f[a];c&32768&&(c|=4294901760)
|
|||
function Gc(a){var b=R(this,a);a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.m=this.g=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.m=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.m=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.g=32768)):d=c;this.f[a]=d>>16&65535;this.f[a|1]=d&65535;this.o=d>>16;this.i=d>>16|d;this.a-=(this.c?6:7)+b}function V(a){a&1&&(this.m=0);a&2&&(this.g=0);a&4&&(this.i=1);a&8&&(this.o=0);this.a-=5}
|
||||
function Ic(a){var b=R(this,a);if(b){a=a>>6&7;var c=this.f[a]<<16|this.f[a|1];this.m=this.g=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.f[a]=d&65535,this.f[a|1]=c-d*b&65535,this.i=d>>16|d,this.o=d>>16):(this.g=32768,this.i=d>>15|d,this.o=c>>16,-1===b&&65534===this.f[a]&&(this.f[a]=this.f[a|1]=1));this.a-=53}else this.i=this.o=0,this.g=32768,this.m=65536,this.a-=7}var Jc=[0,7,7,10,7,11,9,13];function Kc(a){var b=this.a;a=bc(this,a);this.f[7]=a&65535;this.a=b-Jc[this.c]}
|
||||
var Lc=[0,14,14,17,14,18,16,20];function Mc(a){var b=this.a,c=bc(this,a);a=a>>6&7;Ub(this,this.f[a]);this.f[a]=this.f[7];this.f[7]=c&65535;this.a=b-Lc[this.c]}var Nc=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17],Oc=[7,13,13,17,14,18,17,21];function Pc(a){var b=R(this,a);a=a>>6&7;b&32768&&(b|=-65536);var c=this.f[a];c&32768&&(c|=-65536);b=~~(b*c);this.f[a]=b>>16&65535;this.f[a|1]=b&65535;this.l&128||(this.o=b>>16,this.i=this.o|b,this.g=0,this.m=-32768>b||32767<b?65536:0);this.a-=23}
|
||||
function Qc(){this.a-=5}function W(a){a&1&&(this.m=65536);a&2&&(this.g=32768);a&4&&(this.i=0);a&8&&(this.o=32768);this.a-=5}function Rc(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535,this.a+=1;this.a-=6}function Sc(a){T(this,a,0,Dc);this.a-=this.c?9:3+(7==this.b?2:0)}function Tc(a){T(this,a,Q(this,a),Ec);this.a-=this.c?9:3+(7==this.b?2:0)}function X(){H(this,8)}function Pb(a){Uc[a>>12].call(this,a)}
|
||||
function Qc(){this.a-=5}function W(a){a&1&&(this.m=65536);a&2&&(this.g=32768);a&4&&(this.i=0);a&8&&(this.o=32768);this.a-=5}function Rc(a){var b=(a&448)>>6;if(this.f[b]=this.f[b]-1&65535)this.f[7]=this.f[7]-((a&63)<<1)&65535,this.a+=1;this.a-=6}function Sc(a){T(this,a,0,Dc);this.a-=this.c?9:3+(7==this.b?2:0)}function Tc(a){T(this,a,Q(this,a),Ec);this.a-=this.c?9:3+(7==this.b?2:0)}function X(){H(this,8,6)}function Pb(a){Uc[a>>12].call(this,a)}
|
||||
var Uc=[function(a){Vc[a>>8&15].call(this,a)},function(a){var b=Q(this,a),c=this.a;N(this,ec(this,a,b));this.a=c-Nc[(this.B?8:0)+this.c]+(7!=this.b||this.c?0:2)},function(a){var b=Q(this,a);a=R(this,a);Tb(this,b-a,a,b);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)},function(a){N(this,Q(this,a)&R(this,a));this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)},function(a){T(this,a,Q(this,a),lc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?
|
||||
2:0)},function(a){T(this,a,Q(this,a),nc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},function(a){T(this,a,Q(this,a),fc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},function(a){Wc[a>>8&15].call(this,a)},function(a){Xc[a>>8&15].call(this,a)},function(a){var b=ac(this,a);N(this,dc(this,a,b,1)<<8);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},function(a){var b=ac(this,a)<<8;a=cc(this,a)<<8;Tb(this,b-a,a,b);this.a-=this.c?4+
|
||||
(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)},function(a){N(this,(ac(this,a)&cc(this,a))<<8);this.a-=this.c?4+(this.D&&6<=this.b?1:0):(this.B?4:3)+(7==this.b?2:0)},function(a){S(this,a,ac(this,a),mc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},function(a){S(this,a,ac(this,a),oc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},function(a){T(this,a,Q(this,a),Bc);this.a-=this.c?9+(this.D&&6<=this.b?1:0):(this.B?5:3)+(7==this.b?2:0)},X],Vc=[function(a){Yc[a>>
|
||||
4&15].call(this,a)},function(a){U(this,a,!0)},function(a){U(this,a,!!(this.i&65535))},function(a){U(this,a,this.i&65535?0:4)},function(a){U(this,a,!this.ia()==!(this.g&32768))},function(a){U(this,a,!this.ia()!=!(this.g&32768))},function(a){U(this,a,!!(this.i&65535)&&!this.ia()==!(this.g&32768))},function(a){U(this,a,(this.i&65535?0:4)||!this.ia()!=!(this.g&32768))},Mc,Mc,function(a){Zc[a>>6&3].call(this,a)},function(a){$c[a>>6&3].call(this,a)},function(a){ad[a>>6&3].call(this,a)},function(a){bd[a>>
|
||||
6&3].call(this,a)},X,X],Zc=[function(a){O(this,ec(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,pc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,tc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,1,rc);this.a-=this.c?9:3+(7==this.b?2:0)}],$c=[function(a){T(this,a,0,vc);this.a-=this.c?11:6},function(a){T(this,a,M(this)?1:0,fc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,M(this)?1:0,Bc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=R(this,
|
||||
a);O(this,a);this.a-=this.c?4:3+(7==this.b?2:0)}],ad=[function(a){T(this,a,0,zc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,xc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,jc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){T(this,a,0,hc);this.a-=this.c?9:3+(7==this.b?2:0)}],bd=[function(a){a=this.f[7]+((a&63)<<1)&65535;var b=this.kb(a|65536);this.f[7]=this.f[5]&65535;this.f[6]=a+2&65535;this.f[5]=b;this.a-=8},function(a){a=Zb(this,a,0);Ub(this,a);N(this,a);this.a-=
|
||||
11},function(a){var b=Wb(this),c=this.a;$b(this,a,0,b);N(this,b);this.a=c-Oc[this.c]},function(a){N(this,ec(this,a,this.ia?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Yc=[function(a){cd[a&15].call(this,a)},X,X,X,Kc,Kc,Kc,Kc,function(a){if(a&8)H(this,8);else{var b=Wb(this);a&=7;this.f[7]=this.f[a]&65535;this.f[a]=b;this.a-=9}},function(a){a&8?(this.u&49152||(this.u=this.u&-2017|(a&7)<<5,this.l|=1),this.a-=5):H(this,8)},function(a){dd[a&15].call(this,a)},function(a){ed[a&15].call(this,a)},Sc,Sc,
|
||||
Sc,Sc],cd=[function(){this.u&49152?(this.F|=128,H(this,4)):F(this);this.a-=7},function(){this.l&4||this.w.ca();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3},function(){Vb(this);this.l|=this.u&16;this.a-=13},function(){H(this,12);this.a-=5},function(){H(this,16);this.a-=25},function(){this.u&49152||(Qb(this),this.j.reset());this.a-=667},function(){Vb(this);this.a-=13},X,X,X,X,X,X,X,X,X],dd=[Qc,function(){this.m=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.i=1;this.a-=5},V,V,V,
|
||||
function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],ed=[Qc,function(){this.m=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],Wc=[Pc,Pc,Ic,Ic,Fc,Fc,Gc,Gc,Tc,Tc,X,X,X,X,Rc,Rc],Xc=[function(a){U(this,a,!this.ia())},function(a){U(this,a,this.ia())},function(a){U(this,a,!M(this)&&!!(this.i&65535))},function(a){U(this,a,M(this)||(this.i&65535?0:4))},function(a){U(this,a,!(this.g&32768))},function(a){U(this,a,this.g&32768?
|
||||
2:0)},function(a){U(this,a,!M(this))},function(a){U(this,a,M(this))},function(){H(this,24);this.a-=25},function(){H(this,28);this.a-=5},function(a){fd[a>>6&3].call(this,a)},function(a){gd[a>>6&3].call(this,a)},function(a){hd[a>>6&3].call(this,a)},function(a){id[a>>6&3].call(this,a)},X,X],fd=[function(a){O(this,dc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,uc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,
|
||||
a,1,sc);this.a-=this.c?9:3+(7==this.b?2:0)}],gd=[function(a){S(this,a,0,wc);this.a-=this.c?11:6},function(a){S(this,a,M(this)?1:0,gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,M(this)?1:0,Cc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=cc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],hd=[function(a){S(this,a,0,Ac);this.a-=this.c?9+(this.Ra&1):3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,kc);this.a-=this.c?
|
||||
9+(this.Ra&1):3+(7==this.b?2:0)},function(a){S(this,a,0,ic);this.a-=this.c?9:3+(7==this.b?2:0)}],id=[X,function(a){a=Zb(this,a,65536);Ub(this,a);N(this,a);this.a-=11},function(a){var b=Wb(this),c=this.a;$b(this,a,65536,b);N(this,b);this.a=c-Oc[this.c]},X];
|
||||
function jd(a){v.call(this,"ROM",a,jd);this.b=null;this.o=a.addr;this.c=a.size;this.w=a.writable;this.g=a.alias;this.i=a.file;this.s=ba(this.i);if(this.i){a=this.i;var b=ca(this.s);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;m(a,null,!0,function(a,b,f){kd(c,a,b,f)})}}x(jd);jd.prototype.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;ld(this)};jd.prototype.ba=function(){this.m&&(this.I&&this.I.a(this.id,this.o,this.c,this.m),delete this.m);return!0};
|
||||
jd.prototype.aa=function(){return!0};
|
||||
function kd(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ga(a.Sa,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,h,l=eval("("+c+")");if(f=l.bytes)a.b=f;else if(f=l.words)for(a.b=Array(2*f.length),h=e=0;e<f.length;e++)a.b[h++]=f[e]&255,a.b[h++]=f[e]>>8&255;else if(f=l.data)for(a.b=Array(4*f.length),h=e=0;e<f.length;e++)a.b[h++]=f[e]&255,a.b[h++]=f[e]>>8&255,a.b[h++]=f[e]>>16&255,a.b[h++]=f[e]>>24&255;else a.b=l;a.m=l.symbols;if(!a.b.length){q("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){q(a.b[0]);return}}catch(n){a.K("ROM data error: "+n.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);ld(a)}}
|
||||
11},function(a){var b=Wb(this),c=this.a;$b(this,a,0,b);N(this,b);this.a=c-Oc[this.c]},function(a){N(this,ec(this,a,this.ia?65535:0));this.a-=this.c?9:3+(7==this.b?2:0)}],Yc=[function(a){cd[a&15].call(this,a)},X,X,X,Kc,Kc,Kc,Kc,function(a){if(a&8)H(this,8,6);else{var b=Wb(this);a&=7;this.f[7]=this.f[a]&65535;this.f[a]=b;this.a-=9}},function(a){a&8?(this.u&49152||(this.u=this.u&-2017|(a&7)<<5,this.l|=1),this.a-=5):H(this,8,6)},function(a){dd[a&15].call(this,a)},function(a){ed[a&15].call(this,a)},Sc,
|
||||
Sc,Sc,Sc],cd=[function(){this.u&49152?(this.F|=128,H(this,4,3)):F(this);this.a-=7},function(){this.l&4||this.w.ba();this.l|=4;this.f[7]=this.f[7]+-2&65535;this.a-=3},function(){Vb(this);this.l|=this.u&16;this.a-=13},function(){H(this,12,1);this.a-=5},function(){H(this,16,4);this.a-=25},function(){this.u&49152||(Qb(this),this.j.reset());this.a-=667},function(){Vb(this);this.a-=13},X,X,X,X,X,X,X,X,X],dd=[Qc,function(){this.m=0;this.a-=5},function(){this.g=0;this.a-=5},V,function(){this.i=1;this.a-=
|
||||
5},V,V,V,function(){this.o=0;this.a-=5},V,V,V,V,V,V,V],ed=[Qc,function(){this.m=65536;this.a-=5},function(){this.g=32768;this.a-=5},W,function(){this.i=0;this.a-=5},W,W,W,function(){this.o=32768;this.a-=5},W,W,W,W,W,W,W],Wc=[Pc,Pc,Ic,Ic,Fc,Fc,Gc,Gc,Tc,Tc,X,X,X,X,Rc,Rc],Xc=[function(a){U(this,a,!this.ia())},function(a){U(this,a,this.ia())},function(a){U(this,a,!M(this)&&!!(this.i&65535))},function(a){U(this,a,M(this)||(this.i&65535?0:4))},function(a){U(this,a,!(this.g&32768))},function(a){U(this,a,
|
||||
this.g&32768?2:0)},function(a){U(this,a,!M(this))},function(a){U(this,a,M(this))},function(){H(this,24,2);this.a-=25},function(){H(this,28,5);this.a-=5},function(a){fd[a>>6&3].call(this,a)},function(a){gd[a>>6&3].call(this,a)},function(a){hd[a>>6&3].call(this,a)},function(a){id[a>>6&3].call(this,a)},X,X],fd=[function(a){O(this,dc(this,a,0));this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,0,qc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,1,uc);this.a-=this.c?9:3+(7==this.b?2:
|
||||
0)},function(a){S(this,a,1,sc);this.a-=this.c?9:3+(7==this.b?2:0)}],gd=[function(a){S(this,a,0,wc);this.a-=this.c?11:6},function(a){S(this,a,M(this)?1:0,gc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,a,M(this)?1:0,Cc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){a=cc(this,a);O(this,a<<8);this.a-=this.c?4:3+(7==this.b?2:0)}],hd=[function(a){S(this,a,0,Ac);this.a-=this.c?9+(this.Ra&1):3+(7==this.b?2:0)},function(a){S(this,a,0,yc);this.a-=this.c?9:3+(7==this.b?2:0)},function(a){S(this,
|
||||
a,0,kc);this.a-=this.c?9+(this.Ra&1):3+(7==this.b?2:0)},function(a){S(this,a,0,ic);this.a-=this.c?9:3+(7==this.b?2:0)}],id=[X,function(a){a=Zb(this,a,65536);Ub(this,a);N(this,a);this.a-=11},function(a){var b=Wb(this),c=this.a;$b(this,a,65536,b);N(this,b);this.a=c-Oc[this.c]},X];
|
||||
function jd(a){v.call(this,"ROM",a,jd);this.b=null;this.o=a.addr;this.c=a.size;this.w=a.writable;this.g=a.alias;this.i=a.file;this.s=ba(this.i);if(this.i){a=this.i;var b=ca(this.s);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;m(a,null,!0,function(a,b,f){kd(c,a,b,f)})}}x(jd);jd.prototype.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;ld(this)};jd.prototype.aa=function(){this.m&&(this.I&&this.I.a(this.id,this.o,this.c,this.m),delete this.m);return!0};
|
||||
jd.prototype.$=function(){return!0};
|
||||
function kd(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ga(a.Sa,b,c);var e;if("["==c.charAt(0)||"{"==c.charAt(0))try{var f,h,l=eval("("+c+")");if(f=l.bytes)a.b=f;else if(f=l.words)for(a.b=Array(2*f.length),h=e=0;e<f.length;e++)a.b[h++]=f[e]&255,a.b[h++]=f[e]>>8&255;else if(f=l.data)for(a.b=Array(4*f.length),h=e=0;e<f.length;e++)a.b[h++]=f[e]&255,a.b[h++]=f[e]>>8&255,a.b[h++]=f[e]>>16&255,a.b[h++]=f[e]>>24&255;else a.b=l;a.m=l.symbols;if(!a.b.length){p("Empty ROM: "+b);
|
||||
return}if(1==a.b.length){p(a.b[0]);return}}catch(n){a.K("ROM data error: "+n.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);ld(a)}}
|
||||
function ld(a){if(!Ia(a))if(!a.i)D(a);else if(a.b&&a.j){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+k(a.b.length,8,!0)+") does not match specified size ("+k(a.c,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.o;if(Ya(a.j,b,a.c,a.w?1:vb)){var c;for(c=0;c<a.b.length;c++){var d=a.j,e=b+c,f=a.b[c];d.o++;d.b[(e&d.i)>>>d.c].qb(e&d.g,f&255,e);d.o--}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++)d=a,e=b[c],f=Xa(d.j,d.o,d.c),Wa(d.j,
|
||||
e,d.c,f);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 jd(d);B(d,c)}});function Y(a){v.call(this,"RAM",a,Y);this.g=a.addr;this.c=a.size;this.b=!1}x(Y);Y.prototype.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;!this.b&&this.c&&Ya(this.j,this.g,this.c,1)&&(this.b=!0);this.b||q("No RAM allocated");D(this)};Y.prototype.ba=function(){return!0};Y.prototype.aa=function(){return!0};Y.prototype.reset=function(){};
|
||||
e,d.c,f);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 jd(d);B(d,c)}});function Y(a){v.call(this,"RAM",a,Y);this.g=a.addr;this.c=a.size;this.b=!1}x(Y);Y.prototype.ja=function(a,b,c,d){this.j=b;this.a=c;this.I=d;!this.b&&this.c&&Ya(this.j,this.g,this.c,1)&&(this.b=!0);this.b||p("No RAM allocated");D(this)};Y.prototype.aa=function(){return!0};Y.prototype.$=function(){return!0};Y.prototype.reset=function(){};
|
||||
u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});function md(a){v.call(this,"Keyboard",a,md);D(this)}x(md);md.prototype.T=function(){return!1};md.prototype.ja=function(a,b,c,d){this.w=a;this.a=c;this.I=d};u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new md(d);B(d,c)}});
|
||||
function Z(a){this.g=this.m=null;this.G=a.tabSize;this.B=a.charBOL;this.o=0;v.call(this,"SerialPort",a,Z);var b=a.binding;if("console"==b)this.m="";else{var c;a=nd;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.v[b])&&this.T(null,a,b))}this.s=this.A=null;this.exports={connect:this.eb,receiveData:this.Xa}}x(Z);var nd="buffer";g=Z.prototype;
|
||||
g.T=function(a,b,c){var d=this;switch(b){case nd:return this.v[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),d.Xa(b);return!0},c.onkeypress=function(a){a=a||window.event;d.Xa(a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
g.ja=function(a,b,c,d){this.w=a;this.j=b;this.a=c;this.I=d;var e=this;this.M=mb(this.a,48,4);this.H=jb(this.a,function(){e.b&128||!e.i.length||(e.D=e.i.shift(),e.b|=128,e.b&64&&kb(e.a,e.M))});this.N=mb(this.a,52,4);this.J=jb(this.a,function(){e.c|=128;e.c&64&&kb(e.a,e.N)});gb(b,this,od);D(this)};
|
||||
g.eb=function(){if(!this.s){var a=Gb(this.w,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ia(b[0]);if(c!=this.Ca)return;b=ia(b[1]);if(this.s=Ha(b)){var d=this.s.exports;if(d){var e=d.connect;e&&e.call(this.s);if(this.A=d.receiveData){this.status(this.Sa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.ba=function(a,b){if(!b)if(this.eb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
g.aa=function(a){return a?this.save():!0};g.reset=function(){pd(this)};g.save=function(){var a=new L(this);a.set(0,[]);return a.data()};g.restore=function(){return pd(this)};function pd(a){a.D=0;a.b=0;a.c=128;a.i=[];return!0}g.Xa=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);lb(this.a,this.H,1);return!0};g.Wb=function(){return this.b&65535};g.Fc=function(a){this.b=this.b&-112|a&111};
|
||||
g.eb=function(){if(!this.s){var a=Gb(this.w,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ia(b[0]);if(c!=this.Ca)return;b=ia(b[1]);if(this.s=Ha(b)){var d=this.s.exports;if(d){var e=d.connect;e&&e.call(this.s);if(this.A=d.receiveData){this.status(this.Sa+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};g.aa=function(a,b){if(!b)if(this.eb(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
g.$=function(a){return a?this.save():!0};g.reset=function(){pd(this)};g.save=function(){var a=new L(this);a.set(0,[]);return a.data()};g.restore=function(){return pd(this)};function pd(a){a.D=0;a.b=0;a.c=128;a.i=[];return!0}g.Xa=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0;b<a.length;b++)this.i.push(a.charCodeAt(b));else this.i=this.i.concat(a);lb(this.a,this.H,1);return!0};g.Wb=function(){return this.b&65535};g.Fc=function(a){this.b=this.b&-112|a&111};
|
||||
g.Vb=function(){this.b&=-129;0<this.i.length&&lb(this.a,this.H,1);return this.D};g.Ec=function(){};g.jc=function(){return this.c};g.Uc=function(a){128==(this.c&192)&&a&64&&lb(this.a,this.J,1);this.c=this.c&-70|a&69};g.ic=function(){return 0};
|
||||
g.Tc=function(a){if(a&=255){this.A&&this.A.call(this.s,a);if(this.g)if(13==a)this.o=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0<this.o&&this.o--;else{var b;b=(b=ja[a])?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.G||8,c=a-this.o%a,this.G&&(b=" ".slice(0,c)));this.B&&!this.o&&c&&(b=String.fromCharCode(this.B)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.o+=c}else if(null!=this.m){if(10==a||1024<=this.m.length)this.O(this.m),
|
||||
this.m="";10!=a&&(this.m+=String.fromCharCode(a))}this.c&=-129;lb(this.a,this.J,1)}};var qd={},od=(qd[65392]=[null,null,Z.prototype.Wb,Z.prototype.Fc,"RCSR"],qd[65394]=[null,null,Z.prototype.Vb,Z.prototype.Ec,"RBUF"],qd[65396]=[null,null,Z.prototype.jc,Z.prototype.Uc,"XCSR"],qd[65398]=[null,null,Z.prototype.ic,Z.prototype.Tc,"XBUF"],qd);u(function(){for(var a=C(document,"pdp11","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Z(d);B(d,c)}});
|
||||
function rd(a,b,c){v.call(this,"Computer",a,rd);this.h.L=!1;sd(this,b);this.B=Gb(this,"autoPower",a);this.g=0;this.M=a.busWidth||a.buswidth;this.b=td;this.s=null;this.o=this.H=!1;this.N=Gb(this,"url")||"";(Math.random()+.1).toString(36);this.c=ud(this);if(this.a=z("CPU",this.id)){this.I=z("Debugger",this.id);this.j=new Oa({id:this.Sa+".bus",busWidth:this.M},this.a,this.I);var d,e=y(this.id);if((this.i=z("Panel",this.id))&&this.i.Qa)for(b=0;b<e.length;b++)d=e[b],d.K=this.i.K,d.O=this.i.O,d.Qa=this.i.Qa;
|
||||
this.O("PDPjs v1.30.1\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.O("Portions adapted from the PDP-11/70 Emulator v1.4 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)d=e[b],d.ja&&d.ja(this,this.j,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=Gb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.o=!0,this.b=td),this.b&&(this.A=new L(this,
|
||||
"1.30.1"),vd(this.A)?b=null:delete this.A);!b&&this.b&&(b=wd(this))&&(this.o=!0);if(b){var h=this;m(b,null,!0,function(a,b,c){c?(h.w=null,h.o=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+ia(b):"")+")")):(h.s=b,h.H=!0);D(h)})}else D(this);this.v.power||(this.B=!0);!c&&this.B&&xd(this,this.za)}else q("Unable to find CPU component")}x(rd);var td=0;
|
||||
function sd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.J=b}function Gb(a,b,c){var d=b.toLowerCase(),d=Aa[b]||Aa[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function xd(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ia(f)){Ia(f,function(){xd(a,b,c)});return}}b.call(a,c)}
|
||||
"1.30.1"),vd(this.A)?b=null:delete this.A);!b&&this.b&&(b=wd(this))&&(this.o=!0);if(b){var h=this;m(b,null,!0,function(a,b,c){c?(h.w=null,h.o=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+ia(b):"")+")")):(h.s=b,h.H=!0);D(h)})}else D(this);this.v.power||(this.B=!0);!c&&this.B&&xd(this,this.za)}else p("Unable to find CPU component")}x(rd);var td=0;
|
||||
function sd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){p(d.message+" ("+c+")")}}a.J=b}function Gb(a,b,c){var d=b.toLowerCase(),d=Aa[b]||Aa[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function xd(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ia(f)){Ia(f,function(){xd(a,b,c)});return}}b.call(a,c)}
|
||||
function yd(a,b){var c=new L(a,"1.30.1","validate");if(vd(c)&&zd(c)){var d=c.get("timestamp"),e=b?b.get("timestamp"):"unknown";d!=e&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}g=rd.prototype;
|
||||
g.za=function(a){void 0===a&&(a=this.b||(this.s?1:td));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.A||new L(this,"1.30.1");if(-1==a)b=!0;else if(a>td){if(vd(d,this.s)){this.m=new L(this,"1.30.1","failsafe");vd(this.m)&&(Ad(this,d),a=2,Bd(this.m));this.m.set("timestamp",la());Cd(this.m);var e=this.b&&!this.o;if(1==a||ma("Click OK to restore the previous PDPjs machine state, or CANCEL to reset the machine.")){if(c=zd(d)){var f=d.get("code"),h=d.get("data");f&&("ok"==f?vd(d,h):("error"==
|
||||
f&&"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(qa("user",""),this.c=null)):this.O(f+": "+h),Bd(d),vd(d)?(c=zd(d),e=!0):c=!1))}e&&yd(this,c?d:null)}else 2==a&&d.clear()}else yd(this);delete this.s;delete this.A}e=y(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=Dd(this,h,d,b,c));b=[d,a,c];-1!=a?xd(this,this.ab,b):this.ab(b)}};
|
||||
function Dd(a,b,c,d,e){if(!b.h.L){b.h.L=!0;if(b.ba){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.H?(c.clear(),a.b=td,window&&window.location.reload()):a.G=!0,b.ba(null),e=!1)}if(!d&&b.cb)for(a=b.cb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
function Dd(a,b,c,d,e){if(!b.h.L){b.h.L=!0;if(b.aa){var f=null;e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.aa(f,d)&&f&&(p("Unable to restore state for "+b.type),a.D&&!a.H?(c.clear(),a.b=td,window&&window.location.reload()):a.G=!0,b.aa(null),e=!1)}if(!d&&b.cb)for(a=b.cb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
g.ab=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.h.L=!0;var d=this.v.power;d&&(d.textContent="Shutdown");this.a&&(Dd(this,this.a,b,c,a),this.a.ya());this.G&&(Ad(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.g=0};
|
||||
function Ad(a,b){if(ma("There may be a problem with your PDPjs machine.\n\nTo help us diagnose it, click OK to send this PDPjs machine state to http://www.pcjs.org.")){var c=a.c||"";b=b.toString();var d={app:"PDPjs",ver:"1.30.1"};d.url=a.N;d.user=c;d.type="bug";d.data=b;m("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Ed(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new L(a,"1.30.1"),h=new L(a,"1.30.1","validate"),l=la();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.aa&&(c&&F(a.a),d=a.a.aa(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.h.L=!1,!1===d&&(e=null)));for(var l=y(a.id),n=0;n<l.length;n++){var p=l[n];p.h.L&&(p.aa&&(d=p.aa(b,c),"object"===typeof d&&f.set(p.id,
|
||||
d)),c&&(p.h.L=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.c&&Fd(a,a.c,f.toString()),Cd(h)&&Cd(f)||(e=null,d=l=!0)):a.b&&(d=!0,l=3==a.b),d&&f.clear(l)):e=f.toString());c&&(a.h.L=!1,b=a.v.power)&&(b.textContent="Power");a.g=0;return e}g.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};g.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ca(!0)};
|
||||
g.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.ca(!0)};
|
||||
function Ed(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new L(a,"1.30.1"),h=new L(a,"1.30.1","validate"),l=la();h.set("timestamp",l);f.set("timestamp",l);f.set("version","1.30.1");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.$&&(c&&F(a.a),d=a.a.$(b,c),"object"===typeof d&&f.set(a.a.id,d),c&&(a.a.h.L=!1,!1===d&&(e=null)));for(var l=y(a.id),n=0;n<l.length;n++){var q=l[n];q.h.L&&(q.$&&(d=q.$(b,c),"object"===typeof d&&f.set(q.id,
|
||||
d)),c&&(q.h.L=!1,!1===d&&(e=null)))}e&&(c?(l=d=!1,b?(a.c&&Fd(a,a.c,f.toString()),Cd(h)&&Cd(f)||(e=null,d=l=!0)):a.b&&(d=!0,l=3==a.b),d&&f.clear(l)):e=f.toString());c&&(a.h.L=!1,b=a.v.power)&&(b.textContent="Power");a.g=0;return e}g.reset=function(){this.j&&this.j.reset&&this.j.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c.reset&&c.reset()}};g.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}this.ba(!0)};
|
||||
g.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}this.ba(!0)};
|
||||
g.T=function(a,b,c){var d=this;switch(b){case "power":return this.v[b]=c,c.onclick=function(){d.g||(d.h.L?Ed(d,!1,!0):xd(d,d.za))},!0;case "reset":return this.v[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.w){var a=ma("Click OK to save changes to this PDPjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ed(d,a,!0);!a&&d.D?window&&window.location.reload():d.za(td)}else d.reset(),d.a&&d.a.ya()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.v[b]=
|
||||
c,c.onclick=function(){var a=ud(d,!0);if(a){var b=!!(d.b&&!d.w||d.D),c=Ed(d,b);b?Fd(d,a,c):d.K("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function ud(a,b){var c=a.c;c||((c=pa("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Gd(a,c))||a.K("The user ID is invalid.")):b&&a.K("Browser local storage is not available"));return c}
|
||||
function Gd(a,b){a.c=null;b=m(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(qa("user",b.data),a.c=b.data)}catch(d){q(d.message+" ("+c+")")}return a.c}function wd(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+Hd(a,"1.30.1"));return b}
|
||||
function Gd(a,b){a.c=null;b=m(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(qa("user",b.data),a.c=b.data)}catch(d){p(d.message+" ("+c+")")}return a.c}function wd(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+Hd(a,"1.30.1"));return b}
|
||||
function Fd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hd(a,"1.30.1");d.data=c;b=m(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),qa("user",""),a.c=null)}}
|
||||
g.ca=function(a){this.a&&this.a.ca(a);this.i&&this.i.ca(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"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new rd(h,d,!0);B(h,f);h.B&&xd(h,h.za)}});r.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.R&&!c.h.L&&c.za(-1)}});
|
||||
g.ba=function(a){this.a&&this.a.ba(a);this.i&&this.i.ba(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"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new rd(h,d,!0);B(h,f);h.B&&xd(h,h.za)}});r.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.R&&!c.h.L&&c.za(-1)}});
|
||||
r.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.h.L&&Ed(c,!(!c.b||c.w),!0)}});function L(a,b,c){this.id=a.id;this.key=Hd(a,b,c);this.I=a.I;Bd(this,a.Bb)}function Hd(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
L.prototype={constructor:L,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Bd(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,
|
||||
1);c=0}}};function Bd(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Cd(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function zd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function vd(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}var Id=0;
|
||||
1);c=0}}};function Bd(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Cd(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(p("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function zd(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){p(c.message||c),b=!1}return b}function vd(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}var Id=0;
|
||||
function Jd(a,b,c,d,e,f){e("Loading "+a+"...");m(a,null,!0,function(h,l,n){n?(l||(l="unable to load "+a+" ("+n+")"),f(l,null)):Kd(l,a,b,c,d,e,f)})}
|
||||
function Kd(a,b,c,d,e,f,h){function l(a,f){if(f)h(f,null);else{c&&(Ga(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?e?Ld(a,f,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ld(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");m(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],p,t=/( [a-z]+=)(['"])(.*?)\2/g;p=t.exec(f);)n=0>n.indexOf(p[1])?n.replace(">",p[0]+">"):n.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
function Ld(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");m(e,null,!0,function(f,h,l){if(l||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+l+")");else{if(f=d[3])if(l=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var n=l[0],q,t=/( [a-z]+=)(['"])(.*?)\2/g;q=t.exec(f);)n=0>n.indexOf(q[1])?n.replace(">",q[0]+">"):n.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[0]);l[0]!=n&&(h=h.replace(l[0],n))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Ld(a,b,c)}})}else c(a,null)}
|
||||
function Md(a,b,c,d){function e(a){if(void 0===l){var b=h&&C(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ga(a))}function f(a){e("Error: "+a);n&&(--Id||xa(!0));n=!1}var h,l,n=!0;Id++;Fa[a]={};try{if(h=document.getElementById(a)){var p;if("object"==typeof resources&&(p=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],ha=document.createElement("style");ha.type="text/css";ha.styleSheet?ha.styleSheet.cssText=p:ha.appendChild(document.createTextNode(p));t.appendChild(ha)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");p=function(d,l){l?Jd(c,null,null,!1,e,function(d,n){n?(Ga(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--Id||xa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--Id||xa(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Jd(b,a,d,!0,e,p):Kd(b,null,a,d,!1,e,p)}else f("missing machine element: "+a)}catch(Hc){f(Hc.message)}return n}window.embedPDP11=function(a,b,c,d){xa(!1);return Md(a,b,c,d)};window.enableEvents=xa;window.sendEvent=ya;})();
|
||||
function Md(a,b,c,d){function e(a){if(void 0===l){var b=h&&C(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ga(a))}function f(a){e("Error: "+a);n&&(--Id||xa(!0));n=!1}var h,l,n=!0;Id++;Fa[a]={};try{if(h=document.getElementById(a)){var q;if("object"==typeof resources&&(q=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],ha=document.createElement("style");ha.type="text/css";ha.styleSheet?ha.styleSheet.cssText=q:ha.appendChild(document.createTextNode(q));t.appendChild(ha)}c||
|
||||
(c="/versions/pdpjs/1.30.1/components.xsl");q=function(d,l){l?Jd(c,null,null,!1,e,function(d,n){n?(Ga(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(n=l.transformNode(n))?(h.outerHTML=n,--Id||xa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(n),(n=d.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(n,h),--Id||xa(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?Jd(b,a,d,!0,e,q):Kd(b,null,a,d,!1,e,q)}else f("missing machine element: "+a)}catch(Hc){f(Hc.message)}return n}window.embedPDP11=function(a,b,c,d){xa(!1);return Md(a,b,c,d)};window.enableEvents=xa;window.sendEvent=ya;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue